diff --git a/Android.mk b/Android.mk
index 52c7dcb..57d521e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -3,7 +3,6 @@
 
 LOCAL_MODULE_TAGS := optional
 
-contacts_common_dir := ../ContactsCommon
 phone_common_dir := ../PhoneCommon
 
 ifeq ($(TARGET_BUILD_APPS),)
@@ -12,43 +11,57 @@
 support_library_root_dir := prebuilts/sdk/current/support
 endif
 
-src_dirs := src $(contacts_common_dir)/src $(phone_common_dir)/src
-res_dirs := res res-aosp $(contacts_common_dir)/res $(contacts_common_dir)/icons/res $(phone_common_dir)/res
-asset_dirs := $(contacts_common_dir)/assets
+src_dirs := src src-bind $(phone_common_dir)/src
+res_dirs := res $(phone_common_dir)/res
+asset_dirs := assets
 
 LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
 LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) \
-    $(support_library_root_dir)/v7/cardview/res
+    $(support_library_root_dir)/design/res \
+    $(support_library_root_dir)/transition/res \
+    $(support_library_root_dir)/v7/appcompat/res \
+    $(support_library_root_dir)/v7/cardview/res \
+    $(support_library_root_dir)/v7/recyclerview/res
 LOCAL_ASSET_DIR := $(addprefix $(LOCAL_PATH)/, $(asset_dirs))
 
 LOCAL_AAPT_FLAGS := \
     --auto-add-overlay \
     --extra-packages com.android.contacts.common \
     --extra-packages com.android.phone.common \
-    --extra-packages android.support.v7.cardview
+    --extra-packages android.support.design \
+    --extra-packages android.support.transition \
+    --extra-packages android.support.v7.appcompat \
+    --extra-packages android.support.v7.cardview \
+    --extra-packages android.support.v7.recyclerview
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
-    com.android.vcard \
     android-common \
-    guava \
+    android-support-design \
+    android-support-transition \
     android-support-v13 \
+    android-support-v7-appcompat \
     android-support-v7-cardview \
+    android-support-v7-recyclerview \
     android-support-v7-palette \
     android-support-v4 \
-    libphonenumber \
-    legacy-android-test \
-    junit
+    com.android.vcard \
+    guava \
+    libphonenumber
 
 LOCAL_PACKAGE_NAME := Contacts
 LOCAL_CERTIFICATE := shared
 LOCAL_PRIVILEGED_MODULE := true
 
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+LOCAL_PROGUARD_FLAG_FILES := \
+    proguard.flags \
+    ../../../frameworks/support/core-ui/proguard-rules.pro \
+    ../../../frameworks/support/design/proguard-rules.pro \
+    ../../../frameworks/support/v7/recyclerview/proguard-rules.pro
 
 LOCAL_SDK_VERSION := current
 LOCAL_MIN_SDK_VERSION := 21
 
 include $(BUILD_PACKAGE)
 
-# Use the folloing include to make our test apk.
+# Use the following include to make our test apk.
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 54e8316..58209ae 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -15,467 +15,517 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.contacts"
-    android:versionCode="10422"
-    android:versionName="1.4.22">
+          package="com.android.contacts"
+          android:versionCode="10710"
+          android:versionName="1.7.10">
 
-    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
-    <original-package android:name="com.android.contacts" />
+    <uses-sdk
+        android:minSdkVersion="21"
+        android:targetSdkVersion="25"/>
 
-    <uses-permission android:name="android.permission.CALL_PHONE" />
-    <uses-permission android:name="android.permission.READ_CONTACTS" />
-    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
-    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
-    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
-    <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED" />
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
-    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.READ_PROFILE" />
-    <uses-permission android:name="android.permission.WRITE_PROFILE" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.NFC" />
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
-    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
-    <uses-permission android:name="android.permission.VIBRATE" />
-    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <original-package android:name="com.android.contacts"/>
+
+    <!-- Contacts permission listed first because order determines
+         order that permissions are requested with some OEMs -->
+    <uses-permission android:name="android.permission.READ_CONTACTS"/>
+    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
+    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
+    <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
+    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+    <uses-permission android:name="android.permission.CALL_PHONE"/>
+    <uses-permission android:name="android.permission.READ_PROFILE"/>
+    <uses-permission android:name="android.permission.WRITE_PROFILE"/>
+    <uses-permission android:name="android.permission.INTERNET"/>
+    <uses-permission android:name="android.permission.NFC"/>
+    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
+    <uses-permission android:name="android.permission.WAKE_LOCK"/>
+    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
+    <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
+    <uses-permission android:name="android.permission.VIBRATE"/>
+    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
     <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
     <!-- Following used for QuickContacts -->
-    <uses-permission android:name="android.permission.READ_CALL_LOG" />
-    <uses-permission android:name="android.permission.READ_SMS" />
-    <uses-permission android:name="android.permission.READ_CALENDAR" />
-    <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" />
+    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
+    <uses-permission android:name="android.permission.READ_SMS"/>
+    <uses-permission android:name="android.permission.READ_CALENDAR"/>
+    <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL"/>
     <!-- Following used for Contact metadata syncing -->
-    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
+    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
+    <!-- Following used for getting the status of the contacts sync adapter -->
+    <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+
+    <uses-feature
+        android:name="android.hardware.telephony"
+        android:required="false"/>
 
     <application
         android:name="com.android.contacts.ContactsApplication"
-        android:label="@string/applicationLabel"
-        android:icon="@mipmap/ic_contacts_launcher"
-        android:roundIcon="@mipmap/ic_contacts_launcher"
-        android:taskAffinity="android.task.contacts"
         android:hardwareAccelerated="true"
+        android:icon="@mipmap/ic_contacts_launcher"
+        android:label="@string/applicationLabel"
         android:supportsRtl="true"
-        android:usesCleartextTraffic="false"
-    >
-
+        android:taskAffinity="android.task.contacts"
+        android:usesCleartextTraffic="false">
         <!-- The main Contacts activity with the contact list, favorites, and groups. -->
-        <activity android:name=".activities.PeopleActivity"
-            android:label="@string/launcherActivityLabel"
-            android:theme="@style/PeopleTheme"
-            android:clearTaskOnLaunch="true"
+        <activity
+            android:name=".activities.PeopleActivity"
+            android:alwaysRetainTaskState="true"
             android:launchMode="singleTop"
             android:resizeableActivity="true"
-        >
+            android:theme="@style/LaunchScreenTheme"
+            android:visibleToInstantApps="true"
+            >
             <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
-                <category android:name="android.intent.category.BROWSABLE" />
-                <category android:name="android.intent.category.APP_CONTACTS" />
+                <action android:name="android.intent.action.MAIN"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+                <category android:name="android.intent.category.BROWSABLE"/>
+                <category android:name="android.intent.category.APP_CONTACTS"/>
             </intent-filter>
             <intent-filter>
-                <action android:name="com.android.contacts.action.LIST_DEFAULT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.TAB" />
+                <action android:name="com.android.contacts.action.LIST_DEFAULT"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.TAB"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="com.android.contacts.action.LIST_CONTACTS" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.TAB" />
+                <action android:name="com.android.contacts.action.LIST_CONTACTS"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.TAB"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="com.android.contacts.action.LIST_ALL_CONTACTS" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.TAB" />
+                <action android:name="com.android.contacts.action.LIST_ALL_CONTACTS"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.TAB"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="com.android.contacts.action.LIST_CONTACTS_WITH_PHONES" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.TAB" />
-            </intent-filter>
+                <action android:name="com.android.contacts.action.LIST_CONTACTS_WITH_PHONES"/>
 
-            <intent-filter android:label="@string/starredList">
-                <action android:name="com.android.contacts.action.LIST_STARRED" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.TAB" />
-            </intent-filter>
-
-            <intent-filter android:label="@string/frequentList">
-                <action android:name="com.android.contacts.action.LIST_FREQUENT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.TAB" />
-            </intent-filter>
-
-            <intent-filter android:label="@string/strequentList">
-                <action android:name="com.android.contacts.action.LIST_STREQUENT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.TAB" />
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.TAB"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="android.intent.action.SEARCH" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.dir/contact" />
+                <action android:name="com.android.contacts.action.LIST_STARRED"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.TAB"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="android.intent.action.SEARCH" />
-                <category android:name="android.intent.category.DEFAULT" />
+                <action android:name="com.android.contacts.action.LIST_FREQUENT"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.TAB"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.dir/person" />
-                <data android:mimeType="vnd.android.cursor.dir/contact" />
+                <action android:name="com.android.contacts.action.LIST_STREQUENT"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.TAB"/>
             </intent-filter>
 
-            <meta-data android:name="android.app.searchable"
+            <intent-filter>
+                <action android:name="android.intent.action.SEARCH"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <data android:mimeType="vnd.android.cursor.dir/contact"/>
+            </intent-filter>
+
+            <intent-filter>
+                <action android:name="android.intent.action.SEARCH"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.dir/person"/>
+                <data android:mimeType="vnd.android.cursor.dir/contact"/>
+                <data android:mimeType="vnd.android.cursor.item/group"/>
+            </intent-filter>
+
+            <intent-filter>
+                <action android:name="android.intent.action.EDIT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <data android:mimeType="vnd.android.cursor.item/group"/>
+            </intent-filter>
+
+            <intent-filter>
+                <action android:name="android.intent.action.INSERT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <data android:mimeType="vnd.android.cursor.dir/group"/>
+            </intent-filter>
+
+            <meta-data
+                android:name="android.app.searchable"
                 android:resource="@xml/searchable"
-            />
+                />
 
-           <meta-data android:name="android.app.shortcuts"
+            <meta-data
+                android:name="android.app.shortcuts"
                 android:resource="@xml/shortcuts"
-            />
+                />
 
         </activity>
 
-        <activity android:name=".activities.ContactSelectionActivity"
-            android:label="@string/launcherActivityLabel"
-            android:theme="@style/ContactPickerTheme"
-            android:launchMode="singleTop"
+        <activity
+            android:name=".activities.ContactSelectionActivity"
             android:clearTaskOnLaunch="true"
+            android:launchMode="singleTop"
+            android:theme="@style/ContactPickerTheme"
             android:uiOptions="splitActionBarWhenNarrow"
-            android:windowSoftInputMode="adjustResize">
+            android:windowSoftInputMode="adjustResize"
+            android:visibleToInstantApps="true">
+            <meta-data android:name="android.app.shortcuts.new_config"
+                android:value="true" />
             <intent-filter>
-                <action android:name="android.intent.action.INSERT_OR_EDIT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.item/person" />
-                <data android:mimeType="vnd.android.cursor.item/contact" />
-                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
+                <action android:name="android.intent.action.INSERT_OR_EDIT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.item/person"/>
+                <data android:mimeType="vnd.android.cursor.item/contact"/>
+                <data android:mimeType="vnd.android.cursor.item/raw_contact"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="android.intent.action.PICK" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.dir/contact" />
-                <data android:mimeType="vnd.android.cursor.dir/person" />
-                <data android:mimeType="vnd.android.cursor.dir/phone_v2" />
-                <data android:mimeType="vnd.android.cursor.dir/phone" />
-                <data android:mimeType="vnd.android.cursor.dir/postal-address_v2" />
-                <data android:mimeType="vnd.android.cursor.dir/postal-address" />
-                <data android:mimeType="vnd.android.cursor.dir/email_v2" />
+                <action android:name="android.intent.action.PICK"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.dir/contact"/>
+                <data android:mimeType="vnd.android.cursor.dir/person"/>
+                <data android:mimeType="vnd.android.cursor.dir/phone_v2"/>
+                <data android:mimeType="vnd.android.cursor.dir/phone"/>
+                <data android:mimeType="vnd.android.cursor.dir/postal-address_v2"/>
+                <data android:mimeType="vnd.android.cursor.dir/postal-address"/>
+                <data android:mimeType="vnd.android.cursor.dir/email_v2"/>
+                <data android:mimeType="vnd.android.cursor.dir/group"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="android.intent.action.GET_CONTENT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.item/contact" />
-                <data android:mimeType="vnd.android.cursor.item/person" />
-                <data android:mimeType="vnd.android.cursor.item/phone_v2" />
-                <data android:mimeType="vnd.android.cursor.item/phone" />
-                <data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
-                <data android:mimeType="vnd.android.cursor.item/postal-address" />
+                <action android:name="android.intent.action.GET_CONTENT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.item/contact"/>
+                <data android:mimeType="vnd.android.cursor.item/person"/>
+                <data android:mimeType="vnd.android.cursor.item/phone_v2"/>
+                <data android:mimeType="vnd.android.cursor.item/phone"/>
+                <data android:mimeType="vnd.android.cursor.item/postal-address_v2"/>
+                <data android:mimeType="vnd.android.cursor.item/postal-address"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="com.android.contacts.action.JOIN_CONTACT" />
-                <category android:name="android.intent.category.DEFAULT" />
+                <action android:name="com.android.contacts.action.JOIN_CONTACT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
         </activity>
 
         <!-- Backwards compatibility: somebody may have hard coded this activity name -->
-        <activity-alias android:name="ContactsListActivity"
+        <activity-alias
+            android:name="ContactsListActivity"
             android:targetActivity=".activities.PeopleActivity"
-        />
+            />
 
         <!-- Backwards compatibility: "Contacts" from Honeycomb -->
-        <activity-alias android:name=".activities.ContactsFrontDoor"
-            android:targetActivity=".activities.PeopleActivity"
+        <activity-alias
+            android:name=".activities.ContactsFrontDoor"
             android:exported="true"
-        />
+            android:targetActivity=".activities.PeopleActivity"
+            />
 
         <!-- Backwards compatibility: "Contacts" from Gingerbread and earlier -->
-        <activity-alias android:name="DialtactsContactsEntryActivity"
-            android:targetActivity=".activities.PeopleActivity"
+        <activity-alias
+            android:name="DialtactsContactsEntryActivity"
             android:exported="true"
-        />
+            android:targetActivity=".activities.PeopleActivity"
+            />
 
         <!-- Used to set options -->
         <activity
-            android:name=".common.preference.ContactsPreferenceActivity"
+            android:name=".preference.ContactsPreferenceActivity"
+            android:exported="false"
             android:label="@string/activity_title_settings"
-            android:theme="@style/ContactsPreferencesTheme"
-            android:exported="false"/>
+            android:launchMode="singleTop"
+            android:theme="@style/ContactsPreferencesTheme"/>
 
-        <activity android:name=".common.activity.LicenseActivity"
+        <activity
+            android:name=".activities.LicenseActivity"
+            android:exported="true"
             android:label="@string/activity_title_licenses"
-            android:theme="@style/ContactsPreferencesTheme"
-            android:exported="false" />
+            android:theme="@style/ContactsPreferencesTheme"/>
 
         <!-- Used to filter contacts list by account -->
         <activity
-            android:name=".common.list.AccountFilterActivity"
+            android:name=".list.AccountFilterActivity"
             android:label="@string/activity_title_contacts_filter"
-            android:theme="@style/ContactListFilterTheme" />
+            android:theme="@style/ContactListFilterTheme"/>
 
         <!-- Used to select display and sync groups -->
         <activity
-            android:name=".common.list.CustomContactListFilterActivity"
+            android:name=".list.CustomContactListFilterActivity"
             android:label="@string/custom_list_filter"
-            android:theme="@style/ContactListFilterTheme" />
+            android:theme="@style/ContactListFilterTheme"/>
 
         <activity
-            android:name=".common.activity.RequestPermissionsActivity"
-            android:label="@string/launcherActivityLabel"
-            android:theme="@style/PeopleTheme"
-            android:exported="false"/>
+            android:name=".activities.RequestPermissionsActivity"
+            android:exported="false"
+            android:theme="@style/PeopleTheme"/>
 
         <activity
-            android:name=".common.activity.RequestDesiredPermissionsActivity"
-            android:label="@string/launcherActivityLabel"
-            android:theme="@style/PeopleTheme"
-            android:exported="false"/>
+            android:name=".activities.RequestDesiredPermissionsActivity"
+            android:exported="false"
+            android:theme="@style/PeopleTheme"/>
 
         <activity
-            android:name=".common.activity.RequestImportVCardPermissionsActivity"
-            android:label="@string/launcherActivityLabel"
-            android:theme="@style/PeopleTheme"
-            android:exported="false"/>
+            android:name=".activities.RequestImportVCardPermissionsActivity"
+            android:exported="false"
+            android:theme="@style/PeopleTheme"/>
 
         <activity
             android:name=".activities.ShowOrCreateActivity"
-            android:label="@string/launcherActivityLabel"
             android:theme="@android:style/Theme.Material.Light.Dialog.NoActionBar">
 
             <intent-filter>
-                <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:scheme="mailto" />
-                <data android:scheme="tel" />
+                <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:scheme="mailto"/>
+                <data android:scheme="tel"/>
             </intent-filter>
         </activity>
 
-        <!-- Views the details of a single group -->
-        <activity android:name=".activities.GroupDetailActivity"
-            android:label=""
-            android:theme="@style/DetailActivityTheme"/>
-
-        <!-- Create a new or edit an existing group -->
-        <activity
-            android:name=".activities.GroupEditorActivity"
-            android:theme="@style/EditorActivityTheme"
-            android:windowSoftInputMode="adjustResize" />
-
         <activity
             android:name=".quickcontact.QuickContactActivity"
-            android:label="@string/quickContactActivityLabel"
-            android:theme="@style/Theme.QuickContact"
-            android:launchMode="singleTop"
             android:excludeFromRecents="true"
+            android:launchMode="singleTop"
             android:taskAffinity=""
+            android:theme="@style/Theme.QuickContact"
             android:windowSoftInputMode="stateUnchanged">
 
             <intent-filter>
-                <action android:name="com.android.contacts.action.QUICK_CONTACT" />
-                <action android:name="android.provider.action.QUICK_CONTACT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.item/contact" />
-                <data android:mimeType="vnd.android.cursor.item/person" />
+                <action android:name="com.android.contacts.action.QUICK_CONTACT"/>
+                <action android:name="android.provider.action.QUICK_CONTACT"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.item/contact"/>
+                <data android:mimeType="vnd.android.cursor.item/person"/>
             </intent-filter>
 
             <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.item/person" />
-                <data android:mimeType="vnd.android.cursor.item/contact" />
-                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
+                <action android:name="android.intent.action.VIEW"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.item/person"/>
+                <data android:mimeType="vnd.android.cursor.item/contact"/>
+                <data android:mimeType="vnd.android.cursor.item/raw_contact"/>
             </intent-filter>
         </activity>
 
         <receiver
             android:name=".quickcontact.QuickContactBroadcastReceiver"
-            android:exported="false" />
-
-        <activity-alias android:name="ContactShortcut"
-            android:targetActivity=".activities.ContactSelectionActivity"
-            android:label="@string/shortcutContact"
-            android:icon="@drawable/logo_quick_contacts_color_44in48dp">
-
-            <intent-filter>
-                <action android:name="android.intent.action.CREATE_SHORTCUT" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-
-        </activity-alias>
-
-        <activity-alias android:name="alias.DialShortcut"
-            android:targetActivity=".activities.ContactSelectionActivity"
-            android:label="@string/shortcutDialContact"
-            android:icon="@drawable/logo_quick_contacts_dialer_color_44in48dp">
-
-            <intent-filter>
-                <action android:name="android.intent.action.CREATE_SHORTCUT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.CAR_MODE" />
-            </intent-filter>
-
-        </activity-alias>
-
-        <activity-alias android:name="alias.MessageShortcut"
-            android:targetActivity=".activities.ContactSelectionActivity"
-            android:label="@string/shortcutMessageContact"
-            android:icon="@drawable/logo_quick_contacts_mail_color_44in48dp">
-
-            <intent-filter>
-                <action android:name="android.intent.action.CREATE_SHORTCUT" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-
-        </activity-alias>
-
-        <!-- Confirm that a single detail will be added to an existing contact -->
-        <activity
-            android:name=".activities.ConfirmAddDetailActivity"
-            android:label="@string/activity_title_confirm_add_detail"
-            android:theme="@style/ConfirmAddDetailDialogTheme"
-            android:windowSoftInputMode="adjustResize"
             android:exported="false"/>
 
+        <!-- Responsible for creating notification channels when boot is completed or when app is
+        re-installed -->
+        <receiver android:name=".interactions.OnBootOrUpgradeReceiver">
+            <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
+            </intent-filter>
+        </receiver>
+
+        <activity-alias
+            android:name="ContactShortcut"
+            android:icon="@drawable/logo_quick_contacts_color_44in48dp"
+            android:label="@string/shortcutContact"
+            android:targetActivity=".activities.ContactSelectionActivity">
+
+            <intent-filter>
+                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+
+        </activity-alias>
+
+        <activity-alias
+            android:name="alias.DialShortcut"
+            android:icon="@drawable/logo_quick_contacts_dialer_color_44in48dp"
+            android:label="@string/shortcutDialContact"
+            android:targetActivity=".activities.ContactSelectionActivity">
+
+            <intent-filter>
+                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.CAR_MODE"/>
+            </intent-filter>
+
+        </activity-alias>
+
+        <activity-alias
+            android:name="alias.MessageShortcut"
+            android:icon="@drawable/logo_quick_contacts_mail_color_44in48dp"
+            android:label="@string/shortcutMessageContact"
+            android:targetActivity=".activities.ContactSelectionActivity">
+
+            <intent-filter>
+                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+
+        </activity-alias>
+
         <!-- Accounts changed prompt that can appear when creating a new contact. -->
         <activity
             android:name=".activities.ContactEditorAccountsChangedActivity"
+            android:exported="false"
             android:theme="@style/ContactEditorAccountsChangedActivityTheme"
-            android:windowSoftInputMode="adjustResize"
-            android:exported="false"/>
+            android:windowSoftInputMode="adjustResize"/>
 
         <!-- Edit or create a contact with only the most important fields displayed initially. -->
         <activity
-            android:name=".activities.CompactContactEditorActivity"
-            android:label="@string/editContactActivityLabel"
-            android:theme="@style/EditorActivityTheme"
-            android:windowSoftInputMode="stateHidden|adjustResize">
-
-            <intent-filter android:label="@string/editContactDescription">
-                <action android:name="android.intent.action.EDIT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.item/person" />
-                <data android:mimeType="vnd.android.cursor.item/contact" />
-                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
-            </intent-filter>
-            <intent-filter android:label="@string/insertContactDescription">
-                <action android:name="android.intent.action.INSERT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.dir/person" />
-                <data android:mimeType="vnd.android.cursor.dir/contact" />
-                <data android:mimeType="vnd.android.cursor.dir/raw_contact" />
-            </intent-filter>
-        </activity>
-
-        <!-- Edit or create a contact with all fields displayed. -->
-        <activity
             android:name=".activities.ContactEditorActivity"
-            android:label="@string/editContactActivityLabel"
-            android:theme="@style/EditorActivityTheme"
-            android:windowSoftInputMode="stateHidden|adjustResize"
-            android:exported="false">
+            android:theme="@style/EditorActivityTheme">
 
-            <intent-filter android:label="@string/editContactDescription">
-                <action android:name="com.android.contacts.action.FULL_EDIT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.item/person" />
-                <data android:mimeType="vnd.android.cursor.item/contact" />
-                <data android:mimeType="vnd.android.cursor.item/raw_contact" />
-            </intent-filter>
-            <intent-filter android:label="@string/insertContactDescription">
-                <action android:name="com.android.contacts.action.FULL_INSERT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.dir/person" />
-                <data android:mimeType="vnd.android.cursor.dir/contact" />
-                <data android:mimeType="vnd.android.cursor.dir/raw_contact" />
+            <intent-filter>
+                <action android:name="android.intent.action.INSERT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.dir/person"/>
+                <data android:mimeType="vnd.android.cursor.dir/contact"/>
+                <data android:mimeType="vnd.android.cursor.dir/raw_contact"/>
             </intent-filter>
         </activity>
 
-        <activity android:name=".common.test.FragmentTestActivity">
+        <!-- Keep support for apps that expect the Compact editor -->
+        <activity-alias
+            android:name="com.android.contacts.activities.CompactContactEditorActivity"
+            android:exported="true"
+            android:targetActivity=".activities.ContactEditorActivity">
+            <intent-filter android:priority="-1">
+                <action android:name="android.intent.action.INSERT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.dir/person"/>
+                <data android:mimeType="vnd.android.cursor.dir/contact"/>
+                <data android:mimeType="vnd.android.cursor.dir/raw_contact"/>
+            </intent-filter>
+        </activity-alias>
+
+        <activity
+            android:name=".activities.ContactEditorSpringBoardActivity"
+            android:theme="@style/TransparentThemeAppCompat">
+
             <intent-filter>
-                <category android:name="android.intent.category.TEST" />
+                <action android:name="android.intent.action.EDIT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+
+                <data android:mimeType="vnd.android.cursor.item/person"/>
+                <data android:mimeType="vnd.android.cursor.item/contact"/>
+                <data android:mimeType="vnd.android.cursor.item/raw_contact"/>
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".test.FragmentTestActivity">
+            <intent-filter>
+                <category android:name="android.intent.category.TEST"/>
             </intent-filter>
         </activity>
 
         <!-- Stub service used to keep our process alive long enough for
              background threads to finish their operations. -->
         <service
-            android:name=".common.util.EmptyService"
-            android:exported="false" />
+            android:name=".util.EmptyService"
+            android:exported="false"/>
 
         <!-- Service to save a contact -->
         <service
             android:name=".ContactSaveService"
-            android:exported="false" />
+            android:exported="false"/>
+
+        <!-- Service to import contacts from the SIM card -->
+        <service
+            android:name=".SimImportService"
+            android:exported="false"/>
 
         <!-- Attaches a photo to a contact. Started from external applications -->
-        <activity android:name=".activities.AttachPhotoActivity"
+        <activity
+            android:name=".activities.AttachPhotoActivity"
             android:label="@string/attach_photo_dialog_title"
             android:taskAffinity="">
             <intent-filter>
-                <action android:name="android.intent.action.ATTACH_DATA" />
-                <data android:mimeType="image/*" />
-                <category android:name="android.intent.category.DEFAULT" />
+                <action android:name="android.intent.action.ATTACH_DATA"/>
+                <data android:mimeType="image/*"/>
+                <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
         </activity>
 
         <!-- vCard related -->
-        <activity android:name=".common.vcard.ImportVCardActivity"
-            android:label="@string/launcherActivityLabel"
+        <activity
+            android:name=".vcard.ImportVCardActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:theme="@style/BackgroundOnlyTheme">
             <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
-                <data android:mimeType="text/directory" />
-                <data android:mimeType="text/vcard" />
-                <data android:mimeType="text/x-vcard" />
-                <category android:name="android.intent.category.DEFAULT" />
+                <action android:name="android.intent.action.VIEW"/>
+
+                <data android:mimeType="text/directory"/>
+                <data android:mimeType="text/vcard"/>
+                <data android:mimeType="text/x-vcard"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
         </activity>
 
-        <activity android:name=".common.vcard.NfcImportVCardActivity"
-            android:label="@string/launcherActivityLabel"
+        <activity
+            android:name=".vcard.NfcImportVCardActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:theme="@style/BackgroundOnlyTheme">
             <intent-filter>
-                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
-                <data android:mimeType="text/vcard" />
-                <data android:mimeType="text/x-vcard" />
-                <category android:name="android.intent.category.DEFAULT" />
+                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
+
+                <data android:mimeType="text/vcard"/>
+                <data android:mimeType="text/x-vcard"/>
+
+                <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
         </activity>
 
-        <activity android:name=".common.vcard.CancelActivity"
-            android:label="@string/launcherActivityLabel"
-            android:theme="@style/BackgroundOnlyTheme" />
+        <activity
+            android:name=".vcard.CancelActivity"
+            android:theme="@style/BackgroundOnlyTheme"/>
 
-        <activity android:name=".common.vcard.SelectAccountActivity"
-            android:label="@string/launcherActivityLabel"
-            android:theme="@style/BackgroundOnlyTheme" />
+        <activity
+            android:name=".vcard.SelectAccountActivity"
+            android:theme="@style/BackgroundOnlyTheme"/>
 
-        <activity android:name=".common.vcard.ExportVCardActivity"
-            android:label="@string/launcherActivityLabel"
-            android:theme="@style/BackgroundOnlyTheme" />
+        <activity
+            android:name=".vcard.ExportVCardActivity"
+            android:theme="@style/BackgroundOnlyTheme"/>
 
-        <activity android:name=".common.vcard.ShareVCardActivity"
-                  android:label="@string/launcherActivityLabel"
-                  android:theme="@style/BackgroundOnlyTheme" />
+        <activity
+            android:name=".vcard.ShareVCardActivity"
+            android:theme="@style/BackgroundOnlyTheme"/>
+
+        <activity
+            android:name=".activities.SimImportActivity"
+            android:label="@string/sim_import_title"
+            android:theme="@style/PeopleThemeAppCompat.FullScreenDialog.SimImportActivity"/>
+
 
         <service
-            android:name=".common.vcard.VCardService"
-            android:exported="false" />
+            android:name=".vcard.VCardService"
+            android:exported="false"/>
         <!-- end vCard related -->
 
         <!-- Intercept Dialer Intents for devices without a phone.
@@ -485,31 +535,35 @@
              are set lower, so that the user does not see a disambig dialog -->
         <activity
             android:name="com.android.contacts.NonPhoneActivity"
-            android:theme="@style/NonPhoneActivityTheme"
-            android:label="@string/launcherActivityLabel"
-            >
+            android:theme="@style/NonPhoneActivityTheme">
             <intent-filter android:priority="-1">
                 <action android:name="android.intent.action.MAIN"/>
+
                 <category android:name="android.intent.category.DEFAULT"/>
                 <category android:name="android.intent.category.BROWSABLE"/>
             </intent-filter>
             <intent-filter android:priority="-1">
                 <action android:name="android.intent.action.VIEW"/>
+
                 <category android:name="android.intent.category.DEFAULT"/>
                 <category android:name="android.intent.category.BROWSABLE"/>
+
                 <data android:scheme="tel"/>
             </intent-filter>
             <intent-filter android:priority="-1">
                 <action android:name="android.intent.action.VIEW"/>
+
                 <category android:name="android.intent.category.DEFAULT"/>
                 <category android:name="android.intent.category.BROWSABLE"/>
+
                 <data android:mimeType="vnd.android.cursor.dir/calls"/>
             </intent-filter>
         </activity>
 
-        <activity android:name="com.android.contacts.common.dialog.CallSubjectDialog"
-                  android:theme="@style/Theme.CallSubjectDialogTheme"
-                  android:windowSoftInputMode="stateVisible|adjustResize">
+        <activity
+            android:name="com.android.contacts.dialog.CallSubjectDialog"
+            android:theme="@style/Theme.CallSubjectDialogTheme"
+            android:windowSoftInputMode="stateVisible|adjustResize">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW"/>
             </intent-filter>
@@ -522,32 +576,34 @@
              (PhoneUtils.sendViewNotificationAsync()).  If this service moves, then phone
              needs to be changed as well.
         -->
-        <service android:name=".ViewNotificationService"
-                 android:permission="android.permission.WRITE_CONTACTS"
-                 android:exported="true">
+        <service
+            android:name=".ViewNotificationService"
+            android:exported="true"
+            android:permission="android.permission.WRITE_CONTACTS">
             <intent-filter>
                 <action android:name="com.android.contacts.VIEW_NOTIFICATION"/>
                 <data android:mimeType="vnd.android.cursor.item/contact"/>
             </intent-filter>
         </service>
 
-        <!-- Broadcast receiver that passively listens to location updates -->
-        <receiver android:name="com.android.contacts.common.location.CountryDetector$LocationChangedReceiver"/>
-
-        <!-- IntentService to update the user's current country -->
-        <service android:name="com.android.contacts.common.location.UpdateCountryService"
-            android:exported="false"/>
+        <!-- Service used to run JobScheduler jobs -->
+        <service
+            android:name="com.android.contacts.ContactsJobService"
+            android:permission="android.permission.BIND_JOB_SERVICE"/>
 
         <provider
             android:name="android.support.v4.content.FileProvider"
             android:authorities="@string/contacts_file_provider_authority"
-            android:grantUriPermissions="true"
-            android:exported="false">
+            android:exported="false"
+            android:grantUriPermissions="true">
             <meta-data
                 android:name="android.support.FILE_PROVIDER_PATHS"
-                android:resource="@xml/file_paths" />
+                android:resource="@xml/file_paths"/>
         </provider>
 
-        <meta-data android:name="android.nfc.disable_beam_default" android:value="true" />
+        <meta-data
+            android:name="android.nfc.disable_beam_default"
+            android:value="true"/>
+
     </application>
 </manifest>
diff --git a/assets/licenses.html b/assets/licenses.html
new file mode 100644
index 0000000..c24ed63
--- /dev/null
+++ b/assets/licenses.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta name="viewport" content="width=device-width">
+    <style> body { font-family: sans-serif; } pre { background-color: #eeeeee; padding: 1em; white-space: pre-wrap; word-wrap: break-word; } </style>
+</head>
+<body>
+
+<h3>Notices for: guava, libphonenumber, and libprotobuf-java-nano</h3>
+<pre>
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
+</pre>
+
+<h3>Notices for JSR305</h3>
+<pre>
+Copyright (c) 2007-2009, JSR305 expert group
+All rights reserved.
+
+http://www.opensource.org/licenses/bsd-license.php
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of the JSR305 expert group nor the names of its
+      contributors may be used to endorse or promote products derived from
+      this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+</pre>
+
+</body>
+</html>
diff --git a/proguard.flags b/proguard.flags
index bad57a9..75fbfd7 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -9,27 +9,109 @@
   public void *(android.view.MenuItem);
 }
 
--keep class com.android.contacts.common.** { *;}
-# For test:
--keep class com.android.contacts.commonbind.analytics.AnalyticsUtil { *;}
--keep class com.android.contacts.interactions.** { *;}
--keep class com.google.common.base.Objects { *;}
--keep class com.google.common.base.Preconditions { *;}
--keep class com.google.common.collect.Lists { *;}
--keep class com.google.common.collect.Maps { *;}
--keep class com.google.common.collect.Sets { *;}
+# Needed for tests
+-keep class com.android.contacts.compat.CompatUtils { *; }
+-keep class com.android.contacts.Collapser { *; }
+-keep class com.android.contacts.ContactPhotoManager { *; }
+-keep class com.android.contacts.ContactsApplication { *; }
+-keep class com.android.contacts.ContactsUtils { *; }
+-keep class com.android.contacts.ContactSaveService { *; }
+-keep class com.android.contacts.ContactSaveService$* { *; }
+-keep class com.android.contacts.database.NoNullCursorAsyncQueryHandler { *; }
+-keep class com.android.contacts.database.SimContactDao { *; }
+-keep class com.android.contacts.database.SimContactDao$* { *; }
+-keep class com.android.contacts.database.SimContactDaoImpl { *; }
+-keep class com.android.contacts.DynamicShortcuts { *; }
+-keep class com.android.contacts.editor.ContactEditorUtils { *; }
+-keep class com.android.contacts.editor.EditorUiUtils { *; }
+-keep class com.android.contacts.format.FormatUtils { *; }
+-keep class com.android.contacts.format.TextHighlighter { *; }
+-keep class com.android.contacts.group.GroupUtil { *; }
+-keep class com.android.contacts.interactions.CallLogInteraction { *; }
+-keep class com.android.contacts.interactions.CallLogInteractionsLoader { *; }
+-keep class com.android.contacts.interactions.ContactDeletionInteraction { *; }
+-keep class com.android.contacts.interactions.ContactInteractionUtil { *; }
+-keep class com.android.contacts.list.ContactListItemView { *; }
+-keep class com.android.contacts.list.ContactsSectionIndexer { *; }
+-keep class com.android.contacts.location.CountryDetector { *; }
+-keep class com.android.contacts.model.account.AccountDisplayInfo { *; }
+-keep class com.android.contacts.model.account.AccountDisplayInfoFactory { *; }
+-keep class com.android.contacts.model.account.AccountInfo { *; }
+-keep class com.android.contacts.model.account.AccountType { *; }
+-keep class com.android.contacts.model.account.AccountType$* { *; }
+-keep class com.android.contacts.model.account.AccountTypeWithDataSet { *; }
+-keep class com.android.contacts.model.account.AccountWithDataSet { *; }
+-keep class com.android.contacts.model.account.BaseAccountType { *; }
+-keep class com.android.contacts.model.account.BaseAccountType$* { *; }
+-keep class com.android.contacts.model.account.DeviceLocalAccountType { *; }
+-keep class com.android.contacts.model.account.ExchangeAccountType { *; }
+-keep class com.android.contacts.model.account.ExternalAccountType { *; }
+-keep class com.android.contacts.model.account.FallbackAccountType { *; }
+-keep class com.android.contacts.model.account.GoogleAccountType { *; }
+-keep class com.android.contacts.model.account.SimAccountType { *; }
+-keep class com.android.contacts.model.AccountTypeManager { *; }
+-keep class com.android.contacts.model.AccountTypeManagerImpl { *; }
+-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 { *; }
+-keep class com.android.contacts.model.dataitem.EmailDataItem { *; }
+-keep class com.android.contacts.model.dataitem.EventDataItem { *; }
+-keep class com.android.contacts.model.dataitem.ImDataItem { *; }
+-keep class com.android.contacts.model.dataitem.NicknameDataItem { *; }
+-keep class com.android.contacts.model.dataitem.NoteDataItem { *; }
+-keep class com.android.contacts.model.dataitem.OrganizationDataItem { *; }
+-keep class com.android.contacts.model.dataitem.PhoneDataItem { *; }
+-keep class com.android.contacts.model.dataitem.RelationDataItem { *; }
+-keep class com.android.contacts.model.dataitem.SipAddressDataItem { *; }
+-keep class com.android.contacts.model.dataitem.StructuredNameDataItem { *; }
+-keep class com.android.contacts.model.dataitem.StructuredPostalDataItem { *; }
+-keep class com.android.contacts.model.dataitem.WebsiteDataItem { *; }
+-keep class com.android.contacts.model.DeviceLocalAccountLocator { *; }
+-keep class com.android.contacts.model.RawContact { *; }
+-keep class com.android.contacts.model.RawContactDelta { *; }
+-keep class com.android.contacts.model.RawContactDeltaList { *; }
+-keep class com.android.contacts.model.RawContactModifier { *; }
+-keep class com.android.contacts.model.SimCard { *; }
+-keep class com.android.contacts.model.SimContact { *; }
+-keep class com.android.contacts.model.ValuesDelta { *; }
+-keep class com.android.contacts.MoreContactUtils { *; }
+-keep class com.android.contacts.preference.ContactsPreferences { *; }
+-keep class com.android.contacts.SimImportService { *; }
+-keep class com.android.contacts.SimImportService$* { *; }
+-keep class com.android.contacts.test.mocks.MockContactPhotoManager { *; }
+-keep class com.android.contacts.testing.InjectedServices { *; }
+-keep class com.android.contacts.util.BitmapUtil { *; }
+-keep class com.android.contacts.util.ContactDisplayUtils { *; }
+-keep class com.android.contacts.util.DateUtils { *; }
+-keep class com.android.contacts.util.DeviceLocalAccountTypeFactory { *; }
+-keep class com.android.contacts.util.DeviceLocalAccountTypeFactory$* { *; }
+-keep class com.android.contacts.util.NameConverter { *; }
+-keep class com.android.contacts.util.PermissionsUtil { *; }
+-keep class com.android.contacts.util.SearchUtil { *; }
+-keep class com.android.contacts.util.SearchUtil$* { *; }
+-keep class com.android.contacts.util.SyncUtil { *; }
+-keep class com.android.contacts.widget.CompositeListAdapter { *; }
+-keep class com.google.common.base.Function { *; }
+-keep class com.google.common.base.Functions { *; }
+-keep class com.google.common.base.Objects { *; }
+-keep class com.google.common.base.Preconditions { *; }
+-keep class com.google.common.collect.** { *; }
+-keep class com.google.common.util.concurrent.** { *; }
 
-# Any class or method annotated with NeededForTesting or NeededForReflection.
--keep @com.android.contacts.common.testing.NeededForTesting class *
+-keep class com.android.common.widget.CompositeCursorAdapter { *; }
+
+# Any class or method annotated with NeededForReflection.
 -keep @com.android.contacts.test.NeededForReflection class *
 -keepclassmembers class * {
-@com.android.contacts.common.testing.NeededForTesting *;
 @com.android.contacts.test.NeededForReflection *;
 }
+
 # Keep classes and methods that have the guava @VisibleForTesting annotation
 -keep @com.google.common.annotations.VisibleForTesting class *
 -keepclassmembers class * {
   @com.google.common.annotations.VisibleForTesting *;
 }
-
--verbose
diff --git a/res-aosp/xml/shortcuts.xml b/res-aosp/xml/shortcuts.xml
deleted file mode 100644
index 35d15e7..0000000
--- a/res-aosp/xml/shortcuts.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
-    <shortcut
-        android:enabled="true"
-        android:icon="@drawable/ic_add_circle_24dp"
-        android:shortcutId="shortcut-add-contact"
-        android:shortcutShortLabel="@string/menu_new_contact_action_bar">
-        <intent
-            android:action="android.intent.action.INSERT"
-            android:data="content://com.android.contacts/contacts"
-            android:targetPackage="com.android.contacts"
-            android:targetClass="com.android.contacts.activities.CompactContactEditorActivity"/>
-    </shortcut>
-</shortcuts>
diff --git a/res/anim/slide_and_fade_in.xml b/res/anim/slide_and_fade_in.xml
new file mode 100644
index 0000000..c362da6
--- /dev/null
+++ b/res/anim/slide_and_fade_in.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+     android:interpolator="@android:interpolator/linear_out_slow_in">
+    <alpha
+        android:duration="@integer/lists_on_load_animation_duration"
+        android:fromAlpha="0.0"
+        android:toAlpha="1.0"/>
+    <translate
+        android:duration="@integer/lists_on_load_animation_duration"
+        android:fromYDelta="5%"
+        android:toYDelta="0"/>
+</set>
diff --git a/res/anim/slide_and_fade_in_layout_animation.xml b/res/anim/slide_and_fade_in_layout_animation.xml
new file mode 100644
index 0000000..7f7e558
--- /dev/null
+++ b/res/anim/slide_and_fade_in_layout_animation.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
+                 android:animation="@anim/slide_and_fade_in"
+                 android:delay="10%"/>
diff --git a/res/anim/slide_and_fade_out.xml b/res/anim/slide_and_fade_out.xml
new file mode 100644
index 0000000..7bb65d7
--- /dev/null
+++ b/res/anim/slide_and_fade_out.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+     android:interpolator="@android:interpolator/linear_out_slow_in">
+    <alpha
+        android:duration="@integer/lists_on_load_animation_duration"
+        android:fromAlpha="1.0"
+        android:toAlpha="0"/>
+    <translate
+        android:duration="@integer/lists_on_load_animation_duration"
+        android:fromYDelta="0%"
+        android:toYDelta="5%"/>
+</set>
diff --git a/res/color/contact_list_name_text_color.xml b/res/color/contact_list_name_text_color.xml
new file mode 100644
index 0000000..2327e2a
--- /dev/null
+++ b/res/color/contact_list_name_text_color.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/disabled_contact_list_name_text" android:state_enabled="false" />
+    <item android:color="@color/primary_text_color" />
+</selector>
\ No newline at end of file
diff --git a/res/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png b/res/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png
deleted file mode 100644
index 956d61b..0000000
--- a/res/drawable-hdpi/ab_solid_custom_blue_inverse_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ab_stacked_solid_inverse_holo.9.png b/res/drawable-hdpi/ab_stacked_solid_inverse_holo.9.png
deleted file mode 100644
index 42528b1..0000000
--- a/res/drawable-hdpi/ab_stacked_solid_inverse_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/accounts_empty.png b/res/drawable-hdpi/accounts_empty.png
new file mode 100644
index 0000000..8086901
--- /dev/null
+++ b/res/drawable-hdpi/accounts_empty.png
Binary files differ
diff --git a/res/drawable-hdpi/aggregation_suggestions_bg.9.png b/res/drawable-hdpi/aggregation_suggestions_bg.9.png
deleted file mode 100644
index d279fb1..0000000
--- a/res/drawable-hdpi/aggregation_suggestions_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/aggregation_suggestions_bg_light_holo.9.png b/res/drawable-hdpi/aggregation_suggestions_bg_light_holo.9.png
deleted file mode 100644
index da1fe94..0000000
--- a/res/drawable-hdpi/aggregation_suggestions_bg_light_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_star_off_normal_holo_light.png b/res/drawable-hdpi/btn_star_off_normal_holo_light.png
deleted file mode 100644
index e285c66..0000000
--- a/res/drawable-hdpi/btn_star_off_normal_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/btn_star_on_normal_holo_light.png b/res/drawable-hdpi/btn_star_on_normal_holo_light.png
deleted file mode 100644
index 4b34e57..0000000
--- a/res/drawable-hdpi/btn_star_on_normal_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/contacts_no_account_empty.png b/res/drawable-hdpi/contacts_no_account_empty.png
new file mode 100644
index 0000000..b957bd4
--- /dev/null
+++ b/res/drawable-hdpi/contacts_no_account_empty.png
Binary files differ
diff --git a/res/drawable-hdpi/expanding_entry_card_expand_white_24.png b/res/drawable-hdpi/expanding_entry_card_expand_white_24.png
deleted file mode 100644
index 50ebbc5..0000000
--- a/res/drawable-hdpi/expanding_entry_card_expand_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/fab_blue.png b/res/drawable-hdpi/fab_blue.png
deleted file mode 100644
index 8ff3d29..0000000
--- a/res/drawable-hdpi/fab_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/fab_pink.png b/res/drawable-hdpi/fab_pink.png
new file mode 100644
index 0000000..98b26d5
--- /dev/null
+++ b/res/drawable-hdpi/fab_pink.png
Binary files differ
diff --git a/res/drawable-hdpi/googlelogo_dark20_color_132x44.png b/res/drawable-hdpi/googlelogo_dark20_color_132x44.png
new file mode 100644
index 0000000..078c8a8
--- /dev/null
+++ b/res/drawable-hdpi/googlelogo_dark20_color_132x44.png
Binary files differ
diff --git a/res/drawable-hdpi/googlelogo_dark20_color_184x60.png b/res/drawable-hdpi/googlelogo_dark20_color_184x60.png
new file mode 100644
index 0000000..9d25e3d
--- /dev/null
+++ b/res/drawable-hdpi/googlelogo_dark20_color_184x60.png
Binary files differ
diff --git a/res/drawable-hdpi/home_empty.png b/res/drawable-hdpi/home_empty.png
new file mode 100644
index 0000000..b957bd4
--- /dev/null
+++ b/res/drawable-hdpi/home_empty.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_account_circle_black_24dp.png b/res/drawable-hdpi/ic_account_circle_black_24dp.png
deleted file mode 100644
index ba5a509..0000000
--- a/res/drawable-hdpi/ic_account_circle_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_contact_holo_light.png b/res/drawable-hdpi/ic_add_contact_holo_light.png
deleted file mode 100644
index 5229623..0000000
--- a/res/drawable-hdpi/ic_add_contact_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_group_holo_dark.png b/res/drawable-hdpi/ic_add_group_holo_dark.png
deleted file mode 100644
index 6d46ccf..0000000
--- a/res/drawable-hdpi/ic_add_group_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_to_circles_black_24.png b/res/drawable-hdpi/ic_add_to_circles_black_24.png
deleted file mode 100644
index 6eb1fcc..0000000
--- a/res/drawable-hdpi/ic_add_to_circles_black_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_business_black_24dp.png b/res/drawable-hdpi/ic_business_black_24dp.png
deleted file mode 100644
index fa069ab..0000000
--- a/res/drawable-hdpi/ic_business_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_business_white_120dp.png b/res/drawable-hdpi/ic_business_white_120dp.png
new file mode 100644
index 0000000..d5942dc
--- /dev/null
+++ b/res/drawable-hdpi/ic_business_white_120dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_camera_alt_black_24dp.png b/res/drawable-hdpi/ic_camera_alt_black_24dp.png
deleted file mode 100644
index 4978a3a..0000000
--- a/res/drawable-hdpi/ic_camera_alt_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_check_circle_googblue_drawable_24dp.png b/res/drawable-hdpi/ic_check_circle_googblue_drawable_24dp.png
deleted file mode 100644
index da6561d..0000000
--- a/res/drawable-hdpi/ic_check_circle_googblue_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_circles_extended_black_24dp.png b/res/drawable-hdpi/ic_circles_extended_black_24dp.png
deleted file mode 100644
index 8973e89..0000000
--- a/res/drawable-hdpi/ic_circles_extended_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_contacts_holo_dark.png b/res/drawable-hdpi/ic_contacts_holo_dark.png
deleted file mode 100644
index e5deb01..0000000
--- a/res/drawable-hdpi/ic_contacts_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_dialer_sip_black_24dp.png b/res/drawable-hdpi/ic_dialer_sip_black_24dp.png
deleted file mode 100644
index 37dabfc..0000000
--- a/res/drawable-hdpi/ic_dialer_sip_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_directions_24dp.png b/res/drawable-hdpi/ic_directions_24dp.png
deleted file mode 100644
index c378972..0000000
--- a/res/drawable-hdpi/ic_directions_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_done_wht_24dp.png b/res/drawable-hdpi/ic_done_wht_24dp.png
deleted file mode 100644
index 12ce8e0..0000000
--- a/res/drawable-hdpi/ic_done_wht_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_email_24dp.png b/res/drawable-hdpi/ic_email_24dp.png
deleted file mode 100644
index 231b141..0000000
--- a/res/drawable-hdpi/ic_email_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_event_24dp.png b/res/drawable-hdpi/ic_event_24dp.png
deleted file mode 100644
index 023695a..0000000
--- a/res/drawable-hdpi/ic_event_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_google_plus_24dp.png b/res/drawable-hdpi/ic_google_plus_24dp.png
deleted file mode 100644
index af17f2b..0000000
--- a/res/drawable-hdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_hangout_24dp.png b/res/drawable-hdpi/ic_hangout_24dp.png
deleted file mode 100644
index 496a2a0..0000000
--- a/res/drawable-hdpi/ic_hangout_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_hangout_video_24dp.png b/res/drawable-hdpi/ic_hangout_video_24dp.png
deleted file mode 100644
index 0825a15..0000000
--- a/res/drawable-hdpi/ic_hangout_video_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_insert_comment_black_24dp.png b/res/drawable-hdpi/ic_insert_comment_black_24dp.png
deleted file mode 100644
index d472658..0000000
--- a/res/drawable-hdpi/ic_insert_comment_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_link_grey600_drawable_24dp.png b/res/drawable-hdpi/ic_link_grey600_drawable_24dp.png
deleted file mode 100644
index 31fcce2..0000000
--- a/res/drawable-hdpi/ic_link_grey600_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_expander_maximized_holo_light.png b/res/drawable-hdpi/ic_menu_expander_maximized_holo_light.png
deleted file mode 100644
index 41c6eda..0000000
--- a/res/drawable-hdpi/ic_menu_expander_maximized_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_expander_minimized_holo_light.png b/res/drawable-hdpi/ic_menu_expander_minimized_holo_light.png
deleted file mode 100644
index a3b22bc..0000000
--- a/res/drawable-hdpi/ic_menu_expander_minimized_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_people_black_24dp.png b/res/drawable-hdpi/ic_people_black_24dp.png
deleted file mode 100644
index 10c46a9..0000000
--- a/res/drawable-hdpi/ic_people_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_person_avatar.png b/res/drawable-hdpi/ic_person_avatar.png
new file mode 100644
index 0000000..2da477e
--- /dev/null
+++ b/res/drawable-hdpi/ic_person_avatar.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_person_black_128dp.png b/res/drawable-hdpi/ic_person_black_128dp.png
deleted file mode 100644
index 93b7886..0000000
--- a/res/drawable-hdpi/ic_person_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_person_black_24dp.png b/res/drawable-hdpi/ic_person_black_24dp.png
deleted file mode 100644
index 2eeb7c6..0000000
--- a/res/drawable-hdpi/ic_person_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_phone_24dp.png b/res/drawable-hdpi/ic_phone_24dp.png
deleted file mode 100644
index a6a6448..0000000
--- a/res/drawable-hdpi/ic_phone_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_photo_camera_white_24dp.png b/res/drawable-hdpi/ic_photo_camera_white_24dp.png
deleted file mode 100644
index 497c88c..0000000
--- a/res/drawable-hdpi/ic_photo_camera_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_photos_white_24.png b/res/drawable-hdpi/ic_photos_white_24.png
deleted file mode 100644
index a5180a1..0000000
--- a/res/drawable-hdpi/ic_photos_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_place_24dp.png b/res/drawable-hdpi/ic_place_24dp.png
deleted file mode 100644
index 8e21320..0000000
--- a/res/drawable-hdpi/ic_place_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_public_black_24dp.png b/res/drawable-hdpi/ic_public_black_24dp.png
deleted file mode 100644
index e3cdeb4..0000000
--- a/res/drawable-hdpi/ic_public_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_24dp.png b/res/drawable-hdpi/ic_star_24dp.png
deleted file mode 100644
index b3d2f44..0000000
--- a/res/drawable-hdpi/ic_star_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_black_128dp.png b/res/drawable-hdpi/ic_star_black_128dp.png
deleted file mode 100644
index a0cb1c1..0000000
--- a/res/drawable-hdpi/ic_star_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_outline_24dp.png b/res/drawable-hdpi/ic_star_outline_24dp.png
deleted file mode 100644
index 4d4b7c1..0000000
--- a/res/drawable-hdpi/ic_star_outline_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_voicemail_avatar.png b/res/drawable-hdpi/ic_voicemail_avatar.png
new file mode 100644
index 0000000..2fb7826
--- /dev/null
+++ b/res/drawable-hdpi/ic_voicemail_avatar.png
Binary files differ
diff --git a/res/drawable-hdpi/label_empty.png b/res/drawable-hdpi/label_empty.png
new file mode 100644
index 0000000..e400f04
--- /dev/null
+++ b/res/drawable-hdpi/label_empty.png
Binary files differ
diff --git a/res/drawable-hdpi/panel_content.9.png b/res/drawable-hdpi/panel_content.9.png
deleted file mode 100644
index 5c3090d..0000000
--- a/res/drawable-hdpi/panel_content.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/product_logo_contacts_color_144.png b/res/drawable-hdpi/product_logo_contacts_color_144.png
new file mode 100644
index 0000000..d26a363
--- /dev/null
+++ b/res/drawable-hdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-hdpi/product_logo_contacts_color_192.png b/res/drawable-hdpi/product_logo_contacts_color_192.png
new file mode 100644
index 0000000..ebd8a8b
--- /dev/null
+++ b/res/drawable-hdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-hdpi/quantum_ic_assistant_grey600_48.png b/res/drawable-hdpi/quantum_ic_assistant_grey600_48.png
deleted file mode 100644
index a3aa76f..0000000
--- a/res/drawable-hdpi/quantum_ic_assistant_grey600_48.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/quickcontact_badge_overlay_normal_light.9.png b/res/drawable-hdpi/quickcontact_badge_overlay_normal_light.9.png
deleted file mode 100644
index db4ce80..0000000
--- a/res/drawable-hdpi/quickcontact_badge_overlay_normal_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/quickcontact_badge_overlay_pressed_light.9.png b/res/drawable-hdpi/quickcontact_badge_overlay_pressed_light.9.png
deleted file mode 100644
index 169cd4e..0000000
--- a/res/drawable-hdpi/quickcontact_badge_overlay_pressed_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/spinner_default_holo_dark.9.png b/res/drawable-hdpi/spinner_default_holo_dark.9.png
deleted file mode 100644
index 34a88df..0000000
--- a/res/drawable-hdpi/spinner_default_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/sym_action_audiochat_holo_light.png b/res/drawable-hdpi/sym_action_audiochat_holo_light.png
deleted file mode 100644
index 8bea3ec..0000000
--- a/res/drawable-hdpi/sym_action_audiochat_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/sym_action_videochat_holo_light.png b/res/drawable-hdpi/sym_action_videochat_holo_light.png
deleted file mode 100644
index b86c435..0000000
--- a/res/drawable-hdpi/sym_action_videochat_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/unknown_source.png b/res/drawable-hdpi/unknown_source.png
new file mode 100644
index 0000000..0a8f37d
--- /dev/null
+++ b/res/drawable-hdpi/unknown_source.png
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_add_contact_holo_light.png b/res/drawable-ldrtl-hdpi/ic_add_contact_holo_light.png
deleted file mode 100644
index 4cf24e2..0000000
--- a/res/drawable-ldrtl-hdpi/ic_add_contact_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_add_group_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_add_group_holo_dark.png
deleted file mode 100644
index 54f247a..0000000
--- a/res/drawable-ldrtl-hdpi/ic_add_group_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_contacts_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_contacts_holo_dark.png
deleted file mode 100644
index ee4d09f..0000000
--- a/res/drawable-ldrtl-hdpi/ic_contacts_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/panel_content.9.png b/res/drawable-ldrtl-hdpi/panel_content.9.png
deleted file mode 100644
index 1ab1f12..0000000
--- a/res/drawable-ldrtl-hdpi/panel_content.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/quantum_ic_assistant_grey600_48.png b/res/drawable-ldrtl-hdpi/quantum_ic_assistant_grey600_48.png
deleted file mode 100644
index a3aa76f..0000000
--- a/res/drawable-ldrtl-hdpi/quantum_ic_assistant_grey600_48.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/quickcontact_badge_overlay_normal_light.9.png b/res/drawable-ldrtl-hdpi/quickcontact_badge_overlay_normal_light.9.png
deleted file mode 100644
index 1f833d3..0000000
--- a/res/drawable-ldrtl-hdpi/quickcontact_badge_overlay_normal_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/quickcontact_badge_overlay_pressed_light.9.png b/res/drawable-ldrtl-hdpi/quickcontact_badge_overlay_pressed_light.9.png
deleted file mode 100644
index 3adbc84..0000000
--- a/res/drawable-ldrtl-hdpi/quickcontact_badge_overlay_pressed_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/spinner_default_holo_dark.9.png b/res/drawable-ldrtl-hdpi/spinner_default_holo_dark.9.png
deleted file mode 100644
index 0b28e92..0000000
--- a/res/drawable-ldrtl-hdpi/spinner_default_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_add_contact_holo_light.png b/res/drawable-ldrtl-mdpi/ic_add_contact_holo_light.png
deleted file mode 100644
index 5c0f756..0000000
--- a/res/drawable-ldrtl-mdpi/ic_add_contact_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_add_group_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_add_group_holo_dark.png
deleted file mode 100644
index a984b56..0000000
--- a/res/drawable-ldrtl-mdpi/ic_add_group_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_contacts_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_contacts_holo_dark.png
deleted file mode 100644
index 13ddb2b..0000000
--- a/res/drawable-ldrtl-mdpi/ic_contacts_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/panel_content.9.png b/res/drawable-ldrtl-mdpi/panel_content.9.png
deleted file mode 100644
index b157502..0000000
--- a/res/drawable-ldrtl-mdpi/panel_content.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/quantum_ic_assistant_grey600_48.png b/res/drawable-ldrtl-mdpi/quantum_ic_assistant_grey600_48.png
deleted file mode 100644
index a3aa76f..0000000
--- a/res/drawable-ldrtl-mdpi/quantum_ic_assistant_grey600_48.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/quickcontact_badge_overlay_normal_light.9.png b/res/drawable-ldrtl-mdpi/quickcontact_badge_overlay_normal_light.9.png
deleted file mode 100644
index 1b0905a..0000000
--- a/res/drawable-ldrtl-mdpi/quickcontact_badge_overlay_normal_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/quickcontact_badge_overlay_pressed_light.9.png b/res/drawable-ldrtl-mdpi/quickcontact_badge_overlay_pressed_light.9.png
deleted file mode 100644
index 179644c..0000000
--- a/res/drawable-ldrtl-mdpi/quickcontact_badge_overlay_pressed_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/spinner_default_holo_dark.9.png b/res/drawable-ldrtl-mdpi/spinner_default_holo_dark.9.png
deleted file mode 100644
index 770a865..0000000
--- a/res/drawable-ldrtl-mdpi/spinner_default_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_add_contact_holo_light.png b/res/drawable-ldrtl-xhdpi/ic_add_contact_holo_light.png
deleted file mode 100644
index 2bd27c7..0000000
--- a/res/drawable-ldrtl-xhdpi/ic_add_contact_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_add_group_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_add_group_holo_dark.png
deleted file mode 100644
index 3688e46..0000000
--- a/res/drawable-ldrtl-xhdpi/ic_add_group_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_contacts_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_contacts_holo_dark.png
deleted file mode 100644
index 7aed2ed..0000000
--- a/res/drawable-ldrtl-xhdpi/ic_contacts_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/panel_content.9.png b/res/drawable-ldrtl-xhdpi/panel_content.9.png
deleted file mode 100644
index eb0e2d7..0000000
--- a/res/drawable-ldrtl-xhdpi/panel_content.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/quantum_ic_assistant_grey600_48.png b/res/drawable-ldrtl-xhdpi/quantum_ic_assistant_grey600_48.png
deleted file mode 100644
index a3aa76f..0000000
--- a/res/drawable-ldrtl-xhdpi/quantum_ic_assistant_grey600_48.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/quickcontact_badge_overlay_normal_light.9.png b/res/drawable-ldrtl-xhdpi/quickcontact_badge_overlay_normal_light.9.png
deleted file mode 100644
index 6b22d44..0000000
--- a/res/drawable-ldrtl-xhdpi/quickcontact_badge_overlay_normal_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/quickcontact_badge_overlay_pressed_light.9.png b/res/drawable-ldrtl-xhdpi/quickcontact_badge_overlay_pressed_light.9.png
deleted file mode 100644
index 2a1d508..0000000
--- a/res/drawable-ldrtl-xhdpi/quickcontact_badge_overlay_pressed_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/spinner_default_holo_dark.9.png b/res/drawable-ldrtl-xhdpi/spinner_default_holo_dark.9.png
deleted file mode 100644
index afc72b2..0000000
--- a/res/drawable-ldrtl-xhdpi/spinner_default_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ab_solid_custom_blue_inverse_holo.9.png b/res/drawable-mdpi/ab_solid_custom_blue_inverse_holo.9.png
deleted file mode 100644
index 3e9f167..0000000
--- a/res/drawable-mdpi/ab_solid_custom_blue_inverse_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ab_stacked_solid_inverse_holo.9.png b/res/drawable-mdpi/ab_stacked_solid_inverse_holo.9.png
deleted file mode 100644
index a823841..0000000
--- a/res/drawable-mdpi/ab_stacked_solid_inverse_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/accounts_empty.png b/res/drawable-mdpi/accounts_empty.png
new file mode 100644
index 0000000..76cb543
--- /dev/null
+++ b/res/drawable-mdpi/accounts_empty.png
Binary files differ
diff --git a/res/drawable-mdpi/aggregation_suggestions_bg.9.png b/res/drawable-mdpi/aggregation_suggestions_bg.9.png
deleted file mode 100644
index 6cce274..0000000
--- a/res/drawable-mdpi/aggregation_suggestions_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/aggregation_suggestions_bg_light_holo.9.png b/res/drawable-mdpi/aggregation_suggestions_bg_light_holo.9.png
deleted file mode 100644
index 03e24c6..0000000
--- a/res/drawable-mdpi/aggregation_suggestions_bg_light_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_star_off_normal_holo_light.png b/res/drawable-mdpi/btn_star_off_normal_holo_light.png
deleted file mode 100644
index 3bb4154..0000000
--- a/res/drawable-mdpi/btn_star_off_normal_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_star_on_normal_holo_light.png b/res/drawable-mdpi/btn_star_on_normal_holo_light.png
deleted file mode 100644
index 4da97e2..0000000
--- a/res/drawable-mdpi/btn_star_on_normal_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/contacts_no_account_empty.png b/res/drawable-mdpi/contacts_no_account_empty.png
new file mode 100644
index 0000000..84334a9
--- /dev/null
+++ b/res/drawable-mdpi/contacts_no_account_empty.png
Binary files differ
diff --git a/res/drawable-mdpi/expanding_entry_card_expand_white_24.png b/res/drawable-mdpi/expanding_entry_card_expand_white_24.png
deleted file mode 100644
index a0d4063..0000000
--- a/res/drawable-mdpi/expanding_entry_card_expand_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/fab_blue.png b/res/drawable-mdpi/fab_blue.png
deleted file mode 100644
index 2ca6b4b..0000000
--- a/res/drawable-mdpi/fab_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/fab_pink.png b/res/drawable-mdpi/fab_pink.png
new file mode 100644
index 0000000..46df9f8
--- /dev/null
+++ b/res/drawable-mdpi/fab_pink.png
Binary files differ
diff --git a/res/drawable-mdpi/googlelogo_dark20_color_132x44.png b/res/drawable-mdpi/googlelogo_dark20_color_132x44.png
new file mode 100644
index 0000000..a045dab
--- /dev/null
+++ b/res/drawable-mdpi/googlelogo_dark20_color_132x44.png
Binary files differ
diff --git a/res/drawable-mdpi/googlelogo_dark20_color_184x60.png b/res/drawable-mdpi/googlelogo_dark20_color_184x60.png
new file mode 100644
index 0000000..d1181a9
--- /dev/null
+++ b/res/drawable-mdpi/googlelogo_dark20_color_184x60.png
Binary files differ
diff --git a/res/drawable-mdpi/home_empty.png b/res/drawable-mdpi/home_empty.png
new file mode 100644
index 0000000..84334a9
--- /dev/null
+++ b/res/drawable-mdpi/home_empty.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_account_circle_black_24dp.png b/res/drawable-mdpi/ic_account_circle_black_24dp.png
deleted file mode 100644
index 0c1202d..0000000
--- a/res/drawable-mdpi/ic_account_circle_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_contact_holo_light.png b/res/drawable-mdpi/ic_add_contact_holo_light.png
deleted file mode 100644
index 06a43a2..0000000
--- a/res/drawable-mdpi/ic_add_contact_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_group_holo_dark.png b/res/drawable-mdpi/ic_add_group_holo_dark.png
deleted file mode 100644
index a676ab8..0000000
--- a/res/drawable-mdpi/ic_add_group_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_to_circles_black_24.png b/res/drawable-mdpi/ic_add_to_circles_black_24.png
deleted file mode 100644
index fbffc97..0000000
--- a/res/drawable-mdpi/ic_add_to_circles_black_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_business_black_24dp.png b/res/drawable-mdpi/ic_business_black_24dp.png
deleted file mode 100644
index 1c54f8b..0000000
--- a/res/drawable-mdpi/ic_business_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_business_white_120dp.png b/res/drawable-mdpi/ic_business_white_120dp.png
new file mode 100644
index 0000000..3dddca5
--- /dev/null
+++ b/res/drawable-mdpi/ic_business_white_120dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_camera_alt_black_24dp.png b/res/drawable-mdpi/ic_camera_alt_black_24dp.png
deleted file mode 100644
index 90dd073..0000000
--- a/res/drawable-mdpi/ic_camera_alt_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_check_circle_googblue_drawable_24dp.png b/res/drawable-mdpi/ic_check_circle_googblue_drawable_24dp.png
deleted file mode 100644
index efa2fdf..0000000
--- a/res/drawable-mdpi/ic_check_circle_googblue_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_circles_extended_black_24dp.png b/res/drawable-mdpi/ic_circles_extended_black_24dp.png
deleted file mode 100644
index e851532..0000000
--- a/res/drawable-mdpi/ic_circles_extended_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_contacts_holo_dark.png b/res/drawable-mdpi/ic_contacts_holo_dark.png
deleted file mode 100644
index d08b94a..0000000
--- a/res/drawable-mdpi/ic_contacts_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_dialer_sip_black_24dp.png b/res/drawable-mdpi/ic_dialer_sip_black_24dp.png
deleted file mode 100644
index 51d5e13..0000000
--- a/res/drawable-mdpi/ic_dialer_sip_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_directions_24dp.png b/res/drawable-mdpi/ic_directions_24dp.png
deleted file mode 100644
index bd171d2..0000000
--- a/res/drawable-mdpi/ic_directions_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_done_wht_24dp.png b/res/drawable-mdpi/ic_done_wht_24dp.png
deleted file mode 100644
index 1032711..0000000
--- a/res/drawable-mdpi/ic_done_wht_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_email_24dp.png b/res/drawable-mdpi/ic_email_24dp.png
deleted file mode 100644
index c32d03a..0000000
--- a/res/drawable-mdpi/ic_email_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_event_24dp.png b/res/drawable-mdpi/ic_event_24dp.png
deleted file mode 100644
index f5abeb7..0000000
--- a/res/drawable-mdpi/ic_event_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_google_plus_24dp.png b/res/drawable-mdpi/ic_google_plus_24dp.png
deleted file mode 100644
index d8eacf0..0000000
--- a/res/drawable-mdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_hangout_24dp.png b/res/drawable-mdpi/ic_hangout_24dp.png
deleted file mode 100644
index 1b0acfd..0000000
--- a/res/drawable-mdpi/ic_hangout_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_hangout_video_24dp.png b/res/drawable-mdpi/ic_hangout_video_24dp.png
deleted file mode 100644
index b54b1cb..0000000
--- a/res/drawable-mdpi/ic_hangout_video_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_insert_comment_black_24dp.png b/res/drawable-mdpi/ic_insert_comment_black_24dp.png
deleted file mode 100644
index 3a2bda7..0000000
--- a/res/drawable-mdpi/ic_insert_comment_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_link_grey600_drawable_24dp.png b/res/drawable-mdpi/ic_link_grey600_drawable_24dp.png
deleted file mode 100644
index 65997eb..0000000
--- a/res/drawable-mdpi/ic_link_grey600_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_expander_maximized_holo_light.png b/res/drawable-mdpi/ic_menu_expander_maximized_holo_light.png
deleted file mode 100644
index 342867c..0000000
--- a/res/drawable-mdpi/ic_menu_expander_maximized_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_expander_minimized_holo_light.png b/res/drawable-mdpi/ic_menu_expander_minimized_holo_light.png
deleted file mode 100644
index f447069..0000000
--- a/res/drawable-mdpi/ic_menu_expander_minimized_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_people_black_24dp.png b/res/drawable-mdpi/ic_people_black_24dp.png
deleted file mode 100644
index 807f174..0000000
--- a/res/drawable-mdpi/ic_people_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_person_avatar.png b/res/drawable-mdpi/ic_person_avatar.png
new file mode 100644
index 0000000..31a40fb
--- /dev/null
+++ b/res/drawable-mdpi/ic_person_avatar.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_person_black_128dp.png b/res/drawable-mdpi/ic_person_black_128dp.png
deleted file mode 100644
index 4da7118..0000000
--- a/res/drawable-mdpi/ic_person_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_person_black_24dp.png b/res/drawable-mdpi/ic_person_black_24dp.png
deleted file mode 100644
index 8c415b9..0000000
--- a/res/drawable-mdpi/ic_person_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_phone_24dp.png b/res/drawable-mdpi/ic_phone_24dp.png
deleted file mode 100644
index 2286bb4..0000000
--- a/res/drawable-mdpi/ic_phone_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_photo_camera_white_24dp.png b/res/drawable-mdpi/ic_photo_camera_white_24dp.png
deleted file mode 100644
index e830522..0000000
--- a/res/drawable-mdpi/ic_photo_camera_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_photos_white_24.png b/res/drawable-mdpi/ic_photos_white_24.png
deleted file mode 100644
index e0e5854..0000000
--- a/res/drawable-mdpi/ic_photos_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_place_24dp.png b/res/drawable-mdpi/ic_place_24dp.png
deleted file mode 100644
index 2ef1381..0000000
--- a/res/drawable-mdpi/ic_place_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_public_black_24dp.png b/res/drawable-mdpi/ic_public_black_24dp.png
deleted file mode 100644
index b18b4ec..0000000
--- a/res/drawable-mdpi/ic_public_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_star_24dp.png b/res/drawable-mdpi/ic_star_24dp.png
deleted file mode 100644
index b8f32f8..0000000
--- a/res/drawable-mdpi/ic_star_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_star_black_128dp.png b/res/drawable-mdpi/ic_star_black_128dp.png
deleted file mode 100644
index 1ba2792..0000000
--- a/res/drawable-mdpi/ic_star_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_star_outline_24dp.png b/res/drawable-mdpi/ic_star_outline_24dp.png
deleted file mode 100644
index 22b4fb8..0000000
--- a/res/drawable-mdpi/ic_star_outline_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_voicemail_avatar.png b/res/drawable-mdpi/ic_voicemail_avatar.png
new file mode 100644
index 0000000..4005f24
--- /dev/null
+++ b/res/drawable-mdpi/ic_voicemail_avatar.png
Binary files differ
diff --git a/res/drawable-mdpi/label_empty.png b/res/drawable-mdpi/label_empty.png
new file mode 100644
index 0000000..360cbd2
--- /dev/null
+++ b/res/drawable-mdpi/label_empty.png
Binary files differ
diff --git a/res/drawable-mdpi/panel_content.9.png b/res/drawable-mdpi/panel_content.9.png
deleted file mode 100644
index c5d2545..0000000
--- a/res/drawable-mdpi/panel_content.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/product_logo_contacts_color_144.png b/res/drawable-mdpi/product_logo_contacts_color_144.png
new file mode 100644
index 0000000..e28097c
--- /dev/null
+++ b/res/drawable-mdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-mdpi/product_logo_contacts_color_192.png b/res/drawable-mdpi/product_logo_contacts_color_192.png
new file mode 100644
index 0000000..a8fcbf0
--- /dev/null
+++ b/res/drawable-mdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-mdpi/quantum_ic_assistant_grey600_48.png b/res/drawable-mdpi/quantum_ic_assistant_grey600_48.png
deleted file mode 100644
index a3aa76f..0000000
--- a/res/drawable-mdpi/quantum_ic_assistant_grey600_48.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/quickcontact_badge_overlay_normal_light.9.png b/res/drawable-mdpi/quickcontact_badge_overlay_normal_light.9.png
deleted file mode 100644
index 886b044..0000000
--- a/res/drawable-mdpi/quickcontact_badge_overlay_normal_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/quickcontact_badge_overlay_pressed_light.9.png b/res/drawable-mdpi/quickcontact_badge_overlay_pressed_light.9.png
deleted file mode 100644
index c714a3b..0000000
--- a/res/drawable-mdpi/quickcontact_badge_overlay_pressed_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/spinner_default_holo_dark.9.png b/res/drawable-mdpi/spinner_default_holo_dark.9.png
deleted file mode 100644
index 48af192..0000000
--- a/res/drawable-mdpi/spinner_default_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/sym_action_audiochat_holo_light.png b/res/drawable-mdpi/sym_action_audiochat_holo_light.png
deleted file mode 100644
index 9e6e328..0000000
--- a/res/drawable-mdpi/sym_action_audiochat_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/sym_action_videochat_holo_light.png b/res/drawable-mdpi/sym_action_videochat_holo_light.png
deleted file mode 100644
index 0ef40f8..0000000
--- a/res/drawable-mdpi/sym_action_videochat_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/unknown_source.png b/res/drawable-mdpi/unknown_source.png
new file mode 100644
index 0000000..356748f
--- /dev/null
+++ b/res/drawable-mdpi/unknown_source.png
Binary files differ
diff --git a/res/drawable-sw600dp/quantum_launchscreen_contacts.xml b/res/drawable-sw600dp/quantum_launchscreen_contacts.xml
new file mode 100755
index 0000000..5cc35d5
--- /dev/null
+++ b/res/drawable-sw600dp/quantum_launchscreen_contacts.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    android:opacity="opaque">
+    <item android:drawable="@android:color/white" />
+    <item
+        android:id="@+id/launchscreens_product_logo"
+        android:bottom="@dimen/launchscreens_product_logo_bottom">
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/product_logo_contacts_color_192" />
+    </item>
+    <item
+        android:id="@+id/launchscreens_logo_text"
+        android:bottom="@dimen/launchscreens_google_logo_bottom">
+        <bitmap
+            android:gravity="center_horizontal|bottom"
+            android:src="@drawable/googlelogo_dark20_color_184x60" />
+    </item>
+</layer-list>
diff --git a/res/drawable-v21/floating_action_button.xml b/res/drawable-v21/floating_action_button.xml
deleted file mode 100644
index 9a90112..0000000
--- a/res/drawable-v21/floating_action_button.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
-     android:color="@color/contacts_accent_color">
-     <item android:id="@android:id/mask">
-          <shape android:shape="oval">
-               <solid android:color="@android:color/white" />
-          </shape>
-     </item>
-</ripple>
\ No newline at end of file
diff --git a/res/drawable-v21/view_pager_tab_background.xml b/res/drawable-v21/view_pager_tab_background.xml
deleted file mode 100644
index 00c6db7..0000000
--- a/res/drawable-v21/view_pager_tab_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2015 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
-  -->
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
-    android:color="@color/tab_ripple_color">
-    <item android:id="@android:id/mask">
-        <color android:color="@android:color/white" />
-    </item>
-</ripple>
\ No newline at end of file
diff --git a/res/drawable-xhdpi/ab_solid_custom_blue_inverse_holo.9.png b/res/drawable-xhdpi/ab_solid_custom_blue_inverse_holo.9.png
deleted file mode 100644
index 31fea59..0000000
--- a/res/drawable-xhdpi/ab_solid_custom_blue_inverse_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ab_stacked_solid_inverse_holo.9.png b/res/drawable-xhdpi/ab_stacked_solid_inverse_holo.9.png
deleted file mode 100644
index 16b9bef..0000000
--- a/res/drawable-xhdpi/ab_stacked_solid_inverse_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/accounts_empty.png b/res/drawable-xhdpi/accounts_empty.png
new file mode 100644
index 0000000..40f8672
--- /dev/null
+++ b/res/drawable-xhdpi/accounts_empty.png
Binary files differ
diff --git a/res/drawable-xhdpi/aggregation_suggestions_bg.9.png b/res/drawable-xhdpi/aggregation_suggestions_bg.9.png
deleted file mode 100644
index 816cc0b..0000000
--- a/res/drawable-xhdpi/aggregation_suggestions_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/aggregation_suggestions_bg_light_holo.9.png b/res/drawable-xhdpi/aggregation_suggestions_bg_light_holo.9.png
deleted file mode 100644
index 94ae50a..0000000
--- a/res/drawable-xhdpi/aggregation_suggestions_bg_light_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_star_off_normal_holo_light.png b/res/drawable-xhdpi/btn_star_off_normal_holo_light.png
deleted file mode 100644
index e6048d9..0000000
--- a/res/drawable-xhdpi/btn_star_off_normal_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_star_on_normal_holo_light.png b/res/drawable-xhdpi/btn_star_on_normal_holo_light.png
deleted file mode 100644
index 5588118..0000000
--- a/res/drawable-xhdpi/btn_star_on_normal_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/contacts_no_account_empty.png b/res/drawable-xhdpi/contacts_no_account_empty.png
new file mode 100644
index 0000000..188ebdf
--- /dev/null
+++ b/res/drawable-xhdpi/contacts_no_account_empty.png
Binary files differ
diff --git a/res/drawable-xhdpi/expanding_entry_card_expand_white_24.png b/res/drawable-xhdpi/expanding_entry_card_expand_white_24.png
deleted file mode 100644
index 42e9f2c..0000000
--- a/res/drawable-xhdpi/expanding_entry_card_expand_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/fab_blue.png b/res/drawable-xhdpi/fab_blue.png
deleted file mode 100644
index 300b07e..0000000
--- a/res/drawable-xhdpi/fab_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/fab_pink.png b/res/drawable-xhdpi/fab_pink.png
new file mode 100644
index 0000000..5f214d6
--- /dev/null
+++ b/res/drawable-xhdpi/fab_pink.png
Binary files differ
diff --git a/res/drawable-xhdpi/googlelogo_dark20_color_132x44.png b/res/drawable-xhdpi/googlelogo_dark20_color_132x44.png
new file mode 100644
index 0000000..437f083
--- /dev/null
+++ b/res/drawable-xhdpi/googlelogo_dark20_color_132x44.png
Binary files differ
diff --git a/res/drawable-xhdpi/googlelogo_dark20_color_184x60.png b/res/drawable-xhdpi/googlelogo_dark20_color_184x60.png
new file mode 100644
index 0000000..2bd813f
--- /dev/null
+++ b/res/drawable-xhdpi/googlelogo_dark20_color_184x60.png
Binary files differ
diff --git a/res/drawable-xhdpi/home_empty.png b/res/drawable-xhdpi/home_empty.png
new file mode 100644
index 0000000..188ebdf
--- /dev/null
+++ b/res/drawable-xhdpi/home_empty.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_account_circle_black_24dp.png b/res/drawable-xhdpi/ic_account_circle_black_24dp.png
deleted file mode 100644
index f26b201..0000000
--- a/res/drawable-xhdpi/ic_account_circle_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_contact_holo_light.png b/res/drawable-xhdpi/ic_add_contact_holo_light.png
deleted file mode 100644
index 4fa8b94..0000000
--- a/res/drawable-xhdpi/ic_add_contact_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_group_holo_dark.png b/res/drawable-xhdpi/ic_add_group_holo_dark.png
deleted file mode 100644
index 85924ab..0000000
--- a/res/drawable-xhdpi/ic_add_group_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_to_circles_black_24.png b/res/drawable-xhdpi/ic_add_to_circles_black_24.png
deleted file mode 100644
index 79116b5..0000000
--- a/res/drawable-xhdpi/ic_add_to_circles_black_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_business_black_24dp.png b/res/drawable-xhdpi/ic_business_black_24dp.png
deleted file mode 100644
index 9e3b9b8..0000000
--- a/res/drawable-xhdpi/ic_business_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_business_white_120dp.png b/res/drawable-xhdpi/ic_business_white_120dp.png
new file mode 100644
index 0000000..6256300
--- /dev/null
+++ b/res/drawable-xhdpi/ic_business_white_120dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_camera_alt_black_24dp.png b/res/drawable-xhdpi/ic_camera_alt_black_24dp.png
deleted file mode 100644
index 8522251..0000000
--- a/res/drawable-xhdpi/ic_camera_alt_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_check_circle_googblue_drawable_24dp.png b/res/drawable-xhdpi/ic_check_circle_googblue_drawable_24dp.png
deleted file mode 100644
index 70a22c9..0000000
--- a/res/drawable-xhdpi/ic_check_circle_googblue_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_circles_extended_black_24dp.png b/res/drawable-xhdpi/ic_circles_extended_black_24dp.png
deleted file mode 100644
index e87e928..0000000
--- a/res/drawable-xhdpi/ic_circles_extended_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_contacts_holo_dark.png b/res/drawable-xhdpi/ic_contacts_holo_dark.png
deleted file mode 100644
index dc4c390..0000000
--- a/res/drawable-xhdpi/ic_contacts_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dialer_sip_black_24dp.png b/res/drawable-xhdpi/ic_dialer_sip_black_24dp.png
deleted file mode 100644
index 619a79f..0000000
--- a/res/drawable-xhdpi/ic_dialer_sip_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_directions_24dp.png b/res/drawable-xhdpi/ic_directions_24dp.png
deleted file mode 100644
index 99cde4a..0000000
--- a/res/drawable-xhdpi/ic_directions_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_done_wht_24dp.png b/res/drawable-xhdpi/ic_done_wht_24dp.png
deleted file mode 100644
index e34b73e..0000000
--- a/res/drawable-xhdpi/ic_done_wht_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_email_24dp.png b/res/drawable-xhdpi/ic_email_24dp.png
deleted file mode 100644
index adf14ef..0000000
--- a/res/drawable-xhdpi/ic_email_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_event_24dp.png b/res/drawable-xhdpi/ic_event_24dp.png
deleted file mode 100644
index a2bd4b2..0000000
--- a/res/drawable-xhdpi/ic_event_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_google_plus_24dp.png b/res/drawable-xhdpi/ic_google_plus_24dp.png
deleted file mode 100644
index ea352d3..0000000
--- a/res/drawable-xhdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hangout_24dp.png b/res/drawable-xhdpi/ic_hangout_24dp.png
deleted file mode 100644
index 0cd7795..0000000
--- a/res/drawable-xhdpi/ic_hangout_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hangout_video_24dp.png b/res/drawable-xhdpi/ic_hangout_video_24dp.png
deleted file mode 100644
index 97b984c..0000000
--- a/res/drawable-xhdpi/ic_hangout_video_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_insert_comment_black_24dp.png b/res/drawable-xhdpi/ic_insert_comment_black_24dp.png
deleted file mode 100644
index 3ddd56b..0000000
--- a/res/drawable-xhdpi/ic_insert_comment_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_link_grey600_drawable_24dp.png b/res/drawable-xhdpi/ic_link_grey600_drawable_24dp.png
deleted file mode 100644
index 9f37410..0000000
--- a/res/drawable-xhdpi/ic_link_grey600_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_expander_maximized_holo_light.png b/res/drawable-xhdpi/ic_menu_expander_maximized_holo_light.png
deleted file mode 100644
index 6a5ef9b..0000000
--- a/res/drawable-xhdpi/ic_menu_expander_maximized_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_expander_minimized_holo_light.png b/res/drawable-xhdpi/ic_menu_expander_minimized_holo_light.png
deleted file mode 100644
index cb53db8..0000000
--- a/res/drawable-xhdpi/ic_menu_expander_minimized_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_people_black_24dp.png b/res/drawable-xhdpi/ic_people_black_24dp.png
deleted file mode 100644
index 1b90bed..0000000
--- a/res/drawable-xhdpi/ic_people_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_person_avatar.png b/res/drawable-xhdpi/ic_person_avatar.png
new file mode 100644
index 0000000..aecc9af
--- /dev/null
+++ b/res/drawable-xhdpi/ic_person_avatar.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_person_black_128dp.png b/res/drawable-xhdpi/ic_person_black_128dp.png
deleted file mode 100644
index 04445b6..0000000
--- a/res/drawable-xhdpi/ic_person_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_person_black_24dp.png b/res/drawable-xhdpi/ic_person_black_24dp.png
deleted file mode 100644
index ec56af9..0000000
--- a/res/drawable-xhdpi/ic_person_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_phone_24dp.png b/res/drawable-xhdpi/ic_phone_24dp.png
deleted file mode 100644
index cd9ff60..0000000
--- a/res/drawable-xhdpi/ic_phone_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_photo_camera_white_24dp.png b/res/drawable-xhdpi/ic_photo_camera_white_24dp.png
deleted file mode 100644
index be9fb22..0000000
--- a/res/drawable-xhdpi/ic_photo_camera_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_photos_white_24.png b/res/drawable-xhdpi/ic_photos_white_24.png
deleted file mode 100644
index bc64bb0..0000000
--- a/res/drawable-xhdpi/ic_photos_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_place_24dp.png b/res/drawable-xhdpi/ic_place_24dp.png
deleted file mode 100644
index 0f8bc5b..0000000
--- a/res/drawable-xhdpi/ic_place_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_public_black_24dp.png b/res/drawable-xhdpi/ic_public_black_24dp.png
deleted file mode 100644
index a3ab24c..0000000
--- a/res/drawable-xhdpi/ic_public_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_star_24dp.png b/res/drawable-xhdpi/ic_star_24dp.png
deleted file mode 100644
index e1ae246..0000000
--- a/res/drawable-xhdpi/ic_star_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_star_black_128dp.png b/res/drawable-xhdpi/ic_star_black_128dp.png
deleted file mode 100644
index 842ce10..0000000
--- a/res/drawable-xhdpi/ic_star_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_star_outline_24dp.png b/res/drawable-xhdpi/ic_star_outline_24dp.png
deleted file mode 100644
index f7dacfd..0000000
--- a/res/drawable-xhdpi/ic_star_outline_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_voicemail_avatar.png b/res/drawable-xhdpi/ic_voicemail_avatar.png
new file mode 100644
index 0000000..f24505d
--- /dev/null
+++ b/res/drawable-xhdpi/ic_voicemail_avatar.png
Binary files differ
diff --git a/res/drawable-xhdpi/label_empty.png b/res/drawable-xhdpi/label_empty.png
new file mode 100644
index 0000000..a38178c
--- /dev/null
+++ b/res/drawable-xhdpi/label_empty.png
Binary files differ
diff --git a/res/drawable-xhdpi/panel_content.9.png b/res/drawable-xhdpi/panel_content.9.png
deleted file mode 100644
index 6acbbb1..0000000
--- a/res/drawable-xhdpi/panel_content.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/product_logo_contacts_color_144.png b/res/drawable-xhdpi/product_logo_contacts_color_144.png
new file mode 100644
index 0000000..ebd8a8b
--- /dev/null
+++ b/res/drawable-xhdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-xhdpi/product_logo_contacts_color_192.png b/res/drawable-xhdpi/product_logo_contacts_color_192.png
new file mode 100644
index 0000000..690bbd0
--- /dev/null
+++ b/res/drawable-xhdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-xhdpi/quantum_ic_assistant_grey600_48.png b/res/drawable-xhdpi/quantum_ic_assistant_grey600_48.png
deleted file mode 100644
index a3aa76f..0000000
--- a/res/drawable-xhdpi/quantum_ic_assistant_grey600_48.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/quickcontact_badge_overlay_normal_light.9.png b/res/drawable-xhdpi/quickcontact_badge_overlay_normal_light.9.png
deleted file mode 100644
index 2d3e5c8..0000000
--- a/res/drawable-xhdpi/quickcontact_badge_overlay_normal_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/quickcontact_badge_overlay_pressed_light.9.png b/res/drawable-xhdpi/quickcontact_badge_overlay_pressed_light.9.png
deleted file mode 100644
index b038621..0000000
--- a/res/drawable-xhdpi/quickcontact_badge_overlay_pressed_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/spinner_default_holo_dark.9.png b/res/drawable-xhdpi/spinner_default_holo_dark.9.png
deleted file mode 100644
index e94ce80..0000000
--- a/res/drawable-xhdpi/spinner_default_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/sym_action_audiochat_holo_light.png b/res/drawable-xhdpi/sym_action_audiochat_holo_light.png
deleted file mode 100644
index 163e632..0000000
--- a/res/drawable-xhdpi/sym_action_audiochat_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/sym_action_videochat_holo_light.png b/res/drawable-xhdpi/sym_action_videochat_holo_light.png
deleted file mode 100644
index 1ec2f63..0000000
--- a/res/drawable-xhdpi/sym_action_videochat_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/unknown_source.png b/res/drawable-xhdpi/unknown_source.png
new file mode 100644
index 0000000..35e8fb4
--- /dev/null
+++ b/res/drawable-xhdpi/unknown_source.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ab_solid_custom_blue_inverse_holo.9.png b/res/drawable-xxhdpi/ab_solid_custom_blue_inverse_holo.9.png
deleted file mode 100644
index 24c267f..0000000
--- a/res/drawable-xxhdpi/ab_solid_custom_blue_inverse_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/accounts_empty.png b/res/drawable-xxhdpi/accounts_empty.png
new file mode 100644
index 0000000..1174a13
--- /dev/null
+++ b/res/drawable-xxhdpi/accounts_empty.png
Binary files differ
diff --git a/res/drawable-xxhdpi/btn_star_off_normal_holo_light.png b/res/drawable-xxhdpi/btn_star_off_normal_holo_light.png
deleted file mode 100644
index 4ebf2f6..0000000
--- a/res/drawable-xxhdpi/btn_star_off_normal_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/btn_star_on_normal_holo_light.png b/res/drawable-xxhdpi/btn_star_on_normal_holo_light.png
deleted file mode 100644
index 9f07084..0000000
--- a/res/drawable-xxhdpi/btn_star_on_normal_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/contacts_no_account_empty.png b/res/drawable-xxhdpi/contacts_no_account_empty.png
new file mode 100644
index 0000000..b3286e1
--- /dev/null
+++ b/res/drawable-xxhdpi/contacts_no_account_empty.png
Binary files differ
diff --git a/res/drawable-xxhdpi/expanding_entry_card_expand_white_24.png b/res/drawable-xxhdpi/expanding_entry_card_expand_white_24.png
deleted file mode 100644
index af4d711..0000000
--- a/res/drawable-xxhdpi/expanding_entry_card_expand_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_blue.png b/res/drawable-xxhdpi/fab_blue.png
deleted file mode 100644
index 76d68ac..0000000
--- a/res/drawable-xxhdpi/fab_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/fab_pink.png b/res/drawable-xxhdpi/fab_pink.png
new file mode 100644
index 0000000..6fbe669
--- /dev/null
+++ b/res/drawable-xxhdpi/fab_pink.png
Binary files differ
diff --git a/res/drawable-xxhdpi/googlelogo_dark20_color_132x44.png b/res/drawable-xxhdpi/googlelogo_dark20_color_132x44.png
new file mode 100644
index 0000000..b22fba6
--- /dev/null
+++ b/res/drawable-xxhdpi/googlelogo_dark20_color_132x44.png
Binary files differ
diff --git a/res/drawable-xxhdpi/googlelogo_dark20_color_184x60.png b/res/drawable-xxhdpi/googlelogo_dark20_color_184x60.png
new file mode 100644
index 0000000..6e4193e
--- /dev/null
+++ b/res/drawable-xxhdpi/googlelogo_dark20_color_184x60.png
Binary files differ
diff --git a/res/drawable-xxhdpi/home_empty.png b/res/drawable-xxhdpi/home_empty.png
new file mode 100644
index 0000000..b3286e1
--- /dev/null
+++ b/res/drawable-xxhdpi/home_empty.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_account_circle_black_24dp.png b/res/drawable-xxhdpi/ic_account_circle_black_24dp.png
deleted file mode 100644
index 3cc0a63..0000000
--- a/res/drawable-xxhdpi/ic_account_circle_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_add_contact_holo_light.png b/res/drawable-xxhdpi/ic_add_contact_holo_light.png
deleted file mode 100644
index b6d756d..0000000
--- a/res/drawable-xxhdpi/ic_add_contact_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_add_group_holo_dark.png b/res/drawable-xxhdpi/ic_add_group_holo_dark.png
deleted file mode 100644
index 44d8fe9..0000000
--- a/res/drawable-xxhdpi/ic_add_group_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_add_to_circles_black_24.png b/res/drawable-xxhdpi/ic_add_to_circles_black_24.png
deleted file mode 100644
index 23a2084..0000000
--- a/res/drawable-xxhdpi/ic_add_to_circles_black_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_business_black_24dp.png b/res/drawable-xxhdpi/ic_business_black_24dp.png
deleted file mode 100644
index 85ddede..0000000
--- a/res/drawable-xxhdpi/ic_business_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_business_white_120dp.png b/res/drawable-xxhdpi/ic_business_white_120dp.png
new file mode 100644
index 0000000..8d67e44
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_business_white_120dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_camera_alt_black_24dp.png b/res/drawable-xxhdpi/ic_camera_alt_black_24dp.png
deleted file mode 100644
index fe8974e..0000000
--- a/res/drawable-xxhdpi/ic_camera_alt_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_check_circle_googblue_drawable_24dp.png b/res/drawable-xxhdpi/ic_check_circle_googblue_drawable_24dp.png
deleted file mode 100644
index 7ac3497..0000000
--- a/res/drawable-xxhdpi/ic_check_circle_googblue_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_circles_extended_black_24dp.png b/res/drawable-xxhdpi/ic_circles_extended_black_24dp.png
deleted file mode 100644
index ec09d57..0000000
--- a/res/drawable-xxhdpi/ic_circles_extended_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_contacts_holo_dark.png b/res/drawable-xxhdpi/ic_contacts_holo_dark.png
deleted file mode 100644
index 9328a6a..0000000
--- a/res/drawable-xxhdpi/ic_contacts_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_dialer_sip_black_24dp.png b/res/drawable-xxhdpi/ic_dialer_sip_black_24dp.png
deleted file mode 100644
index f1466a1..0000000
--- a/res/drawable-xxhdpi/ic_dialer_sip_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_directions_24dp.png b/res/drawable-xxhdpi/ic_directions_24dp.png
deleted file mode 100644
index e0d53a3..0000000
--- a/res/drawable-xxhdpi/ic_directions_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_done_wht_24dp.png b/res/drawable-xxhdpi/ic_done_wht_24dp.png
deleted file mode 100644
index 4c6a653..0000000
--- a/res/drawable-xxhdpi/ic_done_wht_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_email_24dp.png b/res/drawable-xxhdpi/ic_email_24dp.png
deleted file mode 100644
index d1fc5fc..0000000
--- a/res/drawable-xxhdpi/ic_email_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_event_24dp.png b/res/drawable-xxhdpi/ic_event_24dp.png
deleted file mode 100644
index f27a424..0000000
--- a/res/drawable-xxhdpi/ic_event_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_google_plus_24dp.png b/res/drawable-xxhdpi/ic_google_plus_24dp.png
deleted file mode 100644
index 933cd62..0000000
--- a/res/drawable-xxhdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_hangout_24dp.png b/res/drawable-xxhdpi/ic_hangout_24dp.png
deleted file mode 100644
index 16858d1..0000000
--- a/res/drawable-xxhdpi/ic_hangout_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_hangout_video_24dp.png b/res/drawable-xxhdpi/ic_hangout_video_24dp.png
deleted file mode 100644
index 4183c76..0000000
--- a/res/drawable-xxhdpi/ic_hangout_video_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_insert_comment_black_24dp.png b/res/drawable-xxhdpi/ic_insert_comment_black_24dp.png
deleted file mode 100644
index 3039cc1..0000000
--- a/res/drawable-xxhdpi/ic_insert_comment_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_link_grey600_drawable_24dp.png b/res/drawable-xxhdpi/ic_link_grey600_drawable_24dp.png
deleted file mode 100644
index 140daef..0000000
--- a/res/drawable-xxhdpi/ic_link_grey600_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_expander_maximized_holo_light.png b/res/drawable-xxhdpi/ic_menu_expander_maximized_holo_light.png
deleted file mode 100644
index a42aec2..0000000
--- a/res/drawable-xxhdpi/ic_menu_expander_maximized_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_expander_minimized_holo_light.png b/res/drawable-xxhdpi/ic_menu_expander_minimized_holo_light.png
deleted file mode 100644
index 1ca2e46..0000000
--- a/res/drawable-xxhdpi/ic_menu_expander_minimized_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_people_black_24dp.png b/res/drawable-xxhdpi/ic_people_black_24dp.png
deleted file mode 100644
index e4ccc75..0000000
--- a/res/drawable-xxhdpi/ic_people_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_person_avatar.png b/res/drawable-xxhdpi/ic_person_avatar.png
new file mode 100644
index 0000000..2cfc004
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_person_avatar.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_person_black_128dp.png b/res/drawable-xxhdpi/ic_person_black_128dp.png
deleted file mode 100644
index 3c40711..0000000
--- a/res/drawable-xxhdpi/ic_person_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_person_black_24dp.png b/res/drawable-xxhdpi/ic_person_black_24dp.png
deleted file mode 100644
index 89e8264..0000000
--- a/res/drawable-xxhdpi/ic_person_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_phone_24dp.png b/res/drawable-xxhdpi/ic_phone_24dp.png
deleted file mode 100644
index ab538ff..0000000
--- a/res/drawable-xxhdpi/ic_phone_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_photo_camera_white_24dp.png b/res/drawable-xxhdpi/ic_photo_camera_white_24dp.png
deleted file mode 100644
index c8e69dc..0000000
--- a/res/drawable-xxhdpi/ic_photo_camera_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_photos_white_24.png b/res/drawable-xxhdpi/ic_photos_white_24.png
deleted file mode 100644
index 2cb5dbc..0000000
--- a/res/drawable-xxhdpi/ic_photos_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_place_24dp.png b/res/drawable-xxhdpi/ic_place_24dp.png
deleted file mode 100644
index 8a37614..0000000
--- a/res/drawable-xxhdpi/ic_place_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_public_black_24dp.png b/res/drawable-xxhdpi/ic_public_black_24dp.png
deleted file mode 100644
index c7d17e3..0000000
--- a/res/drawable-xxhdpi/ic_public_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_star_24dp.png b/res/drawable-xxhdpi/ic_star_24dp.png
deleted file mode 100644
index 34e7c56..0000000
--- a/res/drawable-xxhdpi/ic_star_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_star_black_128dp.png b/res/drawable-xxhdpi/ic_star_black_128dp.png
deleted file mode 100644
index f7d0eb0..0000000
--- a/res/drawable-xxhdpi/ic_star_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_star_outline_24dp.png b/res/drawable-xxhdpi/ic_star_outline_24dp.png
deleted file mode 100644
index 2afcf04..0000000
--- a/res/drawable-xxhdpi/ic_star_outline_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_voicemail_avatar.png b/res/drawable-xxhdpi/ic_voicemail_avatar.png
new file mode 100644
index 0000000..182def8
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_voicemail_avatar.png
Binary files differ
diff --git a/res/drawable-xxhdpi/label_empty.png b/res/drawable-xxhdpi/label_empty.png
new file mode 100644
index 0000000..158fa67
--- /dev/null
+++ b/res/drawable-xxhdpi/label_empty.png
Binary files differ
diff --git a/res/drawable-xxhdpi/product_logo_contacts_color_144.png b/res/drawable-xxhdpi/product_logo_contacts_color_144.png
new file mode 100644
index 0000000..8ff6a14
--- /dev/null
+++ b/res/drawable-xxhdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-xxhdpi/product_logo_contacts_color_192.png b/res/drawable-xxhdpi/product_logo_contacts_color_192.png
new file mode 100644
index 0000000..c32d9cd
--- /dev/null
+++ b/res/drawable-xxhdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-xxhdpi/quantum_ic_assistant_grey600_48.png b/res/drawable-xxhdpi/quantum_ic_assistant_grey600_48.png
deleted file mode 100644
index a3aa76f..0000000
--- a/res/drawable-xxhdpi/quantum_ic_assistant_grey600_48.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/quickcontact_badge_overlay_pressed_light.9.png b/res/drawable-xxhdpi/quickcontact_badge_overlay_pressed_light.9.png
deleted file mode 100644
index a044697..0000000
--- a/res/drawable-xxhdpi/quickcontact_badge_overlay_pressed_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/sym_action_audiochat_holo_light.png b/res/drawable-xxhdpi/sym_action_audiochat_holo_light.png
deleted file mode 100644
index ee17752..0000000
--- a/res/drawable-xxhdpi/sym_action_audiochat_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/sym_action_videochat_holo_light.png b/res/drawable-xxhdpi/sym_action_videochat_holo_light.png
deleted file mode 100644
index ac3507c..0000000
--- a/res/drawable-xxhdpi/sym_action_videochat_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/accounts_empty.png b/res/drawable-xxxhdpi/accounts_empty.png
new file mode 100644
index 0000000..29e3653
--- /dev/null
+++ b/res/drawable-xxxhdpi/accounts_empty.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/contacts_no_account_empty.png b/res/drawable-xxxhdpi/contacts_no_account_empty.png
new file mode 100644
index 0000000..3d877a9
--- /dev/null
+++ b/res/drawable-xxxhdpi/contacts_no_account_empty.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/expanding_entry_card_expand_white_24.png b/res/drawable-xxxhdpi/expanding_entry_card_expand_white_24.png
deleted file mode 100644
index b972190..0000000
--- a/res/drawable-xxxhdpi/expanding_entry_card_expand_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/fab_blue.png b/res/drawable-xxxhdpi/fab_blue.png
deleted file mode 100644
index 1dd8a92..0000000
--- a/res/drawable-xxxhdpi/fab_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/fab_pink.png b/res/drawable-xxxhdpi/fab_pink.png
new file mode 100644
index 0000000..5513227
--- /dev/null
+++ b/res/drawable-xxxhdpi/fab_pink.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/googlelogo_dark20_color_132x44.png b/res/drawable-xxxhdpi/googlelogo_dark20_color_132x44.png
new file mode 100644
index 0000000..7372b47
--- /dev/null
+++ b/res/drawable-xxxhdpi/googlelogo_dark20_color_132x44.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/googlelogo_dark20_color_184x60.png b/res/drawable-xxxhdpi/googlelogo_dark20_color_184x60.png
new file mode 100644
index 0000000..60de38b
--- /dev/null
+++ b/res/drawable-xxxhdpi/googlelogo_dark20_color_184x60.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/home_empty.png b/res/drawable-xxxhdpi/home_empty.png
new file mode 100644
index 0000000..3d877a9
--- /dev/null
+++ b/res/drawable-xxxhdpi/home_empty.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_account_circle_black_24dp.png b/res/drawable-xxxhdpi/ic_account_circle_black_24dp.png
deleted file mode 100644
index c6b56c3..0000000
--- a/res/drawable-xxxhdpi/ic_account_circle_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_business_black_24dp.png b/res/drawable-xxxhdpi/ic_business_black_24dp.png
deleted file mode 100644
index bc3b7bc..0000000
--- a/res/drawable-xxxhdpi/ic_business_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_business_white_120dp.png b/res/drawable-xxxhdpi/ic_business_white_120dp.png
new file mode 100644
index 0000000..1741675
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_business_white_120dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_camera_alt_black_24dp.png b/res/drawable-xxxhdpi/ic_camera_alt_black_24dp.png
deleted file mode 100644
index bda927d..0000000
--- a/res/drawable-xxxhdpi/ic_camera_alt_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_check_circle_googblue_drawable_24dp.png b/res/drawable-xxxhdpi/ic_check_circle_googblue_drawable_24dp.png
deleted file mode 100644
index c077752..0000000
--- a/res/drawable-xxxhdpi/ic_check_circle_googblue_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_circles_extended_black_24dp.png b/res/drawable-xxxhdpi/ic_circles_extended_black_24dp.png
deleted file mode 100644
index d994a32..0000000
--- a/res/drawable-xxxhdpi/ic_circles_extended_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_dialer_sip_black_24dp.png b/res/drawable-xxxhdpi/ic_dialer_sip_black_24dp.png
deleted file mode 100644
index f812810..0000000
--- a/res/drawable-xxxhdpi/ic_dialer_sip_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_directions_24dp.png b/res/drawable-xxxhdpi/ic_directions_24dp.png
deleted file mode 100644
index b7e3377..0000000
--- a/res/drawable-xxxhdpi/ic_directions_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_done_wht_24dp.png b/res/drawable-xxxhdpi/ic_done_wht_24dp.png
deleted file mode 100644
index 2e36684..0000000
--- a/res/drawable-xxxhdpi/ic_done_wht_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_email_24dp.png b/res/drawable-xxxhdpi/ic_email_24dp.png
deleted file mode 100644
index 29ed46a..0000000
--- a/res/drawable-xxxhdpi/ic_email_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_event_24dp.png b/res/drawable-xxxhdpi/ic_event_24dp.png
deleted file mode 100644
index 07f2d82..0000000
--- a/res/drawable-xxxhdpi/ic_event_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_google_plus_24dp.png b/res/drawable-xxxhdpi/ic_google_plus_24dp.png
deleted file mode 100644
index dcd6c97..0000000
--- a/res/drawable-xxxhdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_hangout_24dp.png b/res/drawable-xxxhdpi/ic_hangout_24dp.png
deleted file mode 100644
index 4bfdb0d..0000000
--- a/res/drawable-xxxhdpi/ic_hangout_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_hangout_video_24dp.png b/res/drawable-xxxhdpi/ic_hangout_video_24dp.png
deleted file mode 100644
index f1be2e7..0000000
--- a/res/drawable-xxxhdpi/ic_hangout_video_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_insert_comment_black_24dp.png b/res/drawable-xxxhdpi/ic_insert_comment_black_24dp.png
deleted file mode 100644
index 7e795f8..0000000
--- a/res/drawable-xxxhdpi/ic_insert_comment_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_link_grey600_drawable_24dp.png b/res/drawable-xxxhdpi/ic_link_grey600_drawable_24dp.png
deleted file mode 100644
index 6fe9b8c..0000000
--- a/res/drawable-xxxhdpi/ic_link_grey600_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_people_black_24dp.png b/res/drawable-xxxhdpi/ic_people_black_24dp.png
deleted file mode 100644
index b72b2f5..0000000
--- a/res/drawable-xxxhdpi/ic_people_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_person_avatar.png b/res/drawable-xxxhdpi/ic_person_avatar.png
new file mode 100644
index 0000000..3233252
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_person_avatar.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_person_black_128dp.png b/res/drawable-xxxhdpi/ic_person_black_128dp.png
deleted file mode 100644
index 1d94d5f..0000000
--- a/res/drawable-xxxhdpi/ic_person_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_person_black_24dp.png b/res/drawable-xxxhdpi/ic_person_black_24dp.png
deleted file mode 100644
index 3b55aa1..0000000
--- a/res/drawable-xxxhdpi/ic_person_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_phone_24dp.png b/res/drawable-xxxhdpi/ic_phone_24dp.png
deleted file mode 100644
index 1f12d8d..0000000
--- a/res/drawable-xxxhdpi/ic_phone_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_photo_camera_white_24dp.png b/res/drawable-xxxhdpi/ic_photo_camera_white_24dp.png
deleted file mode 100644
index 777658e..0000000
--- a/res/drawable-xxxhdpi/ic_photo_camera_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_photos_white_24.png b/res/drawable-xxxhdpi/ic_photos_white_24.png
deleted file mode 100644
index 5722b4a..0000000
--- a/res/drawable-xxxhdpi/ic_photos_white_24.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_place_24dp.png b/res/drawable-xxxhdpi/ic_place_24dp.png
deleted file mode 100644
index e3efd0c..0000000
--- a/res/drawable-xxxhdpi/ic_place_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_public_black_24dp.png b/res/drawable-xxxhdpi/ic_public_black_24dp.png
deleted file mode 100644
index 67aaffd..0000000
--- a/res/drawable-xxxhdpi/ic_public_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_star_24dp.png b/res/drawable-xxxhdpi/ic_star_24dp.png
deleted file mode 100644
index 7e6c8a9..0000000
--- a/res/drawable-xxxhdpi/ic_star_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_star_black_128dp.png b/res/drawable-xxxhdpi/ic_star_black_128dp.png
deleted file mode 100644
index 49f9e8b..0000000
--- a/res/drawable-xxxhdpi/ic_star_black_128dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_star_outline_24dp.png b/res/drawable-xxxhdpi/ic_star_outline_24dp.png
deleted file mode 100644
index e3a4362..0000000
--- a/res/drawable-xxxhdpi/ic_star_outline_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/product_logo_contacts_color_144.png b/res/drawable-xxxhdpi/product_logo_contacts_color_144.png
new file mode 100644
index 0000000..c32d9cd
--- /dev/null
+++ b/res/drawable-xxxhdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/product_logo_contacts_color_192.png b/res/drawable-xxxhdpi/product_logo_contacts_color_192.png
new file mode 100644
index 0000000..1346cbc
--- /dev/null
+++ b/res/drawable-xxxhdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/quantum_ic_assistant_grey600_48.png b/res/drawable-xxxhdpi/quantum_ic_assistant_grey600_48.png
deleted file mode 100644
index a3aa76f..0000000
--- a/res/drawable-xxxhdpi/quantum_ic_assistant_grey600_48.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ab_dropdown_navigation_item_background.xml b/res/drawable/ab_dropdown_navigation_item_background.xml
deleted file mode 100644
index 05fa704..0000000
--- a/res/drawable/ab_dropdown_navigation_item_background.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true"
-        android:drawable="@drawable/ab_dropdown_navigation_item_background_pressed"/>
-    <item android:state_focused="true"
-        android:drawable="@drawable/ab_dropdown_navigation_item_background_focused"/>
-    <item android:drawable="@drawable/spinner_default_holo_dark" />
-</selector>
diff --git a/res/drawable/ab_dropdown_navigation_item_background_focused.xml b/res/drawable/ab_dropdown_navigation_item_background_focused.xml
deleted file mode 100644
index a1dad59..0000000
--- a/res/drawable/ab_dropdown_navigation_item_background_focused.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<layer-list
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:drawable="@drawable/action_bar_item_focused" />
-    <item android:drawable="@drawable/spinner_default_holo_dark" />
-</layer-list>
diff --git a/res/drawable/ab_dropdown_navigation_item_background_pressed.xml b/res/drawable/ab_dropdown_navigation_item_background_pressed.xml
deleted file mode 100644
index a09be90..0000000
--- a/res/drawable/ab_dropdown_navigation_item_background_pressed.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<layer-list
-    xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:drawable="@drawable/action_bar_item_pressed" />
-    <item android:drawable="@drawable/spinner_default_holo_dark" />
-</layer-list>
diff --git a/res/drawable/action_bar_item_background.xml b/res/drawable/action_bar_item_background.xml
deleted file mode 100644
index 2d96436..0000000
--- a/res/drawable/action_bar_item_background.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:drawable="@drawable/action_bar_item_pressed"/>
-    <item android:state_focused="true" android:drawable="@drawable/action_bar_item_focused"/>
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/action_bar_background" />
-        </shape>
-    </item>
-</selector>
diff --git a/res/drawable/action_bar_item_focused.xml b/res/drawable/action_bar_item_focused.xml
deleted file mode 100644
index 13aeb4ce..0000000
--- a/res/drawable/action_bar_item_focused.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2012 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.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/action_bar_background_highlight" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/action_bar_item_pressed.xml b/res/drawable/action_bar_item_pressed.xml
deleted file mode 100644
index 13aeb4ce..0000000
--- a/res/drawable/action_bar_item_pressed.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2012 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.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item>
-        <shape android:shape="rectangle" >
-            <solid android:color="@color/action_bar_background_highlight" />
-        </shape>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/res/drawable/dialog_background_material.xml b/res/drawable/dialog_background_material.xml
new file mode 100644
index 0000000..fb586a0
--- /dev/null
+++ b/res/drawable/dialog_background_material.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+    android:inset="16dp">
+    <shape android:shape="rectangle">
+        <corners android:radius="2dp" />
+        <solid android:color="@color/call_subject_history_background" />
+    </shape>
+</inset>
diff --git a/res/drawable/drawer_item_background.xml b/res/drawable/drawer_item_background.xml
new file mode 100644
index 0000000..dc8a9f2
--- /dev/null
+++ b/res/drawable/drawer_item_background.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+  <item android:state_activated="true"
+        android:drawable="@color/drawer_selected_color"/>
+  <item android:drawable="@drawable/ripple_background" />
+</selector>
\ No newline at end of file
diff --git a/res/drawable/floating_action_button.xml b/res/drawable/floating_action_button.xml
index 2ba237f..796920e 100644
--- a/res/drawable/floating_action_button.xml
+++ b/res/drawable/floating_action_button.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2014 The Android Open Source Project
+<!-- 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.
@@ -15,10 +14,11 @@
      limitations under the License.
 -->
 
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-     <item android:state_pressed="true">
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+        android:color="@color/contacts_accent_color">
+     <item android:id="@android:id/mask">
           <shape android:shape="oval">
-               <solid android:color="@color/primary_color_dark" />
+               <solid android:color="@android:color/white" />
           </shape>
      </item>
-</selector>
\ No newline at end of file
+</ripple>
\ No newline at end of file
diff --git a/res/drawable/gray_action_bar_background.xml b/res/drawable/gray_action_bar_background.xml
deleted file mode 100644
index 4192313..0000000
--- a/res/drawable/gray_action_bar_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:state_pressed="true"
-        android:drawable="@drawable/ab_solid_custom_blue_inverse_holo"/>
-    <item android:drawable="@drawable/ab_stacked_solid_inverse_holo" />
-</selector>
diff --git a/res/drawable/group_list_item_background.xml b/res/drawable/group_list_item_background.xml
deleted file mode 100644
index 2aa2660..0000000
--- a/res/drawable/group_list_item_background.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_activated="true" android:drawable="@drawable/list_activated_holo" />
-    <item android:state_pressed="true" android:drawable="@drawable/list_pressed_holo_light" />
-    <item android:state_selected="true" android:drawable="@drawable/list_focused_holo" />
-</selector>
diff --git a/res/drawable/ic_close_lt.xml b/res/drawable/ic_close_lt.xml
deleted file mode 100644
index 178b8a0..0000000
--- a/res/drawable/ic_close_lt.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2014 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
-  -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:src="@drawable/ic_close_dk"
-    android:autoMirrored="true"
-    android:tint="@android:color/black" />
\ No newline at end of file
diff --git a/res/drawable/ic_work_profile.xml b/res/drawable/ic_work_profile.xml
new file mode 100644
index 0000000..bacfe69
--- /dev/null
+++ b/res/drawable/ic_work_profile.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="16dp"
+    android:height="16dp"
+    android:viewportWidth="48"
+    android:viewportHeight="48">
+
+    <!-- //java/com/google/android/assets/quantum:ic_enterprise_grey600_16 -->
+
+    <path
+        android:fillColor="#757575"
+        android:pathData="M28 33h-8v-3H6v8c0 2.2 1.8 4 4 4h28c2.2 0 4-1.8
+4-4v-8H28v3zm12-21h-7V9l-3-3H18l-3 3.1V12H8c-2.2 0-4 1.8-4 4v8c0 2.2 1.8 4 4
+4h12v-3h8v3h12c2.2 0 4-1.8 4-4v-8c0-2.2-1.8-4-4-4zm-10 0H18V9h12v3z" />
+    <path
+        android:pathData="M0 0h48v48H0z" />
+</vector>
diff --git a/res/drawable/item_background_material_borderless_dark.xml b/res/drawable/item_background_material_borderless_dark.xml
new file mode 100644
index 0000000..693bcaf
--- /dev/null
+++ b/res/drawable/item_background_material_borderless_dark.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- Based on the Theme.Material's default selectableItemBackgroundBorderless -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/ripple_material_dark" />
\ No newline at end of file
diff --git a/res/drawable/item_background_material_dark.xml b/res/drawable/item_background_material_dark.xml
new file mode 100644
index 0000000..87b1e17
--- /dev/null
+++ b/res/drawable/item_background_material_dark.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- Based on the Theme.Material's default selectableItemBackground -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/ripple_material_dark" >
+    <item android:id="@android:id/mask">
+        <color android:color="@android:color/white" />
+    </item>
+</ripple>
\ No newline at end of file
diff --git a/res/drawable/new_badge_background.xml b/res/drawable/new_badge_background.xml
new file mode 100644
index 0000000..be18ade
--- /dev/null
+++ b/res/drawable/new_badge_background.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/dialtacts_secondary_text_color"/>
+    <corners android:radius="@dimen/nav_new_badge_corners"/>
+</shape>
\ No newline at end of file
diff --git a/res/drawable/quantum_ic_account_circle_vd_theme_24.xml b/res/drawable/quantum_ic_account_circle_vd_theme_24.xml
new file mode 100644
index 0000000..df2f6e7
--- /dev/null
+++ b/res/drawable/quantum_ic_account_circle_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,5c1.66,0 3,1.34 3,3s-1.34,3 -3,3 -3,-1.34 -3,-3 1.34,-3 3,-3zM12,19.2c-2.5,0 -4.71,-1.28 -6,-3.22 0.03,-1.99 4,-3.08 6,-3.08 1.99,0 5.97,1.09 6,3.08 -1.29,1.94 -3.5,3.22 -6,3.22z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_add_vd_theme_24.xml b/res/drawable/quantum_ic_add_vd_theme_24.xml
new file mode 100644
index 0000000..167dafe
--- /dev/null
+++ b/res/drawable/quantum_ic_add_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml b/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml
new file mode 100644
index 0000000..174cf12
--- /dev/null
+++ b/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_arrow_drop_down_vd_theme_24.xml b/res/drawable/quantum_ic_arrow_drop_down_vd_theme_24.xml
new file mode 100644
index 0000000..87c39de
--- /dev/null
+++ b/res/drawable/quantum_ic_arrow_drop_down_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M7,10l5,5 5,-5z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_assistant_vd_theme_24.xml b/res/drawable/quantum_ic_assistant_vd_theme_24.xml
new file mode 100644
index 0000000..2d5135b
--- /dev/null
+++ b/res/drawable/quantum_ic_assistant_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19,2L5,2c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h4l3,3 3,-3h4c1.1,0 2,-0.9 2,-2L21,4c0,-1.1 -0.9,-2 -2,-2zM13.88,12.88L12,17l-1.88,-4.12L6,11l4.12,-1.88L12,5l1.88,4.12L18,11l-4.12,1.88z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_business_vd_theme_24.xml b/res/drawable/quantum_ic_business_vd_theme_24.xml
new file mode 100644
index 0000000..684265b
--- /dev/null
+++ b/res/drawable/quantum_ic_business_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,7L12,3L2,3v18h20L22,7L12,7zM6,19L4,19v-2h2v2zM6,15L4,15v-2h2v2zM6,11L4,11L4,9h2v2zM6,7L4,7L4,5h2v2zM10,19L8,19v-2h2v2zM10,15L8,15v-2h2v2zM10,11L8,11L8,9h2v2zM10,7L8,7L8,5h2v2zM20,19h-8v-2h2v-2h-2v-2h2v-2h-2L12,9h8v10zM18,11h-2v2h2v-2zM18,15h-2v2h2v-2z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/quantum_ic_call_received_vd_theme_24.xml b/res/drawable/quantum_ic_call_received_vd_theme_24.xml
new file mode 100644
index 0000000..3793f74
--- /dev/null
+++ b/res/drawable/quantum_ic_call_received_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,5.41L18.59,4 7,15.59V9H5v10h10v-2H8.41z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/quantum_ic_camera_alt_vd_theme_24.xml b/res/drawable/quantum_ic_camera_alt_vd_theme_24.xml
new file mode 100644
index 0000000..07ed76b
--- /dev/null
+++ b/res/drawable/quantum_ic_camera_alt_vd_theme_24.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_cancel_vd_theme_24.xml b/res/drawable/quantum_ic_cancel_vd_theme_24.xml
new file mode 100644
index 0000000..409ba75
--- /dev/null
+++ b/res/drawable/quantum_ic_cancel_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,2C6.47,2 2,6.47 2,12s4.47,10 10,10 10,-4.47 10,-10S17.53,2 12,2zM17,15.59L15.59,17 12,13.41 8.41,17 7,15.59 10.59,12 7,8.41 8.41,7 12,10.59 15.59,7 17,8.41 13.41,12 17,15.59z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_circles_ext_vd_theme_24.xml b/res/drawable/quantum_ic_circles_ext_vd_theme_24.xml
new file mode 100644
index 0000000..73baff2
--- /dev/null
+++ b/res/drawable/quantum_ic_circles_ext_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,10c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,4c1.1,0 2,0.9 2,2s-0.9,2 -2,2 -2,-0.9 -2,-2 0.9,-2 2,-2zM6,13c-2.21,0 -4,1.79 -4,4s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4zM6,19c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM12,11.1c-1.05,0 -1.9,0.85 -1.9,1.9s0.85,1.9 1.9,1.9c1.05,0 1.9,-0.85 1.9,-1.9s-0.85,-1.9 -1.9,-1.9zM18,13c-2.21,0 -4,1.79 -4,4s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4zM18,19c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_close_vd_theme_24.xml b/res/drawable/quantum_ic_close_vd_theme_24.xml
new file mode 100644
index 0000000..0aafe4b
--- /dev/null
+++ b/res/drawable/quantum_ic_close_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_content_copy_vd_theme_24.xml b/res/drawable/quantum_ic_content_copy_vd_theme_24.xml
new file mode 100644
index 0000000..b43eb4a
--- /dev/null
+++ b/res/drawable/quantum_ic_content_copy_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_create_vd_theme_24.xml b/res/drawable/quantum_ic_create_vd_theme_24.xml
new file mode 100644
index 0000000..8f161bc
--- /dev/null
+++ b/res/drawable/quantum_ic_create_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_delete_vd_theme_24.xml b/res/drawable/quantum_ic_delete_vd_theme_24.xml
new file mode 100644
index 0000000..698a0bc
--- /dev/null
+++ b/res/drawable/quantum_ic_delete_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_dialer_sip_vd_theme_24.xml b/res/drawable/quantum_ic_dialer_sip_vd_theme_24.xml
new file mode 100644
index 0000000..6ef33db
--- /dev/null
+++ b/res/drawable/quantum_ic_dialer_sip_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M17,3h-1v5h1L17,3zM15,5h-2L13,4h2L15,3h-3v3h2v1h-2v1h3L15,5zM18,3v5h1L19,6h2L21,3h-3zM20,5h-1L19,4h1v1zM20,15.5c-1.25,0 -2.45,-0.2 -3.57,-0.57 -0.35,-0.11 -0.74,-0.03 -1.01,0.24l-2.2,2.2c-2.83,-1.44 -5.15,-3.75 -6.59,-6.59l2.2,-2.21c0.27,-0.26 0.35,-0.65 0.24,-1C8.7,6.45 8.5,5.25 8.5,4c0,-0.55 -0.45,-1 -1,-1L4,3c-0.55,0 -1,0.45 -1,1 0,9.39 7.61,17 17,17 0.55,0 1,-0.45 1,-1v-3.5c0,-0.55 -0.45,-1 -1,-1z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_directions_vd_theme_24.xml b/res/drawable/quantum_ic_directions_vd_theme_24.xml
new file mode 100644
index 0000000..7da99e0
--- /dev/null
+++ b/res/drawable/quantum_ic_directions_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M21.71,11.29l-9,-9c-0.39,-0.39 -1.02,-0.39 -1.41,0l-9,9c-0.39,0.39 -0.39,1.02 0,1.41l9,9c0.39,0.39 1.02,0.39 1.41,0l9,-9c0.39,-0.38 0.39,-1.01 0,-1.41zM14,14.5V12h-4v3H8v-4c0,-0.55 0.45,-1 1,-1h5V7.5l3.5,3.5 -3.5,3.5z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/quantum_ic_done_vd_theme_24.xml b/res/drawable/quantum_ic_done_vd_theme_24.xml
new file mode 100644
index 0000000..0c810e8
--- /dev/null
+++ b/res/drawable/quantum_ic_done_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_email_vd_theme_24.xml b/res/drawable/quantum_ic_email_vd_theme_24.xml
new file mode 100644
index 0000000..724f45a
--- /dev/null
+++ b/res/drawable/quantum_ic_email_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_error_vd_theme_24.xml b/res/drawable/quantum_ic_error_vd_theme_24.xml
new file mode 100644
index 0000000..b9dbeb4
--- /dev/null
+++ b/res/drawable/quantum_ic_error_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_event_vd_theme_24.xml b/res/drawable/quantum_ic_event_vd_theme_24.xml
new file mode 100644
index 0000000..e0107b1
--- /dev/null
+++ b/res/drawable/quantum_ic_event_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M17,12h-5v5h5v-5zM16,1v2L8,3L8,1L6,1v2L5,3c-1.11,0 -1.99,0.9 -1.99,2L3,19c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2h-1L18,1h-2zM19,19L5,19L5,8h14v11z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_expand_less_vd_theme_24.xml b/res/drawable/quantum_ic_expand_less_vd_theme_24.xml
new file mode 100644
index 0000000..2f60a68
--- /dev/null
+++ b/res/drawable/quantum_ic_expand_less_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,8l-6,6 1.41,1.41L12,10.83l4.59,4.58L18,14z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_expand_more_vd_theme_24.xml b/res/drawable/quantum_ic_expand_more_vd_theme_24.xml
new file mode 100644
index 0000000..9fbfe48
--- /dev/null
+++ b/res/drawable/quantum_ic_expand_more_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M16.59,8.59L12,13.17 7.41,8.59 6,10l6,6 6,-6z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_hangout_vd_theme_24.xml b/res/drawable/quantum_ic_hangout_vd_theme_24.xml
new file mode 100644
index 0000000..ab07ba8
--- /dev/null
+++ b/res/drawable/quantum_ic_hangout_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M11.5,2C6.81,2 3,5.81 3,10.5S6.81,19 11.5,19h0.5v3.5c4.86,-2.34 8,-7.5 8,-12C20,5.81 16.19,2 11.5,2zM11,11l-1,2L8.5,13l1,-2L8,11L8,8h3v3zM15,11l-1,2h-1.5l1,-2L12,11L12,8h3v3z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_hangout_video_vd_theme_24.xml b/res/drawable/quantum_ic_hangout_video_vd_theme_24.xml
new file mode 100644
index 0000000..1ce818a
--- /dev/null
+++ b/res/drawable/quantum_ic_hangout_video_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM18,16l-4,-3.2L14,16L6,16L6,8h8v3.2L18,8v8z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_help_vd_theme_24.xml b/res/drawable/quantum_ic_help_vd_theme_24.xml
new file mode 100644
index 0000000..385d720
--- /dev/null
+++ b/res/drawable/quantum_ic_help_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,19h-2v-2h2v2zM15.07,11.25l-0.9,0.92C13.45,12.9 13,13.5 13,15h-2v-0.5c0,-1.1 0.45,-2.1 1.17,-2.83l1.24,-1.26c0.37,-0.36 0.59,-0.86 0.59,-1.41 0,-1.1 -0.9,-2 -2,-2s-2,0.9 -2,2L8,9c0,-2.21 1.79,-4 4,-4s4,1.79 4,4c0,0.88 -0.36,1.68 -0.93,2.25z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_history_vd_theme_24.xml b/res/drawable/quantum_ic_history_vd_theme_24.xml
new file mode 100644
index 0000000..51621fd
--- /dev/null
+++ b/res/drawable/quantum_ic_history_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_insert_comment_vd_theme_24.xml b/res/drawable/quantum_ic_insert_comment_vd_theme_24.xml
new file mode 100644
index 0000000..247cb1b
--- /dev/null
+++ b/res/drawable/quantum_ic_insert_comment_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,2L4,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h14l4,4L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_label_vd_theme_24.xml b/res/drawable/quantum_ic_label_vd_theme_24.xml
new file mode 100644
index 0000000..5630805
--- /dev/null
+++ b/res/drawable/quantum_ic_label_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M17.63,5.84C17.27,5.33 16.67,5 16,5L5,5.01C3.9,5.01 3,5.9 3,7v10c0,1.1 0.9,1.99 2,1.99L16,19c0.67,0 1.27,-0.33 1.63,-0.84L22,12l-4.37,-6.16z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_link_vd_theme_24.xml b/res/drawable/quantum_ic_link_vd_theme_24.xml
new file mode 100644
index 0000000..67a167e
--- /dev/null
+++ b/res/drawable/quantum_ic_link_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M3.9,12c0,-1.71 1.39,-3.1 3.1,-3.1h4L11,7L7,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1zM8,13h8v-2L8,11v2zM17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1s-1.39,3.1 -3.1,3.1h-4L13,17h4c2.76,0 5,-2.24 5,-5s-2.24,-5 -5,-5z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_menu_vd_theme_24.xml b/res/drawable/quantum_ic_menu_vd_theme_24.xml
new file mode 100644
index 0000000..ba6adcb
--- /dev/null
+++ b/res/drawable/quantum_ic_menu_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M3,18h18v-2L3,16v2zM3,13h18v-2L3,11v2zM3,6v2h18L21,6L3,6z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_message_vd_theme_24.xml b/res/drawable/quantum_ic_message_vd_theme_24.xml
new file mode 100644
index 0000000..a06a1da
--- /dev/null
+++ b/res/drawable/quantum_ic_message_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_mic_vd_theme_24.xml b/res/drawable/quantum_ic_mic_vd_theme_24.xml
new file mode 100644
index 0000000..ea4bef4
--- /dev/null
+++ b/res/drawable/quantum_ic_mic_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,14c1.66,0 2.99,-1.34 2.99,-3L15,5c0,-1.66 -1.34,-3 -3,-3S9,3.34 9,5v6c0,1.66 1.34,3 3,3zM17.3,11c0,3 -2.54,5.1 -5.3,5.1S6.7,14 6.7,11L5,11c0,3.41 2.72,6.23 6,6.72L11,21h2v-3.28c3.28,-0.48 6,-3.3 6,-6.72h-1.7z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_more_vert_vd_theme_24.xml b/res/drawable/quantum_ic_more_vert_vd_theme_24.xml
new file mode 100644
index 0000000..442451f
--- /dev/null
+++ b/res/drawable/quantum_ic_more_vert_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_perm_phone_msg_vd_theme_24.xml b/res/drawable/quantum_ic_perm_phone_msg_vd_theme_24.xml
new file mode 100644
index 0000000..d7e0fb4
--- /dev/null
+++ b/res/drawable/quantum_ic_perm_phone_msg_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,15.5c-1.25,0 -2.45,-0.2 -3.57,-0.57 -0.35,-0.11 -0.74,-0.03 -1.02,0.24l-2.2,2.2c-2.83,-1.44 -5.15,-3.75 -6.59,-6.58l2.2,-2.21c0.28,-0.27 0.36,-0.66 0.25,-1.01C8.7,6.45 8.5,5.25 8.5,4c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1 0,9.39 7.61,17 17,17 0.55,0 1,-0.45 1,-1v-3.5c0,-0.55 -0.45,-1 -1,-1zM12,3v10l3,-3h6V3h-9z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_person_add_vd_theme_24.xml b/res/drawable/quantum_ic_person_add_vd_theme_24.xml
new file mode 100644
index 0000000..48a017f
--- /dev/null
+++ b/res/drawable/quantum_ic_person_add_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM6,10L6,7L4,7v3L1,10v2h3v3h2v-3h3v-2L6,10zM15,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_person_vd_theme_24.xml b/res/drawable/quantum_ic_person_vd_theme_24.xml
new file mode 100644
index 0000000..a5d9c8c
--- /dev/null
+++ b/res/drawable/quantum_ic_person_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_phone_vd_theme_24.xml b/res/drawable/quantum_ic_phone_vd_theme_24.xml
new file mode 100644
index 0000000..8d37e2b
--- /dev/null
+++ b/res/drawable/quantum_ic_phone_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M6.62,10.79c1.44,2.83 3.76,5.14 6.59,6.59l2.2,-2.2c0.27,-0.27 0.67,-0.36 1.02,-0.24 1.12,0.37 2.33,0.57 3.57,0.57 0.55,0 1,0.45 1,1V20c0,0.55 -0.45,1 -1,1 -9.39,0 -17,-7.61 -17,-17 0,-0.55 0.45,-1 1,-1h3.5c0.55,0 1,0.45 1,1 0,1.25 0.2,2.45 0.57,3.57 0.11,0.35 0.03,0.74 -0.25,1.02l-2.2,2.2z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_place_vd_theme_24.xml b/res/drawable/quantum_ic_place_vd_theme_24.xml
new file mode 100644
index 0000000..4276861
--- /dev/null
+++ b/res/drawable/quantum_ic_place_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,2C8.13,2 5,5.13 5,9c0,5.25 7,13 7,13s7,-7.75 7,-13c0,-3.87 -3.13,-7 -7,-7zM12,11.5c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5 2.5,1.12 2.5,2.5 -1.12,2.5 -2.5,2.5z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_public_vd_theme_24.xml b/res/drawable/quantum_ic_public_vd_theme_24.xml
new file mode 100644
index 0000000..6dffe5c
--- /dev/null
+++ b/res/drawable/quantum_ic_public_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM11,19.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L9,15v1c0,1.1 0.9,2 2,2v1.93zM17.9,17.39c-0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L8,12v-2h2c0.55,0 1,-0.45 1,-1L11,7h2c1.1,0 2,-0.9 2,-2v-0.41c2.93,1.19 5,4.06 5,7.41 0,2.08 -0.8,3.97 -2.1,5.39z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_search_vd_theme_24.xml b/res/drawable/quantum_ic_search_vd_theme_24.xml
new file mode 100644
index 0000000..5c5632a
--- /dev/null
+++ b/res/drawable/quantum_ic_search_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_settings_vd_theme_24.xml b/res/drawable/quantum_ic_settings_vd_theme_24.xml
new file mode 100644
index 0000000..1867c79
--- /dev/null
+++ b/res/drawable/quantum_ic_settings_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_share_vd_theme_24.xml b/res/drawable/quantum_ic_share_vd_theme_24.xml
new file mode 100644
index 0000000..f024a22
--- /dev/null
+++ b/res/drawable/quantum_ic_share_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_sim_card_vd_theme_24.xml b/res/drawable/quantum_ic_sim_card_vd_theme_24.xml
new file mode 100644
index 0000000..2bc9387
--- /dev/null
+++ b/res/drawable/quantum_ic_sim_card_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19.99,4c0,-1.1 -0.89,-2 -1.99,-2h-8L4,8v12c0,1.1 0.9,2 2,2h12.01c1.1,0 1.99,-0.9 1.99,-2l-0.01,-16zM9,19L7,19v-2h2v2zM17,19h-2v-2h2v2zM9,15L7,15v-4h2v4zM13,19h-2v-4h2v4zM13,13h-2v-2h2v2zM17,15h-2v-4h2v4z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_smartphone_vd_theme_24.xml b/res/drawable/quantum_ic_smartphone_vd_theme_24.xml
new file mode 100644
index 0000000..9f987e7
--- /dev/null
+++ b/res/drawable/quantum_ic_smartphone_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_star_border_vd_theme_24.xml b/res/drawable/quantum_ic_star_border_vd_theme_24.xml
new file mode 100644
index 0000000..e266072
--- /dev/null
+++ b/res/drawable/quantum_ic_star_border_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_star_vd_theme_24.xml b/res/drawable/quantum_ic_star_vd_theme_24.xml
new file mode 100644
index 0000000..f5a93c6
--- /dev/null
+++ b/res/drawable/quantum_ic_star_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
+</vector>
diff --git a/res/drawable/quantum_ic_videocam_vd_theme_24.xml b/res/drawable/quantum_ic_videocam_vd_theme_24.xml
new file mode 100644
index 0000000..8740857
--- /dev/null
+++ b/res/drawable/quantum_ic_videocam_vd_theme_24.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M17,10.5V7c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1v-3.5l4,4v-11l-4,4z"/>
+</vector>
diff --git a/res/drawable/quantum_launchscreen_contacts.xml b/res/drawable/quantum_launchscreen_contacts.xml
new file mode 100755
index 0000000..1995899
--- /dev/null
+++ b/res/drawable/quantum_launchscreen_contacts.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    android:opacity="opaque">
+  <item android:drawable="@android:color/white" />
+  <item
+      android:id="@+id/launchscreens_product_logo"
+      android:bottom="@dimen/launchscreens_product_logo_bottom">
+    <bitmap
+        android:gravity="center"
+        android:src="@drawable/product_logo_contacts_color_144" />
+  </item>
+  <item
+      android:id="@+id/launchscreens_logo_text"
+      android:bottom="@dimen/launchscreens_google_logo_bottom">
+    <bitmap
+        android:gravity="center_horizontal|bottom"
+        android:src="@drawable/googlelogo_dark20_color_132x44" />
+  </item>
+</layer-list>
diff --git a/res/drawable/ripple_background.xml b/res/drawable/ripple_background.xml
new file mode 100644
index 0000000..574dff1
--- /dev/null
+++ b/res/drawable/ripple_background.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (C) 2017 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.
+-->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+        android:color="@color/control_highlight_color" />
\ No newline at end of file
diff --git a/res/drawable/searchedittext_custom_cursor.xml b/res/drawable/searchedittext_custom_cursor.xml
new file mode 100644
index 0000000..473b94c
--- /dev/null
+++ b/res/drawable/searchedittext_custom_cursor.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+    <size android:width="2dp" android:height="22dp" />
+    <solid android:color="@color/dialtacts_theme_color" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/view_pager_tab_background.xml b/res/drawable/view_pager_tab_background.xml
deleted file mode 100644
index f1ddbe2..0000000
--- a/res/drawable/view_pager_tab_background.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2014 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
-  -->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:state_pressed="true"
-        android:drawable="@color/primary_color_dark"/>
-</selector>
\ No newline at end of file
diff --git a/res/layout-land/compact_contact_editor_fragment.xml b/res/layout-land/compact_contact_editor_fragment.xml
deleted file mode 100644
index 09bb5bb..0000000
--- a/res/layout-land/compact_contact_editor_fragment.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
-<com.android.contacts.editor.CompactRawContactsEditorView
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/raw_contacts_editor_view"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/background_primary"
-        android:orientation="horizontal"
-        android:visibility="invisible">
-
-    <include layout="@layout/compact_photo_editor_view" />
-
-    <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
-    <View
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:focusable="true"
-            android:focusableInTouchMode="true"/>
-
-    <ScrollView
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:fadingEdge="none"
-            android:fillViewport="true">
-
-        <LinearLayout android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:orientation="vertical">
-
-            <include layout="@layout/editor_all_rawcontacts_accounts_selector" />
-            <include layout="@layout/compact_account_info" />
-            <include layout="@layout/editor_account_selector" />
-
-            <include layout="@layout/compact_contact_editor_fields"/>
-
-        </LinearLayout>
-
-    </ScrollView>
-
-</com.android.contacts.editor.CompactRawContactsEditorView>
\ No newline at end of file
diff --git a/res/layout-land/contact_editor_fragment.xml b/res/layout-land/contact_editor_fragment.xml
new file mode 100644
index 0000000..7f98765
--- /dev/null
+++ b/res/layout-land/contact_editor_fragment.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<com.android.contacts.editor.RawContactEditorView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/raw_contacts_editor_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/background_primary"
+        android:orientation="horizontal"
+        android:visibility="invisible">
+
+    <include layout="@layout/photo_editor_view" />
+
+    <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
+    <View
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:focusable="true"
+            android:focusableInTouchMode="true"/>
+
+    <ScrollView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:fadingEdge="none"
+            android:fillViewport="true">
+
+        <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+
+            <include layout="@layout/editor_account_header" />
+
+            <include layout="@layout/contact_editor_fields" />
+
+        </LinearLayout>
+
+    </ScrollView>
+
+</com.android.contacts.editor.RawContactEditorView>
\ No newline at end of file
diff --git a/res/layout-land/contacts_unavailable_fragment_content.xml b/res/layout-land/contacts_unavailable_fragment_content.xml
index 4f26db6..6c5c961 100644
--- a/res/layout-land/contacts_unavailable_fragment_content.xml
+++ b/res/layout-land/contacts_unavailable_fragment_content.xml
@@ -14,76 +14,62 @@
      limitations under the License.
 -->
 
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:gravity="center_horizontal">
+    android:layout_height="match_parent"
+    android:gravity="center_horizontal"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/empty_image"
+        android:layout_width="@dimen/contacts_no_account_empty_image_width"
+        android:layout_height="wrap_content"
+        android:adjustViewBounds="true"
+        android:scaleType="centerInside"
+        android:src="@drawable/contacts_no_account_empty" />
+
+    <TextView
+        android:id="@+id/message"
+        style="@style/EmptyStateTextStyle"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="@dimen/contacts_no_account_empty_text_padding_top"
+        android:text="@string/noContacts" />
 
     <LinearLayout
-        android:orientation="vertical"
-        android:layout_marginLeft="40dp"
-        android:layout_marginRight="40dp"
+        android:id="@+id/buttons_container"
         android:layout_width="wrap_content"
-        android:layout_height="match_parent">
-        <ImageView
-            android:id="@+id/empty_image"
-            android:layout_height="128dp"
-            android:layout_width="128dp"
-            android:layout_marginTop="60dp"
-            android:alpha="0.38"
-            android:gravity="center_horizontal"/>
+        android:layout_height="wrap_content"
+        android:gravity="center_horizontal"
+        android:orientation="horizontal">
 
-        <TextView
-            android:id="@+id/message"
+        <Button
+            android:id="@+id/add_account_button"
+            style="@style/NoAccountViewButtonStyle"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="4dp"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="?android:attr/textColorSecondary"
-            android:layout_gravity="center_horizontal"
-            android:textIsSelectable="false"/>
+            android:layout_marginEnd="@dimen/contacts_no_account_buttons_margin"
+            android:text="@string/contacts_unavailable_add_account" />
+
+        <Button
+            android:id="@+id/import_contacts_button"
+            style="@style/NoAccountViewButtonStyle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/contacts_unavailable_import_contacts" />
+    </LinearLayout>
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
 
         <ProgressBar
             android:id="@+id/progress"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="?android:attr/progressBarStyleHorizontal"
-            android:indeterminate="true"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="12dp" />
-    </LinearLayout>
-
-    <!-- This buttons_container is landscape exclusive because we want the two buttons to be of
-         the same width (wrapping the longer content) and the layout width to be 208dp. -->
-    <LinearLayout
-        android:id="@+id/buttons_container"
-        android:orientation="vertical"
-        android:layout_width="208dp"
-        android:layout_height="match_parent">
-        <LinearLayout
-            android:orientation="vertical"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_gravity="center_horizontal">
-
-            <Button
-                android:id="@+id/add_account_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="85dp"
-                android:layout_marginBottom="10dp"
-                android:textColor="@android:color/white"
-                android:text="@string/contacts_unavailable_add_account" />
-
-            <Button
-                android:id="@+id/import_contacts_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:textColor="@android:color/white"
-                android:text="@string/contacts_unavailable_import_contacts" />
-        </LinearLayout>
-    </LinearLayout>
-
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:indeterminate="true"
+            android:visibility="gone" />
+    </FrameLayout>
 </LinearLayout>
diff --git a/res/layout-land/empty_group_view.xml b/res/layout-land/empty_group_view.xml
new file mode 100644
index 0000000..66f445b
--- /dev/null
+++ b/res/layout-land/empty_group_view.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/empty_group"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:background="@color/empty_state_background"
+    android:visibility="gone">
+
+    <ImageView
+        android:id="@+id/empty_group_image"
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:paddingTop="@dimen/empty_group_view_image_padding_top"
+        android:scaleType="centerInside"
+        android:adjustViewBounds="true"
+        android:src="@drawable/label_empty"/>
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:layout_gravity="center_horizontal"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/empty_group_view_text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:paddingTop="@dimen/empty_group_view_text_padding_top"
+            android:text="@string/emptyGroup"
+            style="@style/EmptyStateTextStyle"/>
+
+        <Button
+            android:id="@+id/add_member_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:text="@string/menu_addContactsToGroup"
+            style="@style/AddContactsButtonStyle"/>
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-land/group_editor_view.xml b/res/layout-land/group_editor_view.xml
deleted file mode 100644
index dded4c3..0000000
--- a/res/layout-land/group_editor_view.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical" >
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:paddingStart="8dip"
-        android:paddingEnd="8dip"
-        android:orientation="horizontal"
-        >
-
-        <EditText
-            android:id="@+id/group_name"
-            android:layout_width="0dip"
-            android:layout_weight="1"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:inputType="textCapWords"
-            android:imeOptions="flagNoExtractUi|flagNoFullscreen"
-            android:hint="@string/group_name_hint"
-            android:minHeight="48dip"
-            android:paddingRight="8dip"
-            android:paddingEnd="8dip"
-            />
-
-        <LinearLayout
-            android:layout_width="0dip"
-            android:layout_weight="1"
-            android:layout_height="match_parent"
-            android:paddingLeft="8dip"
-            android:paddingStart="8dip"
-            android:orientation="vertical"
-            >
-            <include
-                layout="@layout/group_editor_autocomplete_view"
-                android:id="@+id/add_member_field"/>
-            <include
-                layout="@layout/group_editor_existing_member_list"
-                android:id="@android:id/list"/>
-        </LinearLayout>
-    </LinearLayout>
-</LinearLayout>
diff --git a/res/layout-land/group_source_button.xml b/res/layout-land/group_source_button.xml
deleted file mode 100644
index 3bc10e7..0000000
--- a/res/layout-land/group_source_button.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!--
-  Layout for the button that will launch the user into the source application
-  that the group came from (on a group detail page). This will be used in the
-  action bar, so it has a vertical divider.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="match_parent"
-    android:orientation="horizontal"
-    style="?android:attr/actionButtonStyle">
-
-    <LinearLayout
-        android:id="@+id/group_source"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:orientation="horizontal">
-
-        <TextView
-            android:id="@android:id/title"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="@color/action_bar_button_text_color"
-            style="@android:style/Widget.Holo.ActionBar.TabText"/>
-
-        <ImageView
-            android:id="@android:id/icon"
-            android:layout_width="25dip"
-            android:layout_height="25dip"
-            android:layout_marginLeft="7dip"
-            android:layout_marginRight="7dip"
-            android:layout_marginStart="7dip"
-            android:layout_marginEnd="7dip"
-            android:layout_gravity="center_vertical"/>
-
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/res/layout-land/people_activity_toolbar.xml b/res/layout-land/people_activity_toolbar.xml
index d33a96c..8fb0dc1 100644
--- a/res/layout-land/people_activity_toolbar.xml
+++ b/res/layout-land/people_activity_toolbar.xml
@@ -28,13 +28,15 @@
     <FrameLayout
         android:id="@+id/toolbar_frame"
         android:layout_width="match_parent"
-        android:layout_height="?android:attr/actionBarSize"
-        android:background="@color/actionbar_background_color">
+        android:layout_height="?attr/actionBarSize"
+        android:background="?attr/colorPrimary">
 
-        <Toolbar
+        <!-- the attribute padding removes the gap between this Toolbar and its parent FrameLayout on tablet -->
+        <android.support.v7.widget.Toolbar
             android:layout_width="match_parent"
-            android:layout_height="?android:attr/actionBarSize"
+            android:layout_height="?attr/actionBarSize"
             android:id="@+id/toolbar"
+            android:padding="0dp"
             style="@style/ContactsToolbarStyle" />
 
     </FrameLayout>
diff --git a/res/layout-sw600dp-land/contact_detail_updates_fragment.xml b/res/layout-sw600dp-land/contact_detail_updates_fragment.xml
deleted file mode 100644
index 40bc9c9..0000000
--- a/res/layout-sw600dp-land/contact_detail_updates_fragment.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<ListView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@android:id/list"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/background_social_updates"
-    android:fadingEdge="none"
-    android:divider="@null"
-    android:paddingTop="@dimen/contact_detail_list_top_padding"
-    android:paddingLeft="16dip"
-    android:paddingRight="16dip"
-    android:paddingStart="16dip"
-    android:paddingEnd="16dip"
-    android:scrollbarStyle="outsideOverlay"
-    android:clipToPadding="false"/>
diff --git a/res/layout-sw600dp-land/contact_editor_activity.xml b/res/layout-sw600dp-land/contact_editor_activity.xml
deleted file mode 100644
index 4eb2d0c..0000000
--- a/res/layout-sw600dp-land/contact_editor_activity.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!-- This should be kept in sync with layout-sw720dp/contact_editor_activity.xml -->
-<ScrollView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:fillViewport="true">
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:baselineAligned="false">
-
-        <!-- Empty view to represent the left margin -->
-        <View
-            android:layout_height="match_parent"
-            android:layout_width="0dip"
-            android:layout_weight="@integer/contact_list_space_layout_weight" />
-
-        <fragment class="com.android.contacts.editor.ContactEditorFragment"
-            android:id="@+id/contact_editor_fragment"
-            android:layout_width="0dip"
-            android:layout_weight="@integer/contact_list_card_layout_weight"
-            android:layout_height="match_parent"/>
-
-        <!-- Empty view to represent the right margin -->
-        <View
-            android:layout_height="match_parent"
-            android:layout_width="0dip"
-            android:layout_weight="@integer/contact_list_space_layout_weight" />
-
-    </LinearLayout>
-
-</ScrollView>
diff --git a/res/layout-sw600dp-land/group_browse_list_account_header.xml b/res/layout-sw600dp-land/group_browse_list_account_header.xml
deleted file mode 100644
index af60c79..0000000
--- a/res/layout-sw600dp-land/group_browse_list_account_header.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
-
-    <!-- Only visible when it is the first element in the list. -->
-    <View
-        android:id="@+id/header_extra_top_padding"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/list_header_extra_top_padding" />
-
-    <include layout="@layout/group_account_header_horizontal" />
-
-</LinearLayout>
diff --git a/res/layout-sw600dp/aggregation_suggestions.xml b/res/layout-sw600dp/aggregation_suggestions.xml
deleted file mode 100644
index 3a314b6..0000000
--- a/res/layout-sw600dp/aggregation_suggestions.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 2010, 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.
- */
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:background="@drawable/aggregation_suggestions_bg_light_holo"
-    android:paddingBottom="10dip">
-    <LinearLayout
-        android:id="@+id/aggregation_suggestions"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical" />
-</LinearLayout>
diff --git a/res/layout-sw600dp/contact_editor_activity.xml b/res/layout-sw600dp/contact_editor_activity.xml
deleted file mode 100644
index 526fe2b..0000000
--- a/res/layout-sw600dp/contact_editor_activity.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<ScrollView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:fillViewport="true">
-
-    <fragment class="com.android.contacts.editor.ContactEditorFragment"
-        android:id="@+id/contact_editor_fragment"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"/>
-
-</ScrollView>
diff --git a/res/layout-sw600dp/contact_editor_fragment.xml b/res/layout-sw600dp/contact_editor_fragment.xml
deleted file mode 100644
index be7723d..0000000
--- a/res/layout-sw600dp/contact_editor_fragment.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
--->
-
-<com.android.contacts.widget.InterpolatingLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:ex="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/contact_all_list_background_color"
-    android:elevation="@dimen/contact_list_card_elevation">
-
-    <LinearLayout
-        android:id="@+id/editors"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical"
-        android:fadingEdge="none"
-        ex:layout_wideParentWidth="800dip"
-        ex:layout_wideMarginLeft="128dip"
-        ex:layout_wideMarginRight="128dip"
-        ex:layout_narrowParentWidth="600dip"
-        ex:layout_narrowMarginLeft="50dip"
-        ex:layout_narrowMarginRight="50dip"/>
-
-</com.android.contacts.widget.InterpolatingLayout>
diff --git a/res/layout-sw600dp/external_group_editor_view.xml b/res/layout-sw600dp/external_group_editor_view.xml
deleted file mode 100644
index 9702bc7..0000000
--- a/res/layout-sw600dp/external_group_editor_view.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="50dip"
-    android:paddingLeft="50dip"
-    android:paddingRight="100dip"
-    android:paddingStart="50dip"
-    android:paddingEnd="100dip"
-    android:orientation="horizontal"
-    android:background="@color/background_primary">
-
-    <LinearLayout
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="3"
-        android:layout_marginRight="30dip"
-        android:layout_marginEnd="30dip"
-        android:orientation="vertical">
-
-        <TextView
-            android:id="@+id/read_only_warning"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="10dip"
-            android:paddingLeft="10dip"
-            android:paddingRight="10dip"
-            android:paddingStart="10dip"
-            android:paddingEnd="10dip"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="?android:attr/textColorTertiary"
-            android:text="@string/group_read_only" />
-
-        <include
-            android:id="@+id/account_header"
-            layout="@layout/editor_account_header"/>
-
-        <TextView
-            android:id="@+id/group_name"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="?android:attr/textColorTertiary"
-            android:textStyle="bold"
-            android:padding="10dip"/>
-
-    </LinearLayout>
-
-    <include
-        layout="@layout/group_editor_existing_member_list"
-        android:id="@android:id/list"
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="2"/>
-
-</LinearLayout>
diff --git a/res/layout-sw600dp/group_browse_list_account_header.xml b/res/layout-sw600dp/group_browse_list_account_header.xml
deleted file mode 100644
index cca6ed9..0000000
--- a/res/layout-sw600dp/group_browse_list_account_header.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
-
-    <!-- Only visible when it is the first element in the list. -->
-    <View
-        android:id="@+id/header_extra_top_padding"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/list_header_extra_top_padding" />
-
-    <include layout="@layout/group_account_header_vertical" />
-
-</LinearLayout>
diff --git a/res/layout-sw600dp/group_detail_fragment.xml b/res/layout-sw600dp/group_detail_fragment.xml
deleted file mode 100644
index 4afc0ee..0000000
--- a/res/layout-sw600dp/group_detail_fragment.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/group_detail"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@drawable/panel_content"
-    android:paddingLeft="@dimen/group_detail_border_padding"
-    android:paddingRight="@dimen/group_detail_border_padding"
-    android:paddingStart="@dimen/group_detail_border_padding"
-    android:paddingEnd="@dimen/group_detail_border_padding">
-
-    <!-- Static header containing the group title, size, and group source (if applicable) -->
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal" >
-
-        <LinearLayout
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:paddingLeft="8dip"
-            android:paddingStart="8dip"
-            android:orientation="vertical" >
-
-            <TextView
-                android:id="@+id/group_title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:paddingTop="12dip"
-                android:textAppearance="?android:attr/textAppearanceLarge"
-                android:textStyle="bold" />
-
-            <TextView
-                android:id="@+id/group_size"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:paddingBottom="12dip"
-                android:textAppearance="@style/GroupMembershipSizeTextAppearance"
-                android:textColor="?android:attr/textColorSecondary" />
-
-        </LinearLayout>
-
-        <FrameLayout
-            android:id="@+id/group_source_view_container"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent" />
-
-    </LinearLayout>
-
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dip"
-        android:background="@color/people_app_theme_color" />
-
-    <!-- List of group members -->
-    <ListView android:id="@android:id/list"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:cacheColorHint="@android:color/black"
-        android:fadingEdge="none"
-        android:divider="@null" />
-
-    <include
-        layout="@layout/group_detail_fragment_empty_view"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-sw600dp/group_editor_activity.xml b/res/layout-sw600dp/group_editor_activity.xml
deleted file mode 100644
index f93d247..0000000
--- a/res/layout-sw600dp/group_editor_activity.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:ex="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    <com.android.contacts.widget.InterpolatingLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-        <fragment class="com.android.contacts.group.GroupEditorFragment"
-            android:id="@+id/group_editor_fragment"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            ex:layout_wideParentWidth="1280dip"
-            ex:layout_wideMarginLeft="160dip"
-            ex:layout_wideMarginRight="160dip"
-            ex:layout_narrowParentWidth="800dip"
-            ex:layout_narrowMarginLeft="0dip"
-            ex:layout_narrowMarginRight="0dip"
-         />
-    </com.android.contacts.widget.InterpolatingLayout>
-</FrameLayout>
diff --git a/res/layout-sw600dp/group_editor_view.xml b/res/layout-sw600dp/group_editor_view.xml
deleted file mode 100644
index 717fc28..0000000
--- a/res/layout-sw600dp/group_editor_view.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="32dip"
-    android:paddingLeft="@dimen/group_editor_side_padding"
-    android:paddingRight="@dimen/group_editor_side_padding"
-    android:paddingStart="@dimen/group_editor_side_padding"
-    android:paddingEnd="@dimen/group_editor_side_padding"
-    android:orientation="horizontal"
-    android:background="@color/background_primary">
-
-    <LinearLayout
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="3"
-        android:layout_marginRight="30dip"
-        android:layout_marginEnd="30dip"
-        android:orientation="vertical">
-
-        <include
-            android:id="@+id/account_header"
-            layout="@layout/editor_account_header"/>
-
-        <EditText
-            android:id="@+id/group_name"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="48dip"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:inputType="textCapWords"
-            android:hint="@string/group_name_hint"
-            android:paddingLeft="16dip"
-            android:paddingStart="16dip"/>
-
-    </LinearLayout>
-
-    <LinearLayout
-        android:id="@+id/group_members"
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="2"
-        android:orientation="vertical">
-
-        <include
-            android:id="@+id/spacer"
-            layout="@layout/editor_account_header"
-            android:visibility="invisible"/>
-
-        <include
-            layout="@layout/group_editor_autocomplete_view"
-            android:id="@+id/add_member_field"/>
-
-        <include
-            layout="@layout/group_editor_existing_member_list"
-            android:id="@android:id/list"/>
-
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/res/layout-sw600dp/group_source_button.xml b/res/layout-sw600dp/group_source_button.xml
deleted file mode 100644
index aad118f..0000000
--- a/res/layout-sw600dp/group_source_button.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!--
-  Layout for the button that will launch the user into the source application
-  that the group came from (on a group detail page).
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/group_source"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_gravity="center_vertical"
-    android:background="?android:attr/selectableItemBackground"
-    android:padding="10dip" >
-
-    <TextView
-        android:id="@android:id/title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:duplicateParentState="true"
-        android:textSize="14sp"
-        style="@android:style/Widget.Holo.ActionBar.TabText"/>
-
-    <ImageView
-        android:id="@android:id/icon"
-        android:duplicateParentState="true"
-        android:layout_width="30dip"
-        android:layout_height="30dip"
-        android:layout_marginLeft="7dip"
-        android:layout_marginStart="7dip"
-        android:layout_gravity="center_vertical"/>
-
-</LinearLayout>
diff --git a/res/layout-sw720dp-land/contact_detail_updates_fragment.xml b/res/layout-sw720dp-land/contact_detail_updates_fragment.xml
deleted file mode 100644
index ba9f653..0000000
--- a/res/layout-sw720dp-land/contact_detail_updates_fragment.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<ListView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@android:id/list"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/background_social_updates"
-    android:fadingEdge="none"
-    android:divider="@null"
-    android:paddingTop="@dimen/contact_detail_list_top_padding"
-    android:paddingLeft="16dip"
-    android:paddingRight="16dip"
-    android:paddingStart="16dip"
-    android:paddingEnd="16dip"
-    android:scrollbarStyle="outsideOverlay"
-    android:clipToPadding="false"/>
diff --git a/res/layout-sw720dp/contact_editor_activity.xml b/res/layout-sw720dp/contact_editor_activity.xml
deleted file mode 100644
index b31171f..0000000
--- a/res/layout-sw720dp/contact_editor_activity.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-
-<!-- This should be kept in sync with layout-sw600dp-land/contact_editor_activity.xml -->
-<ScrollView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:fillViewport="true">
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:baselineAligned="false">
-
-        <!-- Empty view to represent the left margin -->
-        <View
-            android:layout_height="match_parent"
-            android:layout_width="0dip"
-            android:layout_weight="@integer/contact_list_space_layout_weight" />
-
-        <fragment class="com.android.contacts.editor.ContactEditorFragment"
-            android:id="@+id/contact_editor_fragment"
-            android:layout_width="0dip"
-            android:layout_weight="@integer/contact_list_card_layout_weight"
-            android:layout_height="match_parent"/>
-
-        <!-- Empty view to represent the right margin -->
-        <View
-            android:layout_height="match_parent"
-            android:layout_width="0dip"
-            android:layout_weight="@integer/contact_list_space_layout_weight" />
-
-    </LinearLayout>
-
-</ScrollView>
diff --git a/res/layout-sw720dp/group_browse_list_account_header.xml b/res/layout-sw720dp/group_browse_list_account_header.xml
deleted file mode 100644
index af60c79..0000000
--- a/res/layout-sw720dp/group_browse_list_account_header.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
-
-    <!-- Only visible when it is the first element in the list. -->
-    <View
-        android:id="@+id/header_extra_top_padding"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/list_header_extra_top_padding" />
-
-    <include layout="@layout/group_account_header_horizontal" />
-
-</LinearLayout>
diff --git a/res/layout-v23/edit_spinner.xml b/res/layout-v23/edit_spinner.xml
index 0c20ab9..37015f7 100644
--- a/res/layout-v23/edit_spinner.xml
+++ b/res/layout-v23/edit_spinner.xml
@@ -21,8 +21,7 @@
     android:id="@+id/spinner"
     android:layout_gravity="bottom|start"
     style="@android:style/Widget.Material.Spinner.Underlined"
-    android:dropDownWidth="@dimen/editor_type_label_dropdown_width"
-    android:layout_width="@dimen/editor_type_label_width"
+    android:layout_width="wrap_content"
     android:layout_height="@dimen/editor_min_line_item_height"
     android:paddingBottom="0dp"
     android:paddingTop="0dp"
diff --git a/res/layout-v23/item_group_membership.xml b/res/layout-v23/item_group_membership.xml
index ccf1f7f..cf45ab6 100644
--- a/res/layout-v23/item_group_membership.xml
+++ b/res/layout-v23/item_group_membership.xml
@@ -23,7 +23,7 @@
 
     <ImageView
         android:id="@+id/kind_icon"
-        android:src="@drawable/ic_people_black_24dp"
+        android:src="@drawable/quantum_ic_label_vd_theme_24"
         style="@style/EditKindIconStyle" />
 
     <Button
diff --git a/res/layout/account_filter_header.xml b/res/layout/account_filter_header.xml
new file mode 100644
index 0000000..d348e82
--- /dev/null
+++ b/res/layout/account_filter_header.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- Layout showing the type of account filter
+     (e.g. All contacts filter, custom filter, etc.),
+     which is the header of all contact lists. -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/account_filter_header_container"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/contact_browser_list_header_height"
+    android:paddingTop="@dimen/list_header_extra_top_padding"
+    android:visibility="gone"
+    android:orientation="horizontal"
+    android:background="@color/background_primary">
+
+    <ImageView
+        android:id="@+id/account_filter_icon"
+        android:layout_height="@dimen/contact_browser_list_header_icon_size"
+        android:layout_width="@dimen/contact_browser_list_header_icon_size"
+        android:layout_marginStart="@dimen/contact_browser_list_header_icon_left_margin"
+        android:layout_marginEnd="@dimen/contact_browser_list_header_icon_right_margin"
+        android:layout_gravity="center_vertical"/>
+
+    <TextView
+        android:id="@+id/account_filter_header"
+        android:layout_gravity="center_vertical"
+        android:layout_marginStart="@dimen/contact_browser_list_header_text_margin"
+        android:layout_marginEnd="@dimen/contact_browser_list_header_right_margin"
+        style="@style/ContactListSeparatorTextViewStyle"
+        android:textAlignment="viewStart"
+        android:paddingLeft="@dimen/contact_browser_list_item_text_indent"
+        android:paddingStart="@dimen/contact_browser_list_item_text_indent" />
+</LinearLayout>
diff --git a/res/layout/account_selector_list_item_condensed.xml b/res/layout/account_selector_list_item_condensed.xml
new file mode 100644
index 0000000..ae91726
--- /dev/null
+++ b/res/layout/account_selector_list_item_condensed.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="72dp"
+    android:orientation="horizontal">
+    <ImageView android:id="@android:id/icon"
+        android:layout_width="@dimen/detail_network_icon_size"
+        android:layout_height="@dimen/detail_network_icon_size"
+        android:layout_marginStart="24dp"
+        android:layout_marginEnd="16dp"
+        android:layout_gravity="center_vertical" />
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:layout_gravity="center_vertical">
+
+        <TextView android:id="@android:id/text1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="8dip"
+            android:layout_marginEnd="8dip"
+            android:textSize="16sp"
+            android:textColor="@color/contacts_text_color"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:singleLine="true"
+            android:ellipsize="end"/>
+
+        <TextView android:id="@android:id/text2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="24dp"
+            android:textSize="14sp"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true"
+            android:ellipsize="end"/>
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/aggregation_suggestions.xml b/res/layout/aggregation_suggestions.xml
deleted file mode 100644
index 3b9d278..0000000
--- a/res/layout/aggregation_suggestions.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 2010, 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.
- */
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:background="@drawable/aggregation_suggestions_bg">
-    <LinearLayout
-        android:id="@+id/aggregation_suggestions"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-    />
-</LinearLayout>
diff --git a/res/layout/all_photos_button.xml b/res/layout/all_photos_button.xml
deleted file mode 100644
index 83578c3..0000000
--- a/res/layout/all_photos_button.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="@dimen/photo_picker_item_ideal_width"
-    android:layout_height="@dimen/photo_picker_item_ideal_width"
-    android:background="@color/google_grey_600"
-    android:orientation="vertical">
-
-    <ImageView
-        android:id="@+id/image"
-        android:paddingTop="48dp"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:src="@drawable/ic_photos_white_24"
-        android:layout_gravity="center_horizontal"/>
-
-    <TextView
-        android:id="@+id/textLabel"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_centerInParent="true"
-        android:singleLine="true"
-        android:text="@string/all_photos_button"
-        android:textSize="14sp"
-        android:textColor="@color/photo_action_button_color"
-        android:paddingTop="9dp"
-        android:paddingBottom="35dp"
-        android:layout_gravity="center_horizontal"/>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/call_subject_history_list_item.xml b/res/layout/call_subject_history_list_item.xml
new file mode 100644
index 0000000..b8cce47
--- /dev/null
+++ b/res/layout/call_subject_history_list_item.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+          android:id="@android:id/text1"
+          android:gravity="center_vertical"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
+          android:paddingStart="@dimen/call_subject_dialog_margin"
+          android:paddingEnd="@dimen/call_subject_dialog_margin"
+          android:paddingTop="@dimen/call_subject_history_item_padding"
+          android:paddingBottom="@dimen/call_subject_history_item_padding"
+          android:singleLine="true"
+          android:textColor="@color/dialtacts_primary_text_color"
+          android:textSize="@dimen/call_subject_dialog_primary_text_size" />
diff --git a/res/layout/compact_account_info.xml b/res/layout/compact_account_info.xml
deleted file mode 100644
index dda4fe4..0000000
--- a/res/layout/compact_account_info.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
-<!-- Copy of editor_account_header_expandable, but w/o the expand account button. -->
-<LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/account_container"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:minHeight="@dimen/editor_min_line_item_height"
-        android:orientation="horizontal"
-        android:background="?android:attr/selectableItemBackground"
-        android:layout_marginBottom="@dimen/compact_editor_name_top_margin"
-        android:visibility="gone"
-        >
-
-
-    <ImageView
-            android:id="@+id/account_type_icon"
-            style="@style/EditSelectorIconStyle"/>
-
-    <LinearLayout
-            android:layout_height="wrap_content"
-            android:layout_width="0dp"
-            android:layout_weight="1"
-            android:layout_marginTop="@dimen/compact_editor_account_header_top_margin"
-            android:layout_marginStart="@dimen/compact_editor_account_left_margin"
-            android:layout_gravity="center_vertical"
-            android:orientation="vertical"
-            >
-
-        <TextView
-                android:id="@+id/account_type"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:textSize="16sp"
-                android:singleLine="true"
-                android:textColor="@color/primary_text_color"
-                android:ellipsize="end"
-                android:textAlignment="viewStart"
-                />
-
-        <TextView
-                android:id="@+id/account_name"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:textSize="14sp"
-                android:singleLine="true"
-                android:textColor="@color/secondary_text_color"
-                android:ellipsize="end"
-                android:textAlignment="viewStart"
-                />
-
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/compact_contact_editor_activity.xml b/res/layout/compact_contact_editor_activity.xml
deleted file mode 100644
index 595f381..0000000
--- a/res/layout/compact_contact_editor_activity.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2015 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/fragment_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical"/>
diff --git a/res/layout/compact_contact_editor_fields.xml b/res/layout/compact_contact_editor_fields.xml
deleted file mode 100644
index 1d91448..0000000
--- a/res/layout/compact_contact_editor_fields.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <LinearLayout
-            android:id="@+id/kind_section_views"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical" />
-
-    <LinearLayout
-            style="@style/SelectableItem"
-            android:id="@+id/more_fields"
-            android:focusable="true"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-
-        <!-- See the comment for EditKindIconStyle in styles.xml, we use (16 + 24 + 32) dp of
-             padding (start margin + icon width + end margin) for this to line up with the start
-             of the edit fields. -->
-        <TextView
-                android:background="?android:attr/selectableItemBackground"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:minHeight="@dimen/editor_min_line_item_height"
-                android:paddingStart="72dp"
-                android:gravity="center_vertical"
-                android:text="@string/compact_editor_more_fields"
-                android:textAlignment="viewStart"
-                android:textColor="?android:attr/colorAccent"
-                android:textSize="@dimen/expanding_entry_card_title_text_size"/>
-
-    </LinearLayout>
-
-</merge>
\ No newline at end of file
diff --git a/res/layout/compact_contact_editor_fragment.xml b/res/layout/compact_contact_editor_fragment.xml
deleted file mode 100644
index 1e134e0..0000000
--- a/res/layout/compact_contact_editor_fragment.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/compact_contact_editor_fragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@color/background_primary"
-        android:fadingEdge="none"
-        android:fillViewport="true">
-
-    <com.android.contacts.editor.CompactRawContactsEditorView
-            android:id="@+id/raw_contacts_editor_view"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:visibility="invisible">
-
-        <include layout="@layout/compact_photo_editor_view" />
-
-        <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
-        <View
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:focusable="true"
-            android:focusableInTouchMode="true"/>
-
-        <include layout="@layout/editor_all_rawcontacts_accounts_selector" />
-        <include layout="@layout/compact_account_info" />
-        <include layout="@layout/editor_account_selector" />
-
-        <include layout="@layout/compact_contact_editor_fields" />
-
-    </com.android.contacts.editor.CompactRawContactsEditorView>
-
-</ScrollView>
diff --git a/res/layout/compact_item_kind_section.xml b/res/layout/compact_item_kind_section.xml
deleted file mode 100644
index 771ccfe..0000000
--- a/res/layout/compact_item_kind_section.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
-<!-- The body surrounding all editors for a specific kind -->
-
-<com.android.contacts.editor.CompactKindSectionView
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal">
-
-    <ImageView
-            android:id="@+id/kind_icon"
-            style="@style/EditKindIconStyle" />
-
-    <LinearLayout
-            android:id="@+id/kind_editors"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical" />
-
-</com.android.contacts.editor.CompactKindSectionView>
\ No newline at end of file
diff --git a/res/layout/compact_photo_editor_view.xml b/res/layout/compact_photo_editor_view.xml
deleted file mode 100644
index 8f791ca..0000000
--- a/res/layout/compact_photo_editor_view.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
-<com.android.contacts.editor.CompactPhotoEditorView
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/photo_editor"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center_horizontal">
-
-    <com.android.contacts.widget.QuickContactImageView
-            android:id="@+id/photo"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:scaleType="centerCrop"/>
-
-    <View
-            android:id="@+id/photo_icon_overlay"
-            android:layout_height="56dp"
-            android:layout_width="match_parent"
-            android:layout_alignParentBottom="true" />
-
-    <ImageView
-            android:id="@+id/photo_icon"
-            android:layout_width="24dp"
-            android:layout_height="24dp"
-            android:layout_alignParentBottom="true"
-            android:layout_alignParentEnd="true"
-            android:layout_marginBottom="16dp"
-            android:layout_marginEnd="16dp"
-            android:background="?android:attr/selectableItemBackground"
-            android:src="@drawable/ic_photo_camera_white_24dp" />
-
-    <View
-            android:id="@+id/photo_touch_intercept_overlay"
-            android:focusable="true"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/item_background_material_dark"
-            android:contentDescription="@string/compact_editor_change_photo_content_description" />
-
-</com.android.contacts.editor.CompactPhotoEditorView>
diff --git a/res/layout/compact_photo_selection_fragment.xml b/res/layout/compact_photo_selection_fragment.xml
deleted file mode 100644
index 42f5b96..0000000
--- a/res/layout/compact_photo_selection_fragment.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
- <GridView xmlns:android="http://schemas.android.com/apk/res/android"
-      android:id="@+id/grid_view"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:numColumns="auto_fit"
-      android:verticalSpacing="3dp"
-      android:horizontalSpacing="3dp"
-      android:stretchMode="columnWidth"
-      android:gravity="center"
-      android:paddingTop="3dp"
-      android:drawSelectorOnTop="true"/>
diff --git a/res/layout/compact_photo_selection_item.xml b/res/layout/compact_photo_selection_item.xml
deleted file mode 100644
index aea8ff6..0000000
--- a/res/layout/compact_photo_selection_item.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        style="@style/SelectableItem"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <ImageView
-            android:id="@+id/image"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/photo_picker_item_ideal_width"
-            android:adjustViewBounds="true"
-            android:layout_centerInParent="true"
-            android:scaleType="centerCrop" />
-
-    <ImageView
-            android:id="@+id/check"
-            android:layout_width="24dp"
-            android:layout_height="24dp"
-            android:layout_alignParentTop="true"
-            android:layout_alignParentStart="true"
-            android:layout_margin="8dp"
-            android:src="@drawable/ic_check_circle_googblue_drawable_24dp"
-            android:visibility="gone"/>
-
-    <ImageView
-            android:id="@+id/account_type"
-            android:layout_width="30dp"
-            android:layout_height="30dp"
-            android:layout_alignParentBottom="true"
-            android:layout_alignParentStart="true"
-            android:paddingBottom="8dp"
-            android:paddingStart="8dp"/>
-
-</RelativeLayout>
diff --git a/res/layout/confirm_add_detail_activity.xml b/res/layout/confirm_add_detail_activity.xml
deleted file mode 100644
index e26c917..0000000
--- a/res/layout/confirm_add_detail_activity.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!-- Layout for confirming the addition of a piece of information to an existing contact. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/root_view"
-    android:orientation="vertical"
-    android:visibility="invisible"
-    style="@style/ConfirmAddDetailViewStyle">
-
-    <!--
-      The header contains the contact photo, name, a link to the contact card, and
-      possibly an extra data field to disambiguate contacts with the same name.
-    -->
-    <RelativeLayout
-        style="@style/ConfirmAddDetailHeaderViewStyle">
-
-        <ImageView
-            android:id="@+id/photo"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:scaleType="centerCrop"/>
-
-        <View
-            android:id="@+id/photo_text_bar"
-            android:layout_width="0dip"
-            android:layout_height="42dip"
-            android:layout_alignBottom="@id/photo"
-            android:layout_alignLeft="@id/photo"
-            android:layout_alignRight="@id/photo"
-            android:layout_alignStart="@id/photo"
-            android:layout_alignEnd="@id/photo"
-            android:background="#7F000000" />
-
-        <ImageButton
-            android:id="@+id/open_details_button"
-            android:src="@drawable/ic_contacts_holo_dark"
-            android:background="?android:attr/selectableItemBackground"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_marginRight="16dip"
-            android:layout_marginEnd="16dip"
-            android:layout_marginBottom="5dip"
-            android:layout_alignBottom="@id/photo_text_bar"
-            android:layout_alignRight="@id/photo_text_bar"
-            android:layout_alignEnd="@id/photo_text_bar" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="42dip"
-            android:orientation="vertical"
-            android:layout_alignBottom="@id/photo"
-            android:layout_alignLeft="@id/photo"
-            android:layout_alignStart="@id/photo"
-            android:layout_toLeftOf="@id/open_details_button"
-            android:layout_toStartOf="@id/open_details_button"
-            android:paddingLeft="8dip"
-            android:paddingRight="8dip"
-            android:paddingStart="8dip"
-            android:paddingEnd="8dip">
-
-            <TextView
-                android:id="@+id/name"
-                android:layout_width="wrap_content"
-                android:layout_height="0dip"
-                android:layout_weight="1"
-                android:paddingLeft="8dip"
-                android:paddingStart="8dip"
-                android:gravity="center_vertical"
-                android:textColor="@android:color/white"
-                android:textSize="16sp"
-                android:singleLine="true" />
-
-            <TextView
-                android:id="@+id/extra_info"
-                android:layout_width="wrap_content"
-                android:layout_height="0dip"
-                android:layout_weight="1"
-                android:paddingLeft="8dip"
-                android:paddingStart="8dip"
-                android:gravity="center_vertical"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="@android:color/white"
-                android:singleLine="true"
-                android:paddingBottom="4dip"
-                android:visibility="gone" />
-
-        </LinearLayout>
-
-        <View
-            android:id="@+id/open_details_push_layer"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="?android:attr/selectableItemBackground" />
-
-    </RelativeLayout>
-
-    <!-- Message that gets displayed if the contact is read-only (instead of showing the editor) -->
-    <TextView android:id="@+id/read_only_warning"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="60dip"
-        android:visibility="gone"
-        android:padding="15dip"
-        android:textAppearance="?android:attr/textAppearanceSmall"/>
-
-    <!-- Container for a single detail field editor when the contact is not read-only -->
-    <FrameLayout
-        android:id="@+id/editor_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="60dip"
-        android:layout_marginTop="4dip"
-        android:layout_marginRight="15dip"
-        android:layout_marginEnd="15dip"/>
-
-    <View
-        android:id="@+id/divider"
-        android:layout_width="match_parent"
-        android:layout_height="1dip"
-        android:background="@color/secondary_header_separator_color"/>
-
-    <!-- Action buttons -->
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        style="?android:attr/buttonBarStyle">
-
-        <Button
-            android:id="@+id/btn_cancel"
-            style="?android:attr/buttonBarButtonStyle"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:text="@android:string/cancel" />
-
-        <Button
-            android:id="@+id/btn_done"
-            style="?android:attr/buttonBarButtonStyle"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:text="@android:string/ok" />
-
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/contact_detail_add_connection_entry_view.xml b/res/layout/contact_detail_add_connection_entry_view.xml
deleted file mode 100644
index 6d4971d..0000000
--- a/res/layout/contact_detail_add_connection_entry_view.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 2012, 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.
- */
--->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingLeft="@dimen/detail_item_side_margin"
-    android:paddingRight="@dimen/detail_item_side_margin"
-    android:paddingStart="@dimen/detail_item_side_margin"
-    android:paddingEnd="@dimen/detail_item_side_margin">
-    <LinearLayout
-        android:id="@+id/primary_action_view"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingTop="@dimen/detail_item_vertical_margin"
-        android:paddingBottom="@dimen/detail_item_vertical_margin"
-        android:focusable="true"
-        android:background="?android:attr/selectableItemBackground"
-        android:minHeight="@dimen/detail_min_line_item_height"
-        android:orientation="horizontal"
-        android:gravity="center_vertical">
-
-        <ImageView
-            android:id="@+id/add_connection_icon"
-            android:layout_width="@dimen/detail_network_icon_size"
-            android:layout_height="@dimen/detail_network_icon_size"
-            android:layout_marginLeft="@dimen/detail_item_icon_margin"
-            android:layout_marginRight="@dimen/detail_item_icon_margin"
-            android:layout_marginStart="@dimen/detail_item_icon_margin"
-            android:layout_marginEnd="@dimen/detail_item_icon_margin"
-            android:layout_gravity="center_vertical"
-            android:scaleType="centerInside" />
-
-        <TextView
-            android:id="@+id/add_connection_label"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:textAppearance="?android:attr/textAppearanceMedium"/>
-    </LinearLayout>
-</FrameLayout>
diff --git a/res/layout/contact_detail_network_title_entry_view.xml b/res/layout/contact_detail_network_title_entry_view.xml
deleted file mode 100644
index 073dad8..0000000
--- a/res/layout/contact_detail_network_title_entry_view.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 2011, 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.
- */
--->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingLeft="@dimen/detail_item_side_margin"
-    android:paddingRight="@dimen/detail_item_side_margin"
-    android:paddingStart="@dimen/detail_item_side_margin"
-    android:paddingEnd="@dimen/detail_item_side_margin">
-    <LinearLayout
-        android:id="@+id/primary_action_view"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingTop="@dimen/detail_item_vertical_margin"
-        android:paddingBottom="@dimen/detail_item_vertical_margin"
-        android:focusable="true"
-        android:background="?android:attr/selectableItemBackground"
-        android:minHeight="@dimen/detail_min_line_item_height"
-        android:orientation="horizontal"
-        android:gravity="center_vertical">
-
-        <ImageView
-            android:id="@+id/network_icon"
-            android:layout_width="@dimen/detail_network_icon_size"
-            android:layout_height="@dimen/detail_network_icon_size"
-            android:layout_marginLeft="@dimen/detail_item_icon_margin"
-            android:layout_marginRight="@dimen/detail_item_icon_margin"
-            android:layout_marginStart="@dimen/detail_item_icon_margin"
-            android:layout_marginEnd="@dimen/detail_item_icon_margin"
-            android:layout_gravity="center_vertical"
-            android:scaleType="centerInside" />
-
-        <TextView
-            android:id="@+id/network_title"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="?android:attr/textColorSecondary" />
-    </LinearLayout>
-</FrameLayout>
diff --git a/res/layout/contact_detail_separator_entry_view.xml b/res/layout/contact_detail_separator_entry_view.xml
deleted file mode 100644
index abe1cf8..0000000
--- a/res/layout/contact_detail_separator_entry_view.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <View
-      android:layout_width="match_parent"
-      android:layout_height="1dip"
-      android:background="?android:attr/listDivider"/>
-
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/contact_detail_updates_fragment.xml b/res/layout/contact_detail_updates_fragment.xml
deleted file mode 100644
index 02e906c..0000000
--- a/res/layout/contact_detail_updates_fragment.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<ListView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@android:id/list"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:divider="@null"/>
diff --git a/res/layout/contact_detail_updates_fragment_container.xml b/res/layout/contact_detail_updates_fragment_container.xml
deleted file mode 100644
index 7414f61..0000000
--- a/res/layout/contact_detail_updates_fragment_container.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!--
-  Container for the "Updates" page fragment on the contact card for a contact with social updates.
-  This view ID must match with a view ID in the layout that is used after an orientation change.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/updates_fragment_container"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:visibility="gone" />
diff --git a/res/layout/contact_editor_accounts_changed_activity_with_picker.xml b/res/layout/contact_editor_accounts_changed_activity_with_picker.xml
index 172c9c5..0faea20 100644
--- a/res/layout/contact_editor_accounts_changed_activity_with_picker.xml
+++ b/res/layout/contact_editor_accounts_changed_activity_with_picker.xml
@@ -24,14 +24,9 @@
     android:layout_height="match_parent"
     android:orientation="vertical">
 
-    <TextView android:id="@+id/text"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginLeft="24dip"
-        android:layout_marginStart="24dip"
-        android:paddingTop="15dip"
-        android:paddingBottom="15dip"
-        android:textAppearance="?android:attr/textAppearanceMedium"/>
+    <include
+        android:id="@+id/text"
+        layout="@layout/dialog_title"/>
 
     <View
         android:layout_width="match_parent"
@@ -42,8 +37,6 @@
         android:layout_width="match_parent"
         android:layout_height="0dip"
         android:layout_weight="1"
-        android:layout_marginLeft="8dip"
-        android:layout_marginStart="8dip"
         android:fadingEdge="none"/>
 
     <View
@@ -54,7 +47,9 @@
     <Button
         android:id="@+id/add_account_button"
         style="?android:attr/buttonBarButtonStyle"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"/>
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingStart="24dp"
+        android:layout_marginBottom="8dp"/>
 
 </LinearLayout>
diff --git a/res/layout/contact_editor_accounts_changed_activity_with_text.xml b/res/layout/contact_editor_accounts_changed_activity_with_text.xml
index 345d937..c9d2039 100644
--- a/res/layout/contact_editor_accounts_changed_activity_with_text.xml
+++ b/res/layout/contact_editor_accounts_changed_activity_with_text.xml
@@ -27,7 +27,11 @@
     <TextView android:id="@+id/text"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="15dip"
+        android:layout_marginStart="24dp"
+        android:layout_marginEnd="24dp"
+        android:layout_marginTop="24dp"
+        android:layout_marginBottom="24dp"
+        android:textAlignment="viewStart"
         android:textAppearance="?android:attr/textAppearanceMedium"/>
 
     <View
@@ -35,7 +39,7 @@
         android:layout_height="1dip"
         android:background="?android:attr/listDivider"/>
 
-    <LinearLayout
+    <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
@@ -44,20 +48,24 @@
         style="?android:attr/buttonBarStyle">
 
         <Button
-            android:id="@+id/left_button"
-            style="?android:attr/buttonBarButtonStyle"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:singleLine="false"
-            android:layout_weight="1" />
-
-        <Button
             android:id="@+id/right_button"
             style="?android:attr/buttonBarButtonStyle"
-            android:layout_width="0dip"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_weight="1" />
+            android:layout_alignParentEnd="true"
+            android:layout_marginStart="8dp"
+            android:layout_marginEnd="8dp"
+            android:layout_marginTop="8dp"
+            android:layout_marginBottom="8dp"/>
 
-    </LinearLayout>
+        <Button
+            android:id="@+id/left_button"
+            style="?android:attr/buttonBarButtonStyle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_toStartOf="@id/right_button"
+            android:layout_marginTop="8dp"/>
+
+    </RelativeLayout>
 
 </LinearLayout>
diff --git a/res/layout/contact_editor_activity.xml b/res/layout/contact_editor_activity.xml
index 8c13629..36fc64a 100644
--- a/res/layout/contact_editor_activity.xml
+++ b/res/layout/contact_editor_activity.xml
@@ -1,25 +1,36 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
+<!--
+    Copyright (C) 2015 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
+    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
+    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.
+    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.
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/fragment_container"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:orientation="vertical">
 
-    <fragment class="com.android.contacts.editor.ContactEditorFragment"
-            android:id="@+id/contact_editor_fragment"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-</FrameLayout>
+    <android.support.v7.widget.Toolbar
+        android:id="@+id/toolbar"
+        style="@style/EditorActionBarStyle"
+        android:layout_width="match_parent"
+        android:layout_height="?android:attr/actionBarSize"
+        android:background="?android:attr/colorPrimary"
+        android:elevation="4dp"
+        app:navigationContentDescription="@string/cancel_button_content_description"
+        app:navigationIcon="@drawable/quantum_ic_close_vd_theme_24"
+        app:title="@string/contact_editor_title_existing_contact" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/contact_editor_fields.xml b/res/layout/contact_editor_fields.xml
new file mode 100644
index 0000000..b9bda16
--- /dev/null
+++ b/res/layout/contact_editor_fields.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+            android:id="@+id/kind_section_views"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical" />
+
+    <LinearLayout
+            style="@style/SelectableItem"
+            android:id="@+id/more_fields"
+            android:focusable="true"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+        <!-- See the comment for EditKindIconStyle in styles.xml, we use (16 + 24 + 32) dp of
+             padding (start margin + icon width + end margin) for this to line up with the start
+             of the edit fields. -->
+        <TextView
+                android:background="?android:attr/selectableItemBackground"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:minHeight="@dimen/editor_min_line_item_height"
+                android:paddingStart="72dp"
+                android:gravity="center_vertical"
+                android:text="@string/editor_more_fields"
+                android:textAlignment="viewStart"
+                android:textColor="?android:attr/colorAccent"
+                android:textSize="@dimen/expanding_entry_card_title_text_size"/>
+
+    </LinearLayout>
+
+</merge>
\ No newline at end of file
diff --git a/res/layout/contact_editor_fragment.xml b/res/layout/contact_editor_fragment.xml
index f174a3d..690be8c 100644
--- a/res/layout/contact_editor_fragment.xml
+++ b/res/layout/contact_editor_fragment.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
+<!--
+     Copyright (C) 2015 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.
@@ -15,17 +16,33 @@
 -->
 
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:fillViewport="true"
-    android:fadingEdge="none"
-    android:background="@color/background_primary"
->
-
-    <LinearLayout android:id="@+id/editors"
+        android:id="@+id/contact_editor_fragment"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-    />
+        android:layout_height="match_parent"
+        android:background="@color/background_primary"
+        android:fadingEdge="none"
+        android:fillViewport="true">
+
+    <com.android.contacts.editor.RawContactEditorView
+            android:id="@+id/raw_contacts_editor_view"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:visibility="invisible">
+
+        <include layout="@layout/photo_editor_view" />
+
+        <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
+        <View
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:focusable="true"
+            android:focusableInTouchMode="true"/>
+
+        <include layout="@layout/editor_account_header" />
+
+        <include layout="@layout/contact_editor_fields" />
+
+    </com.android.contacts.editor.RawContactEditorView>
 
 </ScrollView>
diff --git a/res/layout/contact_editor_label_name_dialog.xml b/res/layout/contact_editor_label_name_dialog.xml
index 162f85d..61765ce 100644
--- a/res/layout/contact_editor_label_name_dialog.xml
+++ b/res/layout/contact_editor_label_name_dialog.xml
@@ -18,14 +18,19 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingLeft="25dip"
-    android:paddingRight="25dip"
-    android:paddingStart="25dip"
-    android:paddingEnd="25dip"
-    android:paddingTop="25dip"
-    android:paddingBottom="25dip">
+    android:paddingStart="@dimen/custom_dialog_layout_padding"
+    android:paddingEnd="@dimen/custom_dialog_layout_padding"
+    android:paddingTop="@dimen/custom_dialog_layout_padding">
+
     <EditText
         android:id="@+id/custom_dialog_content"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="@dimen/custom_dialog_layout"
+        android:layout_marginEnd="@dimen/custom_dialog_layout"
+        android:hint="@string/label_name_dialog_hint"
+        android:minWidth="@dimen/custom_dialog_min_width"
+        android:minHeight="@dimen/dialog_edit_text_min_height"
+        android:lines="1"
+        android:textAlignment="viewStart"/>
 </FrameLayout>
diff --git a/res/layout/contact_list_card.xml b/res/layout/contact_list_card.xml
new file mode 100644
index 0000000..c2b66a4
--- /dev/null
+++ b/res/layout/contact_list_card.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+<LinearLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal"
+        android:id="@+id/list_card"
+        android:visibility="invisible">
+    <View
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@color/contact_all_list_background_color"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/contact_list_content.xml b/res/layout/contact_list_content.xml
new file mode 100644
index 0000000..d9b113f
--- /dev/null
+++ b/res/layout/contact_list_content.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<!-- android:paddingTop is used instead of android:layout_marginTop. It looks
+     android:layout_marginTop is ignored when used with <fragment></fragment>, which
+     only happens in Tablet UI since we rely on ViewPager in Phone UI.
+     Instead, android:layout_marginTop inside <fragment /> is effective. -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/pinned_header_list_layout"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:visibility="gone"
+    android:background="?attr/contact_browser_background" >
+
+    <LinearLayout
+        android:id="@+id/alert_container"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:background="@color/alert_background"
+        android:paddingStart="20dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/alert_text"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:paddingTop="16dp"
+            android:paddingBottom="16dp"
+            android:layout_weight="1"
+            android:textColor="@android:color/black"
+            android:textSize="16sp"/>
+
+        <ImageView
+            android:id="@+id/alert_dismiss_icon"
+            android:layout_width="56dp"
+            android:layout_height="match_parent"
+            android:layout_gravity="center_vertical"
+            android:contentDescription="@string/dismiss_sync_alert"
+            android:background="?android:attr/selectableItemBackground"
+            android:scaleType="center"
+            android:src="@drawable/quantum_ic_cancel_vd_theme_24" />
+    </LinearLayout>
+
+    <!-- Shown only when an Account filter is set.
+         - paddingTop should be here to show "shade" effect correctly. -->
+    <include layout="@layout/account_filter_header" />
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:id="@+id/contact_list">
+
+        <include layout="@layout/contact_list_card"/>
+
+        <android.support.v4.widget.SwipeRefreshLayout
+            android:id="@+id/swipe_refresh"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:enabled="false" >
+
+            <view
+                class="com.android.contacts.list.PinnedHeaderListView"
+                android:id="@android:id/list"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginLeft="?attr/contact_browser_list_padding_left"
+                android:layout_marginRight="?attr/contact_browser_list_padding_right"
+                android:layout_marginStart="?attr/contact_browser_list_padding_left"
+                android:layout_marginEnd="?attr/contact_browser_list_padding_right"
+                android:paddingTop="?attr/list_item_padding_top"
+                android:clipToPadding="false"
+                android:fastScrollEnabled="true"
+		android:visibility="gone"
+                android:fadingEdge="none" />
+        </android.support.v4.widget.SwipeRefreshLayout>
+
+        <ProgressBar
+            android:id="@+id/search_progress"
+            style="?android:attr/progressBarStyleLarge"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:visibility="gone" />
+    </FrameLayout>
+
+</LinearLayout>
diff --git a/res/layout/contact_list_filter.xml b/res/layout/contact_list_filter.xml
new file mode 100644
index 0000000..34c713c
--- /dev/null
+++ b/res/layout/contact_list_filter.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2011 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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:fillViewport="true">
+
+    <ListView
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dip"
+        android:background="?android:attr/dividerHorizontal" />
+</LinearLayout>
diff --git a/res/layout/contact_list_filter_custom.xml b/res/layout/contact_list_filter_custom.xml
new file mode 100644
index 0000000..845d52f
--- /dev/null
+++ b/res/layout/contact_list_filter_custom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/CustomContactListFilterView"
+    android:orientation="vertical"
+    android:fillViewport="true">
+
+    <ExpandableListView
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:overScrollMode="always" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dip"
+        android:layout_marginLeft="16dip"
+        android:layout_marginRight="16dip"
+        android:layout_marginStart="16dip"
+        android:layout_marginEnd="16dip"
+        android:background="?android:attr/dividerHorizontal" />
+
+</LinearLayout>
diff --git a/res/layout/contact_list_filter_item.xml b/res/layout/contact_list_filter_item.xml
new file mode 100644
index 0000000..4d1fbca
--- /dev/null
+++ b/res/layout/contact_list_filter_item.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<view
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    class="com.android.contacts.list.ContactListFilterView"
+    android:descendantFocusability="blocksDescendants"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="@dimen/contact_filter_left_margin"
+    android:paddingEnd="@dimen/contact_filter_right_margin"
+    android:minHeight="@dimen/contact_filter_item_min_height"
+    android:gravity="center_vertical">
+
+    <ImageView
+        android:id="@+id/icon"
+        android:scaleType="fitCenter"
+        android:layout_width="@dimen/contact_filter_icon_size"
+        android:layout_height="@dimen/contact_filter_icon_size"/>
+
+    <LinearLayout
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:layout_marginTop="-1dip"
+        android:orientation="vertical"
+        android:layout_marginLeft="8dip"
+        android:layout_marginStart="8dip">
+
+        <TextView
+            android:id="@+id/accountType"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceListItem"
+            android:textColor="@color/account_filter_text_color"
+            android:singleLine="true"
+            android:ellipsize="end"/>
+
+        <TextView
+            android:id="@+id/accountUserName"
+            android:layout_marginTop="-3dip"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+            android:textColor="@color/account_filter_text_color"
+            android:singleLine="true"
+            android:ellipsize="end"/>
+    </LinearLayout>
+
+    <RadioButton
+        android:id="@+id/radioButton"
+        android:clickable="false"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="end|center_vertical" />
+</view>
+
diff --git a/res/layout/contact_picker.xml b/res/layout/contact_picker.xml
index 2efe471..faf5563 100644
--- a/res/layout/contact_picker.xml
+++ b/res/layout/contact_picker.xml
@@ -14,9 +14,14 @@
      limitations under the License.
 -->
 
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/ContactPickerLayout"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/list_container"
+    android:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="match_parent" />
+    android:layout_height="match_parent" >
+
+    <include
+        layout="@layout/people_activity_toolbar"
+        android:id="@+id/toolbar_parent" />
+
+</LinearLayout>
diff --git a/res/layout/contact_picker_content.xml b/res/layout/contact_picker_content.xml
index 36734c5..382121a 100644
--- a/res/layout/contact_picker_content.xml
+++ b/res/layout/contact_picker_content.xml
@@ -21,7 +21,7 @@
     <include layout="@layout/contact_list_card"/>
 
     <view
-        class="com.android.contacts.common.list.PinnedHeaderListView"
+        class="com.android.contacts.list.PinnedHeaderListView"
         android:id="@android:id/list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
diff --git a/res/layout/contact_tile_list.xml b/res/layout/contact_tile_list.xml
deleted file mode 100644
index 8b172d1..0000000
--- a/res/layout/contact_tile_list.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingBottom="?attr/favorites_padding_bottom"
-    android:background="@color/background_primary">
-
-    <include layout="@layout/contact_list_card"/>
-
-    <ListView
-        android:id="@+id/contact_tile_list"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:paddingTop="@dimen/contact_tile_list_padding_top"
-        android:clipToPadding="false"
-        android:fadingEdge="none"
-        android:divider="@null"
-        android:scrollbarStyle="outsideOverlay"/>
-
-    <TextView
-        android:id="@+id/contact_tile_list_empty"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:gravity="center_horizontal"
-        android:layout_marginTop="@dimen/empty_message_top_margin"
-        android:textColor="@android:color/black"
-        android:drawableTop="@drawable/ic_star_black_128dp"
-        android:drawablePadding="4dp"
-        android:alpha="0.38"
-        android:paddingTop="10dp"
-        android:textAppearance="?android:attr/textAppearanceLarge"/>
-
-</FrameLayout>
diff --git a/res/layout/contact_tile_list_frequent.xml b/res/layout/contact_tile_list_frequent.xml
deleted file mode 100644
index 3707f11..0000000
--- a/res/layout/contact_tile_list_frequent.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!--
-  This is very similar to contact_tile_list.xml (there needs to be a ListView called
-  contact_tile_list and an empty view called contact_tile_list_empty). However, this layout also
-  contains a container view for the title of the frequently contacted list.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingBottom="?attr/favorites_padding_bottom"
-    android:orientation="vertical">
-
-    <FrameLayout
-        android:id="@+id/header_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"/>
-
-    <ListView
-        android:id="@+id/contact_tile_list"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:fadingEdge="none"
-        android:divider="@null" />
-
-    <TextView
-        android:id="@+id/contact_tile_list_empty"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:gravity="center_horizontal"
-        android:layout_marginTop="@dimen/empty_message_top_margin"
-        android:textColor="?android:attr/textColorSecondary"
-        android:textAppearance="?android:attr/textAppearanceLarge"/>
-
-</LinearLayout>
diff --git a/res/layout/contacts_drawer_activity.xml b/res/layout/contacts_drawer_activity.xml
new file mode 100644
index 0000000..84e536b
--- /dev/null
+++ b/res/layout/contacts_drawer_activity.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     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.
+-->
+
+<android.support.v4.widget.DrawerLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/drawer_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:fitsSystemWindows="true"
+    tools:openDrawer="start">
+
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/fragment_container"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <include
+            layout="@layout/people_activity_toolbar"
+            android:id="@+id/toolbar_parent" />
+
+        <FrameLayout
+            android:id="@+id/content_frame"
+            android:layout_width="match_parent"
+            android:layout_height="fill_parent"
+            android:background="?android:attr/windowBackground" />
+    </LinearLayout>
+
+    <fragment
+        android:id="@+id/drawer"
+        android:name="com.android.contacts.drawer.DrawerFragment"
+        android:layout_gravity="start"
+        android:layout_width="@dimen/drawer_width"
+        android:layout_height="match_parent" />
+
+</android.support.v4.widget.DrawerLayout>
diff --git a/res/layout/contacts_unavailable_fragment.xml b/res/layout/contacts_unavailable_fragment.xml
index 300921f..01a8787 100644
--- a/res/layout/contacts_unavailable_fragment.xml
+++ b/res/layout/contacts_unavailable_fragment.xml
@@ -24,7 +24,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fillViewport="true"
-        android:background="@color/background_primary">
+        android:background="@color/empty_state_background">
         <include layout="@layout/contacts_unavailable_fragment_content"/>
     </ScrollView>
 </FrameLayout>
diff --git a/res/layout/contacts_unavailable_fragment_content.xml b/res/layout/contacts_unavailable_fragment_content.xml
index 9482273..859112d 100644
--- a/res/layout/contacts_unavailable_fragment_content.xml
+++ b/res/layout/contacts_unavailable_fragment_content.xml
@@ -14,63 +14,53 @@
      limitations under the License.
 -->
 
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:gravity="center_horizontal">
+    android:layout_height="match_parent"
+    android:gravity="center_horizontal"
+    android:orientation="vertical">
 
     <ImageView
         android:id="@+id/empty_image"
-        android:layout_height="128dp"
-        android:layout_width="128dp"
-        android:layout_marginTop="56dp"
-        android:alpha="0.38"
-        android:gravity="center_horizontal" />
+        android:layout_width="@dimen/contacts_no_account_empty_image_width"
+        android:layout_height="wrap_content"
+        android:adjustViewBounds="true"
+        android:scaleType="centerInside"
+        android:src="@drawable/contacts_no_account_empty" />
 
-    <LinearLayout
-        android:orientation="vertical"
+    <TextView
+        android:id="@+id/message"
+        style="@style/EmptyStateTextStyle"
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content">
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/contacts_no_account_empty_text_padding_top"
+        android:text="@string/noContacts" />
 
-        <TextView
-            android:id="@+id/message"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="4dp"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="?android:attr/textColorSecondary"/>
+    <Button
+        android:id="@+id/add_account_button"
+        style="@style/NoAccountViewButtonStyle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/contacts_no_account_empty_button_padding_top"
+        android:text="@string/contacts_unavailable_add_account" />
+
+    <Button
+        android:id="@+id/import_contacts_button"
+        style="@style/NoAccountViewButtonStyle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/contacts_unavailable_import_contacts" />
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
 
         <ProgressBar
             android:id="@+id/progress"
-            android:layout_width="match_parent"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            style="?android:attr/progressBarStyleHorizontal"
+            android:layout_gravity="center"
             android:indeterminate="true"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="12dp" />
-    </LinearLayout>
-
-    <LinearLayout
-        android:orientation="vertical"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content">
-
-        <Button
-            android:id="@+id/add_account_button"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="50dp"
-            android:layout_marginBottom="10dp"
-            android:textColor="@android:color/white"
-            android:text="@string/contacts_unavailable_add_account" />
-
-        <Button
-            android:id="@+id/import_contacts_button"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textColor="@android:color/white"
-            android:text="@string/contacts_unavailable_import_contacts" />
-    </LinearLayout>
+            android:visibility="gone" />
+    </FrameLayout>
 </LinearLayout>
diff --git a/res/layout/create_new_contact.xml b/res/layout/create_new_contact.xml
deleted file mode 100644
index 3af60d3..0000000
--- a/res/layout/create_new_contact.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="?android:attr/listPreferredItemHeight"
-        android:orientation="horizontal"
-        android:paddingLeft="6dip"
-        android:paddingRight="6dip"
-        android:paddingStart="6dip"
-        android:paddingEnd="6dip"
-        android:paddingTop="5dip"
-        android:paddingBottom="5dip"
-        android:gravity="center_vertical"
-        >
-    <ImageView android:id="@+id/addicon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="5dip"
-            android:layout_marginRight="11dip"
-            android:layout_marginStart="5dip"
-            android:layout_marginEnd="11dip"
-            android:focusable="false"
-            android:src="@drawable/ic_add_contact_holo_light"
-            android:scaleType="fitCenter"
-            />
-    <TextView android:id="@+id/title"
-            android:text="@string/pickerNewContactHeader"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textStyle="bold"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginBottom="2dip"
-            />
-</LinearLayout>
diff --git a/res/layout/custom_action_bar.xml b/res/layout/custom_action_bar.xml
deleted file mode 100644
index 5b930ea..0000000
--- a/res/layout/custom_action_bar.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!-- Dimensions are set at runtime in ActionBarAdapter -->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="0dip"
-    android:layout_height="0dip" >
-
-    <!-- To prevent the search view from getting the initial focus.  -->
-    <View
-        android:focusable="true"
-        android:focusableInTouchMode="true"
-        android:layout_width="1px"
-        android:layout_height="1px" >
-        <requestFocus />
-    </View>
-    <SearchView
-        android:id="@+id/search_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:iconifiedByDefault="false"
-        android:inputType="textFilter"
-        android:theme="@style/ContactPickerSearchTheme" />
-
-</FrameLayout>
diff --git a/res/layout/custom_contact_list_filter_account.xml b/res/layout/custom_contact_list_filter_account.xml
new file mode 100644
index 0000000..c7a6cb5
--- /dev/null
+++ b/res/layout/custom_contact_list_filter_account.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:gravity="center_vertical"
+    android:paddingLeft="@dimen/contact_filter_list_item_padding_start"
+    android:paddingRight="?android:attr/scrollbarSize"
+    android:paddingStart="@dimen/contact_filter_list_item_padding_start"
+    android:paddingEnd="?android:attr/scrollbarSize">
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="6dip"
+        android:layout_marginEnd="6dip"
+        android:layout_marginTop="6dip"
+        android:layout_marginBottom="6dip"
+        android:layout_weight="1"
+        android:duplicateParentState="true">
+
+        <TextView
+            android:id="@android:id/text1"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:ellipsize="marquee"
+            android:textAppearance="?android:attr/textAppearanceListItem"
+            android:duplicateParentState="true" />
+
+        <TextView
+            android:id="@android:id/text2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@android:id/text1"
+            android:layout_alignLeft="@android:id/text1"
+            android:layout_alignStart="@android:id/text1"
+            android:maxLines="1"
+            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+            android:textColor="?android:attr/textColorTertiary"
+            android:duplicateParentState="true" />
+
+    </RelativeLayout>
+
+</LinearLayout>
diff --git a/res/layout/custom_contact_list_filter_group.xml b/res/layout/custom_contact_list_filter_group.xml
new file mode 100644
index 0000000..c67ce16
--- /dev/null
+++ b/res/layout/custom_contact_list_filter_group.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="@dimen/contact_filter_list_item_height"
+    android:gravity="center_vertical"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/contact_filter_list_item_height"
+        android:gravity="center_vertical"
+        android:paddingLeft="@dimen/contact_filter_list_item_padding_start"
+        android:paddingRight="?android:attr/scrollbarSize"
+        android:paddingStart="@dimen/contact_filter_list_item_padding_start"
+        android:paddingEnd="?android:attr/scrollbarSize">
+
+        <RelativeLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="6dip"
+            android:layout_marginEnd="6dip"
+            android:layout_marginTop="6dip"
+            android:layout_marginBottom="6dip"
+            android:layout_weight="1"
+            android:duplicateParentState="true"
+        >
+
+            <TextView
+                android:id="@android:id/text1"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:ellipsize="marquee"
+                android:textAppearance="?android:attr/textAppearanceListItem"
+                android:textColor="@color/account_filter_text_color"
+                android:duplicateParentState="true"
+            />
+
+            <TextView
+                android:id="@android:id/text2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@android:id/text1"
+                android:layout_alignLeft="@android:id/text1"
+                android:layout_alignStart="@android:id/text1"
+                android:maxLines="2"
+                android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+                android:textColor="@color/account_filter_text_color"
+                android:duplicateParentState="true"
+            />
+
+        </RelativeLayout>
+
+        <CheckBox
+            android:id="@android:id/checkbox"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:focusable="false"
+            android:clickable="false"
+            android:gravity="center_vertical"
+            android:orientation="vertical"
+            android:duplicateParentState="true"
+        />
+
+    </LinearLayout>
+
+    <View
+        android:id="@+id/adapter_divider_bottom"
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/custom_filter_divider" />
+
+</LinearLayout>
diff --git a/res/layout/default_account_checkbox.xml b/res/layout/default_account_checkbox.xml
new file mode 100644
index 0000000..9a1a450
--- /dev/null
+++ b/res/layout/default_account_checkbox.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/default_account_checkbox_layout"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="4dp"
+    android:orientation="vertical">
+    <CheckBox
+        android:id="@+id/default_account_checkbox_view"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="15dip"
+        android:layout_marginLeft="13dip"
+        android:layout_marginBottom="20dip"
+        android:gravity="center"
+        android:textAlignment="viewStart"
+        android:text="@string/set_default_account"
+        android:textColor="@color/dialtacts_secondary_text_color"
+        />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/dialog_call_subject.xml b/res/layout/dialog_call_subject.xml
new file mode 100644
index 0000000..61513eb
--- /dev/null
+++ b/res/layout/dialog_call_subject.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@android:color/transparent"
+    android:id="@+id/call_subject_dialog"
+    android:orientation="vertical">
+
+    <RelativeLayout
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:layout_width="match_parent">
+
+        <!-- The call subject dialog will be centered in the space above the subject list. -->
+        <LinearLayout
+            android:id="@+id/dialog_view"
+            android:orientation="vertical"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:clickable="true"
+            android:theme="@android:style/Theme.Material.Light.Dialog"
+            android:elevation="16dp"
+            android:layout_centerInParent="true"
+            android:background="@drawable/dialog_background_material">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:layout_marginStart="@dimen/call_subject_dialog_margin"
+                android:layout_marginEnd="@dimen/call_subject_dialog_margin"
+                android:layout_marginTop="@dimen/call_subject_dialog_margin">
+
+                <QuickContactBadge
+                    android:id="@+id/contact_photo"
+                    android:layout_width="@dimen/call_subject_dialog_contact_photo_size"
+                    android:layout_height="@dimen/call_subject_dialog_contact_photo_size"
+                    android:layout_gravity="top"
+                    android:focusable="true"
+                    android:layout_marginEnd="@dimen/call_subject_dialog_margin" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:gravity="center_vertical">
+
+                    <TextView
+                        android:id="@+id/name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="@color/dialtacts_primary_text_color"
+                        android:textSize="@dimen/call_subject_dialog_secondary_text_size"
+                        android:singleLine="true" />
+
+                    <TextView
+                        android:id="@+id/number"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginTop="@dimen/call_subject_dialog_between_line_margin"
+                        android:textColor="@color/dialtacts_secondary_text_color"
+                        android:textSize="@dimen/call_subject_dialog_secondary_text_size"
+                        android:singleLine="true" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <EditText
+                android:id="@+id/call_subject"
+                android:hint="@string/call_subject_hint"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_gravity="top"
+                android:textColor="@color/dialtacts_secondary_text_color"
+                android:textSize="@dimen/call_subject_dialog_secondary_text_size"
+                android:gravity="top"
+                android:background="@null"
+                android:layout_marginTop="@dimen/call_subject_dialog_edit_spacing"
+                android:layout_marginStart="@dimen/call_subject_dialog_margin"
+                android:layout_marginEnd="@dimen/call_subject_dialog_margin"
+                />
+
+            <TextView
+                android:id="@+id/character_limit"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@color/dialtacts_secondary_text_color"
+                android:textSize="@dimen/call_subject_dialog_secondary_text_size"
+                android:singleLine="true"
+                android:layout_marginStart="@dimen/call_subject_dialog_margin"
+                android:layout_marginEnd="@dimen/call_subject_dialog_margin"
+                android:layout_marginTop="@dimen/call_subject_dialog_margin"
+                android:layout_marginBottom="@dimen/call_subject_dialog_margin"/>
+
+            <View
+                android:layout_width="fill_parent"
+                android:layout_height="1dp"
+                android:background="@color/call_subject_divider"/>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/call_subject_dialog_margin"
+                android:layout_marginEnd="@dimen/call_subject_dialog_margin"
+                android:layout_marginTop="@dimen/call_subject_dialog_margin"
+                android:layout_marginBottom="@dimen/call_subject_dialog_margin">
+
+                <ImageView
+                    android:id="@+id/history_button"
+                    android:layout_width="25dp"
+                    android:layout_height="25dp"
+                    android:src="@drawable/quantum_ic_history_vd_theme_24"
+                    android:tint="@color/call_subject_history_icon"
+                    android:layout_alignParentStart="true"
+                    android:layout_centerVertical="true" />
+
+                <TextView
+                    android:id="@+id/send_and_call_button"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/send_and_call_button"
+                    android:textColor="@color/call_subject_button"
+                    android:textSize="@dimen/call_subject_dialog_secondary_text_size"
+                    android:singleLine="true"
+                    android:layout_alignParentEnd="true"
+                    android:layout_centerVertical="true" />
+
+            </RelativeLayout>
+        </LinearLayout>
+    </RelativeLayout>
+    <!-- The subject list is pinned to the bottom of the screen. -->
+    <ListView
+        android:id="@+id/subject_list"
+        android:layout_height="wrap_content"
+        android:layout_width="match_parent"
+        android:layout_below="@id/dialog_view"
+        android:background="@color/call_subject_history_background"
+        android:divider="@null"
+        android:elevation="8dp" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/dialog_title.xml b/res/layout/dialog_title.xml
new file mode 100644
index 0000000..45f5f73
--- /dev/null
+++ b/res/layout/dialog_title.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<TextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:paddingTop="18dp"
+    android:paddingStart="24dp"
+    android:paddingEnd="24dp"
+    android:textSize="20sp"
+    android:textColor="@color/contacts_text_color"
+    android:textAlignment="viewStart"
+    android:fontFamily="sans-serif-medium"
+    android:ellipsize="end"
+/>
\ No newline at end of file
diff --git a/res/layout/directory_header.xml b/res/layout/directory_header.xml
new file mode 100644
index 0000000..8014672
--- /dev/null
+++ b/res/layout/directory_header.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<!-- Layout used for list section separators. -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/directory_header"
+    android:background="@android:color/transparent"
+    android:paddingLeft="@dimen/directory_header_left_padding"
+    android:paddingRight="?attr/list_item_padding_right"
+    android:paddingStart="@dimen/directory_header_left_padding"
+    android:paddingEnd="?attr/list_item_padding_right"
+    android:paddingTop="@dimen/directory_header_extra_top_padding"
+    android:paddingBottom="@dimen/directory_header_extra_bottom_padding"
+    android:minHeight="@dimen/list_section_divider_min_height"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content" >
+    <TextView
+        android:id="@+id/label"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="@style/DirectoryHeaderStyle"
+        android:singleLine="true"
+        android:textAlignment="viewStart" />
+    <TextView
+        android:id="@+id/display_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:textAppearance="@style/DirectoryHeaderStyle"
+        android:singleLine="true"
+        android:textAlignment="viewStart" />
+    <TextView
+        android:id="@+id/count"
+        android:paddingTop="1dip"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:gravity="end"
+        android:singleLine="true"
+        android:textAppearance="@style/DirectoryHeaderStyle" />
+</LinearLayout>
diff --git a/res/layout/drawer_fragment.xml b/res/layout/drawer_fragment.xml
new file mode 100644
index 0000000..907fb92
--- /dev/null
+++ b/res/layout/drawer_fragment.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (C) 2017 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.
+-->
+
+<!-- Layout for the navigation drawer. The content view needs to be wrapped in a FrameLayout in
+     order to go full screen with a ScrimDrawable. -->
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/drawer_fragment_root"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:fitsSystemWindows="true">
+
+    <ListView
+        android:id="@+id/list"
+        android:background="@color/navigation_drawer_background_color"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="@null" />
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/drawer_header.xml b/res/layout/drawer_header.xml
new file mode 100644
index 0000000..9810f34
--- /dev/null
+++ b/res/layout/drawer_header.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (C) 2017 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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center_vertical"
+    android:orientation="vertical"
+    android:background="@color/navigation_drawer_background_color">
+
+    <include layout="@layout/drawer_horizontal_divider" />
+
+    <FrameLayout
+        style="@style/DrawerHeaderItemStyle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:clickable="false">
+
+        <TextView
+            android:id="@+id/title"
+            style="@style/DrawerHeaderTextStyle"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"/>
+    </FrameLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/drawer_horizontal_divider.xml b/res/layout/drawer_horizontal_divider.xml
new file mode 100644
index 0000000..6e77ed8
--- /dev/null
+++ b/res/layout/drawer_horizontal_divider.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (C) 2017 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.
+-->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="16dp"
+    android:background="@color/navigation_drawer_background_color"
+    android:importantForAccessibility="no">
+
+    <View
+        android:id="@+id/divider_top"
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_gravity="center_vertical"
+        android:background="@color/drawer_divider_color"/>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/drawer_item.xml b/res/layout/drawer_item.xml
new file mode 100644
index 0000000..f7621a3
--- /dev/null
+++ b/res/layout/drawer_item.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (C) 2017 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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/DrawerItemStyle">
+
+    <ImageView
+        android:id="@+id/icon"
+        style="@style/DrawerItemIconStyle"/>
+
+    <TextView
+        android:id="@+id/title"
+        style="@style/DrawerItemTextStyle" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/drawer_primary_item.xml b/res/layout/drawer_primary_item.xml
new file mode 100644
index 0000000..cc7bf26
--- /dev/null
+++ b/res/layout/drawer_primary_item.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (C) 2017 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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/DrawerPrimaryItemStyle">
+
+    <ImageView
+        android:id="@+id/icon"
+        style="@style/DrawerItemIconStyle"/>
+
+    <TextView
+        android:id="@+id/title"
+        style="@style/DrawerItemTextStyle" />
+
+    <TextView
+        android:id="@+id/assistant_new_badge"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical|end"
+        android:paddingLeft="@dimen/nav_new_badge_horizontal_pad"
+        android:paddingTop="@dimen/nav_new_badge_vertical_pad"
+        android:paddingRight="@dimen/nav_new_badge_horizontal_pad"
+        android:paddingBottom="@dimen/nav_new_badge_vertical_pad"
+        android:background="@drawable/new_badge_background"
+        android:textSize="@dimen/nav_new_badge_font_size"
+        android:textStyle="bold"
+        android:textAllCaps="true"
+        android:textColor="@android:color/white"
+        android:text="@string/menu_assistant_new_badge"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/edit_add_field.xml b/res/layout/edit_add_field.xml
deleted file mode 100644
index ac90482..0000000
--- a/res/layout/edit_add_field.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-<!-- Layout of "add field" row in contact editor -->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="48dip"
-    android:paddingLeft="@dimen/editor_add_field_label_left_padding"
-    android:paddingStart="@dimen/editor_add_field_label_left_padding"
-    android:background="?android:attr/selectableItemBackground"
-    android:focusable="true"
-    android:clickable="true">
-    <TextView
-        android:id="@+id/add_text"
-        android:layout_gravity="center_vertical"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:duplicateParentState="true"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="?android:attr/textColorSecondary"
-        android:text="@string/add_new_entry_for_section" />
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/edit_delete_button.xml b/res/layout/edit_delete_button.xml
index d2c7fb9..2eea950 100644
--- a/res/layout/edit_delete_button.xml
+++ b/res/layout/edit_delete_button.xml
@@ -29,7 +29,8 @@
         android:layout_gravity="center"
         android:duplicateParentState="true"
         android:background="?android:attr/selectableItemBackground"
-        android:src="@drawable/ic_menu_remove_field_holo_light"
+        android:src="@drawable/quantum_ic_close_vd_theme_24"
+        android:tint="@color/quantum_black_hint_text"
         android:paddingLeft="@dimen/editor_round_button_padding_left"
         android:paddingRight="@dimen/editor_round_button_padding_right"
         android:paddingStart="@dimen/editor_round_button_padding_left"
diff --git a/res/layout/edit_expansion_view.xml b/res/layout/edit_expansion_view.xml
deleted file mode 100644
index 0b62f28..0000000
--- a/res/layout/edit_expansion_view.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2011 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.
-  -->
-
-<!-- "More" or "less" expansion button in the contact editor. -->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="@dimen/editor_min_line_item_height"
-    android:layout_gravity="top">
-    <ImageView
-        android:id="@+id/expansion_view"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:duplicateParentState="true"
-        android:background="?android:attr/selectableItemBackground"
-        android:paddingLeft="@dimen/editor_round_button_padding_left"
-        android:paddingRight="@dimen/editor_round_button_padding_right"
-        android:paddingStart="@dimen/editor_round_button_padding_left"
-        android:paddingEnd="@dimen/editor_round_button_padding_right"
-        android:paddingTop="@dimen/editor_round_button_padding_top"
-        android:paddingBottom="@dimen/editor_round_button_padding_bottom" />
-</FrameLayout>
diff --git a/res/layout/edit_kind_title.xml b/res/layout/edit_kind_title.xml
deleted file mode 100644
index acdcc07..0000000
--- a/res/layout/edit_kind_title.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 2011, 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.
- */
--->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingStart="8dip"
-    android:paddingEnd="8dip"
-    android:focusable="false">
-    <TextView
-        android:id="@+id/kind_title"
-        style="@style/EditKindSeparatorTextViewStyle"
-        android:paddingStart="0dip"
-        android:paddingEnd="8dip" />
-</FrameLayout>
diff --git a/res/layout/edit_spinner.xml b/res/layout/edit_spinner.xml
index 9e6b465..b1c879c 100644
--- a/res/layout/edit_spinner.xml
+++ b/res/layout/edit_spinner.xml
@@ -21,8 +21,7 @@
     android:id="@+id/spinner"
     android:layout_gravity="bottom|start"
     style="@android:style/Widget.Material.Spinner.Underlined"
-    android:dropDownWidth="@dimen/editor_type_label_dropdown_width"
-    android:layout_width="@dimen/editor_type_label_width"
+    android:layout_width="wrap_content"
     android:layout_height="@dimen/editor_min_line_item_height"
     android:paddingBottom="0dp"
     android:paddingTop="0dp"
diff --git a/res/layout/editor_account_header.xml b/res/layout/editor_account_header.xml
index 59ae3b1..9a4ed80 100644
--- a/res/layout/editor_account_header.xml
+++ b/res/layout/editor_account_header.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!--
+     Copyright (C) 2015 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.
@@ -15,59 +16,66 @@
 -->
 
 <LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/account_container"
-    android:layout_height="wrap_content"
-    android:layout_width="match_parent"
-    android:minHeight="48dip"
-    android:background="#EEEEEE"
-    android:orientation="horizontal"
-    android:paddingTop="8dip"
-    android:paddingBottom="8dip"
-    android:gravity="center_vertical"
-    android:paddingLeft="@dimen/account_container_left_padding"
-    android:paddingRight="28dip"
-    android:paddingStart="@dimen/account_container_left_padding"
-    android:paddingEnd="28dip">
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/account_header_container"
+        android:layout_height="wrap_content"
+        android:layout_width="match_parent"
+        android:minHeight="@dimen/editor_min_line_item_height"
+        android:orientation="horizontal"
+        android:paddingBottom="@dimen/editor_name_top_margin"
+        >
+
+
+    <ImageView
+            android:id="@+id/account_type_icon"
+            style="@style/EditSelectorIconStyle"/>
 
     <LinearLayout
-        android:id="@+id/account"
-        android:layout_height="wrap_content"
-        android:layout_width="0dip"
-        android:layout_weight="1"
-        android:orientation="vertical"
-        android:background="?android:attr/selectableItemBackground">
-
-        <TextView
-            android:id="@+id/account_type"
-            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:singleLine="true"
-            android:textColor="@color/primary_text_color"
-            android:ellipsize="end" />
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:layout_marginTop="@dimen/editor_account_header_top_margin"
+            android:layout_marginStart="@dimen/editor_account_left_margin"
+            android:layout_gravity="center_vertical"
+            android:orientation="vertical"
+            >
 
         <TextView
-             android:id="@+id/account_name"
-             android:layout_width="match_parent"
-             android:layout_height="wrap_content"
-             android:textAppearance="?android:attr/textAppearanceSmall"
-             android:textColor="@color/primary_text_color"
-             android:singleLine="true"
-             android:ellipsize="end" />
+                android:id="@+id/account_type"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textSize="16sp"
+                android:singleLine="true"
+                android:textColor="@color/primary_text_color"
+                android:ellipsize="end"
+                android:textAlignment="viewStart"
+                />
+
+        <TextView
+                android:id="@+id/account_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:singleLine="true"
+                android:textColor="@color/secondary_text_color"
+                android:ellipsize="end"
+                android:textAlignment="viewStart"
+                />
 
     </LinearLayout>
 
-    <FrameLayout
+    <ImageView
+        android:id="@+id/account_expander_icon"
+        android:src="@drawable/quantum_ic_expand_more_vd_theme_24"
+        android:tint="@color/quantum_black_secondary_text"
         android:layout_width="wrap_content"
-        android:layout_height="match_parent">
-
-        <ImageView
-             android:id="@+id/account_icon"
-             android:layout_width="32dip"
-             android:layout_height="32dip"
-             android:layout_gravity="center_vertical" />
-
-    </FrameLayout>
-
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical|end"
+        android:layout_alignParentEnd="true"
+        android:contentDescription="@string/show_more_content_description"
+        android:paddingStart="@dimen/editor_round_button_padding_left"
+        android:paddingEnd="@dimen/editor_round_button_padding_right"
+        android:paddingTop="@dimen/editor_round_button_padding_top"
+        android:paddingBottom="@dimen/editor_round_button_padding_bottom"
+        android:visibility="gone"/>
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/editor_account_header_expandable.xml b/res/layout/editor_account_header_expandable.xml
deleted file mode 100644
index c3d9e31..0000000
--- a/res/layout/editor_account_header_expandable.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-
-<!-- Header at the top of a raw contact editor. This is clickable to expand/collapse the editor. -->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/account_header_container"
-    android:layout_height="wrap_content"
-    android:layout_width="match_parent"
-    android:background="?android:attr/selectableItemBackground"
-    android:paddingStart="16dp"
-    android:focusable="true"
-    >
-
-    <!-- TODO: consider making this a new style, like EditKindIconStyle -->
-    <ImageView
-        android:id="@android:id/icon"
-        android:layout_width="@dimen/editor_kind_icon_size"
-        android:layout_height="@dimen/editor_kind_icon_size"
-        android:layout_marginEnd="28dp"
-        android:layout_gravity="center_vertical"
-        />
-
-    <LinearLayout
-        android:id="@+id/account_info"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:layout_weight="1"
-        android:paddingBottom="@dimen/editor_account_header_expandable_top_bottom_padding"
-        android:paddingTop="@dimen/editor_account_header_expandable_top_bottom_padding"
-        android:orientation="vertical"
-        >
-
-        <TextView
-            android:id="@+id/account_type"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textSize="16sp"
-            android:singleLine="true"
-            android:textColor="@color/primary_text_color"
-            android:ellipsize="end"
-            android:textAlignment="viewStart"
-            />
-
-        <TextView
-            android:id="@+id/account_name"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textSize="14sp"
-            android:singleLine="true"
-            android:textColor="@color/secondary_text_color"
-            android:ellipsize="end"
-            android:textAlignment="viewStart"
-            />
-
-    </LinearLayout>
-
-    <ImageView
-        android:id="@+id/expand_account_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:layout_gravity="center_vertical|end"
-        android:clickable="false"
-        android:paddingLeft="@dimen/editor_round_button_padding_left"
-        android:paddingRight="@dimen/editor_round_button_padding_right"
-        android:paddingStart="@dimen/editor_round_button_padding_left"
-        android:paddingEnd="@dimen/editor_round_button_padding_right"
-        android:paddingTop="@dimen/editor_round_button_padding_top"
-        android:paddingBottom="@dimen/editor_round_button_padding_bottom"
-        />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/editor_account_selector.xml b/res/layout/editor_account_selector.xml
deleted file mode 100644
index dcd0e28..0000000
--- a/res/layout/editor_account_selector.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!-- Header at the top of a raw contact editor. This allows users to change the account that
-    the raw contact is saved in. -->
-<LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/account_selector_container"
-        android:focusable="true"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:minHeight="@dimen/editor_min_line_item_height"
-        android:orientation="horizontal"
-        android:layout_marginBottom="@dimen/compact_editor_name_top_margin"
-        android:visibility="gone">
-
-    <ImageView
-        android:id="@+id/kind_icon"
-        android:src="@drawable/ic_account_circle_black_24dp"
-        android:tint="@color/editor_icon_color"
-        android:contentDescription="@string/header_account_entry"
-        style="@style/EditSelectorIconStyle"/>
-
-    <LinearLayout
-        android:id="@+id/account"
-        android:layout_height="wrap_content"
-        android:layout_width="0dip"
-        android:layout_weight="1"
-        android:layout_gravity="center_vertical"
-        android:orientation="vertical"
-        android:layout_marginStart="4dp"
-        android:layout_marginEnd="48dp">
-
-        <TextView
-            android:id="@+id/account_type_selector"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textSize="16sp"
-            android:singleLine="true"
-            android:textColor="@color/primary_text_color"
-            android:textAlignment="viewStart"
-            android:ellipsize="end" />
-
-        <TextView
-             android:id="@+id/account_name_selector"
-             android:layout_width="match_parent"
-             android:layout_height="wrap_content"
-             android:textSize="14sp"
-             android:singleLine="true"
-             android:textColor="@color/secondary_text_color"
-             android:textAlignment="viewStart"
-             android:ellipsize="end" />
-
-    </LinearLayout>
-
-    <ImageView
-        android:src="@drawable/ic_menu_expander_minimized_holo_light"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical|end"
-        android:layout_alignParentEnd="true"
-        android:paddingStart="@dimen/editor_round_button_padding_left"
-        android:paddingEnd="@dimen/editor_round_button_padding_right"
-        android:paddingTop="@dimen/editor_round_button_padding_top"
-        android:paddingBottom="@dimen/editor_round_button_padding_bottom"/>
-
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/editor_all_rawcontacts_accounts_selector.xml b/res/layout/editor_all_rawcontacts_accounts_selector.xml
deleted file mode 100644
index c830d38..0000000
--- a/res/layout/editor_all_rawcontacts_accounts_selector.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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.
--->
-
-<!-- Header at the top of a raw contact editor. This allows users to change the account that
-    the raw contact is saved in. -->
-<LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/all_rawcontacts_accounts_container"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:minHeight="@dimen/editor_min_line_item_height"
-        android:orientation="horizontal"
-        android:visibility="gone" >
-
-    <ImageView
-            android:src="@drawable/ic_link_grey600_drawable_24dp"
-            android:tint="@color/editor_icon_color"
-            style="@style/EditSelectorIconStyle"/>
-
-    <TextView
-            android:id="@+id/rawcontacts_accounts_summary"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_marginStart="@dimen/compact_editor_account_left_margin"
-            android:textSize="16sp"
-            android:singleLine="true"
-            android:layout_weight="1"
-            android:textColor="@color/primary_text_color"
-            android:textAlignment="viewStart"
-            android:layout_gravity="center_vertical"
-            android:gravity="center_vertical"
-            android:ellipsize="end" />
-
-    <ImageView
-            android:src="@drawable/ic_menu_expander_minimized_holo_light"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical|end"
-            android:layout_alignParentEnd="true"
-            android:paddingStart="@dimen/editor_round_button_padding_left"
-            android:paddingEnd="@dimen/editor_round_button_padding_right"
-            android:paddingTop="@dimen/editor_round_button_padding_top"
-            android:paddingBottom="@dimen/editor_round_button_padding_bottom"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/editor_custom_action_bar.xml b/res/layout/editor_custom_action_bar.xml
deleted file mode 100644
index 7764674..0000000
--- a/res/layout/editor_custom_action_bar.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="horizontal">
-
-    <ImageView
-        android:id="@+id/save_menu_item"
-        android:focusable="true"
-        android:clickable="true"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:layout_marginEnd="8dip"
-        android:src="@drawable/ic_done_wht_24dp"
-        style="?android:attr/actionButtonStyle"
-        android:contentDescription="@string/menu_done" />
-
-    <TextView
-        android:id="@+id/title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="@color/actionbar_text_color"
-        android:text="@string/menu_done"
-        style="@android:style/TextAppearance.Material.Widget.ActionBar.Title" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/editor_save_button.xml b/res/layout/editor_save_button.xml
new file mode 100644
index 0000000..024ddcb
--- /dev/null
+++ b/res/layout/editor_save_button.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<Button xmlns:android="http://schemas.android.com/apk/res/android"
+    style="?android:attr/buttonBarButtonStyle"
+    android:id="@+id/editor_menu_save_button"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:text="@string/menu_save"
+    android:textColor="@color/action_bar_button_text_color"
+    android:textSize="14sp">
+</Button>
diff --git a/res/layout/empty_account_view.xml b/res/layout/empty_account_view.xml
new file mode 100644
index 0000000..2de0212
--- /dev/null
+++ b/res/layout/empty_account_view.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/empty_account"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:background="@color/empty_state_background"
+    android:visibility="gone">
+
+    <ImageView
+        android:id="@+id/empty_account_image"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:scaleType="centerInside"
+        android:adjustViewBounds="true"
+        android:src="@drawable/accounts_empty"/>
+
+    <TextView
+        android:id="@+id/empty_account_view_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:paddingTop="@dimen/empty_account_view_text_padding_top"
+        android:text="@string/emptyAccount"
+        style="@style/EmptyStateTextStyle"/>
+
+    <Button
+        android:id="@+id/add_contact_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:text="@string/menu_addToGroup"
+        style="@style/AddContactsButtonStyle"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/empty_group_view.xml b/res/layout/empty_group_view.xml
new file mode 100644
index 0000000..cf10e76
--- /dev/null
+++ b/res/layout/empty_group_view.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/empty_group"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:background="@color/empty_state_background"
+    android:visibility="gone">
+
+    <ImageView
+        android:id="@+id/empty_group_image"
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/empty_view_image_height"
+        android:paddingTop="@dimen/empty_group_view_image_padding_top"
+        android:scaleType="centerInside"
+        android:adjustViewBounds="true"
+        android:src="@drawable/label_empty"/>
+
+    <TextView
+        android:id="@+id/empty_group_view_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:paddingTop="@dimen/empty_group_view_text_padding_top"
+        android:text="@string/emptyGroup"
+        style="@style/EmptyStateTextStyle"/>
+
+    <Button
+        android:id="@+id/add_member_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:text="@string/menu_addContactsToGroup"
+        style="@style/AddContactsButtonStyle"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/empty_home_view.xml b/res/layout/empty_home_view.xml
new file mode 100644
index 0000000..65ac1f2
--- /dev/null
+++ b/res/layout/empty_home_view.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/empty_home"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:background="@color/empty_state_background"
+    android:visibility="gone">
+
+    <ImageView
+        android:id="@+id/empty_home_image"
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/empty_view_image_height"
+        android:scaleType="centerInside"
+        android:adjustViewBounds="true"
+        android:src="@drawable/home_empty"/>
+
+    <TextView
+        android:id="@+id/empty_home_view_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:paddingTop="@dimen/empty_home_view_text_padding_top"
+        android:text="@string/emptyMainList"
+        style="@style/EmptyStateTextStyle"/>
+
+    <Button
+        android:id="@+id/add_contact_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:text="@string/menu_addToGroup"
+        style="@style/AddContactsButtonStyle"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/external_group_editor_view.xml b/res/layout/external_group_editor_view.xml
deleted file mode 100644
index 47ac2e0..0000000
--- a/res/layout/external_group_editor_view.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical" >
-
-    <TextView
-        android:id="@+id/read_only_warning"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingTop="10dip"
-        android:paddingLeft="10dip"
-        android:paddingRight="10dip"
-        android:paddingStart="10dip"
-        android:paddingEnd="10dip"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorTertiary"
-        android:text="@string/group_read_only" />
-
-    <include
-        android:id="@+id/account_header"
-        layout="@layout/editor_account_header"/>
-
-    <TextView
-        android:id="@+id/group_name"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="?android:attr/textColorTertiary"
-        android:textStyle="bold"
-        android:padding="10dip"/>
-
-    <include
-        layout="@layout/group_editor_existing_member_list"
-        android:id="@android:id/list"/>
-
-</LinearLayout>
diff --git a/res/layout/external_group_member_item.xml b/res/layout/external_group_member_item.xml
deleted file mode 100644
index a56d91d..0000000
--- a/res/layout/external_group_member_item.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="horizontal">
-
-    <TextView
-        android:id="@+id/name"
-        android:layout_height="wrap_content"
-        android:layout_width="0dip"
-        android:layout_weight="1"
-        android:layout_gravity="center_vertical"
-        android:gravity="center_vertical"
-        android:paddingRight="3dip"
-        android:paddingEnd="3dip"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:focusable="true"
-        android:paddingLeft="@dimen/group_member_item_left_padding"
-        android:paddingStart="@dimen/group_member_item_left_padding" />
-
-    <QuickContactBadge
-        android:id="@+id/badge"
-        android:layout_marginLeft="5dip"
-        android:layout_marginRight="10dip"
-        android:layout_marginStart="5dip"
-        android:layout_marginEnd="10dip"
-        android:layout_gravity="center_vertical"
-        android:layout_width="50dip"
-        android:layout_height="50dip"
-        style="?android:attr/quickContactBadgeStyleWindowMedium" />
-
-</LinearLayout>
diff --git a/res/layout/floating_action_button.xml b/res/layout/floating_action_button.xml
index 294d88b..a31512f 100644
--- a/res/layout/floating_action_button.xml
+++ b/res/layout/floating_action_button.xml
@@ -14,24 +14,28 @@
      limitations under the License.
 -->
 
-<!-- This expects to be included inside a RelativeLayout -->
+<!-- This expects to be included inside a RelativeLayout or a CoordinatorLayout -->
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/floating_action_button_container"
     android:layout_width="@dimen/floating_action_button_width"
     android:layout_height="@dimen/floating_action_button_height"
-    android:layout_marginEnd="@dimen/floating_action_button_margin_right"
-    android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
-    android:background="@drawable/fab_blue"
+    android:layout_alignParentBottom="true"
     android:layout_alignParentEnd="true"
-    android:layout_alignParentBottom="true">
+    android:layout_gravity="bottom|end"
+    android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
+    android:layout_marginEnd="@dimen/floating_action_button_margin_right"
+    android:background="@drawable/fab_pink"
+    android:elevation="@dimen/design_fab_elevation"
+    app:layout_dodgeInsetEdges="bottom" >
 
     <ImageButton
         android:id="@+id/floating_action_button"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@drawable/floating_action_button"
-        android:tint="@color/floating_action_button_icon_color"
         android:contentDescription="@string/action_menu_add_new_contact_button"
-        android:src="@drawable/ic_person_add_24dp"/>
+        android:src="@drawable/quantum_ic_add_vd_theme_24"
+        android:tint="@color/floating_action_button_icon_color"/>
 </FrameLayout>
\ No newline at end of file
diff --git a/res/layout/fragment_sim_import.xml b/res/layout/fragment_sim_import.xml
new file mode 100644
index 0000000..09e2c66
--- /dev/null
+++ b/res/layout/fragment_sim_import.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<android.support.design.widget.CoordinatorLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <android.support.v7.widget.Toolbar
+            android:id="@+id/toolbar"
+            style="@style/LightToolbarStyle"
+            android:layout_width="match_parent"
+            android:layout_height="?attr/actionBarSize"
+            android:elevation="3dp"
+            android:theme="@style/LightToolbarThemeOverlay"
+            app:navigationContentDescription="@string/sim_import_cancel_content_description"
+            app:navigationIcon="@drawable/quantum_ic_close_vd_theme_24"
+            app:title="@string/sim_import_title_none_selected">
+
+            <Button
+                android:id="@+id/import_button"
+                style="@style/Widget.AppCompat.Button.Borderless"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="end|center_vertical"
+                android:text="@string/sim_import_button_text"
+                />
+        </android.support.v7.widget.Toolbar>
+
+
+        <!-- This is managed by AccountHeaderPresenter so the IDs in this section must
+             match the equivalent views in layout/editor_account_header.xml -->
+        <LinearLayout
+            xmlns:android="http://schemas.android.com/apk/res/android"
+            android:id="@+id/account_header_container"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="?android:colorBackground"
+            android:focusable="true"
+            android:minHeight="48dp"
+            android:orientation="horizontal"
+            android:paddingEnd="@dimen/activity_horizontal_margin"
+            android:paddingStart="@dimen/activity_horizontal_margin">
+
+            <ImageView
+                android:id="@+id/account_type_icon"
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_gravity="start|center_vertical"
+                android:layout_marginEnd="32dp"/>
+
+            <TextView
+                android:id="@+id/account_name"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_weight="1"
+                android:ellipsize="end"
+                android:gravity="start|center_vertical"
+                android:lines="1"
+                android:maxLines="1"
+                android:textAlignment="viewStart"
+                android:textColor="@color/secondary_text_color"
+                android:textSize="16sp"/>
+
+            <ImageView
+                android:id="@+id/account_expander_icon"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginEnd="5dp"
+                android:background="@null"
+                android:clickable="true"
+                android:contentDescription="@string/show_more_content_description"
+                android:focusable="true"
+                android:minHeight="0dp"
+                android:minWidth="0dp"
+                android:scaleType="center"
+                android:src="@drawable/quantum_ic_arrow_drop_down_vd_theme_24"
+                android:tint="?android:textColorSecondary"
+                android:visibility="gone"/>
+        </LinearLayout>
+
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <ListView
+                android:id="@+id/list"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:clipToPadding="false"
+                android:paddingTop="8dp"/>
+
+            <android.support.v4.widget.ContentLoadingProgressBar
+                android:id="@+id/loading_progress"
+                style="@style/Widget.AppCompat.ProgressBar"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:indeterminate="true"/>
+
+            <TextView
+                android:id="@+id/empty_message"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/sim_import_empty_message"
+                android:textAppearance="?android:textAppearanceMedium"
+                android:visibility="gone"/>
+
+        </FrameLayout>
+
+    </LinearLayout>
+</android.support.design.widget.CoordinatorLayout>
diff --git a/res/layout/group_account_header_horizontal.xml b/res/layout/group_account_header_horizontal.xml
deleted file mode 100644
index cbfb555..0000000
--- a/res/layout/group_account_header_horizontal.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:layout_marginLeft="?attr/list_item_padding_left"
-    android:layout_marginRight="?attr/list_item_padding_right"
-    android:layout_marginStart="?attr/list_item_padding_left"
-    android:layout_marginEnd="?attr/list_item_padding_right"
-    android:background="@drawable/list_section_divider_holo_custom"
-    android:orientation="horizontal">
-
-    <TextView
-        android:id="@+id/account_type"
-        android:layout_width="0px"
-        android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:layout_gravity="center_vertical"
-        android:paddingLeft="?attr/list_item_header_text_indent"
-        android:paddingStart="?attr/list_item_header_text_indent"
-        android:textAppearance="@style/DirectoryHeaderStyle"
-        android:singleLine="true"
-        android:textAlignment="viewStart" />
-
-    <!-- TODO: Should use correct color with a correct name (content should be same).
-         can use "?android:attr/textColorTertiary" -->
-    <TextView
-        android:id="@+id/account_name"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:textAppearance="@style/DirectoryHeaderStyle"
-        android:textAllCaps="false"
-        android:textSize="12sp"
-        android:singleLine="true"
-        android:ellipsize="middle"
-        android:textDirection="ltr" />
-</LinearLayout>
diff --git a/res/layout/group_account_header_vertical.xml b/res/layout/group_account_header_vertical.xml
deleted file mode 100644
index c5b9d76..0000000
--- a/res/layout/group_account_header_vertical.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:layout_marginLeft="?attr/list_item_padding_left"
-    android:layout_marginRight="?attr/list_item_padding_right"
-    android:layout_marginStart="?attr/list_item_padding_left"
-    android:layout_marginEnd="?attr/list_item_padding_right"
-    android:paddingBottom="6dip"
-    android:background="@drawable/list_section_divider_holo_custom"
-    android:gravity="center_vertical"
-    android:orientation="vertical">
-
-    <TextView
-        android:id="@+id/account_type"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingLeft="?attr/list_item_header_text_indent"
-        android:paddingStart="?attr/list_item_header_text_indent"
-        android:textAppearance="@style/DirectoryHeaderStyle"
-        android:singleLine="true"/>
-
-    <!-- TODO: Should use correct color with a correct name (content should be same).
-         can use "?android:attr/textColorTertiary" -->
-    <TextView
-        android:id="@+id/account_name"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingLeft="?attr/list_item_header_text_indent"
-        android:paddingStart="?attr/list_item_header_text_indent"
-        android:textAppearance="@style/DirectoryHeaderStyle"
-        android:textAllCaps="false"
-        android:textSize="12sp"
-        android:singleLine="true"
-        android:ellipsize="middle" />
-</LinearLayout>
diff --git a/res/layout/group_browse_list_account_header.xml b/res/layout/group_browse_list_account_header.xml
deleted file mode 100644
index 7bfbd07..0000000
--- a/res/layout/group_browse_list_account_header.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
-
-    <!-- Only visible when it is the first element in the list. -->
-    <View
-        android:id="@+id/header_extra_top_padding"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/list_header_extra_top_padding" />
-
-    <include layout="@layout/group_account_header_horizontal" />
-
-</LinearLayout>
diff --git a/res/layout/group_browse_list_fragment.xml b/res/layout/group_browse_list_fragment.xml
deleted file mode 100644
index 30c2fec..0000000
--- a/res/layout/group_browse_list_fragment.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <!-- See group_browse_list_item.xml for the reason for the transparent android:listSelector -->
-    <view
-      android:id="@+id/list"
-      class="com.android.contacts.common.list.AutoScrollListView"
-      android:layout_width="match_parent"
-      android:layout_height="0dip"
-      android:paddingLeft="16dip"
-      android:paddingRight="16dip"
-      android:paddingStart="16dip"
-      android:paddingEnd="16dip"
-      android:scrollbarStyle="outsideOverlay"
-      android:layout_weight="1"
-      android:fadingEdge="none"
-      android:cacheColorHint="@android:color/transparent"
-      android:divider="@null"
-      android:listSelector="@android:color/transparent"/>
-
-    <TextView
-        android:id="@+id/empty"
-        android:layout_marginTop="@dimen/empty_message_top_margin"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:textColor="?android:attr/textColorSecondary"
-        android:text="@string/noGroups" />
-
-    <LinearLayout
-      android:id="@+id/add_accounts"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_gravity="center_horizontal"
-      android:orientation="vertical">
-
-      <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:layout_marginBottom="@dimen/no_accounts_message_margin"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorSecondary"
-        android:text="@string/noAccounts" />
-
-      <Button
-        android:id="@+id/add_account_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        android:layout_gravity="center_horizontal"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/contacts_unavailable_add_account" />
-
-    </LinearLayout>
-</LinearLayout>
diff --git a/res/layout/group_browse_list_item.xml b/res/layout/group_browse_list_item.xml
deleted file mode 100644
index c620d17..0000000
--- a/res/layout/group_browse_list_item.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!--
-    Note: Because this item layout contains the header too, we don't want to highlight the entire
-    thing when pressed or set the activated background to it.  So we disable the default hilighting
-    by setting transparent to android:listSelector for the list view in
-    group_browse_list_fragment.xml, and make the body part "duplicateParentState", and then set the
-    state list drawable to its background, which has the "activated" background (the drawable with
-    the triangular thing on the right side).  Because of this structure, the item view can't have
-    paddingRight, as the body part should touch the right edge.  Instead we make each child have
-    either marginRight or paddingRight.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingLeft="?attr/list_item_padding_left"
-    android:paddingStart="?attr/list_item_padding_left"
-    android:minHeight="@dimen/detail_min_line_item_height" >
-
-    <View
-        android:id="@+id/divider"
-        android:layout_width="match_parent"
-        android:layout_height="1dip"
-        android:layout_marginRight="?attr/list_item_padding_right"
-        android:layout_marginEnd="?attr/list_item_padding_right"
-        android:background="@color/secondary_header_separator_color" />
-
-    <include
-        android:id="@+id/group_list_header"
-        layout="@layout/group_browse_list_account_header"
-        android:visibility="gone" />
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingTop="8dip"
-        android:paddingLeft="8dip"
-        android:paddingStart="8dip"
-        android:paddingBottom="8dip"
-        android:orientation="vertical"
-        android:duplicateParentState="true"
-        android:background="@drawable/group_list_item_background">
-
-        <TextView
-            android:id="@+id/label"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:ellipsize="end"
-            android:singleLine="true" />
-
-        <TextView
-            android:id="@+id/count"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="?android:attr/textColorSecondary"
-            android:ellipsize="end"
-            android:singleLine="true" />
-
-    </LinearLayout>
-</LinearLayout>
-
diff --git a/res/layout/group_detail_activity.xml b/res/layout/group_detail_activity.xml
deleted file mode 100644
index 707a65c..0000000
--- a/res/layout/group_detail_activity.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <fragment
-        class="com.android.contacts.group.GroupDetailFragment"
-        android:id="@+id/group_detail_fragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</FrameLayout>
diff --git a/res/layout/group_detail_fragment.xml b/res/layout/group_detail_fragment.xml
deleted file mode 100644
index 735b29d..0000000
--- a/res/layout/group_detail_fragment.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/group_detail"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <!--
-      This layout can contain the second row of the action bar containing a group source
-      button if applicable (this is a fake stacked action bar)
-    -->
-    <FrameLayout
-        android:id="@+id/group_source_view_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"/>
-
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1">
-
-        <ListView
-            android:id="@android:id/list"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:fadingEdge="none"
-            android:scrollbarStyle="outsideOverlay"
-            android:divider="@null"/>
-
-        <include
-            layout="@layout/group_detail_fragment_empty_view"/>
-
-        <!--
-          Shadow overlay over the list of group members (since we have a fake stacked
-          action bar)
-        -->
-        <ImageView
-            android:layout_width="match_parent"
-            android:layout_height="20dip"
-            android:background="?android:attr/windowContentOverlay"/>
-
-    </FrameLayout>
-
-</LinearLayout>
diff --git a/res/layout/group_detail_fragment_empty_view.xml b/res/layout/group_detail_fragment_empty_view.xml
deleted file mode 100644
index 89a6cf8..0000000
--- a/res/layout/group_detail_fragment_empty_view.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@android:id/empty"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:paddingTop="24dip"
-    android:visibility="gone">
-
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:text="@string/emptyGroup"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:textColor="?android:attr/textColorSecondary"/>
-
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:text="@string/addPeopleToGroup"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="?android:attr/textColorSecondary"/>
-
-</LinearLayout>
diff --git a/res/layout/group_editor_activity.xml b/res/layout/group_editor_activity.xml
deleted file mode 100644
index 5f8a948..0000000
--- a/res/layout/group_editor_activity.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <fragment class="com.android.contacts.group.GroupEditorFragment"
-            android:id="@+id/group_editor_fragment"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-</FrameLayout>
diff --git a/res/layout/group_editor_autocomplete_view.xml b/res/layout/group_editor_autocomplete_view.xml
deleted file mode 100644
index c8e716a..0000000
--- a/res/layout/group_editor_autocomplete_view.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!-- Autocomplete text input field for adding new members to a group in the group editor -->
-
-<AutoCompleteTextView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:textAppearance="?android:attr/textAppearanceMedium"
-    android:textColor="?android:attr/textColorPrimary"
-    android:imeOptions="flagNoExtractUi|flagNoFullscreen"
-    android:hint="@string/enter_contact_name"
-    android:minHeight="48dip"
-    android:paddingLeft="@dimen/group_editor_autocomplete_left_padding"
-    android:paddingStart="@dimen/group_editor_autocomplete_left_padding"/>
\ No newline at end of file
diff --git a/res/layout/group_editor_existing_member_list.xml b/res/layout/group_editor_existing_member_list.xml
deleted file mode 100644
index 78d0953..0000000
--- a/res/layout/group_editor_existing_member_list.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!-- List of existing members for the group editor -->
-
-<ListView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_marginTop="5dip"
-    android:layout_marginLeft="@dimen/group_editor_member_list_left_margin"
-    android:layout_marginRight="@dimen/group_editor_member_list_right_margin"
-    android:layout_marginStart="@dimen/group_editor_member_list_left_margin"
-    android:layout_marginEnd="@dimen/group_editor_member_list_right_margin"
-    android:cacheColorHint="@android:color/transparent" />
\ No newline at end of file
diff --git a/res/layout/group_editor_fragment.xml b/res/layout/group_editor_fragment.xml
deleted file mode 100644
index 3a69e05..0000000
--- a/res/layout/group_editor_fragment.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!--
-  This is the container for either the group editor view for editable groups
-  or read-only groups.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/background_primary" />
diff --git a/res/layout/group_editor_view.xml b/res/layout/group_editor_view.xml
deleted file mode 100644
index d94853d..0000000
--- a/res/layout/group_editor_view.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical" >
-
-   <include
-        android:id="@+id/account_header"
-        layout="@layout/editor_account_header"/>
-
-    <LinearLayout android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:paddingStart="8dip"
-        android:paddingEnd="8dip"
-        android:orientation="vertical">
-
-        <EditText
-            android:id="@+id/group_name"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:inputType="textCapWords"
-            android:imeOptions="flagNoExtractUi|flagNoFullscreen"
-            android:hint="@string/group_name_hint"
-            android:minHeight="48dip"
-            android:paddingLeft="8dip"
-            android:paddingStart="8dip"/>
-
-        <include
-            layout="@layout/group_editor_autocomplete_view"
-            android:id="@+id/add_member_field"/>
-
-        <include
-            layout="@layout/group_editor_existing_member_list"
-            android:id="@android:id/list"/>
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/res/layout/group_member_item.xml b/res/layout/group_member_item.xml
deleted file mode 100644
index 14ed833..0000000
--- a/res/layout/group_member_item.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="horizontal">
-
-    <TextView
-        android:id="@+id/name"
-        android:layout_height="wrap_content"
-        android:layout_width="0dip"
-        android:layout_weight="1"
-        android:layout_gravity="center_vertical"
-        android:gravity="center_vertical"
-        android:paddingRight="3dip"
-        android:paddingEnd="3dip"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:focusable="true"
-        android:paddingLeft="@dimen/group_member_item_left_padding"
-        android:paddingStart="@dimen/group_member_item_left_padding" />
-
-    <QuickContactBadge
-        android:id="@+id/badge"
-        android:layout_marginLeft="5dip"
-        android:layout_marginRight="10dip"
-        android:layout_marginStart="5dip"
-        android:layout_marginEnd="10dip"
-        android:layout_gravity="center_vertical"
-        android:layout_width="50dip"
-        android:layout_height="50dip"
-        style="?android:attr/quickContactBadgeStyleWindowMedium" />
-
-    <include
-        android:id="@+id/delete_button_container"
-        layout="@layout/edit_delete_button"
-        android:gravity="center_vertical" />
-
-</LinearLayout>
diff --git a/res/layout/group_member_suggestion.xml b/res/layout/group_member_suggestion.xml
deleted file mode 100644
index 4fe8d20..0000000
--- a/res/layout/group_member_suggestion.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2011, 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.
-*/
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="48dip"
-    android:orientation="horizontal"
-    android:gravity="center_vertical"
-    android:background="?android:attr/selectableItemBackground">
-
-    <LinearLayout
-        android:layout_width="0dip"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="center_vertical"
-        android:orientation="vertical">
-
-        <TextView
-            android:id="@+id/text1"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingLeft="8dip"
-            android:paddingStart="8dip"
-            android:singleLine="true"
-            android:ellipsize="end"/>
-
-        <TextView android:id="@+id/text2"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="?android:attr/textColorSecondary"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingLeft="8dip"
-            android:paddingStart="8dip"
-            android:singleLine="true"
-            android:ellipsize="end" />
-
-    </LinearLayout>
-
-    <ImageView
-        android:id="@+id/icon"
-        android:layout_width="48dip"
-        android:layout_height="48dip"
-        android:cropToPadding="true"
-        android:scaleType="centerCrop" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/group_name_dialog.xml b/res/layout/group_name_dialog.xml
deleted file mode 100644
index 03b298f..0000000
--- a/res/layout/group_name_dialog.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:paddingLeft="25dip"
-    android:paddingRight="25dip"
-    android:paddingStart="25dip"
-    android:paddingEnd="25dip"
-    android:paddingTop="25dip"
-    android:paddingBottom="25dip">
-    <EditText
-        android:id="@+id/group_label"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
-</FrameLayout>
diff --git a/res/layout/group_name_edit_dialog.xml b/res/layout/group_name_edit_dialog.xml
new file mode 100644
index 0000000..94db3dd
--- /dev/null
+++ b/res/layout/group_name_edit_dialog.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<android.support.design.widget.TextInputLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/text_input_layout"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:paddingTop="@dimen/custom_dialog_layout_padding"
+    android:paddingEnd="@dimen/custom_dialog_layout_padding"
+    android:paddingStart="@dimen/custom_dialog_layout_padding"
+    app:errorEnabled="true"
+    app:hintEnabled="false">
+
+    <android.support.design.widget.TextInputEditText
+        android:id="@android:id/text1"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="@dimen/custom_dialog_layout"
+        android:layout_marginEnd="@dimen/custom_dialog_layout"
+        android:hint="@string/group_name_dialog_hint"
+        android:inputType="text"
+        android:maxLength="@integer/group_name_max_length"
+        android:minHeight="@dimen/dialog_edit_text_min_height"
+        android:textAlignment="viewStart"
+        android:singleLine="true"/>
+</android.support.design.widget.TextInputLayout>
\ No newline at end of file
diff --git a/res/layout/group_source_button.xml b/res/layout/group_source_button.xml
deleted file mode 100644
index a4709ef..0000000
--- a/res/layout/group_source_button.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<!--
-  Layout for the button that will launch the user into the source application
-  that the group came from (on a group detail page).
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/group_source"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="48dip"
-    android:background="@drawable/gray_action_bar_background"
-    android:paddingLeft="16dip"
-    android:paddingRight="16dip"
-    android:paddingStart="16dip"
-    android:paddingEnd="16dip" >
-
-    <TextView
-        android:id="@android:id/title"
-        android:layout_width="0dip"
-        android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:layout_gravity="center_vertical"
-        android:duplicateParentState="true"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="@color/action_bar_button_text_color"
-        style="@android:style/Widget.Holo.ActionBar.TabText"/>
-
-    <FrameLayout
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent">
-
-        <ImageView
-            android:id="@android:id/icon"
-            android:layout_width="32dip"
-            android:layout_height="32dip"
-            android:duplicateParentState="true"
-            android:layout_gravity="center_vertical"/>
-
-    </FrameLayout>
-
-</LinearLayout>
diff --git a/res/layout/item_group_membership.xml b/res/layout/item_group_membership.xml
index 078187f..1b62539 100644
--- a/res/layout/item_group_membership.xml
+++ b/res/layout/item_group_membership.xml
@@ -23,7 +23,7 @@
 
     <ImageView
         android:id="@+id/kind_icon"
-        android:src="@drawable/ic_people_black_24dp"
+        android:src="@drawable/quantum_ic_label_vd_theme_24"
         style="@style/EditKindIconStyle" />
 
     <Button
diff --git a/res/layout/item_kind_section.xml b/res/layout/item_kind_section.xml
index d62523b..9e434d5 100644
--- a/res/layout/item_kind_section.xml
+++ b/res/layout/item_kind_section.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!--
+     Copyright (C) 2015 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.
@@ -14,22 +15,22 @@
      limitations under the License.
 -->
 
-<!-- the body surrounding all editors for a specific kind -->
+<!-- The body surrounding all editors for a specific kind -->
 
 <com.android.contacts.editor.KindSectionView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="horizontal">
-
-    <ImageView
-        android:id="@+id/kind_icon"
-        style="@style/EditKindIconStyle" />
-
-    <LinearLayout
-        android:id="@+id/kind_editors"
+        xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical" />
+        android:orientation="horizontal">
+
+    <ImageView
+            android:id="@+id/kind_icon"
+            style="@style/EditKindIconStyle" />
+
+    <LinearLayout
+            android:id="@+id/kind_editors"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical" />
 
 </com.android.contacts.editor.KindSectionView>
\ No newline at end of file
diff --git a/res/layout/item_photo_editor.xml b/res/layout/item_photo_editor.xml
deleted file mode 100644
index e3eff4e..0000000
--- a/res/layout/item_photo_editor.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
--->
-
-<view class="com.android.contacts.editor.PhotoEditorView"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:orientation="horizontal" >
-
-    <ImageView
-        android:id="@+id/kind_icon"
-        android:src="@drawable/ic_camera_alt_black_24dp"
-        android:layout_marginTop="13dp"
-        android:contentDescription="@string/header_photo_entry"
-        style="@style/EditKindIconStyle" />
-
-    <!-- Needs 10dp of top padding, in order get a total of 32dp of padding between this view
-        and the previous DataKindSection. Note that EditTexts in other editor.xml files have this
-        padding built in. Similarly, we need to add 4dp of start margin to make up for the padding
-        that an EditText would have in this image's place. -->
-    <ImageView
-        android:id="@+id/photo"
-        android:layout_width="72dip"
-        android:layout_height="72dip"
-        android:cropToPadding="true"
-        android:scaleType="centerCrop"
-        android:layout_marginTop="15dp"
-        android:layout_marginStart="4dp"
-        android:contentDescription="@string/description_contact_photo"
-        android:layout_marginBottom="@dimen/editor_padding_below_photo"
-        android:gravity="start" />
-
-    <!-- We want 16dp for the effective marginStart. So we set 12dp, since the private
-        @android:dimen/control_inset_material already includes 4dp of padding. -->
-    <LinearLayout
-        android:orientation="vertical"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="12dp" >
-
-        <!-- The values applied to this button are complicated:
-            1) We want 16dp internal padding in the button. The background drawable is inset
-            by private @android:dimen/button_inset_horizontal_material=4dp. Therefore,
-            we need paddingStart/End of 20dp.
-            2) In order to leave enough room for the 32dp RadioButton, this can only be 46dp.
-            This is 2dp less than the default touch target size.
-            3) This button will appear to be offset by the private
-            @android:dimen/button_inset_vertical_material amount. Therefore, in order to achieve
-            15dp of apparent top margin, we only need to apply 9dp. -->
-        <Button
-            android:id="@+id/change_button"
-            android:layout_width="wrap_content"
-            android:layout_height="46dp"
-            android:textSize="@dimen/editor_form_text_size"
-            android:textColor="@color/primary_text_color"
-            android:layout_marginTop="9dp"
-            android:paddingStart="20dp"
-            android:paddingEnd="20dp"
-            android:text="@string/change_photo" />
-
-        <!-- Don't explicitly set the layout_height in case we need to rely on text wrapping.
-            For one line, we can expect the height to be 32dp with 16dp text size. -->
-        <RadioButton
-            android:id="@+id/primary_checkbox"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginEnd="48dp"
-            android:textSize="@dimen/editor_form_text_size"
-            android:text="@string/primary_photo" />
-    </LinearLayout>
-</view>
diff --git a/res/layout/item_photo_editor_readonly.xml b/res/layout/item_photo_editor_readonly.xml
deleted file mode 100644
index edb6f61..0000000
--- a/res/layout/item_photo_editor_readonly.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-
-<!-- A readonly version of item_photo_editor.xml shown in the readonly raw contact editor. -->
-<view class="com.android.contacts.editor.PhotoEditorView"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:orientation="horizontal" >
-
-    <ImageView
-        android:id="@+id/kind_icon"
-        android:src="@drawable/ic_camera_alt_black_24dp"
-        android:layout_marginTop="0dp"
-        android:contentDescription="@string/header_photo_entry"
-        style="@style/EditKindIconStyle" />
-
-    <!-- We need to add 2dp of start margin to make up for the padding that a TextView would
-        have in this image's place. We add 2dp of top margin, so that icon drawable is a little
-        below the top of this ImageView. -->
-    <ImageView
-        android:id="@+id/photo"
-        android:layout_width="72dip"
-        android:layout_height="72dip"
-        android:cropToPadding="true"
-        android:scaleType="centerCrop"
-        android:layout_marginTop="2dp"
-        android:layout_marginStart="2dp"
-        android:contentDescription="@string/description_contact_photo"
-        android:layout_marginBottom="@dimen/editor_padding_around_read_only_photo_editor"
-        android:gravity="start" />
-
-
-    <!-- Don't explicitly set the layout_height in case we need to rely on text wrapping.
-        For one line, we can expect the height to be 32dp with 16dp text size. -->
-    <RadioButton
-        android:id="@+id/primary_checkbox"
-        android:layout_marginStart="12dp"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="@dimen/editor_delete_button_width"
-        android:layout_marginTop="2dp"
-        android:textSize="@dimen/editor_form_text_size"
-        android:text="@string/primary_photo" />
-</view>
diff --git a/res/layout/item_read_only_field.xml b/res/layout/item_read_only_field.xml
index 3195b4c..8c77eee 100644
--- a/res/layout/item_read_only_field.xml
+++ b/res/layout/item_read_only_field.xml
@@ -16,9 +16,10 @@
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/read_only_row"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginEnd="@dimen/editor_delete_button_width"
+    android:focusableInTouchMode="true"
     android:layout_marginBottom="@dimen/editor_padding_between_read_only_editor_views"
     android:orientation="horizontal">
 
@@ -31,6 +32,7 @@
         android:layout_width="0dp"
         android:layout_weight="1"
         android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/editor_account_left_margin"
         android:orientation="vertical">
 
         <TextView
@@ -40,9 +42,7 @@
             android:textSize="@dimen/editor_form_text_size"
             android:textColor="?android:attr/textColorSecondary"
             android:singleLine="true"
-            android:saveEnabled="false"
-            android:textAlignment="viewStart"
-            android:enabled="false"/>
+            android:textAlignment="viewStart"/>
 
         <TextView
             android:id="@+id/type"
@@ -51,9 +51,7 @@
             android:textSize="@dimen/editor_form_text_size"
             android:textColor="?android:attr/textColorSecondary"
             android:singleLine="true"
-            android:saveEnabled="false"
-            android:textAlignment="viewStart"
-            android:enabled="false"/>
+            android:textAlignment="viewStart"/>
 
     </LinearLayout>
 
diff --git a/res/layout/join_contact_picker_list_content.xml b/res/layout/join_contact_picker_list_content.xml
index 5bde895..04b0556 100644
--- a/res/layout/join_contact_picker_list_content.xml
+++ b/res/layout/join_contact_picker_list_content.xml
@@ -42,7 +42,7 @@
         android:layout_height="match_parent">
         <include layout="@layout/contact_list_card"/>
         <view
-            class="com.android.contacts.common.list.PinnedHeaderListView"
+            class="com.android.contacts.list.PinnedHeaderListView"
             android:id="@android:id/list"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
diff --git a/res/layout/join_contact_picker_section_header.xml b/res/layout/join_contact_picker_section_header.xml
index 7dafb49..f39cafd 100644
--- a/res/layout/join_contact_picker_section_header.xml
+++ b/res/layout/join_contact_picker_section_header.xml
@@ -23,8 +23,9 @@
     <TextView
         android:id="@+id/text"
         style="@style/ContactListSeparatorTextViewStyle"
-        android:paddingLeft="8dip"
-        android:paddingRight="8dip"
-        android:paddingStart="8dip"
-        android:paddingEnd="8dip" />
+        android:textAlignment="viewStart"
+        android:paddingLeft="24dip"
+        android:paddingRight="24dip"
+        android:paddingStart="24dip"
+        android:paddingEnd="24dip"/>
 </LinearLayout>
diff --git a/res/layout/licenses.xml b/res/layout/licenses.xml
new file mode 100644
index 0000000..66d4f46
--- /dev/null
+++ b/res/layout/licenses.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2015 Google Inc. All Rights Reserved. -->
+
+<WebView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/webview"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+</WebView>
\ No newline at end of file
diff --git a/res/layout/list_section.xml b/res/layout/list_section.xml
deleted file mode 100644
index 7361de6..0000000
--- a/res/layout/list_section.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<!-- Layout used for list section separators. -->
-<RelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/list_section_height"
-    >
-    <TextView
-        android:id="@+id/header_text"
-        android:layout_width="56dip"
-        android:layout_height="wrap_content"
-        android:layout_centerVertical="true"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:textStyle="bold"
-        android:textColor="@color/section_header_text_color"
-        android:textSize="14sp"
-        android:gravity="center"
-    />
-</RelativeLayout>
diff --git a/res/layout/list_separator.xml b/res/layout/list_separator.xml
new file mode 100644
index 0000000..80abacb
--- /dev/null
+++ b/res/layout/list_separator.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+<TextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/title"
+    android:textColor="@color/frequently_contacted_title_color"
+    android:paddingLeft="16dip"
+    android:paddingStart="16dip"
+    android:paddingRight="16dip"
+    android:paddingEnd="16dip"
+    android:paddingBottom="15dip"
+    android:paddingTop="16dip"
+    android:textStyle="bold"
+    android:textSize="@dimen/frequently_contacted_title_text_size"/>
diff --git a/res/layout/menu_item_action_view.xml b/res/layout/menu_item_action_view.xml
new file mode 100644
index 0000000..62eb758
--- /dev/null
+++ b/res/layout/menu_item_action_view.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<!-- A dummy 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"
+    android:layout_height="wrap_content"
+    android:visibility="gone">
+    <View
+        android:layout_width="1dp"
+        android:layout_height= "1dp" />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/multi_select_send_button.xml b/res/layout/multi_select_send_button.xml
new file mode 100644
index 0000000..50a4d45
--- /dev/null
+++ b/res/layout/multi_select_send_button.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<Button xmlns:android="http://schemas.android.com/apk/res/android"
+    style="?android:attr/buttonBarButtonStyle"
+    android:id="@+id/multi_select_send_button"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:text="@string/send_to_selection"
+    android:textColor="@color/action_bar_button_text_color"
+    android:textSize="14sp">
+</Button>
diff --git a/res/layout/name_edit_expansion_view.xml b/res/layout/name_edit_expansion_view.xml
index 13a50a8..066850f 100644
--- a/res/layout/name_edit_expansion_view.xml
+++ b/res/layout/name_edit_expansion_view.xml
@@ -22,7 +22,6 @@
     android:layout_width="wrap_content"
     android:layout_height="@dimen/editor_min_line_item_height"
     android:layout_gravity="top"
-    android:contentDescription="@string/expand_collapse_name_fields_description"
     android:importantForAccessibility="yes"
     android:focusable="true"
     android:clickable="true">
@@ -32,6 +31,7 @@
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:duplicateParentState="true"
+        android:tint="@color/quantum_black_secondary_text"
         android:background="?android:attr/selectableItemBackground"
         android:paddingLeft="@dimen/editor_round_button_padding_left"
         android:paddingRight="@dimen/editor_round_button_padding_right"
diff --git a/res/layout/nav_drawer_spacer.xml b/res/layout/nav_drawer_spacer.xml
new file mode 100644
index 0000000..e95f6cd
--- /dev/null
+++ b/res/layout/nav_drawer_spacer.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (C) 2017 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.
+-->
+
+<View xmlns:android="http://schemas.android.com/apk/res/android"
+      android:id="@+id/nav_drawer_spacer"
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/nav_drawer_spacer_height"
+      android:background="@color/navigation_drawer_background_color"
+      android:importantForAccessibility="no"/>
\ No newline at end of file
diff --git a/res/layout/nav_header_main.xml b/res/layout/nav_header_main.xml
new file mode 100644
index 0000000..7a2e3cb
--- /dev/null
+++ b/res/layout/nav_header_main.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  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.
+  -->
+
+<View
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/nav_status_bar_spacer"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/nav_header_height"
+    android:background="@color/contacts_accent_color"
+    android:importantForAccessibility="no"/>
diff --git a/res/layout/nick_name_editor_view.xml b/res/layout/nick_name_editor_view.xml
deleted file mode 100644
index 3b91917..0000000
--- a/res/layout/nick_name_editor_view.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2014 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.
-  -->
-
-<com.android.contacts.editor.TextFieldsEditorView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="@dimen/editor_min_line_item_height"
-    android:layout_marginStart="@dimen/editor_kind_icon_total_width"
-    android:layout_marginEnd="@dimen/editor_delete_button_width">
-
-    <!-- This isn't used in the nickname field. It is only included so that
-        TextFieldsEditorView's base classes don't need extra null checks. -->
-    <include
-        android:id="@+id/spinner"
-        layout="@layout/edit_spinner"
-        android:visibility="gone" />
-
-    <include
-        android:id="@+id/editors"
-        layout="@layout/edit_field_list" />
-
-    <!-- This isn't used in the nickname field. It is only included so that
-        TextFieldsEditorView doesn't need extra null checks. -->
-    <include
-        android:id="@+id/delete_button_container"
-        layout="@layout/edit_delete_button"
-        android:visibility="gone" />
-
-</com.android.contacts.editor.TextFieldsEditorView>
diff --git a/res/layout/people_activity.xml b/res/layout/people_activity.xml
index ce995cb..978f47a 100644
--- a/res/layout/people_activity.xml
+++ b/res/layout/people_activity.xml
@@ -14,40 +14,24 @@
      limitations under the License.
 -->
 
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/list_container"
+<android.support.design.widget.CoordinatorLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/root"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent" >
 
-    <include
-        layout="@layout/people_activity_toolbar"
-        android:id="@+id/toolbar_parent" />
-
-    <!--
-        ViewPager for swiping between tabs.  We put StrequentContactListFragment,
-        DefaultContactBrowseListFragment and GroupBrowseListFragment at runtime.
-
-        (Adding them directly as the children of this view is not recommended.  ViewPager should
-        be treated like a ListView, which doesn't expect children to be added from the layout.)
-    -->
-    <android.support.v4.view.ViewPager
-        android:id="@+id/tab_pager"
+    <!-- This is kind of a hack. Really we should be able to put the ContactsUnavailableFragment
+         into contacts_list_container but that causes issues with the fragment back stack
+         on older API levels -->
+    <FrameLayout
+        android:id="@+id/contacts_unavailable_container"
         android:layout_height="match_parent"
-        android:layout_width="match_parent"
-        android:layout_below="@id/toolbar_parent"
-        />
+        android:layout_width="match_parent" />
 
     <FrameLayout
-        android:id="@+id/contacts_unavailable_view"
-        android:layout_width="match_parent"
+        android:id="@+id/contacts_list_container"
         android:layout_height="match_parent"
-        android:layout_below="@id/toolbar_parent"
-        android:visibility="gone">
-        <FrameLayout
-            android:id="@+id/contacts_unavailable_container"
-            android:layout_height="match_parent"
-            android:layout_width="match_parent" />
-    </FrameLayout>
+        android:layout_width="match_parent" />
 
     <include layout="@layout/floating_action_button" />
-</RelativeLayout>
+</android.support.design.widget.CoordinatorLayout>
diff --git a/res/layout/people_activity_tabs_lands.xml b/res/layout/people_activity_tabs_lands.xml
deleted file mode 100644
index 525ac3c..0000000
--- a/res/layout/people_activity_tabs_lands.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-
-<com.android.contacts.common.list.ViewPagerTabs
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/lists_pager_header"
-    android:layout_width="@dimen/people_activity_landscape_tabs_width"
-    android:layout_height="match_parent"
-    android:textAllCaps="true"
-    android:orientation="horizontal"
-    android:layout_gravity="top"
-    android:layout_weight="0"
-    android:textSize="@dimen/people_activity_landscape_tabs_text_size"
-    style="@style/ContactsActionBarTabTextStyle" />
diff --git a/res/layout/people_activity_toolbar.xml b/res/layout/people_activity_toolbar.xml
index cbb4d91..3599f0c 100644
--- a/res/layout/people_activity_toolbar.xml
+++ b/res/layout/people_activity_toolbar.xml
@@ -24,26 +24,16 @@
     <FrameLayout
         android:id="@+id/toolbar_frame"
         android:layout_width="match_parent"
-        android:layout_height="?android:attr/actionBarSize"
-        android:background="@color/actionbar_background_color">
+        android:layout_height="?attr/actionBarSize"
+        android:background="?attr/colorPrimary">
 
-        <Toolbar
+        <!-- the attribute padding removes the gap between this Toolbar and its parent FrameLayout on tablet -->
+        <android.support.v7.widget.Toolbar
             android:layout_width="match_parent"
-            android:layout_height="?android:attr/actionBarSize"
+            android:layout_height="?attr/actionBarSize"
             android:id="@+id/toolbar"
+            android:padding="0dp"
             style="@style/ContactsToolbarStyle" />
 
     </FrameLayout>
-
-    <com.android.contacts.common.list.ViewPagerTabs
-        android:id="@+id/lists_pager_header"
-        android:layout_width="match_parent"
-        android:layout_height="?android:attr/actionBarSize"
-        android:textAllCaps="true"
-        android:orientation="horizontal"
-        android:layout_gravity="top"
-        android:layout_weight="0"
-        android:layout_below="@id/toolbar"
-        style="@style/ContactsActionBarTabTextStyle" />
-
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/people_navigation_item.xml b/res/layout/people_navigation_item.xml
deleted file mode 100644
index 60a7a49..0000000
--- a/res/layout/people_navigation_item.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<!-- This is the text view layout that is shown in the spinner for the navigation drop down menu on
-     tablet devices.  The text appearance is governed via two styles:
-     PeopleNavigationDropDownHeaderTextAppearance - text appearance of the item in the header part
-         of navigation drop down list of the action bar.
-     PeopleNavigationDropDownTextAppearance - text appearance of the item in the drop down part of
-         the navigation drop down list of the action bar. -->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:gravity="center_vertical"
-    android:paddingLeft="18dip"
-    android:paddingRight="18dip"
-    android:paddingStart="18dip"
-    android:paddingEnd="18dip"
-    android:minHeight="?android:attr/listPreferredItemHeightSmall"
-/>
diff --git a/res/layout/phonetic_name_edit_expansion_view.xml b/res/layout/phonetic_name_edit_expansion_view.xml
deleted file mode 100644
index 1613391..0000000
--- a/res/layout/phonetic_name_edit_expansion_view.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2015 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.
-  -->
-
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
-    android:layout_height="@dimen/editor_min_line_item_height"
-    android:layout_gravity="top"
-    android:contentDescription="@string/expand_collapse_phonetic_name_fields_description"
-    android:importantForAccessibility="yes"
-    android:focusable="true"
-    android:clickable="true">
-    <ImageView
-        android:id="@+id/expansion_view"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:duplicateParentState="true"
-        android:background="?android:attr/selectableItemBackground"
-        android:paddingLeft="@dimen/editor_round_button_padding_left"
-        android:paddingRight="@dimen/editor_round_button_padding_right"
-        android:paddingStart="@dimen/editor_round_button_padding_left"
-        android:paddingEnd="@dimen/editor_round_button_padding_right"
-        android:paddingTop="@dimen/editor_round_button_padding_top"
-        android:paddingBottom="@dimen/editor_round_button_padding_bottom" />
-</FrameLayout>
diff --git a/res/layout/phonetic_name_editor_view.xml b/res/layout/phonetic_name_editor_view.xml
deleted file mode 100644
index f51d3df..0000000
--- a/res/layout/phonetic_name_editor_view.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2011 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.
-  -->
-
-<com.android.contacts.editor.PhoneticNameEditorView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="@dimen/editor_min_line_item_height"
-    android:layout_marginStart="@dimen/editor_kind_icon_total_width">
-
-    <!-- This isn't used in PhoneticNameEditorView. It is only included so that
-        StructuredNameEditorView's base classes don't need extra null checks. -->
-    <include
-        android:id="@+id/spinner"
-        layout="@layout/edit_spinner"
-        android:visibility="gone" />
-
-    <include
-        android:id="@+id/editors"
-        layout="@layout/edit_field_list" />
-
-    <include
-        android:id="@+id/expansion_view_container"
-        layout="@layout/phonetic_name_edit_expansion_view"
-        android:visibility="visible" />
-
-    <!-- This isn't used in PhoneticNameEditorView. It is only included so that
-        StructuredNameEditorView's base classes don't need extra null checks. -->
-    <include
-        android:id="@+id/delete_button_container"
-        layout="@layout/edit_delete_button"
-        android:visibility="gone" />
-
-</com.android.contacts.editor.PhoneticNameEditorView>
diff --git a/res/layout/photo_editor_view.xml b/res/layout/photo_editor_view.xml
new file mode 100644
index 0000000..b9f32a0
--- /dev/null
+++ b/res/layout/photo_editor_view.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<com.android.contacts.editor.PhotoEditorView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/photo_editor"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center_horizontal">
+
+    <com.android.contacts.widget.QuickContactImageView
+            android:id="@+id/photo"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:scaleType="centerCrop"/>
+
+    <View
+            android:id="@+id/photo_icon_overlay"
+            android:layout_height="56dp"
+            android:layout_width="match_parent"
+            android:layout_alignParentBottom="true" />
+
+    <ImageView
+            android:id="@+id/photo_icon"
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:layout_alignParentBottom="true"
+            android:layout_alignParentEnd="true"
+            android:layout_marginBottom="16dp"
+            android:layout_marginEnd="16dp"
+            android:background="?android:attr/selectableItemBackground"
+            android:tint="@android:color/white"
+            android:src="@drawable/quantum_ic_camera_alt_vd_theme_24" />
+
+    <View
+            android:id="@+id/photo_touch_intercept_overlay"
+            android:focusable="true"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@drawable/item_background_material_dark"
+            android:contentDescription="@string/editor_change_photo_content_description" />
+
+</com.android.contacts.editor.PhotoEditorView>
diff --git a/res/layout/pinned_header_list_demo.xml b/res/layout/pinned_header_list_demo.xml
deleted file mode 100644
index c717b35..0000000
--- a/res/layout/pinned_header_list_demo.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/pinned_header_list_layout"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical"
-        >
-
-    <view
-        class="com.android.contacts.common.list.PinnedHeaderListView"
-        android:id="@android:id/list"
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:paddingTop="@dimen/contact_browser_list_item_padding_top_or_bottom"
-        android:clipToPadding="false"
-        android:fastScrollEnabled="true"
-        android:layout_weight="1"
-    />
-</LinearLayout>
diff --git a/res/layout/quickcontact_collapsed_suggestion_card.xml b/res/layout/quickcontact_collapsed_suggestion_card.xml
index 45de7f5..64bac99 100644
--- a/res/layout/quickcontact_collapsed_suggestion_card.xml
+++ b/res/layout/quickcontact_collapsed_suggestion_card.xml
@@ -29,7 +29,8 @@
         android:id="@+id/collapsed_suggestion_header">
 
         <ImageView
-                android:src="@drawable/quantum_ic_assistant_grey600_48"
+                android:src="@drawable/quantum_ic_assistant_vd_theme_24"
+                android:tint="@color/editor_icon_color"
                 android:layout_width="@dimen/quickcontact_collapse_icon_size"
                 android:layout_height="@dimen/quickcontact_collapse_icon_size"
                 android:layout_margin="@dimen/quickcontact_collapse_image_padding"
@@ -49,7 +50,7 @@
                 android:paddingTop="@dimen/quickcontact_collapse_text_padding"/>
 
         <ImageView
-                android:src="@drawable/ic_menu_expander_minimized_holo_light"
+                android:src="@drawable/quantum_ic_expand_more_vd_theme_24"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_vertical|end"
diff --git a/res/layout/quickcontact_content.xml b/res/layout/quickcontact_content.xml
index a6a8abb..b6cff4b 100644
--- a/res/layout/quickcontact_content.xml
+++ b/res/layout/quickcontact_content.xml
@@ -50,6 +50,12 @@
 
         <com.android.contacts.quickcontact.ExpandingEntryCardView
             style="@style/ExpandingEntryCardStyle"
+            android:id="@+id/permission_explanation_card"
+            android:visibility="gone"
+            cardview:cardCornerRadius="@dimen/expanding_entry_card_card_corner_radius"/>
+
+        <com.android.contacts.quickcontact.ExpandingEntryCardView
+            style="@style/ExpandingEntryCardStyle"
             android:id="@+id/about_card"
             android:visibility="gone"
             cardview:cardCornerRadius="@dimen/expanding_entry_card_card_corner_radius" />
diff --git a/res/layout/quickcontact_expanding_entry_card_button.xml b/res/layout/quickcontact_expanding_entry_card_button.xml
index b198b06..c7f95ee 100644
--- a/res/layout/quickcontact_expanding_entry_card_button.xml
+++ b/res/layout/quickcontact_expanding_entry_card_button.xml
@@ -32,13 +32,12 @@
 
         <ImageView
             android:id="@+id/arrow"
-            android:src="@drawable/expanding_entry_card_expand_white_24"
+            android:src="@drawable/quantum_ic_expand_more_vd_theme_24"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginStart="@dimen/expanding_entry_card_item_padding_start"
             android:paddingBottom="@dimen/expanding_entry_card_button_padding_vertical"
-            android:paddingTop="@dimen/expanding_entry_card_button_padding_vertical"
-            android:layout_weight="0" />
+            android:paddingTop="@dimen/expanding_entry_card_button_padding_vertical"/>
 
         <TextView
             android:id="@+id/text"
@@ -46,22 +45,10 @@
             android:layout_height="wrap_content"
             android:paddingStart="@dimen/expanding_entry_card_item_image_spacing"
             android:gravity="center_vertical"
-            android:layout_weight="0"
             android:paddingBottom="@dimen/expanding_entry_card_button_padding_vertical"
             android:paddingTop="@dimen/expanding_entry_card_button_padding_vertical"
             android:textColor="@color/expanding_entry_card_button_text_color"
             android:textSize="@dimen/expanding_entry_card_title_text_size" />
-
-        <LinearLayout
-            android:id="@+id/badge_container"
-            android:gravity="end"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginRight="11dp"
-            android:layout_marginTop="@dimen/expanding_entry_card_button_padding_vertical"
-            android:layout_weight="1"
-            android:alpha=".3"
-            android:orientation="horizontal" />
     </LinearLayout>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/quickcontact_suggestion_contact_item.xml b/res/layout/quickcontact_suggestion_contact_item.xml
deleted file mode 100644
index 3e7ed49..0000000
--- a/res/layout/quickcontact_suggestion_contact_item.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/quickcontact_expanding_item_height"
-    android:paddingTop="@dimen/quickcontact_expanding_item_padding">
-
-    <ImageView
-        android:id="@+id/aggregation_suggestion_photo"
-        android:layout_width="@dimen/quickcontact_suggestion_card_icon_height"
-        android:layout_height="@dimen/quickcontact_suggestion_card_icon_width"
-        android:layout_marginStart="@dimen/quickcontact_suggestion_card_image_spacing"
-        android:scaleType="fitCenter"
-        android:layout_gravity="center_vertical" />
-
-    <LinearLayout
-        android:id="@+id/suggestion_contact_item"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/quickcontact_expanding_item_image_padding"
-        android:layout_weight="1"
-        android:orientation="vertical"
-        android:layout_gravity="center_vertical">
-
-        <TextView
-            android:id="@+id/aggregation_suggestion_name"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="@dimen/quickcontact_suggestion_card_layout_margin"
-            android:singleLine="true"
-            android:ellipsize="end"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="@color/quickcontact_entry_header_text_color" />
-
-        <TextView
-            android:id="@+id/aggregation_suggestion_account_name"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:layout_marginBottom="@dimen/quickcontact_suggestion_card_layout_margin"
-            android:singleLine="true"
-            android:ellipsize="end" />
-
-    </LinearLayout>
-
-    <CheckBox
-        android:id="@+id/suggestion_checkbox"
-        android:layout_gravity="center_vertical|end"
-        android:layout_alignParentEnd="true"
-        android:layout_width="48dp"
-        android:layout_height="48dp"
-        android:shadowColor="@color/divider_line_color_light"
-        android:layout_marginEnd="@dimen/quickcontact_suggestion_card_checkbox_right_margin"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/raw_contact_editor_view.xml b/res/layout/raw_contact_editor_view.xml
deleted file mode 100644
index 97c1b49..0000000
--- a/res/layout/raw_contact_editor_view.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
--->
-
-<com.android.contacts.editor.RawContactEditorView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/body"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical" >
-
-    <!-- There are two mutually exclusive account headers that look significantly different.
-        The editor_account_selector is used when an account needs to be chosen. -->
-    <include
-        layout="@layout/editor_account_header_expandable" />
-    <include
-        layout="@layout/editor_account_selector" />
-
-    <LinearLayout
-        android:id="@+id/collapsable_section"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical" >
-
-        <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
-        <View
-           android:layout_width="0dp"
-           android:layout_height="0dp"
-           android:focusable="true"
-           android:focusableInTouchMode="true"/>
-
-        <include
-            android:id="@+id/edit_name"
-            layout="@layout/structured_name_editor_view" />
-
-        <include
-            android:id="@+id/edit_phonetic_name"
-            layout="@layout/phonetic_name_editor_view" />
-
-        <include
-            android:id="@+id/edit_nick_name"
-            layout="@layout/nick_name_editor_view" />
-
-        <include
-            android:id="@+id/edit_photo"
-            android:layout_marginRight="8dip"
-            android:layout_marginEnd="8dip"
-            layout="@layout/item_photo_editor" />
-
-        <LinearLayout
-            android:id="@+id/sect_fields"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:layout_marginBottom="16dip"/>
-
-    </LinearLayout>
-
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/divider_line_height"
-        android:background="@color/divider_line_color_light" />
-
-</com.android.contacts.editor.RawContactEditorView>
diff --git a/res/layout/raw_contact_list_item.xml b/res/layout/raw_contact_list_item.xml
new file mode 100644
index 0000000..70bf394
--- /dev/null
+++ b/res/layout/raw_contact_list_item.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingLeft="24dp"
+    android:paddingRight="24dp"
+    android:paddingTop="12dp"
+    android:paddingBottom="12dp"
+    android:background="?android:attr/selectableItemBackground"
+    android:orientation="horizontal">
+
+    <ImageView
+        android:id="@+id/photo"
+        android:layout_width="40dp"
+        android:layout_height="40dp"
+        android:layout_marginEnd="16dp"
+        android:scaleType="fitCenter"/>
+
+    <LinearLayout
+        android:id="@+id/text_container"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        android:layout_weight="1"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/display_name"
+            android:textSize="16sp"
+            android:textColor="@color/quantum_black_text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"/>
+
+        <LinearLayout
+            android:id="@+id/account_container"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical">
+
+            <ImageView
+                android:id="@+id/account_icon"
+                android:layout_width="14dp"
+                android:layout_height="14dp"
+                android:layout_gravity="center_vertical"
+                android:layout_marginEnd="4dp"
+                android:scaleType="fitCenter"/>
+
+            <TextView
+                android:id="@+id/account_name"
+                android:textSize="13sp"
+                android:textColor="@color/quantum_black_secondary_text"
+                android:maxLines="1"
+                android:ellipsize="middle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"/>
+        </LinearLayout>
+
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/res/layout/raw_contact_readonly_editor_view.xml b/res/layout/raw_contact_readonly_editor_view.xml
deleted file mode 100644
index 25699ce..0000000
--- a/res/layout/raw_contact_readonly_editor_view.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
--->
-
-<com.android.contacts.editor.RawContactReadOnlyEditorView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical" >
-
-    <include
-        layout="@layout/editor_account_header_expandable" />
-
-    <LinearLayout
-        android:id="@+id/collapsable_section"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical" >
-
-        <!-- Want 16dp of apparent top padding. Since TextView has 4dp of inset/padding built in,
-            only set marginTop=12dp. -->
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginBottom="@dimen/editor_padding_around_read_only_photo_editor"
-            android:layout_marginTop="12dp"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:id="@+id/kind_icon"
-                android:layout_marginTop="2dp"
-                android:src="@drawable/ic_person_black_24dp"
-                android:contentDescription="@string/header_name_entry"
-                style="@style/EditKindIconStyle" />
-
-            <TextView
-                android:id="@+id/read_only_name"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginRight="@dimen/editor_delete_button_width"
-                android:layout_marginEnd="@dimen/editor_delete_button_width"
-                android:singleLine="true"
-                android:textSize="@dimen/editor_form_text_size"
-                android:textColor="?android:attr/textColorSecondary"
-                android:textAlignment="viewStart"
-                android:enabled="false"/>
-
-        </LinearLayout>
-
-        <include
-            android:id="@+id/edit_photo"
-            layout="@layout/item_photo_editor_readonly" />
-
-        <Button
-            android:id="@+id/button_edit_externally"
-            android:text="@string/edit_contact"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="4dp"
-            android:layout_marginBottom="@dimen/editor_padding_below_photo"
-            android:layout_marginEnd="13dip"
-            android:layout_marginStart="13dip"/>
-
-        <LinearLayout android:id="@+id/sect_general"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"/>
-
-    </LinearLayout>
-
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/divider_line_height"
-        android:background="@color/divider_line_color_light" />
-
-</com.android.contacts.editor.RawContactReadOnlyEditorView>
diff --git a/res/layout/search_bar_expanded.xml b/res/layout/search_bar_expanded.xml
new file mode 100644
index 0000000..9f90bc7
--- /dev/null
+++ b/res/layout/search_bar_expanded.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/search_box_expanded"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal"
+    android:gravity="center_vertical"
+    android:visibility="gone" >
+
+    <ImageButton
+        android:id="@+id/search_back_button"
+        android:layout_width="@dimen/search_box_icon_size"
+        android:layout_height="@dimen/search_box_icon_size"
+        android:layout_marginEnd="@dimen/search_box_navigation_icon_margin"
+        android:src="@drawable/quantum_ic_arrow_back_vd_theme_24"
+        android:background="?attr/selectableItemBackgroundBorderless"
+        android:contentDescription="@string/action_menu_back_from_search"
+        android:tint="@color/actionbar_background_color" />
+
+    <android.widget.AutoCompleteTextView
+        android:id="@+id/search_view"
+        android:layout_width="0dp"
+        android:layout_height="@dimen/search_box_icon_size"
+        android:layout_weight="1"
+        android:layout_marginLeft="@dimen/search_box_text_left_margin"
+        android:textSize="@dimen/search_text_size"
+        android:fontFamily="@string/search_font_family"
+        android:textColor="@color/searchbox_text_color"
+        android:textColorHint="@color/searchbox_hint_text_color"
+        android:textCursorDrawable="@drawable/searchedittext_custom_cursor"
+        android:background="@null"
+        android:inputType="textFilter"
+        android:singleLine="true"
+        android:imeOptions="flagNoExtractUi" />
+
+    <ImageView
+        android:id="@+id/search_close_button"
+        android:layout_height="@dimen/search_box_close_icon_size"
+        android:layout_width="@dimen/search_box_close_icon_size"
+        android:padding="@dimen/search_box_close_icon_padding"
+        android:src="@drawable/quantum_ic_close_vd_theme_24"
+        android:tint="@color/quantum_black_secondary_text"
+        android:clickable="true"
+        android:background="?attr/selectableItemBackgroundBorderless"
+        android:contentDescription="@string/description_clear_search" />
+
+</LinearLayout>
diff --git a/res/layout/select_account_list_item.xml b/res/layout/select_account_list_item.xml
new file mode 100644
index 0000000..edfd904
--- /dev/null
+++ b/res/layout/select_account_list_item.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- Layout of a single item in the InCallUI Account Chooser Dialog. -->
+<view class="com.android.contacts.widget.ActivityTouchLinearLayout"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="8dp" >
+
+    <ImageView android:id="@+id/icon"
+               android:layout_width="48dp"
+               android:layout_height="48dp"
+               android:scaleType="center" />
+
+    <LinearLayout
+              android:id="@+id/text"
+              android:gravity="start|center_vertical"
+              android:layout_marginLeft="8dp"
+              android:layout_width="0dp"
+              android:layout_weight="1"
+              android:layout_height="match_parent"
+              android:orientation="vertical" >
+         <TextView android:id="@+id/label"
+                   android:textAppearance="?android:attr/textAppearanceMedium"
+                   android:textColor="@color/dialtacts_primary_text_color"
+                   android:includeFontPadding="false"
+                   android:layout_width="match_parent"
+                   android:layout_height="wrap_content" />
+         <TextView android:id="@+id/number"
+                   android:textAppearance="?android:attr/textAppearanceSmall"
+                   android:includeFontPadding="false"
+                   android:layout_width="match_parent"
+                   android:layout_height="wrap_content"
+                   android:visibility="gone" />
+    </LinearLayout>
+
+</view>
diff --git a/res/layout/select_dialog_item.xml b/res/layout/select_dialog_item.xml
new file mode 100644
index 0000000..1215aa9
--- /dev/null
+++ b/res/layout/select_dialog_item.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!--
+  List item in the pop-up window that appears when tapping a contact's photo
+  in the contact editor. This is similar to the framework's select_dialog_item_material.xml layout
+  except the text appearance is medium and the padding is set to match the material spec.
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="56dp"
+    android:orientation="vertical"
+    android:paddingBottom="8dp"
+    android:paddingEnd="24dp"
+    android:paddingStart="24dp"
+    android:paddingTop="8dp">
+
+    <TextView
+        android:id="@+id/primary_text"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:ellipsize="marquee"
+        android:gravity="start|center_vertical"
+        android:textAlignment="viewStart"
+        android:textAppearance="?android:textAppearanceListItem"
+        android:textSize="16sp"/>
+
+    <TextView
+        android:id="@+id/secondary_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:ellipsize="marquee"
+        android:gravity="center_vertical|start"
+        android:textAlignment="viewStart"
+        android:textAppearance="?android:textAppearanceListItemSecondary"
+        android:textColor="?android:textColorSecondary"
+        />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/selection_bar.xml b/res/layout/selection_bar.xml
index 34cdd60..272a2fc 100644
--- a/res/layout/selection_bar.xml
+++ b/res/layout/selection_bar.xml
@@ -18,25 +18,41 @@
     android:id="@+id/selection_bar"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/contextual_selection_bar_color" >
+    android:background="@color/contextual_selection_bar_color">
 
     <ImageButton
         android:id="@+id/selection_close"
-        android:layout_width="48dp"
-        android:layout_height="48dp"
-        android:src="@drawable/ic_back_arrow"
-        android:background="?android:attr/selectableItemBackgroundBorderless"
-        android:contentDescription="@string/action_menu_back_from_search"
+        android:layout_width="@dimen/selection_bar_close_icon_size"
+        android:layout_height="@dimen/selection_bar_close_icon_size"
         android:layout_gravity="center_vertical|start"
-        android:tint="@android:color/white" />
+        android:tint="@color/quantum_black_secondary_text"
+        android:background="?attr/selectableItemBackgroundBorderless"
+        android:contentDescription="@string/action_menu_back_from_edit_select"
+        android:src="@drawable/quantum_ic_close_vd_theme_24"/>
 
     <TextView
         android:id="@+id/selection_count_text"
-        android:layout_marginStart="72dp"
+        style="@style/ContactsActionBarTitleTextBlack"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:visibility="gone"
         android:layout_gravity="center_vertical|start"
-        style="@style/ContactsActionBarTitleText" />
+        android:layout_marginEnd="@dimen/edit_group_end_margin"
+        android:layout_marginStart="72dp"
+        android:ellipsize="end"
+        android:singleLine="true"
+        android:visibility="gone"/>
+
+    <TextView
+        android:id="@+id/add_contacts"
+        android:layout_width="wrap_content"
+        android:layout_height="48dp"
+        android:layout_gravity="center_vertical|end"
+        android:gravity="center"
+        android:paddingEnd="16dp"
+        android:paddingStart="16dp"
+        android:text="@string/menu_add_contacts"
+        android:textColor="@color/primary_color"
+        android:textStyle="bold"
+        android:visibility="gone"/>
 
 </FrameLayout>
diff --git a/res/layout/sim_import_activity.xml b/res/layout/sim_import_activity.xml
new file mode 100644
index 0000000..ac8a9c4
--- /dev/null
+++ b/res/layout/sim_import_activity.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/root"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"/>
+
diff --git a/res/layout/sim_import_list_item.xml b/res/layout/sim_import_list_item.xml
new file mode 100644
index 0000000..c039570
--- /dev/null
+++ b/res/layout/sim_import_list_item.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CheckedTextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/text"
+    android:layout_width="match_parent"
+    android:layout_height="?android:listPreferredItemHeight"
+    android:checkMark="?android:listChoiceIndicatorMultiple"
+    android:gravity="center_vertical"
+    android:paddingEnd="@dimen/activity_horizontal_margin"
+    android:paddingStart="@dimen/activity_horizontal_margin"
+    android:textAppearance="?android:textAppearanceListItem"/>
diff --git a/res/layout/sim_import_list_item_disabled.xml b/res/layout/sim_import_list_item_disabled.xml
new file mode 100644
index 0000000..4647049
--- /dev/null
+++ b/res/layout/sim_import_list_item_disabled.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/text"
+    style="?android:checkedTextViewStyle"
+    android:layout_width="match_parent"
+    android:layout_height="?android:listPreferredItemHeight"
+    android:drawableEnd="?android:listChoiceIndicatorMultiple"
+    android:enabled="false"
+    android:gravity="center_vertical"
+    android:orientation="vertical"
+    android:paddingEnd="@dimen/activity_horizontal_margin"
+    android:paddingStart="@dimen/activity_horizontal_margin"
+    android:textAppearance="?android:textAppearanceListItem"
+    android:textColor="@color/contact_list_name_text_color"/>
diff --git a/res/layout/structured_name_editor_view.xml b/res/layout/structured_name_editor_view.xml
index 830f4d8..f5b2a67 100644
--- a/res/layout/structured_name_editor_view.xml
+++ b/res/layout/structured_name_editor_view.xml
@@ -31,7 +31,7 @@
 
     <ImageView
         android:id="@+id/kind_icon"
-        android:src="@drawable/ic_person_black_24dp"
+        android:src="@drawable/quantum_ic_person_vd_theme_24"
         android:contentDescription="@string/header_name_entry"
         style="@style/EditKindIconStyle"/>
 
diff --git a/res/layout/take_a_photo_button.xml b/res/layout/take_a_photo_button.xml
deleted file mode 100644
index b837e85..0000000
--- a/res/layout/take_a_photo_button.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="@dimen/photo_picker_item_ideal_width"
-    android:layout_height="@dimen/photo_picker_item_ideal_width"
-    android:background="@color/google_grey_600"
-    android:orientation="vertical">
-
-    <ImageView
-        android:id="@+id/image"
-        android:paddingTop="48dp"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:src="@drawable/ic_photo_camera_white_24dp"
-        android:layout_gravity="center_horizontal"/>
-
-    <TextView
-        android:id="@+id/textLabel"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_centerInParent="true"
-        android:singleLine="true"
-        android:text="@string/take_a_photo_button"
-        android:textSize="14sp"
-        android:textColor="@color/photo_action_button_color"
-        android:paddingTop="9dp"
-        android:paddingBottom="35dp"
-        android:layout_gravity="center_horizontal"/>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/text_fields_editor_view.xml b/res/layout/text_fields_editor_view.xml
index dc3a312..326977d 100644
--- a/res/layout/text_fields_editor_view.xml
+++ b/res/layout/text_fields_editor_view.xml
@@ -43,6 +43,6 @@
     <include
         android:id="@+id/delete_button_container"
         layout="@layout/edit_delete_button"
-        android:visibility="gone" />
+        android:visibility="invisible" />
 
 </com.android.contacts.editor.TextFieldsEditorView>
diff --git a/res/layout/user_profile_header.xml b/res/layout/user_profile_header.xml
deleted file mode 100644
index 828f08c..0000000
--- a/res/layout/user_profile_header.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/user_profile_header"
-    android:orientation="horizontal"
-    android:layout_width="match_parent"
-    android:layout_height="?attr/list_item_header_height"
-    android:paddingLeft="?attr/list_item_padding_left"
-    android:paddingRight="?attr/list_item_padding_right"
-    android:paddingStart="?attr/list_item_padding_left"
-    android:paddingEnd="?attr/list_item_padding_right"
-    android:paddingTop="4dp"
-    android:paddingBottom="8dp" >
-
-    <TextView android:id="@+id/profile_title"
-        android:layout_width="@dimen/contact_list_section_header_width"
-        android:layout_height="?android:attr/listPreferredItemHeight"
-        android:singleLine="true"
-        android:text="@string/user_profile_contacts_list_header"
-        android:ellipsize="end"
-        android:textAppearance="@style/SectionHeaderStyle"
-        android:gravity="start|center_vertical" />
-
-    <Button android:id="@+id/user_profile_button"
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="?android:attr/listPreferredItemHeight"
-        android:paddingStart="?attr/list_item_padding_left"
-        android:paddingEnd="?attr/list_item_padding_right"
-        android:background="?android:attr/selectableItemBackground"
-        android:singleLine="true"
-        android:text="@string/profile_display_name"
-        android:ellipsize="end"
-        android:gravity="start|center_vertical"
-        android:textAppearance="?android:attr/textAppearanceMedium" />
-
-</LinearLayout>
diff --git a/res/menu/edit_contact.xml b/res/menu/edit_contact.xml
index 256edb6..039c657 100644
--- a/res/menu/edit_contact.xml
+++ b/res/menu/edit_contact.xml
@@ -14,11 +14,12 @@
      limitations under the License.
 -->
 
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
     <item
         android:id="@+id/menu_save"
-        android:showAsAction="always"
-        android:icon="@drawable/ic_done_wht_24dp"
+        app:showAsAction="always"
+        app:actionLayout="@layout/editor_save_button"
         android:title="@string/menu_save" />
 
     <item
@@ -34,15 +35,6 @@
         android:title="@string/menu_deleteContact" />
 
     <item
-        android:id="@+id/menu_set_ringtone"
-        android:title="@string/menu_set_ring_tone" />
-
-    <item
-        android:id="@+id/menu_send_to_voicemail"
-        android:checkable="true"
-        android:title="@string/menu_redirect_calls_to_vm" />
-
-    <item
         android:id="@+id/menu_help"
         android:title="@string/menu_help" />
 </menu>
diff --git a/res/menu/edit_contact_photo.xml b/res/menu/edit_contact_photo.xml
deleted file mode 100644
index 725ea8b..0000000
--- a/res/menu/edit_contact_photo.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 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.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-            android:id="@+id/menu_photo"
-            android:showAsAction="always"
-            android:icon="@drawable/ic_photo_camera_white_24dp"
-            android:title="@string/menu_change_photo"/>
-</menu>
diff --git a/res/menu/edit_group.xml b/res/menu/edit_group.xml
deleted file mode 100644
index a3387ca..0000000
--- a/res/menu/edit_group.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_discard"
-        android:alphabeticShortcut="q"
-        android:title="@string/menu_discard"
-        android:showAsAction="withText" />
-</menu>
diff --git a/res/menu/group_member_picker.xml b/res/menu/group_member_picker.xml
new file mode 100644
index 0000000..2dd1990
--- /dev/null
+++ b/res/menu/group_member_picker.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:contacts="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/menu_select"
+        android:title="@string/menu_selectForGroup"
+        contacts:showAsAction="never" />
+
+</menu>
diff --git a/res/menu/group_source.xml b/res/menu/group_source.xml
deleted file mode 100644
index 6d1af2d..0000000
--- a/res/menu/group_source.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_group_source"
-        android:showAsAction="always" />
-</menu>
diff --git a/res/menu/items_multi_select.xml b/res/menu/items_multi_select.xml
new file mode 100644
index 0000000..5bb39d4
--- /dev/null
+++ b/res/menu/items_multi_select.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+    <item
+        app:actionLayout="@layout/multi_select_send_button"
+        app:showAsAction="always"
+        android:id="@+id/menu_send"
+        android:title="@string/send_to_selection" />
+</menu>
\ No newline at end of file
diff --git a/res/menu/people_options.xml b/res/menu/people_options.xml
index dde404c..5fb0f2e 100644
--- a/res/menu/people_options.xml
+++ b/res/menu/people_options.xml
@@ -13,40 +13,13 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+      xmlns:contacts="http://schemas.android.com/apk/res-auto">
     <item
         android:id="@+id/menu_search"
-        android:icon="@drawable/ic_ab_search"
-        android:title="@string/menu_search"
-        android:showAsAction="ifRoom" />
-
-    <item
-        android:id="@+id/menu_contacts_filter"
-        android:title="@string/menu_contacts_filter" />
-
-    <item
-        android:id="@+id/menu_import_export"
-        android:title="@string/menu_import_export" />
-
-    <item
-        android:id="@+id/menu_clear_frequents"
-        android:title="@string/menu_clear_frequents" />
-
-    <item
-        android:id="@+id/menu_blocked_numbers"
-        android:title="@string/menu_blocked_numbers"/>
-
-    <item
-        android:id="@+id/menu_accounts"
-        android:title="@string/menu_accounts" />
-
-    <item
-        android:id="@+id/menu_settings"
-        android:title="@string/menu_settings" />
-
-    <item
-        android:id="@+id/menu_help"
-        android:title="@string/menu_help" />
+        android:icon="@drawable/quantum_ic_search_vd_theme_24"
+        android:title="@string/hint_findContacts"
+        contacts:showAsAction="ifRoom" />
 
     <item
         android:id="@+id/export_database"
@@ -55,15 +28,21 @@
         android:showAsAction="never" />
 
     <item
-        android:id="@+id/menu_join"
-        android:title="@string/menu_joinAggregate" />
+        android:id="@+id/menu_share"
+        android:icon="@drawable/quantum_ic_share_vd_theme_24"
+        android:title="@string/menu_share"
+        contacts:showAsAction="ifRoom"/>
 
     <item
         android:id="@+id/menu_delete"
-        android:title="@string/menu_deleteContact" />
+        android:icon="@drawable/quantum_ic_delete_vd_theme_24"
+        android:title="@string/menu_deleteContact"
+        contacts:showAsAction="ifRoom"/>
 
     <item
-        android:id="@+id/menu_share"
-        android:title="@string/menu_share" />
+        android:id="@+id/menu_join"
+        android:icon="@drawable/quantum_ic_link_vd_theme_24"
+        android:title="@string/menu_joinAggregate"
+        contacts:showAsAction="ifRoom"/>
 
 </menu>
diff --git a/res/menu/quickcontact.xml b/res/menu/quickcontact.xml
index 6cfe053..7d87708 100644
--- a/res/menu/quickcontact.xml
+++ b/res/menu/quickcontact.xml
@@ -26,6 +26,14 @@
         android:showAsAction="always" />
 
     <item
+        android:id="@+id/menu_join"
+        android:title="@string/menu_joinAggregate" />
+
+    <item
+        android:id="@+id/menu_linked_contacts"
+        android:title="@string/menu_linkedContacts" />
+
+    <item
         android:id="@+id/menu_delete"
         android:title="@string/menu_deleteContact" />
 
@@ -39,6 +47,14 @@
         android:title="@string/menu_create_contact_shortcut" />
 
     <item
+        android:id="@+id/menu_set_ringtone"
+        android:title="@string/menu_set_ring_tone" />
+
+    <item
+        android:id="@+id/menu_send_to_voicemail"
+        android:title="@string/menu_redirect_calls_to_vm"/>
+
+    <item
         android:id="@+id/menu_help"
         android:title="@string/menu_help" />
 </menu>
diff --git a/res/menu/search_menu.xml b/res/menu/search_menu.xml
index 355442e..bf4b5dd 100644
--- a/res/menu/search_menu.xml
+++ b/res/menu/search_menu.xml
@@ -13,10 +13,11 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:contacts="http://schemas.android.com/apk/res-auto">
     <item
         android:id="@+id/menu_search"
-        android:icon="@drawable/ic_ab_search"
-        android:title="@string/menu_search"
-        android:showAsAction="always" />
+        android:icon="@drawable/quantum_ic_search_vd_theme_24"
+        android:title="@string/hint_findContacts"
+        contacts:showAsAction="always" />
 </menu>
diff --git a/res/menu/star.xml b/res/menu/star.xml
deleted file mode 100644
index 904adbf..0000000
--- a/res/menu/star.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_star"
-        android:showAsAction="always" />
-</menu>
diff --git a/res/menu/view_contact.xml b/res/menu/view_contact.xml
deleted file mode 100644
index 8c36924..0000000
--- a/res/menu/view_contact.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_edit"
-        android:title="@string/menu_editContact"
-        android:alphabeticShortcut="e" />
-
-    <item
-        android:id="@+id/menu_share"
-        android:title="@string/menu_share"
-        android:alphabeticShortcut="s" />
-
-    <item
-        android:id="@+id/menu_delete"
-        android:title="@string/menu_deleteContact" />
-
-    <item
-        android:id="@+id/menu_set_ringtone"
-        android:title="@string/menu_set_ring_tone" />
-
-    <item
-        android:id="@+id/menu_send_to_voicemail"
-        android:checkable="true"
-        android:title="@string/menu_redirect_calls_to_vm" />
-
-    <item
-        android:id="@+id/menu_create_contact_shortcut"
-        android:title="@string/menu_create_contact_shortcut" />
-</menu>
diff --git a/res/menu/view_group.xml b/res/menu/view_group.xml
index 669f401..ce49c92 100644
--- a/res/menu/view_group.xml
+++ b/res/menu/view_group.xml
@@ -14,13 +14,37 @@
      limitations under the License.
 -->
 
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:contacts="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/menu_add"
+        android:icon="@drawable/quantum_ic_person_add_vd_theme_24"
+        android:title="@string/menu_addToGroup"
+        contacts:showAsAction="ifRoom" />
+
+    <item
+        android:id="@+id/menu_multi_send_email"
+        android:title="@string/menu_sendEmailOption" />
+
+    <item
+        android:id="@+id/menu_multi_send_message"
+        android:title="@string/menu_sendMessageOption" />
+
     <item
         android:id="@+id/menu_edit_group"
-        android:title="@string/menu_editGroup"
-        android:alphabeticShortcut="e" />
+        android:icon="@drawable/quantum_ic_create_vd_theme_24"
+        android:title="@string/menu_editGroup" />
+
+    <item
+        android:id="@+id/menu_rename_group"
+        android:title="@string/menu_renameGroup"/>
 
     <item
         android:id="@+id/menu_delete_group"
         android:title="@string/menu_deleteGroup" />
+
+    <item
+        android:id="@+id/menu_remove_from_group"
+        android:title="@string/menu_removeFromGroup" />
 </menu>
diff --git a/res/mipmap-anydpi-v26/ic_contacts_launcher.xml b/res/mipmap-anydpi-v26/ic_contacts_launcher.xml
new file mode 100644
index 0000000..784f6e3
--- /dev/null
+++ b/res/mipmap-anydpi-v26/ic_contacts_launcher.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@color/ic_contacts_launcher_background"/>
+    <foreground android:drawable="@mipmap/ic_contacts_launcher_foreground"/>
+</adaptive-icon>
\ No newline at end of file
diff --git a/res/mipmap-hdpi/ic_contacts_launcher.png b/res/mipmap-hdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..0fd1492
--- /dev/null
+++ b/res/mipmap-hdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-hdpi/ic_contacts_launcher_foreground.png b/res/mipmap-hdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..8088777
--- /dev/null
+++ b/res/mipmap-hdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_contacts_launcher.png b/res/mipmap-mdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..e23930b
--- /dev/null
+++ b/res/mipmap-mdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_contacts_launcher_foreground.png b/res/mipmap-mdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..abea159
--- /dev/null
+++ b/res/mipmap-mdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_contacts_launcher.png b/res/mipmap-xhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..aff0f31
--- /dev/null
+++ b/res/mipmap-xhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..1fb6752
--- /dev/null
+++ b/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_contacts_launcher.png b/res/mipmap-xxhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..9cd2ebe
--- /dev/null
+++ b/res/mipmap-xxhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..f1be7b1
--- /dev/null
+++ b/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_contacts_launcher.png b/res/mipmap-xxxhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..74c4179
--- /dev/null
+++ b/res/mipmap-xxxhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..4b1a4b4
--- /dev/null
+++ b/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 869c720..f814324 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakte"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakte"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Bekyk kontak"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Wysig kontak"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakte"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Voeg kontak by"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontak"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direk skakel"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direkte boodskap"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Kies \'n kontakkortpad"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Kies \'n nommer om te bel"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Kies \'n nommer om te stuur"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Kies kontak"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Voeg by kontakte"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kies \'n kontak"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Kies"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Skep nuwe kontak"</string>
-    <string name="starredList" msgid="4817256136413959463">"Gester"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Gereeld"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Gunstelinge"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontakbesonderhede"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Redigeer kontak"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Skep kontak"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Redigeer groep"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Skep groep"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Meer oor"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Opdaterings"</string>
     <string name="searchHint" msgid="8482945356247760701">"Deursoek kontakte"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Bekyk kontak"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Voeg by gunstelinge"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Verwyder van gunstelinge"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Verwyder uit gunstelinge"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Redigeer"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Vee uit"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Verander foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Plaas op tuisskerm"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Bel kontak"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Teks - kontak"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Skep kortpad"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Verdeel"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Redigeer"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Vee uit"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Voeg kontak by"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Voeg groep by"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Verwyder kontakte"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Hernoem etiket"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Vee etiket uit"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Voeg kontak by"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Kies kontakte"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Voeg kontakte by"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Verwyder van etiket"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Skep etiket"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Verdeel hierdie kontak in veelvuldige kontakte?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Verdeel"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Wil jy graag die veranderinge wat jy reeds gemaak het, stoor en hierdie kontak in veelvuldige kontakte verdeel?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Stoor en verdeel"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Wil jy graag die veranderinge wat jy reeds aangebring het, stoor en koppel aan die kontak wat gekies is?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Stoor en koppel"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Voeg saam"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Koppel tans"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Ontkoppel tans"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Koppel"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Bekyk gekoppelde kontakte"</string>
     <string name="menu_save" msgid="1727844363591825909">"Stoor"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Skakel kontakte"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Koppel kontakte"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Kies die kontak wat jy aan <xliff:g id="NAME">%s</xliff:g> wil skakel:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Wys alle kontakte"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Voorgestelde kontakte"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Alle kontakte"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> geskakel"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakte is saamgevoeg"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> uitgevee"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> en <xliff:g id="NAME_1">%2$s</xliff:g> uitgevee"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g> … uitgevee"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Kontakte is uitgevee</item>
       <item quantity="one">Kontak is uitgevee</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakte</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontak</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakte · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontak · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Vanaf Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Vanaf <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Stel luitoon op"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Alle oproepe na stempos"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakte van jou leesalleen-rekeninge af kan nie uitgevee word nie, maar hulle kan versteek word."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Versteek"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Die kontak wat uitgevee gaan word, bevat besonderhede van veelvuldige rekeninge af. Besonderhede van leesalleen-rekeninge af sal versteek word, nie uitgevee word nie."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Jy moet minstens twee kontakte kies om hulle saam te voeg."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Koppel gekose kontakte?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Koppel"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Roete na stemboodskap"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Onroeteer na stemboodskap"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Hierdie kontak is leesalleen. Dit kan nie uitgevee word nie, maar jy kan dit versteek."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Versteek kontak"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Leesalleen-rekeninge in hierdie kontak sal versteek word, nie uitgevee nie."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Vee hierdie kontak uit?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Vee gekose kontakte uit?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakte van jou leesalleen-rekeninge af kan nie uitgevee word nie, maar hulle kan versteek word."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"As jy hierdie kontak uitvee, sal dit besonderhede van veelvuldige rekeninge af uitvee."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Vee hierdie kontak uit?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Vee uit"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Verwerp wysigings"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Die kontak bestaan ​​nie."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontak is by Tuisskerm gevoeg."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> is by Tuisskerm gevoeg."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Skep nuwe kontak"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Skep nuwe kontak"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisasie"</item>
-    <item msgid="7196592230748086755">"Let wel"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Geen prente is op die tablet beskikbaar nie."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Geen prente is beskikbaar op die foon nie."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Geen prente is beskikbaar op die toestel nie."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakfoto"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Gepasmaakte etiketnaam"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Stuur oproepe direk na stemboodskap"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Verwyder foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Geen kontakte"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Geen groepe nie."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Jy het \'n rekening nodig om groepe te skep."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Geen mense in hierdie groep nie."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Om \'n paar by te voeg, wysig die groep."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Stoor tans kontak..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Jou kontaktelys is leeg"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Geen kontakte met hierdie etiket nie"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Geen kontakte in hierdie rekening nie"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Jou kontaktelys is leeg"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> is gestoor"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontak gestoor"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontakte is ontkoppel"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kon nie kontakveranderinge stoor nie."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Kon nie kontak ontkoppel nie."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kon nie kontak skakel nie."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Kon nie kontak stoor nie."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Kon nie kontakfotoveranderings stoor nie."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Groep gestoor."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Kon nie groepsveranderinge stoor nie."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakte met foonnommers</item>
-      <item quantity="one">1 kontak met foonnommer</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Geen kontakte met foonnommers nie"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> gevind</item>
-      <item quantity="one">1 gevind</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Kon nie kontakveranderinge stoor nie"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Kon nie kontak ontkoppel nie"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kon nie kontak skakel nie"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Kon nie kontak stoor nie"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Kon nie kontakfotoveranderinge stoor nie"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Kon nie etiket laai nie"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiket is uitgevee"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiket geskep"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Kan nie etiket skep nie"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiket opgedateer"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Verwyder van etiket"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"By etiket gevoeg"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Kon nie etiketveranderinge stoor nie"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Daardie etiket bestaan reeds."</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Sommige kontakte het nie e-pos nie."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Sommige kontakte het nie foonnommers nie."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Stuur e-pos"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Stuur boodskap"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Kies kontakte"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Stuur"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Geen kontakte nie"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> gevind</item>
-      <item quantity="one">1 gevind</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Alles"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Gunstelinge"</string>
-    <string name="callBack" msgid="5498224409038809224">"Bel terug"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Bel weer"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Bel terug"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Voeg \"<xliff:g id="EMAIL">%s</xliff:g>\" by kontakte?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kontakfoto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> van <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakte"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Name van jou kontakte"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Geen program is gevind om hierdie aksie te hanteer nie."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik om na die vorige skerm terug te keer"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Voeg foonnommer by"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Voeg e-pos by"</string>
     <string name="missing_app" msgid="1466111003546611387">"Geen program is gevind om hierdie handeling te behartig nie."</string>
     <string name="menu_share" msgid="943789700636542260">"Deel"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Voeg by kontakte"</string>
-    <string name="share_via" msgid="563121028023030093">"Deel kontak met"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Skep groep onder rekening"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Voeg by"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Deel kontakte via</item>
+      <item quantity="one">Deel kontak via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Kies rekening"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Skep etiket"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Hernoem etiket"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etiketnaam"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Etiketnaam"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Stemklets"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videoklets"</string>
-    <string name="connections" msgid="8098440723172028350">"Skakelpunte"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Voeg skakelpunt by"</string>
-    <string name="recent" msgid="2659189233141493004">"Onlangs"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Onlangse opdaterings"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontak"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-rekening"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Nie redigeerbaar vanuit hierdie program nie."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Nie redigeerbaar op hierdie toestel nie"</string>
     <string name="take_photo" msgid="7496128293167402354">"Neem foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Neem nuwe foto"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Kies foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Kies nuwe foto"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaklys word opgedateer."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Soek tans…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Wys gekose"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Wys alle"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Kies alle"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Ontkies almal"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Voeg nuwe by"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Voeg organisasie by"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Groepnaam"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Verander"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primêre foto"</string>
-    <string name="description_star" msgid="2605854427360036550">"gunsteling"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Redigeer kontak"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Skakel die huidige kontak aan die geselekteerde kontak?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiket"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Kanselleer"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Terug"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"maak toe"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Wissel na redigering van die gekose kontak? Inligting wat jy tot dusver ingevoer het, sal gekopieer word."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopieer na My kontakte"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Voeg by My kontakte"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Gids <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Gepasmaak"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Instellings"</string>
     <string name="menu_settings" msgid="377929915873428211">"Instellings"</string>
     <string name="menu_help" msgid="1680178646764069976">"Hulp en terugvoer"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Vertoonopsies"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Foonnommer"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Voeg by kontakte"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Voeg by kontakte"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Maak toe"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Sluit jaar in"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontak"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Laai tans…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Skep \'n nuwe kontak"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Voeg rekening by"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Voer kontakte in"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Skep nuwe groep"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Skep nuwe groep"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> groepe</item>
-      <item quantity="one">1 groep</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Verwyder die groep \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontakte self sal nie verwyder word nie.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> mense vanaf <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoon vanaf <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> mense</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoon</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Voer in"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Skep nuwe …"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Verwyder die etiket \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontakte self sal nie verwyder word nie.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Voer kontaknaam in voordat jy dit aan \'n ander kontak skakel."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopieer na knipbord"</string>
     <string name="set_default" msgid="4417505153468300351">"Stel verstek op"</string>
     <string name="clear_default" msgid="7193185801596678067">"Vee verstek uit"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Teks gekopieer"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Verwerp jou veranderings?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Gooi weg"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Stel my profiel op"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Voer persoon se naam in"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Groep se naam"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Ignoreer veranderinge?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Gooi weg"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Kanselleer"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Gooi pasmakings weg?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Deursoek kontakte"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Verwyder kontakte"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"My plaaslike profiel"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"My <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>profiel"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Vertoon alle kontakte"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakte werk beter met \'n Google-rekening.\n\n• Verkry toegang vanaf enige webblaaier.\n• Rugsteun jou kontakte veilig."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Hou jou kontakte veilig, selfs al verloor jy jou selfoon: sinkroniseer met \'n aanlyn diens."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Voeg \'n rekening by"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Jou nuwe kontak sal nie gerugsteun word nie. Voeg \'n rekening by wat kontakte aanlyn rugsteun?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Neem \'n oomblik om \'n rekening by te voeg wat jou kontakte na Google sal rugsteun."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nuwe kontakte sal gestoor word in <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Kies \'n verstekrekening vir nuwe kontakte:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Voeg nuwe kontak by"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Skep nuwe kontak"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Wysig kontak"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Hou plaaslik"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Slegs kyk"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Kies kontakte om te wysig"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Gekoppelde kontakte"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Voeg by"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Ontkoppel"</string>
     <string name="add_account" msgid="8201790677994503186">"Voeg rekening by"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Voeg nuwe rekening by"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Voer databasislêers uit"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"voeg nuwe kontak by"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Skep nuwe kontak"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Sien meer"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Sien minder"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Sien alles"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Onlangs"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Meer oor"</string>
-    <string name="send_message" msgid="8938418965550543196">"Stuur boodskap"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Skep tans \'n persoonlike kopie …"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Gister"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Skep tans \'n persoonlike kopie..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Môre"</string>
     <string name="today" msgid="8041090779381781781">"Vandag"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Vandag om <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Môre om <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Titellose geleentheid)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Stel"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Kitsboodskappe"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Webwerf"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Geleentheid"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Verwantskap"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Rekening"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Naam"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-pos"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Foon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Klik om kontakredakteur uit te vou."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Klik om kontakredakteur in te vou."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"rigtingaanwysings na ligging"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"onlangse SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klik om te reageer"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"onlangse SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik om te reageer"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"inkomend"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"uitgaande"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"gemis"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"onlangse oproep. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klik om terug te bel"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"onlangse oproep. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik om terug te bel"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Jy: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts werk beter as jy die persoon se Hangouts-identifiseerder in die e-posveld of foonveld invoer."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Meer velde"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Verander foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Kon nie redigeer oopmaak nie."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Stoor na"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Stoor tans na <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dubbeltik om \'n ander rekening te kies."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Geskakelde kontakte (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Geskakelde kontak</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> geskakelde kontakte"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Meer velde"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Verander kontakfoto"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Voeg kontakfoto by"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontakfoto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Kon nie redigeerder oopmaak nie."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Stoor tans na"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontakinligting vanaf <xliff:g id="ACCOUNT">%s</xliff:g> kan nie gewysig word nie"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"KOPPEL KONTAKTE"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"KANSELLEER"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> moontlike duplikate</item>
-      <item quantity="one">1 moontlike duplikaat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> gekoppelde kontakte</item>
-      <item quantity="one">1 gekoppelde kontak</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Hierdie kontak"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Moontlike duplikate"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Hierdie kontakte kan dalk dieselfde persoon wees. Jy kan hulle as \'n enkele kontak saamvoeg."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Saamgevoegde kontakte"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Van jou rekeninge af"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Neem \'n foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Alle foto\'s"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Kies foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Van <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Vee <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> uit"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Hierdie kontakte kan dalk dieselfde persoon wees. Jy kan hulle as \'n enkele kontak koppel."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Vee <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> uit"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Vee <xliff:g id="DATA_KIND">%s</xliff:g> uit"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto van <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> af is nie gemerk nie"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto van <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> af is gemerk"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto van onbekende rekening af is nie gemerk nie"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto van onbekende rekening af is gemerk"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kontaklys word tans opgedateer om die taalverandering te weerspieël.\n\nWag asseblief..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Voeg nommer by"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokkeer nommer"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Gee nommer of soek in kontakte"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Deblokkeer <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKKEER"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokkeer <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKKEER"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> is geblokkeer"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> is gedeblokkeer"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is ongeldig."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Oproepblokkering is tydelik af"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Oproepblokkering is gedeaktiveer omdat jy die afgelope 48 uur nooddienste van hierdie foon af gekontak het. Dit sal outomaties heraktiveer word sodra die 48-uurtydperk verstryk."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Voer in"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Bekyk nommers"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Voeg nommer by"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Oproepblokkering is vir 48 uur gedeaktiveer"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Gedeaktiveer omdat \'n noodoproep gemaak is."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ONTDOEN"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is reeds geblokkeer."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokkeer nommer"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Kontakbesonderhede van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Kon nie invoer nie"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Voer nommers in"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Skakel aan"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Voorstelle"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nuut"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Maak navigasielaai oop"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Maak navigasielaai toe"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g>-etiket"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etikette"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Rekeninge"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Sien jou geskiedenis saam"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Geleenthede en boodskappe"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Geleenthede"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Boodskappe"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Voorstelle"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Hou jou kontakte georganiseerd en nuttig"</string>
+    <string name="undo" msgid="1425165101664071422">"Ontdoen"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Bel <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Bel tuis"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Bel selfoon"</string>
+    <string name="call_work" msgid="5328785911463744028">"Bel werk"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Bel werkfaks"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Bel huisfaks"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Bel roeper"</string>
+    <string name="call_other" msgid="8563753966926932052">"Bel"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Bel - terugbel"</string>
+    <string name="call_car" msgid="3280537320306436445">"Bel motor"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Bel maatskappy, hoof"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Bel ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Bel hoof"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Bel faks"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Bel radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Bel teleks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Oproep-TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Bel werkselfoon"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Bel werkroeper"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Bel <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Bel MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Bel)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"SMS <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Teks - tuis"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Teks - selfoon"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Teks - werk"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Teks - werkfaks"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Teks - huisfaks"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Teks - roeper"</string>
+    <string name="sms_other" msgid="806127844607642331">"Teks"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Teks-terugbel"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Teks - motor"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Teks - maatskappy, hoof"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Teks - ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Teks - hoof"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Teksfaks"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Teks - radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Teks - teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Teks - TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Teks - werkselfoon"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Teks - werkroeper"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Teks <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Teks - MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Boodskap)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Maak video-oproep"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Vee dikwels-gebruikte kontakte uit?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Jy gaan die lys van dikwels gebruikte kontakte in die Kontakte- en Foon-program uitvee en e-posprogramme dwing om jou adresvoorkeure van nuuts af te leer."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Vee tans dikwels-gebruikte kontakte uit..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Beskikbaar"</string>
+    <string name="status_away" msgid="1838861100379804730">"Weg"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Besig"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Ander"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Gids"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Werkgids"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Alle kontakte"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Vinnige kontak vir <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Geen naam nie)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Gereeld gekontak"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Alle kontakte met telefoonnommers"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Werkprofielkontakte"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Sien opdaterings"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Toestel"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Naam"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Bynaam"</string>
+    <string name="name_given" msgid="4280790853455320619">"Voornaam"</string>
+    <string name="name_family" msgid="7466985689626017037">"Van"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Naamvoorvoegsel"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Middelnaam"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Naamagtervoegsel"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetiese naam"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetiese voornaam"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetiese middelnaam"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetiese van"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Foon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-pos"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adres"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisasie"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Verhouding"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Spesiale datum"</string>
+    <string name="sms" msgid="1756857139634224222">"Teksboodskap"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adres"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Maatskappy"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titel"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notas"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Gepasmaak"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Webwerf"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etikette"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-postuis"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-pos - mobiel"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-pos - werk"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-pos"</string>
+    <string name="email_custom" msgid="5536404237099078802">"E-pos <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-pos"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Straat"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Stad"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Deelstaat"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Poskode"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Land"</string>
+    <string name="map_home" msgid="1243547733423343982">"Sien huisadres"</string>
+    <string name="map_work" msgid="1360474076921878088">"Sien werkadres"</string>
+    <string name="map_other" msgid="3817820803587012641">"Sien adres"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Bekyk <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-adres"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Klets met AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Klets met Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Klets met Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Klets met Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Klets met QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Klets met Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Klets met ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Klets met Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Klets"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"vee uit"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Wys nog naamvelde"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Vou naamvelde in"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Wys nog fonetiese naamvelde"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Vou fonetiese naamvelde in"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Vou uit"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Vou in"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Uitgevou"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Ingevou"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Alle kontakte"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Gester"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Pasmaak"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontak"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Alle ander kontakte"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Alle kontakte"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Verwyder sinkroniseergroep"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Voeg sinkroniseergroep by"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Meer groepe..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"As jy \'<xliff:g id="GROUP">%s</xliff:g>\' uit sinkronisering verwyder, sal dit ook enige ongegroepeerde kontakte uit sinkronisering verwyder."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Stoor tans vertoonopsies..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Gepasmaakte aansig"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Stoor ingevoerde kontakte na:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-kaart"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kontakte</item>
+      <item quantity="one">1 kontak</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakte • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontak • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf-lêer"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Niks om in te voer nie"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Voer kontakte vanaf vCard in?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Kanselleer invoer van <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Kanselleer uitvoer van <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Kon nie vCard invoer/uitvoer kanselleer nie"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Onbekende fout"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Kon nie \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" open nie: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Kon nie die uitvoerder aktiveer nie: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Daar is geen uitvoerbare kontak nie."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Jy het \'n vereiste toestemming gedeaktiveer."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"\'n Fout het voorgekom tydens uitvoer: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"T/A-fout"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nie genoeg geheue nie. Die lêer is dalk te groot."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Die formaat word nie ondersteun nie."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Het <xliff:g id="FILENAME">%s</xliff:g> klaar uitgevoer."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Het kontakte klaar uitgevoer."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontakte is klaar uitgevoer; klik die kennisgewing om kontakte te deel."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Tik om kontakte te deel."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Uitvoer van <xliff:g id="FILENAME">%s</xliff:g> is gekanselleer."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Voer kontakdata uit"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontakdata word tans uitgevoer."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Kon nie databasis-inligting kry nie"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Daar is geen uitvoerbare kontakte nie."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Die vCard-opsteller het nie behoorlik begin nie."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Kon nie uitvoer nie"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Die kontakdata is nie uitgevoer nie.\nRede: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Voer <xliff:g id="NAME">%s</xliff:g> in"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Kon nie  vCard-data lees nie"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Klaar met invoer van vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Invoer van <xliff:g id="FILENAME">%s</xliff:g> gekanselleer"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> sal binnekort ingevoer word."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Die lêer sal binnekort ingevoer word."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard-invoerversoek is verwerp. Probeer asseblief later weer."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakte sal binnekort uitgevoer word."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard-uitvoerversoek is verwerp. Probeer asseblief later."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontak"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Kas van vCard(s) na die die plaaslike tydelike stoor. Die werklike invoer sal binnekort begin."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Kon nie vCard invoer nie."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontak ontvang via NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Kas tans..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Voer <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> in: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Voer uit na .vcf-lêer"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Rangskik volgens"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetiese naam"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Wys altyd"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Versteek indien leeg"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Voornaam"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Van"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Naamformaat"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Voornaam eerste"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Van eerste"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Rekeninge"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Verstekrekening vir nuwe kontakte"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"My inligting"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Stel jou profiel op"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Meer oor Kontakte"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Deel gunstelingkontakte"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Deel alle kontakte"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kon nie kontakte deel nie."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Voer kontakte uit"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Voer kontakte in vanaf"</string>
+    <string name="share_error" msgid="948429331673358107">"Hierdie kontak kan nie gedeel word nie."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Daar is geen kontakte om te deel nie."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakte om te wys"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakte om te wys"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Pasmaak aansig"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Stoor"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Deursoek kontakte"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Gunstelinge"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Voer in"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Voer uit"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Geblokkeerde nommers"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"hou op soek"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Vee soektog uit"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Rekening"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Gebruik dit altyd vir oproepe"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Bel met \'n nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Tik \'n nota om saam met oproep te stuur …"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"STUUR EN BEL"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Bouweergawe"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Oopbronlisensies"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Lisensiebesonderhede vir oopbronsagteware"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Privaatheidsbeleid"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Diensbepalings"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Oopbronlisensies"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Kon nie die URL oopmaak nie."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> is gemerk"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> is nie gemerk nie"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Maak video-oproep"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Vee uit"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellips"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min. <xliff:g id="SECONDS">%2$s</xliff:g> s."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> uur <xliff:g id="MINUTES_1">%2$s</xliff:g> min. <xliff:g id="SECONDS">%3$s</xliff:g> sek."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Hierdie kortpad is gedeaktiveer."</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontak is verwyder"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Voer in"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Kies kontakte"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Geen kontakte op jou SIM-kaart nie"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontak bestaan reeds in jou lys"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-kontakte ingevoer</item>
+      <item quantity="one">1 SIM-kontak ingevoer</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kon nie SIM-kontakte invoer nie"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Voer in vanaf SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Kanselleer"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Outo-sinkronisering is af. Tik om aan te skakel."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Weier"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Rekeningsinkronisering is af. Tik om aan te skakel."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Skakel outosinkronisering aan?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Veranderinge wat jy aan alle programme en rekeninge maak, nie net Google Kontakte nie, sal tussen die web en jou toestelle op datum gehou word."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Skakel aan"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Geen verbinding nie"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Wys meer"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Klaar SIM-kaart ingevoer"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Kon nie invoer nie"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kon nie kontakte vanaf SIM-kaart invoer nie"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Voer tans SIM in"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 260f969..f712d43 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"ዕውቂያዎች"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"ዕውቂያዎች"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"ዕውቂያ ይመልከቱ"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"እውቂያን ያርትዑ"</string>
     <string name="contactsList" msgid="8661624236494819731">"እውቅያዎች"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"እውቅያ አክል"</string>
     <string name="shortcutContact" msgid="749243779392912958">"እውቅያ"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"ቀጥታ ደውል"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"ቀጥታ መልዕክት"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"የዕውቂያአቋራጭ  ምረጥ"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"ለመደወል ቁጥር ምረጥ"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"መልዕክትለመላክ ቁጥር ምረጥ"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"እውቂያ ምረጥ"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"ወደ ዕውቂያ አክል"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ዕውቅያ ምረጥ"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"ይምረጡ"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"አዲስ እውቂያ ይፍጠሩ"</string>
-    <string name="starredList" msgid="4817256136413959463">"ኮከብ የተደረገባቸው"</string>
-    <string name="frequentList" msgid="7154768136473953056">"ተደጋጋሚ"</string>
-    <string name="strequentList" msgid="5640192862059373511">"ተወዳጆች"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"የእውቅያ ዝርዝሮች"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"ዕውቅያ አርትዕ"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"ዕውቅያ ፍጠር"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"ቡድን አርትዕ"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"ቡድን ፍጠር"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"ስለ"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"ማዘመኛ"</string>
     <string name="searchHint" msgid="8482945356247760701">"ዕውቅያዎችን ፈልግ"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"ዕውቂያ ዕይ"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"ወደ ተወዳጅ አክል"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"ከተወዳጆች አስወግድ"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ከተወዳጆች ውስጥ ተወግዷል"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"አርትዕ"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"ሰርዝ"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"ፎቶ ለውጥ"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"መነሻ የማያ ገጽ ላይ አስቀምጥ"</string>
-    <string name="menu_call" msgid="3992595586042260618">"የጥሪ ዕውቂያ"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"ዕውቂያ ፃፍ"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"አቋራጭ ፍጠር"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"ግንኙነት አቋርጥ"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"አርትዕ"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"ሰርዝ"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"እውቅያ ያክሉ"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ቡድን ያክሉ"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"ዕውቂያዎችን ያስወግዱ"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"መሰየሚያውን ዳግም ሰይም"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"መሰየሚያውን ሰርዝ"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"እውቂያ ያክሉ"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"እውቂያዎች ምረጥ"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"እውቂያዎችን አክል"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"ከመሰየሚያ አስወግድ"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"መሰየሚያ ፍጠር"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"ይህ እውቂያ ከብዙ እውቂያዎች ጋር ያለውን ግንኙነት ይቋረጥ?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ግንኙነት አቋርጥ"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ቀድሞውኑ ያደረጉዋቸውን ለውጦች ማስቀመጥ እና ይህን እውቂያ ከብዙ እውቂያዎች ጋር የነበረውን ግንኙነት ማቋረጥ ይፈልጋሉ?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"አስቀምጥ እና ግንኙነቱን አቋርጥ"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"አስቀድመው ያደረጉዋቸውን ለውጦች ማስቀመጥ እና ከተመረጠው እውቂያ ጋር ማገናኘት ይፈልጋሉ?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"አስቀምጥ እና አገናኝ"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"በማገናኘት ላይ..."</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"በማለያየት ላይ..."</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"አገናኝ"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"የተገናኙ እውቂያዎችን ይመልከቱ"</string>
     <string name="menu_save" msgid="1727844363591825909">"አስቀምጥ"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ዕውቂያዎችን አገናኝ"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ከ<xliff:g id="NAME">%s</xliff:g> ጋር ሊያገናኙት የሚፈለጉት እውቂያ ይምረጡ፦"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"ሁሉንም ዕውቂያዎች አሳይ"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"አስተያየት የተሰጠባቸው እውቅያዎች"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ሁሉም እውቅያዎች"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ተገናኝቷል"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"ዕውቂያዎች ተገናኝተዋል"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> ተሰርዟል"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> እና<xliff:g id="NAME_1">%2$s</xliff:g> ተሰርዝዋል"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>፣ <xliff:g id="NAME_1">%2$s</xliff:g>፣ <xliff:g id="NAME_2">%3$s</xliff:g>… ተሰርዘዋል"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">እውቂያዎች ተሰርዘዋል</item>
       <item quantity="other">እውቂያዎች ተሰርዘዋል</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> እውቂያዎች</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> እውቂያዎች</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> እውቂያዎች · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> እውቂያዎች · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"ከGoogle"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"ከ<xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"የጥሪ ድምፅ አዘጋጅ"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ሁሉንም ጥሪዎች ወደ ድምፅ መልዕክት"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"ከተነባቢ-ብቻ መለያዎች እውቂያዎች ሊሰረዙ አይችሉም ሆኖም ግን ሊደበቁ ይችላሉ።"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"ደብቅ"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"የሚሰረዘው እውቂያ ከብዙ መለያዎች ላይ ዝርዝሮች አለው። ከተነባቢ-ብቻ መለያዎች የሆኑ ዝርዝሮች ይደበቃሉ፣ አይሰረዙም።"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"ማገናኘትን ለማከናወን ቢያንስ ሁለት እውቂያዎችን መምረጥ አለብዎት።"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"የተመረጡ እውቂያዎች ይገናኙ?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"አገናኝ"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"ወደ ድምጽ መልዕክት አስተላልፍ"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ወደ ድምጽ መልዕክት መተላለፍን አስቀር"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"ይህ እውቂያ ተበባቢ-ብቻ ነው። መሰረዝ አይችልም። ነገር ግን ሊደብቁት ይችላሉ።"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"እውቂያ ደብቅ"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"በዚህ እውቂያ ውስጥ ያሉ ተነባቢ-ብቻ መለያዎች ይደበቃሉ፣ ወይም ይሰረዛሉ።"</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"ይህ እውቂያ ይሰረዝ?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"የተመረጡ እውቂያዎች ይሰረዙ?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ከተነባቢ-ብቻ መለያዎች እውቂያዎች ሊሰረዙ አይችሉም ሆኖም ግን ሊደበቁ ይችላሉ።"</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ይህን እውቂያ መሰረዝ ከብዙ መለያዎች ውስጥ መረጃ ይሰርዛል።"</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"ይህ እውቂያ ይሰረዝ?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ሰርዝ"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"ለውጦችን ጣለው"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"ዕውቅያው የለም።"</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"እውቂያ ወደ መነሻ ማያ ገጽ ታክሏል።"</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ወደ መነሻ ማያ ገጽ ታክሏል።"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"አዲስ ዕውቂያ ፍጠር"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"አዲስ እውቂያ ፍጠር"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"መስርያ ቤት"</item>
-    <item msgid="7196592230748086755">"ማስታወሻ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"በጡባዊው ላይ ምንም ምስሎች የሉም።"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"በስልኩ ላይ ምንም ፎቶዎች የሉም።"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"በመሣሪያው ላይ ፎቶዎች የሉም።"</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"የዕውቂያ ፎቶ"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"ብጁ መሰየሚያ ስም"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ጥሪዎችን በቀጥታ ወደ ድምፅ መልዕክት ላክ"</string>
     <string name="removePhoto" msgid="4898105274130284565">"ፎቶ አስወግድ"</string>
-    <string name="noContacts" msgid="4955659076981974652">"እውቅያዎች የሉም"</string>
-    <string name="noGroups" msgid="8614664663561385253">"ምንም ቡድኖች የሉም።"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"ቡድኖች ለመፍጠር መለያ ያስፈልግሃል፡፡"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ምንም ሰዎች በዚህ ቡድን ውሰጥ፡፡"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"አንዳንድ ለማከል፣ ቡድኑን አርትዕ፡፡"</string>
-    <string name="savingContact" msgid="4075751076741924939">"ዕውቂያ በማስቀመጥ ላይ..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"የእውቂያዎች ዝርዝርዎ ባዶ ነው"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ይህ መሰየሚያ ያላቸው ምንም እውቂያዎች የሉም"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"በዚህ መለያ ውስጥ ምንም እውቂያዎች የሉም።"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"የእውቂያዎች ዝርዝርዎ ባዶ ነው"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> ተቀምጧል"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"ዕውቂያ ተቀምጧል"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"የእውቂያዎች ግንኙነት ተላቅቋል"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"የእውቂያ ለውጦች ማስቀመጥ አልተቻለም::"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Couldn\'t unlink contact."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"እውቂያውን ማገናኘት አልተቻለም።"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"እውቂያን ማስቀመጥ ላይ ስህተት።"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"የእውቂያ ፎቶ ለውጦችን ማስቀመጥ አልተቻለም።"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"ቡድን ተቀምጧል።"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"የቡድን ለውጦች ማስቀመጥ አልተቻለም::"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ዕውቂያዎች ከስልክ ቁጥሮች ጋር</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ዕውቂያዎች ከስልክ ቁጥሮች ጋር</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ከስልክ ቁጥር ጋር የሚታዩ ዕውቂያዎች የሉም"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ተገኝቷል</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ተገኝቷል</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"የእውቂያ ለውጦችን ማስቀመጥ አልተቻለም"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"እውቂያን ማላቀቅ አልተቻለም"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"እውቂያውን ማገናኘት አልተቻለም"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"እውቂያን ለማስቀመጥ ችግር አጋጥሟል"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"የእውቂያ ፎቶ ለውጦችን ማስቀመጥ አልተቻለም"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"መሰየሚያ መጫን አልተሳካም"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"መሰየሚያ ተሰርዟል"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"መሰየሚያ ተፈጥሯል"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"መለያ መፍጠር አልቻለም"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"መሰየሚያ ዘምኗል"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"ከመሰየሚያ ተወግዷል"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"ወደ ስያሜ ታክሏል"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"የመሰየሚያ ለውጦችን ማስቀመጥ አልተቻለም።"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ያ መሰየሚያ ቀድሞ አለ።"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"የተወሰኑ እውቂያዎች ኢሜይል የላቸውም።"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"የተወሰኑ እውቂያዎች የስልክ ቁጥር የላቸውም።"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ኢሜይል ላክ"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"መልዕክት ላክ"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"እውቅያዎችን ምረጥ"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"ላክ"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"እውቅያዎች የሉም"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ተገኝቷል</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ተገኝቷል</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"ሁሉም"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"ተወዳጆች"</string>
-    <string name="callBack" msgid="5498224409038809224">"የኋላ ጥሪ"</string>
-    <string name="callAgain" msgid="3197312117049874778">"እንደገና ደውል"</string>
-    <string name="returnCall" msgid="8171961914203617813">"ጥሪ መልስ"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"<xliff:g id="EMAIL">%s</xliff:g> ወደ እውቅያዎች ዝርዝር ይታከል"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"የዕውቂያ ፎቶ"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"ተጨማሪ"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> ከ <xliff:g id="TOTAL_NUMBER">%s</xliff:g> እውቂያዎች"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"የዕውቂያዎችዎ ስሞች"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ይህን እርምጃ ለማስተናገድ ምንም መተግበሪያ አልተገኘም፡፡"</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ወደ ቀዳሚው ማያ ገጽ ለመመለስ ጠቅ ያድርጉ"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"የስልክ ቁጥር ያክሉ"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"ኢሜይል ያክሉ"</string>
     <string name="missing_app" msgid="1466111003546611387">"ይህን እርምጃ የሚያከናውን ምንም መተግበሪያ አልተገኘም።"</string>
     <string name="menu_share" msgid="943789700636542260">"መጋሪያ"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"ወደ እውቂያዎች ያክሉ"</string>
-    <string name="share_via" msgid="563121028023030093">"ዕውቂያበ በኩል አጋራ"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"በመለያ ስር ቡድን ፍጠር"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"አክል"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">ዕውቂያ በማን በኩል ይጋራ</item>
+      <item quantity="other">ዕውቂያ በማን በኩል ይጋራ</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"መለያ ይምረጡ"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"መሰየሚያ ይፍጠሩ"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"መሰየሚያውን ዳግም ሰይም"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"የመሰየሚያው ስም"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"የመሰየሚያው ስም"</string>
     <string name="audio_chat" msgid="2535716629358298691">"የድምፅ ውይይት"</string>
     <string name="video_chat" msgid="1872255818640336072">"የቪዲዮ ውይይት"</string>
-    <string name="connections" msgid="8098440723172028350">"ተያያዦች"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"ተያያዥ አክል"</string>
-    <string name="recent" msgid="2659189233141493004">"የቅርብ ጊዜ"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"የቅርብ ጊዜ አዘምን"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> እውቅያ"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"የ<xliff:g id="SOURCE">%1$s</xliff:g> መለያ"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ከዚህ መተግበሪያ አርትዕ ሊደረግ አይችልም፡፡"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"በዚህ መሣሪያ ላይ አርትዕ መደረግ የሚችል አይደለም።"</string>
     <string name="take_photo" msgid="7496128293167402354">"ፎቶ አንሳ"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"አዲስ ፎቶ አንሳ"</string>
     <string name="pick_photo" msgid="2129509985223564942">"ፎቶ ምረጥ"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"አዲስ ፎቶ ይምረጡ"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"የዕውቂያ ዝርዝር ዘምኗል"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"በመፈለግ ላይ…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"የተመረጡትን አሳይ"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"ሁሉንም አሳይ"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"ሁሉንም ምረጥ"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"ሁሉንም አትምረጥ"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"አዲስ አክል"</string>
-    <string name="add_organization" msgid="7311893231158291197">"ድርጅት አክል"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ቀን"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"የቡድን ስም"</string>
-    <string name="change_photo" msgid="8530597935483526383">"ቀይር"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"ዋና ፎቶ"</string>
-    <string name="description_star" msgid="2605854427360036550">"ተወዳጅ"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"እውቅያ አርትዕ"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"የአሁኑ ዕውቂያ ከተመረጠው ዕውቂያ ጋር ይገናኝ?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"መሰየሚያ"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"ይቅር"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"ተመለስ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"ዝጋ"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"የተመረጠው ዕውቂያ ወደ አርትዕ ይቀየር? እስከ አሁን ያስገቡት መረጃ ይገለበጣል።"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"ወደ ዕውቂያዎቼ ቅዳ"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"ወደ እኔ ዕውቂያዎች አክል"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"ማውጫ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"ብጁ"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"ቅንብሮች"</string>
     <string name="menu_settings" msgid="377929915873428211">"ቅንብሮች"</string>
     <string name="menu_help" msgid="1680178646764069976">"እገዛ እና ግብረመልስ"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ማሳያ አማራጮች"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>፣ <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"ስልክ ቁጥር:"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"ወደ ዕውቂያዎች አክል"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"ወደ ዕውቂያዎች አክል"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"ዝጋ"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"ዓመት ያክሉ"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"እውቅያ"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"በመስቀል ላይ…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"አዲስ ዕውቂያ ፍጠር"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"መለያ አክል"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"እውቅያዎችን ከውጭ አስመጣ"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"አዲስ ቡድን ፍጠር"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"አዲስ ቡድን ፍጠር"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> ቡድኖች</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ቡድኖች</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\'<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\' ቡድን ይሰረዝ? (ዕውቂያዎች ራሳቸው አይሰረዙም።)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> ሰዎች ከ<xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> ሰዎች ከ<xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ሰዎች</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ሰዎች</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"አምጣ"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"አዲስ ፍጠር…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (መሰየሚያው ይሰረዝ? (ዕውቂያዎች ራሳቸው አይሰረዙም።)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"ሌላ ዕውቂያ ከማገናኘትዎ በፊት የዕውቂያ ስም ይተይቡ።"</string>
     <string name="copy_text" msgid="3257145021583508761">"ወደ ቅንጥብ ሰሌዳ ገልብጥ"</string>
     <string name="set_default" msgid="4417505153468300351">"ነባሪ አዘጋጅ"</string>
     <string name="clear_default" msgid="7193185801596678067">"ነባሪ አጽዳ"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"ፅሁፍ ገልብጧል"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ለውጦችዎ ይጣሉ?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"አስወግድ"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"መገለጫዬን አዘጋጅ"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"የግለሰቡን ስም ተይብ"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"የቡድኑ ስም"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"ለውጦች ይወገዱ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"አስወግድ"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"ተወው"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"ብጁዎች ይወገዱ?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"እውቅያዎችን ፈልግ"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"ዕውቂያዎችን ያስወግዱ"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"በአካባቢው ምንም መገለጫ የለም"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"የእኔ የ<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> መገለጫ"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ሁሉንም ዕውቂያዎች በማሳየት ላይ"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"ዕውቂያዎች በGoogle መለያ የተሻለ ይሰራሉ።\n\n• ከማንኛውም የድረ አሳሽ ላይ ይድረሱበት።\n• እውቂያዎችዎን ደህንነቱ በተጠበቀ ሁኔታ ምትክ ያስቀምጡ።"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"ስልክህ ቢጠፋብህ እንኳን  ዕውቂያዎችህን ደህንነታቸው እንደተጠበቀ እንዲቆዩ አድርግ ከመስመር ላይ አገልገሎት ጋር አመሳስለው::"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"መለያ አክል"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"አዲሱ  ዕውቅያ ምትክ አይቀመጥለትም:: በመስመር ላይ ዕውቅያዎች በምትክ የሚያስቀምጥ መለያ አክል?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"ለእውቂያዎችዎ ወደ Google ምትክ የሚያስቀምጥ መለያ ለማከል አንድ ደቂቃ ይውሰዱ።"</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"አዲስ እውቂያዎች ወደ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ይቀመጣሉ።"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ለአዲስ እውቂያዎች ነባሪ መለያን ይምረጡ፦"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"አዲስ እውቂያ ያክሉ"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"አዲስ እውቂያ ፍጠር"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"እውቂያ ያርትዑ"</string>
-    <string name="keep_local" msgid="1258761699192993322">"በአካባቢው አቆይ"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"ለእይታ ብቻ"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"አርትዕ ሊያደርጉ የሚፈልጉትን እውቂያ ይምረጡ"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"የተገናኙ ዕውቂያዎች"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"አክል"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"ግንኙነት አቋርጥ"</string>
     <string name="add_account" msgid="8201790677994503186">"መለያ አክል"</string>
     <string name="add_new_account" msgid="5748627740680940264">"አዲስ መለያ አክል"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"የውሂብ ጎታ ፋይሎችን ወደ ውጭ ላክ"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"አዲስ እውቂያ ያክሉ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"አዲስ እውቂያ ፍጠር"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ተጨማሪ ይመልከቱ"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ያነሰ ይመልከቱ"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ሁሉንም ይመልከቱ"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"የቅርብ ጊዜ"</string>
     <string name="about_card_title" msgid="2920942314212825637">"ስለ"</string>
-    <string name="send_message" msgid="8938418965550543196">"መልዕክት ላክ"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"የግል ቅጂ በመፍጠር ላይ..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"ትላንት"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"የግል ቅጂ በመፍጠር ላይ..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"ነገ"</string>
     <string name="today" msgid="8041090779381781781">"ዛሬ"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"ዛሬ <xliff:g id="TIME_INTERVAL">%s</xliff:g> ላይ"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ነገ <xliff:g id="TIME_INTERVAL">%s</xliff:g> ላይ"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>፣ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>፣ <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(ርዕስ-አልባ ክስተት)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"አዘጋጅ"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"ፈጣን መልዕክት"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"ድር ጣቢያ"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"ክስተት"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"ዝምድና"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"መለያ"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"ስም"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"ኢሜይል"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"ስልክ"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ፎተግራፍ"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"የእውቂያ አርታዒን ለመዘርጋት ጠቅ ያድርጉ።"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"የእውቂያ አርታዒን ለመሰብሰብ ጠቅ ያድርጉ።"</string>
     <string name="content_description_directions" msgid="2686791825798189335">"ወደ አካባቢ የሚወስዱ አቅጣጫዎች"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"የቅርብ ጊዜ ኤስኤምኤስ። <xliff:g id="MESSAGE_BODY">%s</xliff:g>። <xliff:g id="PHONE_NUMBER">%s</xliff:g>። <xliff:g id="DATE">%s</xliff:g>። ምላሽ ለመስጠት ጠቅ ያድርጉ"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"የቅርብ ጊዜ ኤስኤምኤስ። <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>። <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>። <xliff:g id="DATE">%3$s</xliff:g>። ምላሽ ለመስጠት ጠቅ ያድርጉ"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ገቢ"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ወጪ"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ያመለጡ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"የቅርብ ጊዜ ጥሪ። <xliff:g id="CALL_TYPE">%s</xliff:g>። <xliff:g id="PHONE_NUMBER">%s</xliff:g>። <xliff:g id="DATE">%s</xliff:g>። መልሰው ለመደወል ጠቅ ያድርጉ"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"የቅርብ ጊዜ ጥሪ። <xliff:g id="CALL_TYPE">%1$s</xliff:g>። <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>። <xliff:g id="DATE">%3$s</xliff:g>። መልሰው ለመደወል ጠቅ ያድርጉ"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"እርስዎ፦ <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"የግለሰቡን የHangouts ለይቶ አዋቂ ወደ ኢሜይል መስኩ ወይም የስልክ መስኩ በሚያስገቡበት ጊዜ Hangouts በተሻለ ሁኔታ ይሰራል።"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"ተጨማሪ መስኮች"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ፎቶ ለውጥ"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"አርታዒውን መክፈት አልተሳካም።"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"ወደዚህ በማስቀመጥ ላይ፦"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"አሁን ላይ ወደ <xliff:g id="ACCOUNT_NAME">%s</xliff:g> በማስቀመጥ ላይ። ሌላ መለያ ለመምረጥ ሁለቴ መታ ያድርጉ።"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">የተገናኙ እውቂያዎች (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">የተገናኙ እውቂያዎች (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> የተገናኙ እውቂያዎች"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"ተጨማሪ መስኮች"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"የእውቂያ ፎቶ ለውጥ"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"የእውቂያ ፎቶ አክል"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"የዕውቂያ ፎቶ"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"አርታዒውን መክፈት አልተሳካም።"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"በማስቀመጥ ላይ ወደ፦"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"ከ<xliff:g id="ACCOUNT">%s</xliff:g> የተገኘው የእውቂያ መረጃ አርትዕ መደረግ አይችልም"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ዕውቂያዎችን አገናኝ"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ይቅር"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> የተደገሙ ሊሆኑ የሚችሉ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> የተደገሙ ሊሆኑ የሚችሉ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> የተገናኙ እውቂያዎች</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> የተገናኙ እውቂያዎች</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ይህ እውቂያ"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ሊሆኑ የሚችሉ ድግምግሞሽ"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"ይህ እውቂያ ተመሳሳይ ሰው ሊሆን ይችላል። እንደ ነጠላ እውቂያ በአንድ ላይ ሊያገናኙዋቸው ይችላሉ።"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"የተገናኙ ዕውቂያዎች"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"ከእርስዎ መለያዎች"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ፎቶ አንሳ"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"ሁሉም ፎቶዎች"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ፎቶ ይምረጡ"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"ከ<xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>ን ሰርዝ"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>ን ሰርዝ"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>ን ሰርዝ"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"ከ<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> የመጣ ፎቶ አልተረጋገጠም"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"ከ<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> የመጣ ፎቶ ተረጋግጧል"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"ካልታወቀ መለያ የመጣ ፎቶ ምልክት አልተደረገበትም"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"ካልታወቀ መለያ የመጣ ፎቶ ምልክት ተደርጎበታል"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"የእውቅያ ዝርዝር የቋንቋ ለውጥን ለማንፀባረቅ ዘምኗል።\n\nእባክዎ ይጠብቁ....."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ቁጥር አክል"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"ቁጥርን አግድ"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"ቁጥር ያክሉ ወይም እውቂያዎችን ይፈልጉ"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"የ<xliff:g id="NUMBER">%1$s</xliff:g> እግድ ይነሳ?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"እገዳ አንሳ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> ይታገድ?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"አግድ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ታግዷል"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"የ<xliff:g id="NUMBER">%1$s</xliff:g> እገዳ ተነስቷል"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ልክ ያልኾነ ነው።"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ጥሪን ማገድ ለጊዜው ተሰናክሏል"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ባለፉት 48 ሰዓቶች ውስጥ ከዚህ ስልክ ሆነው የአስቸኳይ አደጋ አገልግሎቶችን ስላነጋገሩ ጥሪን ማገድ ተሰናክሏል። አንዴ የ48 ሰዓቱ ጊዜ ካለፈ በኋላ በራስ-ሰር ዳግም ይነቃል።"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"አስመጣ"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ቁጥሮችን ይመልከቱ"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ቁጥር አክል"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"የጥሪ እገዳ ለ48 ሰዓቶች ተሰናክሏል።"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"የአስቸኳይ አደጋ ጥሪ ስለተደረገ ተሰናክሏል።"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ቀልብስ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ቀድሞውኑ ታግዷል።"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ቁጥርን አታግድ"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> እውቂያ ዝርዝሮች"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ማስመጣት አልተሳካም"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ቁጥሮችን አስመጣ"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"አብራ"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"ጥቆማዎች"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"አዲስ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"የአሰሳ መሣቢያውን ክፈት"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"የአሰሳ መሣቢያውን ዝጋ"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"የ<xliff:g id="LABEL_NAME">%s</xliff:g> መለያ"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"መሰየሚያዎች"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"መለያዎች"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"ታሪክዎን አብረው ይመልከቱ"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ኩነቶች እና መልዕክቶች"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ኩነቶች"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"መልእክቶች"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"ጥቆማዎች"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"እውቂያዎችዎን የተደራጁና ጠቃሚ እንደሆኑ ያቆዩ"</string>
+    <string name="undo" msgid="1425165101664071422">"ቀልብስ"</string>
+    <string name="call_custom" msgid="6385303130912713318">"ጥሪ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">" መነሻጥሪ"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"ተንቀሳቃሽ ስልክ ጥሪ"</string>
+    <string name="call_work" msgid="5328785911463744028">"የሥራ ጥሪ"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"የሥራ ጥሪ ፋክስ"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"የጥሪ መነሻፋክስ"</string>
+    <string name="call_pager" msgid="9003902812293983281">"ምልክት  ማድረጊያ  ጥሪ"</string>
+    <string name="call_other" msgid="8563753966926932052">"ደውል"</string>
+    <string name="call_callback" msgid="1910165691349426858">"ተዘዋዋሪ ጥሪ ደውል"</string>
+    <string name="call_car" msgid="3280537320306436445">"የመኪና ደውል"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"የጥሪ ኩባንያ ዋና"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN ጥሪ"</string>
+    <string name="call_main" msgid="6082900571803441339">"ዋና ጥሪ"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ፋክስ ደውል"</string>
+    <string name="call_radio" msgid="8296755876398357063">"የሬዲዮጥሪ"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ቴሌክስጥሪ"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD ጥሪ"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"ተንቀሳቃሽ ሥራ ስልክደውል"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"የሥራ ጥሪ ምልክት  ማድረጊያ"</string>
+    <string name="call_assistant" msgid="670941612175068337">"ጥሪ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS ጥሪ"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ጥሪ)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"ጽሁፍ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"የፅሁፍመነሻ"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"የ ተንቀሳቃሽፅሁፍ"</string>
+    <string name="sms_work" msgid="2269624156655267740">"የፅሁፍ ሥራ"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"የፅሁፍ ሥራፋክስ"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"የመነሻ ፅሁፍ ፋክስ"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"የፅሁፍ ምልክት  ማድረጊያ"</string>
+    <string name="sms_other" msgid="806127844607642331">"ፅሁፍ"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"የተዘዋዋሪ ጥሪ ፅሁፍ"</string>
+    <string name="sms_car" msgid="7444227058437359641">"የፅሁፍ ማሽን"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"የኩባንያ ዋናፅሁፍ"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"የ ISDN ፅሁፍ"</string>
+    <string name="sms_main" msgid="8621625784504541679">"የዋና ፅሁፍ"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"የፋክስ ፅሁፍ"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"የፅሁፍ ሬዲዮ"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"የፅሁፍ ቴሌክስ"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD ፅሁፍ"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"የፅሁፍ ሥራ ተንቀሳቃሽ"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"የፅሁፍ ሥራ ምልክት  ማድረጊያ"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"ፅሁፍ <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"የMMS ፅሁፍ"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (መልዕክት)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"የቪዲዮ ጥሪ ያድርጉ"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"በተደጋጋሚ ያገኝዋቸው ይጽዱ?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"በእውቂያዎች እና በስልክ መተግበሪያዎች ውስጥ በተደጋጋሚ ያገኟቸውን እውቂያዎች ዝርዝር አጽድተው የኢሜይል መተግበሪያዎች የአድራሻ አያያዝ ምርጫዎችዎን ከባዶ ተነስተው እንዲያውቁ ያስገድዱዋቸዋል።"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"በተደጋጋሚ ያገኘሃቸውን በመጥረግ ላይ…"</string>
+    <string name="status_available" msgid="5586870015822828392">"የሚገኝ"</string>
+    <string name="status_away" msgid="1838861100379804730">"ወጣ ብሏል"</string>
+    <string name="status_busy" msgid="9147992455450257136">"ተይዟ ል"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"ሌላ"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">" ማውጫ"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"የሥራ ማውጫ"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"ሁሉም እውቅያዎች"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"ለ <xliff:g id="NAME">%1$s</xliff:g> ፈጣን ዕውቂያ"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(ስም የለም)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"በተደጋጋሚ የሚገናኙ"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"የስልክ ቁጥር ያላቸው ሁሉም ዕውቂያዎች"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"የሥራ መገለጫ ዕውቂያዎች"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"አዘምኖችን ዕይ"</string>
+    <string name="account_phone" msgid="7128032778471187553">"መሣሪያ"</string>
+    <string name="account_sim" msgid="6519016427905087952">"ሲም"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"ስም"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"ቅጽል ስም"</string>
+    <string name="name_given" msgid="4280790853455320619">"የራስ ስም"</string>
+    <string name="name_family" msgid="7466985689626017037">"የአያት ስም"</string>
+    <string name="name_prefix" msgid="59756378548779822">"ቅድመ ስም"</string>
+    <string name="name_middle" msgid="8467433655992690326">"የአባት ስም"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"ድህረ ስም"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"የድምፀ ልሳን ስም"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"የራስ ስም በድምጸ-ልሳን"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"የድምፀ ልሳንመካከለኛ ስም"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"የአያት ስም በድምጸ-ልሳን"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ስልክ"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ኢሜይል"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"አድራሻ"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"ፈጣን መልዕክቶች"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"መስርያ ቤት"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ግንኙነት"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"ልዩ እለት"</string>
+    <string name="sms" msgid="1756857139634224222">"የጽሑፍ መልዕክት"</string>
+    <string name="postal_address" msgid="8765560217149624536">"አድራሻ"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"ኩባንያ"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"አርዕስት"</string>
+    <string name="label_notes" msgid="8337354953278341042">"ማስታወሻዎች"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"ብጁ"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"ኤስአይፒ"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ድረ ገፅ"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"መሰየሚያዎች"</string>
+    <string name="email_home" msgid="8573740658148184279">"የኢሜይል መነሻ"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"ኢሜይል ተንቀሳቃሽ"</string>
+    <string name="email_work" msgid="2807430017302722689">"ኢሜይልሥራ"</string>
+    <string name="email_other" msgid="3454004077967657109">"ኢሜይል"</string>
+    <string name="email_custom" msgid="5536404237099078802">"ኢሜይል <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"ኢሜይል"</string>
+    <string name="postal_street" msgid="8133143961580058972">"ጎዳና"</string>
+    <string name="postal_city" msgid="6597491300084895548">"ከተማ፡"</string>
+    <string name="postal_region" msgid="6045263193478437672">"ክልል፡"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ዚፕ ኮድ"</string>
+    <string name="postal_country" msgid="7638264508416368690">"አገር፡"</string>
+    <string name="map_home" msgid="1243547733423343982">"የመነሻ አድራሻ ዕይ"</string>
+    <string name="map_work" msgid="1360474076921878088">"የሥራ አድራሻ ዕይ"</string>
+    <string name="map_other" msgid="3817820803587012641">"አድራሻ እይ"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> አድራሻ ይመልከቱ"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"ጨዋታ AIM  በመጠቀም"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"ጨዋታ Windows Live በመጠቀም"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo ፣ውይይት በመጠቀም"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"ጨዋታ Skype በመጠቀም"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"ጨዋታ QQ  በመጠቀም"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"የGoogle Talk በመጠቀም ጨዋታ"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ጨዋታ ICQ  በመጠቀም"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"ጨዋታ Jabber በመጠቀም"</string>
+    <string name="chat" msgid="9025361898797412245">"ጨዋታ"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ሰርዝ"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"ተጨማሪ መስኮችን አሳይ"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"የስም መስኮችን ይሰብስቡ"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"ተጨማሪ የፎነቲክ ስም መስኮችን አሳይ"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"የድምፀ-ልሳን የስም መስኮችን ይሰብስቡ"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"ይዘርጉ"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"ይሰብስቡ"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"ተዘርግቷል"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"ተሰብስቧል"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"ሁሉም እውቅያዎች"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ኮከብ የተደረገባቸው"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"ብጁ አድርግ"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"እውቅያ"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"ሌላ ሁሉም ዕውቂያዎች"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"ሁሉም እውቅያዎች"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"የአስምር ቡድን አስወግድ"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"አሳምርቡድንአክል"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"ተጨማሪቡድኖች..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\'<xliff:g id="GROUP">%s</xliff:g>\'  ከአሳምር ማስወገድ እንዲሁ ማንኛውም በተነጣጥል ያሉ ዕውቅያዎችን ከአሳምር ያስወግዳል።"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ማሳያ አማራጮችን በማስቀመጥ ላይ..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"ብጁ እይታ"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"እንዲመጡ የተደረጉ እውቂያዎችን አስቀምጥ ወደ፦"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"ሲም ካርድ"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"ሲም <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d እውቂያዎች</item>
+      <item quantity="other">%1$d እውቂያዎች</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> እውቂያዎች • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> እውቂያዎች • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ፋይል"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"ለማምጣት ምንም"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"እውቂያዎች ከvCard ይምጡ?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"የ<xliff:g id="FILENAME">%s</xliff:g>ወደ ውስጥ ማስገባት ይቅር?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"የ<xliff:g id="FILENAME">%s</xliff:g> ወደ ውጭ መላክ ይቅር?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard ማስመጣት/ወደ ውጪ መላክ ይቅር ማለት አልተቻለም"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"ያልታወቀ ስህተት"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ፡<xliff:g id="EXACT_REASON">%2$s</xliff:g> መክፈት አልተቻለም"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"ላኪው፡\"<xliff:g id="EXACT_REASON">%s</xliff:g>\"  ለማስነሳት አልተቻለም"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ምንም ወደ ውጭ መላክ የሚችል ዕውቂያ የለም"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"አንድ የሚያስፈልግ ፈቃድ አስወግደዋል።"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"በመላክ ጊዜስህተት ተከስቷል: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O ስህተት"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"በቂ ማህደረ ትውስታ የለም፡፡ፋይሉ ምናልባት በጣም ትልቅ ይሆናል፡፡"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ቅርፀቱ አይታገዝም"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> መላክ ጨርሷል"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"እውቂያዎችን ወደ ውጪ መላክ ተጠናቅቋል።"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"እውቂያዎችን ወደ ውጭ መላክ ተጠናቅቋል፣ እውቂያዎችን ለማጋራት ማሳወቂያውን ጠቅ ያድርጉ።"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"እውቂያዎችን ለማጋራት መታ ያድርጉ።"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"መላክ <xliff:g id="FILENAME">%s</xliff:g> ተሰርዟል::"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"የዕውቂያ ውሂብ በመላክ ላይ"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"የእውቂያ ውሂብ ወደ ውጭ በመላክ ላይ ነው።"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ውሂብ ጎታ መረጃን ማግኘት አልተቻለም"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"ወደ ውጭ የሚላኩ እውቅያዎች የሉም።"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"የ vCard  አቀናባሪው በትክክል አልጀመረም::"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"ወደ ውጭ መላክ አልተቻለም"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"የዕውቅያ ውሂብ ወደ ውጭ አልተላከም፡፡ \nምክንያት፡፡\"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> ማስገባት"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard ውሂብ ማንበብ አልተቻለም"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">" <xliff:g id="FILENAME">%s</xliff:g> vCard  ማስመጣት ጨርሷል"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> ማስመጣት ተሰርዞዋል"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> ከአፍታ ቆይታ በኋላ ይመጣል።"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ፋይሉ ከአፍታ ቆይታ በኋላ ይመጣል።"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"የvCard ማስመጣት ጥየቃ ውድቅ ተደርጓል። እባክህ ትንሽ ቆይተህ ሞክር።"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"እውቂያዎች አሁን ወደ ውጭ ይላካሉ።"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"የvCard ላክ ጥየቃ ውድቅ ተደርጓል። እባክህ ትንሽ ቆይተህ ሞክር።"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"እውቅያ"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"ወደ ጊዜያዊ ማከማቻ vCard(s) እየሸጎጠ ነው። ትክክለኛው አስመጣ በቅርቡ ይጀምራል።"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard ማስመጣት አልተቻለም"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"በ NFC  የደረሱ ዕውቂያዎች"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"በመሸጎጥ ላይ"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"በማስገባት ላይ<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>፡<xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"ወደ .vcf ፋይል ላክ"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"ደርድር በ"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"የድምፀ ልሳን ስም"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"ሁልጊዜ አሳይ"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"ባዶ ከሆነ ደብቅ"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"የራስ ስም"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"የአያት ስም"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"የስም ቅርጸት"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"የራስ ስም መጀመሪያ"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"የአያት ስም መጀመሪያ"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"መለያዎች"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"ለአዲስ እውቂያዎች ነባሪ መለያ"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"የእኔ መረጃ"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"መገለጫዎን ያዘጋጁ"</string>
+    <string name="setting_about" msgid="7014388749752042863">"ስለ ዕውቂያዎች"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"ተወዳጅ እውቂያዎችን አጋራ"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"ሁሉንም እውቂያዎች አጋራ"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"እውቂያዎችን ማጋራት አልተሳካም።"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"እውቅያዎች ወደ ውጭ ላክ"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"እውቂያዎችን አምጣ ከ"</string>
+    <string name="share_error" msgid="948429331673358107">"ይህ ዕውቂያ መጋራት አይችልም።"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"ምንም የሚጋሩ እውቂያዎች የሉም።"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ዕውቂያዎች አሳይ"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ዕውቂያዎች አሳይ"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"ዕይታ አብጅ"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"አስቀምጥ"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"እውቂያዎችን ይፈልጉ"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"ተወዳጆች"</string>
+    <string name="menu_import" msgid="6107961135813836467">"አምጣ"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ወደ ውጪ ላክ"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"የታገዱ ቁጥሮች"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"በ<xliff:g id="SOURCE">%1$s</xliff:g> በኩል"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>በ<xliff:g id="SOURCE">%2$s</xliff:g> በኩል"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"መፈለግ አቁም"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ፍለጋን አጽዳ"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"መለያ"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ለጥሪዎች ሁልጊዜ ይህንን ተጠቀም"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"ከማስታወሻ ጋር ደውል"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"ከውይይት ጋር ለመላክ የማስታወሻ ጽሑፍ ይተይቡ…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ላክ እና ደውል"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"የግንብ ሥሪት"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"የክፍት ምንጭ ፈቃዶች"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ለክፍት ምንጭ ሶፍትዌሮች የፈቃድ ዝርዝሮች"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"የግላዊነት መመሪያ"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"የአገልግሎት ውል"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"የክፍት ምንጭ ፈቃዶች"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"ዩ አር ኤሉን ለመክፈት አልተሳካም።"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ምልክት ተደርጎበታል"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ምልክት አልተደረገበትም"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"የቪዲዮ ጥሪ አስቀምጥ"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"ሰርዝ"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"ሶስት ነጥብ"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> ሴ"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> ደቂቃ <xliff:g id="SECONDS">%2$s</xliff:g> ሴ"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ሰዓት <xliff:g id="MINUTES_1">%2$s</xliff:g> ደቂቃ <xliff:g id="SECONDS">%3$s</xliff:g> ሴ"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ይህ አቋራጭ ተወግዷል"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"እውቂያ ተወግዷል"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"ከውጭ አምጣ"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"እውቂያዎችን ምረጥ"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"በ ሲም ካርድዎ ላይ ዕውቂያዎች የሉም"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"እውቂያው ቀድሞም በዝርዝርዎ ውስጥ አለ"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> የሲም እውቂያዎች መጥተዋል</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> የሲም እውቂያዎች መጥተዋል</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"የሲም እውቂያዎችን ማምጣት አልተሳካም"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"ከሲም አምጣ"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"ይቅር"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"ራስሰር-አስምር ጠፍቷል። ለማብራት መታ ያድርጉ።"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"አሰናብት"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"መለያ አስምር ጠፍቷል። ለማብራት መታ ያድርጉ።"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"በራስ ማስመር ይብራ?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"በGoogle እውቂያዎች ላይ ብቻ ሳይሆን፣ በሁሉም መተግበሪያዎች እና መለያዎች ላይ የሚያደርጓቸው ለውጦች፣ በድር እና በመሳሪያዎችዎ መካከል እንደዘመኑ ይቆያሉ።"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"አብራ"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"ምንም ግንኙነት የለም"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"ሲም"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"ተጨማሪ አሳይ"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"ሲም ካርድ ማምጣት ጨርሷል"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"ማስመጣት አልተሳካም"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"ከ SIM ካርድ ዕውቂያዎች ማስመጣት አልተቻለም"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"ሲም በማምጣት ላይ"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 6e3f02b..474c2c3 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"جهات الاتصال"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"جهات الاتصال"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"عرض جهة الاتصال"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"تعديل جهة الاتصال"</string>
     <string name="contactsList" msgid="8661624236494819731">"جهات الاتصال"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"إضافة جهة اتصال"</string>
     <string name="shortcutContact" msgid="749243779392912958">"الاتصال بـ"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"طلب مباشر"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"رسالة مباشرة"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"اختيار اختصار لجهة الاتصال"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"اختيار رقم للاتصال به"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"اختيار رقم لإرسال رسالة له"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"اختيار جهة اتصال"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"إضافة إلى جهة اتصال"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"اختيار جهة اتصال"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"تحديد"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"إنشاء جهة اتصال جديدة"</string>
-    <string name="starredList" msgid="4817256136413959463">"مميّزة بنجمة"</string>
-    <string name="frequentList" msgid="7154768136473953056">"متكررة"</string>
-    <string name="strequentList" msgid="5640192862059373511">"المفضلة"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"تفاصيل جهة الاتصال"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"تعديل جهة الاتصال"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"إنشاء جهة اتصال"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"تعديل المجموعة"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"إنشاء مجموعة"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"حول"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"التحديثات"</string>
     <string name="searchHint" msgid="8482945356247760701">"البحث في جهات الاتصال"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"عرض جهة الاتصال"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"إضافة إلى المفضلة"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"إزالة من المفضلة"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"تمت الإزالة من المفضلة"</string>
@@ -49,28 +35,36 @@
     <string name="menu_editContact" msgid="9042415603857662633">"تعديل"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"حذف"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"تغيير الصورة"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"وضع على الشاشة الرئيسية"</string>
-    <string name="menu_call" msgid="3992595586042260618">"الاتصال بجهة الاتصال"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"إرسال رسالة لجهة الاتصال"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"إنشاء اختصار"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"إلغاء الربط"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"تعديل"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"حذف"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"إضافة جهة اتصال"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"إضافة مجموعة"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"إزالة جهات الاتصال"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"إعادة تسمية التصنيف"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"حذف التصنيف"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"إضافة جهة اتصال"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"تحديد جهات الاتصال"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"إضافة جهات اتصال"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"الإزالة من تصنيف"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"إنشاء تصنيف"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"هل تريد إلغاء ربط جهة الاتصال هذه إلى جهات اتصال متعددة؟"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"إلغاء الربط"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"هل تريد حفظ التغييرات التي أجريتها وإلغاء ربط جهة الاتصال هذه إلى جهات اتصال متعددة؟"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"حفظ وإلغاء الربط"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"هل تريد حفظ التغييرات التي أجريتها والربط بجهة الاتصال المحددة؟"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"حفظ وربط"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"الربط"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"إلغاء الربط"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"ربط"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"عرض جهات الاتصال المرتبطة"</string>
     <string name="menu_save" msgid="1727844363591825909">"حفظ"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ربط جهات الاتصال"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"اختر جهة الاتصال التي تريد ربطها بـ <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"عرض جميع جهات الاتصال"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"جهات الاتصال المقترحة"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"جميع جهات الاتصال"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> مرتبط"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"تم ربط جهات الاتصال"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"تم حذف <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"تم حذف <xliff:g id="NAME_0">%1$s</xliff:g> و<xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"تم حذف <xliff:g id="NAME_0">%1$s</xliff:g> و<xliff:g id="NAME_1">%2$s</xliff:g> و<xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="zero">تم حذف جهة الاتصال</item>
       <item quantity="two">تم حذف جهتي الاتصال</item>
@@ -79,14 +73,30 @@
       <item quantity="other">تم حذف جهات الاتصال</item>
       <item quantity="one">تم حذف جهة الاتصال</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="zero">ليست هناك أية جهة اتصال (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="two">جهتا اتصال (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> جهات اتصال</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> جهة اتصال</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> من جهات الاتصال</item>
+      <item quantity="one">جهة اتصال واحدة (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="zero"><xliff:g id="COUNT_2">%1$d</xliff:g> جهة اتصال · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="two"><xliff:g id="COUNT_2">%1$d</xliff:g> جهتا اتصال · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> جهات اتصال · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> جهة اتصال · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> جهة اتصال · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> جهة اتصال · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"‏من Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"من <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"تعيين نغمة رنين"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"جميع المكالمات إلى البريد الصوتي"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"يتعذر حذف جهات الاتصال من حساباتك المخصصة للقراءة فقط، ولكن يمكن إخفاؤها."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"إخفاء"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"تتضمن جهة الاتصال التي تريد حذفها تفاصيل من حسابات متعددة. وسيتم إخفاء التفاصيل الواردة من الحسابات المخصصة للقراءة فقط، وليس حذفها."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"يجب تحديد جهتي اتصال على الأقل لإجراء الربط."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"هل تريد ربط جهات الاتصال المحددة؟"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"ربط"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"إرسال إلى البريد الصوتي"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"عدم إرسال إلى البريد الصوتي"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"جهة الاتصال هذه للقراءة فقط. لا يمكن حذفها، ولكن يمكنك إخفاؤها."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"إخفاء جهة الاتصال"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"سيتم فقط إخفاء حسابات القراءة فقط الموجودة في جهة الاتصال هذه، ولم يتم حذفها."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"هل تريد حذف جهة الاتصال هذه؟"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"هل تريد حذف جهات الاتصال المحددة؟"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"يتعذر حذف جهات الاتصال من حساباتك المخصصة للقراءة فقط، ولكن يمكن إخفاؤها."</string>
@@ -94,201 +104,128 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"سيؤدي حذف جهة الاتصال هذه إلى حذف تفاصيل من عدة حسابات."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"هل تريد حذف جهة الاتصال هذه؟"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"حذف"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"إلغاء التغييرات"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"جهة الاتصال غير موجودة."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"تمت إضافة جهة الاتصال إلى الشاشة الرئيسية."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"تمت إضافة <xliff:g id="NAME">%s</xliff:g> إلى الشاشة الرئيسية."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"إنشاء جهة اتصال جديدة"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"إنشاء جهة اتصال جديدة"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"المؤسسة"</item>
-    <item msgid="7196592230748086755">"ملاحظة"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ليس هناك صور متوفرة على الجهاز اللوحي."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"لا تتوفر أية صور على الهاتف."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"لا تتوفر أية صور على الهاتف."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"صورة جهة الاتصال"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"اسم تصنيف مخصص"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"إرسال المكالمات إلى البريد الصوتي مباشرة"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"إزالة الصور"</string>
-    <string name="noContacts" msgid="4955659076981974652">"ليست هناك جهات اتصال"</string>
-    <string name="noGroups" msgid="8614664663561385253">"لا توجد مجموعات."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"يجب توفير حساب لإنشاء مجموعات."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ليس هناك أشخاص في هذه المجموعة."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"لإضافة البعض، ابدأ في تعديل المجموعة."</string>
-    <string name="savingContact" msgid="4075751076741924939">"جارٍ حفظ جهة الاتصال..."</string>
+    <string name="removePhoto" msgid="4898105274130284565">"إزالة الصورة"</string>
+    <string name="noContacts" msgid="2228592924476426108">"قائمة جهات اتصالك فارغة"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"لا توجد جهات اتصال بهذه التسمية"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"لا توجد جهات اتصال في هذا الحساب"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"قائمة جهات اتصالك فارغة"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"تم حفظ <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"تم حفظ جهة الاتصال."</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"تم إلغاء ربط جهات الاتصال"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"تعذر حفظ التغييرات التي تم إجراؤها على جهة الاتصال."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"تعذر إلغاء ربط جهة الاتصال."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"تعذر ربط جهة الاتصال."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"حدث خطأ أثناء حفظ جهة الاتصال."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"تعذر حفظ تغييرات صورة جهة الاتصال."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"تم حفظ المجموعة."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"تعذر حفظ التغييرات التي تم إجراؤها على المجموعة."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="zero">لا توجد أية جهات اتصال بها أرقام هواتف (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="two">توجد جهتا اتصال (<xliff:g id="COUNT">%d</xliff:g>) بهما أرقام هواتف</item>
-      <item quantity="few">توجد <xliff:g id="COUNT">%d</xliff:g> جهات اتصال بها أرقام هواتف</item>
-      <item quantity="many">توجد <xliff:g id="COUNT">%d</xliff:g> جهة اتصال بها أرقام هواتف</item>
-      <item quantity="other">توجد <xliff:g id="COUNT">%d</xliff:g> من جهات الاتصال بها أرقام هواتف</item>
-      <item quantity="one">توجد جهة اتصال واحدة بها رقم هاتف</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ليس هناك جهات اتصال تشتمل على أرقام هواتف"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="zero">لا توجد أي جهة اتصال (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="two">توجد جهتا اتصال (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">توجد <xliff:g id="COUNT">%d</xliff:g> جهات اتصال</item>
-      <item quantity="many">توجد <xliff:g id="COUNT">%d</xliff:g> جهة اتصال</item>
-      <item quantity="other">توجد <xliff:g id="COUNT">%d</xliff:g> من جهات الاتصال</item>
-      <item quantity="one">توجد جهة اتصال واحدة</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"تعذر حفظ التغييرات التي تم إجراؤها على جهة الاتصال"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"تعذر إلغاء ربط جهة الاتصال"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"تعذر ربط جهة الاتصال"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"حدث خطأ أثناء حفظ جهة الاتصال"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"تعذر حفظ تغييرات صورة جهة الاتصال"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"فشل تحميل التصنيف"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"تم حذف التصنيف"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"تم إنشاء التصنيف"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"يتعذر إنشاء تصنيف"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"تم تحديث التصنيف"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"تمت الإزالة من التصنيف"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"تمت الإضافة إلى التصنيف"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"لا يمكن حفظ التغييرات على التصنيف"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"هذا التصنيف موجود فعلاً"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"بعض جهات الاتصال ليس لديها بريدًا إلكترونيًا."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"بعض جهات الاتصال ليست لديها أرقام هواتف."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"إرسال البريد الإلكتروني"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"إرسال رسالة"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"اختيار جهات الاتصال"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"إرسال"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"ليست هناك جهات اتصال"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="zero">لا توجد أي جهة اتصال (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="two">توجد جهتا اتصال (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">توجد <xliff:g id="COUNT">%d</xliff:g> جهات اتصال</item>
-      <item quantity="many">توجد <xliff:g id="COUNT">%d</xliff:g> جهة اتصال</item>
-      <item quantity="other">توجد <xliff:g id="COUNT">%d</xliff:g> من جهات الاتصال</item>
-      <item quantity="one">توجد جهة اتصال واحدة</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"الكل"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"المفضلة"</string>
-    <string name="callBack" msgid="5498224409038809224">"معاودة الاتصال"</string>
-    <string name="callAgain" msgid="3197312117049874778">"الاتصال مرة أخرى"</string>
-    <string name="returnCall" msgid="8171961914203617813">"معاودة اتصال بمكالمة فائتة"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"هل ترغب في إضافة \"<xliff:g id="EMAIL">%s</xliff:g>\" إلى جهات الاتصال؟"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"صورة جهة الاتصال"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"علامة زائد"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> من <xliff:g id="TOTAL_NUMBER">%s</xliff:g> من جهات الاتصال"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"أسماء جهات الاتصال"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"لم يتم العثور على تطبيق يمكنه مباشرة هذا الإجراء."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"انقر للرجوع إلى الشاشة السابقة"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"إضافة رقم الهاتف"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"إضافة بريد إلكتروني"</string>
     <string name="missing_app" msgid="1466111003546611387">"لم يتم العثور على تطبيق يمكنه مباشرة هذا الإجراء."</string>
     <string name="menu_share" msgid="943789700636542260">"مشاركة"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"إضافة إلى جهات الاتصال"</string>
-    <string name="share_via" msgid="563121028023030093">"مشاركة جهة الاتصال عبر"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"إنشاء مجموعة ضمن حساب"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"إضافة"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="zero">مشاركة جهات الاتصال عبر</item>
+      <item quantity="two">مشاركة جهتي الاتصال عبر</item>
+      <item quantity="few">مشاركة جهات الاتصال عبر</item>
+      <item quantity="many">مشاركة جهات الاتصال عبر</item>
+      <item quantity="other">مشاركة جهات الاتصال عبر</item>
+      <item quantity="one">مشاركة جهة الاتصال عبر</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"اختيار حساب"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"إنشاء تصنيف"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"إعادة تسمية التصنيف"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"اسم التصنيف"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"اسم التصنيف"</string>
     <string name="audio_chat" msgid="2535716629358298691">"دردشة صوتية"</string>
     <string name="video_chat" msgid="1872255818640336072">"دردشة فيديو"</string>
-    <string name="connections" msgid="8098440723172028350">"الاتصالات"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"إضافة اتصال"</string>
-    <string name="recent" msgid="2659189233141493004">"الأحدث"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"التحديثات الأخيرة"</string>
     <string name="account_type_format" msgid="718948015590343010">"جهة اتصال <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"حساب <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"غير قابلة للتعديل من هذا التطبيق."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"غير قابلة للتعديل على هذا الجهاز."</string>
     <string name="take_photo" msgid="7496128293167402354">"التقاط صورة"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"التقاط صورة جديدة"</string>
     <string name="pick_photo" msgid="2129509985223564942">"اختيار صورة"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"تحديد صورة جديدة"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"يجري تحديث قائمة جهات الاتصال."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"جارٍ البحث..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"عرض العناصر المحددة"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"عرض الكل"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"تحديد الكل"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"إلغاء تحديد الكل"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"إضافة جديد"</string>
-    <string name="add_organization" msgid="7311893231158291197">"إضافة مؤسسة"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"التاريخ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"اسم المجموعة"</string>
-    <string name="change_photo" msgid="8530597935483526383">"تغيير"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"الصورة الأساسية"</string>
-    <string name="description_star" msgid="2605854427360036550">"مفضل"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"تعديل جهة الاتصال"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"هل تريد ربط جهة الاتصال الحالية بجهة الاتصال المحددة؟"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"التصنيف"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"إلغاء"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"رجوع"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"إغلاق"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"هل تريد التبديل إلى تعديل جهة الاتصال المحددة؟ سيتم نسخ المعلومات التي أدخلتها حتى الآن."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"نسخ إلى جهات الاتصال الخاصة بي"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"إضافة إلى \"جهات الاتصال الخاصة بي\""</string>
     <string name="contact_directory_description" msgid="683398073603909119">"الدليل <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"مخصص"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"الإعدادات"</string>
     <string name="menu_settings" msgid="377929915873428211">"الإعدادات"</string>
-    <string name="menu_help" msgid="1680178646764069976">"المساعدة والتعليقات"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"خيارات العرض"</string>
+    <string name="menu_help" msgid="1680178646764069976">"مساعدة وتعليقات"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"رقم الهاتف"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"إضافة إلى جهات الاتصال"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"إضافة إلى جهة اتصال"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"إغلاق"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"تضمين العام"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"جهة الاتصال"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"جارٍ التحميل…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"إنشاء جهة اتصال جديدة"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"إضافة حساب"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"استيراد جهات الاتصال"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"إنشاء مجموعة جديدة"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"إنشاء مجموعة جديدة"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="zero"><xliff:g id="COUNT">%0$d</xliff:g> مجموعات</item>
-      <item quantity="two">مجموعتان (<xliff:g id="COUNT">%0$d</xliff:g>)</item>
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> مجموعات</item>
-      <item quantity="many"><xliff:g id="COUNT">%0$d</xliff:g> مجموعة</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> من المجموعات</item>
-      <item quantity="one">مجموعة واحدة</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"هل تريد حذف المجموعة \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"؟ (لن يتم حذف جهات الاتصال ذاتها)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="zero">لا يوجد أي شخص (<xliff:g id="COUNT_2">%1$d</xliff:g>) من <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="two">يوجد شخصان (<xliff:g id="COUNT_2">%1$d</xliff:g>) من <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="few">يوجد <xliff:g id="COUNT_2">%1$d</xliff:g> أشخاص من <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="many">يوجد <xliff:g id="COUNT_2">%1$d</xliff:g> شخصًا من <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other">يوجد <xliff:g id="COUNT_2">%1$d</xliff:g> من الأشخاص من <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one">يوجد شخص واحد (<xliff:g id="COUNT_0">%1$d</xliff:g>) من <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="zero">لا يوجد أي شخص (<xliff:g id="COUNT_1">%1$d</xliff:g>)</item>
-      <item quantity="two">شخصان (<xliff:g id="COUNT_1">%1$d</xliff:g>)</item>
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> أشخاص</item>
-      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> شخصًا</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> من الأشخاص</item>
-      <item quantity="one">شخص واحد (<xliff:g id="COUNT_0">%1$d</xliff:g>)</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"استيراد"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"إنشاء مجموعة جديدة…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"حذف التصنيف \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"؟ (لن يتم حذف جهات الاتصال نفسها)."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"اكتب اسم جهة الاتصال قبل ربطها بجهة اتصال أخرى."</string>
     <string name="copy_text" msgid="3257145021583508761">"نسخ إلى الحافظة"</string>
     <string name="set_default" msgid="4417505153468300351">"تعيين كافتراضي"</string>
     <string name="clear_default" msgid="7193185801596678067">"محو الإعدادات الافتراضية"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"تم نسخ النص"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"هل تريد تجاهل التغييرات؟"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"تجاهل"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"إعداد الملف الشخصي"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"اكتب اسم الشخص"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"اسم المجموعة"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"هل تريد إلغاء التغييرات؟"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"تجاهل"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"إلغاء"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"تجاهل عمليات التخصيص؟"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"البحث في جهات الاتصال"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"إزالة جهات الاتصال"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"ملفي الشخصي المحلي"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"ملفي الشخصي في <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"عرض جميع جهات الاتصال"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"‏تعمل جهات الاتصال بشكلٍ أفضل من خلال حساب Google.\n\n• يمكنك الدخول من أي متصفح ويب.\n• يمكنك الاحتفاظ بنسخة احتياطية من جهات اتصالك بشكلٍ آمن."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"يمكنك الاحتفاظ بجهات اتصالك في أمان حتى إذا فقدت هاتفك: من خلال المزامنة مع خدمة عبر الإنترنت."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"إضافة حساب"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"لن يتم الاحتفاظ بنسخة احتياطية من جهة الاتصال الجديدة. هل تريد إضافة حساب يحتفظ بنسخة احتياطية من جهات الاتصال على الإنترنت؟"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"‏خذ دقيقة من وقتك لإضافة حساب يحفظ نسخة احتياطية من جهات اتصالك على Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"سيتم حفظ جهات الاتصال الجديدة في <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"اختيار حساب افتراضي لجهات الاتصال الجديدة:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"إضافة جهة اتصال جديدة"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"إنشاء جهة اتصال"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"تعديل جهة الاتصال"</string>
-    <string name="keep_local" msgid="1258761699192993322">"الاحتفاظ بها محليًا"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"للعرض فقط"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"اختيار جهة اتصال لتعديلها"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"جهات الاتصال المرتبطة"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"إضافة"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"إلغاء الربط"</string>
     <string name="add_account" msgid="8201790677994503186">"إضافة حساب"</string>
     <string name="add_new_account" msgid="5748627740680940264">"إضافة حساب جديد"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"تصدير ملفات قاعدة البيانات"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"إضافة جهة اتصال جديدة"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"إنشاء جهة اتصال جديدة"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"الاطلاع على المزيد"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"عرض أقل"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"عرض الكل"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"الأخيرة"</string>
     <string name="about_card_title" msgid="2920942314212825637">"حول"</string>
-    <string name="send_message" msgid="8938418965550543196">"إرسال رسالة"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"جارٍ إنشاء نسخة شخصية..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"أمس"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"جارٍ إنشاء نسخة شخصية..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"غدًا"</string>
     <string name="today" msgid="8041090779381781781">"اليوم"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"اليوم في <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"غدًا في <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>، <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>، <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(حدث بدون اسم)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"تعيين"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"المراسلة الفورية"</string>
@@ -298,112 +235,327 @@
     <string name="header_website_entry" msgid="1411467850000824745">"موقع الويب"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"الحدث"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"العلاقة"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"الحساب"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"الاسم"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"البريد الإلكتروني"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"الهاتف"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"الصورة"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"يمكنك النقر لتوسيع محرر جهات الاتصال."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"يمكنك النقر لتصغير محرر جهات الاتصال."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"الاتجاهات إلى الموقع"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"‏رسائل SMS الأخيرة. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. انقر للرد"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"‏رسائل SMS الأخيرة. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. انقر للرد"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"الواردة"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"الصادرة"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"الفائتة"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"المكالمة الأخيرة. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. انقر لمعاودة الاتصال"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"المكالمة الأخيرة. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. انقر لمعاودة الاتصال"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"أنت: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"‏تعمل Hangouts بشكل أفضل عند إدخال معرف الشخص في Hangouts في حقل البريد الإلكتروني أو حقل الهاتف."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"المزيد من الحقول"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"تغيير الصورة"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"أخفق فتح المحرر."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"الحفظ في"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"جارٍ الحفظ حاليًا في <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. يمكنك النقر نقرًا مزدوجًا لاختيار حساب آخر."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="zero">جهات الاتصال المرتبطة (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="two">جهات الاتصال المرتبطة (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">جهات الاتصال المرتبطة (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">جهات الاتصال المرتبطة (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">جهات الاتصال المرتبطة (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">جهة اتصال مرتبطة</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> جهة اتصال مرتبطة"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"المزيد من الحقول"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"تغيير صورة جهة الاتصال"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"إضافة صورة جهة الاتصال"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"صورة جهة الاتصال"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"أخفق فتح المحرر."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"الحفظ في"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"معلومات جهة الاتصال من <xliff:g id="ACCOUNT">%s</xliff:g> غير قابلة للتعديل"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ربط جهات الاتصال"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"إلغاء"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> تكرار محتمل</item>
-      <item quantity="two">تكراران (<xliff:g id="COUNT">%d</xliff:g>) محتملان</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> تكرارات محتملة</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> تكرارًا محتملاً</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> تكرار محتمل</item>
-      <item quantity="one">تكرار واحد محتمل</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> جهة اتصال مقترنة</item>
-      <item quantity="two">جهتا اتصال مقترنتان (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> جهات اتصال مقترنة</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> جهة اتصال مقترنة</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> جهة اتصال مقترنة</item>
-      <item quantity="one">جهة اتصال واحدة مقترنة</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="zero">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="two">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"جهة الاتصال هذه"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"التكرارات المحتملة"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"ربما تمثل جهات الاتصال هذه شخصًا واحدًا. يمكنك ربطها معًا كجهة اتصال واحدة."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"جهات الاتصال المرتبطة"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"من حساباتك"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"التقاط صورة"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"جميع الصور"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"اختيار صورة"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"من <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"حذف <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"حذف <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"حذف <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"تم إلغاء تحديد صورة من <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"تم تحديد صورة من <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"لم يتم تحديد صورة من حساب غير معروف"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"تم تحديد صورة من حساب غير معروف"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"يتم تحديث قائمة جهات الاتصال لتعكس التغيير الذي حدث في اللغة.\n\nالرجاء الانتظار..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"إضافة رقم"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"حظر الرقم"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"إضافة رقم أو البحث في جهات الاتصال"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"هل تريد إزالة حظر <xliff:g id="NUMBER">%1$s</xliff:g>؟"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"إلغاء الحظر"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"هل تريد حظر الرقم <xliff:g id="NUMBER">%1$s</xliff:g>؟"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"حظر"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"تم حظر <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"تم إلغاء حظر <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> غير صالح."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"حظر المكالمات معطّل مؤقتًا"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"تم تعطيل حظر المكالمات لأنك اتصلت بخدمات الطوارئ خلال 48 ساعة ماضية. وستتم إعادة تمكينه تلقائيًا بعد انتهاء هذه الفترة التي تبلغ 48 ساعة."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"استيراد"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"عرض الأرقام"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"إضافة رقم"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"تم تعطيل حظر المكالمات لمدة 48 ساعة."</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"تم التعطيل نظرًا لإجراء مكالمة طوارئ."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"تراجع"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"تم حظر <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"إلغاء حظر الرقم"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"تفاصيل جهة الاتصال بـ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"أخفق الاستيراد"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"استيراد الأرقام"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"تشغيل"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"الاقتراحات"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"جديد"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"فتح لائحة التنقل"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"إغلاق لائحة التنقل"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"التصنيف <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"التصنيفات"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"الحسابات"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"الاطلاع على تاريخكما المشترك"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"الأحداث والرسائل"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"الأحداث"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"الرسائل"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"الاقتراحات"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"الاحتفاظ بجهات الاتصال منظمة ومفيدة"</string>
+    <string name="undo" msgid="1425165101664071422">"تراجع"</string>
+    <string name="call_custom" msgid="6385303130912713318">"الاتصال على <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"الاتصال بهاتف منزلي"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"الاتصال بالجوال"</string>
+    <string name="call_work" msgid="5328785911463744028">"الاتصال بهاتف العمل"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"الاتصال بفاكس العمل"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"الاتصال بفاكس المنزل"</string>
+    <string name="call_pager" msgid="9003902812293983281">"الاتصال بجهاز النداء"</string>
+    <string name="call_other" msgid="8563753966926932052">"اتصال"</string>
+    <string name="call_callback" msgid="1910165691349426858">"الاتصال برقم معادوة الاتصال"</string>
+    <string name="call_car" msgid="3280537320306436445">"الاتصال بهاتف السيارة"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"الاتصال بهاتف الشركة الرئيسي"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"‏اتصال بـ ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"الاتصال بالهاتف الرئيسي"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"الاتصال برقم الفاكس"</string>
+    <string name="call_radio" msgid="8296755876398357063">"اتصال بهاتف لاسلكي"</string>
+    <string name="call_telex" msgid="2223170774548648114">"الاتصال بالتلكس"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"‏اتصال بـ TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"الاتصال بجوال العمل"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"الاتصال بجهاز نداء العمل"</string>
+    <string name="call_assistant" msgid="670941612175068337">"الاتصال على <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"اتصال بهاتف رسائل الوسائط المتعددة"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (اتصال)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"إرسال رسال نصية إلى <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"إرسال رسالة نصية إلى هاتف منزلي"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"إرسال رسالة نصية إلى جوال"</string>
+    <string name="sms_work" msgid="2269624156655267740">"إرسال رسالة نصية قصيرة إلى هاتف العمل"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"إرسال رسالة نصية قصيرة إلى فاكس العمل"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"إرسال رسالة نصية إلى فاكس المنزل"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"إرسال رسالة نصية إلى جهاز النداء"</string>
+    <string name="sms_other" msgid="806127844607642331">"إرسال رسالة نصية"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"إرسال رسالة إلى هاتف معاودة الاتصال"</string>
+    <string name="sms_car" msgid="7444227058437359641">"إرسال رسالة نصية إلى هاتف السيارة"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"إرسال رسالة نصية قصيرة على الهاتف الرئيسي للشركة"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"‏إرسال رسالة نصية قصيرة إلى ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"إرسال رسالة إلى الهاتف الرئيسي"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"إرسال رسالة إلى فاكس"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"إرسال رسالة إلى هاتف لاسلكي"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"إرسال رسالة نصية إلى هاتف تليكس"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"‏إرسال رسالة إلى TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"إرسال رسالة إلى جوال العمل"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"إرسال رسالة نصية قصيرة على جهاز نداء العمل"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"إرسال رسالة نصية إلى <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"إرسال رسالة وسائط متعددة"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (رسالة)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"إجراء مكالمة فيديو"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"هل تريد محو قائمة من يُتصل بهم كثيرًا؟"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"ستمحو قائمة من يتم الاتصال بهم كثيرًا في تطبيقي جهات الاتصال والهاتف، وستفرض على تطبيقات البريد الإلكتروني التعرف على تفضيلات توجيه الرسائل من البداية."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"جارٍ محو قائمة المُتصل بهم كثيرًا…"</string>
+    <string name="status_available" msgid="5586870015822828392">"متوفر"</string>
+    <string name="status_away" msgid="1838861100379804730">"بعيد"</string>
+    <string name="status_busy" msgid="9147992455450257136">"مشغول"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"غير ذلك"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"الدليل"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"دليل العمل"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"جميع جهات الاتصال"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"اتصال سريع لـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(بلا اسم)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"يتم الاتصال بهم بشكل متكرر"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"جميع جهات الاتصال التي لها أرقام هواتف"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"جهات الاتصال للملف الشخصي للعمل"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"عرض التحديثات"</string>
+    <string name="account_phone" msgid="7128032778471187553">"الجهاز"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"الاسم"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"اللقب"</string>
+    <string name="name_given" msgid="4280790853455320619">"الاسم الأول"</string>
+    <string name="name_family" msgid="7466985689626017037">"اسم العائلة"</string>
+    <string name="name_prefix" msgid="59756378548779822">"بادئة الاسم"</string>
+    <string name="name_middle" msgid="8467433655992690326">"الاسم الأوسط"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"لاحقة الاسم"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"الاسم صوتياً"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"الاسم الأول صوتيًا"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"الاسم الأوسط صوتيًا"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"اسم العائلة صوتيًا"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"الهاتف"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"البريد الإلكتروني"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"العنوان"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"المراسلة الفورية"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"المؤسسة"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"العلاقة"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"تاريخ مميز"</string>
+    <string name="sms" msgid="1756857139634224222">"رسالة نصية"</string>
+    <string name="postal_address" msgid="8765560217149624536">"العنوان"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"شركة"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"المسمى الوظيفي"</string>
+    <string name="label_notes" msgid="8337354953278341042">"ملاحظات"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"مخصص"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"موقع ويب"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"التصنيفات"</string>
+    <string name="email_home" msgid="8573740658148184279">"البريد الإلكتروني للمنزل"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"إرسال رسالة إلكترونية إلى عنوان بريد إلكتروني على الجوال"</string>
+    <string name="email_work" msgid="2807430017302722689">"البريد الإلكتروني للعمل"</string>
+    <string name="email_other" msgid="3454004077967657109">"بريد إلكتروني"</string>
+    <string name="email_custom" msgid="5536404237099078802">"إرسال بريد إلكتروني إلى <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"بريد إلكتروني"</string>
+    <string name="postal_street" msgid="8133143961580058972">"الشارع"</string>
+    <string name="postal_city" msgid="6597491300084895548">"المدينة"</string>
+    <string name="postal_region" msgid="6045263193478437672">"المحافظة"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"الرمز البريدي"</string>
+    <string name="postal_country" msgid="7638264508416368690">"البلد"</string>
+    <string name="map_home" msgid="1243547733423343982">"عرض عنوان المنزل"</string>
+    <string name="map_work" msgid="1360474076921878088">"عرض عنوان العمل"</string>
+    <string name="map_other" msgid="3817820803587012641">"عرض عنوان"</string>
+    <string name="map_custom" msgid="8761800628069473526">"عرض عنوان <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"‏الدردشة باستخدام AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"‏الدردشة باستخدام Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"‏الدردشة باستخدام Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"‏الدردشة باستخدام Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"‏الدردشة باستخدام QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"‏الدردشة باستخدام Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"‏الدردشة باستخدام ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"‏الدردشة باستخدام Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"دردشة"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"حذف"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"عرض المزيد من حقول الأسماء"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"تصغير حقول الأسماء"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"عرض المزيد من حقول الأسماء الصوتية"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"تصغير حقول الأسماء الصوتية"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"توسيع"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"تصغير"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"في وضع التوسيع"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"في وضع التصغير"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"جميع جهات الاتصال"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"مميّزة بنجمة"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"تخصيص"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"جهة الاتصال"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"جميع جهات الاتصال الأخرى"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"جميع جهات الاتصال"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"إزالة مجموعة متزامنة"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"إضافة مجموعة متزامنة"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"مزيد من المجموعات..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"ستؤدي إزالة \"<xliff:g id="GROUP">%s</xliff:g>\" من المزامنة أيضًا إلى إزالة أية جهات اتصال غير مجمعة من المزامنة."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"جارٍ حفظ خيارات العرض..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"عرض مُخصص"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"حفظ جهات الاتصال المستوردة إلى:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"‏شريحة SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"‏شريحة SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="zero">‏%1$d جهة اتصال</item>
+      <item quantity="two">‏%1$d جهتا اتصال</item>
+      <item quantity="few">‏%1$d جهات اتصال</item>
+      <item quantity="many">‏%1$d جهة اتصال</item>
+      <item quantity="other">‏%1$d جهة اتصال</item>
+      <item quantity="one">جهة اتصال واحدة</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="zero"><xliff:g id="COUNT_2">^1</xliff:g> جهة اتصال • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="two"><xliff:g id="COUNT_2">^1</xliff:g> جهتا اتصال • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> جهات اتصال • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> جهة اتصال • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> جهة اتصال • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> جهة اتصال • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"‏ملف .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"لا يوجد شيء للاستيراد"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"‏استيراد جهات الاتصال من vCard؟"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"هل تريد إلغاء استيراد <xliff:g id="FILENAME">%s</xliff:g>؟"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"هل تريد إلغاء تصدير <xliff:g id="FILENAME">%s</xliff:g>؟"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"‏تعذر إلغاء استيراد/تصدير vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"خطأ غير معروف."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"تعذر فتح \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"تعذر بدء المُصدر: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ليست هناك جهة اتصال قابلة للتصدير."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"لقد عطلت إذنًا مطلوبًا."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"حدث خطأ أثناء التصدير: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"‏خطأ I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"الذاكرة غير كافية. ربما يكون الملف أكبر مما يجب."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"التنسيق غير معتمد."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"تم الانتهاء من تصدير <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"تم الانتهاء من تصدير جهات الاتصال."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"تم الانتهاء من تصدير جهات الاتصال، انقر على الإشعار لمشاركة جهات الاتصال."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"انقر لمشاركة جهات الاتصال."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"تم إلغاء تصدير <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"تصدير بيانات جهة الاتصال"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"يجري تصدير بيانات جهات الاتصال."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"تعذر الحصول على معلومات قاعدة البيانات."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"لا توجد جهات اتصال قابلة للتصدير."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"‏لم يبدأ مؤلف vCard بشكل صحيح."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"تعذر التصدير"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"لم يتم تصدير بيانات جهة الاتصال.\nالسبب: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"جارٍ استيراد <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"‏تتعذر قراءة بيانات vCard."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"‏تم الانتهاء من استيراد ملف vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"تم إلغاء استيراد <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"سيتم استيراد <xliff:g id="FILENAME">%s</xliff:g> بعد قليل."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"سيتم استيراد الملف قريبًا."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"‏تم رفض طلب استيراد vCard. أعد المحاولة لاحقًا."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"سيتم تصدير جهات الاتصال قريبًا."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"‏تم رفض طلب تصدير vCard. أعد المحاولة لاحقًا."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"جهة اتصال"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"‏يجري تخزين ملفات vCard مؤقتًا على وحدة تخزين مؤقتة محلية. سيبدأ الاستيراد الفعلي قريبًا."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"‏تعذر استيراد vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"‏استلام ج اتص.NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"تخزين مؤقت"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"استيراد <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"‏تصدير إلى ملف vcf."</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"ترتيب بحسب"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"الاسم صوتياً"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"الإظهار دائمًا"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"الإخفاء إذا كان فارغًا"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"الاسم الأول"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"اسم العائلة"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"تنسيق الاسم"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"الاسم الأول أولاً"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"اسم العائلة /الاسم الأول"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"الحسابات"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"الحساب الافتراضي لجهات الاتصال الجديدة"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"معلوماتي"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"إعداد الملف الشخصي"</string>
+    <string name="setting_about" msgid="7014388749752042863">"حول جهات الاتصال"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"مشاركة جهات الاتصال المفضلة"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"مشاركة جميع جهات الاتصال"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"أخفقت مشاركة جهات الاتصال."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"تصدير جهات الاتصال"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"استيراد جهات اتصال من"</string>
+    <string name="share_error" msgid="948429331673358107">"لا يمكن مشاركة جهة الاتصال هذه."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"ليست هناك جهات اتصال لمشاركتها."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"جهات الاتصال المعروضة"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"جهات الاتصال المعروضة"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"تخصيص العرض"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"حفظ"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"البحث في قائمة جهات الاتصال"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"المفضلة"</string>
+    <string name="menu_import" msgid="6107961135813836467">"استيراد"</string>
+    <string name="menu_export" msgid="2658783911863503902">"تصدير"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"الأرقام المحظورة"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"عبر <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> عبر <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"إيقاف البحث"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"محو البحث"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"الحساب"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"استخدام هذا للمكالمات دائمًا"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"مكالمة مع ملاحظة"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"اكتب ملاحظة لإرسالها مع المكالمة..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"الإرسال والاتصال"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"نسخة الإصدار"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"تراخيص البرامج المفتوحة المصدر"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"تفاصيل الترخيص للبرامج مفتوحة المصدر"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"سياسة الخصوصية"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"بنود الخدمة"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"تراخيص البرامج المفتوحة المصدر"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"‏فشل فتح عنوان URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"تم تحديد <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"لم يتم تحديد <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"إجراء مكالمة فيديو"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"حذف"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"علامة حذف"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> دقيقة <xliff:g id="SECONDS">%2$s</xliff:g> ثانية"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ساعة <xliff:g id="MINUTES_1">%2$s</xliff:g> دقيقة <xliff:g id="SECONDS">%3$s</xliff:g> ثانية"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"تم تعطيل هذا الاختصار"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"تمت إزالة جهة الاتصال"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"استيراد"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"تحديد جهات الاتصال"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"‏ليس هناك جهات اتصال على شريحة SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"جهة الاتصال موجودة فعلاً في قائمتك"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="zero">‏تم استيراد جهتي اتصال (<xliff:g id="COUNT">%d</xliff:g>) من شريحة SIM</item>
+      <item quantity="two">‏تم استيراد <xliff:g id="COUNT">%d</xliff:g> جهات اتصال من شريحة SIM</item>
+      <item quantity="few">‏تم استيراد <xliff:g id="COUNT">%d</xliff:g> جهة اتصال من شريحة SIM</item>
+      <item quantity="many">‏تم استيراد <xliff:g id="COUNT">%d</xliff:g> جهة اتصال من شريحة SIM</item>
+      <item quantity="other">‏تم استيراد <xliff:g id="COUNT">%d</xliff:g> جهة اتصال من شريحة SIM</item>
+      <item quantity="one">‏تم استيراد جهة اتصال واحدة من شريحة SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"‏فشل استيراد جهات الاتصال من شريحة SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"‏استيراد من SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"إلغاء"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"المزامنة التلقائية متوقفة. انقر للتشغيل."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"تجاهل"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"مزامنة الحساب متوقفة. انقر للتشغيل."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"تشغيل المزامنة التلقائية؟"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"‏سيتم تحديث التغييرات التي أجريتها على كل التطبيقات والحسابات، وليس فقط جهات اتصال Google، بين الويب وأجهزتك."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"تشغيل"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"لا اتصال"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"‏شريحة SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"عرض المزيد"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"‏انتهى استيراد شريحة SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"أخفق الاستيراد"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"‏تعذر استيراد جهات الاتصال من شريحة SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"‏استيراد SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
deleted file mode 100644
index 67721e6..0000000
--- a/res/values-az-rAZ/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktlar"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontaktlar"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Kontakta baxın"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Kontaktları Redaktə Edin"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Kontaktlar"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Birbaşa nömrə yığımı"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Birbaşa mesaj"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Kontakt qısayolunu seçin"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Zəng üçün nömrə seçin"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Mesaj göndərmək üçün nömrə seçin"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Kontakta əlavə edin"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontakt seçin"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Yeni kontakt yaradın"</string>
-    <string name="starredList" msgid="4817256136413959463">"Ulduzlu"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Tez-tez"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Seçilmişlər"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontakt detalları"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Kontakta düzəliş edin"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Kontakt yaradın"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Qrupa düzəliş edin"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Qrup yaradın"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Haqqında"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Güncəlləşdirmələr"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Kontakt axtarın"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Kontakta baxın"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Favoritlərə əlavə edin"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Favoritlərdən yığışdırın"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Seçilmişlərdən silindi"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Favoritlərə əlavə edin"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Düzəliş edin"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Silin"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Şəkli dəyiş"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Əsas ekranda yer"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Kontakta zəng edin"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Mətn kontaktı"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Parçalayın"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Düzəliş edin"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Silin"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Kontakt əlavə edin"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Qrupu əlavə edin"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Bu kontakt çoxsaylı kontaktlara parçalansın?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Parçalayın"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Hal-hazırda etdiyiniz dəyişiklikləri yadda saxlamaq və bu kontaktı çoxsaylı kontaktlara parçalamaq istərdiniz?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Yadda saxlayın və parçalayın"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Hal-hazırda etdiyiniz dəyişiklikləri yadda saxlamaq və seçilmiş kontaktla əlaqələndirmək istərdiniz?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Yadda saxlayın və Əlaqələndirin"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Əlaqə"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Yadda saxlayın"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontaktları əlaqələndirin"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> ilə əlaqələndirmək istədiyiniz kontaktı seçin:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Bütün kontaktları göstərin"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Təklif edilmiş kontaktlar"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Bütün kontaktlar"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktlar əlaqələndirildi"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Kontakt silindi</item>
-      <item quantity="one">Kontakt silindi</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Zəng səsi seçin"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Bütün zənglər səsli poçta"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Yalnız-oxunabilən hesablardan olan kontaktlar silinə bilməz, lakin gizlədilə bilər."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Gizlədin"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Silinəcək kontaktın çoxsaylı hesablardan detalları var. Yalnız-oxunabilən hesablardan olan detallar gizlədiləcək, silinməyəcək."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Əlaqələndirməni yerinə yetirmək üçün ən az iki kontaktınız olmalıdır."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Seçilmiş kontaktlar əlaqələndirilsin?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Link"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Bu kontakt silinsin?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Seçilmiş kontaktlar silinsin?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Yalnız-oxunabilən hesablardan olan kontaktlar silinə bilməz, lakin gizlədilə bilər."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Silinəcək kontaktların çoxsaylı hesablardan detalları var. Yalnız-oxunabilən hesablardan olan detallar gizlədiləcək, silinməyəcək."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Bu kontaktın silinməsi çoxsaylı hesablardan detalların silinməsi ilə nəticələnəcək."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Bu kontakt silinsin?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Silin"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Dəyişiklikləri kənarlaşdırın"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt mövcud deyil."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt Əsas ekrana elavə edilib."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> Əsas ekrana əlavə edilib."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Yeni kontakt yaradın"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Yeni kontakt yaradın"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Təşkilat"</item>
-    <item msgid="7196592230748086755">"Qeyd"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Planşetdə şəkillər əlçatımlı deyil."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Telefonda heç bir şəkil əlçatımlı deyil."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakt fotosu"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Fərdi etiket adı"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Səsləri birbaşa səsli poçta göndərin"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Fotonu yığışdırın"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Kontakt yoxdur"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Qrup yoxdur."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Qrup yaratmaq üçün hesaba ehtiyacınız var."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Bu qrupda adam yoxdur."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Bəzilərini əlavə etmək üçün qrupu redaktə edin"</string>
-    <string name="savingContact" msgid="4075751076741924939">"Kontakt yadda saxlanır..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt yadda saxlanıldı"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktlar əlaqələndirilməyib"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kontakt dəyişiklikləri saxlanıla bilmədi."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Kontaktdan ayrıla bilmədi."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kontaktı əlaqələndirə bilmədi."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Kontaktın yadda saxlanmasında xəta"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Kontakt foto dəyişiklikləri yadda saxlanılmadı."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Qrup yadda saxlanıldı."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Qrup dəyişiklikləri yadda saxlanılmadı."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> əlaqə</item>
-      <item quantity="one"> telefon nömrəsi olan 1 əlaqə</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Telefon nömrəsi olan kontakt yoxdur"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tapıldı</item>
-      <item quantity="one">1 tapıldı</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Kontakt yoxdur"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tapıldı</item>
-      <item quantity="one">1 nəfər tapıldı</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Bütün"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritlər"</string>
-    <string name="callBack" msgid="5498224409038809224">"Geriyə zəng"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Yenidən zəng edin"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Zəngi qaytarın"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" kontaktlara əlavə olunsun?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"Kontakt şəkli"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktdan <xliff:g id="CURRENT_NUMBER">%s</xliff:g> kontakt"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Kontaktlarınızın adları"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Bu əməliyyatı idarə etmək üçün heç bir tətbiq tapılmadı."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Öncəki ekrana qayıtmaq üçün klikləyin"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Digər nömrə əlavə edin"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"E-mail əlavə edin"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Bu əməliyyatı idarə etmək üçün heç bir tətbiq tapılmadı."</string>
-    <string name="menu_share" msgid="943789700636542260">"Paylaşın"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Kontaktlara əlavə edin"</string>
-    <string name="share_via" msgid="563121028023030093">"Kontaktı bu vasitə ilə paylaşın:"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Hesab altında qrup yaradın"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Səsli çat"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Video çat"</string>
-    <string name="connections" msgid="8098440723172028350">"Əlaqələr"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Bağlantı əlavə edin"</string>
-    <string name="recent" msgid="2659189233141493004">"Son"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Son güncəlləşmələr"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> hesabı"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Bu tətbiqdən düzəliş edilə bilən deyil."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Bu cihaz üçün redaktəolunmazdır."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Fotoşəkil çəkin"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Yeni foto çəkin"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Foto seçin"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Yeni foto seçin"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontakt siyahısı güncəlləşdirilir."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Axtarılır..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Seçilmişləri göstər"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Hamısını göstər"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Hamısını seçin"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Heç birini seçməyin"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Yenisini əlavə edin"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Təşkilat əlavə edin"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarix"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Qrup adı"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Dəyişdir"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Əsas şəkil"</string>
-    <string name="description_star" msgid="2605854427360036550">"sevimli"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Kontaktı redaktə edin"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Cari kontakt seçilmiş kontaktla əlaqələndirilsin?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Seçilmiş kontaktın redaktəsinə keçirilsin? Hazırda daxil etdiyiniz informasiya kopyalanacaq."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kontaktlarıma Kopyalayın"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Kontaktlarıma Əlavə Edin"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Kataloq <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Adət"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Ayarlar"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Ayarlar"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Kömək &amp; əks əlaqə"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Displey seçənəkləri"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Telefon nömrəsi"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Kontaktlara əlavə edin"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Kontakta əlavə edin"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Qapadın"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"İl daxil edin"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Yüklənir…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Yeni kontakt yaradın"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Hesab əlavə edin"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Kontaktları import edin"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Yeni qrup yarat"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Yeni qrup yarat"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> qrup</item>
-      <item quantity="one">1 qrup</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" qrupu silinsin? (Kontaktlar silinməyəcək.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>hesabından <xliff:g id="COUNT_2">%1$d</xliff:g> nəfər</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g>hesabından <xliff:g id="COUNT_0">%1$d</xliff:g> nəfər</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> nəfər</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> nəfər</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Digəri ilə əlaqələndirilmədən öncə kontakt adı yazın."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Panoya kopyalayın"</string>
-    <string name="set_default" msgid="4417505153468300351">"Defolt ayarlayın"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Defoltu təmizləyin"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Mətn kopyalandı"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Dəyişiklikləriniz kənarlaşdırılsın?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Ləğv edin"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Profilimi quraşdırın"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Şəxsin adını yazın"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Qrup adı"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Yerli profilim"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Mənim <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilim"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Bütün kontaktlar göstərilir"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktlar Google Hesab ilə daha yaxşı işləyir.\n\n• İstənilən brauzerdən giriş imkanı.\n• Kontaktlarınız güvənli şəkildə yedəklənir."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Telefonunuzu itirsəniz belə, kontaktlarınızı təhlükəsiz saxlayın: onlayn xidmət ilə sinxronlaşdırın."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Hesab əlavə edin"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Yeni kontaktınız yedəklənməyəcək. Kontaktları onlayn yedəkləyən hesab əlavə olunsun?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Yeni kontaktlar <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> hesabında yadda saxlanacaq."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Yeni kontaktlar üçün defolt hesab seçin:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Yeni kontakt əlavə edin"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontakta düzəliş edin"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Lokal saxlayın"</string>
-    <string name="add_account" msgid="8201790677994503186">"Hesab əlavə edin"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Yeni hesab əlavə edin"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Data baza fayllarını eksport edin"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"yeni kontakt əlavə edin"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Daha çoxunu görün"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Baxışı kiçildin"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Hamısına baxın"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Son"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Haqqında"</string>
-    <string name="send_message" msgid="8938418965550543196">"Mesaj göndərin"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Şəxsi nüsxə yaradılır..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Dünən"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Sabah"</string>
-    <string name="today" msgid="8041090779381781781">"Bu gün"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Bu gün saat <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Sabah saat <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Başlıqsız tədbir)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Ayarlayın"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Təşkilat"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Nik"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Qeyd"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Veb sayt"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Tədbir"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Əlaqə"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Hesab"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Ad"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"E-poçt"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Şəkil"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Əlaqə redaktorunu genişləndirmək üçün klikləyin."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Əlaqə redaktorunu yığışdırmaq üçün klikləyin."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"məkana istiqamətlər"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"son sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. cavab üçün klikləyin"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"gələn"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"gedən"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"buraxılmış"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"son çağrı. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. zəng etmək üçün klikləyin"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Siz: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Siz hər hansı bir şəxsin Görüşlə bağlı identifikatorlarını e-poçt sahəsi və ya telefon sahəsinə daxil edəndə, Görüş yerləri daha yaxşı işləyir."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Daha çox sahə"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Şəkli dəyişin"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Redaktoru açmaq uğursuz oldu."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Hesabda yadda saxlanır"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Hal-hazırda <xliff:g id="ACCOUNT_NAME">%s</xliff:g> hesabında yadda saxlanır. Fərqli hesab seçmək üçün iki dəfə basın."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Əlaqələnmiş kontakt (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Əlaqələnmiş kontakt</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> əlaqələnmiş kontakt"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"KONTAKTLARI ƏLAQƏLƏNDİRİN"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"LƏĞV EDİN"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Mümkün dublikat</item>
-      <item quantity="one">1 Mümkün dublikat </item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> əlaqələnmiş kontakt</item>
-      <item quantity="one">1 əlaqələnmiş kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Bu kontakt"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mümkün dublikatlar"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Bu kontaktlar eyni şəxsə aid ola bilər. Onları bir kontaktda birləşdirə bilərsiniz."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Əlaqələndirilmiş kontaktlar"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Hesablarınızdan"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Şəkil çək"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Bütün fotolar"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Foto seçin"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> hesabından"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> datasını silin"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> datasını silin"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>istifadəçisindən gələn foto yoxlanmadı"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> istifadəçisindən gələn foto yoxlandı"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Naməlum hesabdan olan foto yoxlanmadı"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Naməlum hesabdan olan foto yoxlandı"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kontakt siyahısı dilin dəyişməsinə uyğun olaraq güncəlləşir.\n\nLütfən, gözləyin..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Nömrə əlavə edin"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Nömrəni blok edin"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Nömrə əlavə edin və ya kontaktlarda axtarın"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> nömrəsi blokdan çıxarılsın?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"BLOKDAN ÇIXARIN"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> nömrəsi blok edilsin?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOK"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blok edilib"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> blokdan çıxarılıb"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> yanlışdır."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Çağrının blok edilməsi müvəqqəti olaraq deaktiv edilib"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Son 48 saat ərzində bu telefondan təcili yardım xidmətləri ilə əlaqə saxladığınız üçün Çağrı Bloklanması deaktiv edildi. 48 saatlıq müddət başa çatdıqda avtomatik olaraq yenidən aktiv ediləcək."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"İmport"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Rəqəmlərə baxın"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Nömrə əlavə edin"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Çağrının bloklanması 48 saatlıq deaktiv edildi"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Təcili zəng olduğu üçün deaktiv edildi."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"LƏĞV EDİN"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> artıq bloklanıb."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Nömrəni blokdan çıxarın"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> üçün kontakt detalları"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import alınmadı"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Nömrələri import edin"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktiv edin"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
new file mode 100644
index 0000000..72c4809
--- /dev/null
+++ b/res/values-az/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktlar"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Kontaktlar"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Kontakt əlavə edin"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Birbaşa nömrə yığımı"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Birbaşa mesaj"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Kontakt seçin"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Kontakta əlavə edin"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontakt seçin"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Seçin"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Yeni kontakt yaradın"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Kontakt axtarın"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Favoritlərə əlavə edin"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Favoritlərdən yığışdırın"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Seçilmişlərdən silindi"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Favoritlərə əlavə edin"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Düzəliş edin"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Silin"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Şəkli dəyiş"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Qısayol yaradın"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Parçalayın"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Kontaktları silin"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Etiketin adını dəyişin"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Etiketi silin"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Kontakt əlavə edin"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Kontaktları seçin"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Kontakt əlavə edin"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Etiketdən silin"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Etiket yaradın"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Bu kontakt çoxsaylı kontaktlara parçalansın?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Parçalayın"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Hal-hazırda etdiyiniz dəyişiklikləri yadda saxlamaq və bu kontaktı çoxsaylı kontaktlara parçalamaq istərdiniz?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Yadda saxlayın və parçalayın"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Hal-hazırda etdiyiniz dəyişiklikləri yadda saxlamaq və seçilmiş kontaktla əlaqələndirmək istərdiniz?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Yadda saxlayın və Əlaqələndirin"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Əlaqələndirilir"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Əlaqə ləğv edilir"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Əlaqə"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Əlaqələnmiş kontaktlara baxın"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Yadda saxlayın"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontaktları əlaqələndirin"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> ilə əlaqələndirmək istədiyiniz kontaktı seçin:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Təklif edilmiş kontaktlar"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Bütün kontaktlar"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ilə bağlantı"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktlar əlaqələndirildi"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> silindi"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> və <xliff:g id="NAME_1">%2$s</xliff:g> silindi"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… silindi"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Kontakt silindi</item>
+      <item quantity="one">Kontakt silindi</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakt</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google\'dan"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> hesabından"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Zəng səsi seçin"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Səsli poçta istiqamətləndirin"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Səsli poçta istiqamətləndirməyin"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Bu kontakt yalnız oxunmaq üçündür. O silinə bilməz lakin, gizlədə bilərsiniz."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Kontaktı Gizlədin"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Bu kontaktdakı yalnız-oxunabilən hesablar gizlədiləcək, silinməyəcək."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Bu kontakt silinsin?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Seçilmiş kontaktlar silinsin?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Yalnız-oxunabilən hesablardan olan kontaktlar silinə bilməz, lakin gizlədilə bilər."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Silinəcək kontaktların çoxsaylı hesablardan detalları var. Yalnız-oxunabilən hesablardan olan detallar gizlədiləcək, silinməyəcək."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Bu kontaktın silinməsi çoxsaylı hesablardan detalların silinməsi ilə nəticələnəcək."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Bu kontakt silinsin?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Silin"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt mövcud deyil."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt Əsas ekrana elavə edilib."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> Əsas ekrana əlavə edilib."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Cihazda şəkil yoxdur."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakt fotosu"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Fərdi etiket adı"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Fotonu yığışdırın"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Kontakt siyahınız boşdur"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Bu etiketlə kontakt yoxdur"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Bu hesabda heç bir kontakt yoxdur"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Kontakt siyahınız boşdur"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> saxlanıldı"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt yadda saxlanıldı"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktlar əlaqələndirilməyib"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Kontakt dəyişiklikləri saxlanıla bilmədi"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Kontaktdan ayrıla bilmədi"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontaktı əlaqələndirə bilmədi"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Kontaktın yadda saxlanmasında xəta"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Kontakt foto dəyişiklikləri yadda saxlanılmadı"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Etiketi yükləmək uğursuz oldu"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiket silindi"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiket yaradıldı"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Etiket yarada bilməz"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiket yeniləndi"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Etiketdən silindi"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Etiketə əlavə edildi"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Etiket dəyişikliyini yadda saxlamaq mümkün olmadı"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Həmin etiket artıq mövcuddur"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Bəzi kontaktlarda e-poçt ünvanı yoxdur."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Bəzi kontaktlarda telefon nömrələri yoxdur."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"E-məktub göndərin"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Mesaj göndərin"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Kontaktları seçin"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Göndərin"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Kontakt yoxdur"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" kontaktlara əlavə olunsun?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Kontaktlarınızın adları"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Öncəki ekrana qayıtmaq üçün klikləyin"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Digər nömrə əlavə edin"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"E-mail əlavə edin"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Bu əməliyyatı idarə etmək üçün heç bir tətbiq tapılmadı."</string>
+    <string name="menu_share" msgid="943789700636542260">"Paylaşın"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Kontaktlara əlavə edin"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Əlavə edin"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Kontaktları bu vasitə ilə paylaşın:</item>
+      <item quantity="one">Kontaktı bu vasitə ilə paylaşın:</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Hesab seçin"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Etiket yaradın"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Etiketin adını dəyişin"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etiket adı"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Etiket adı"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Səsli çat"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Video çat"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> hesabı"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Fotoşəkil çəkin"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Yeni foto çəkin"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Foto seçin"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Yeni foto seçin"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Axtarılır..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarix"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiket"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Ləğv edin"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Geri"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"qapadın"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Seçilmiş kontaktın redaktəsinə keçirilsin? Hazırda daxil etdiyiniz informasiya kopyalanacaq."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Kataloq <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Ayarlar"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Ayarlar"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Kömək &amp; əks əlaqə"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Telefon nömrəsi"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Kontaktlara əlavə edin"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Qapadın"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"İl daxil edin"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Hesab əlavə edin"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"İmport"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Yenisini yaradın..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" etiketi silinsin? (Kontaktların özləri silinməyəcək.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Digəri ilə əlaqələndirilmədən öncə kontakt adı yazın."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Panoya kopyalayın"</string>
+    <string name="set_default" msgid="4417505153468300351">"Defolt ayarlayın"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Defoltu təmizləyin"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Mətn kopyalandı"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Dəyişikliklər ləğv edilsin?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Ləğv edin"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Ləğv edin"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Fərdiləşmə ləğv edilsin?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Kontakt axtarın"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Kontaktları silin"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Yerli profilim"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Mənim <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilim"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Kontaktlarınızı Google\'a yedəkləyən hesabı əlavə etmək üçün bir dəqiqənizi ayırın."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Yeni kontaktlar <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> hesabında yadda saxlanacaq."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Yeni kontaktlar üçün defolt hesab seçin:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Yeni kontakt yaradın"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontakta düzəliş edin"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Yalnız görüntü"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Redaktə etmək üçün kontakt seçin"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Əlaqələndirilmiş kontaktlar"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Əlavə edin"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Parçalayın"</string>
+    <string name="add_account" msgid="8201790677994503186">"Hesab əlavə edin"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Yeni hesab əlavə edin"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Data baza fayllarını eksport edin"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Yeni kontakt yaradın"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Daha çoxunu görün"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Baxışı kiçildin"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Son"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Haqqında"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Şəxsi nüsxə yaradılır..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Sabah"</string>
+    <string name="today" msgid="8041090779381781781">"Bu gün"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Bu gün saat <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Sabah saat <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Başlıqsız tədbir)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Ayarlayın"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Təşkilat"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Nik"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Qeyd"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Veb sayt"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Tədbir"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Əlaqə"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Ad"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"E-poçt"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"məkana istiqamətlər"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"son sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. cavab üçün klikləyin"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"gələn"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"gedən"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"buraxılmış"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"son çağrı. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. zəng etmək üçün klikləyin"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Siz: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Daha çox sahə"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Kontakt fotosunu dəyişin"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Kontakt fotosu əlavə edin"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontakt fotosu"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Redaktoru açmaq uğursuz oldu."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Hesabda yadda saxlanır"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> hesabından olan kontakt məlumatı redaktə olunmur"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"KONTAKTLARI ƏLAQƏLƏNDİRİN"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"LƏĞV EDİN"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Bu kontakt"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mümkün dublikatlar"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Bu kontaktlar eyni şəxsə aid ola bilər. Onları bir kontaktda birləşdirə bilərsiniz."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> datasını silin"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> datasını silin"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Təkliflər"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Yeni"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Naviqasiya siyirməsini açın"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Naviqasiya siyirməsini qapadın"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> etiketi"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"İşarələr"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Hesablar"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Tarixçənizə birlikdə baxın"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Tədbirlər və mesajlar"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Tədbirlər"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mesajlarım"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Təkliflər"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Kontaktlarınızı sistemləşdirin"</string>
+    <string name="undo" msgid="1425165101664071422">"Geri qayıdın"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> nömrəsinə zəng edin"</string>
+    <string name="call_home" msgid="1990519474420545392">"Evə zəng"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Mobil cihaza zəng edin"</string>
+    <string name="call_work" msgid="5328785911463744028">"İşə zəng"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"İş faksına zəng edin"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Ev faksına zəng edin"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Peycerə zəng edin"</string>
+    <string name="call_other" msgid="8563753966926932052">"Zəng edin"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Geriyə zəng edin"</string>
+    <string name="call_car" msgid="3280537320306436445">"Avtomobil zəngi"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Əsas şirkət zəngi"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN zəng edin"</string>
+    <string name="call_main" msgid="6082900571803441339">"Əsas zəng"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Faksa zəng edin"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Radioya zəng edin"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Teleksə zəng edin"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD zəng edin"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"İş mobil telefonuna zəng edin"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"İş peycerinə zəng edin"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> nömrəsinə zəng edin"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS Zəng"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Zəng)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> nömrəsinə məktub göndərin"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Ev mətni"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Mobil mətn"</string>
+    <string name="sms_work" msgid="2269624156655267740">"İş nömrəsinə mesaj"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"İş faksına mesaj göndərin"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Ev faksına mesaj göndərin"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Peycer nömrəsinə mesaj"</string>
+    <string name="sms_other" msgid="806127844607642331">"Mətn"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Geri zəng nömrəsinə mesaj"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Avtomobil nömrəsinə mesaj"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Əsas şirkət mətni"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN mətni"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Əsas mətn"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Faks nömrəsinə mesaj"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Radio mətni"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Teleks nömrəsinə mesaj"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD nömrəsinə mesaj"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"İş mobil nömrəsinə mesaj"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"İş peyceri mətni"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Mətn <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS nömrəsinə mesaj"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Mesaj)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Video zəng edin"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Tez-tez ünsiyyət qurulanlar silinsin?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Əlaqələr və Telefon proqramlarında tez-tez əlaqə saxlanılanların siyahısını siləcəksiniz və fraqmentdən ünvanlama seçimlərinizi öyrənmək üçün e-poçt proqramlarını məcbur edəcəksiniz."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Tez-tez ünsiyyət qurulanlar silinir..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Əlçatımlı"</string>
+    <string name="status_away" msgid="1838861100379804730">"Kənar"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Məşğul"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Digər"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Kataloq"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"İş kataloqu"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Bütün kontaktlar"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> üçün tez kontakt"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(ad yoxdur)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Tez-tez əlaqə saxlanan"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Telefon nömrələri olan bütün kontaktlar"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"İş profili kontaktları"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Güncəlləşmələri göstər"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Cihaz"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Ad"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nik"</string>
+    <string name="name_given" msgid="4280790853455320619">"Ad"</string>
+    <string name="name_family" msgid="7466985689626017037">"Soyad"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Ad prefiksi"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Atasının adı"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Ad suffiksi"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetik ad"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetik ad"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetik atasının adı"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetik soyad"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-poçt"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Ünvan"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Təşkilat"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Əlaqə"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Xüsusi tarix"</string>
+    <string name="sms" msgid="1756857139634224222">"Mətn mesajı"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Ünvan:"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Şirkət"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Başlıq"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Qeydlər"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Fərdi"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Veb sayt"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"İşarələr"</string>
+    <string name="email_home" msgid="8573740658148184279">"Evə e-məktub yazın"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Mobil ünvana e-məktub"</string>
+    <string name="email_work" msgid="2807430017302722689">"İşə e-məktub yazın"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-poçt"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ünvanına məktub göndərin"</string>
+    <string name="email" msgid="5668400997660065897">"E-poçt"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Küçə"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Şəhər"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Dövlət"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Poçt indeksi"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Ölkə"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ev ünvanına baxın"</string>
+    <string name="map_work" msgid="1360474076921878088">"İş ünvanına baxın"</string>
+    <string name="map_other" msgid="3817820803587012641">"Ünvana baxın"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>ünvanına baxın"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM üzərindən çat"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live üzərindən söhbət"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo üzərindən çat"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype üzərindən çat"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ üzərindən çat"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Söhbət üzərindən çat"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ üzərindən çat"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber üzərindən çat"</string>
+    <string name="chat" msgid="9025361898797412245">"Çat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"sil"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Daha çox ad sahələri göstərin"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Ad sahələrini yığcamlaşdırın"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Daha çox fonetik ad sahələri göstərin"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Fonetik ad sahələrini yığcamlaşdırın"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Genişləndirin"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Yığcamlaşdırın"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Genişləndirilib"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Yığcamlaşdırılıb"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Bütün kontaktlar"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Ulduzlu"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Fərdiləşdirin"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Bütün digər kontaktlar"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Bütün kontaktlar"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Sinxronizasiya qrupunu silin"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Sinx qrup əlavə edin"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Daha çox qrup..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\" qrupunun sinxronlaşmadan silinməsi istənilən qrupsuz kontaktı da sinxronlaşmadan siləcək."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Displey seçənəkləri yadda saxlanır..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Fərdiləşdirilmiş görünüş"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"İmport olunan kontaktları yadda saxlayın:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SİM kart"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SİM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kontakt</item>
+      <item quantity="one">1 kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf faylı"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"İmport etmək üçün heç nə yoxdur"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Kontaktlar vCard\'dan import edilsin?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> importu ləğv olunsun?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> eksportu ləğv edilsin?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Vizit kart importunu/eksportunu ləğv etmək mümkün olmadı"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Naməlum xəta."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" açmaq olmadı: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Eksporteri başlatmaq olmadı: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Eksport edilə bilən heç bir kontakt yoxdur."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Tələb olunan icazəni deaktiv etmisiniz."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Eksport zamanı xəta baş verdi: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O xəta"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Yetərincə yaddaş yoxdur. Fayl çox böyük ola bilər."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format dəstəklənmir."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> eksportu bitdi."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Kontaktların eksportu tamamlandı."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontaktların eksportu tamamlandı, kontaktları paylaşmaq üçün bildirişə tıklayın."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Kontaktları paylaşmaq üçün toxunun."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> eksportu ləğv edildi."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kontakt datası eksport olunur"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontakt datası eksport olunur."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Verilənlər bazası məlumatları əldə oluna bilmədi."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Burada eksport edilə bilən kontakt yoxdur."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Vizit kart tərtibçisi düzgün başlamadı."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Eksport edilə bilmədi"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontakt datası eksport edilmədi.\nSəbəb: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> import edilir"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Vizit kart datası oxuna bilmədi"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g> vizit kart importu qurtardı"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> importu ləğv edildi"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> tezliklə import olunacaq."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Bu fayl tezliklə import ediləcək."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Vizit kart import sorğusu rədd edildi. Yenidən cəhd edin."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontaktlar tezliklə eksport ediləcək."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Vizit kart eksport sorğusu rədd edildi. Daha sonra cəhd edin."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Vizit kart yerli müvəqqəti yaddaşa keşlənir. Hazırkı import tezliklə başlayacaq."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Vizit kart import edilə bilmədi."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt NFC üzərindən alınıb"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Keşləndirilir"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"İmport edilir: <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf fayldan eksport edin"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sıralayın:"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetik ad"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Həmişə göstərin"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Boşdursa gizlədin"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ad"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Soyad"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Ad formatı"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Ad ilk yazılsın"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Soyad ilk yazılsın"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Hesablar"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Yeni kontaktlar üçün defolt hesab"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Məlumatlarım"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Profilinizi quraşdırın"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Kontaktlar Haqqında"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Sevdiyiniz kontaktları paylaşın"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Bütün kontaktları paylaşın"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kontaktları paylaşmaq uğursuz oldu."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Kontaktları eksport edin"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Kontaktları buradan import edin:"</string>
+    <string name="share_error" msgid="948429331673358107">"Bu kontakt paylaşıla bilməz."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Bölüşmək üçün kontakt yoxdur."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Göstərilməli kontaktlar"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Göstəriləsi kontaktlar"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Görünüşü fərdiləşdirin"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Yadda saxlayın"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Kontakt axtarın"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritlər"</string>
+    <string name="menu_import" msgid="6107961135813836467">"İmport edin"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksport edin"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Bloklanmış nömrələr"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> vasitəsilə"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> vasitəsilə <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"axtarışı dayandırın"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Axtarışı təmizləyin"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Hesab"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Həmişə bu zənglər üçün istifadə edin"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Qeyd ilə zəng edin"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Zəng ilə göndərmək üçün qeyd yazın..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"GÖNDƏRİN &amp; ZƏNG EDİN"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Quruluş versiyası"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Mənbə lisenziyalarını açın"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Açıq mənbə proqramı üçün lisenziya detalları"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Məxfilik siyasəti"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Xidmət şərtləri"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Mənbə lisenziyalarını açın"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Linki açmaq alınmadı."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> yoxlanılıb"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> yoxlanılmayıb"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Video zəng edin"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Silin"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellips"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> saniyə"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> dəq <xliff:g id="SECONDS">%2$s</xliff:g> san"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> saat <xliff:g id="MINUTES_1">%2$s</xliff:g> dəqiqə <xliff:g id="SECONDS">%3$s</xliff:g> saniyə"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Bu qısayol deaktiv edildi"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt silindi"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"İmport"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Kontaktları seçin"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM kartınızda kontakt yoxdur"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt artıq siyahıda var"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM kontakt import edildi</item>
+      <item quantity="one">1 SIM kontakt</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM kontaktları import etmək olmadı"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM kartdan import edin"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Ləğv edin"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Avto-sinxronizasiya deaktivdir. Aktiv etmək üçün toxunun."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Yığışdırın"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Avto-sinxronizasiya deaktivdir. Aktiv etmək üçün toxunun."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Avto-sinxronizasiya aktiv edilsin?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Sadəcə Google Kontaktlar deyil, bütün tətbiq və hesablarda edəcəyiniz dəyişikliklər veb və cihaz arasında saxlanacaq."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Aktiv edin"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Bağlantı yoxdur"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Daha çox göstərin"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM kartın importu tamamlandı"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"İmport alınmadı"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kontaktları SIM kartdan import etmək olmadı"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM import edilir"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 969b25a..d4d812c 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakti"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakti"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Prikaži kontakt"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Izmeni kontakt"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Dodaj kontakt"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direktno biranje"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direktna poruka"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Odaberite prečicu za kontakt"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Odaberite broj za poziv"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Odaberite broj za slanje poruka"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Izaberite kontakt"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Dodajte kontaktu"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Izaberite kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Izaberite"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Napravi novi kontakt"</string>
-    <string name="starredList" msgid="4817256136413959463">"Sa zvezdicom"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Česti"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Omiljeno"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detalji o kontaktu"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Izmeni kontakt"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Napravi kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Izmeni grupu"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Napravi grupu"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Osnovni podaci"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Ažuriranja"</string>
     <string name="searchHint" msgid="8482945356247760701">"Pretraži kontakte"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Prikaži kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Dodaj u omiljene kontakte"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Ukloni iz omiljenih kontakata"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Uklonjeno je iz Omiljenog"</string>
@@ -49,41 +35,59 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Izmeni"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Izbriši"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Promeni sliku"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Postavi na Početni ekran"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Pozovi kontakt"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Pošalji SMS kontaktu"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Napravi prečicu"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Razdvoji"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Izmeni"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Izbriši"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Dodaj kontakt"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Dodaj grupu"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Ukloni kontakte"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Preimenuj oznaku"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Izbriši oznaku"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Dodaj kontakt"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Izaberi kontakte"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Dodaj kontakte"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Ukloni iz oznake"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Napravi oznaku"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Želite li da razdvojite ovaj kontakt u više kontakata?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Razdvoji"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Želite li da sačuvate promene koje ste već obavili i razdvojite ovaj kontakt u više kontakata?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Sačuvaj i razdvoji"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Želite li da sačuvate promene koje ste već obavili i objedinite ovaj kontakt sa izabranim kontaktom?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Sačuvaj i objedini"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Povezuje se"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Opoziva se veza"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Objedini"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Prikaži objedinjene kontakte"</string>
     <string name="menu_save" msgid="1727844363591825909">"Sačuvaj"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Objedinite kontakte"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Izaberite kontakt koji želite da objedinite sa kontaktom <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Prikaži sve kontakte"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Predloženi kontakti"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Svi kontakti"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Kontakti su povezani sa <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakti su objedinjeni"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> je izbrisan/a"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> i <xliff:g id="NAME_1">%2$s</xliff:g> su izbrisani"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… su izbrisani"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Kontakti su izbrisani</item>
       <item quantity="few">Kontakti su izbrisani</item>
       <item quantity="other">Kontakti su izbrisani</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> kontakt</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontakta</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakata</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakta · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakata · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Sa Google-a"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Sa <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Podesi melodiju zvona"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Svi pozivi u govornu poštu"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakti sa naloga koji su samo za čitanje ne mogu da se izbrišu, ali mogu da se sakriju."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Sakrij"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakt koji ste izabrali za brisanje sadrži detalje sa više naloga. Detalji sa naloga koji su samo za čitanje će biti skriveni, ali ne i izbrisani."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Treba da izaberete najmanje dva kontakta da biste ih objedinili."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Želite li da objedinite izabrane kontakte?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Objedini"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Usmeri na govornu poštu"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ne usmeravaj na govornu poštu"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ovaj kontakt je samo za čitanje. Ne možete da ga izbrišete, ali možete da ga sakrijete."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Sakrij kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Nalozi koji su samo za čitanje u okviru ovog kontakta će biti skriveni, a ne izbrisani."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Želite li da izbrišete ovaj kontakt?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Želite li da izbrišete izabrane kontakte?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakti sa naloga koji su samo za čitanje ne mogu da se izbrišu, ali mogu da se sakriju."</string>
@@ -91,183 +95,125 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Ako izbrišete ovaj kontakt, biće izbrisani detalji sa više naloga."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Želite li da izbrišete ovaj kontakt?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Izbriši"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Odbaci promene"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt ne postoji."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt je dodat na početni ekran."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> je dodat na početni ekran."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Napravite novi kontakt"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Napravi novi kontakt"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizacija"</item>
-    <item msgid="7196592230748086755">"Napomena"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Slike nisu dostupne na tabletu."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Na telefonu nema dostupnih slika."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Na uređaju nije pronađena nijedna slika."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Slika kontakta"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Naziv prilagođene oznake"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Šalji pozive direktno u glasovnu poštu"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Ukloni fotografiju"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nema kontakata"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nema grupa."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Morate da imate nalog da biste mogli da pravite grupe."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Nema ljudi u ovoj grupi."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Da biste dodali neke, izmenite grupu."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Čuvanje kontakta je u toku..."</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Ukloni sliku"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Lista kontakata je prazna"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nema kontakata sa ovom oznakom"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Nema kontakata na ovom nalogu"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Lista kontakata je prazna"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Kontakt <xliff:g id="DISPLAY_NAME">%s</xliff:g> je sačuvan"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt je sačuvan"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontakti su razdvojeni"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Nije moguće sačuvati izmene kontakata."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Razdvajanje kontakta na više njih nije uspelo."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Objedinjavanje kontakata nije uspelo."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Došlo je do greške pri čuvanju kontakta."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Čuvanje izmena slike kontakta nije uspelo."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupa je sačuvana."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Nije moguće sačuvati izmene grupa."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt sa brojem telefona</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta sa brojevima telefona</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata sa brojevima telefona</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nema kontakata sa brojevima telefona"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one">pronađen je <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="few">pronađena su <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">pronađeno je <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Čuvanje promena kontakta nije uspelo"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Razdvajanje kontakta nije uspelo"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Objedinjavanje kontakata nije uspelo"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Greška pri čuvanju kontakta"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Čuvanje promena slike kontakta nije uspelo"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Učitavanje oznake nije uspelo"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Oznaka je izbrisana"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Oznaka je napravljena"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Pravljenje oznake nije uspelo"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Oznaka je ažurirana"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Uklonili smo iz oznake"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodato je u oznaku"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Čuvanje promena oznake nije uspelo"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ta oznaka već postoji"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Neki kontakti nemaju imejl adresu."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Neki kontakti nemaju broj telefona."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Pošalji imejl"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Pošalji poruku"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Izaberite kontakte"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Pošalji"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nema kontakata"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one">pronađen je <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="few">pronađena su <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">pronađeno je <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Sve"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Omiljeno"</string>
-    <string name="callBack" msgid="5498224409038809224">"Uzvrati poziv"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Pozovi ponovo"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Uzvrati poziv"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Želite li da dodate imejl adresu „<xliff:g id="EMAIL">%s</xliff:g>“ u kontakte?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotografija kontakta"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> od <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontak(a)ta"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Imena kontakata"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nije pronađena nijedna aplikacija koja bi mogla da izvrši ovu radnju."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknite da biste se vratili na prethodni ekran"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodajte broj telefona"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Dodajte imejl"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nije pronađena nijedna aplikacija koja bi mogla da obavi ovu radnju."</string>
     <string name="menu_share" msgid="943789700636542260">"Deli"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Dodaj u kontakte"</string>
-    <string name="share_via" msgid="563121028023030093">"Deli kontakt preko"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Pravljenje grupe na nalogu"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Dodaj"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Delite kontakte preko</item>
+      <item quantity="few">Delite kontakte preko</item>
+      <item quantity="other">Delite kontakte preko</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Izaberite nalog"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Napravite oznaku"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Preimenujte oznaku"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Ime oznake"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Ime oznake"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Audio ćaskanje"</string>
     <string name="video_chat" msgid="1872255818640336072">"Video ćaskanje"</string>
-    <string name="connections" msgid="8098440723172028350">"Veze"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Dodaj vezu"</string>
-    <string name="recent" msgid="2659189233141493004">"Nedavno"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Nedavna ažuriranja"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> nalog"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Ne može da se izmeni iz ove aplikacije."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Ne može da se menja na ovom uređaju."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Snimi fotografiju"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Napravi novu fotografiju"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Slikaj"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Slikaj novu sliku"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Izaberi sliku"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Izaberite novu sliku"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontakt lista se ažurira."</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Izaberi novu sliku"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Pretražuje se..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Prikaži izabrano"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Prikaži sve"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Izaberi sve"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Poništi sve izbore"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Dodaj novo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Dodaj organizaciju"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Naziv grupe"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Promeni"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Glavna slika"</string>
-    <string name="description_star" msgid="2605854427360036550">"omiljeno"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Izmeni kontakt"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Želite li da aktuelni kontakt objedinite sa izabranim kontaktom?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Oznaka"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Otkaži"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Nazad"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zatvorite"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Želite li da prebacite na uređivanje izabranog kontakta? Biće kopirane informacije koje ste uneli do sada."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiraj u moje kontakte"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Dodaj u Moje kontakte"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Katalog <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Prilagođeno"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Podešavanja"</string>
     <string name="menu_settings" msgid="377929915873428211">"Podešavanja"</string>
     <string name="menu_help" msgid="1680178646764069976">"Pomoć i povratne informacije"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opcije prikaza"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Broj telefona"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Dodaj u kontakte"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Dodajte kontaktu"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Zatvori"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Prikaži godinu"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Učitava se…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Napravi novi kontakt"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodajte nalog"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Uvezi kontakte"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Pravljenje nove grupe"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Napravi novu grupu"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> grupa</item>
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> grupe</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupa</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Želite li da izbrišete grupu „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Kontakti neće biti izbrisani.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> osoba sa naloga <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> osobe sa naloga <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> osoba sa naloga <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> osoba</item>
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> osobe</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> osoba</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Uvezi"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Napravi novu…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Želite da izbrišete oznaku „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Kontakti neće biti izbrisani.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Unesite ime kontakta pre nego što ga objedinite sa drugim kontaktom."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopiraj u priv. memoriju"</string>
     <string name="set_default" msgid="4417505153468300351">"Postavi na podrazumevano"</string>
     <string name="clear_default" msgid="7193185801596678067">"Obriši podrazumevanu vrednost"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Tekst je kopiran"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Želite li da odbacite promene?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Odbaci"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Podesi moj profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Unesite ime osobe"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Naziv grupe"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Želite da odbacite promene?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Otkaži"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Želite da odbacite prilagođavanja?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Pretražite kontakte"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Uklonite kontakte"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Moj lokalni profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Moj <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profil"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Prikazani su svi kontakti"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakti bolje funkcionišu sa Google nalogom.\n\n• Pristupajte iz bilo kog veb-pregledača.\n• Bezbedno napravite rezervne kopije kontakata."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Očuvajte bezbednost kontakata čak i ako izgubite telefon – sinhronizujte sa uslugom na mreži."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodavanje naloga"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Neće biti napravljena rezervna kopija novog kontakta. Želite li da dodate nalog koji pravi rezervnu kopiju kontakata onlajn?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Odvojte malo vremena da biste dodali nalog pomoću kog ćete napraviti rezervnu kopiju kontakata na Google-u."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novi kontakti će biti sačuvani na nalogu <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Izaberite podrazumevani nalog za nove kontakte:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Dodaj novi kontakt"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Izmeni kontakt"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Zadrži lokalno"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Novi kontakt"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Izmenite kontakt"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Samo pregled"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Izaberite kontakt za izmenu"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Objedinjeni kontakti"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Dodaj"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Razdvoj"</string>
     <string name="add_account" msgid="8201790677994503186">"Dodaj nalog"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Dodaj novi nalog"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Izvezi datoteke baze podataka"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"dodavanje novog kontakta"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Napravi novi kontakt"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Prikaži više"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Prikaži manje"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Prikaži sve"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Nedavno"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Osnovni podaci"</string>
-    <string name="send_message" msgid="8938418965550543196">"Pošalji poruku"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Pravljenje lične kopije..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Juče"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Pravljenje lične kopije..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Sutra"</string>
     <string name="today" msgid="8041090779381781781">"Danas"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Danas u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Sutra u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Nenaslovljeni događaj)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Podesi"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Razmena trenutnih poruka"</string>
@@ -277,100 +223,318 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Veb-sajt"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Događaj"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Odnos"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Nalog"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Ime"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Imejl"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Slika"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliknite da biste proširili uređivač kontakata."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknite da biste skupili uređivač kontakata."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"uputstva do lokacije"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Nedavni SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Kliknite za odgovor"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Nedavni SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Kliknite za odgovor"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"dolazni"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"odlazni"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"propušteni"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Nedavni poziv. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Kliknite za povratni poziv"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Nedavni poziv. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Kliknite za povratni poziv"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Vi: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts radi bolje kad unesete Hangouts identifikator osobe u polje za imejl adresu ili broj telefona."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Još polja"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Promenite sliku"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Otvaranje uređivača nije uspelo."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Čuva se na"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Trenutno se čuva na nalogu <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dodirnite dvaput da biste izabrali drugi nalog."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Objedinjeni kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">Objedinjeni kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Objedinjeni kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Objedinjenih kontakata: <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Još polja"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Promenite sliku kontakta"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Dodajte sliku kontakta"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Slika kontakta"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Otvaranje uređivača nije uspelo."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Čuva se na"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Nije moguće izmeniti kontakt informacije sa <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"OBJEDINI KONTAKTE"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"OTKAŽI"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> moguć duplikat</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> moguća duplikata</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mogućih duplikata</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> objedinjen kontakt</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> objedinjena kontakta</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> objedinjenih kontakata</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ovaj kontakt"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mogući duplikati"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Izgleda da su ovi kontakti ista osoba. Možete da ih objedinite u jedan kontakt."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Objedinjeni kontakti"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Sa vaših naloga"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Snimi sliku"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Sve slike"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Izaberite sliku"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Sa <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Izbriši <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Slika sa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> naloga <xliff:g id="USER_NAME">%s </xliff:g> nije označena"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Slika sa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> naloga <xliff:g id="USER_NAME">%s </xliff:g> je označena"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Slika sa nepoznatog naloga nije označena"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Slika sa nepoznatog naloga je označena"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Lista kontakata se trenutno ažurira kako bi se primenila promena jezika.\n\nSačekajte..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj broj"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokiraj broj"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Dodajte broj ili pretražite kontakte"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Želite li da deblokirate <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKIRAJ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Želite li da blokirate <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKIRAJ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> je blokiran"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> je deblokiran"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> je nevažeći."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokiranje poziva je privremeno isključeno"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Blokiranje poziva je onemogućeno zato što ste kontaktirali službe za pomoć u hitnim slučajevima sa ovog telefona u poslednjih 48 sati. Automatski će biti ponovo omogućeno kada istekne period od 48 sati."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvezi"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Prikaži brojeve"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj broj"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokiranje poziva je onemogućeno na 48 sati"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Onemogućeno je zato što je upućen hitan poziv."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"OPOZOVI"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokiraj broj"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Detalji o kontaktu za <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz nije uspeo"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Uvezi brojeve"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Da biste pretražili kontakte, uključite dozvole za Kontakte."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Uključi"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Predlozi"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Otvori fioku za navigaciju"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zatvori fioku za navigaciju"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Oznaka <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Oznake"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Nalozi"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Pregledajte zajedničku istoriju"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Događaji i poruke"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Događaji"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Poruke"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Predlozi"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Neka vam kontakti budu organizovani i korisni"</string>
+    <string name="undo" msgid="1425165101664071422">"Opozovi"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Pozovi <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Pozovi kućni telefon"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Pozovi mobilni telefon"</string>
+    <string name="call_work" msgid="5328785911463744028">"Pozovi poslovni telefon"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Pozovi faks"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Pozovi kućni faks"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Pozovi pejdžer"</string>
+    <string name="call_other" msgid="8563753966926932052">"Pozovi"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Pozovi za povratni poziv"</string>
+    <string name="call_car" msgid="3280537320306436445">"Pozovi telefon u automobilu"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Pozovi glavni telefon preduzeća"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Pozovi ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Pozovi glavni telefon"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Pozovi faks"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Pozovi mobilni telefon"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Pozovi teleks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Pozovi TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Pozovi poslovni mobilni telefon"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Pozovi poslovni pejdžer"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Pozovi <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Pozovi MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (pozovi)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Pošalji SMS na <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Pošalji SMS na kućni telefon"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Pošalji SMS na mobilni telefon"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Pošalji SMS na poslovni telefon"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Pošalji SMS na poslovni faks"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Pošalji SMS na kućni faks"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Pošalji SMS na pejdžer"</string>
+    <string name="sms_other" msgid="806127844607642331">"Tekst"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Pošalji SMS za povratni poziv"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Pošalji SMS na telefon u automobilu"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Pošalji SMS na glavni broj telefona preduzeća"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Pošalji SMS na ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Pošalji SMS na glavni telefon"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Pošalji SMS na faks"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Pošalji SMS na mobilni telefon"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Pošalji SMS na teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Pošalji SMS na TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Pošalji SMS na poslovni mobilni telefon"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Pošalji SMS na pejdžer"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Pošalji SMS na <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Pošalji SMS na MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (pošalji SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Uputite video poziv"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Brisanje često kontaktiranih?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Obrisaćete listu često kontaktiranih u aplikacijama Kontakti i Telefon, pa će imejl aplikacije morati iz početka da prikupe informacije o adresiranju."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Brisanje često kontaktiranih..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Dostupan/na"</string>
+    <string name="status_away" msgid="1838861100379804730">"Odsutan/na"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Zauzet/a"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Drugo"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Katalog"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Katalog za Work"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Svi kontakti"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Brzi kontakt za korisnika <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Bez imena)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Često kontaktirani"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Svi kontakti sa brojevima telefona"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontakti sa profila za Work"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Prikaži ažuriranja"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Uređaj"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Ime"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nadimak"</string>
+    <string name="name_given" msgid="4280790853455320619">"Ime"</string>
+    <string name="name_family" msgid="7466985689626017037">"Prezime"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefiks za ime"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Srednje slovo"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Sufiks imena"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Ime – fonetski"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Ime – fonetski"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Srednje ime – fonetski"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Prezime – fonetski"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Imejl"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Razmena trenutnih poruka"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacija"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Odnos"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Poseban dan"</string>
+    <string name="sms" msgid="1756857139634224222">"Tekstualna poruka"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresa"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Preduzeće"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Naslov"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Beleške"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Prilagođeno"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Veb-sajt"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Oznake"</string>
+    <string name="email_home" msgid="8573740658148184279">"Pošalji imejl na kućnu imejl adresu"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Pošalji imejl na broj mobilnog telefona"</string>
+    <string name="email_work" msgid="2807430017302722689">"Pošalji imejl na poslovni broj telefona"</string>
+    <string name="email_other" msgid="3454004077967657109">"Pošalji imejlom"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Pošalji imejl na <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Pošalji imejlom"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Grad"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Država"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Poštanski broj"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Zemlja"</string>
+    <string name="map_home" msgid="1243547733423343982">"Prikaži kućnu adresu"</string>
+    <string name="map_work" msgid="1360474076921878088">"Prikaži poslovnu adresu"</string>
+    <string name="map_other" msgid="3817820803587012641">"Prikaži adresu"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Prikaži adresu <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Započni ćaskanje preko AIM-a"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Započni ćaskanje preko Windows Live-a"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Započni ćaskanje preko Yahoo-a"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Započni ćaskanje preko Skype-a"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Započni ćaskanje preko QQ-a"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Ćaskaj preko Google Talk-a"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Započni ćaskanje preko ICQ-a"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Započni ćaskanje preko Jabber-a"</string>
+    <string name="chat" msgid="9025361898797412245">"Ćaskanje"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"izbriši"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Prikažite još polja za ime"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Skupite polja za ime"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Prikažite još polja za fonetsko ime"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Skupite polja za fonetsko ime"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Proširite"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Skupite"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Prošireno je"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Skupljeno je"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Svi kontakti"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Sa zvezdicom"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Prilagodi"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Svi drugi kontakti"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Svi kontakti"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Ukloni grupu za sinhronizaciju"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Dodaj grupu za sinhronizaciju"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Još grupa…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Uklanjanjem grupe „<xliff:g id="GROUP">%s</xliff:g>“ sa liste za sinhronizaciju uklonićete i sve negrupisane kontakte sa te liste."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Čuvanje opcija prikaza je u toku..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Prilagođeni prikaz"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Sačuvajte uvezene kontakte na:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Sa SIM kartice"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"Sa SIM kartice <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d kontakt</item>
+      <item quantity="few">%1$d kontakta</item>
+      <item quantity="other">%1$d kontakata</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontakta • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakata • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Iz .vcf datoteke"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nema ničega za uvoz"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Želite da uvezete kontakte iz vCard datoteke?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Želite li da otkažete uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Želite li da otkažete izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Nije moguće otkazati vCard uvoz/izvoz"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Nepoznata greška."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nije moguće otvoriti datoteku „<xliff:g id="FILE_NAME">%1$s</xliff:g>“: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nije moguće pokrenuti program za izvoz: „<xliff:g id="EXACT_REASON">%s</xliff:g>“"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nema kontakata za izvoz."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Onemogućili ste obaveznu dozvolu."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Došlo je do greške pri izvozu: „<xliff:g id="EXACT_REASON">%s</xliff:g>“"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O greška"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nema dovoljno memorije. Datoteka je možda prevelika."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format nije podržan."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je završen."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Izvoz kontakata je završen."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Izvoz kontakata je završen. Kliknite na obaveštenje da biste ih delili."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Dodirnite da biste delili kontakte."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je otkazan"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Izvoz podataka o kontaktima je u toku"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Podaci o kontaktima se izvoze."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nije moguće preuzeti informacije iz baze podataka"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nema kontakata koje je moguće izvesti."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Program za izradu vCard datoteka se nije ispravno pokrenuo."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Nije moguće izvesti"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Podaci o kontaktima nizu izvezeni.\nRazlog: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Uvoz <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nije moguće čitati vCard podatke"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je završen"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je  otkazan"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Datoteka <xliff:g id="FILENAME">%s</xliff:g> će uskoro biti uvezena."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Datoteka će uskoro biti uvezena."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Zahtev za izvoz vCard datoteke je odbijen. Pokušajte kasnije."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakti će uskoro biti izvezeni."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Zahtev za izvoz vCard datoteke je odbijen. Pokušajte kasnije."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Keširanje vCard datoteke u lokalnu privremenu memoriju. Uvoz će uskoro započeti."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Nije moguće uvesti vCard datoteku."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt preko NFC-a"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Keširanje..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Uvoz <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Izvezi u .vcf datoteku"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortiraj prema"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Ime i prezime – fonetski"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Uvek prikazuj"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Sakrij ako je prazno"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ime"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Prezime"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format imena"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Prvo ime"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Prvo prezime"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Nalozi"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Podrazumevani nalog za nove kontakte"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Moje informacije"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Podesite profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"O Kontaktima"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Deli omiljene kontakte"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Deli sve kontakte"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Deljenje kontakata nije uspelo."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Izvezite kontakte"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Uvezite kontakte"</string>
+    <string name="share_error" msgid="948429331673358107">"Ovaj kontakt ne može da se deli."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nema kontakata za deljenje."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakti za prikaz"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakti za prikaz"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Prilagodite prikaz"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Sačuvaj"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Pretražite kontakte"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Omiljeno"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Uvezi"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Izvezi"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokirani brojevi"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"preko <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> preko <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"zaustavite pretraživanje"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Brisanje pretrage"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Nalog"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Uvek koristi ovo za pozive"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Uputi poziv sa beleškom"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Unesite belešku koju ćete poslati uz poziv…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"POŠALJI I POZOVI"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Verzija"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licence otvorenog koda"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Podaci o licenci za softver otvorenog koda"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Politika privatnosti"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Uslovi korišćenja usluge"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licence otvorenog koda"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Otvaranje URL-a nije uspelo."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Označeno: <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Nije označeno: <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Uputite video poziv"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Izbrišite"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Tri tačke"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> sek"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> s <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> sek"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ova prečica je onemogućena"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt je uklonjen"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Uvezi"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Izaberite kontakte"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Nema kontakata na SIM kartici"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt je već na listi"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">Uvezen je <xliff:g id="COUNT">%d</xliff:g> kontakt sa SIM kartice</item>
+      <item quantity="few">Uvezena su <xliff:g id="COUNT">%d</xliff:g> kontakta sa SIM kartice</item>
+      <item quantity="other">Uvezeno je <xliff:g id="COUNT">%d</xliff:g> kontakata sa SIM kartice</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Uvoz kontakata sa SIM kartice nije uspeo"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Uvezite sa SIM-a"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Otkažite"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatska sinhronizacija je isključena. Dodirnite da biste je uključili."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Odbacite"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Sinhronizacija naloga je isključena. Dodirnite da biste je uključili."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Želite da uključite automatsku sinhronizaciju?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Na vebu i uređajima će se redovno ažurirati promene koje unosite u svim aplikacijama i na svim nalozima, a ne samo u Google kontaktima."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Uključi"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Veza nije uspostavljena"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Prikaži više"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Uvoz sa SIM kartice je završen"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Uvoz nije uspeo"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Uvoz kontakata sa SIM kartice nije uspeo"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Uvozi se sa SIM-a"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
new file mode 100644
index 0000000..c4f6730
--- /dev/null
+++ b/res/values-be/strings.xml
@@ -0,0 +1,547 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Кантакты"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Кантакты"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Дадаць кантакт"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Кантакт"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Хуткі выклік"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Хуткае паведамл."</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Выбраць кантакт"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Дадаць у кантакт"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Выберыце кантакт"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Выбраць"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Стварыць новы кантакт"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Пошук кантактаў"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Дадаць у абраныя"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Выдаліць з абраных"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Выдалена з упадабаных"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Дададзена ва ўпадабаныя"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Рэдагаваць"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Выдаліць"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Змяніць фота"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Стварыць ярлык"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Выдаліць сувязь"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Выдаліць кантакты"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Перайменаваць метку"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Выдаліць метку"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Дадаць кантакт"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Вылучыце кантакты"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Дадаць кантакты"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Выдаліць з меткі"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Стварыць метку"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Раз\'яднаць гэты кантакт на некалькі кантактаў?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Раз\'яднаць"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Жадаеце захаваць змяненні, якія вы ўжо зрабілі, і развязаць гэты кантакт на некалькі кантактаў?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Захаваць і развязаць"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Жадаеце захаваць змяненні, якія вы ўжо зрабілі, і спасылку на выбраны кантакт?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Захаваць і звязаць"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Ідзе звязванне"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Ідзе выдаленне сувязі"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Звязаць"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Прагледзець звязаныя кантакты"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Захаваць"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Звязаць кантакты"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Выберыце кантакт, які хочаце звязаць з iмем <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Прапанаваныя кантакты"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Усе кантакты"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Звязаны <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Кантакты звязаны"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Карыстальнік <xliff:g id="NAME">%1$s</xliff:g> выдалены"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Карыстальнікі <xliff:g id="NAME_0">%1$s</xliff:g> і <xliff:g id="NAME_1">%2$s</xliff:g> выдалены"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Карыстальнікі <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... выдалены"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">Кантакты выдалены</item>
+      <item quantity="few">Кантакты выдалены</item>
+      <item quantity="many">Кантакты выдалены</item>
+      <item quantity="other">Кантакты выдалены</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> кантакт</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> кантакты</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> кантактаў</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> кантакту</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> кантакт · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> кантакты · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> кантактаў · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> кантакту · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"З Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"З <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Задаць рынгтон"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Накіроўваць на галасавую пошту"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Адм. накірав. на галас. пошту"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Гэты кантакт толькі для чытання. Яго немагчыма выдаліць, але вы можаце яго схаваць."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Схаваць кантакт"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Уліковыя запісы толькі для чытання ў гэтым кантакце будуць схаваны, а не выдалены."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Выдаліць гэты кантакт?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Выдаліць выбраныя кантакты?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Кантакты з уліковых запісаў, даступных толькі для чытання, нельга выдаліць, але іх можна схаваць."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Кантакты на выдаленне змяшчаюць інфармацыю з некалькіх уліковых запісаў. Інфармацыя з уліковых запісаў, даступных толькі для чытання, будзе схавана, а не выдалена."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Выдаленне гэтага кантакту выдаліць інфармацыю з некалькіх уліковых запісаў."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Выдаліць гэты кантакт?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Выдаліць"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Кантакт не існуе."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Кантакт дададзены на Галоўны экран."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> дададзены на Галоўны экран."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"На прыладзе няма даступных малюнкаў."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Фота кантакта"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Імя карыстальніцкага цэтліка"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Выдаліць фота"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Ваш спіс кантактаў пусты"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Няма кантактаў з гэтай меткай"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Няма кантактаў у гэтым уліковым запісе"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Ваш спіс кантактаў пусты"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Кантакт <xliff:g id="DISPLAY_NAME">%s</xliff:g> захаваны"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Кантакт захаваны"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Кантакты раз\'яднаны"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Не ўдалося захаваць змены кантакту"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Не ўдалося скасаваць сувязь з кантактам"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Не ўдалося звязаць кантакт"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Памылка пры захаванні кантакту"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Не ўдалося захаваць змяненні фота кантакту"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Збой загрузкі этыкеткі"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Метка выдалена"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Створана метка"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Немагчыма стварыць метку"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Метка абноўлена"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Выдалена з меткі"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Дададзена ў метку"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Не ўдалося захаваць змяненні меткі"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Гэта метка ўжо існуе"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Некаторыя кантакты не маюць адрасоў электр. пошты."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Некаторыя кантакты не маюць нумароў тэлефона."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Адправіць электронны ліст"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Адправіць паведамленне"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Выберыце кантакты"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Адправіць"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Кантактаў няма"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Дадаць адрас \"<xliff:g id="EMAIL">%s</xliff:g>\" у кантакты?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Імёны вашых кантактаў"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Націсніце, каб вярнуцца на папярэдні экран"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Дадаць нумар тэлефона"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Дадаць адрас электроннай пошты"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Не знойдзена праграма для гэтага дзеяння."</string>
+    <string name="menu_share" msgid="943789700636542260">"Абагуліць"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Дадаць у кантакты"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Дадаць"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Абагуліць кантакты праз</item>
+      <item quantity="few">Абагуліць кантакты праз</item>
+      <item quantity="many">Абагуліць кантакты праз</item>
+      <item quantity="other">Абагуліць кантакты праз</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Выбраць уліковы запіс"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Стварыць метку"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Перайменаваць метку"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Назва меткі"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Назва меткі"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Галасавы чат"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Відэачат"</string>
+    <string name="account_type_format" msgid="718948015590343010">"Кантакт <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"Уліковы запіс <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Зрабіць фота"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Зрабiць новую фатаграфію"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Выбраць фота"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Выбраць новае фота"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Пошук..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Метка"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Скасаваць"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Назад"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"закрыць"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Пераключыцца ў рэжым рэдагавання выбранага кантакту? Інфармацыя, якую вы ўвялі да гэтага часу, будзе скапіявана."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Каталог <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Налады"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Налады"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Даведка і водгукі"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Нумар тэлефона"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Дадаць у кантакты"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Закрыць"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Уключыць год"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Дадаць уліковы запіс"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Імпартаваць"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Стварыць новую..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Выдаліць метку \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Самі кантакты не будуць выдалены.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Перад звязваннем кантакту з іншым увядзіце імя кантакту."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Скапіраваць у буфер абмену"</string>
+    <string name="set_default" msgid="4417505153468300351">"Усталяваць па змаўчанні"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Скінуць налады па змаўчанні"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Тэкст скапіяваны"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Скасаваць змены?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Адхіліць"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Скасаваць"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Скасаваць карыст. выгляд?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Пошук кантактаў"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Выдаліць кантакты"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Мой лакальны профіль"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Мой профіль у <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Знайдзіце хвілінку, каб дадаць уліковы запіс, які дазволіць стварыць рэзервовую копію вашых кантактаў у Google."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Новыя кантакты будуць захаваны ва ўліковы запіс <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Выбраць уліковы запіс па змаўчанні для новых кантактаў:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Стварыць новы кантакт"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Рэдагаваць кантакт"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Толькі прагляд"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Выбраць кантакт для рэдагавання"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Звязаныя кантакты"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Дадаць"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Выдаліць сувязь"</string>
+    <string name="add_account" msgid="8201790677994503186">"Дадаць уліковы запіс"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Дадаць новы ўліковы запіс"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Экспарт базы дадзеных файлаў"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Стварыць новы кантакт"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Болей"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Паказаць менш"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Нядаўнія"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Інфармацыя"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Стварэнне асабістай копіі..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Заўтра"</string>
+    <string name="today" msgid="8041090779381781781">"Сёння"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Сёння ў перыяд <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Заўтра ў перыяд <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Падзея без назвы)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Задаць"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Iмгненныя паведамленні"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Арганізацыя"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Псеўданім"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Нататка"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Вэб-сайт"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Падзея"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Сувязь"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Імя"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Электронная пошта"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Тэлефон"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"напрамкі да месцазнаходжання"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"апошнія sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. націсніце, каб адказаць"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"уваходны"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"выходны"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"прапушчаны"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"апошні выклік. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. націсніце для зваротнага выкліку"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Вы: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Дадатковыя палі"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Змяніць фота кантакту"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Дадаць фота кантакту"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Фота кантакту"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Збой пры адкрыванні рэдактара."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Захаваць у:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Кантактную інфармацыю з <xliff:g id="ACCOUNT">%s</xliff:g> немагчыма рэдагаваць"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ЗВЯЗАЦЬ КАНТАКТЫ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"СКАСАВАЦЬ"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Гэты кантакт"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Магчымыя дублікаты"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Гэтыя кантакты могуць датычыць адной асобы. Іх можна звязаць, каб стварыць адзіны кантакт."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Выдаліць <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Выдаліць <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Прапановы"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Новыя"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Адкрыць высоўнае меню навігацыі"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Закрыць высоўнае меню навігацыi"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Метка <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Меткі"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Уліковыя запісы"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Паказваць усю гісторыю разам"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Падзеі і паведамленні"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Падзеі"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Паведамленні"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Прапановы"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Упарадкуйце свае кантакты для зручнага выкарыстання"</string>
+    <string name="undo" msgid="1425165101664071422">"Адрабіць"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Выклікаць <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Патэлефанаваць на хатні нумар"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Набраць нумар мабільнага тэлефону"</string>
+    <string name="call_work" msgid="5328785911463744028">"Выклікаць працоўны нумар тэлефона"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Набраць нумар працоўнага факса"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Патэлефанаваць на хатні факс"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Выклікаць пэйджар"</string>
+    <string name="call_other" msgid="8563753966926932052">"Выклікаць"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Зрабіць зваротны выклік"</string>
+    <string name="call_car" msgid="3280537320306436445">"Выклікаць нумар у машыне"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Выклікаць асноўны нумар кампаніі"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Выклік ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Выклікаць асноўны нумар"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Выклік факса"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Патэлефанаваць на радыётэлефон"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Выклік на тэлекс"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Выклікаць TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Патэлефанаваць на працоўны мабільны"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Выклікаць працоўны пэйджар"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Выклікаць <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Выклік MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Выклікаць)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Адправіць SMS на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Тэкставае паведамленне на хатні тэлефон"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Тэкставае паведамленне на мабільны тэлефон"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Тэкставае паведамленне на працоўны тэлефон"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Тэкставае паведамленне на працоўны факс"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Тэкставае паведамленне на хатні факс"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Тэкставае паведамленне на пэйджар"</string>
+    <string name="sms_other" msgid="806127844607642331">"Тэкст"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Тэкст на нумар зваротнага выкліку"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Тэкставае паведамленне ў аўтамабіль"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Паведамленне на асноўны нумар кампаніі"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Тэкст ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Паведамленне на асноўны нумар"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Тэкставае паведамленне на факс"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Тэкставае паведамленее на радыётэлефон"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Тэкставае паведамленне на тэлекс"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Тэкставае паведамленне на TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Тэкставае паведамленне на працоўны мабільны тэлефон"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Тэкставае паведамленне на працоўны пэйджар"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Напiсаць тэкставае паведамленне: <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Паведамленне MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Паведамленне)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Зрабіць відэавыклік"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Выдалiць частыя кантакты?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Спіс найчасцей ужываных кантактаў праграм \"Кантакты\" i \"Тэлефон\" ачысціцца, а параметры адрасацыі паштовых праграм абнуляцца."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Выдаленне частых кантактаў..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Даступны"</string>
+    <string name="status_away" msgid="1838861100379804730">"Адсутнічае"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Заняты"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Іншае"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Дырэкторыя"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Працоўны каталог"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Усе кантакты"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Хуткі кантакт для карыстальніка <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Без назвы)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Частая сувязь"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Усе кантакты з нумарамі тэлефонаў"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Кантакты працоўнага профілю"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Прагл. абнаўленняў"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Прылада"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Імя"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Псеўданiм"</string>
+    <string name="name_given" msgid="4280790853455320619">"Імя"</string>
+    <string name="name_family" msgid="7466985689626017037">"Прозвішча"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Прэфікс імені"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Імя па бацьку"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Суфікс да імені"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Фанетычнае імя"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Фанетычнае імя"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Фанетычнае імя па бацьку"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Фанетычнае прозвішча"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Тэлефон"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Электронная пошта"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Адрас"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"ІМ"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Арганізацыя"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Сувязі"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Асаблівая дата"</string>
+    <string name="sms" msgid="1756857139634224222">"Тэкставае паведамленне"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Адрас"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Кампанія"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Пасада"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Нататкі"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Карыстальніцкі"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Вэб-старонка"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Меткі"</string>
+    <string name="email_home" msgid="8573740658148184279">"Паведамленне на хатні адрас электроннай пошты"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Адправіць электронную пошту на мабільны адрас"</string>
+    <string name="email_work" msgid="2807430017302722689">"Паведамленне на працоўную электронную пошту"</string>
+    <string name="email_other" msgid="3454004077967657109">"Электронная пошта"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Адправіць ліст на адрас <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Электронная пошта"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Вуліца"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Горад"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Штат"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Паштовы індэкс"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Краіна"</string>
+    <string name="map_home" msgid="1243547733423343982">"Прагледзець хатні адрас"</string>
+    <string name="map_work" msgid="1360474076921878088">"Паглядзець працоўны адрас"</string>
+    <string name="map_other" msgid="3817820803587012641">"Прагледзець адрас"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Паглядзець адрас <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Чат у AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Чат у Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Чат праз Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Чат у Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Чат у QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Чат у Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Чат праз ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Чат у Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Чат"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"выдаліць"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Паказаць больш палёў імён"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Згарнуць палі імён"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Паказаць больш палёў фанетычных імён"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Згарнуць палі фанетычных імён"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Разгарнуць"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Згарнуць"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Разгорнута"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Згорнута"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Усе кантакты"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Пазначана"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Карыстальнiцкi"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Кантакт"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Усе кантакты з тэчкі \"Іншыя\""</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Усе кантакты"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Выдаліць групу сінхранізацыі"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Дадаць групу сінхранізацыі"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Больш груп..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Выдаленне групы \"<xliff:g id="GROUP">%s</xliff:g>\" з сінхранізацыі таксама выдаліць любыя разгрупаваныя кантакты з сінхранізацыі."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Захаванне параметраў адлюстравання..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Карыстальніцкі выгляд"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Захаваць імпартаваныя кантакты ў:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-карта"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM-карта <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d кантакт</item>
+      <item quantity="few">%1$d кантакты</item>
+      <item quantity="many">%1$d кантактаў</item>
+      <item quantity="other">%1$d кантакту</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> кантакт • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> кантакты • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> кантактаў • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> кантакту • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Файл .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Няма што імпартаваць"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Імпартаваць кантакты з vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Адмянiць iмпарт файла <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Адмянiць экспарт файла <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Немагчыма адмяніць імпарт/экспарт vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Невядомая памылка."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Немагчыма адкрыць файл \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Не атрымалася запусцiць экспарцёр: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Няма кантактаў для экспарту."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Вы адключылі дазвол, які патрабуецца."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Памылка экспарту: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Памылка ўводу/вываду"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Недастаткова памяці (магчыма, занадта вялікі файл)"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Фармат не падтрымліваецца."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Экспарт файла <xliff:g id="FILENAME">%s</xliff:g> завершаны."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Экспартаванне кантактаў завершана."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Экспартаванне кантактаў завершана, націсніце на апавяшчэнне, каб абагуліць кантакты."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Дакраніцеся, каб абагуліць кантакты."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Экспарт файла <xliff:g id="FILENAME">%s</xliff:g> адменены."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Экспарт дадзеных кантакту"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Кантактныя даныя экспартуюцца."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Немагчыма атрымаць інфармацыю з базы дадзеных."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Няма кантактаў, якія можна экспартаваць."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Памылка запуску складальнiка файлаў vCard."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Не атрымалася экспартаваць"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Памылка экспарта кантактных дадзеных. \nПрычына: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Імпарт <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Немагчыма прачытаць дадзеныя vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Заканчэнне імпартавання vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Імпарт файла <xliff:g id="FILENAME">%s</xliff:g> адменены"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Файл <xliff:g id="FILENAME">%s</xliff:g> будзе імпартаваны ў бліжэйшы час."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Файл будзе імпартаваны ў бліжэйшы час."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Запыт экспарту vCard адхілены. Паспрабуйце пазней."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Неўзабаве кантакты будуць экспартаваны."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Запыт экспарту vCard адхілены. Паспрабуйце пазней."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"кантакт"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Кэшуе файлы vCard у лакальнае часовае сховішча. Фактычны імпарт пачнецца ў бліжэйшы час."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Немагчыма імпартаваць vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Кант. атр. праз NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кэшаванне..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Імпарт <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Экспартаваць у файл .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Сартаваць па"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Фанетычнае імя"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Заўсёды паказваць"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Схаваць, калі пустое"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Імя"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Прозвішча"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Фармат імя"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Спачатку імя"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Спачатку прозвішча"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Уліковыя запісы"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Стандартны ўліковы запіс для новых кантактаў"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Мая інфармацыя"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Наладзьце ваш профіль"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Інфармацыя аб Кантактах"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Абагуліць улюбёныя кантакты"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Абагуліць усе кантакты"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Збой абагульвання кантактаў."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Экспартаваць кантакты"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Імпартаваць кантакты з"</string>
+    <string name="share_error" msgid="948429331673358107">"Нельга падзялiцца гэтым кантактам."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Няма кантактаў, якія можна абагуліць."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Паказаць кантакты"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Адлюстроўваць кантакты"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Наладзіць від"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Захаваць"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Шукаць у кантактах"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Выбранае"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Імпартаваць"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Экспартаваць"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Заблакіраваныя нумары"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"праз <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> праз <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"спыніць пошук"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Ачысціць пошук"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Уліковы запіс"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Заўсёды ўжываць гэта для выклікаў"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Выклікаць з нататкай"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Увесці нататку для адпраўкі з выклікам…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"АДПРАВІЦЬ І ВЫКЛІКАЦЬ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Версія зборкі"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Ліцэнзіі на ПЗ з адкрытым кодам"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Звесткі аб ліцэнзіі на праграмнае забеспячэнне з адкрытым зыходным кодам"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Палітыка прыватнасці"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Умовы абслугоўвання"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Ліцэнзіі на ПЗ з адкрытым кодам"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Збой адкрыцця URL-адраса."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> - пазначана"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> - не пазначана"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Пачаць відэавыклік"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Выдаліць"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Шматкроп\'е"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> c"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> хв <xliff:g id="SECONDS">%2$s</xliff:g> с"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> гадз <xliff:g id="MINUTES_1">%2$s</xliff:g> хв <xliff:g id="SECONDS">%3$s</xliff:g> с"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Гэта спалучэнне клавіш было адключана"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Кантакт быў выдалены"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Імпартаваць"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Выберыце кантакты"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"На вашай SIM-карце няма кантактаў"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Кантакт ужо ёсць у вашым спісе"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> кантакт SIM-карты імпартаваны</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> кантакты SIM-карты імпартаваны</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> кантактаў SIM-карты імпартаваны</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> кантакту SIM-карты імпартавана</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Памылка імпарту кантактаў SIM-карты"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Імпартаваць з SIM-карты"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Скасаваць"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Аўтасінхранізацыя адключана. Дакраніцеся, каб уключыць яе."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Адхіліць"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Сінхранізацыя ўліковага запісу адключана. Дакраніцеся, каб уключыць яе."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Уключыць аўтасінхранізацыю?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Змены, якія вы зрабілі ва ўсіх праграмах і ўліковых запісах, не толькі ў Кантактах Google, будуць сінхранізоўвацца паміж вэб-інтэрфейсам і вашымі прыладамі."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Уключыць"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Няма падключэння"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-карта"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Паказаць больш"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Імпартаванне SIM-карты скончана"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Не ўдалося імпартаваць"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Не ўдалося імпартаваць кантакты з SIM-карты"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Імпартаванне SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 17e9ccd..09231c7 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Контакти"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Контакти"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Преглед на контакта"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Редактиране на контакта"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Добавяне на контакт"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Директно набиране"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Директно съобщение"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Избор на пряк път до контакт"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Избор на номер за обаждане"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Избор на номер за изпращане на съобщение"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Избиране на контакт"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Добавяне към контакта"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Избор на контакт"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Избиране"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Създайте нов контакт"</string>
-    <string name="starredList" msgid="4817256136413959463">"Със звезда"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Често"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Любими"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Подробности за контакта"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Редактиране на контакт"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Създаване на контакт"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Редактиране на групата"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Създаване на група"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Информация"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Актуал."</string>
     <string name="searchHint" msgid="8482945356247760701">"Търсене в контактите"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Преглед на контакт"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Добавяне към предпочитани"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Премахване от любими"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Премахнато от любимите"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Редактиране"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Изтриване"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Промяна на снимката"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Поставяне на началния екран"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Обаждане на контакт"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Изпращaне на SMS на контакт"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Създаване на пряк път"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Разделяне"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Редактиране"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Изтриване"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Добавяне на контакт"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Добавяне на група"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Премахване на контакти"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Преименуване на етикета"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Изтриване на етикета"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Добавяне на контакт"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Избор на контакти"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Добавяне на контакти"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Премахване от етикета"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Създаване на етикет"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Искате ли да разделите този контакт на няколко?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Разделяне"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Искате ли да запазите вече направените от вас промени и да разделите този контакт на няколко?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Запазване и разделяне"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Искате ли да запазите вече направените от вас промени и да свържете този контакт с избрания от вас?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Запазване и свързване"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Свързват се"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Връзката се спира"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Свързване"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Преглед на свързаните контакти"</string>
     <string name="menu_save" msgid="1727844363591825909">"Запазване"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Свързване на контактите"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Изберете контакта, който искате да свържете с/ъс <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Показване на всички контакти"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Предлагани контакти"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Всички контакти"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Свързахте <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Контактите са свързани"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Изтрихте <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> и <xliff:g id="NAME_1">%2$s</xliff:g> бяха изтрити"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… бяха изтрити"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Контактите са изтрити</item>
       <item quantity="one">Контактът е изтрит</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> контакта</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> контакт</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> контакта · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> контакт · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"От Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"От <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Задаване на мелодия"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Всички обаждания до гл. поща"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Контактите от профилите ви само за четене могат да бъдат скрити, но не и изтрити."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Скриване"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Контактът, който предстои да бъде изтрит, съдържа подробности от няколко профила. Подробностите от профилите само за четене ще бъдат скрити, а не изтрити."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Трябва да изберете поне два контакта, за да извършите свързване."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Да се свържат ли избраните контакти?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Свързване"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Препращане към гласовата поща"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Спиране на препращането"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Този контакт е само за четене. Не може да бъде изтрит, но можете да го скриете."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Скриване на контакта"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Контактите само за четене в този профил ще бъдат скрити, не изтрити."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Да се изтрие ли този контакт?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Да се изтрият ли избраните контакти?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Контактите от профилите ви само за четене могат да бъдат скрити, но не и изтрити."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Изтриването на този контакт ще премахне подробностите от няколко профила."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Да се изтрие ли този контакт?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Изтриване"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Отхвърляне на промените"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Контактът не съществува."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Контактът е добавен към началния екран."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Добавихте <xliff:g id="NAME">%s</xliff:g> към началния екран."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Създаване на нов контакт"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Създаване на нов контакт"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Организация"</item>
-    <item msgid="7196592230748086755">"Бележка"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"В таблета няма снимки."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"В телефона няма снимки."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"В устройството няма снимки."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Снимка на контакта"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Персонализирано име на етикет"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Обажданията да се изпращат директно в гл. поща"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Премахване на снимката"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Няма контакти"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Няма групи."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Необходим ви е профил, за да създавате групи."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"В тази група няма хора."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"За да добавите, редактирайте групата."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Контактът се запазва..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Списъкът ви с контакти е празен"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Няма контакти с този етикет"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"В този профил няма контакти"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Списъкът ви с контакти е празен"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Запазихте <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Контактът е запазен"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Контактите са разделени"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Промените в контакта не можаха да бъдат запазени."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Контактът не можа да бъде разделен."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Контактът не можа да бъде свързан."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"При запазването на контакта възникна грешка."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Промените в снимката на контакта не можаха да се запазят."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Групата е запазена."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Промените в групата не можаха да бъдат запазени."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> контакта с телефонен номер</item>
-      <item quantity="one">1 контакт с телефонен номер</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Няма контакти с телефонни номера"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> намерени</item>
-      <item quantity="one">1 намерен</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Промените в контакта не можаха да бъдат запазени"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Връзката на контакта не можа да бъде прекратена"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Контактът не можа да бъде свързан"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"При запазването на контакта възникна грешка"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Промените в снимката на контакта не можаха да бъдат запазени"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Зареждането на етикета не бе успешно"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Етикетът бе изтрит"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Етикетът бе създаден"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Етикетът не може да бъде създаден"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Етикетът бе актуализиран"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Премахнати от етикета"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Добавянето към етикета бе успешно"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Промените в етикета не можаха да бъдат запазени"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Етикетът вече съществува"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Някои контакти нямат имейл адреси."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Някои контакти нямат телефонни номера."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Изпращане на имейл"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Изпращане на съобщение"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Избиране на контакти"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Изпращане"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Няма контакти"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> намерени</item>
-      <item quantity="one">1 намерен</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Всички"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Любими"</string>
-    <string name="callBack" msgid="5498224409038809224">"Обратно обаждане"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Повторно обаждане"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Отговаряне на обаждане"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Да се добави ли „<xliff:g id="EMAIL">%s</xliff:g>“ към контакти?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"снимка на контакта"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"плюс"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> от <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контакта"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Имена на контактите ви"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Не бе намерено приложение за извършване на това действие."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Кликнете за връщане към предишния екран"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Добавяне на телефонен номер"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Добавяне на имейл"</string>
     <string name="missing_app" msgid="1466111003546611387">"Не бе намерено приложение за извършване на това действие."</string>
     <string name="menu_share" msgid="943789700636542260">"Споделяне"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Добавяне към контактите"</string>
-    <string name="share_via" msgid="563121028023030093">"Споделяне на контакт чрез"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Създаване на група в профил"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Добавяне"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Споделяне на контактите чрез</item>
+      <item quantity="one">Споделяне на контакта чрез</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Избиране на профил"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Създаване на етикет"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Преименуване на етикета"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Име на етикета"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Име на етикета"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Гласов разговор"</string>
     <string name="video_chat" msgid="1872255818640336072">"Видеоразговор"</string>
-    <string name="connections" msgid="8098440723172028350">"Връзки"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Добавяне на връзка"</string>
-    <string name="recent" msgid="2659189233141493004">"Скорошни"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Скорошни актуал."</string>
     <string name="account_type_format" msgid="718948015590343010">"Контакт от <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Профил в <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Не може да се редактира от приложението."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Не може да се редактира на това у-во."</string>
     <string name="take_photo" msgid="7496128293167402354">"Снимане"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Заснемане на нова снимка"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Избор на снимка"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Избор на нова снимка"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Списъкът с контакти се актуализира."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Търси се..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Показване на избраните"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Показване на всички"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Избиране на всички"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Премахване на избора от всички"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Добавяне на нов"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Организация: Добавяне"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Име на групата"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Промяна"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Основна снимка"</string>
-    <string name="description_star" msgid="2605854427360036550">"любимо"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Редактиране на контакта"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Да се свърже ли текущият контакт с избрания?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Етикет"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Отказ"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Назад"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"затваряне"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Да се превключи ли към редактиране на избрания контакт? Въведената досега информация ще бъде копирана."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Копиране в моите контакти"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Добавяне в „Моите контакти“"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Директория „<xliff:g id="TYPE">%1$s</xliff:g>“"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"По избор"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Настройки"</string>
     <string name="menu_settings" msgid="377929915873428211">"Настройки"</string>
     <string name="menu_help" msgid="1680178646764069976">"Помощ и отзиви"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Опции за показване"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Телефонен номер"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Добавяне към контактите"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Добавяне към контакта"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Затваряне"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Включване на годината"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Контакт"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Зарежда се…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Създаване на нов контакт"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Добавяне на профил"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Импортиране на контактите"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Създаване на нова група"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Нова група"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> групи</item>
-      <item quantity="one">1 група</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Да се изтрие ли групата „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Самите контакти няма да бъдат изтрити.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> души от <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> човек от <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> души</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> човек</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Импортиране"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Създаване на ново…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Да се изтрие ли етикетът „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Самите контакти няма да бъдат изтрити.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Въведете името на контакта преди свързването му с друг."</string>
     <string name="copy_text" msgid="3257145021583508761">"Копиране в буфера"</string>
     <string name="set_default" msgid="4417505153468300351">"Задаване като стандартна настройка"</string>
     <string name="clear_default" msgid="7193185801596678067">"Изчистване на стандартната настройка"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Текстът бе копиран"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Да се отхвърлят ли направените от вас промени?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Отхвърляне"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Потребит. профил"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Въведете името на човека"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Име на групата"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Да се отхвърлят ли промените?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Отхвърляне"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Отказ"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Да се отхвърли ли персонализирането?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Търсене в контактите"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Премахване на контакти"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Моят локален потр. профил"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Потр. ми профил <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Показват се всички контакти"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Приложението Контакти работи по-добре с профил в Google.\n\n• Осъществявайте достъп от всеки уеб браузър.\n• Създавайте сигурни резервни копия на контактите си."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Погрижете се за безопасността на контактите си, ако загубите своя телефон: синхронизирайте с онлайн услуга."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Добавяне на профил"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"За новия ви контакт няма да бъде създадено резервно копие. Да се добави ли профил, в който да се създават такива копия на контактите онлайн?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Отделете малко време и добавете профил, чрез който ще се създават резервни копия на контактите ви в Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Новите контакти ще се запазват в/ъв <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Изберете стандартен профил за новите контакти:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Добавяне"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Нов контакт"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Редактиране"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Съхраняване локално"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Само преглед"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Избор на контакт за редактиране"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Свързани контакти"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Добавяне"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Разделяне"</string>
     <string name="add_account" msgid="8201790677994503186">"Добавяне"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Добавяне на нов профил"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Експортиране на файловете на базата от данни"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"добавяне на нов контакт"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Създаване на нов контакт"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Преглед на още"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Преглед на по-малко"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Преглед на всичко"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Скорошни"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Информация"</string>
-    <string name="send_message" msgid="8938418965550543196">"Изпращане на съобщение"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Създава се лично копие..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Вчера"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Създава се лично копие..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Утре"</string>
     <string name="today" msgid="8041090779381781781">"Днес"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Днес от <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Утре от <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Неозаглавено събитие)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Задаване"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Незабавно съобщение"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Уебсайт"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Събитие"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Отношение"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Профил"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Име"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Имейл"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Снимка"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Кликнете за разгъване на редактора за контакти."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Кликнете за свиване на редактора за контакти."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"упътвания до местоположението"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Скорошен SMS. „<xliff:g id="MESSAGE_BODY">%s</xliff:g>“ от <xliff:g id="PHONE_NUMBER">%s</xliff:g> на <xliff:g id="DATE">%s</xliff:g>. Кликнете за отговор"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Скорошен SMS. „<xliff:g id="MESSAGE_BODY">%1$s</xliff:g>“ от <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> на <xliff:g id="DATE">%3$s</xliff:g>. Кликнете за отговор"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"входящо"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"изходящо"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"пропуснато"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Скорошно обаждане (<xliff:g id="CALL_TYPE">%s</xliff:g>) от <xliff:g id="PHONE_NUMBER">%s</xliff:g> на <xliff:g id="DATE">%s</xliff:g>. Кликнете за обратно обаждане"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Скорошно обаждане (<xliff:g id="CALL_TYPE">%1$s</xliff:g>) от <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> на <xliff:g id="DATE">%3$s</xliff:g>. Кликнете за обратно обаждане"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Вие: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts работи по-добре, когато въведете съответния идентификатор на човека в полето за имейл или телефон."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Още полета"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Промяна на снимката"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Отварянето на редактора не бе успешно."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Запазване във:"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Понастоящем се запазва в профила <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Докоснете двукратно, за да изберете друг."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Свързани контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Свързан контакт</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> свързани контакта"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Още полета"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Промяна на снимката на контакта"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Добавяне на снимка на контакта"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Снимка на контакта"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Отварянето на редактора не бе успешно."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Запазва се във:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Данните за контакта от <xliff:g id="ACCOUNT">%s</xliff:g> не могат да се редактират"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"СВЪРЗВАНЕ НА КОНТАКТИТЕ"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ОТКАЗ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> възможни дубликата</item>
-      <item quantity="one">1 възможен дубликат</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> свързани контакта</item>
-      <item quantity="one">1 свързан контакт</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Този контакт"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Възможни дубликати"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Тези контакти може да са един и същи човек. Можете да ги свържете в един."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Свързани контакти"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"От профилите ви"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Правене на снимка"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Всички снимки"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Избиране на снимка"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"От <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Изтриване на <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Изтриване на <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Изтриване на <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Снимката от <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> е без отметка"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Снимката от <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> е с отметка"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Неизбрана снимка от неизвестен профил"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Избрана снимка от неизвестен профил"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Списъкът с контакти се актуализира, за да отрази промяната на езика.\n\nМоля, изчакайте..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Добавяне на номер"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Блокиране на номера"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Доб. номер или потърс. контакт"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Да се отблокира ли <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ОТБЛОКИРАНЕ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Да се блокира ли <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"БЛОКИРАНЕ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Блокирахте <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Отблокирахте <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> е невалиден."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокир. на обажданията е временно изкл."</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокирането на обажданията е деактивирано, защото в рамките на последните 48 часа сте се свързали със спешните служби от този телефон. То автоматично ще бъде активирано отново, когато периодът от 48 часа изтече."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортиране"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Преглед на номерата"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Добавяне на номер"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокирането на обажданията е деактивирано за 48 часа"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Деактивирано, тъй като бе извършено спешно обаждане."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ОТМЯНА"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> вече е блокиран."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Отблокиране на номера"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Подробности за контакта за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импортирането не бе успешно"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Импортиране на номерата"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"За да търсите в контактите си, включете разрешенията за тях."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Включване"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Предложения"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Ново"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Отваряне на слоя за навигация"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Затваряне на слоя за навигация"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Етикет „<xliff:g id="LABEL_NAME">%s</xliff:g>“"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Етикети"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Профили"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Преглед на общата ви история"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Събития и съобщения"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Събития"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Съобщения"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Предложения"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Поддържайте контактите си организирани и полезни"</string>
+    <string name="undo" msgid="1425165101664071422">"Отмяна"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Обаждане на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Обаждане на домашен"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Обаждане на мобилен"</string>
+    <string name="call_work" msgid="5328785911463744028">"Обаждане на служебен"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Обаждане на служебен факс"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Обаждане на домашен факс"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Обаждане на пейджър"</string>
+    <string name="call_other" msgid="8563753966926932052">"Обаждане"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Обаждане на обратно обаждане"</string>
+    <string name="call_car" msgid="3280537320306436445">"Обаждане на кола"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Обаждане на основен служебен"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Обаждане на ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Обаждане на основен"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Обаждане на факс"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Обаждане на радио"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Обаждане на телекс"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Обаждане на TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Обаждане на служебен мобилен"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Обаждане на служебен пейджър"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Обаждане на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Обаждане на MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (обаждане)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"SMS до <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Изпращaне на SMS на домашен"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Изпращaне на SMS на мобилен"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Изпращане на SMS на служебен"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Изпращане на SMS на служебен факс"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Изпращане на SMS на домашен факс"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Изпращане на SMS на пейджър"</string>
+    <string name="sms_other" msgid="806127844607642331">"Текст"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Изпращане на SMS на отговорилия"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Изпращане на SMS на кола"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Изпращaне на SMS на основен служебен"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Изпращaне на SMS на ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Изпращане на SMS на основен"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Изпращане на SMS на факс"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Изпращане на SMS на радио"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Изпращане на SMS на телекс"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Изпращане на SMS на TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Изпращане на SMS на служебен мобилен"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Изпращaне на SMS на служебен пейджър"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Изпращане на SMS на <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Изпращане на SMS на MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (изпращане на съобщение)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Провеждане на видеообаждане"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Да се изчистят ли често търсените?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Ще изчистите списъка с често търсените в приложенията Контакти и Телефон и ще принудите приложенията за електронна поща да научат отново предпочитанията ви за адресите."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Често търсените се изчистват…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Налице"</string>
+    <string name="status_away" msgid="1838861100379804730">"Отсъства"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Зает/а"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Други"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Директория"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Служебен указател"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Всички контакти"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Бърз контакт за <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Няма име)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Често търсени"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Всички контакти с телефонни номера"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Контакти в служебния потребителски профил"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Актуализации"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Устройство"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM карта"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Име"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Псевдоним"</string>
+    <string name="name_given" msgid="4280790853455320619">"Собствено име"</string>
+    <string name="name_family" msgid="7466985689626017037">"Фамилно име"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Обръщение"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Презиме"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Обръщение"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Име, както се произнася"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Собствено име (фонетично)"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Презиме, както се произнася"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Фамилно име (фонетично)"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Телефон"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Имейл"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Адрес"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Незабавни съобщения"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Организация"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Отношение"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Специална дата"</string>
+    <string name="sms" msgid="1756857139634224222">"Текстово съобщение"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Адрес"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Фирма"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Заглавие"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Бележки"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Персонализирано"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Уебсайт"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Етикети"</string>
+    <string name="email_home" msgid="8573740658148184279">"Изпращане на имейл до домашен"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Изпращане на имейл до мобилен"</string>
+    <string name="email_work" msgid="2807430017302722689">"Изпращане на имейл до служебен"</string>
+    <string name="email_other" msgid="3454004077967657109">"Изпращане на имейл"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Имейл до <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Изпращане на имейл"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Улица"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Град"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Щат"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Пощенски код"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Държава"</string>
+    <string name="map_home" msgid="1243547733423343982">"Преглед на домашен адрес"</string>
+    <string name="map_work" msgid="1360474076921878088">"Преглед на служебен адрес"</string>
+    <string name="map_other" msgid="3817820803587012641">"Преглед на адрес"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Преглед на адреса на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Чат по AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Чат по Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Чат по Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Чат по Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Чат по QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Чат по Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Чат по ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Чат по Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Чат"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"изтриване"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Показване на още полета за името"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Свиване на полетата за имена"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Показване на още полета за фонетичното име"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Свиване на полетата за фонетични имена"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Разгъване"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Свиване"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Разгънато"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Свито"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Всички контакти"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Със звезда"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Персонализиране"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Контакт"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Всички други контакти"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Всички контакти"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Премахване на група за синхронизиране"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Добавяне на група за синхронизиране"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Още групи..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Ако синхронизирането на „<xliff:g id="GROUP">%s</xliff:g>“ спре, то ще спре и за негрупираните контакти."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Опциите за показване се запазват..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Персонализиран изглед"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Запазване на импортираните контакти във:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM карта"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM карта <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d контакта</item>
+      <item quantity="one">1 контакт</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> контакта • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> контакт • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf файл"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Няма нищо за импортиране"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Да се импортират ли контактите от vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Да се анулира ли импортирането на <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Да се анулира ли експортирането на <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Импорт./експорт. не можа да се анулира"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Неизвестна грешка."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"„<xliff:g id="FILE_NAME">%1$s</xliff:g>“ не можа да се отвори: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Експортирането не можа да започне: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Няма контакт, позволяващ експортиране."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Деактивирахте задължително разрешение."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Възникна грешка при експортирането: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O грешка"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Няма достатъчно памет. Файлът може да е твърде голям."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Форматът не се поддържа."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Експортирането на <xliff:g id="FILENAME">%s</xliff:g> завърши."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Експортирането на контактите завърши."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Експортирането на контактите завърши. Кликнете върху известието, за да ги споделите."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Докоснете, за да споделите контактите."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Експортирането на <xliff:g id="FILENAME">%s</xliff:g> е анулирано."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Експортиране на данни за контакти"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Данните за контактите се експортират."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Информацията за базата от данни не можа да бъде получена."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Няма контакти, позволяващи експортиране."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Създателят на vCard не се стартира правилно."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Не се експортира"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Данните за контакта не бяха експортирани.\nПричина: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> се импортира"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Данните не можаха да бъдат прочетени"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Импортирането на vCard <xliff:g id="FILENAME">%s</xliff:g> завърши"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Импортирането на <xliff:g id="FILENAME">%s</xliff:g> е анулирано"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> ще се импортира скоро."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Файлът ще се импортира скоро."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Заявката за импортиране на vCard бе отхвърлена. Опитайте отново по-късно."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Контактите ще бъдат експортирани скоро."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Заявката за експортиране на vCard бе отхвърлена. Опитайте отново по-късно."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"контакт"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard се кешира/т във временно локално хранилище. Самото импортиране ще започне скоро."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard не можа да бъде импортирана."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Контакт: Получ. чрез NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кешира се"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Импортира се <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Експорт като .vcf файл"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Сортиране по"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Име (фонетично)"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Винаги да се показва"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Скриване, ако е празно"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Собствено име"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Фамилно име"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Формат на името"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Първо собственото име"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Първо фамилното име"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Профили"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Стандартен профил за новите контакти"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Моята информация"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Настройте потребителския си профил"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Всичко за Контакти"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Споделяне на любимите контакти"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Споделяне на всички контакти"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Споделянето на контактите не бе успешно."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Експортиране на контакти"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Импортиране на контакти от"</string>
+    <string name="share_error" msgid="948429331673358107">"Този контакт не може да бъде споделен."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Няма контакти за споделяне."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Контакти за показване"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Контакти за показване"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Персонализиране на изгледа"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Запазване"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Търсете контакти"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Любими"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Импортиране"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Експортиране"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Блокирани номера"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"чрез <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> чрез <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"спиране на търсенето"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Изчистване на търсенето"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Профил"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Винаги да се използва за обаждания"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Обаждане, включващо бележка"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Напишете бележка, която да се изпрати с обаждането…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ИЗПРАЩАНЕ И ОБАЖДАНЕ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Версия"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Лицензи за отворен код"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Подробности за лицензите на софтуера с отворен код"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Декларация за поверителност"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Общи условия"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Лицензи за отворен код"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Отварянето на URL адреса не бе успешно."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"За <xliff:g id="ACCOUNT_INFO">%s</xliff:g> е поставена отметка"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"За <xliff:g id="ACCOUNT_INFO">%s</xliff:g> не е поставена отметка"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Извършване на видеообаждане"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Изтриване"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Многоточие"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> мин <xliff:g id="SECONDS">%2$s</xliff:g> сек"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ч <xliff:g id="MINUTES_1">%2$s</xliff:g> мин <xliff:g id="SECONDS">%3$s</xliff:g> сек"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Този пряк път е деактивиран"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Контактът бе премахнат"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Импортиране"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Избор на контакти"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"В SIM картата ви няма контакти"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Контактът вече съществува в списъка ви"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> контакта в SIM картата бяха импортирани</item>
+      <item quantity="one">1 контакт в SIM картата бе импортиран</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Импортирането на контактите в SIM картата не бе успешно"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Импортиране от SIM картата"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Отказ"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Автоматичното синхронизиране е изключено. Докоснете, за да включите."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Отхвърляне"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Синхронизирането на профила е изключено. Докоснете, за да включите."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Да се включи ли автоматичното синхронизиране?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Промените ви във всички приложения и профили, не само в контактите в Google, ще се поддържат актуални в устройствата ви и в мрежата."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Включване"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Няма връзка"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM карта"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Показване на още"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Импортирането от SIM картата завърши"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Импортирането не бе успешно"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Контактите не можаха да се импортират от SIM картата"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Импортира се от SIM картата"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
deleted file mode 100644
index 4750695..0000000
--- a/res/values-bn-rBD/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"পরিচিতিগুলি"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"পরিচিতিগুলি"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"পরিচিতি দেখুন"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"পরিচিতি সম্পাদনা করুন"</string>
-    <string name="contactsList" msgid="8661624236494819731">"পরিচিতিগুলি"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"পরিচিতি"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"সরাসরি ডায়াল"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"সরাসরি বার্তা"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"শর্টকার্ট করতে একটি পরিচিতি চয়ন করুন"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"কল করার জন্য একটি নম্বর চয়ন করুন"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"বার্তা পাঠানোর জন্য একটি নম্বর চয়ন করুন"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"পরিচিতিতে যোগ করুন"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"একটি পরিচিতি চয়ন করুন"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"নতুন পরিচিতি তৈরি করুন"</string>
-    <string name="starredList" msgid="4817256136413959463">"তারকা চিহ্নিত"</string>
-    <string name="frequentList" msgid="7154768136473953056">"ঘন ঘন"</string>
-    <string name="strequentList" msgid="5640192862059373511">"পছন্দগুলি"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"পরিচিতির বিবরণগুলি"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"পরিচিতি সম্পাদনা করুন"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"পরিচিতি তৈরি করুন"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"গোষ্ঠী সম্পাদনা করুন"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"গোষ্ঠী তৈরি করুন"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"সম্পর্কে"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"আপডেটগুলি"</string>
-    <string name="searchHint" msgid="8482945356247760701">"পরিচিতিগুলি খুঁজুন"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"পরিচিতি দেখুন"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"পছন্দগুলিতে জুড়ুন"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"পছন্দসই থেকে সরান"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"পছন্দসই থেকে সরানো হয়েছে"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"পছন্দসই এ জোড়া হয়েছে"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"সম্পাদনা করুন"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"মুছুন"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ফটো পরিবর্তন করুন"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"হোম স্ক্রীনে রাখুন"</string>
-    <string name="menu_call" msgid="3992595586042260618">"পরিচিতিকে কল করুন"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"পরিচিতিকে পাঠ্য বার্তা পাঠান"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"লিঙ্কমুক্ত করুন"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"সম্পাদনা করুন"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"মুছুন"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"পরিচিতি যুক্ত করুন"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"গোষ্ঠী যোগ করুন"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"এই পরিচিতিটিকে একাধিক পরিচিতি থেকে লিঙ্কমুক্ত করবেন?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"লিঙ্কমুক্ত করুন"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"আপনি কি আপনার ইতিমধ্যে করা পরিবর্তনগুলি সংরক্ষণ এবং এই পরিচিতিটিকে একাধিক পরিচিতি থেকে লিঙ্কমুক্ত করতে চান?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"সংরক্ষণ ও লিঙ্কমুক্ত করুন"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"আপনি কি আপনার ইতিমধ্যে করা পরিবর্তনগুলি সংরক্ষণ এবং নির্বাচিত পরিচিতির সাথে লিঙ্ক করতে চান?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"সংরক্ষণ ও লিঙ্ক করুন"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"লিঙ্ক করুন"</string>
-    <string name="menu_save" msgid="1727844363591825909">"সংরক্ষণ করুন"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"পরিচিতিগুলি লিঙ্ক করুন"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"যে পরিচিতিটিকে <xliff:g id="NAME">%s</xliff:g> এর সাথে লিঙ্ক করতে চান চয়ন করুন:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"সকল পরিচিতি দেখান"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"প্রস্তাবিত পরিচিতিগুলি"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"সকল পরিচিতি"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"পরিচিতিগুলি লিঙ্ক করা হয়েছে"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">পরিচিতিগুলি মোছা হয়েছে</item>
-      <item quantity="other">পরিচিতিগুলি মোছা হয়েছে</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"রিংটোন সেট করুন"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ভয়েসমেলে সকল কল"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"শুধুমাত্র-পঠনযোগ্য অ্যাকাউন্টের পরিচিতিগুলি মোছা যায় না, কিন্তু সেগুলিকে লুকিয়ে রাখা যাবে৷"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"লুকান"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"যে পরিচিতিগুলি মোছা হবে সেগুলিতে একধিক অ্যাকাউন্টের বিশদ বিবরণ রয়েছে৷ শুধুমাত্র-পঠনযোগ্য অ্যাকাউন্টগুলির বিশদ বিবরণ লুকানো হবে, কিন্তু মুছে ফেলা হবে না৷"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"একটি লিঙ্ক করার কাজ সম্পাদন করতে আপনাকে কমপক্ষে দুটি পরিচিতি নির্বাচন করতে হবে৷"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"নির্বাচিত পরিচিতিগুলি লিঙ্ক করবেন?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"লিঙ্ক করুন"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"এই পরিচিতিটি মুছবেন?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"নির্বাচিত পরিচিতিগুলি মুছে ফেলতে চান?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"শুধুমাত্র-পঠনযোগ্য অ্যাকাউন্টের পরিচিতিগুলি মোছা যায় না, কিন্তু সেগুলিকে লুকিয়ে রাখা যাবে৷"</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"যে পরিচিতিগুলি মোছা হবে সেগুলিতে একধিক অ্যাকাউন্টের বিশদ বিবরণ উপস্থিত রয়েছে৷ শুধুমাত্র-পঠনযোগ্য অ্যাকাউন্টগুলির বিশদ বিবরণ লুকানো হবে, মুছে ফেলা হবে না৷"</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"এই পরিচিতিটি মোছা হলে সেটি একাধিক অ্যাকাউন্ট থেকে বিশদ বিবরণ মুছবে৷"</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"এই পরিচিতিটি মুছবেন?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"মুছুন"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"পরিবর্তনগুলি খারিজ করুন"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"এই পরিচিতিটি বিদ্যমান নয়৷"</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"হোম স্ক্রীনে পরিচিতি যোগ করা হযেছে৷"</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"হোম স্ক্রীনে <xliff:g id="NAME">%s</xliff:g> যোগ করা হয়েছে৷"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"নতুন পরিচিতি তৈরি করুন"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"নতুন পরিচিতি তৈরি করুন"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"সংগঠন"</item>
-    <item msgid="7196592230748086755">"টিকা"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ট্যাবলেটে কোনো ছবি উপলব্ধ নয়৷"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ফোনে কোনো ছবি উপলব্ধ নয়৷"</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"পরিচিতির ফটো"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"কাস্টম লেবেল নাম"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"কলগুলিকে সরাসরি ভয়েসমেলে পাঠান"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ফটো সরান"</string>
-    <string name="noContacts" msgid="4955659076981974652">"কোনো পরিচিতি নেই"</string>
-    <string name="noGroups" msgid="8614664663561385253">"কোনো গোষ্ঠী নেই৷"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"গোষ্ঠীগুলি তৈরি করার জন্য আপনার একটি অ্যাকাউন্টের প্রয়োজন৷"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"এই গোষ্ঠীতে কেউ নেই৷"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"কিছু যোগ করতে, গোষ্ঠী সম্পাদনা করুন৷"</string>
-    <string name="savingContact" msgid="4075751076741924939">"পরিচিতি সংরক্ষণ করা হচ্ছে…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"পরিচিতি সংরক্ষণ করা হয়েছে"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"পরিচিতিগুলি লিঙ্কমুক্ত করা হয়েছে"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"পরিচিতির পরিবর্তনগুলি সংরক্ষণ করা যায়নি৷"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"পরিচিতিতে লিঙ্কমুক্ত করা যায়নি৷"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"পরিচিতি লিঙ্ক করা যায়নি৷"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"পরিচিতি সংরক্ষণ করতে ত্রুটি হয়েছে৷"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"পরিচিতির ফটোর পরিবর্তনগুলি সংরক্ষণ করা যায়নি৷"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"গোষ্ঠী সংরক্ষিত হয়েছে৷"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"গোষ্ঠীর পরিবর্তনগুলি সংরক্ষণ করা যায়নি৷"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one">ফোন নম্বর সহ <xliff:g id="COUNT">%d</xliff:g>টি পরিচিতি</item>
-      <item quantity="other">ফোন নম্বর সহ <xliff:g id="COUNT">%d</xliff:g>টি পরিচিতি</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ফোন নম্বর সহ কোনো পরিচিতি নেই"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g>টি খুঁজে পাওয়া গেছে</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>টি খুঁজে পাওয়া গেছে</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"কোনো পরিচিতি নেই"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g>টি খুঁজে পাওয়া গেছে</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>টি খুঁজে পাওয়া গেছে</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"সমস্ত"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"পছন্দসইগুলি"</string>
-    <string name="callBack" msgid="5498224409038809224">"কল ব্যাক করুন"</string>
-    <string name="callAgain" msgid="3197312117049874778">"আবার কল করুন"</string>
-    <string name="returnCall" msgid="8171961914203617813">"মিস হয়ে যওয়া নম্বরে পুনরায় কল করুন"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"পরিচিতিগুলিতে <xliff:g id="EMAIL">%s</xliff:g> যোগ করবেন?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"পরিচিতির ফটো"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"যোগ চিহ্ন"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g>টির মধ্যে <xliff:g id="CURRENT_NUMBER">%s</xliff:g>টি পরিচিতি"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"আপনার পরিচিতিগুলির নামগুলি"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"এই ক্রিয়াটিকে চালনা করার জন্য কোনো অ্যাপ্লিকেশান পাওয়া যায়নি৷"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"পূর্ববর্তী স্ক্রীনে প্রত্যাবর্তন করার জন্য ক্লিক করুন"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ফোন নম্বর জুড়ুন"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ইমেল জুড়ুন"</string>
-    <string name="missing_app" msgid="1466111003546611387">"এই ক্রিয়াটিকে চালনা করার জন্য কোনো অ্যাপ্লিকেশান পাওয়া যায়নি৷"</string>
-    <string name="menu_share" msgid="943789700636542260">"ভাগ করুন"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"পরিচিতিগুলিতে জুড়ুন"</string>
-    <string name="share_via" msgid="563121028023030093">"এর মাধ্যমে পরিচিতি ভাগ করুন"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"অ্যাকাউন্টের অধীনে গোষ্ঠী তৈরি করুন"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"ভয়েস চ্যাট"</string>
-    <string name="video_chat" msgid="1872255818640336072">"ভিডিও চ্যাট"</string>
-    <string name="connections" msgid="8098440723172028350">"সংযোগগুলি"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"সংযোগ যোগ করুন"</string>
-    <string name="recent" msgid="2659189233141493004">"সাম্প্রতিক"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"সাম্প্রতিক আপডেটগুলি"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>টি পরিচিতি"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> অ্যাকাউন্ট"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"এই অ্যাপ্লিকেশন থেকে সম্পাদনাযোগ্য নয়৷"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"এই ডিভাইসে সম্পাদনযোগ্য নয়৷"</string>
-    <string name="take_photo" msgid="7496128293167402354">"ফটো তুলুন"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"নতুন ফটো তুলুন"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ফটো চয়ন করুন"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"নতুন ফটো নির্বাচন করুন"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"পরিচিতি তালিকা আপডেট করা হচ্ছে৷"</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"অনুসন্ধান করছে..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"নির্বাচিত দেখান"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"সকল দেখান"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"সবগুলি নির্বাচন করুন"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"সবগুলি নির্বাচন মুক্ত করুন"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"নতুন যোগ করুন"</string>
-    <string name="add_organization" msgid="7311893231158291197">"সংগঠন যোগ করুন"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"তারিখ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"গোষ্ঠী নাম"</string>
-    <string name="change_photo" msgid="8530597935483526383">"পরিবর্তন"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"প্রাথমিক ফটো"</string>
-    <string name="description_star" msgid="2605854427360036550">"পছন্দসই"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"পরিচিতি সম্পাদনা করুন"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"নির্বাচিত পরিচিতির সঙ্গে বর্তমান পরিচিতিটি লিঙ্ক করবেন?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"নির্বাচিত পরিচিতি সম্পাদনায় নিয়ে যাবেন? আপনার এ পর্যন্ত প্রবেশ করানো তথ্য অনুলিপি করা হবে৷"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"আমার পরিচিতিগুলিতে অনুলিপি করুন"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"আমার পরিচিতিগুলিতে যুক্ত করুন"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"ডিরেক্টরি <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"কাস্টম"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"সেটিংস"</string>
-    <string name="menu_settings" msgid="377929915873428211">"সেটিংস"</string>
-    <string name="menu_help" msgid="1680178646764069976">"সহায়তা ও প্রতিক্রিয়া"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"প্রদর্শনের বিকল্পগুলি"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ফোন নম্বর"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"পরিচিতিগুলিতে যোগ করুন"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"পরিচিতিতে যুক্ত করুন"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"বন্ধ"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"বছর অন্তর্ভুক্ত করুন"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"পরিচিতি"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"লোড হচ্ছে..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"একটি নতুন পরিচিতি তৈরি করুন"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"অ্যাকাউন্ট যোগ করুন"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"পরিচিতিগুলি আমদানি করুন"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"নতুন গোষ্ঠী তৈরি করুন"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"নতুন গোষ্ঠী তৈরি করুন"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g>টি গোষ্ঠী</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g>টি গোষ্ঠী</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"গোষ্ঠী \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" মুছবেন? (পরিচিতিগুলি নিজে থেকে মুছে যাবে না৷)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> থেকে <xliff:g id="COUNT_2">%1$d</xliff:g> জন</item>
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> থেকে <xliff:g id="COUNT_2">%1$d</xliff:g> জন</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> জন</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> জন</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"অন্য একটির সাথে লিঙ্ক করার আগে পরিচিতির নাম লিখুন৷"</string>
-    <string name="copy_text" msgid="3257145021583508761">"ক্লিপবোর্ডে অনুলিপি করুন"</string>
-    <string name="set_default" msgid="4417505153468300351">"ডিফল্ট সেট করুন"</string>
-    <string name="clear_default" msgid="7193185801596678067">"ডিফল্ট সাফ করুন"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"পাঠ্য অনুলিপি হয়েছে"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"আপনার পরিবর্তনগুলি বাতিল করতে চান?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"বাতিল করুন"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"আমার প্রোফাইল সেট করা"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"ব্যক্তির নাম লিখুন"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"গোষ্ঠীর নাম"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"আমার স্থানীয় প্রোফাইল"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"আমার <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> প্রোফাইল"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"সমস্ত পরিচিতি দেখানো হচ্ছে"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Google অ্যাকাউন্টের সাথে পরিচিতিগুলি ভাল কাজ করে।\n \n যে কোনো ওয়েব ব্রাউজার থেকে অ্যাক্সেস করুন।\n • নিরাপদভাবে আপনার পরিচিতিগুলির ব্যাক আপ নিন।"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"আপনার ফোন হারিয়ে গেলেও আপনার পরিচিতিগুলিকে নিরাপদ রাখুন: একটি অনলাইন পরিষেবার সাথে সিংক্রোনাইজ করুন৷"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"একটি অ্যাকাউন্ট যোগ করুন"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"আপনার নতুন পরিচিতিটির ব্যাকআপ নেওয়া হবে না৷ পরিচিতিগুলিকে অনলাইনে ব্যাকআপ নেওয়ার জন্য একটি অ্যাকাউন্ট যুক্ত করবেন?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"নতুন পরিচিতিগুলি <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> এ সংরক্ষণ করা হবে৷"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"নতুন পরিচিতিগুলির জন্য একটি ডিফল্ট অ্যাকাউন্ট চয়ন করুন:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"নতুন পরিচিতি জুড়ুন"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"পরিচিতি সম্পাদনা করুন"</string>
-    <string name="keep_local" msgid="1258761699192993322">"স্থানীয় ভাবে রাখুন"</string>
-    <string name="add_account" msgid="8201790677994503186">"অ্যাকাউন্ট জুড়ুন"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"নতুন অ্যাকাউন্ট যোগ করুন"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"ডেটাবেস ফাইলগুলি রপ্তানি করুন"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"নতুন পরিচিতি জুড়ুন"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"আরো দেখুন"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"আরো কম"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"সবগুলো দেখুন"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"সাম্প্রতিক"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"সম্পর্কে"</string>
-    <string name="send_message" msgid="8938418965550543196">"বার্তা পাঠান"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"একটি ব্যক্তিগত প্রতিলিপি তৈরি করা হচ্ছে..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"গতকাল"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"আগামীকাল"</string>
-    <string name="today" msgid="8041090779381781781">"আজ"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"আজ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"আগামীকাল <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(শিরোনামহীন ইভেন্ট)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"সেট করুন"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"সংগঠন"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"ডাকনাম"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"টীকা"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"ওয়েবসাইট"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ইভেন্ট"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"সম্পর্ক"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"অ্যাকাউন্ট"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"নাম"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ইমেল"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ফোন"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ফটো"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"পরিচিতি সম্পাদক প্রসারিত করতে ক্লিক করুন৷"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"পরিচিতি সম্পাদক সঙ্কুচিত করতে ক্লিক করুন৷"</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"অবস্থান জানার দিকনির্দেশ"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"সাম্প্রতিক sms৷ <xliff:g id="MESSAGE_BODY">%s</xliff:g>৷ <xliff:g id="PHONE_NUMBER">%s</xliff:g>৷ <xliff:g id="DATE">%s</xliff:g>৷ প্রতিক্রিয়া জানাতে ক্লিক করুন"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"আগত"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"আউটগোয়িং"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"মিস করা"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"সাম্প্রতিক কল৷ <xliff:g id="CALL_TYPE">%s</xliff:g>৷ <xliff:g id="PHONE_NUMBER">%s</xliff:g>৷ <xliff:g id="DATE">%s</xliff:g>৷ ঘুরিয়ে কল করতে ক্লিক করুন"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"আপনি: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"আপনি যখন ইমেল বা ফোন নম্বর লেখার ক্ষেত্রটিতে ব্যক্তির Hangouts সনাক্তকারী লেখেন তখন Hangouts আরো ভালো কাজ করে৷"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"আরো ফিল্ড"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ফটো পরিবর্তন করুন"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"সম্পাদক খুলতে ব্যর্থ হচ্ছে৷"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"এ সংরক্ষণ করা হচ্ছে"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"বর্তমানে <xliff:g id="ACCOUNT_NAME">%s</xliff:g> এ সংরক্ষণ করা হচ্ছে৷ কোনো আলাদা অ্যাকাউন্ট চয়ন করার জন্য দুবার আলতো চপুন৷"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">লিঙ্ক করা পরিচিতিগুলি (<xliff:g id="COUNT">%d</xliff:g>টি)</item>
-      <item quantity="other">লিঙ্ক করা পরিচিতিগুলি (<xliff:g id="COUNT">%d</xliff:g>টি)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g>টি লিঙ্ক করা পরিচিতি"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"পরিচিতি লিঙ্ক করুন"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"বাতিল করুন"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g>টি সম্ভাব্য সদৃশ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>টি সম্ভাব্য সদৃশ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g>টি লিঙ্ক করা পরিচিতি</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>টি লিঙ্ক করা পরিচিতি</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>টি)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>টি)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"এই পরিচিতি"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"সম্ভাব্য সদৃশগুলি"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"এই পরিচিতিগুলি একই ব্যক্তির হতে পারে৷ আপনি সেগুলিকে একটি একক পরিচিতি হিসাবে লিঙ্ক করতে পারবেন৷"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"লিঙ্ক করা পরিচিতিগুলি"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"আপনার অ্যাকাউন্টগুলি থেকে"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"একটি ফটো তুলুন"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"সকল ফটো"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ফটো চয়ন করুন"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> থেকে"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> মুছুন"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> মুছুন"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> এর থেকে ফটো পরীক্ষা করা হয়নি"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> এর থেকে ফটো পরীক্ষা করা হয়েছে"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"অজানা অ্যাকাউন্টের ফটোতে টিক চিহ্ন দেওয়া হয়নি"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"অজানা অ্যাকাউন্টের ফটোতে টিক চিহ্ন দেওয়া হয়েছে"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"ভাষা পরিবর্তন দেখানোর জন্য পরিচিতির তালিকা আপডেট করা হচ্ছে৷\n\nঅনুগ্রহ করে অপেক্ষা করুন..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"একটি নম্বর যোগ করুন"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"নম্বর অবরোধ করুন"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"সংখ্যা যোগ করুন বা পরিচিতিগুলি অনুসন্ধান করুন"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> অবরোধ মুক্ত করবেন?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"অবরোধ মুক্ত করুন"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> অবরোধ করবেন?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"অবরোধ করুন"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> অবরোধ করা হয়েছে"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> অবরোধ মুক্ত করা হয়েছে"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> অবৈধ৷"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"কল অবরোধ সাময়িকভাবে বন্ধ রয়েছে"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"কল অবরোধ অক্ষম করা হয়েছে কারণ আপনি গত ২৮ ঘন্টার মধ্যে এই ফোন থেকে জরুরি পরিষেবায় যোগাযোগ করেছেন। ২৮ ঘন্টার সময়সীমা পেরিয়ে গেলেই এটি স্বয়ংক্রিয়ভাবে পুনরায় সক্ষম হবে।"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"আমদানি করুন"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"নম্বরগুলি দেখুন"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"একটি নম্বর যোগ করুন"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"৪৮ ঘন্টার জন্য কল অবরোধ করা অক্ষম করা হয়েছে"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"কোনো জরুরি কল করার কারণে অক্ষম করা হয়েছে৷"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"পূর্বাবস্থায় ফিরুন"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ইতিমধ্যেই অববোধ করা রয়েছে৷"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"নম্বর অবরোধ মুক্ত করুন"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> পরিচিতির বিশদ বিবরণ"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"আমদানি ব্যর্থ হয়েছে"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"নম্বরগুলি আমদানি করুন"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"চালু করুন"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
new file mode 100644
index 0000000..60e3d9b
--- /dev/null
+++ b/res/values-bn/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"পরিচিতিগুলি"</string>
+    <string name="contactsList" msgid="8661624236494819731">"পরিচিতিগুলি"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"পরিচিতি যোগ করুন"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"পরিচিতি"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"সরাসরি ডায়াল"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"সরাসরি বার্তা"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"পরিচিতি বেছে নিন"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"পরিচিতিতে যোগ করুন"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"একটি পরিচিতি বেছে নিন"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"নির্বাচন"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"নতুন পরিচিতি তৈরি করুন"</string>
+    <string name="searchHint" msgid="8482945356247760701">"পরিচিতিগুলি খুঁজুন"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"পছন্দগুলিতে জুড়ুন"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"পছন্দসই থেকে সরান"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"পছন্দসই থেকে সরানো হয়েছে"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"পছন্দসই এ জোড়া হয়েছে"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"সম্পাদনা করুন"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"মুছুন"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ফটো পরিবর্তন করুন"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"শর্টকাট তৈরি করুন"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"লিঙ্কমুক্ত করুন"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"পরিচিতিগুলি সরান"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"লেবেলের পুনঃনামকরণ করুন"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"লেবেল মুছুন"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"পরিচিতি যোগ করুন"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"পরিচিতিগুলিকে নির্বাচন করুন"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"পরিচিতিগুলি যোগ করুন"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"লেবেল থেকে সরান"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"লেবেল তৈরি করুন"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"এই পরিচিতিটিকে একাধিক পরিচিতি থেকে লিঙ্কমুক্ত করবেন?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"লিঙ্কমুক্ত করুন"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"আপনি কি আপনার ইতিমধ্যে করা পরিবর্তনগুলি সংরক্ষণ এবং এই পরিচিতিটিকে একাধিক পরিচিতি থেকে লিঙ্কমুক্ত করতে চান?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"সংরক্ষণ ও লিঙ্কমুক্ত করুন"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"আপনি কি আপনার ইতিমধ্যে করা পরিবর্তনগুলি সংরক্ষণ এবং নির্বাচিত পরিচিতির সাথে লিঙ্ক করতে চান?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"সংরক্ষণ ও লিঙ্ক করুন"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"লিঙ্ক করা হচ্ছে"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"লিঙ্কমুক্ত করা হচ্ছে"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"লিঙ্ক করুন"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"লিঙ্ক করা পরিচিতিগুলি দেখুন"</string>
+    <string name="menu_save" msgid="1727844363591825909">"সংরক্ষণ করুন"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"পরিচিতিগুলি লিঙ্ক করুন"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"যে পরিচিতিটিকে <xliff:g id="NAME">%s</xliff:g> এর সাথে লিঙ্ক করতে চান বেছে নিন:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"প্রস্তাবিত পরিচিতিগুলি"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"সকল পরিচিতি"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> লিঙ্ক করা হয়েছে"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"পরিচিতিগুলি লিঙ্ক করা হয়েছে"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g>কে মোছা হয়েছে"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> এবং <xliff:g id="NAME_1">%2$s</xliff:g>কে মোছা হয়েছে"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... মোছা হয়েছে"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">পরিচিতিগুলি মোছা হয়েছে</item>
+      <item quantity="other">পরিচিতিগুলি মোছা হয়েছে</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g>টি পরিচিতি</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>টি পরিচিতি</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g>টি পরিচিতি · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g>টি পরিচিতি · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google থেকে"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> থেকে"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"রিংটোন সেট করুন"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"ভয়েসমেলে রুট করুন"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ভয়েসমেল থেকে আনরুট করুন"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"এই পরিচিতিটি শুধুমাত্র পঠনযোগ্য৷ এটিকে মোছা যাবে না কিন্তু আপনি এটিকে লুকিয়ে রাখতে পারেন৷"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"পরিচিতি লুকান"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"এই পরিচিতিতে থাকা শুধুমাত্র-পঠনযোগ্য অ্যাকাউন্টগুলি লুকানো হবে, কিন্তু মুছে ফেলা হবে না৷"</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"এই পরিচিতিটি মুছবেন?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"নির্বাচিত পরিচিতিগুলি মুছে ফেলতে চান?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"শুধুমাত্র-পঠনযোগ্য অ্যাকাউন্টের পরিচিতিগুলি মোছা যায় না, কিন্তু সেগুলিকে লুকিয়ে রাখা যাবে৷"</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"যে পরিচিতিগুলি মোছা হবে সেগুলিতে একধিক অ্যাকাউন্টের বিশদ বিবরণ উপস্থিত রয়েছে৷ শুধুমাত্র-পঠনযোগ্য অ্যাকাউন্টগুলির বিশদ বিবরণ লুকানো হবে, মুছে ফেলা হবে না৷"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"এই পরিচিতিটি মোছা হলে সেটি একাধিক অ্যাকাউন্ট থেকে বিশদ বিবরণ মুছবে৷"</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"এই পরিচিতিটি মুছবেন?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"মুছুন"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"এই পরিচিতিটি বিদ্যমান নয়৷"</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"হোম স্ক্রীনে পরিচিতি যোগ করা হযেছে৷"</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"হোম স্ক্রীনে <xliff:g id="NAME">%s</xliff:g> যোগ করা হয়েছে৷"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"ডিভাইসে কোনো ছবি নেই৷"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"পরিচিতির ফটো"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"কাস্টম লেবেল নাম"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ফটো সরান"</string>
+    <string name="noContacts" msgid="2228592924476426108">"আপনার পরিচিতির তালিকা খালি"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"এই লেবেলে কোনো পরিচিতি নেই"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"এই অ্যাকাউন্টে কোনো পরিচিতি নেই"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"আপনার পরিচিতির তালিকা খালি"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> সংরক্ষণ করা হয়েছে"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"পরিচিতি সংরক্ষণ করা হয়েছে"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"পরিচিতিগুলি লিঙ্কমুক্ত করা হয়েছে"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"পরিচিতিতে করা পরিবর্তনগুলি সংরক্ষণ করা গেল না"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"পরিচিতি লিঙ্কমুক্ত করা গেল না"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"পরিচিতি লিঙ্ক করা গেল না"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"পরিচিতি সংরক্ষণ করার সময় ত্রুটি"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"পরিচিতির ফটোয় করা পরিবর্তনগুলি সংরক্ষণ করা গেল না"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"লেবেল লোড করা গেল না"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"লেবেল মুছে ফেলা হয়েছে"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"লেবেল তৈরি করা হয়েছে"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"লেবেল তৈরি করা গেল না"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"লেবেল আপডেট করা হয়েছে"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"লেবেল থেকে সরানো হয়েছে"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"লেবেল যোগ করা হয়েছে"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"লেবেলে করা পরিবর্তনগুলি সংরক্ষণ করা গেল না"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"এই লেবেলটি ইতিমধ্যে রয়েছে"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"কিছু পরিচিতির ইমেল ঠিকানা নেই৷"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"কিছু পরিচিতির ফোন নম্বর নেই৷"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ইমেল পাঠান"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"বার্তা পাঠান"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"পরিচিতিগুলি বেছে নিন"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"পাঠান"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"কোনো পরিচিতি নেই"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"পরিচিতিগুলিতে <xliff:g id="EMAIL">%s</xliff:g> যোগ করবেন?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"আপনার পরিচিতিগুলির নামগুলি"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"পূর্ববর্তী স্ক্রীনে প্রত্যাবর্তন করার জন্য ক্লিক করুন"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ফোন নম্বর জুড়ুন"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ইমেল জুড়ুন"</string>
+    <string name="missing_app" msgid="1466111003546611387">"এই ক্রিয়াটিকে চালনা করার জন্য কোনো অ্যাপ্লিকেশান পাওয়া যায়নি৷"</string>
+    <string name="menu_share" msgid="943789700636542260">"শেয়ার করুন"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"পরিচিতিগুলিতে জুড়ুন"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"যোগ করুন"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">এর মাধ্যমে পরিচিতিগুলি শেয়ার করুন</item>
+      <item quantity="other">এর মাধ্যমে পরিচিতিগুলি শেয়ার করুন</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"অ্যাকাউন্ট বেছে নিন"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"লেবেল তৈরি করুন"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"লেবেলের পুনঃনামকরণ করুন"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"লেবেলের নাম"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"লেবেলের নাম"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ভয়েস চ্যাট"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ভিডিও চ্যাট"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>টি পরিচিতি"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> অ্যাকাউন্ট"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ফটো তুলুন"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"নতুন ফটো তুলুন"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ফটো বেছে নিন"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"নতুন ফটো নির্বাচন করুন"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"অনুসন্ধান করছে..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"তারিখ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"লেবেল"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"বাতিল করুন"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"ফিরুন"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"বন্ধ করুন"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"নির্বাচিত পরিচিতি সম্পাদনায় নিয়ে যাবেন? আপনার এ পর্যন্ত প্রবেশ করানো তথ্য অনুলিপি করা হবে৷"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ডিরেক্টরি <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"সেটিংস"</string>
+    <string name="menu_settings" msgid="377929915873428211">"সেটিংস"</string>
+    <string name="menu_help" msgid="1680178646764069976">"সহায়তা ও প্রতিক্রিয়া"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ফোন নম্বর"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"পরিচিতিগুলিতে যোগ করুন"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"বন্ধ"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"বছর অন্তর্ভুক্ত করুন"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"অ্যাকাউন্ট যোগ করুন"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"আমদানি করুন"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"নতুন তৈরি করুন…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" গোষ্ঠী মুছবেন? (পরিচিতিগুলি নিজে থেকে মুছে যাবে না৷)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"অন্য একটির সাথে লিঙ্ক করার আগে পরিচিতির নাম লিখুন৷"</string>
+    <string name="copy_text" msgid="3257145021583508761">"ক্লিপবোর্ডে কপি করুন"</string>
+    <string name="set_default" msgid="4417505153468300351">"ডিফল্ট সেট করুন"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ডিফল্ট সাফ করুন"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"পাঠ্য অনুলিপি হয়েছে"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"পরিবর্তনগুলি বাতিল করবেন?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"বাতিল করুন"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"বাতিল করুন"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"কাস্টমাইজেশান বাতিল করতে চান?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"পরিচিতিগুলি খুঁজুন"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"পরিচিতিগুলি সরান"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"আমার স্থানীয় প্রোফাইল"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"আমার <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> প্রোফাইল"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"কয়েক মিনিট সময় দিয়ে একটি অ্যাকাউন্ট যোগ করুন যেটি Google এ আপনার পরিচিতিগুলির ব্যাক আপ নেবে৷"</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"নতুন পরিচিতিগুলি <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> এ সংরক্ষণ করা হবে৷"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"নতুন পরিচিতিগুলির জন্য একটি ডিফল্ট অ্যাকাউন্ট বেছে নিন:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"নতুন পরিচিতি তৈরি করুন"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"পরিচিতি সম্পাদনা করুন"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"কেবলমাত্র দেখার জন্য"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"সম্পাদনা করার জন্য একটি পরিচিতি বেছে নিন"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"লিঙ্ক করা পরিচিতিগুলি"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"যোগ করুন"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"লিঙ্কমুক্ত করুন"</string>
+    <string name="add_account" msgid="8201790677994503186">"অ্যাকাউন্ট জুড়ুন"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"নতুন অ্যাকাউন্ট যোগ করুন"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ডেটাবেস ফাইলগুলি রপ্তানি করুন"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"নতুন পরিচিতি তৈরি করুন"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"আরো দেখুন"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"আরো কম"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"সাম্প্রতিক"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"সম্পর্কে"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"একটি ব্যক্তিগত অনুলিপি তৈরি করা হচ্ছে…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"আগামীকাল"</string>
+    <string name="today" msgid="8041090779381781781">"আজ"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"আজ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"আগামীকাল <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(শিরোনামহীন ইভেন্ট)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"সেট করুন"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"সংগঠন"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ডাকনাম"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"টীকা"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ওয়েবসাইট"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ইভেন্ট"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"সম্পর্ক"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"নাম"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ইমেল"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ফোন"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"অবস্থান জানার দিকনির্দেশ"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"সাম্প্রতিক sms৷ <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>৷ <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>৷ <xliff:g id="DATE">%3$s</xliff:g>৷ প্রতিক্রিয়া জানাতে ক্লিক করুন"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"আগত"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"আউটগোয়িং"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"মিস করা"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"সাম্প্রতিক কল৷ <xliff:g id="CALL_TYPE">%1$s</xliff:g>৷ <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>৷ <xliff:g id="DATE">%3$s</xliff:g>৷ ঘুরিয়ে কল করতে ক্লিক করুন"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"আপনি: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"আরো ফিল্ড"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"পরিচিতির ফটো পরিবর্তন করুন"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"পরিচিতির ফটো যোগ করুন"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"পরিচিতির ফটো"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"সম্পাদক খোলা গেল না৷"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"এতে সংরক্ষণ করা হচ্ছে"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> এর থেকে আসা পরিচিতির তথ্য সম্পাদনযোগ্য নয়"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"পরিচিতি লিঙ্ক করুন"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"বাতিল করুন"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"এই পরিচিতি"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"সম্ভাব্য সদৃশগুলি"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"এই পরিচিতিগুলি একই ব্যক্তির হতে পারে৷ আপনি সেগুলিকে একটি একক পরিচিতি হিসাবে লিঙ্ক করতে পারবেন৷"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> মুছুন"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> মুছুন"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"প্রস্তাবনা"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"নতুন"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"নেভিগেশান ড্রয়ার খুলুন"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"নেভিগেশান ড্রয়ার বন্ধ করুন"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> লেবেল"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"লেবেলগুলি"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"অ্যাকাউন্টগুলি"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"আপনার ইতিহাস একসাথে দেখুন"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ইভেন্ট এবং বার্তাগুলি"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ইভেন্টগুলি"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"বার্তাগুলি"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"প্রস্তাবনা"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"আপনার পরিচিতিগুলিকে সংগঠিত এবং উপযোগী করে রাখুন"</string>
+    <string name="undo" msgid="1425165101664071422">"পূর্বাবস্থায় ফিরুন"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> নম্বরে কল করুন"</string>
+    <string name="call_home" msgid="1990519474420545392">"বাড়ির নম্বরে কল করুন"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"মোবাইল নম্বরে কল করুন"</string>
+    <string name="call_work" msgid="5328785911463744028">"কর্মক্ষেত্রের নম্বরে কল করুন"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"কর্মক্ষেত্রের ফ্যাক্স নম্বরে কল করুন"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"বাড়ির ফ্যাক্স নম্বরে কল করুন"</string>
+    <string name="call_pager" msgid="9003902812293983281">"পেজার নম্বরে কল করুন"</string>
+    <string name="call_other" msgid="8563753966926932052">"কল করুন"</string>
+    <string name="call_callback" msgid="1910165691349426858">"কলব্যাক করার নম্বরে কল করুন"</string>
+    <string name="call_car" msgid="3280537320306436445">"গাড়ির ফোন নম্বরে কল করুন"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"কোম্পানির প্রধান নম্বরে কল করুন"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN নম্বরে কল করুন"</string>
+    <string name="call_main" msgid="6082900571803441339">"প্রধান নম্বরে কল করুন"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ফ্যাক্স নম্বরে কল করুন"</string>
+    <string name="call_radio" msgid="8296755876398357063">"রেডিওর ফোন নম্বরে কল করুন"</string>
+    <string name="call_telex" msgid="2223170774548648114">"টেলেক্স নম্বরে কল করুন"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD নম্বরে কল করুন"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"অফিসের মোবাইল নম্বরে কল করুন"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"অফিসের পেজার নম্বরে কল করুন"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> নম্বরে কল করুন"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS নম্বরে কল করুন"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (কল)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ঘরের ফোন নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"মোবাইল নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_work" msgid="2269624156655267740">"কর্মক্ষেত্রের নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"কার্মক্ষেত্রের ফ্যাক্স নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"বাড়ির ফ্যাক্স নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"পেজারের নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_other" msgid="806127844607642331">"পাঠ্য"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"কলব্যাক করার নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_car" msgid="7444227058437359641">"গাড়ির ফোন নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"কোম্পানির প্রধান ফোন নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN ফোন নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_main" msgid="8621625784504541679">"প্রধান নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ফ্যাক্স নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"রেডিওর ফোন নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"টেলেক্স নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD ফোন নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"কর্মক্ষেত্রের মোবাইলে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"কর্মক্ষেত্রের পেজারে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS ফোন নম্বরে পাঠ্য বার্তা পাঠান"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (বার্তা)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ভিডিও কল করুন"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"ঘন ঘন যোগাযোগ করা হয়েছে এমন পরিচিতিগুলিকে সাফ করবেন?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"পরিচিতি এবং ফোন অ্যাপ্লিকেশানগুলি থেকে আপনি ঘন ঘন যোগাযোগ করা পরিচিতির তালিকা সাফ করবেন, এবং ইমেল অ্যাপ্লিকেশানগুলিকে আবার শুরু থেকে আপনার ঠিকানা অভিরুচি জানতে বাধ্য করবেন৷"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"ঘন ঘন যোগাযোগ করা পরিচিতিগুলিকে সাফ করা হচ্ছে…"</string>
+    <string name="status_available" msgid="5586870015822828392">"উপলব্ধ"</string>
+    <string name="status_away" msgid="1838861100379804730">"অন্যত্র"</string>
+    <string name="status_busy" msgid="9147992455450257136">"ব্যস্ত"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"অন্যান্য"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ডিরেক্টরি"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"কাজের সংগ্রহ"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"সকল পরিচিতি"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> এর জন্য দ্রুত পরিচিতি"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(কোনও নাম নেই)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"ঘন ঘন যোগাযোগ করা হয়েছে"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ফোন নম্বর সহ সমস্ত পরিচিতি"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"কর্মস্থলের প্রোফাইলের পরিচিতিগুলি"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"আপডেটগুলি দেখুন"</string>
+    <string name="account_phone" msgid="7128032778471187553">"ডিভাইস"</string>
+    <string name="account_sim" msgid="6519016427905087952">"সিম"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"নাম"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"ডাকনাম"</string>
+    <string name="name_given" msgid="4280790853455320619">"প্রথম নাম"</string>
+    <string name="name_family" msgid="7466985689626017037">"পদবি"</string>
+    <string name="name_prefix" msgid="59756378548779822">"নামের আগের অংশ"</string>
+    <string name="name_middle" msgid="8467433655992690326">"মাঝের নাম"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"নামের পরের অংশ"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"উচ্চারণগত নাম"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"উচ্চারণগত প্রথম নাম"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"উচ্চারণগত মাঝের নাম"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"উচ্চারণগত পারিবারিক নাম"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ফোন"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ইমেল করুন"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"ঠিকানা"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"সংগঠন"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"সম্পর্ক"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"বিশেষ তারিখ"</string>
+    <string name="sms" msgid="1756857139634224222">"পাঠ্য বার্তা"</string>
+    <string name="postal_address" msgid="8765560217149624536">"ঠিকানা"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"কোম্পানি"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"শীর্ষক"</string>
+    <string name="label_notes" msgid="8337354953278341042">"নোটগুলি"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"কাস্টম"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ওয়েবসাইট"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"লেবেলগুলি"</string>
+    <string name="email_home" msgid="8573740658148184279">"বাড়ির ইমেল ঠিকানায় ইমেল করুন"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"মোবাইলের ইমেল ঠিকানায় ইমেল করুন"</string>
+    <string name="email_work" msgid="2807430017302722689">"কর্মক্ষেত্রের ইমেল ঠিকানায় ইমেল করুন"</string>
+    <string name="email_other" msgid="3454004077967657109">"ইমেল করুন"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> এ ইমেল পাঠান"</string>
+    <string name="email" msgid="5668400997660065897">"ইমেল করুন"</string>
+    <string name="postal_street" msgid="8133143961580058972">"রাস্তা"</string>
+    <string name="postal_city" msgid="6597491300084895548">"শহর"</string>
+    <string name="postal_region" msgid="6045263193478437672">"রাজ্য"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"পিন কোড"</string>
+    <string name="postal_country" msgid="7638264508416368690">"দেশ"</string>
+    <string name="map_home" msgid="1243547733423343982">"বাড়ির ঠিকানা দেখুন"</string>
+    <string name="map_work" msgid="1360474076921878088">"কর্মক্ষেত্রের ঠিকানা দেখুন"</string>
+    <string name="map_other" msgid="3817820803587012641">"ঠিকানা দেখুন"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> এর ঠিকানা দেখুন"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM ব্যবহার করে চ্যাট করুন"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live ব্যবহার করে চ্যাট করুন"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo ব্যবহার করে চ্যাট করুন"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype ব্যবহার করে চ্যাট করুন"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ ব্যবহার করে চ্যাট করুন"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk ব্যবহার করে চ্যাট করুন"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ ব্যবহার করে চ্যাট করুন"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber ব্যবহার করে চ্যাট করুন"</string>
+    <string name="chat" msgid="9025361898797412245">"চ্যাট"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"মুছুন"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"আরো নামের ক্ষেত্রগুলি দেখান"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"নামের ক্ষেত্রটিকে সঙ্কুচিত করুন"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"আরো ফোনেটিক নামের ক্ষেত্রগুলি দেখান"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ফোনেটিক নামের ক্ষেত্রটিকে প্রসারিত করুন"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"প্রসারিত করুন"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"সঙ্কুচিত করুন"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"প্রসারিত হয়েছে"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"সংকুচিত রয়েছে"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"সকল পরিচিতি"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"তারকাচিহ্নিত"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"নিজের সুবিধামতো করুন"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"পরিচিতি"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"অন্যান্য সকল পরিচিতি"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"সকল পরিচিতি"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"সমন্বয় গোষ্ঠী সরান"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"সমন্বয় গোষ্ঠী যোগ করুন"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"আরো গোষ্ঠী…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"সমন্বয় থেকে \"<xliff:g id="GROUP">%s</xliff:g>\" সরানো হলে তা সমন্বয় থেকে যেকোনো অগোষ্ঠীবদ্ধ পরিচিতিগুলিকেও সরাবে৷"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"প্রদর্শনের বিকল্পগুলি সংরক্ষণ করা হচ্ছে..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"কাস্টমাইজ করা দৃশ্য"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"আমদানি করা পরিচিতিগুলি এতে সংরক্ষণ করুন:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"সিম কার্ড"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"সিম <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%dটি পরিচিতি</item>
+      <item quantity="other">%dটি পরিচিতি</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g>টি পরিচিতি • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g>টি পরিচিতি • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ফাইল"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"আমদানি করার জন্য কিছুই নেই"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard থেকে পরিচিতিগুলি আমদানি করবেন?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> এর আমদানি বাতিল করবেন?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> এর রপ্তানি বাতিল করবেন?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard এর আমদানি/রপ্তানি বাতিল করা যায়নি"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"অজানা ত্রুটি৷"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" খোলা যায়নি: <xliff:g id="EXACT_REASON">%2$s</xliff:g>৷"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"রপ্তানিকারক শুরু করা যায়নি: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"৷"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"রফতানিযোগ্য কোনো পরিচিতি নেই৷"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"আপনি একটি প্রয়োজনীয় অনুমতি অক্ষম করেছেন৷"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"রপ্তানির সময় একটি ত্রুটি ঘটেছে: \" <xliff:g id="EXACT_REASON">%s</xliff:g> \"৷"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O ত্রুটি"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"যথেষ্ট মেমরি নেই৷ ফাইলটি খুব বড় হতে পারে৷"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"এই ফর্ম্যাটটি সমর্থিত নয়৷"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> রপ্তানি করা সম্পন্ন হয়েছে৷"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"পরিচিতি রপ্তানি করা সম্পন্ন হয়েছে৷"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"পরিচিতিগুলি রপ্তানি করা হয়েছে, পরিচিতিগুলিকে শেয়ার করতে বিজ্ঞপ্তিটিতে ক্লিক করুন৷"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"পরিচিতিগুলিকে শেয়ার করতে আলতো চাপ দিন৷"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> রপ্তানি করা বাতিল হয়েছে৷"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"পরিচিতির তথ্য রপ্তানি করা হচ্ছে"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"পরিচিতির ডেটা রপ্তানি করা হচ্ছে৷"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ডেটাবেসের তথ্য পাওয়া যায়নি৷"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"রপ্তানি করার জন্য কোনো পরিচিতি নেই৷"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard কম্পোজার সঠিকভাবে শুরু করা হয়নি৷"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"রপ্তানি করা যায়নি"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"পরিচিতির তথ্য রপ্তানি করা যায়নি৷\nকারণ: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> আমদানি করা হচ্ছে"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard ডেটা পড়া যায়নি"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> আমদানি করা সমাপ্ত হয়েছে"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> আমদানি করা বাতিল করা হয়েছে"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> শীঘ্রই আমদানি করা হবে৷"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ফাইলটি শীঘ্রই আমদানি করা হবে৷"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard আমদানি করার অনুরোধ প্রত্যাখ্যাত হয়েছে৷ পরে আবার চেষ্টা করুন৷"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"পরিচিতিগুলি শীঘ্রই রপ্তানি করা হবে৷"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard রপ্তানি করার অনুরোধ প্রত্যাখ্যাত হয়েছে৷ পরে আবার চেষ্টা করুন৷"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"পরিচিতি"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"স্থানীয় অস্থায়ী সংগ্রহস্থলে vCard(গুলি)কে ক্যাশ করা হচ্ছে৷ প্রকৃত আমদানি শীঘ্রই শুরু হবে৷"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard আমদানি করতে পারা যায় নি৷"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC এর মাধ্যমে পরিচিতি প্রাপ্ত হয়েছে"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"ক্যাশ করা হচ্ছে"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"আমদানি করা হচ্ছে, <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf ফাইলে রপ্তানি করুন"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"এই অনুসারে সাজান"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"উচ্চারণগত নাম"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"সবসময় দেখান"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"খালি থাকলে লুকান"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"প্রথম নাম"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"পদবি"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"নামের বিন্যাস"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"প্রথমে প্রথম নামটি"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"প্রথমে উপাধি"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"অ্যাকাউন্টগুলি"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"নতুন পরিচিতিগুলির জন্য ডিফল্ট অ্যাকাউন্ট"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"আমার তথ্য"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"আপনার প্রোফাইল সেট আপ করুন"</string>
+    <string name="setting_about" msgid="7014388749752042863">"পরিচিতি সম্পর্কিত"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"পছন্দসই পরিচিতিগুলি শেয়ার করুন"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"সকল পরিচিতি শেয়ার করুন"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"পরিচিতিগুলিকে শেয়ার করতে ব্যর্থ হয়েছে৷"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"পরিচিতিগুলি রপ্তানি করুন"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"এর থেকে পরিচিতিগুলি আমদানি করুন"</string>
+    <string name="share_error" msgid="948429331673358107">"এই পরিচিতিটিকে শেয়ার করা যাবে না৷"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"শেয়ার করার জন্য কোনো পরিচিতি নেই৷"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"দেখানোর জন্য পরিচিতিগুলি"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"দেখানোর জন্য পরিচিতিগুলি"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"দর্শন কাস্টমাইজ করুন"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"সংরক্ষণ"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"পরিচিতিগুলি খুঁজুন"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"পছন্দসইগুলি"</string>
+    <string name="menu_import" msgid="6107961135813836467">"আমদানি করুন"</string>
+    <string name="menu_export" msgid="2658783911863503902">"রপ্তানি করুন"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"অবরোধ করা নম্বরগুলি"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> এর মাধ্যমে"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> এর মাধ্যমে <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"অনুসন্ধান বন্ধ করুন"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"অনুসন্ধান সাফ করুন"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"অ্যাকাউন্ট"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"কলের জন্য সবসময় এটি ব্যবহার করুন"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"একটি নোট সহ কল করুন"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"কলের সাথে পাঠানোর জন্য একটি নোট লিখুন…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"পাঠান এবং কল করুন"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"বিল্ডের সংস্করণ"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"মুক্ত উৎস লাইসেন্স"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"মুক্ত উৎস সফ্টওয়্যারের লাইসেন্স বিবরণ"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"গোপনীয়তা নীতি"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"পরিষেবার শর্তাবলী"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"মুক্ত উৎস লাইসেন্সগুলি"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url খুলতে ব্যর্থ হয়েছে৷"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> এ টিক চিহ্ন দেওয়া হয়েছে"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> এ টিক চিহ্ন দেওয়া হয়নি"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ভিডিও কল করুন"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"মুছুন"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"এলিপসিস"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> মিনিট <xliff:g id="SECONDS">%2$s</xliff:g> সেকেন্ড"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ঘণ্টা <xliff:g id="MINUTES_1">%2$s</xliff:g> মিনিট <xliff:g id="SECONDS">%3$s</xliff:g> সেকেন্ড"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"এই শর্টকাটটি অক্ষম করা হয়েছে"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"পরিচিতিটি সরানো হয়েছে"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"আমদানি করুন"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"পরিচিতিগুলি নির্বাচন করুন"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"আপনার সিম কার্ডে কোনো পরিচিতি নেই"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"পরিচিতিটি ইতিমধ্যেই আপনার তালিকাতে রয়েছে"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">সিম কার্ডে থাকা <xliff:g id="COUNT">%d</xliff:g>টি পরিচিতি আমদানি করা হয়েছে</item>
+      <item quantity="other">সিম কার্ডে থাকা <xliff:g id="COUNT">%d</xliff:g>টি পরিচিতি আমদানি করা হয়েছে</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"সিম কার্ডে থাকা পরিচিতিগুলি আমদানি করা গেল না"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"সিম থেকে আমদানি করুন"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"বাতিল করুন"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"স্বতঃ-সিঙ্ক বন্ধ আছে৷ চালু করতে আলতো চাপ দিন৷"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"খারিজ করুন"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"অ্যাকাউন্ট সিঙ্ক বন্ধ আছে৷ চালু করতে আলতো চাপ দিন৷"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"স্বতঃ-সিঙ্ক চালু করবেন?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Google পরিচিতিগুলি ছাড়াও, সমস্ত অ্যাপ এবং অ্যাকাউন্টে আপনার করা পরিবর্তনগুলি, ওয়েব এবং আপনার ডিভাইসগুলির মধ্যে আপ টু ডেট রাখা হবে।"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"চালু করুন"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"কোনো সংযোগ নেই"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"সিম"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"আরো দেখান"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"সিম কার্ড আমদানি করা সমাপ্ত হয়েছে"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"আমদানি ব্যর্থ হয়েছে"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"সিম কার্ড থেকে পরিচিতিগুলি আমদানি করা গেল না"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"সিম আমদানি করা হচ্ছে"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
new file mode 100644
index 0000000..ea786b7
--- /dev/null
+++ b/res/values-bs/strings.xml
@@ -0,0 +1,540 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Kontakti"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Dodaj kontakt"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Direktno biranje"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Direktna poruka"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Izaberi kontakt"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Dodaj u kontakt"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Izaberi kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Odaberi"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Napravi novi kontakt"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Traži kontakte"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Dodaj u favorite"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Ukloni iz favorita"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Uklonjeno iz favorita"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Dodano u favorite"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Uredi"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Izbriši"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Promijeni fotografiju"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Napravi prečicu"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Razdvoji"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Ukloni kontakte"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Preimenuj oznaku"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Izbriši oznaku"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Dodaj kontakt"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Odaberite kontakte"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Dodaj kontakte"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Ukloni iz oznake"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Napravi oznaku"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Razdvojiti ovaj kontakt na više kontakata?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Razdvoji"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Želite li sačuvati promjene koje ste već načinili i razdvojiti ovaj kontakt na više kontakata?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Sačuvaj i razdvoji"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Želite li sačuvati promjene koje ste već načinili i povezati s odabranim kontaktom?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Sačuvaj i poveži"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Povezivanje u toku"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Prekid povezanosti u toku"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Poveži"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Prikaz povezanih kontakata"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Sačuvaj"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Poveži kontakte"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Izaberite kontakt koji želite povezati s kontaktom <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Predloženi kontakti"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Svi kontakti"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> je povezan"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakti su povezani"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> je izbrisan"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Kontakti <xliff:g id="NAME_0">%1$s</xliff:g> i <xliff:g id="NAME_1">%2$s</xliff:g> su izbrisani"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Kontakti <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… su izbrisani"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">Kontakti su izbrisani</item>
+      <item quantity="few">Kontakti su izbrisani</item>
+      <item quantity="other">Kontakti su izbrisani</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> kontakt</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontakta</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakata</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakta · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakata · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Sa Googlea"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Sa računa <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Postavi zvono"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Preusmjeri na govornu poštu"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Poništi preusmj. na gov. poštu"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ovaj kontakt je samo za čitanje. Ne može se izbrisati, ali ga možete sakriti."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Sakrij kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Računi koji su samo za čitanje u ovom kontaktu bit će sakriveni, ne izbrisani."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Izbrisati ovaj kontakt?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Izbrisati odabrane kontakte?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakti s računa koji su samo za čitanje se ne mogu izbrisati, ali se mogu sakriti."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontakti koje želite izbrisati sadrže detalje s više računa. Detalji s računa koji su samo za čitanje se neće izbrisati, već sakriti."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Brisanjem ovog kontakta ćete izbrisati detalje s više računa."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Izbrisati ovaj kontakt?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Izbriši"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt ne postoji."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt je dodan na Početni ekran."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> je dodan na Početni ekran."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Na uređaju nema dostupnih slika."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografija kontakta"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Prilagođeni naziv oznake"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Ukloni fotografiju"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Spisak kontakata je prazan"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nema kontakata s ovom oznakom"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Nema kontakata na ovom računu"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Spisak kontakata je prazan"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Kontakt <xliff:g id="DISPLAY_NAME">%s</xliff:g> je sačuvan"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt je sačuvan"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontakti su razdvojeni"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Nije moguće sačuvati promjene kontakta"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Nije moguće razdvojiti kontakt"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Nije moguće povezati kontakt"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Greška prilikom spremanja kontakta"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Nije moguće sačuvati promjene fotografije kontakta"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Učitavanje oznake nije uspjelo"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Oznaka je izbrisana"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Oznaka je napravljena"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Nije moguće napraviti oznaku"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Oznaka je ažurirana"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Uklonjeno iz oznake"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodano oznaci"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Nije moguće sačuvati promjene oznake"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ta oznaka već postoji"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Neki kontakti nemaju adrese e-pošte."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Neki kontakti nemaju brojeve telefona."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Pošalji poruku e-pošte"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Pošalji poruku"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Izaberite kontakte"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Pošalji"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nema kontakata"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Dodati \"<xliff:g id="EMAIL">%s</xliff:g>\" u kontakte?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Imena kontakata"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknite za povratak na prethodni ekran"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodajte broj telefona"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Dodajte adresu e-pošte"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Nije pronađena aplikacija za obavljanje ove radnje."</string>
+    <string name="menu_share" msgid="943789700636542260">"Podijeli"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Dodaj u kontakte"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Dodaj"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Podijeli kontakte putem</item>
+      <item quantity="few">Podijeli kontakte putem</item>
+      <item quantity="other">Podijeli kontakte putem</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Izaberi račun"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Napravi oznaku"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Preimenuj oznaku"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Naziv oznake"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Naziv oznake"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Glasovno ćaskanje"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Videoćaskanje"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"Račun <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Snimi fotografiju"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Snimi novu fotografiju"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Izaberi fotografiju"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Odaberi novu fotografiju"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Pretraživanje…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Oznaka"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Otkaži"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Nazad"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zatvori"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Prebaciti se na uređivanje odabranog kontakta? Informacije koje ste unijeli će biti kopirane."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Imenik <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Postavke"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Postavke"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Pomoć i povratne informacije"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Broj telefona"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Dodaj u kontakte"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Zatvori"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Prikaži godinu"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodaj račun"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Uvezi"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Napravi novu…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Izbrisati oznaku \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontakti neće biti izbrisani.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Upišite ime kontakta prije povezivanja s drugim kontaktom."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Kopiraj u međumemoriju"</string>
+    <string name="set_default" msgid="4417505153468300351">"Postavi zadano"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Obriši zadano"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Tekst je kopiran"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Odbaciti promjene?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Otkaži"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Odbaciti prilagođavanja?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Traži kontakte"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Ukloni kontakte"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Moj lokalni profil"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Moj profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Odvojite malo vremena da dodate račun putem kojeg će se kontakti sigurnosno kopirati na Google."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novi kontakti će biti sačuvani na račun <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Izaberite zadani račun za nove kontakte:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Napravi novi kontakt"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Uredi kontakt"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Samo prikaz"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Izaberite kontakt za uređivanje"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Povezani kontakti"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Dodaj"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Prekini povezanost"</string>
+    <string name="add_account" msgid="8201790677994503186">"Dodajte račun"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Dodaj novi račun"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Izvezi fajlove baze podataka"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Napravi novi kontakt"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Pogledaj više"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Vidi manje"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Nedavno"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"O kontaktu"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Izrađivanje lične kopije u toku…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Sutra"</string>
+    <string name="today" msgid="8041090779381781781">"Danas"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Danas u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Sutra u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Događaj bez naslova)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Postavi"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizacija"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Nadimak"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Bilješka"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Web lokacija"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Događaj"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Odnos"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Ime"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"E-pošta"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"smjernice do lokacije"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedavni sms-ovi. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknite da odgovorite"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"dolazni"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"odlazni"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"propušteni"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"nedavni poziv. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknite da uputite povratni poziv"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Vi: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Više polja"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Promijenite fotografiju kontakta"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Dodajte fotografiju kontakta"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Fotografija kontakta"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Otvaranje uređivača nije uspjelo."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Sačuvaj na"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Informacije o kontaktu s <xliff:g id="ACCOUNT">%s</xliff:g> nije moguće uređivati"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"POVEŽI KONTAKTE"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"OTKAŽI"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ovaj kontakt"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mogući duplikati"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Moguće je da su ovi kontakti ista osoba. Možete ih povezati u jedan kontakt."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Izbriši <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Prijedlozi"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Otvori panel za navigaciju"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zatvori panel za navigaciju"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Oznaka <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Oznake"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Računi"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Pogledajte historiju kalendara i SMS-a"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Događaji i poruke"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Događaji"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Poruke"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Prijedlozi"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Neka vam kontakti budu organizirani i korisni"</string>
+    <string name="undo" msgid="1425165101664071422">"Poništi"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Pozovi <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Pozovi kuću"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Pozovi mobitel"</string>
+    <string name="call_work" msgid="5328785911463744028">"Pozovi posao"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Pozovi poslovni faks"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Pozovi kućni faks"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Pozovi pejdžer"</string>
+    <string name="call_other" msgid="8563753966926932052">"Pozovi"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Pozovi broj za uzvraćanje poziva"</string>
+    <string name="call_car" msgid="3280537320306436445">"Pozovi automobil"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Pozovi glavni broj kompanije"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Pozovi ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Pozovi glavni broj"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Pozovi faks"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Pozovi radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Pozovi teleks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Pozovi TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Pozovi poslovni mobitel"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Pozovi poslovni pejdžer"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Pozovi <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Pozovi MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Poziv)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Pošalji poruku na <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Pošalji tekstualnu poruku na kućni broj"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Pošalji tekstualnu poruku na mobilni"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Pošalji tekstualnu poruku na poslovni broj"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Pošalji tekstualnu poruku na poslovni faks"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Pošalji tekstualnu poruku na kućni faks"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Pošalji tekstualnu poruku na pejdžer"</string>
+    <string name="sms_other" msgid="806127844607642331">"Tekst"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Pošalji tekstualnu poruku na broj za povratni poziv"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Pošalji tekstualnu poruku na automobil"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Pošalji tekstualnu poruku na glavni broj kompanije"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Pošalji tekstualnu poruku na ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Pošalji tekstualnu poruku na glavni broj"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Pošalji tekstualnu poruku na faks"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Pošalji tekstualnu poruku na radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Pošalji tekstualnu poruku na teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Pošalji tekstualnu poruku na TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Pošalji tekstualnu poruku na poslovni mobitel"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Pošalji tekstualnu poruku na poslovni pejdžer"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Pošalji tekstualnu poruku <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Pošalji tekstualnu poruku na MMS broj"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Poruka)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Uputi videopoziv"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Obrisati često kontaktirane osobe?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Obrisat ćete listu često kontaktiranih osoba u aplikaciji Kontakti i Aplikaciji za telefon, pa će aplikacije za e-poštu morati ispočetka učiti vaše postavke adresa."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Brisanje često kontaktiranih osoba…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Dostupno"</string>
+    <string name="status_away" msgid="1838861100379804730">"Odsutan"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Zauzeto"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Ostalo"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Direktorij"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Poslovni imenik"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Svi kontakti"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Brzi kontakt za <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Bez imena)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Često kontaktirani"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Svi kontakti s brojevima telefona"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontakti radnog profila"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Prikaži ažuriranja"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Uređaj"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Ime"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nadimak"</string>
+    <string name="name_given" msgid="4280790853455320619">"Ime"</string>
+    <string name="name_family" msgid="7466985689626017037">"Prezime"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Titula ispred imena"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Srednje ime"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Titula iza imena"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetsko ime"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetsko ime"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetsko srednje ime"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetsko prezime"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-pošta"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacija"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Odnos"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Posebni datum"</string>
+    <string name="sms" msgid="1756857139634224222">"Tekstualna poruka"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresa"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Kompanija"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Naslov"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Bilješke"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Prilagođeno"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Web lokacija"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Oznake"</string>
+    <string name="email_home" msgid="8573740658148184279">"Pošalji poruku e-pošte na kućnu adresu e-pošte"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Mobilna e-pošta"</string>
+    <string name="email_work" msgid="2807430017302722689">"Pošalji poruku e-pošte na poslovnu adresu e-pošte"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-pošta"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Pošalji poruku e-pošte na <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-pošta"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Grad"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Država"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Poštanski broj"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Država"</string>
+    <string name="map_home" msgid="1243547733423343982">"Prikaži kućnu adresu"</string>
+    <string name="map_work" msgid="1360474076921878088">"Prikaži poslovnu adresu"</string>
+    <string name="map_other" msgid="3817820803587012641">"Prikaži adresu"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Prikaži <xliff:g id="CUSTOM_LABEL">%s</xliff:g> adresu"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Ćaskanje putem aplikacije AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Ćaskanje putem aplikacije Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Ćaskanje putem aplikacije Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Ćaskanje putem aplikacije Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Ćaskanje putem aplikacije QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Ćaskanje putem aplikacije Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Ćaskanje putem aplikacije ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Ćaskanje putem aplikacije Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Ćaskanje"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"izbriši"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Prikaži više polja za ime"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Skupi polja za imena"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Prikaži više polja za fonetsko ime"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Skupi polja za fonetska imena"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Proširi"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Skupi"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Prošireno"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Skupljeno"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Svi kontakti"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Označeno zvijezdom"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Prilagodi"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Svi drugi kontakti"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Svi kontakti"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Ukloni grupu za sinhronizaciju"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Dodaj grupu za sinhronizaciju"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Više grupa…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Uklanjanje grupe \"<xliff:g id="GROUP">%s</xliff:g>\" iz sinhronizacije će također ukloniti sve negrupirane kontakte iz sinhronizacije."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Čuvanje opcija prikaza u toku…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Prilagođeni prikaz"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Sačuvaj uvezene kontakte na karticu:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM kartice"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM kartice <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d kontakt</item>
+      <item quantity="few">%1$d kontakta</item>
+      <item quantity="other">%1$d kontakata</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontakta • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakata • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf fajla"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nema ništa za uvoz"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Uvesti kontakte iz vCard fajla?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Otkazati uvoz fajla <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Otkazati izvoz fajla <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Nemoguće otkazati uvoz/izvoz vCard fajla"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Nepoznata greška."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nije moguće otvoriti \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nije moguće pokrenuti program za izvoz: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nema sadržaja za izvoz."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Onemogućili ste potrebnu dozvolu."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Došlo je do greške prilikom izvoza: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O greška"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nema dovoljno memorije. Možda je fajl prevelik."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format nije podržan."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Izvoz fajla <xliff:g id="FILENAME">%s</xliff:g> je završen."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Izvoz kontakata je završen."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Izvoz kontakata je završen. Kliknite obavještenje da podijelite kontakte."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Dodirnite da podijelite kontakte."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Izvoz fajla <xliff:g id="FILENAME">%s</xliff:g> je otkazan."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Izvoz podataka kontakta u toku"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Podaci kontakta se izvoze."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nije moguće preuzeti informacije iz baze podataka."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nema kontakata za izvoz."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Program za izradu kartica vCard nije pravilno pokrenut."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Izvoz nije uspio"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Podaci kontakta nisu izvezeni.\nRazlog: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Uvozi se kontakt <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Čitanje podataka vCard nije uspjelo"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Završen uvoz vCard fajla <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Uvoz fajla <xliff:g id="FILENAME">%s</xliff:g> je otkazan"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Fajl <xliff:g id="FILENAME">%s</xliff:g> će uskoro biti uvezen."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Fajl će uskoro biti uvezen."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Zahtjev za uvoz vCard fajla je odbijen. Pokušajte ponovo kasnije."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakti će uskoro biti izvezeni."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Zahtjev za izvoz vCard fajla je odbijen. Pokušajte ponovo kasnije."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Spremanje vCard fajlova u lokalnu privremenu pohranu. Uvoz će započeti uskoro."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Uvoz vCard kartice nije uspio."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt NFC-om"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Spremanje u privremenu pohranu u toku"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Uvozi se <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Izvezi u .vcf fajl"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Poredano po"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetsko ime"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Uvijek prikaži"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Sakrij ako je prazno"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ime"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Prezime"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format imena"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Ime prvo"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Prezime prvo"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Računi"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Zadani račun za nove kontakte"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Moje informacije"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Postavite svoj profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"O kontaktima"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Dijeli omiljene kontakte"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Dijeli sve kontakte"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Dijeljenje kontakata nije uspjelo."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Izvezi kontakte"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Uvezi kontakte sa"</string>
+    <string name="share_error" msgid="948429331673358107">"Ovaj kontakt se ne može podijeliti."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nema kontakata za dijeljenje."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakti za prikaz"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakti za prikaz"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Prilagodi prikaz"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Sačuvaj"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Traži kontakte"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoriti"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Uvezi"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Izvezi"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokirani brojevi"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"putem <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> putem <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"zaustavi pretraživanje"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Obriši pretragu"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Račun"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Uvijek koristi ovu karticu za poziv"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Poziv s bilješkom"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Upišite bilješku koja će se poslati uz poziv…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"POŠALJI I POZOVI"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Podverzija"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licence otvorenog koda"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalji o licenci za softver otvorenog koda"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Pravila o privatnosti"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Uslovi pružanja usluge"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licence otvorenog koda"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Otvaranje URL-a nije uspjelo."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> je označen"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> nije označen"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Uputi videopoziv"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Izbriši"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Elipsa"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min. <xliff:g id="SECONDS">%2$s</xliff:g> sek."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min. <xliff:g id="SECONDS">%3$s</xliff:g> sek."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ova prečica je onemogućena"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt je uklonjen"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Uvezi"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Odaberite kontakte"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Nema kontakata na SIM kartici"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt se već nalazi na listi"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">Uvezen je <xliff:g id="COUNT">%d</xliff:g> kontakt sa SIM kartice</item>
+      <item quantity="few">Uvezena su <xliff:g id="COUNT">%d</xliff:g> kontakta sa SIM kartice</item>
+      <item quantity="other">Uvezeno je <xliff:g id="COUNT">%d</xliff:g> kontakata sa SIM kartice</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Uvoz kontakata sa SIM kartice nije uspio"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Uvezi sa SIM kartice"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Otkaži"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatska sinhronizacija je isključena. Dodirnite da je uključite."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Odbaci"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Sinhronizacija računa je isključena. Dodirnite da je uključite."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Želite li uključiti automatsko sinhroniziranje?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Promjene koje načinite u svim aplikacijama i računima, ne samo u Google kontaktima, bit će ažurirani i na internetu i na vašim uređajima."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Uključi"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Niste povezani na mrežu"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Prikaži više"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Uvoz sa SIM kartice je dovršen"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Uvoz nije uspio"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nije moguće uvesti kontakte sa SIM kartice"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Uvoz sa SIM kartice"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 592aad9..c4cf495 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -17,250 +17,199 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contactes"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contactes"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Mostra el contacte"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Edita el contacte"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactes"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Afegeix un contacte"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacte"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Marcatge directe"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Missatge directe"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Trieu una drecera de contacte"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Trieu un número per trucar-hi"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Trieu un número per enviar-hi un missatge"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Tria un contacte"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Afegeix al contacte"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Tria un contacte"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Crea un contacte nou"</string>
-    <string name="starredList" msgid="4817256136413959463">"Destacats"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Freqüent"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Preferits"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Dades de contacte"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Edita el contacte"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Crea un contacte"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Edita el grup"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Crea un grup"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Quant a"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Actualitz."</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Selecciona"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Crea un contacte"</string>
     <string name="searchHint" msgid="8482945356247760701">"Cerca als contactes"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Visualitza el contacte"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Afegeix als preferits"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Elimina dels preferits"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Suprimeix dels preferits"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Eliminat dels preferits"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"Afegit als preferits"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Edita"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Suprimeix"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Canvia la foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Afegeix a la pantalla d\'inici"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Truca al contacte"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Envia un SMS al contacte"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Crea una drecera"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Desenllaça"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Edita"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Suprimeix"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Afegeix el contacte"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Afegeix un grup"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Suprimeix els contactes"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Canvia el nom de l\'etiqueta"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Suprimeix l\'etiqueta"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Afegeix un contacte"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Selecciona contactes"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Afegeix els contactes"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Suprimeix de l\'etiqueta"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Crea una etiqueta"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Vols desenllaçar aquest contacte en diversos contactes?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Desenllaça"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Vols desar els canvis que ja has aplicat i desenllaçar aquest contacte en diversos contactes?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Desa i desenllaça"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Vols desar els canvis que ja has aplicat i enllaçar els contactes seleccionats?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Desa i enllaça"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"S\'està enllaçant"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"S\'està desenllaçant"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Enllaça"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Mostra els contactes enllaçats"</string>
     <string name="menu_save" msgid="1727844363591825909">"Desa"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Enllaça els contactes"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Tria el contacte que vols enllaçar amb <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostra tots els contactes"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contactes suggerits"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tots els contactes"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> s\'ha enllaçat"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contactes enllaçats"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"S\'ha suprimit <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"S\'ha suprimit <xliff:g id="NAME_0">%1$s</xliff:g> i <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"S\'ha suprimit <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">S\'han suprimit els contactes</item>
       <item quantity="one">S\'ha suprimit el contacte</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contactes</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacte</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contactes · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contacte · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"De Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"De <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Estableix so"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Trucades a la bústia de veu"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Els contactes dels teus comptes que siguin només de lectura no es poden suprimir, però sí que es poden amagar."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Amaga"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"El contacte que s\'ha de suprimir té informació de diversos comptes. La informació dels comptes que siguin només de lectura s\'amagarà, però no se suprimirà."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Has de tenir com a mínim dos contactes seleccionats per enllaçar-los."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Vols enllaçar els contactes seleccionats?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Enllaça"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Encamina a la bústia de veu"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"No encaminis a la bústia de veu"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Aquest contacte és només de lectura. No es pot suprimir, però el pots amagar."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Amaga el contacte"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Els contactes només de lectura d\'aquest compte s\'amagaran, però no se suprimiran."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Vols suprimir aquest contacte?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Vols suprimir els contactes seleccionats?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Els contactes dels teus comptes que siguin només de lectura no es poden suprimir, però sí que es poden amagar."</string>
     <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Els contactes que s\'han de suprimir tenen informació de diversos comptes. La informació dels comptes que siguin només de lectura s\'amagarà, però no se suprimirà."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Si suprimeixes aquest contacte se suprimirà informació de diversos comptes."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Si suprimeixes aquest contacte, se suprimirà informació de diversos comptes."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Vols suprimir aquest contacte?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Suprimeix"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Descarta els canvis"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"El contacte no existeix."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"S\'ha afegit el contacte a la pantalla d\'inici."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"S\'ha afegit <xliff:g id="NAME">%s</xliff:g> a la pantalla d\'inici."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crea un contacte nou"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Crea un contacte nou"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organització"</item>
-    <item msgid="7196592230748086755">"Nota"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"No hi ha imatges disponibles a la tauleta."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"No hi ha cap imatge disponible al telèfon."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"No hi ha cap imatge disponible al dispositiu."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto de contacte"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nom de camp personalitzat"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Envia les trucades directament a la bústia de veu"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Elimina la foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"No hi ha cap contacte"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Cap grup"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Per crear grups necessites un compte."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"No hi ha persones en aquest grup."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Per afegir-ne, edita el grup."</string>
-    <string name="savingContact" msgid="4075751076741924939">"S\'està desant el contacte..."</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Suprimeix la foto"</string>
+    <string name="noContacts" msgid="2228592924476426108">"La llista de contactes està buida"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"No hi ha cap contacte amb aquesta etiqueta"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"No hi ha cap contacte en aquest compte"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"La llista de contactes està buida"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> s\'ha desat"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"S\'ha desat el contacte"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Els contactes s\'han desenllaçat"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"No s\'han pogut desar els canvis al contacte."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"No s\'ha pogut desenllaçar el contacte."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"No s\'ha pogut enllaçar el contacte."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"S\'ha produït un error en desar el contacte."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"No s\'han pogut desar els canvis de la foto de contacte."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grup desat."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"No s\'han pogut desar els canvis al grup."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactes amb número de telèfon</item>
-      <item quantity="one">1 contacte amb número de telèfon</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No hi ha cap contacte amb número de telèfon"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactes</item>
-      <item quantity="one">1 contacte</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"No s\'han pogut desar els canvis al contacte"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"No s\'ha pogut desenllaçar el contacte"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"No s\'ha pogut enllaçar el contacte"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"S\'ha produït un error en desar el contacte"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"No s\'han pogut desar els canvis de la foto de contacte"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"L\'etiqueta no s\'ha pogut carregar"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"L\'etiqueta s\'ha suprimit"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"L\'etiqueta s\'ha creat"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"L\'etiqueta no es pot crear"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"L\'etiqueta s\'ha actualitzat"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"S\'han suprimit de l\'etiqueta"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"S\'han afegit a l\'etiqueta"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"No s\'han pogut desar els canvis fets a l\'etiqueta"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Aquesta etiqueta ja existeix"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Alguns contactes no tenen adreces electròniques."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Alguns contactes no tenen números de telèfon."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Envia un correu electrònic"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Envia un missatge"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Tria contactes"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Envia"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"No hi ha cap contacte"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactes</item>
-      <item quantity="one">1 contacte</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Tots"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Preferits"</string>
-    <string name="callBack" msgid="5498224409038809224">"Truca"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Torna a trucar"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Retorna la trucada"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Voleu afegir \"<xliff:g id="EMAIL">%s</xliff:g>\" als contactes?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto del contacte"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"més"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactes"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Noms dels contactes"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"No s\'ha trobat cap aplicació per processar aquesta acció."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Fes clic per tornar a la pantalla anterior"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Afegeix un número de telèfon"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Afegeix una adreça electrònica"</string>
     <string name="missing_app" msgid="1466111003546611387">"No s\'ha trobat cap aplicació per processar aquesta acció."</string>
     <string name="menu_share" msgid="943789700636542260">"Comparteix"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Afegeix als contactes"</string>
-    <string name="share_via" msgid="563121028023030093">"Comparteix el contacte mitjançant"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Creació d\'un grup al compte"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Afegeix"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Comparteix els contactes per</item>
+      <item quantity="one">Comparteix el contacte per</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Tria un compte"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Crea una etiqueta"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Canvia el nom de l\'etiqueta"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nom de l\'etiqueta"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nom de l\'etiqueta"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Xat de veu"</string>
     <string name="video_chat" msgid="1872255818640336072">"Xat de vídeo"</string>
-    <string name="connections" msgid="8098440723172028350">"Connexions"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Afegeix una connexió"</string>
-    <string name="recent" msgid="2659189233141493004">"Recent"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Actualitzac. recents"</string>
-    <string name="account_type_format" msgid="718948015590343010">"Contacte de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Compte de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"No es pot editar des d\'aquesta aplicació."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"No es pot editar en aquest dispositiu."</string>
     <string name="take_photo" msgid="7496128293167402354">"Fes una foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Fes una foto nova"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Tria una foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Selecciona una foto nova"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"S\'actualitza la llista de contactes."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"S\'està cercant..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mostra la selecció"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mostra-ho tot"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Selecciona-ho tot"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Anul·la tota la selecció"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Afegeix-ne un"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Afegeix organització"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nom del grup"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Canvia"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto principal"</string>
-    <string name="description_star" msgid="2605854427360036550">"preferit"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Edita contacte"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vols enllaçar el contacte actual amb el contacte seleccionat?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiqueta"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancel·la"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Enrere"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"tanca"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Vols canviar per editar el contacte seleccionat? Es copiarà la informació que hagis introduït fins ara."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copia a Els meus contactes"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Afegeix a Els meus contactes"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directori <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalitza"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Configuració"</string>
     <string name="menu_settings" msgid="377929915873428211">"Configuració"</string>
     <string name="menu_help" msgid="1680178646764069976">"Ajuda i suggeriments"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opcions de visualització"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Número de telèfon"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Afegeix als contactes"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Afegeix al contacte"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Tanca"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Inclou l\'any"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contacte"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"S\'està carregant…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Crea un contacte"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Afegeix un compte"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importa contactes"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Creació d\'un grup nou"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Crea un grup nou"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grups</item>
-      <item quantity="one">1 grup</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Vols suprimir el grup \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (No se\'n suprimiran els contactes.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> persones de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persona de <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> persones</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persona</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importa"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Crea…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Vols suprimir l\'etiqueta \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (No se\'n suprimiran els contactes.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Escriu el nom del contacte abans d\'enllaçar-lo amb un altre contacte."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copia al porta-retalls"</string>
     <string name="set_default" msgid="4417505153468300351">"Predeterminat"</string>
     <string name="clear_default" msgid="7193185801596678067">"Esborra els valors predeterminats"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Text copiat"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Vols descartar els canvis?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Descarta"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configura el perfil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Escriu el nom de la persona"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nom del grup"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Vols descartar els canvis?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descarta"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancel·la"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Vols descartar les personalitzacions?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Cerca als contactes"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Suprimeix els contactes"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"El meu perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"El meu perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"S\'estan mostrant tots els contactes"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"La funció Contactes funciona millor amb un compte de Google.\n\n• Accedeix-hi des de qualsevol navegador.\n• Fes còpies de seguretat dels contactes de manera segura."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantén els contactes segurs encara que perdis el telèfon: sincronitza\'ls amb un servidor en línia."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Afegeix compte"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"No es farà una còpia de seguretat del teu contacte nou. Vols afegir un compte per fer còpies de seguretat en línia dels contactes?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Dedica un minut a afegir un compte per crear una còpia de seguretat dels contactes a Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Els contactes nous es desaran a <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Tria un compte predeterminat per als contactes nous:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Afegeix un contacte"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Crea un contacte"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edita el contacte"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Còpia local"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Només de lectura"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Tria un contacte per editar-lo"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contactes enllaçats"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Afegeix"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Desenllaça"</string>
     <string name="add_account" msgid="8201790677994503186">"Afegeix compte"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Afegeix compte"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exporta els fitxers de la base de dades"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"afegeix un contacte nou"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Crea un contacte"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Mostra\'n més"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Mostra\'n menys"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Mostra-ho tot"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recents"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Quant a"</string>
-    <string name="send_message" msgid="8938418965550543196">"Envia el missatge"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"S\'està creant una còpia personal..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Ahir"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Informació"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"S\'està creant una còpia personal..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Demà"</string>
     <string name="today" msgid="8041090779381781781">"Avui"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Avui a les <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Demà a les <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Esdeveniment sense títol)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Estableix"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"MI"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Lloc web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Esdeveniment"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relació"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Compte"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nom"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Adreça electrònica"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telèfon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Fes clic per desplegar l\'editor de contactes."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Fes clic per replegar l\'editor de contactes."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"indicacions cap a la ubicació"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS recent. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Fes clic per respondre."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS recent. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Fes clic per respondre."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"entrant"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"sortints"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"perdudes"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Trucada recent. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Fes clic per tornar la trucada."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Trucada recent. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Fes clic per tornar la trucada."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Usuari: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funciona millor si introdueixes l\'identificador de Hangouts de la persona corresponent al camp de l\'adreça electrònica o del telèfon."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Més camps"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Canvia la foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"No s\'ha pogut obrir l\'editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Es desa a"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Actualment es desa a <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Fes doble toc per triar un altre compte."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">S\'han enllaçat els contactes (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">S\'ha enllaçat el contacte</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contactes enllaçats"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Més camps"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Canvia la foto del contacte"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Afegeix una foto al contacte"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto del contacte"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"No s\'ha pogut obrir l\'editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Es desa a"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"La informació de contacte de <xliff:g id="ACCOUNT">%s</xliff:g> no es pot editar"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ENLLAÇA ELS CONTACTES"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCEL·LA"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> possibles duplicats</item>
-      <item quantity="one">1 possible duplicat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">S\'han enllaçat <xliff:g id="COUNT">%d</xliff:g> contactes</item>
-      <item quantity="one">S\'ha enllaçat 1 contacte</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Aquest contacte"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Possibles duplicats"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"És possible que aquests contactes corresponguin a la mateixa persona. Els pots enllaçar i crear un contacte únic."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contactes enllaçats"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Dels teus comptes"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Fes una foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Totes les fotos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Tria una foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Del compte <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Suprimeix <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Suprimeix <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Suprimeix <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto del compte <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> no seleccionada"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto del compte <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> seleccionada"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"No s\'ha seleccionat la foto d\'un compte desconegut"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"S\'ha seleccionat la foto d\'un compte desconegut"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"La llista de contactes s\'està actualitzant per reflectir el canvi d\'idioma.\n\nEspereu-vos..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Afegeix un número"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloqueja el número"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Afegeix núm. o cerca contactes"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vols desbloquejar el número <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEJA"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vols bloquejar el número <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUEJA"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"S\'ha bloquejat el número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"S\'ha desbloquejat el número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> no és vàlid."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueig de trucades desactivat tempor."</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"El bloqueig de trucades s\'ha desactivat perquè has contactat amb els serveis d\'emergència des d\'aquest telèfon durant les últimes 48 hores. Es tornarà a activar automàticament una vegada transcorregut el període de 48 hores."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importa"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Mostra els números"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Afegeix un número"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"El bloqueig de trucades s\'ha desactivat durant 48 hores"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"S\'ha desactivat perquè s\'ha fet una trucada d\'emergència."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"DESFÉS"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ja està bloquejat."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloqueja el número"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Dades de contacte de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error en la importació"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importa els números"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Per cercar els teus contactes, activa els permisos de Contactes."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Activa"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Suggeriments"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nou"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Obre el tauler de navegació"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Tanca el tauler de navegació"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiqueta <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiquetes"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Comptes"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Mostra l\'historial junt"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Esdeveniments i missatges"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Esdeveniments"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Missatges"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suggeriments"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mantén els contactes organitzats i rellevants"</string>
+    <string name="undo" msgid="1425165101664071422">"Desfés"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Truca a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Truca a casa"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Truca al mòbil"</string>
+    <string name="call_work" msgid="5328785911463744028">"Truca a la feina"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Truca al fax de la feina"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Truca al fax particular"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Truca al cercapersones"</string>
+    <string name="call_other" msgid="8563753966926932052">"Truca a"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Truca al número de crida de retorn"</string>
+    <string name="call_car" msgid="3280537320306436445">"Truca al cotxe"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Truca el telèfon principal de l\'empresa"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Truca a l\'XDSI"</string>
+    <string name="call_main" msgid="6082900571803441339">"Truca al telèfon principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Truca al fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Truca a la ràdio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Truca al tèlex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Truca a TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Truca al mòbil de la feina"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Truca al cercapersones de la feina"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Truca a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Truca al número MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (truca-li)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Envia un missatge de text a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Envia un SMS al número particular"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Envia un SMS al mòbil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Envia un SMS a la feina"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Envia un SMS al fax de la feina"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Envia un SMS al fax particular"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Envia un SMS al cercapersones"</string>
+    <string name="sms_other" msgid="806127844607642331">"Envia un SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Envia un SMS a la crida de retorn"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Envia un SMS al cotxe"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Envia un SMS al telèfon principal de l\'empresa"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Envia un SMS a l\'XDSI"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Envia un SMS al telèfon principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Envia un SMS al fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Envia un SMS a la ràdio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Envia un SMS al tèlex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Envia un SMS al TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Envia un SMS al telèfon de la feina"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Envia un SMS al cercapersones de la feina"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Envia un SMS a <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Envia un MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (envia-li un missatge)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Estableix una videotrucada"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Vols esborrar contac. més freqüents?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"S\'esborrarà la llista de contactes més freqüents a les aplicacions Contactes i Telèfon i es forçarà les aplicacions de correu electrònic a obtenir informació nova sobre les teves preferències pel que fa a adreces."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"S\'està esb. cont. més freqüents..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponible"</string>
+    <string name="status_away" msgid="1838861100379804730">"Absent"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Ocupat"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Altres"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">" Directori"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Directori de la feina"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Tots els contactes"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contacte ràpid per a <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Sense nom)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Contactats sovint"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Tots els contactes amb números de telèfon"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contactes del perfil professional"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Mostra actualitzac."</string>
+    <string name="account_phone" msgid="7128032778471187553">"Dispositiu"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nom"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Àlies"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nom"</string>
+    <string name="name_family" msgid="7466985689626017037">"Cognoms"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefix del nom"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Segon nom"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Sufix del nom"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nom fonètic"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nom fonètic"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Primer cognom fonètic"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Cognoms fonètics"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telèfon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Correu electrònic"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adreça"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Xat"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organització"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relació"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Data especial"</string>
+    <string name="sms" msgid="1756857139634224222">"Missatge de text"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adreça"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Empresa"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Títol"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notes"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalitzat"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Lloc web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiquetes"</string>
+    <string name="email_home" msgid="8573740658148184279">"Envia un correu electrònic a l\'adreça particular"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Envia un correu electrònic al mòbil"</string>
+    <string name="email_work" msgid="2807430017302722689">"Envia un correu electrònic a la feina"</string>
+    <string name="email_other" msgid="3454004077967657109">"Envia un correu electrònic"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Envia un correu electrònic a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Envia un correu electrònic"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Carrer"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Ciutat"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Estat"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Codi postal"</string>
+    <string name="postal_country" msgid="7638264508416368690">"País"</string>
+    <string name="map_home" msgid="1243547733423343982">"Visualitza l\'adreça particular"</string>
+    <string name="map_work" msgid="1360474076921878088">"Visualitza l\'adreça de la feina"</string>
+    <string name="map_other" msgid="3817820803587012641">"Visualitza l\'adreça"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Mostra l\'adreça de: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Xateja amb AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Xateja amb Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Xateja amb Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Xateja amb Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Xateja amb QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Xateja amb Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Xateja amb ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Xateja amb Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Fes un xat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"suprimeix"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Mostra més camps de nom"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Replega els camps de nom"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Mostra més camps amb la transcripció fonètica del nom"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Replega els camps amb la transcripció fonètica del nom"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Desplega"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Replega"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Desplegat"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Replegat"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Tots els contactes"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Destacats"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalitza"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contacte"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"La resta de contactes"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Tots els contactes"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Elimina el grup de sincronització"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Afegeix un grup de sincronització"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Més grups..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Si s\'elimina \"<xliff:g id="GROUP">%s</xliff:g>\" de la sincronització, també se n\'eliminaran els contactes no agrupats."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"S\'estan desant les opcions de visualització..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Visualització personalitzada"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Desa els contactes importats a:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Targeta SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contactes</item>
+      <item quantity="one">1 contacte</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contactes • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contacte • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Fitxer .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"No hi ha res per importar"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Vols importar contactes de la vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Vols cancel·lar la importació de: <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Vols cancel·lar l\'exportació de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"No es pot cancel·lar la imp./exp. vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"S\'ha produït un error desconegut."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"No s\'ha pogut obrir \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"No s\'ha pogut iniciar l\'exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"No hi ha cap contacte que es pugui exportar."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Has desactivat un permís obligatori."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"S\'ha produït un error durant l\'exportació: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Error d\'E/S"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"No hi ha prou memòria. És possible que el fitxer sigui massa gran."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"No s\'admet aquest format."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Exportació de <xliff:g id="FILENAME">%s</xliff:g> finalitzada."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"S\'han acabat d\'exportar els contactes"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"S\'han acabat d\'exportar els contactes; fes clic a la notificació per compartir-los."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Toca per compartir els contactes."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"S\'ha cancel·lat l\'exportació de: <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"S\'estan exportant les dades de contacte"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"S\'estan exportant les dades de contacte."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"No s\'ha pogut obtenir informació de la base de dades."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"No hi ha contactes que es puguin exportar."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"No s\'ha iniciat correctament el creador de vCard."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Error en exportar"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"No s\'han exportat les dades de contacte.\nMotiu: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"S\'està important <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"No s\'han pogut llegir les dades de vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Importació de vCard <xliff:g id="FILENAME">%s</xliff:g> finalitzada"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"S\'ha cancel·lat la importació de: <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> s\'importarà d\'aquí a una estona."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"D\'aquí a poc s\'importarà el fitxer."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"S\'ha rebutjat la sol·licitud per importar vCard. Torna-ho a provar més tard."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Aviat s\'exportaran els contactes."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"S\'ha rebutjat la sol·licitud per exportar vCard. Torna-ho a provar més tard."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contacte"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"S\'estan desant els vCard a l\'emmagatzematge temporal local. La importació real començarà aviat."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"No s\'ha pogut importar la vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contac. reb. NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Desament a la memòria cau"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"S\'està important <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exporta a un fitxer .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Ordena per"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nom fonètic"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mostra sempre"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Amaga si està buit"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nom"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Cognoms"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format del nom"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Primer el nom"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Primer els cognoms"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Comptes"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Compte predeterminat per als contactes nous"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"La meva informació"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configura el teu perfil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Informació sobre Contactes"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Comparteix els contactes preferits"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Comparteix tots els contactes"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"No s\'han pogut compartir els contactes."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exporta contactes"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importa contactes de"</string>
+    <string name="share_error" msgid="948429331673358107">"No es pot compartir aquest contacte."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"No hi ha cap contacte per compartir."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contactes per mostrar"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contactes per mostrar"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalitza la visualització"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Desa"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Cerca contactes"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Preferits"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importa"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exporta"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Números bloquejats"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"mitjançant <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> mitjançant <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"atura la cerca"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Esborra la cerca"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Compte"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Utilitza sempre per a les trucades"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Truca amb una nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Escriu una nota per enviar-la juntament amb la trucada…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVIA I TRUCA"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versió de la compilació"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Llicències de programari lliure"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalls de la llicència de programari lliure"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Política de privadesa"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Condicions del servei"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Llicències de programari lliure"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"No s\'ha pogut obrir l\'URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"S\'ha marcat <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"No s\'ha marcat <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Fa una videotrucada"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Suprimeix"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Punts suspensius"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> hr <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Aquesta drecera s\'ha desactivat"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"El contacte s\'ha suprimit"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importa"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Selecciona contactes"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"No hi ha cap contacte a la targeta SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"El contacte ja existeix a la teva llista"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">S\'han importat <xliff:g id="COUNT">%d</xliff:g> contactes de la SIM</item>
+      <item quantity="one">S\'ha importat 1 contacte de la SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"No s\'han pogut importar els contactes de la SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importa des de la SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancel·la"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"La sincronització automàtica està desactivada. Toca per activar-la."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ignora"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"La sincronització del compte està desactivada. Toca per activar-la."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Vols activar la sincronització automàtica?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Els canvis que facis a les aplicacions i als comptes, i no només als Contactes de Google, es mantindran actualitzats al web i als teus dispositius."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Activa"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Sense connexió"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mostra més"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importació de la targeta SIM completada"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"La importació ha fallat"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"No s\'han pogut importar els contactes de la targeta SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"S\'estan important els contactes de la SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index e2d4303..96d3875 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakty"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakty"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Zobrazit kontakt"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Upravit kontakt"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Přidat kontakt"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Přímé vytáčení"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Přímá zpráva"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Výběr zkratky kontaktu"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Výběr čísla pro hovor"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Výběr čísla pro zprávu"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Vybrat kontakt"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Přidat do kontaktu"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Vyberte kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Vybrat"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Vytvořte nový kontakt"</string>
-    <string name="starredList" msgid="4817256136413959463">"Označené hvězdičkou"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Časté"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Oblíbené"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontaktní údaje"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Upravit kontakt"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Vytvořit kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Upravit skupinu"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Vytvořit skupinu"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"O kontaktu"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Aktualizace"</string>
     <string name="searchHint" msgid="8482945356247760701">"Vyhledat kontakty"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Zobrazit kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Přidat k oblíbeným položkám"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Odebrat z oblíbených položek"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Odstraněno z oblíbených"</string>
@@ -49,42 +35,62 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Upravit"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Smazat"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Změnit fotografii"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Umístit na plochu"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Volat kontakt"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Odeslat zprávu kontaktu"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Vytvořit zkratku"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Zrušit propojení"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Upravit"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Smazat"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Přidat kontakt"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Přidat skupinu"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Odebrat kontakty"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Přejmenovat štítek"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Smazat štítek"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Přidat kontakt"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Vybrat kontakty"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Přidat kontakty"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Odebrat ze štítku"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Vytvořit štítek"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Chcete propojení kontaktů zrušit a vytvořit několik samostatných kontaktů?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Zrušit propojení"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Chcete uložit provedené změny, zrušit propojení kontaktu a vytvořit několik samostatných kontaktů?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Uložit a zrušit propojení"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Chcete uložit provedené změny a vybrané kontakty propojit?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Uložit a propojit"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Propojování"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Odpojování"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Propojit"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Zobrazit propojené kontakty"</string>
     <string name="menu_save" msgid="1727844363591825909">"Uložit"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Propojit kontakty"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Vyberte kontakt, který chcete propojit s kontaktem <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Zobrazit všechny kontakty"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Navrhované kontakty"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Všechny kontakty"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Kontakt <xliff:g id="NAME">%s</xliff:g> byl propojen"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakty byly propojeny"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> byl smazán"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Kontakty <xliff:g id="NAME_0">%1$s</xliff:g> a <xliff:g id="NAME_1">%2$s</xliff:g> byly smazány"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Kontakty <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… byly smazány"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="few">Kontakty byly smazány</item>
       <item quantity="many">Kontakty byly smazány</item>
       <item quantity="other">Kontakty byly smazány</item>
       <item quantity="one">Kontakt byl smazán</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontakty</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> kontaktu</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontaktů</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakty · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktů · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Z účtu Googlu"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Z účtu služby <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Nastavit vyzvánění"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Hovory do hlas. schránky"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakty z účtů pouze ke čtení nelze smazat, lze je však skrýt."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Skrýt"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakt určený ke smazání obsahuje podrobnosti z několika účtů. Podrobnosti z účtů pouze ke čtení budou skryty, ale smazány nebudou."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Chcete-li provést propojení, vyberte alespoň dva kontakty."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Chcete vybrané kontakty propojit?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Propojit"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Směrovat do hlasové schránky"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Nesměrovat do hlasové schránky"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Tento kontakt je pouze ke čtení. Není možné ho smazat, ale můžete ho skrýt."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Skrýt kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Účty tohoto kontaktu, které jsou pouze ke čtení, nebudou smazány, ale jen skryty."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Chcete tento kontakt smazat?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Chcete vybrané kontakty smazat?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakty z účtů pouze ke čtení nelze smazat, lze je však skrýt."</string>
@@ -92,189 +98,126 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Smazáním tohoto kontaktu smažete podrobnosti z více účtů."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Chcete tento kontakt smazat?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Smazat"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Zahodit změny"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt neexistuje."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt byl přidán na plochu."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> byl přidán na plochu."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Vytvořit nový kontakt"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Vytvořit nový kontakt"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizace"</item>
-    <item msgid="7196592230748086755">"Poznámka"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"V tabletu nejsou žádné fotografie."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"V telefonu nejsou žádné fotografie."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"V zařízení nejsou žádné fotky."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografie kontaktu"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Vlastní název štítku"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Přesměrovat hovory přímo do hlasové schránky"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Odebrat fotografii"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Žádné kontakty"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Žádné skupiny."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"K vytváření skupin potřebujete účet."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Skupina nemá žádné členy."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Chcete-li někoho přidat, upravte skupinu."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Ukládání kontaktu…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Váš seznam kontaktů je prázdný"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Žádné kontakty s tímto štítkem"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"V tomto účtu nejsou uloženy žádné kontakty"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Váš seznam kontaktů je prázdný"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Kontakt <xliff:g id="DISPLAY_NAME">%s</xliff:g> byl uložen"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt uložen"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Propojení kontaktů bylo zrušeno"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Změny kontaktů nelze uložit."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Propojení kontaktu nelze zrušit."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Propojení kontaktu se nezdařilo."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Při ukládání kontaktu došlo k chybě."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Změny fotografií kontaktů nelze uložit."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Skupina byla uložena."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Změny skupiny nelze uložit."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakty s telefonním číslem</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> kontaktu s telefonním číslem</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktů s telefonním číslem</item>
-      <item quantity="one">1 kontakt s telefonním číslem</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ke kontaktům nejsou přiřazena žádná telefonní čísla"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="few">Nalezeno: <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="many">Nalezeno: <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">Nalezeno: <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">Nalezeno: 1</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Změny kontaktu se nepodařilo uložit"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Propojení kontaktu se nepodařilo zrušit"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontakt se nepodařilo propojit"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Kontakt se nepodařilo uložit"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Změny fotky kontaktu se nepodařilo uložit"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Štítek se nepodařilo načíst"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Štítek byl smazán"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Štítek byl vytvořen"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Štítek se nepodařilo vytvořit"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Štítek byl aktualizován"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Odebráno ze štítku"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Přidáno do štítku"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Změny štítku se nepodařilo uložit"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Tento štítek už existuje"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Některé kontakty nemají e-mailové adresy."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Některé kontakty nemají telefonní čísla."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Poslat e-mail"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Poslat zprávu"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Vybrat kontakty"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Odeslat"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Žádné kontakty"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="few">Nalezeno: <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="many">Nalezeno: <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">Nalezeno: <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">Nalezeno: 1</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Vše"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Oblíbené"</string>
-    <string name="callBack" msgid="5498224409038809224">"Zavolat zpět"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Zavolat znovu"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Zpětné volání"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Chcete přidat „<xliff:g id="EMAIL">%s</xliff:g>“ do kontaktů?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotografie kontaktu"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> z <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktů"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Jména vašich kontaktů"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Aplikace potřebná k provedení této akce nebyla nalezena."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknutím se vrátíte na předchozí obrazovku"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Přidat telefonní číslo"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Přidat e-mail"</string>
     <string name="missing_app" msgid="1466111003546611387">"Aplikace potřebná k provedení této akce nebyla nalezena."</string>
     <string name="menu_share" msgid="943789700636542260">"Sdílet"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Přidat do kontaktů"</string>
-    <string name="share_via" msgid="563121028023030093">"Sdílet kontakt pomocí"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Vytvořit skupinu v účtu"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Přidat"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="few">Sdílet kontakty v aplikaci</item>
+      <item quantity="many">Sdílet kontakty v aplikaci</item>
+      <item quantity="other">Sdílet kontakty v aplikaci</item>
+      <item quantity="one">Sdílet kontakt v aplikaci</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Vyberte účet"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Vytvořit štítek"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Přejmenovat štítek"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Název štítku"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Název štítku"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Hlasový chat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videochat"</string>
-    <string name="connections" msgid="8098440723172028350">"Spojení"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Přidat spojení"</string>
-    <string name="recent" msgid="2659189233141493004">"Nedávné"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Poslední aktualizace"</string>
-    <string name="account_type_format" msgid="718948015590343010">"Kontakt ze zdroje <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="account_type_format" msgid="718948015590343010">"Zdroj kontaktu: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Účet <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Nelze upravit v této aplikaci."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Nelze upravit v tomto zařízení."</string>
     <string name="take_photo" msgid="7496128293167402354">"Vyfotit"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Pořídit novou fotografii"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Vybrat fotku"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Vybrat novou fotku"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Probíhá aktualizace seznamu kontaktů."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Vyhledávání..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Zobrazit vybrané"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Zobrazit vše"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Vybrat vše"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Zrušit výběr všech"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Přidat nové"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Přidat organizaci"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Název skupiny"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Změnit"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primární fotka"</string>
-    <string name="description_star" msgid="2605854427360036550">"oblíbené"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Upravit kontakt"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Propojit aktuální kontakt s vybraným kontaktem?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Štítek"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Zrušit"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Zpět"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zavřít"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Přepnout do režimu úpravy vybraného kontaktu? Doposud zadané informace budou zkopírovány."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Zkopírovat do kontaktů"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Přidat do skupiny Moje kontakty"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Adresář <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Vlastní"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Nastavení"</string>
     <string name="menu_settings" msgid="377929915873428211">"Nastavení"</string>
     <string name="menu_help" msgid="1680178646764069976">"Nápověda a zpětná vazba"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Možnosti zobrazení"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefonní číslo"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Přidat do kontaktů"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Přidat do kontaktu"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Zavřít"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Uvést rok"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Načítá se..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Vytvořit nový kontakt"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Přidat účet"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importovat kontakty"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Vytvořit novou skupinu"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Vytvořit novou skupinu"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> skupiny</item>
-      <item quantity="many"><xliff:g id="COUNT">%0$d</xliff:g> skupiny</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> skupin</item>
-      <item quantity="one">1 skupina</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Chcete smazat skupinu <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Samotné kontakty smazány nebudou.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> lidé ze skupiny <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> člověka ze skupiny <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> lidí ze skupiny <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> člověk ze skupiny <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> lidé</item>
-      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> člověka</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> lidí</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> člověk</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importovat"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Nový štítek…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Smazat štítek <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Samotné kontakty smazány nebudou.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Před propojením s jiným kontaktem je třeba zadat jméno kontaktu."</string>
     <string name="copy_text" msgid="3257145021583508761">"Zkopírovat do schránky"</string>
     <string name="set_default" msgid="4417505153468300351">"Výchozí nastavení"</string>
     <string name="clear_default" msgid="7193185801596678067">"Vymazat výchozí nastavení"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Text zkopírován"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Zahodit změny?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Zrušit"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Nastavit profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Zadejte jméno osoby"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Název skupiny"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Zahodit změny?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Zahodit"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Zrušit"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Zahodit vlastní úpravy?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Vyhledejte kontakty"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Odebrat kontakty"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Můj místní profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Můj profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Zobrazují se všechny kontakty"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"S účtem Google fungují Kontakty lépe:\n\n• Je k nim možné přistupovat z každého webového prohlížeče.\n• Bezpečně se zálohují."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mějte kontakty v bezpečí, i když telefon ztratíte: synchronizujte je s některou online službou."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Přidat účet"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Nový kontakt nebude zálohován. Chcete přidat účet pro zálohování kontaktů online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Přidejte svůj účet a nechte si kontakty zálohovat do Googlu."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nové kontakty se uloží do účtu <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Zvolte výchozí účet pro nové kontakty:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Přidat nový kontakt"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Nový kontakt"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Upravit kontakt"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Ponechat místně"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Pouze zobrazení"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Vyberte kontakt, který chcete upravit"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Propojené kontakty"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Přidat"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Odpojit"</string>
     <string name="add_account" msgid="8201790677994503186">"Přidat účet"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Přidat nový účet"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportovat soubory databáze"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"přidat nový kontakt"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Vytvořit nový kontakt"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Zobrazit více"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Zobrazit méně"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Zobrazit vše"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Nedávné"</string>
     <string name="about_card_title" msgid="2920942314212825637">"O kartě"</string>
-    <string name="send_message" msgid="8938418965550543196">"Odeslat zprávu"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Vytváření osobní kopie..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Včera"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Vytváření osobní kopie..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Zítra"</string>
     <string name="today" msgid="8041090779381781781">"Dnes"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Dnes v <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Zítra v <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Událost bez názvu)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Nastavit"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Chat"</string>
@@ -284,104 +227,321 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Událost"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Vztah"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Účet"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Jméno"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotka"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliknutím rozbalíte editor kontaktů."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknutím sbalíte editor kontaktů."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"trasy k místům"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedávná sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknutím odpovíte"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedávná sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknutím odpovíte"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"příchozí"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"odchozí"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"zmeškaný"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"nedávný hovor. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknutím zavoláte zpět"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"nedávný hovor. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknutím zavoláte zpět"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Vy: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Aplikace Hangouts funguje lépe, když do pole pro e-mail nebo pro telefon zadáte identifikátor osoby ve službě Hangouts."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Další pole"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Změnit fotografii"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Editor nelze otevřít."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Uložit do účtu"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Momentálně se ukládá do účtu <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dvojitým klepnutím můžete vybrat jiný účet."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="few">Propojené kontakty (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">Propojené kontakty (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Propojené kontakty (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Propojený kontakt</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Počet propojených kontaktů: <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Další pole"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Změnit fotku kontaktu"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Přidat fotku kontaktu"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Fotka kontaktu"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Editor se nepodařilo otevřít."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Uložit do účtu"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontaktní údaje z účtu <xliff:g id="ACCOUNT">%s</xliff:g> není možné upravit"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"PROPOJIT KONTAKTY"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ZRUŠIT"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> možné duplicity</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> možné duplicity</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> možných duplicit</item>
-      <item quantity="one">1 možná duplicita</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> propojené kontakty</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> propojeného kontaktu</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> propojených kontaktů</item>
-      <item quantity="one">1 propojený kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Tento kontakt"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Možná duplicita"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Tyto kontakty možná reprezentují stejného člověka. Můžete je propojit a vytvořit z nich jeden kontakt."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Propojené kontakty"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Z vašich účtů"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Pořídit fotku"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Všechny fotky"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Výběr fotky"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Z účtu <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Smazat <xliff:g id="DATA_KIND">%s</xliff:g> (<xliff:g id="DATA_TYPE">%s </xliff:g>)"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Smazat <xliff:g id="DATA_KIND">%2$s</xliff:g> (<xliff:g id="DATA_TYPE">%1$s </xliff:g>)"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Smazat <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotka z účtu <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> není vybrána"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Vybrána fotka z účtu <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Fotka z neznámého účtu nebyla vybrána"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Fotka z neznámého účtu byla vybrána"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"V souvislosti se změnou jazyka probíhá aktualizace seznamu kontaktů.\n\nČekejte prosím..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Přidat číslo"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokovat číslo"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Přidejte číslo nebo vyhledejte kontakty"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Odblokovat číslo <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ODBLOKOVAT"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokovat číslo <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKOVAT"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> zablokováno"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> odblokováno"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je neplatné."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokování hovorů je dočasně vypnuto"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Protože jste z tohoto telefonu během posledních 48 hodin volali na tísňovou linku, bylo blokování hovorů vypnuto. Po uplynutí 48 hodin se automaticky znovu zapne."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importovat"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Zobrazit čísla"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Přidat číslo"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokování hovorů je vypnuto na 48 hodin"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Vypnuto z důvodu provedeného tísňového volání"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"VRÁTIT"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je již blokováno."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zrušit blokování čísla"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Podrobnosti kontaktu pro <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import se nezdařil."</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importovat čísla"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Zapnout"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Návrhy"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novinka"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Otevřít navigační panel"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zavřít navigační panel"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Štítek <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Štítky"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Účty"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Mějte svou historii pohromadě"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Události a zprávy"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Události"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Zprávy"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Návrhy"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Udržujte si v kontaktech pořádek, ať vám dobře slouží"</string>
+    <string name="undo" msgid="1425165101664071422">"Vrátit zpět"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Zavolat na číslo <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Volat domů"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Volat mobil"</string>
+    <string name="call_work" msgid="5328785911463744028">"Volat do práce"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Volat pracovní fax"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Volat domácí fax"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Volat pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Volat"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Volat na číslo zpětného volání"</string>
+    <string name="call_car" msgid="3280537320306436445">"Volat do auta"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Volat firmu (hlavní)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Volat na číslo ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Volat na hlavní číslo"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Volat fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Volat radiostanici"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Volat na číslo Telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Volat na číslo TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Volat na pracovní mobil"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Volat na pracovní pager"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Zavolat na číslo <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Volat MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Zavolat)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Poslat SMS na číslo <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS domů"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS na mobil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS do práce"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS na pracovní fax"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS na domácí fax"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS na pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Odeslat zprávu na číslo zpětného volání"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS do auta"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS do firmy (hlavní)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Odeslat zprávu na číslo ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Odeslat zprávu na hlavní číslo"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"SMS na fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS na radiotelefon"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Odeslat zprávu na číslo Telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Odeslat zprávu na číslo TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Odeslat zprávu na pracovní mobil"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Odeslat zprávu na pracovní pager"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Odeslat zprávu asistentovi <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"SMS na číslo MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Poslat zprávu)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Zahájit videohovor"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Vymazat často kontaktované osoby?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Vymažete seznam často kontaktovaných osob v aplikacích Kontakty a Telefon a e-mailové aplikace budou muset nastavení adresátů vytvořit znovu."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Mazání často kontaktovaných osob..."</string>
+    <string name="status_available" msgid="5586870015822828392">"K dispozici"</string>
+    <string name="status_away" msgid="1838861100379804730">"Pryč"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Nemám čas"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Ostatní"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Adresář"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Pracovní adresář"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Všechny kontakty"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Rychlý kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Žádné jméno)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Často používané kontakty"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Všechny kontakty s telefonními čísly"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontakty z pracovního profilu"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Zobrazit aktualizace"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Zařízení"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Jméno"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Přezdívka"</string>
+    <string name="name_given" msgid="4280790853455320619">"Jméno"</string>
+    <string name="name_family" msgid="7466985689626017037">"Příjmení"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Titul před jménem"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Další jméno"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Titul za jménem"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Jméno (foneticky)"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Jméno (foneticky)"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Druhé jméno (foneticky)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Příjmení (foneticky)"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Chat"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizace"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Vztah"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Zvláštní datum"</string>
+    <string name="sms" msgid="1756857139634224222">"Textová zpráva"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresa"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Společnost"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Název"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Poznámky"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Vlastní"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Webové stránky"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Štítky"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mail domů"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-mail na mobil"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mail do práce"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Poslat e-mail na adresu <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Ulice"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Město"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Stát"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"PSČ"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Země"</string>
+    <string name="map_home" msgid="1243547733423343982">"Zobrazit adresu domů"</string>
+    <string name="map_work" msgid="1360474076921878088">"Zobrazit pracovní adresu"</string>
+    <string name="map_other" msgid="3817820803587012641">"Zobrazit adresu"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Zobrazit adresu <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chatovat pomocí AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chatovat pomocí Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chatovat pomocí Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chatovat pomocí Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chatovat pomocí QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chatovat pomocí Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chatovat pomocí ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chatovat pomocí Jabberu"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"smazat"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Zobrazit více polí na jména"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Sbalit pole na jména"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Zobrazit více polí na fonetický přepis jmen"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Sbalit pole na fonetický přepis jmen"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Rozbalit"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Sbalit"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Rozbaleno"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Sbaleno"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Všechny kontakty"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Označené hvězdičkou"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Přizpůsobit"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Všechny ostatní kontakty"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Všechny kontakty"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Odstranit synchronizovanou skupinu"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Přidat synchronizovanou skupinu"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Další skupiny…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Odebráním skupiny <xliff:g id="GROUP">%s</xliff:g> ze synchronizace odeberete ze synchronizace také všechny kontakty mimo skupinu."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Ukládání možností zobrazení…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Vlastní zobrazení"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Účet k uložení importovaných kontaktů:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM karta"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM karta <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="few">%1$d kontakty</item>
+      <item quantity="many">%1$d kontaktu</item>
+      <item quantity="other">%1$d kontaktů</item>
+      <item quantity="one">1 kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontakty • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> kontaktu • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontaktů • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Soubor .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nic k importování"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importovat kontakty ze souboru vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Zrušit import souboru <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Zrušit export souboru <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Import/export vizitky vCard nelze zrušit"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Neznámá chyba."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Soubor <xliff:g id="FILE_NAME">%1$s</xliff:g> nelze otevřít: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nelze spustit nástroj pro export: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Žádný kontakt nelze exportovat."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Zakázali jste nutné oprávnění."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Při exportu došlo k chybě: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Chyba I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Není k dispozici dostatek paměti. Soubor může být příliš velký."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formát není podporován."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Export souboru <xliff:g id="FILENAME">%s</xliff:g> byl dokončen."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Export kontaktů byl dokončen."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Export kontaktů byl dokončen. Klepnutím na oznámení je můžete sdílet."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Klepnutím můžete sdílet kontakty."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Export souboru <xliff:g id="FILENAME">%s</xliff:g> byl zrušen."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Export dat kontaktů"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Probíhá export dat kontaktů."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nepodařilo se získat informace o databázi."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nemáte žádné kontakty k exportu."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Editor souboru vCard nebyl správně spuštěn."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Export se nezdařil"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Data kontaktů nebyla exportována.\nDůvod: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Probíhá import: <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nepodařilo se přečíst údaje vizitky vCard."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Import souboru vCard (<xliff:g id="FILENAME">%s</xliff:g>) byl dokončen"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Import souboru <xliff:g id="FILENAME">%s</xliff:g> byl zrušen."</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Soubor <xliff:g id="FILENAME">%s</xliff:g> bude za okamžik importován."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Soubor bude zakrátko importován."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Požadavek na import souborů vCard byl zamítnut. Zkuste to prosím později."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakty budou brzy exportovány."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Požadavek na export souborů vCard byl zamítnut. Zkuste to prosím později."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Načítání souboru vCard do mezipaměti místního dočasného úložiště. Vlastní import bude zahájen v krátké době."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Soubor vCard se nepodařilo importovat."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt přijatý přes NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Ukládání do mezipaměti"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Probíhá import: <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportovat do souboru VCF"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Řadit podle"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Jméno (foneticky)"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Vždy zobrazovat"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Skrýt, pokud je prázdné"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Jméno"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Příjmení"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formát jména"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Nejprve jméno"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nejprve příjmení"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Účty"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Výchozí účet pro nové kontakty"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Moje údaje"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Nastavit váš profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"O aplikaci Kontakty"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Sdílet oblíbené kontakty"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Sdílet všechny kontakty"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kontakty se nepodařilo sdílet."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportovat kontakty"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importovat kontakty z umístění"</string>
+    <string name="share_error" msgid="948429331673358107">"Tento kontakt nelze sdílet."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nejsou dostupné žádné kontakty ke sdílení."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakty k zobrazení"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakty k zobrazení"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Přizpůsobit zobrazení"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Uložit"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Vyhledejte kontakty"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Oblíbené"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importovat"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportovat"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokovaná čísla"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"pomocí služby <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> prostřednictvím služby <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"zastavit vyhledávání"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Vymazat vyhledávání"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Účet"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Vždy používat pro hovory"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Volání s poznámkou"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Zadejte poznámku, která se odešle pomocí volání…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ODESLAT A ZAVOLAT"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Verze sestavení"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licence open source"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Podrobnosti o licencích pro software open source"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Zásady ochrany soukromí"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Smluvní podmínky"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licence open source"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Adresu URL se nepodařilo otevřít."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> – zaškrtnuto"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> – nezaškrtnuto"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Zahájit videohovor"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Smazat"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Tři tečky"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Tato zkratka byla deaktivována"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt byl odebrán"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importovat"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Vyberte kontakty"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Na SIM kartě nejsou žádné kontakty"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt už je na vašem seznamu"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="few">Byly importovány <xliff:g id="COUNT">%d</xliff:g> kontakty ze SIM karty</item>
+      <item quantity="many">Bylo importováno <xliff:g id="COUNT">%d</xliff:g> kontaktu ze SIM karty</item>
+      <item quantity="other">Bylo importováno <xliff:g id="COUNT">%d</xliff:g> kontaktů ze SIM karty</item>
+      <item quantity="one">Byl importován 1 kontakt ze SIM karty</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kontakty ze SIM karty se nepodařilo importovat"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Import ze SIM karty"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Zrušit"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatická synchronizace je vypnutá. Zapnete ji klepnutím."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Zavřít"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Synchronizace účtu je vypnutá. Zapnete ji klepnutím."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Zapnout automatickou synchronizaci?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Změny, které provedete ve všech aplikacích a účtech (ne jen v Kontaktech Google), budou aktualizovány mezi webem a vašimi zařízeními."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Zapnout"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Nejste připojeni"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM karta"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Zobrazit více"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Import ze SIM karty byl dokončen"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Import se nezdařil"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kontakty ze SIM karty se nepodařilo importovat"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importování ze SIM karty"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 5e72927..ddbe815 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontaktpersoner"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontaktpersoner"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Se kontaktperson"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Rediger kontaktperson"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Kontaktpersoner"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Tilføj kontaktperson"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direkte opkald"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direkte besked"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Vælg en kontaktgenvej"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Vælg et nummer at ringe til"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Vælg et nummer, som beskeden skal sendes til"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Vælg kontaktperson"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Føj til kontaktperson"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Vælg en kontaktperson"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Vælg"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Opret ny kontaktperson"</string>
-    <string name="starredList" msgid="4817256136413959463">"Stjernemarkerede"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Ofte"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Foretrukne"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontaktoplysninger"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Rediger kontakt"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Opret kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Rediger gruppe"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Opret gruppe"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Om"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Opdateringer"</string>
     <string name="searchHint" msgid="8482945356247760701">"Søg i kontakter"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Vis kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Føj til foretrukne"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Fjern fra foretrukne"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Fjernet fra foretrukne"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Rediger"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Slet"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Skift billede"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Placer på startskærmen"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Ring til kontakt"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Send sms til kontakt"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Opret genvej"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Ophæv sammenfletning"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Rediger"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Slet"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Tilføj kontaktperson"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Tilføj gruppe"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Fjern kontaktpersoner"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Omdøb etiket"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Slet etiket"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Tilføj kontaktperson"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Vælg kontaktpersoner"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Tilføj kontaktpersoner"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Fjern fra etiket"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Opret etiket"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Vil du ophæve sammenfletningen og opdele denne kontaktperson i flere kontaktpersoner?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Ophæv sammenfletningen"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Vil du gemme de ændringer, du allerede har foretaget, og ophæve sammenfletningen og opdele kontaktpersonen i flere kontaktpersoner?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Gem, og ophæv sammenfletningen"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Vil du gemme de ændringer, du allerede har foretaget, og sammenflette med den valgte kontaktperson?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Gem, og sammenflet"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Gem og flet"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Sammenfletter"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Ophæver sammenfletning"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Sammenflet"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Se sammenflettede kontaktpersoner"</string>
     <string name="menu_save" msgid="1727844363591825909">"Gem"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Tilknyt kontaktpersoner"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Sammenflet kontaktpersoner"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Vælg den kontaktperson, der skal knyttes til <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Vis alle kontakter"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Foreslåede kontakter"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Alle kontakter"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> er sammenflettet"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktpersonerne er sammenflettet"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> blev slettet"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> og <xliff:g id="NAME_1">%2$s</xliff:g> blev slettet"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… blev slettet"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">Kontaktpersonerne blev slettet</item>
+      <item quantity="one">Kontaktpersonen blev slettet</item>
       <item quantity="other">Kontaktpersonerne blev slettet</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> kontaktperson</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontaktpersoner</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktperson · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktpersoner · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Fra Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Fra <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Angiv ringetone"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Alle opkald til telefonsvareren"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontaktpersoner fra dine skrivebeskyttede konti kan ikke slettes, men de kan skjules."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Skjul"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Den kontaktperson, du vil slette, indeholder oplysninger fra flere konti. Oplysninger fra skrivebeskyttede konti skjules fremfor at blive slettet."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Du skal vælge mindst to kontaktpersoner for at foretage en sammenfletning."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Vil du sammenflette de valgte kontaktpersoner?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Sammenflet"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Omdiriger til telefonsvarer"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Træk tilbage fra telefonsvarer"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Denne kontaktperson er skrivebeskyttet. Vedkommende kan ikke slettes, men kun skjules."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Skjul kontaktperson"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Data om denne kontaktperson fra skrivebeskyttede konti bliver skjult, men ikke slettet."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Vil du slette denne kontaktperson?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Vil du slette de valgte kontaktpersoner?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontaktpersoner fra dine skrivebeskyttede konti kan ikke slettes, men de kan skjules."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Sletning af denne kontaktperson sletter oplysninger fra flere konti."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Vil du slette denne kontaktperson?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Slet"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Kassér ændringer"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontaktpersonen findes ikke."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontaktpersonen blev føjet til startskærmen."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> blev føjet til startskærmen."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Opret ny kontaktperson"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Opret ny kontaktperson"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisation"</item>
-    <item msgid="7196592230748086755">"Note"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Der er ingen tilgængelige billeder på tabletcomputeren."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Der er ingen tilgængelige billeder på telefonen."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Der er ingen tilgængelige billeder på enheden."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Billede af kontaktperson"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Navn på tilpasset etiket"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Send opkald direkte til telefonsvarer"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Fjern billede"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Ingen kontaktpersoner"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Ingen grupper."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Du skal have en konto for at kunne oprette grupper."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Ingen personer i denne gruppe."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Rediger gruppen for at tilføje nogen."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Gemmer kontakt..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Din liste over kontaktpersoner er tom"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Der er ingen kontaktpersoner med denne etiket"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Der er ingen kontaktpersoner på denne konto"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Din liste over kontaktpersoner er tom"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> blev gemt"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontaktpersonen er gemt"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Sammenfletningen af kontaktpersonerne blev ophævet"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Der kunne ikke gemmes ændringer i kontaktpersoner."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Tilknytningen til kontaktpersonen kunne ikke fjernes."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kontaktpersonen kunne ikke tilknyttes."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Kontaktpersonen kunne ikke gemmes."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Det ændrede billede af kontaktpersonen kunne ikke gemmes."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Gruppen er gemt."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Gruppeændringerne kunne ikke gemmes."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontaktpersoner med telefonnumre</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktpersoner med telefonnumre</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Der er ingen kontakter med telefonnumre"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one">Der blev fundet <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">Der blev fundet <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Ændringerne af kontaktpersonen kan ikke gemmes"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Sammenfletningen til kontaktpersonen kan ikke ophæves"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontaktpersonen kan ikke sammenflettes"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Der opstod en fejl, da kontaktpersonen blev gemt"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Ændringerne af kontaktpersonens billede kan ikke gemmes"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Etiketten kan ikke indlæses"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiketten blev slettet"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiketten blev oprettet"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Etiketten kan ikke oprettes"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiketten blev opdateret"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Fjernet fra etiketten"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Føjet til etiket"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Ændringerne af etiketten kan ikke gemmes"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Etiketten findes allerede"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Nogle kontaktpersoner har ikke e-mails."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Nogle kontaktpersoner har ikke telefonnumre."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Send e-mail"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Send besked"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Vælg kontaktpersoner"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Send"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Ingen kontaktpersoner"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one">Der blev fundet <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">Der blev fundet <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Alle"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Foretrukne"</string>
-    <string name="callBack" msgid="5498224409038809224">"Ring tilbage"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Ring op igen"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Ring tilbage"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Føj \"<xliff:g id="EMAIL">%s</xliff:g>\" til kontaktpersoner?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kontaktpersonfoto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> af <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakter"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Navne på dine kontakter"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Der blev ikke fundet nogen app, der kan håndtere denne handling."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik for at gå tilbage til forrige skærmbillede"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Tilføj telefonnummer"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Tilføj e-mail"</string>
     <string name="missing_app" msgid="1466111003546611387">"Der blev ikke fundet nogen app, der kan håndtere denne handling."</string>
     <string name="menu_share" msgid="943789700636542260">"Del"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Føj til kontaktpersoner"</string>
-    <string name="share_via" msgid="563121028023030093">"Del kontakt via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Opret gruppe på konto"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Tilføj"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Del kontaktpersonen via</item>
+      <item quantity="other">Del kontaktpersonerne via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Vælg konto"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Opret etiket"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Omdøb etiket"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etiketnavn"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Etiketnavn"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Talechat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videochat"</string>
-    <string name="connections" msgid="8098440723172028350">"Forbindelser"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Tilføj forbindelse"</string>
-    <string name="recent" msgid="2659189233141493004">"Seneste"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Seneste opdateringer"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontaktperson"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-konto"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Kan ikke redigeres fra denne app."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Kan ikke redigeres på denne enhed."</string>
     <string name="take_photo" msgid="7496128293167402354">"Tag billede"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tag nyt billede"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Vælg billede"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Vælg et nyt billede"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Listen over kontaktpersoner opdateres."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Søger..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Vis valgte"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Vis alle"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Vælg alle"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Fravælg alle"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Tilføj ny"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Tilføj organisation"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dato"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Gruppenavn"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Rediger"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primært foto"</string>
-    <string name="description_star" msgid="2605854427360036550">"foretrukken"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Rediger kontaktperson"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vil du knytte den aktuelle kontaktperson til den valgte kontaktperson?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiket"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Annuller"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Tilbage"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"luk"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Vil du redigere den valgte kontaktperson? Dine indtastninger kopieres."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopier til Mine kontaktpersoner"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Føj til mine kontaktpersoner"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Indeks <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Tilpasset"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Indstillinger"</string>
     <string name="menu_settings" msgid="377929915873428211">"Indstillinger"</string>
     <string name="menu_help" msgid="1680178646764069976">"Hjælp og feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Indstillinger for visning"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Føj til kontaktpersoner"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Føj til kontaktperson"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Luk"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Medtag år"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontaktperson"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Indlæser…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Opret ny kontaktperson"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Inkluder år"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Tilføj konto"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importer kontaktpersoner"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Opret en ny gruppe"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Opret en ny gruppe"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> grupper</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupper</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Vil du slette gruppen \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Selve kontaktpersonerne slettes ikke)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> personer fra <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> personer fra <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> personer</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> personer</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importér"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Opret ny…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Vil du slette etiketten \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Selve kontaktpersonerne bliver ikke slettet)."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Skriv kontaktpersonens navn, før den knyttes sammen med en anden."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopier til udklipsholder"</string>
     <string name="set_default" msgid="4417505153468300351">"Indstil standard"</string>
     <string name="clear_default" msgid="7193185801596678067">"Ryd standarder"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Kopieret tekst"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Skal ændringerne slettes?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Kassér"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Konfigurer min profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Indtast personens navn"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Gruppens navn"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Vil du kassere ændringerne?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Kassér"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Annuller"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Vil du kassere tilpasningerne?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Søg i kontaktpersoner"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Fjern kontaktpersoner"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Min lokale profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Min <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-profil"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Viser alle kontaktpersoner"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktpersoner fungerer bedre med en Google-konto.\n\n• Få adgang fra enhver webbrowser. \n• Sikkerhedskopiér dine kontaktpersoner på sikker vis."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Behold dine kontaktpersoner, selv hvis du mister din telefon: Synkroniser med en onlinetjeneste."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Tilføj en konto"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Din nye kontaktperson bliver ikke sikkerhedskopieret. Vil du tilføje en konto, der sikkerhedskopierer kontaktpersoner online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Brug et øjeblik på at tilføje en konto, som sikkerhedskopierer dine kontaktpersoner til Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nye kontakter gemmes på <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Vælg en standardkonto til nye kontaktpersoner:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Tilføj ny kontakt"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Opret ny kontaktperson"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Rediger kontaktperson"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Gem kun lokalt"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Kun visning"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Vælg en kontaktperson at redigere"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Sammenflettede kontaktpersoner"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Tilføj"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Ophæv sammenfletning"</string>
     <string name="add_account" msgid="8201790677994503186">"Tilføj konto"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Tilføj ny konto"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Eksportér databasefiler"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"tilføj ny kontaktperson"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Opret ny kontaktperson"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Se mere"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Se mindre"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Se alle"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Seneste"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Om"</string>
-    <string name="send_message" msgid="8938418965550543196">"Send besked"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Opretter en personlig kopi..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"I går"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Opretter en privat kopi..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"I morgen"</string>
     <string name="today" msgid="8041090779381781781">"I dag"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"I dag kl. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"I morgen kl. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Ikke-navngiven begivenhed)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Angiv"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Chat"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Website"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Begivenhed"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relation"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Konto"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Navn"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Klik for at udvide værktøjet til redigering af kontaktpersoner."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Klik for at skjule værktøjet til redigering af kontaktpersoner."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"rutevejledning til placering"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"seneste sms-besked. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Klik for at svare"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"seneste sms-besked. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Klik for at svare"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"indgående"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"udgående"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ubesvarede"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"seneste opkald. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Klik for at ringe tilbage"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"seneste opkald. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Klik for at ringe tilbage"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Dig: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts fungerer bedre, når du indtaster personens Hangouts-id i e-mailfeltet eller telefonfeltet."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Flere felter"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Skift billede"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Redigeringsværktøjet kunne ikke åbnes."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Gemmes på"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"I øjeblikket gemmes den på <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Tryk to gange for at vælge en anden konto."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Tilknyttet kontaktperson (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Tilknyttede kontaktpersoner (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> tilknyttede kontaktpersoner"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"TILKNYT KONTAKTPERSONER"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Flere felter"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Skift kontaktpersonens billede"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Tilføj et billede af kontaktpersonen"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Billede af kontaktperson"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Redigeringsværktøjet kunne ikke åbnes."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Gemmes på"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontaktoplysningerne fra <xliff:g id="ACCOUNT">%s</xliff:g> kan ikke redigeres"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"SAMMENFLET KONTAKTPERSONER"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANNULLER"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> mulig dublet</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mulige dubletter</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> tilknyttet kontaktperson</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tilknyttede kontaktpersoner</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Denne kontaktperson"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mulige dubletter"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Disse kontaktpersoner kan være den samme person. Du kan sammenflette dem til én enkelt kontaktperson."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Sammenflettede kontaktpersoner"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Fra dine konti"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Tag et billede"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Alle billeder"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Vælg billede"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Fra <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Slet <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Slet <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Slet <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Billede fra <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> er ikke valgt"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Billede fra <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> er valgt"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Der er ikke markeret et billede fra en ukendt konto"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Et billede fra en ukendt konto er markeret"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kontaktlisten opdateres for at afspejle ændringen af sprog.\n\nVent et øjeblik..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Tilføj nummer"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloker nummer"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Tilføj nummer, eller søg i kontaktpersoner"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vil du fjerne blokeringen af <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"FJERN BLOKERING"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vil du blokere <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKER"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> er blokeret"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> er ikke blokeret"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> er ugyldigt."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Opkaldsblokering er midlertidigt slået fra"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Opkaldsblokering er blevet deaktiveret, da du inden for de sidste 48 timer har kontaktet en alarmcentral. Blokeringen aktiveres automatisk igen, når perioden på 48 timer er udløbet."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importér"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Se numre"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Tilføj nummer"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Opkaldsblokering er blevet deaktiveret i 48 timer"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Deaktiveret, da du har foretaget et nødopkald."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"FORTRYD"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokeret."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Ophæv blokering af nummer"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Kontaktoplysninger for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importen mislykkedes"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importér numre"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktivér"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Forslag"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nyt"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Åbn navigationsskuffen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Luk navigationsskuffen"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiketten <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiketter"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Konti"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Se jeres fælles historik"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Begivenheder og beskeder"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Begivenheder"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Meddelelser"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Forslag"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Hold dine kontaktpersoner organiserede og brugbare"</string>
+    <string name="undo" msgid="1425165101664071422">"Fortryd"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Ring til <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Ring hjem"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Ring til mobil"</string>
+    <string name="call_work" msgid="5328785911463744028">"Ring til arbejde"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Ring til arbejdsfax"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Ring til hjemmefax"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Ring til personsøger"</string>
+    <string name="call_other" msgid="8563753966926932052">"Opkald"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Ring til tilbagekald"</string>
+    <string name="call_car" msgid="3280537320306436445">"Ring til bil"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Ring til arbejde (hovednummer)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Ring til ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Ring til hoved"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Ring til fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Ring til radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Ring til telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Ring til TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Ring til arbejdsmobil"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Ring til personsøger på arbejdet"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Ring til <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Ring til mms"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ring op)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Send en sms til <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Sms til hjem"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Sms til mobil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Sms til arbejde"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Sms til arbejdsfax"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Sms til hjemmefax"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Sms til personsøger"</string>
+    <string name="sms_other" msgid="806127844607642331">"Send sms"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Send sms til mistede opkald"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Sms til bil"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Sms til arbejde (hovednummer)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Send sms til ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Send sms til hoved"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Send sms til fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Sms til radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Send sms til telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Send sms til TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Send sms til arbejdsmobil"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Send sms til personsøger til arbejdet"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Send sms til <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Sms til mms"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (send besked)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Foretag videoopkald"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Vil du rydde de ofte kontaktede?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Hvis du gør dette, rydder du listen over personer, som du ofte kontakter, i dine apps Kontaktpersoner og Telefon. Du vil samtidig tvinge e-mailapps til at lære dine adressepræferencer fra bunden."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Rydder ofte kontaktede personer…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Tilgængelig"</string>
+    <string name="status_away" msgid="1838861100379804730">"Ikke til stede"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Optaget"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Andre"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Indeks"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Indeks for arbejde"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Alle kontaktpersoner"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Hurtigkontakt for <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Intet navn)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Jævnligt kontaktet"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Alle kontaktpersoner med telefonnumre"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontaktpersoner for arbejdsprofil"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Se opdateringer"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Enhed"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM-kort"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Navn"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Kaldenavn"</string>
+    <string name="name_given" msgid="4280790853455320619">"Fornavn"</string>
+    <string name="name_family" msgid="7466985689626017037">"Efternavn"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Navnepræfiks"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Mellemnavn"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Navnesuffiks"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetisk navn"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetisk fornavn"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetisk mellemnavn"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetisk efternavn"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresse"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisation"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Forhold"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Særlig dato"</string>
+    <string name="sms" msgid="1756857139634224222">"Sms"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresse"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Virksomhed"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titel"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Noter"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Tilpasset"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Website"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiketter"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mail til hjem"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-mail til mobil"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mail til arbejde"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Send en e-mail til <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Gade"</string>
+    <string name="postal_city" msgid="6597491300084895548">"By"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Stat"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postnummer"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Land"</string>
+    <string name="map_home" msgid="1243547733423343982">"Vis hjemmeadresse"</string>
+    <string name="map_work" msgid="1360474076921878088">"Vis arbejdsadresse"</string>
+    <string name="map_other" msgid="3817820803587012641">"Vis adresse"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Se adressen for <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chat ved hjælp af AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chat ved hjælp af Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chat ved hjælp af Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chat ved hjælp af Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chat ved hjælp af QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chat ved hjælp af Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chat ved hjælp af ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chat ved hjælp af Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"slet"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Vis flere navnefelter"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Skjul navnefelter"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Vis flere felter med fonetiske navne"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Skjul fonetiske navnefelter"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Udvid"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Skjul"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Udvidet"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Skjult"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Alle kontaktpersoner"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Stjernemarkerede"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Tilpas"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontaktperson"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Alle andre kontaktpersoner"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Alle kontaktpersoner"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Fjern synkroniseringsgruppe"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Tilføj synkroniseringsgruppe"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Flere grupper ..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Hvis du fjerner \"<xliff:g id="GROUP">%s</xliff:g>\" fra synkroniseringen, fjernes alle ugrupperede kontaktpersoner fra synkroniseringen."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Gemmer indstillinger for visning…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Tilpasset visning"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Gem importerede kontaktpersoner på:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-kort"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM-kort <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d kontaktperson</item>
+      <item quantity="other">%1$d kontaktpersoner</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> kontaktperson • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontaktpersoner • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf-fil"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Der er intet at importere"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Vil du importere kontaktpersoner fra vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Vil du annullere import af <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Vil du annullere eksport af <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Import/eksport af vCard kunne ikke annulleres"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Ukendt fejl."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" kunne ikke åbnes: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Eksportfunktionen kunne ikke startes: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Der er ingen kontaktpersoner, der kan eksporteres."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Du har deaktiveret en påkrævet tilladelse."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Der opstod en fejl under eksporten: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O-fejl"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Ikke nok hukommelse. Filen kan være for stor."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formatet understøttes ikke."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> er eksporteret."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Kontaktpersonerne blev eksporteret."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontaktpersonerne blev eksporteret. Klik på underretningen for at dele kontaktpersonerne."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Tryk for at dele kontaktpersoner."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Eksport af <xliff:g id="FILENAME">%s</xliff:g> er annulleret."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Eksporterer kontaktdata"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Eksporterer kontaktoplysningerne."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Databaseoplysningerne kunne ikke hentes."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Der er ingen kontaktpersoner, der kan eksporteres."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Oprettelsen af vCard startede ikke korrekt."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Eksport ikke mulig"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontaktpersondataene blev ikke eksporteret.\nÅrsag: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importerer <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Dataene på dette vCard kunne ikke læses"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard-filen <xliff:g id="FILENAME">%s</xliff:g> er importeret"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Import af <xliff:g id="FILENAME">%s</xliff:g> blev annulleret"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> importeres om et øjeblik."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Filen importeres inden længe."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Anmodningen om import af vCard blev afvist. Prøv igen senere."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontaktpersonerne eksporteres om lidt."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Anmodningen om eksport af vCard blev afvist. Prøv igen senere."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Cachelagrer vCard(s) til lokalt midlertidigt lager. Den egentlige import starter snart."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard kunne ikke importeres."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt via NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Cachelagrer"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importerer <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Eksportér til .vcf-fil"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortér efter"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetisk navn"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Vis altid"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Skjul hvis tom"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Fornavn"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Efternavn"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Navneformat"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Fornavn først"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Efternavn først"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Konti"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Standardkonto til nye kontaktpersoner"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mine oplysninger"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Konfigurer din profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Om Kontaktpersoner"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Del foretrukne kontaktpersoner"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Del alle kontaktpersoner"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kontaktpersonerne kunne ikke deles."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Eksportér kontaktpersoner"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importér kontaktpersoner fra"</string>
+    <string name="share_error" msgid="948429331673358107">"Denne kontaktperson kan ikke deles."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Der er ingen kontaktpersoner, der kan deles."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontaktpersoner, der vises"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Viste kontaktpersoner"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Tilpas visning"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Gem"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Søg efter kontaktpersoner"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Foretrukne"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importér"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksportér"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokerede telefonnumre"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"stop søgning"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Ryd søgning"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Konto"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Brug altid ved opkald"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Ring med en note"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Indtast en note, som skal sendes ved opkald…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SEND, OG RING OP"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Build-version"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Open source-licenser"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Licensoplysninger til open source-software"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Privatlivspolitik"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Servicevilkår"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Open source-licenser"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Webadressen kunne ikke åbnes."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> er valgt"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> er ikke valgt"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Foretag videoopkald"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Slet"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipse"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min. <xliff:g id="SECONDS">%2$s</xliff:g> sek."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> t. <xliff:g id="MINUTES_1">%2$s</xliff:g> min. <xliff:g id="SECONDS">%3$s</xliff:g> sek."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Denne genvej er blevet deaktiveret"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontaktpersonen blev fjernet"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importér"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Vælg kontaktpersoner"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Der er ingen kontaktpersoner på dit SIM-kort"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontaktpersonen findes allerede på din liste over kontakter"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontaktperson på SIM-kortet blev importeret</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktpersoner på SIM-kortet blev importeret</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kontaktpersonerne på SIM-kortet kan ikke importeres"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importér fra SIM-kort"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Annuller"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatisk synkronisering er slået fra. Tryk for at slå funktionen til."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Luk"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Kontosynkronisering er slået fra. Tryk for at slå funktionen til."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Vil du slå automatisk synkronisering til?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"De ændringer, du foretager af alle apps og konti og ikke kun Google Kontaktpersoner, holdes opdateret mellem nettet og dine enheder."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Slå til"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Der er ingen forbindelse"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-kort"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Vis flere"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM-kortet blev importeret"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Importen mislykkedes"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kontaktpersonerne kunne ikke importeres fra SIM-kortet"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM-kortet importeres"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 2c0eb10..73b877a 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakte"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakte"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Kontakt ansehen"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Kontakt bearbeiten"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakte"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Kontakt hinzufügen"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direktwahl"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direktnachricht"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Verknüpfung für Kontakt auswählen"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Nummer für den Anruf auswählen"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Nummer für Nachricht auswählen"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Kontakt auswählen"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Zu Kontakt hinzufügen"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontakt auswählen"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Auswählen"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Neuen Kontakt erstellen"</string>
-    <string name="starredList" msgid="4817256136413959463">"Markiert"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Häufig"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoriten"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontaktinformationen"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Kontakt bearbeiten"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Kontakt erstellen"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Gruppe bearbeiten"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Gruppe erstellen"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Über"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Updates"</string>
     <string name="searchHint" msgid="8482945356247760701">"In Kontakten suchen"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Kontakt anzeigen"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Zu Favoriten hinzufügen"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Aus Favoriten entfernen"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Aus Favoriten entfernt"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Bearbeiten"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Löschen"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Foto ändern"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Auf Startbildschirm platzieren"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Kontakt anrufen"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"SMS an Kontakt"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Verknüpfung erstellen"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Verknüpfung aufheben"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Bearbeiten"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Löschen"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Kontakt hinzufügen"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Gruppe hinzufügen"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Kontakte entfernen"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Label umbenennen"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Label löschen"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Kontakt hinzufügen"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Kontakte auswählen"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Kontakte hinzufügen"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Aus Label entfernen"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Label erstellen"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Verknüpfung dieses Kontakts aufheben, um mehrere Kontakte zu erstellen?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Verknüpfung aufheben"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Möchtest du die vorgenommenen Änderungen speichern und die Verknüpfung dieses Kontakts aufheben, um mehrere Kontakte zu erstellen?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Speichern und Verknüpfung aufheben"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Möchtest du die vorgenommenen Änderungen speichern und diesen Kontakt mit dem ausgewählten Kontakt verknüpfen?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Speichern und verknüpfen"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Verknüpfen"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Verknüpfung entfernen"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Verknüpfen"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Verknüpfte Kontakte anzeigen"</string>
     <string name="menu_save" msgid="1727844363591825909">"Speichern"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontakte verknüpfen"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Wähle einen Kontakt aus, den du mit <xliff:g id="NAME">%s</xliff:g> verknüpfen möchtest:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Alle Kontakte anzeigen"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Vorgeschlagene Kontakte"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Alle Kontakte"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> verknüpft"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakte verknüpft"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> gelöscht"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> und <xliff:g id="NAME_1">%2$s</xliff:g> gelöscht"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… gelöscht"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Kontakte gelöscht</item>
       <item quantity="one">Kontakt gelöscht</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> Kontakte</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> Kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> Kontakte · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> Kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Von Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Von <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Klingeltonwahl"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Alle Anrufe an Mailbox"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakte aus deinen schreibgeschützten Konten können nicht gelöscht, sondern nur ausgeblendet werden."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ausblenden"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Der zu löschende Kontakt enthält Informationen aus mehreren Konten. Informationen aus schreibgeschützten Konten werden nicht gelöscht, sondern nur ausgeblendet."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Wähle für eine Verknüpfung mindestens zwei Kontakte aus."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Ausgewählte Kontakte verknüpfen?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Verknüpfen"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"An Mailbox weiterleiten"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Nicht an Mailbox weiterleiten"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Dieser Kontakt ist schreibgeschützt. Er kann nicht gelöscht, aber ausgeblendet werden."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Kontakt ausblenden"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Schreibgeschützte Konten in diesem Kontakt werden ausgeblendet, nicht gelöscht."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Diesen Kontakt löschen?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Ausgewählte Kontakte löschen?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakte aus deinen schreibgeschützten Konten können nicht gelöscht, sondern nur ausgeblendet werden."</string>
@@ -90,276 +92,442 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Wenn du diesen Kontakt löschst, werden Informationen aus mehreren Konten gelöscht."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Diesen Kontakt löschen?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Löschen"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Änderungen verwerfen"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Dieser Kontakt existiert nicht."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt zu Startbildschirm hinzugefügt."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> zu Startbildschirm hinzugefügt."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Neuen Kontakt erstellen"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Neuen Kontakt erstellen"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Firma/Organisation"</item>
-    <item msgid="7196592230748086755">"Notiz"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Auf dem Tablet sind keine Bilder verfügbar."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Auf dem Telefon sind keine Bilder verfügbar."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Auf dem Gerät sind keine Bilder verfügbar."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontaktbild"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Name des benutzerdef. Labels"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Anrufe direkt an Mailbox senden"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Foto entfernen"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Keine Kontakte"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Keine Gruppen"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Du benötigst ein Konto, um Gruppen erstellen zu können."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Keine Personen in dieser Gruppe"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Bearbeite die Gruppe, um Personen hinzuzufügen."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Kontakt wird gespeichert..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Die Kontaktliste ist leer"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Keine Kontakte mit diesem Label"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Keine Kontakte für dieses Konto"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Die Kontaktliste ist leer"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> gespeichert"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt gespeichert"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Verknüpfung der Kontakte wurde aufgehoben."</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kontaktänderungen konnten nicht gespeichert werden."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Verknüpfung des Kontakts konnte nicht aufgehoben werden."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Der Kontakt konnte nicht verknüpft werden."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Fehler beim Speichern des Kontakts."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Änderungen des Kontaktfotos konnten nicht gespeichert werden."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Gruppe gespeichert"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Gruppenänderungen konnten nicht gespeichert werden."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Kontakte mit Telefonnummern</item>
-      <item quantity="one">1 Kontakt mit Telefonnummer</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Keine sichtbaren Kontakte mit Telefonnummern"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Kontakte gefunden</item>
-      <item quantity="one">1 Kontakt gefunden</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Änderungen am Kontakt konnten nicht gespeichert werden"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Verknüpfung mit Kontakt konnte nicht aufgehoben werden"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontakt konnte nicht verknüpft werden"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Fehler beim Speichern des Kontakts"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Änderungen am Kontaktfoto konnten nicht gespeichert werden"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Label konnte nicht geladen werden"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Label gelöscht"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Label erstellt"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Label kann nicht erstellt werden"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Label aktualisiert"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Aus Label entfernt"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Zu Label hinzugefügt"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Änderungen am Label konnten nicht gespeichert werden"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Dieses Label ist bereits vorhanden"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Einige Kontakte enthalten keine E-Mail-Adresse."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Einige Kontakte enthalten keine Telefonnummer."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"E-Mail senden"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Nachricht senden"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Kontakte auswählen"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Senden"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Keine Kontakte"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Kontakte gefunden</item>
-      <item quantity="one">1 Kontakt gefunden</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Alle"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriten"</string>
-    <string name="callBack" msgid="5498224409038809224">"Rückruf"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Erneut anrufen"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Zurückrufen"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" zu den Kontakten hinzufügen?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"Kontaktbild"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> von <xliff:g id="TOTAL_NUMBER">%s</xliff:g> Kontakten"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Namen meiner Kontakte"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Für diese Aktion wurde keine App gefunden."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klicke hier, um zum vorherigen Bildschirm zurückzukehren."</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefonnummer hinzufügen"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"E-Mail-Adresse hinzufügen"</string>
     <string name="missing_app" msgid="1466111003546611387">"Für diese Aktion wurde keine App gefunden."</string>
     <string name="menu_share" msgid="943789700636542260">"Teilen"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Zu Kontakten hinzufügen"</string>
-    <string name="share_via" msgid="563121028023030093">"Kontakt teilen über"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Konto für Gruppenerstellung"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Hinzufügen"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Kontakte teilen über</item>
+      <item quantity="one">Kontakt teilen über</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Konto auswählen"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Label erstellen"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Label umbenennen"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Labelname"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Labelname"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Sprachchat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videochat"</string>
-    <string name="connections" msgid="8098440723172028350">"Verbindungen"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Verbindung hinzufügen"</string>
-    <string name="recent" msgid="2659189233141493004">"Neueste Nachrichten"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Neueste Updates"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-Kontakt"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> Kontakt"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-Konto"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"In dieser App nicht bearbeitbar"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Auf diesem Gerät nicht bearbeitbar"</string>
     <string name="take_photo" msgid="7496128293167402354">"Foto machen"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Neues Foto aufnehmen"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Foto auswählen"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Neues Foto auswählen"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktliste wird aktualisiert..."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Suche..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Auswahl anzeigen"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Alle anzeigen"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Alle auswählen"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Auswahl für alle aufheben"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Hinzufügen"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Unternehmen hinzufügen"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Gruppenname"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Ändern"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Hauptfoto"</string>
-    <string name="description_star" msgid="2605854427360036550">"Favorit"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Kontakt bearbeiten"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Aktuellen Kontakt mit ausgewähltem Kontakt verknüpfen?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Label"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Abbrechen"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Zurück"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"Schließen"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Zur Bearbeitung des ausgewählten Kontakts wechseln? Die bisher eingegebenen Informationen werden kopiert."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"In meine Kontakte kopieren"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Zu meinen Kontakten hinzufügen"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Verzeichnis <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Benutzerdefiniert"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Einstellungen"</string>
     <string name="menu_settings" msgid="377929915873428211">"Einstellungen"</string>
     <string name="menu_help" msgid="1680178646764069976">"Hilfe &amp; Feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Anzeigeoptionen"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Zu Kontakten hinzufügen"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Zu Kontakt hinzufügen"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Schließen"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Inklusive Jahr"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Wird geladen…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Neuen Kontakt erstellen"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Konto hinzufügen"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Kontakte importieren"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Neue Gruppe erstellen"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Neue Gruppe erstellen"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> Gruppen</item>
-      <item quantity="one">1 Gruppe</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Soll die Gruppe \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" wirklich gelöscht werden? Die Kontakte selbst werden nicht gelöscht."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> Personen von <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> Person von <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> Personen</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> Person</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importieren"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Neu erstellen…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Soll das Label \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" gelöscht werden? (Die Kontakte selbst werden nicht gelöscht.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Gib einen Namen für den Kontakt ein, bevor du ihn mit einem anderen Kontakt verknüpfst."</string>
     <string name="copy_text" msgid="3257145021583508761">"In Zwischenablage kopieren"</string>
     <string name="set_default" msgid="4417505153468300351">"Als Standard festlegen"</string>
     <string name="clear_default" msgid="7193185801596678067">"Als Standard löschen"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Text kopiert"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Sollen die Änderungen verworfen werden?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Verwerfen"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Mein Profil einrichten"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Namen der Person eingeben"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Gruppenname"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Änderungen verwerfen?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Verwerfen"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Abbrechen"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Anpassungen verwerfen?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Kontakte suchen"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Kontakte entfernen"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mein lokales Profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mein <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-Profil"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Alle Kontakte werden angezeigt."</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Die App \"Kontakte\" funktioniert am besten mit einem Google-Konto.\n\n• Du kannst über alle Webbrowser darauf zugreifen.\n• Sichere und schütze deine Kontakte."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Synchronisierung mit einem Online-Service: Deine Kontakte sind dann auch sicher, wenn du dein Telefon verlierst."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Konto hinzufügen"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Dein neuer Kontakt wird nicht gesichert. Konto für die Online-Sicherung von Kontakten hinzufügen?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Nimm dir kurz Zeit und weise ein Konto zu, mit dem deine Kontakte in Google gesichert werden."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Neue Kontakte werden in <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> gespeichert."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Wähle ein Standardkonto für neue Kontakte:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Kontakt hinzufügen"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Neuer Kontakt"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontakt bearbeiten"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Lokal speichern"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Schreibgeschützt"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Kontakt für Bearbeitung auswählen"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Verknüpfte Kontakte"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Hinzufügen"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Verknüpfung aufheben"</string>
     <string name="add_account" msgid="8201790677994503186">"Konto hinzufügen"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Neues Konto hinzufügen"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Datenbankdateien exportieren"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"Neuen Kontakt hinzufügen"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Neuen Kontakt erstellen"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Mehr anzeigen"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Weniger anzeigen"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Alle anzeigen"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Letzte"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Info"</string>
-    <string name="send_message" msgid="8938418965550543196">"Nachricht senden"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Persönliche Kopie wird erstellt…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Gestern"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Persönliche Kopie wird erstellt..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Morgen"</string>
     <string name="today" msgid="8041090779381781781">"Heute"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Heute um <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Morgen um <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Unbenannter Termin)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Festlegen"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Chat"</string>
     <string name="header_organization_entry" msgid="8515394955666265406">"Organisation"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Nickname"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Spitzname"</string>
     <string name="header_note_entry" msgid="4320190426480612344">"Notiz"</string>
     <string name="header_website_entry" msgid="1411467850000824745">"Website"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Termin"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Beziehung"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Konto"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Name"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-Mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Zum Maximieren des Kontakteditors klicken"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Zum Minimieren des Kontakteditors klicken"</string>
     <string name="content_description_directions" msgid="2686791825798189335">"Wegbeschreibung"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Letzte SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Zum Antworten klicken."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Letzte SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Zum Antworten klicken."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"Eingehend"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"Ausgehend"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"Verpasst"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Letzter Anruf. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Für Rückruf klicken."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Letzter Anruf. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Für Rückruf klicken."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Ich: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funktioniert besser, wenn du die Hangouts-ID der Person in das E-Mail- oder Telefonfeld eingibst."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Weitere Felder"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Foto ändern"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Fehler beim Öffnen des Editors."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Speichern in"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Wird derzeit in <xliff:g id="ACCOUNT_NAME">%s</xliff:g> gespeichert. Tippe doppelt, um ein anderes Konto auszuwählen."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Verknüpfte Kontakte (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Verknüpfter Kontakt</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> verknüpfte Kontakte"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Weitere Felder"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Kontaktbild ändern"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Kontaktbild hinzufügen"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontaktbild"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Fehler beim Öffnen des Editors."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Speichern in"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontaktinfo von <xliff:g id="ACCOUNT">%s</xliff:g> kann nicht bearbeitet werden"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"Kontakte verknüpfen"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"Abbrechen"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mögliche Duplikate</item>
-      <item quantity="one">1 mögliches Duplikat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> verknüpfte Kontakte</item>
-      <item quantity="one">1 verknüpfter Kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Dieser Kontakt"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mögliche Duplikate"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Bei diesen Kontakten könnte es sich um dieselbe Person handeln. Du kannst sie zu einem einzigen Kontakt verknüpfen."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Verknüpfte Kontakte"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Aus meinen Konten"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Foto aufnehmen"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Alle Fotos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Foto auswählen"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Von <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> löschen"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> löschen"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> löschen"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto von <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>nicht ausgewählt"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto von <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>ausgewählt"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto aus unbekanntem Konto nicht ausgewählt"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto aus unbekanntem Konto ausgewählt"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Die Kontaktliste wird an die geänderte Sprache angepasst.\n\nBitte warten..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Nummer hinzufügen"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Nummer blockieren"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Nummer hinzufügen oder in Kontakten suchen"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Blockierung von <xliff:g id="NUMBER">%1$s</xliff:g> aufheben?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"BLOCKIERUNG AUFHEBEN"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> blockieren?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOCKIEREN"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blockiert"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Blockierung von <xliff:g id="NUMBER">%1$s</xliff:g> aufgehoben"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ist ungültig."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Anrufblockierung vorübergehend aus"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Die Anrufblockierung wurde deaktiviert, weil du innerhalb der letzten 48 Stunden mit diesem Telefon den Notruf gewählt hast. Nach Ablauf dieser 48-Stunden-Frist wird die Blockierung automatisch wieder aktiviert."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importieren"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Nummern anzeigen"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Nummer hinzufügen"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Anrufblockierung für 48 Stunden deaktiviert"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Deaktiviert, da ein Notruf getätigt wurde."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"Rückgängig"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ist bereits blockiert."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Blockierung der Nummer aufheben"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Kontaktdetails für <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import fehlgeschlagen"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Nummern importieren"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktivieren"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Vorschläge"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Neu"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Navigationsleiste öffnen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Navigationsleiste schließen"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Label \"<xliff:g id="LABEL_NAME">%s</xliff:g>\""</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Label"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Konten"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Verlauf zusammen anzeigen"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Termine und Nachrichten"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Termine"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Nachrichten"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Vorschläge"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"So sind deine Kontakte immer organisiert und übersichtlich"</string>
+    <string name="undo" msgid="1425165101664071422">"Rückgängig machen"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> anrufen"</string>
+    <string name="call_home" msgid="1990519474420545392">"Anruf (privat)"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Anruf (mobil)"</string>
+    <string name="call_work" msgid="5328785911463744028">"Anruf (geschäftl.)"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Fax (geschäftlich) anrufen"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Fax (privat) anrufen"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Anruf (Pager)"</string>
+    <string name="call_other" msgid="8563753966926932052">"Anruf"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Rückrufnummer anrufen"</string>
+    <string name="call_car" msgid="3280537320306436445">"Auto anrufen"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Anruf (Firmenhauptnummer)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN-Nummer anrufen"</string>
+    <string name="call_main" msgid="6082900571803441339">"Hauptnummer anrufen"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Anruf an Fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Anruf (Funktelefon)"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Telexnummer anrufen"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD anrufen"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Anruf Handy (geschäftl.)"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Anruf Pager (geschäftl.)"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> anrufen"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Anruf (MMS)"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Anruf)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"SMS an <xliff:g id="CUSTOM_LABEL">%s</xliff:g> senden"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS (privat)"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Text (mobil)"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS (geschäftl.)"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS an Fax (geschäftl.)"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS an Fax (privat)"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Text-Pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS an"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS an Rückrufnummer"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Text (Auto)"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Text (Firmenhauptnummer)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS an ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS an Hauptnummer"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"SMS an Fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Text (Funktelefon)"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS an Telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS an TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS an Handy (geschäftl.)"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS an Pager (geschäftl.)"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"SMS an <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Text (MMS)"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Nachricht)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Videoanruf starten"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Liste \"Häufig kontaktiert\" löschen?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Du löschst die Liste \"Häufig kontaktiert\" in den Apps \"Kontakte\" und \"Telefon\" und bewirkst so ein Zurücksetzen deiner Adresseinstellungen für E-Mail-Apps."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"\"Häufig kontaktiert\" wird gelöscht…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Verfügbar"</string>
+    <string name="status_away" msgid="1838861100379804730">"Abwesend"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Beschäftigt"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Sonstige"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Verzeichnis"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Verzeichnis geschäftlicher Kontakte"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Alle Kontakte"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Schnellkontakt für <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Kein Name)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Häufig kontaktiert"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Alle Kontakte mit Telefonnummern"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Arbeitsprofilkontakte"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Updates anzeigen"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Gerät"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Name"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Spitzname"</string>
+    <string name="name_given" msgid="4280790853455320619">"Vorname"</string>
+    <string name="name_family" msgid="7466985689626017037">"Nachname"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Namenpräfix"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Zweiter Vorname"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Namensuffix"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Phonetischer Name"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Vorname (phonetisch)"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonetischer zweiter Vorname"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Nachname (phonetisch)"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-Mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresse"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Chat"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Firma/Organisation"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Beziehung"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Besonderes Datum"</string>
+    <string name="sms" msgid="1756857139634224222">"SMS"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresse"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Unternehmen"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titel"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notizen"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Benutzerdefiniert"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Website"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Label"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-Mail (privat)"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-Mail (mobil)"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-Mail (geschäftl.)"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-Mail an"</string>
+    <string name="email_custom" msgid="5536404237099078802">"E-Mail an <xliff:g id="CUSTOM_LABEL">%s</xliff:g> senden"</string>
+    <string name="email" msgid="5668400997660065897">"E-Mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Straße"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Stadt"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Bundesland"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postleitzahl"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Land"</string>
+    <string name="map_home" msgid="1243547733423343982">"Privatadresse anzeigen"</string>
+    <string name="map_work" msgid="1360474076921878088">"Geschäftsadresse anzeigen"</string>
+    <string name="map_other" msgid="3817820803587012641">"Adresse anzeigen"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Adresse <xliff:g id="CUSTOM_LABEL">%s</xliff:g> anzeigen"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Über AIM chatten"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Über Windows Live chatten"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Über Yahoo! chatten"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Über Skype chatten"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Über QQ chatten"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Über Google Talk chatten"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Über ICQ chatten"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Über Jabber chatten"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"Löschen"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Weitere Namensfelder einblenden"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Namensfelder minimieren"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Weitere Felder für phonetische Namen einblenden"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Felder für phonetische Namen minimieren"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Maximieren"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Minimieren"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Maximiert"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Minimiert"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Alle Kontakte"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Markiert"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalisieren"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Alle weiteren Kontakte"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Alle Kontakte"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Synchronisierungsgruppe entfernen"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Synchronisierungsgruppe hinzufügen"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Weitere Gruppen..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Wenn \"<xliff:g id="GROUP">%s</xliff:g>\" aus der Synchronisierung entfernt wird, werden auch alle nicht gruppierten Kontakte aus der Synchronisierung entfernt."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Anzeigeoptionen werden gespeichert..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Benutzerdefinierte Ansicht"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Importierte Kontakte speichern unter:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-Karte"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM \"<xliff:g id="SIM_NAME">%1$s</xliff:g>\""</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d Kontakte</item>
+      <item quantity="one">1 Kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> Kontakte • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> Kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"VCF-Datei"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Keine Daten zum Importieren vorhanden"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Kontakte von vCard importieren?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Import von <xliff:g id="FILENAME">%s</xliff:g> abbrechen?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Export von <xliff:g id="FILENAME">%s</xliff:g> abbrechen?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard-Import/-Export nicht abgebrochen"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Unbekannter Fehler"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" konnte nicht geöffnet werden: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Exportprogramm konnte nicht gestartet werden: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Es ist kein exportierbarer Kontakt vorhanden."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Du hast eine erforderliche Berechtigung deaktiviert."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Beim Export ist ein Fehler aufgetreten: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"E/A-Fehler"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nicht genügend Speicherplatz. Die Datei ist möglicherweise zu groß."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Das Format wird nicht unterstützt."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Export von <xliff:g id="FILENAME">%s</xliff:g> abgeschlossen"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Kontakte wurden exportiert."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Das Exportieren der Kontakte ist abgeschlossen. Klicke auf die Benachrichtigung, um die Kontakte freizugeben."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Zum Teilen der Kontakte tippen."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Export von <xliff:g id="FILENAME">%s</xliff:g> abgebrochen"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kontaktdaten werden exportiert."</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Die Kontaktdaten werden gerade exportiert."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Datenbankinformationen konnten nicht abgerufen werden."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Keine Kontakte zum Exportieren vorhanden."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Das Programm zum Erstellen der vCard wurde nicht richtig gestartet."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Export nicht möglich"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Die Kontaktdaten wurden nicht exportiert.\nGrund: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> wird importiert"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Lesen der vCard-Daten nicht möglich"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Import der vCard <xliff:g id="FILENAME">%s</xliff:g> abgeschlossen"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Import von <xliff:g id="FILENAME">%s</xliff:g> abgebrochen"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> wird demnächst importiert."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Die Datei wird in Kürze importiert."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Die vCard-Importanfrage wurde abgelehnt. Bitte versuchen Sie es später erneut."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Die Kontakte werden in Kürze exportiert."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Die vCard-Exportanfrage wurde abgelehnt. Bitte versuchen Sie es später erneut."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"Kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Caching der vCard(s) in lokalen temporären Speicher wird durchgeführt. Der eigentliche Import beginnt gleich."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Importieren der vCard nicht möglich"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt erhalten per NCF"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Caching läuft..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> wird importiert: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"In VCF-Datei exportieren"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortieren nach"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Name (phonetisch)"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Immer anzeigen"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Leeres Feld ausblenden"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Vorname"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Nachname"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Namensformat"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Vorname zuerst"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nachname zuerst"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Konten"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Standardkonto für neue Kontakte"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Meine Daten"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Profil einrichten"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Über \"Kontakte\""</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Lieblingskontakte teilen"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Alle Kontakte teilen"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kontakte konnten nicht geteilt werden."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Kontakte exportieren"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Kontakte importieren von"</string>
+    <string name="share_error" msgid="948429331673358107">"Dieser Kontakt kann nicht geteilt werden."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Keine Kontakte zum Teilen vorhanden."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakte zur Ansicht"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakte zur Ansicht"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Ansicht anpassen"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Speichern"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Kontakte suchen"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoriten"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importieren"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportieren"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blockierte Nummern"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"über <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> über <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"Suche beenden"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Suche zurücksetzen"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Konto"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Diese SIM für alle Anrufe verwenden"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Mit einer Notiz anrufen"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Notiz eingeben, die beim Anrufen gesendet wird…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SENDEN &amp; ANRUFEN"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Build-Version"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Open-Source-Lizenzen"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Lizenzdetails für Open-Source-Software"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Datenschutzerklärung"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Nutzungsbedingungen"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Open-Source-Lizenzen"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Die URL konnte nicht geöffnet werden."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ausgewählt"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> nicht ausgewählt"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Videoanruf starten"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Löschen"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Auslassungszeichen"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Diese Verknüpfung wurde deaktiviert"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt wurde entfernt"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importieren"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Kontakte auswählen"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Keine Kontakte auf der SIM-Karte"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Der Kontakt ist bereits in der Kontaktliste vorhanden"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-Kontakte importiert</item>
+      <item quantity="one">1 SIM-Kontakt importiert</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Fehler beim Importieren von SIM-Kontakten"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Von SIM importieren"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Abbrechen"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Die automatische Synchronisierung ist deaktiviert. Zum Aktivieren hier tippen."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Schließen"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Die Kontensynchronisierung ist deaktiviert. Zum Aktivieren hier tippen."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Automatische Synchronisierung aktivieren?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Änderungen, die du nicht nur in Google Kontakte, sondern in allen Apps und Konten vornimmst, werden zwischen dem Web und deinen Geräten synchronisiert."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Aktivieren"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Keine Verbindung"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mehr anzeigen"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importieren der SIM-Karte abgeschlossen"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Fehler beim Importieren"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kontakte konnten nicht von SIM-Karte importiert werden"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM wird importiert"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index f433d70..945402e 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Επαφές"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Επαφές"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Προβολή επαφής"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Επεξεργασία επαφής"</string>
     <string name="contactsList" msgid="8661624236494819731">"Επαφές"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Προσθήκη επαφής"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Επαφή"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Άμεση κλήση"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Άμεσο μήνυμα"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Επιλογή μιας συντόμευσης επαφών"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Επιλογή ενός αριθμού για κλήση"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Επιλογή ενός αριθμού για μήνυμα"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Επιλογή επαφής"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Προσθήκη σε επαφή"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Επιλέξτε μια επαφή"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Επιλογή"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Δημιουργία νέας επαφής"</string>
-    <string name="starredList" msgid="4817256136413959463">"Με αστέρι"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Συχνές"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Αγαπ."</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Λεπτομέρειες επαφής"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Επεξεργασία επαφής"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Δημιουργία επαφής"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Επεξεργασία ομάδας"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Δημιουργία ομάδας"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Σχετικά με"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Ενημερώσεις"</string>
     <string name="searchHint" msgid="8482945356247760701">"Αναζήτηση επαφών"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Προβολή επαφής"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Προσθήκη στα αγαπημένα"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Κατάργηση από τα αγαπημένα"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Καταργήθηκε από τα αγαπημένα"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Επεξεργασία"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Διαγραφή"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Αλλαγή φωτογραφίας"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Τοποθέτηση στην αρχική οθόνη"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Κλήση επαφής"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Αποστολή μηνύματος κειμένου σε επαφή"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Δημιουργία συντόμευσης"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Αποσύνδεση"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Επεξεργασία"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Διαγραφή"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Προσθήκη επαφής"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Προσθήκη ομάδας"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Κατάργηση επαφών"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Μετονομασία ετικέτας"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Διαγραφή ετικέτας"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Προσθήκη επαφής"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Επιλογή επαφών"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Προσθήκη επαφών"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Κατάργηση από ετικέτα"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Δημιουργία ετικέτας"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Θέλετε να αναιρέσετε τη σύνδεση αυτής της επαφής για να μετατραπεί σε πολλαπλές επαφές;"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Αναίρεση σύνδεσης"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Θέλετε να αποθηκεύσετε τις αλλαγές που έχετε πραγματοποιήσει ήδη και να αναιρέσετε τη σύνδεση αυτής της επαφής για να μετατραπεί σε πολλαπλές επαφές;"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Αποθήκευση και αναίρεση σύνδεσης"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Θα θέλατε να αποθηκεύσετε τις αλλαγές που έχετε πραγματοποιήσει ήδη και να κάνετε σύνδεση με την επιλεγμένη επαφή;"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Αποθήκευση και σύνδεση"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Σύνδεση"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Αποσύνδεση"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Σύνδεση"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Προβολή συνδεδεμένων επαφών"</string>
     <string name="menu_save" msgid="1727844363591825909">"Aποθήκευση"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Σύνδεση επαφών"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Επιλέξτε την επαφή που θέλετε να συνδέσετε με τον χρήστη <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Εμφάνιση όλων των επαφών"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Προτεινόμενες επαφές"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Όλες οι επαφές"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> συνδέθηκε"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Οι επαφές συνδέθηκαν"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Η επαφή <xliff:g id="NAME">%1$s</xliff:g> διαγράφηκε"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Οι <xliff:g id="NAME_0">%1$s</xliff:g> και <xliff:g id="NAME_1">%2$s</xliff:g> διαγράφηκαν"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Οι επαφές <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… διαγράφηκαν"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other"> επαφές διαγράφηκαν</item>
       <item quantity="one"> επαφή διαγράφηκε</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> επαφές</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> επαφή</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> επαφές · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> επαφή · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Από την Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Από: <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Ήχος κλήσης"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Όλες οι κλήσ. στον τηλεφωνητή"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Δεν είναι δυνατή η διαγραφή επαφών από λογαριασμούς που προορίζονται μόνο για ανάγνωση, αλλά είναι δυνατή η απόκρυψή τους."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Απόκρυψη"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Η επαφή που πρόκειται να διαγραφεί περιέχει στοιχεία από πολλαπλούς λογαριασμούς. Τα στοιχεία που προέρχονται από λογαριασμούς που προορίζονται μόνο για ανάγνωση θα είναι κρυφά, αλλά δεν θα διαγραφούν."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Θα πρέπει να έχουν επιλεγεί τουλάχιστον δύο επαφές για να πραγματοποιηθεί μια σύνδεση."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Θέλετε να συνδέσετε τις επιλεγμένες επαφές;"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Σύνδεση"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Δρομολόγηση σε αυτ. τηλεφωνητή"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Κατάργηση δρομ. σε τηλεφωνητή"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Αυτή η επαφή είναι μόνο για ανάγνωση. Δεν μπορεί να διαγραφεί, αλλά μπορείτε να την αποκρύψετε."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Απόκρυψη επαφής"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Οι λογαριασμοί μόνο για ανάγνωση σε αυτήν την επαφή θα είναι κρυφοί, δεν θα διαγραφούν."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Να διαγραφεί αυτή η επαφή;"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Να διαγραφούν οι επιλεγμένες επαφές;"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Δεν είναι δυνατή η διαγραφή επαφών από λογαριασμούς που προορίζονται μόνο για ανάγνωση, αλλά είναι δυνατή η απόκρυψή τους."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Με τη διαγραφή αυτής της επαφής, θα διαγραφούν στοιχεία από πολλαπλούς λογαριασμούς."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Να διαγραφεί αυτή η επαφή;"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Διαγραφή"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Απόρριψη αλλαγών"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Η επαφή δεν υπάρχει."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Η επαφή προστέθηκε στην Αρχική οθόνη."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Ο/Η <xliff:g id="NAME">%s</xliff:g> προστέθηκε στην Αρχική οθόνη."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Δημιουργία νέας επαφής"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Δημιουργία νέας επαφής"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Εταιρεία"</item>
-    <item msgid="7196592230748086755">"Σημείωση"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Δεν υπάρχουν διαθέσιμες εικόνες στο tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Δεν υπάρχουν διαθέσιμες εικόνες στο τηλέφωνο."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Δεν υπάρχουν διαθέσιμες εικόνες στη συσκευή."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Φωτογραφία επαφής"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Προσαρμοσμένο όνομα ετικέτας"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Αποστολή κλήσεων απευθείας στον αυτόματο τηλεφωνητή"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Κατάργηση εικόνας"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Δεν υπάρχουν επαφές"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Δεν υπάρχουν ομάδες."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Για να δημιουργήσετε ομάδες πρέπει να έχετε έναν λογαριασμό."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Δεν υπάρχουν άτομα σε αυτήν την ομάδα."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Αν θέλετε να προσθέσετε άτομα, επεξεργαστείτε την ομάδα."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Αποθήκευση επαφής…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Η λίστα επαφών σας είναι άδεια"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Δεν υπάρχουν επαφές με αυτήν την εκτικέτα"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Δεν υπάρχουν επαφές σε αυτόν το λογαριασμό"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Η λίστα επαφών σας είναι άδεια"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Η επαφή \"<xliff:g id="DISPLAY_NAME">%s</xliff:g>\" αποθηκεύτηκε"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Η επαφή αποθηκεύτηκε"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Οι επαφές αποσυνδέθηκαν"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Δεν ήταν δυνατή η αποθήκευση των αλλαγών που πραγματοποιήθηκαν στις επαφές."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Δεν ήταν δυνατή η αποσύνδεση επαφής."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Δεν ήταν δυνατή η σύνδεση της επαφής."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Σφάλμα κατά την αποθήκευση επαφής."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Δεν ήταν δυνατή η αποθήκευση των αλλαγών που πραγματοποιήθηκαν στη φωτογραφία της επαφής."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Η ομάδα αποθηκεύτηκε."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Δεν ήταν δυνατή η αποθήκευση των αλλαγών που πραγματοποιήθηκαν στην ομάδα."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> επαφές με αριθμό τηλεφώνου</item>
-      <item quantity="one">1 επαφή με αριθμό τηλεφώνου</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Δεν υπάρχουν επαφές με αριθμούς τηλεφώνου"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">Βρέθηκαν <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">Βρέθηκε 1</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Δεν ήταν δυνατή η αποθήκευση των αλλαγών που πραγματοποιήθηκαν στην επαφή"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Δεν ήταν δυνατή η αποσύνδεση επαφής"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Δεν ήταν δυνατή η σύνδεση της επαφής"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Σφάλμα κατά την αποθήκευση της επαφής"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Δεν ήταν δυνατή η αποθήκευση των αλλαγών που πραγματοποιήθηκαν στη φωτογραφία της επαφής"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Η φόρτωση ετικέτας απέτυχε"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Η ετικέτα διαγράφηκε"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Η ετικέτα δημιουργήθηκε"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Δεν είναι δυνατή η δημιουργία ετικέτας"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Η ετικέτα ενημερώθηκε"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Καταργήθηκε από ετικέτα"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Προστέθηκε στην ετικέτα"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Δεν ήταν δυνατή η αποθήκευση των αλλαγών ετικέτας"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Η ετικέτα υπάρχει ήδη"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Ορισμένες επαφές δεν έχουν δ/νση ηλ. ταχυδρομείου."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Ορισμένες επαφές δεν έχουν αριθμούς τηλεφώνου."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Αποστολή μηνύματος ηλ. ταχυδρ."</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Αποστολή μηνύματος"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Επιλογή επαφών"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Αποστολή"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Δεν υπάρχουν επαφές"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">Βρέθηκαν <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">Βρέθηκε 1</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Όλες"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Αγαπημένα"</string>
-    <string name="callBack" msgid="5498224409038809224">"Επανάκληση"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Επανάληψη κλήσης"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Επιστροφή κλήσης"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Προσθήκη του \"<xliff:g id="EMAIL">%s</xliff:g>\" στις επαφές?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"φωτογραφία επαφής"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"συν"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> από <xliff:g id="TOTAL_NUMBER">%s</xliff:g> επαφές"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Ονόματα των επαφών σας"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Δεν βρέθηκε εφαρμογή για τη διαχείριση αυτής της ενέργειας."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Κάντε κλικ για να επιστρέψετε στην προηγούμενη οθόνη"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Προσθήκη αριθμού τηλεφώνου"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Προσθήκη email"</string>
     <string name="missing_app" msgid="1466111003546611387">"Δεν βρέθηκε εφαρμογή για τη διαχείριση αυτής της ενέργειας."</string>
     <string name="menu_share" msgid="943789700636542260">"Κοινοποίηση"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Προσθήκη στις επαφές"</string>
-    <string name="share_via" msgid="563121028023030093">"Κοινοποίηση μέσω"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Δημιουργία ομάδας στο λογαριασμό"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Προσθήκη"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Κοινοποίηση επαφών μέσω</item>
+      <item quantity="one">Κοινοποίηση επαφής μέσω</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Επιλογή λογαριασμού"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Δημιουργία ετικέτας"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Μετονομασία ετικέτας"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Όνομα ετικέτας"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Όνομα ετικέτας"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Φωνητική συνομιλία"</string>
     <string name="video_chat" msgid="1872255818640336072">"Συζήτηση μέσω βίντεο"</string>
-    <string name="connections" msgid="8098440723172028350">"Συνδέσεις"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Προσθ. σύνδεσης"</string>
-    <string name="recent" msgid="2659189233141493004">"Πρόσφατες"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Πρόσφατες ενημερώσεις"</string>
     <string name="account_type_format" msgid="718948015590343010">"Επαφή <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Λογαριασμός <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Αδυναμία επεξεργασ. από αυτήν την εφαρμ."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Αδυναμία επεξεργασίας στη συσκευή."</string>
     <string name="take_photo" msgid="7496128293167402354">"Λήψη φωτογραφίας"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Λήψη νέας φωτογραφίας"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Επιλογή φωτογραφίας"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Επιλογή νέας φωτογραφίας"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Γίνεται ενημέρωση της λίστας επαφών."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Αναζήτηση…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Εμφάνιση επιλεγμένων"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Εμφάνιση όλων"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Επιλογή όλων"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Αποεπιλογή όλων"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Προσθήκη νέου"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Προσθήκη οργανισμού"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Ημερομηνία"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Όν. ομάδ."</string>
-    <string name="change_photo" msgid="8530597935483526383">"Αλλαγή"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Κύρια φωτογραφία"</string>
-    <string name="description_star" msgid="2605854427360036550">"αγαπημένο"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Επεξεργασία"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Να γίνει σύνδεση της τρέχουσας επαφής με την επιλεγμένη επαφή;"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Ετικέτα"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Ακύρωση"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Πίσω"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"κλείσιμο"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Να γίνει μετάβαση σε επεξεργασία της επιλεγμένης επαφής; Θα γίνει αντιγραφή των στοιχείων που έχετε εισαγάγει μέχρι τώρα."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Αντιγραφή στις Επαφές μου"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Προσθήκη στις Επαφές μου"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Κατάλογος <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Προσαρμοσμένη"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Ρυθμίσεις"</string>
     <string name="menu_settings" msgid="377929915873428211">"Ρυθμίσεις"</string>
     <string name="menu_help" msgid="1680178646764069976">"Βοήθεια και σχόλια"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Επιλογές προβολής"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Αριθμός τηλεφώνου"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Προσθήκη στις επαφές"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Προσθ.σε επαφή"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Κλείσιμο"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Συμπερίληψη έτους"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Επαφή"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Φόρτωση…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Δημιουργία νέας επαφής"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Προσθήκη λογαριασμού"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Εισαγωγή επαφών"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Δημιουργία νέας ομάδας"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Δημιουργία νέας ομάδας"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ομάδες</item>
-      <item quantity="one">1 ομάδα</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Να διαγραφεί η ομάδα \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"; (Οι επαφές δεν θα διαγραφούν.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> άτομα από <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> άτομο από <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> άτομα</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> άτομο</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Εισαγωγή"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Δημιουργία νέας…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Διαγραφή της ετικέτας \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"; (Οι ίδιες οι επαφές δεν θα διαγραφούν)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Πληκτρολογήστε το όνομα της επαφής προτού τη συνδέσετε με κάποια άλλη."</string>
     <string name="copy_text" msgid="3257145021583508761">"Αντιγραφή στο πρόχειρο"</string>
     <string name="set_default" msgid="4417505153468300351">"Ορισμός ως προεπιλογή"</string>
     <string name="clear_default" msgid="7193185801596678067">"Εκκαθάριση προεπιλεγμένων"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Το κείμενο αντιγράφηκε"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Να απορριφθούν οι αλλαγές σας;"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Απόρριψη"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Ρύθμιση του προφίλ μου"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Πληκτρολογήστε το όνομα του ατόμου"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Όνομα ομάδας"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Να απορριφθούν οι αλλαγές;"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Απόρριψη"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Ακύρωση"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Απόρριψη προσαρμογών;"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Αναζήτηση επαφών"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Κατάργηση επαφών"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Τοπικό προφίλ"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Προφίλ μου <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Εμφάνιση όλων των επαφών"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Οι Επαφές λειτουργούν καλύτερα με έναν Λογαριασμό Google.\n\n• Πρόσβαση από οποιοδήποτε πρόγραμμα περιήγησης.\n• Δημιουργία αντιγράφων ασφαλείας των επαφών σας με ασφάλεια."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Διατηρήστε τις επαφές σας ασφαλείς ακόμα και αν χάσετε το τηλέφωνό σας: συγχρονισμός με άλλη συσκευή στο διαδίκτυο."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Προσθήκη λογαριασμού"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Δεν θα δημιουργηθεί αντίγραφο ασφαλείας για τη νέα επαφή σας. Θέλετε να προσθέσετε ένα λογαριασμό που δημιουργεί αντίγραφα ασφαλείας επαφών στο διαδίκτυο;"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Αφιερώστε λίγο χρόνο για να προσθέσετε έναν λογαριασμό μέσω του οποίου θα δημιουργήσετε αντίγραφα ασφαλείας των επαφών σας στην Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Οι νέες επαφές θα αποθηκευτούν στο λογαριασμό <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Επιλέξτε έναν προεπιλεγμένο λογαριασμό για νέες επαφές:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Προσθήκης επαφής"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Δημιουρ. νέας επαφής"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Επεξεργασία επαφής"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Αποθ. τοπικά"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Μόνο για προβολή"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Επιλέξτε επαφή προς επεξεργασία"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Συνδεδεμένες επαφές"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Προσθήκη"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Αποσύνδεση"</string>
     <string name="add_account" msgid="8201790677994503186">"Προσθήκη λογαριασμού"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Προσθήκη νέου λογαριασμού"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Εξαγωγή αρχείων βάσης δεδομένων"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"προσθήκη νέας επαφής"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Δημιουργία νέας επαφής"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Δείτε περισσότερα"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Δείτε λιγότερα"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Εμφάνιση όλων"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Πρόσφατα"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Σχετικά με"</string>
-    <string name="send_message" msgid="8938418965550543196">"Αποστολή μηνύματος"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Δημιουργία προσωπικού αντιγράφου…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Χθες"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Δημιουργία προσωπικού αντιγράφου..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Αύριο"</string>
     <string name="today" msgid="8041090779381781781">"Σήμερα"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Σήμερα στις <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Αύριο στις <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Εκδήλωση χωρίς τίτλο)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Ορισμός"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Ανταλλαγή άμεσων μηνυμάτων (IM)"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Ιστότοπος"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Συμβάν"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Σχέση"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Λογαριασμός"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Όνομα"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Διεύθυνση ηλεκτρονικού ταχυδρομείου"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Τηλέφωνο"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Φωτογραφία"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Κάντε κλικ για επέκταση της επεξεργασίας επαφών."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Κάντε κλικ για σύμπτυξη της επεξεργασίας επαφών."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"οδηγίες προς την τοποθεσία"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"πρόσφατο sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. κάντε κλικ για απάντηση"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"πρόσφατο sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. κάντε κλικ για απάντηση"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"εισερχόμενες"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"εξερχόμενες"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"αναπάντητες"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"πρόσφατη κλήση. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. κάντε κλικ για επιστροφή της κλήσης"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"πρόσφατη κλήση. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. κάντε κλικ για επιστροφή της κλήσης"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Εσείς: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Το Hangouts λειτουργεί καλύτερα όταν εισάγετε το αναγνωριστικό Hangouts του ατόμου στο πεδίο ηλεκτρονικού ταχυδρομείου ή τηλεφώνου."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Περισσότερα πεδία"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Αλλαγή φωτογραφίας"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Αποτυχία ανοίγματος προγράμματος επεξεργασίας."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Αποθήκευση σε"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Γίνεται αποθήκευση στο λογαριασμό <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Πατήστε δύο φορές για να επιλέξετε διαφορετικό λογαριασμό."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Συνδεδεμένες επαφές (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Συνδεδεμένη επαφή</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> συνδεδεμένες επαφές"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Περισσότερα πεδία"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Αλλαγή φωτογραφίας επαφής"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Προσθήκη φωτογραφίας επαφής"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Φωτογραφία επαφής"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Αποτυχία ανοίγματος προγράμματος επεξεργασίας."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Αποθήκευση σε"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Τα στοιχεία επαφής από το <xliff:g id="ACCOUNT">%s</xliff:g> δεν είναι επεξεργάσιμα"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ΣΥΝΔΕΣΗ ΕΠΑΦΩΝ"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ΑΚΥΡΩΣΗ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> πιθανά διπλότυπα</item>
-      <item quantity="one">1 πιθανό διπλότυπο</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> συνδεδεμένες επαφές</item>
-      <item quantity="one">1 συνδεδεμένη επαφή</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Αυτή η επαφή"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Πιθανά διπλότυπα"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Αυτές οι επαφές μπορεί να αντιστοιχούν στο ίδιο άτομο. Μπορείτε να τις συνδέσετε σε μία μεμονωμένη επαφή."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Συνδεδεμένες επαφές"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Από τους λογαριασμούς σας"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Λήψη φωτογραφίας"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Όλες οι φωτογραφίες"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Επιλογή φωτογραφίας"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Από <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Διαγραφή <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Διαγραφή <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Διαγραφή <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Δεν επιλέχθηκε φωτογραφία από <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Επιλέχθηκε φωτογραφία από <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Δεν επιλέχθηκε φωτογραφία από άγνωστο λογαριασμό"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Επιλέχθηκε φωτογραφία από άγνωστο λογαριασμό"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Η λίστα επαφών ενημερώνεται ώστε να αντικατοπτρίζει την αλλαγή γλώσσας.\n\nΠεριμένετε..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Προσθήκη αριθμού"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Αποκλεισμός αριθμού"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Προσθήκη αριθμού ή αναζήτηση επαφών"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Να καταργηθεί ο αποκλεισμός του αριθμού <xliff:g id="NUMBER">%1$s</xliff:g>;"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ΚΑΤΑΡΓΗΣΗ ΑΠΟΚΛΕΙΣΜΟΥ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Να αποκλειστεί ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g>;"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ΑΠΟΚΛΕΙΣΜΟΣ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> αποκλείστηκε"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Ο αποκλεισμός του αριθμού <xliff:g id="NUMBER">%1$s</xliff:g> καταργήθηκε"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> δεν είναι έγκυρος."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Προσωρινά απενεργοποιημένη φραγή κλήσεων"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Η φραγή κλήσεων έχει απενεργοποιηθεί προσωρινά επειδή επικοινωνήσατε με τις υπηρεσίες έκτακτης ανάγκης από αυτό το τηλέφωνο μέσα στις τελευταίες 48 ώρες. Θα ενεργοποιηθεί ξανά αυτόματα μόλις λήξει η περίοδος των 48 ωρών."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Εισαγωγή"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Προβολή αριθμών"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Προσθήκη αριθμού"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Η φραγή κλήσεων απενεργοποιήθηκε για 48 ώρες"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Απενεργοποιημένο επειδή πραγματοποιήθηκε κλήση έκτακτης ανάγκης."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ΑΝΑΙΡΕΣΗ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> αποκλείστηκε ήδη."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Κατάργηση αποκλεισμού αριθμού"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Στοιχεία επικοινωνίας του <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Αποτυχία εισαγωγής"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Εισαγωγή αριθμών"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Ενεργοποίηση"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Προτάσεις"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Νέο"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Άνοιγμα συρταριού πλοήγησης"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Κλείσιμο συρταριού πλοήγησης"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Ετικέτα \"<xliff:g id="LABEL_NAME">%s</xliff:g>\""</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Ετικέτες"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Λογαριασμοί"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Δείτε το ιστορικό σας μαζί"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Συμβάντα και μηνύματα"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Συμβάντα"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Μηνύματα"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Προτάσεις"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Διατηρήστε τις επαφές σας οργανωμένες και χρήσιμες"</string>
+    <string name="undo" msgid="1425165101664071422">"Αναίρεση"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Κλήση προς <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Κλήση οικίας"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Κλήση κινητής συσκευής"</string>
+    <string name="call_work" msgid="5328785911463744028">"Κλήση εργασίας"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Κλήση φαξ εργασίας"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Κλήση φαξ οικίας"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Κλήση βομβητή"</string>
+    <string name="call_other" msgid="8563753966926932052">"Κλήση"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Κλήση αριθμού επανάκλησης"</string>
+    <string name="call_car" msgid="3280537320306436445">"Κλήση τηλεφώνου αυτοκινήτου"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Κλήση κύριας εταιρικής γραμμής"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Κλήση ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Κλήση κύριου αριθμού"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Κλήση φαξ"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Κλήση πομπού"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Κλήση σε τηλέτυπο"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Κλήση σε τηλέφωνο TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Κλήση κινητού τηλεφώνου εργασίας"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Κλήση βομβητή εργασίας"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Κλήση προς <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Κλήση MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Κλήση)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Αποστολή SMS προς <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Αποστολή μηνύματος κειμένου προς οικία"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Αποστολή μηνύματος κειμένου προς κινητή συσκευή"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Αποστολή μηνύματος κειμένου προς εργασία"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Αποστολή μηνύματος κειμένου προς φαξ εργασίας"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Αποστολή μηνύματος κειμένου προς φαξ οικίας"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Αποστολή μηνύματος κειμένου προς βομβητή"</string>
+    <string name="sms_other" msgid="806127844607642331">"Αποστολή μηνύματος κειμένου"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Αποστολή μηνύματος κειμένου σε αριθμό επανάκλησης"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Αποστολή μηνύματος κειμένου προς τηλέφωνο αυτοκινήτου"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Αποστολή μηνύματος κειμένου προς κύρια εταιρική γραμμή"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Αποστολή κειμένου σε ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Αποστολή μηνύματος κειμένου προς κύριο αριθμό"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Αποστολή μηνύματος κειμένου σε φαξ"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Αποστολή μηνύματος κειμένου προς πομπό"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Αποστολή μηνύματος κειμένου σε τηλέτυπο"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Αποστολή μηνύματος κειμένου προς τηλέφωνο TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Αποστολή μηνύματος κειμένου προς κινητό τηλέφωνο εργασίας"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Αποστολή μηνύματος κειμένου προς βομβητή εργασίας"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Αποστολή μηνύματος κειμένου προς <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Αποστολή μηνύματος κειμένου ως MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Μήνυμα)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Πραγματοποίηση βιντεοκλήσης"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Διαγραφή ατόμων με συχνή επικοινωνία;"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Θα διαγράψετε τη λίστα συχνών επαφών στις εφαρμογές Επαφές και Τηλέφωνο και θα επιβάλλετε στις εφαρμογές ηλεκτρονικού ταχυδρομείου να μάθουν τις προτιμήσεις διευθύνσεών σας από την αρχή."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Διαγρ. ατόμων με συχνή επικοινωνία…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Διαθέσιμος"</string>
+    <string name="status_away" msgid="1838861100379804730">"Απουσιάζω"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Απασχολημένος"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Άλλο"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Κατάλογος"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Κατάλογος εργασίας"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Όλες οι επαφές"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Γρήγορη επαφή για <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Χωρίς όνομα)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Επαφές που έχετε συχνή επικοινωνία"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Όλες οι επαφές με αριθμούς τηλεφώνου"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Επαφές προφίλ εργασίας"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Προβολή ενημερώσεων"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Συσκευή"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Όνομα"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Ψευδώνυμο"</string>
+    <string name="name_given" msgid="4280790853455320619">"Όνομα"</string>
+    <string name="name_family" msgid="7466985689626017037">"Επώνυμο"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Πρόθεμα ονόματος"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Πατρώνυμο"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Επίθημα ονόματος"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Όνομα σε φωνητική γραφή"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Φωνητικό όνομα"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Φωνητική γραφή ονόματος πατρός"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Φωνητικό επώνυμο"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Τηλέφωνο"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Διεύθυνση ηλεκτρονικού ταχυδρομείου"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Διεύθυνση"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Ανταλ.άμεσων μην.(IM)"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Οργανισμός"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Σχέση"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Ειδική ημερομηνία"</string>
+    <string name="sms" msgid="1756857139634224222">"Μήνυμα κειμένου"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Διεύθυνση"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Εταιρεία"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Τίτλος"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Σημειώσεις"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Προσαρμοσμένο"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Ιστότοπος"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Ετικέτες"</string>
+    <string name="email_home" msgid="8573740658148184279">"Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου προς οικία"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου προς κινητή συσκευή"</string>
+    <string name="email_work" msgid="2807430017302722689">"Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου προς εργασία"</string>
+    <string name="email_other" msgid="3454004077967657109">"Μήνυμα ηλεκτρονικού ταχυδρομείου"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου προς <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Διεύθυνση ηλεκτρονικού ταχυδρομείου"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Οδός"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Πόλη"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Πολιτεία"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Ταχυδρομικός κώδικας"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Χώρα"</string>
+    <string name="map_home" msgid="1243547733423343982">"Προβολή διεύθυνσης οικίας"</string>
+    <string name="map_work" msgid="1360474076921878088">"Προβολή διεύθυνσης εργασίας"</string>
+    <string name="map_other" msgid="3817820803587012641">"Προβολή διεύθυνσης"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Προβολή διεύθυνσης <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Συζήτηση μέσω AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Συζήτηση μέσω Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Συζήτηση μέσω Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Συζήτηση μέσω Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Συζήτηση μέσω QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Συζήτηση μέσω Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Συζήτηση μέσω ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Συζήτηση μέσω Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Συζήτηση"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"διαγραφή"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Εμφάνιση περισσότερων πεδίων ονόματος"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Σύμπτυξη πεδίων ονομάτων"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Εμφάνιση περισσότερων πεδίων φωνητικού ονόματος"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Σύμπτυξη πεδίων φωνητικού ονόματος"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Ανάπτυξη"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Σύμπτυξη"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Αναπτύχθηκε"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Συμπτύχθηκε"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Όλες οι επαφές"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Με αστέρι"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Προσαρμογή"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Επαφή"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Όλες οι άλλες επαφές"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Όλες οι επαφές"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Κατάργηση ομάδας συγχρονισμού"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Προσθήκη ομάδας συγχρονισμού"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Περισσότερες ομάδες…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Η κατάργηση της ομάδας \"<xliff:g id="GROUP">%s</xliff:g>\" από τον συγχρονισμό θα καταργήσει επίσης και τις επαφές χωρίς ομαδοποίηση από τον συγχρονισμό."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Αποθήκευση επιλογών προβολής…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Προσαρμοσμένη προβολή"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Αποθήκευση επαφών που εισήχθησαν σε:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Κάρτα SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d επαφές</item>
+      <item quantity="one">1 επαφή</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> επαφές • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> επαφή • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Αρχείο .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Δεν υπάρχει τίποτα προς εισαγωγή"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Εισαγωγή επαφών από vCard;"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Να ακυρωθεί η εισαγωγή του αρχείου <xliff:g id="FILENAME">%s</xliff:g>;"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Να ακυρωθεί η εξαγωγή του αρχείου <xliff:g id="FILENAME">%s</xliff:g>;"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Αδ.ακύρ.εισαγ./εξαγ.vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Άγνωστο σφάλμα."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Δεν ήταν δυνατό το άνοιγμα του αρχείου \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Δεν ήταν δυνατή η έναρξη του εξαγωγέα: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Δεν υπάρχει επαφή με δυνατότητα εξαγωγής."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Απενεργοποιήσατε μια απαιτούμενη άδεια."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Προέκυψε κάποιο σφάλμα κατά την εξαγωγή: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Σφάλμα I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Δεν υπάρχει αρκετή μνήμη. Το αρχείο ενδέχεται να είναι πάρα πολύ μεγάλο."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Η μορφή δεν υποστηρίζεται."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Η εξαγωγή του αρχείου <xliff:g id="FILENAME">%s</xliff:g> ολοκληρώθηκε."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Ολοκλήρωση εξαγωγής επαφών."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Ολοκληρώθηκε η εξαγωγή των επαφών. Κάντε κλικ στην ειδοποίηση για να μοιραστείτε επαφές."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Πατήστε για να μοιραστείτε επαφές."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Η εξαγωγή του αρχείου <xliff:g id="FILENAME">%s</xliff:g> ακυρώθηκε."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Εξαγωγή δεδομένων επαφών"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Γίνεται εξαγωγή των δεδομένων επαφών."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Δεν ήταν δυνατή η λήψη πληροφοριών βάσης δεδομένων."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Δεν υπάρχουν επαφές προς εξαγωγή."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Η έναρξη της vCard δεν ήταν σωστή."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Αδυναμία εξαγωγής"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Δεν έγινε εξαγωγή των δεδομένων επαφής.\nΑιτία: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Εισαγωγή <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Αδύν. ανάγν. δεδομ. vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Η εισαγωγή vCard ολοκληρώθηκε <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Η εισαγωγή του αρχείου <xliff:g id="FILENAME">%s</xliff:g> ακυρώθηκε"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Η <xliff:g id="FILENAME">%s</xliff:g> θα εισαχθεί σύντομα."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Η εισαγωγή του αρχείου θα γίνει σύντομα."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Το αίτημα εισαγωγής vCard απορρίφθηκε. Δοκιμάστε ξανά αργότερα."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Σε λίγο θα ξεκινήσει η εξαγωγή επαφών."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Το αίτημα εξαγωγής vCard απορρίφθηκε. Δοκιμάστε ξανά αργότερα."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"επαφή"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Αλλαγή vCard σε τοπικό χώρο προσωρινής αποθήκευσης. Η εισαγωγή θα ξεκινήσει σύντομα."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Δεν ήταν δυνατή η εισαγωγή κάρτας vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Λήψ.επ.μέσω ΕΚΠ"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Προσωρινή αποθήκευση"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Εισαγωγή <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Εξαγωγή σε αρχείο .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Ταξινόμηση κατά"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Φωνητικό όνομα"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Να εμφανίζεται πάντα"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Απόκρυψη, εάν είναι κενό"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Όνομα"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Επώνυμο"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Μορφή ονόματος"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Πρώτα το όνομα"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Πρώτα το επώνυμο"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Λογαριασμοί"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Προεπιλεγμένος λογαριασμός για νέες επαφές"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Τα στοιχεία μου"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Ρυθμίστε το προφίλ σας"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Σχετικά με τις Επαφές"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Κοινοποίηση αγαπημένων επαφών"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Κοινή χρήση όλων των επαφών"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Αποτυχία κοινής χρήσης επαφών."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Εξαγωγή επαφών"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Εισαγωγή επαφών από"</string>
+    <string name="share_error" msgid="948429331673358107">"Δεν είναι δυνατή η κοινή χρήση αυτής της επαφής."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Δεν υπάρχουν επαφές για κοινοποίηση."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Επαφές για εμφάνιση"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Επαφές για προβολή"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Προσαρμογή προβολής"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Αποθήκευση"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Αναζήτηση στις επαφές"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Αγαπ."</string>
+    <string name="menu_import" msgid="6107961135813836467">"Εισαγωγή"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Εξαγωγή"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Αποκλεισμένοι αριθμοί"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"μέσω <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> μέσω <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"τέλος αναζήτησης"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Διαγραφή αναζητήσεων"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Λογαριασμός"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Χρήση πάντα για κλήσεις"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Κλήση με σημείωση"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Πληκτρολογήστε μια σημείωση για αποστολή με την κλήση…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ΑΠΟΣΤΟΛΗ ΚΑΙ ΚΛΗΣΗ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Έκδοση build"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Άδειες λογισμικού ανοικτού κώδικα"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Λεπτομέρειες άδειας λογισμικού ανοικτού κώδικα"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Πολιτική απορρήτου"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Όροι παροχής υπηρεσιών"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Άδειες λογισμικού ανοικτού κώδικα"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Αποτυχία ανοίγματος url."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ελέγχθηκε"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> δεν ελέγχθηκε"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Πραγματοποίηση βιντεοκλήσης"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Πλήκτρο Delete"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Αποσιωπητικά"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> δ."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> λ <xliff:g id="SECONDS">%2$s</xliff:g> δ."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ώ. <xliff:g id="MINUTES_1">%2$s</xliff:g> λ. <xliff:g id="SECONDS">%3$s</xliff:g> δ."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Η συντόμευση απενεργοποιήθηκε"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Η επαφή καταργήθηκε"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Εισαγωγή"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Επιλογή επαφών"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Δεν υπάρχουν επαφές στην κάρτα SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Η επαφή υπάρχει ήδη στη λίστα σας"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">Έγινε εισαγωγή <xliff:g id="COUNT">%d</xliff:g> επαφών από τη SIM</item>
+      <item quantity="one">Έγινε εισαγωγή 1 επαφής από τη SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Απέτυχε η εισαγωγή των επαφών από τη SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Εισαγωγή από SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Ακύρωση"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Ο αυτόματος συγχρονισμός είναι ανενεργός. Πατήστε για να τον ενεργοποιήσετε."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Παράβλεψη"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Ο συγχρονισμός λογαριασμού είναι ανενεργός. Πατήστε για να τον ενεργοποιήσετε."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Ενεργοποίηση αυτόματου συγχρονισμού;"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Θα γίνει συγχρονισμός όλων των αλλαγών που πραγματοποιείτε σε όλες τις εφαρμογές και τους λογαριασμούς, όχι μόνο στις Επαφές Google, τόσο στον ιστό όσο και στις συσκευές σας."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Ενεργοποίηση"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Δεν υπάρχει σύνδεση"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Εμφάνιση περισσότερων"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Ολοκληρώθηκε εισαγωγή από κάρτα SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Αποτυχία εισαγωγής"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Δεν ήταν δυνατή η εισαγωγή επαφών από την κάρτα SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Εισαγωγή από SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 9145fc4..c4c7131 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contacts"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contacts"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"View contact"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Edit Contact"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Add contact"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direct dial"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direct message"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Choose a contact short cut"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Choose a number to call"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Choose a number to message"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Choose contact"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Add to contact"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Choose a contact"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Select"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Create new contact"</string>
-    <string name="starredList" msgid="4817256136413959463">"Starred"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frequent"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favourites"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Contact details"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Edit contact"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Create contact"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Edit group"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Create group"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"About"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Updates"</string>
     <string name="searchHint" msgid="8482945356247760701">"Search contacts"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"View contact"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Add to favourites"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Remove from favourites"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Removed from favourites"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Edit"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Delete"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Change photo"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Place on Home screen"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Call contact"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Text contact"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Create shortcut"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Unlink"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Edit"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Delete"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Add Contact"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Add Group"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Remove contacts"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Rename label"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Delete label"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Add contact"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Select contacts"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Add contacts"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Remove from label"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Create label"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Unlink this contact into multiple contacts?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Unlink"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Would you like to save the changes that you already made and unlink this contact into multiple contacts?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Save and Unlink"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Would you like to save the changes that you already made and link with the contact selected?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Save and Link"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Linking"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Unlinking"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Link"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"View linked contacts"</string>
     <string name="menu_save" msgid="1727844363591825909">"Save"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Link contacts"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Choose the contact who you want to link with <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Show all  contacts"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Suggested Contacts"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"All contacts"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> linked"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contacts linked"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> deleted"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> and <xliff:g id="NAME_1">%2$s</xliff:g> deleted"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… deleted"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Contacts deleted</item>
       <item quantity="one">Contact deleted</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contacts</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contact</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contact · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"From Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"From <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Set ringtone"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"All calls to voicemail"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Contacts from your read-only accounts cannot be deleted, but they can be hidden."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Hide"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"The contact to be deleted has details from multiple accounts. Details from read-only accounts will be hidden, not deleted."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"You need at least two contacts selected to perform a link."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Link selected contacts?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Link"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Route to voicemail"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Don\'t route to voicemail"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"This contact is read-only. It can\'t be deleted, but you can hide it."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Hide contact"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Read-only accounts in this contact will be hidden, not deleted."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Delete this contact?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Delete selected contacts?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Contacts from your read-only accounts cannot be deleted, but they can be hidden."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Deleting this contact will delete details from multiple accounts."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Delete this contact?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"delete"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Discard changes"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"The contact doesn\'t exist."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contact added to Home screen."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> added to Home screen."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Create new contact"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Create new contact"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisation"</item>
-    <item msgid="7196592230748086755">"Note"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"No pictures are available on the tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"No pictures are available on the phone."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"There are no pictures available on the device."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Contact photo"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Custom label name"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Send calls directly to voicemail"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Remove photo"</string>
-    <string name="noContacts" msgid="4955659076981974652">"No contacts"</string>
-    <string name="noGroups" msgid="8614664663561385253">"No groups."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"To create groups you need an account."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"No people in this group."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"To add some, edit the group."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Saving contact…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Your contacts list is empty"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"No contacts with this label"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"No contacts in this account"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Your contacts list is empty"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> saved"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contact saved"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contacts unlinked"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Couldn\'t save contact changes."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Couldn\'t unlink contact."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Couldn\'t link contact."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Error while saving contact."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Couldn\'t save contact photo changes."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Group saved."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Couldn\'t save group changes."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts with phone numbers</item>
-      <item quantity="one">1 contact with phone number</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No contacts with phone numbers"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> found</item>
-      <item quantity="one">1 found</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Couldn\'t save contact changes"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Couldn\'t unlink contact"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Couldn\'t link contact"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Error while saving contact"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Couldn\'t save contact photo changes"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Failed to load label"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Label deleted"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Label created"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Can\'t create label"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Label updated"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Removed from label"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Added to label"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Couldn\'t save label changes"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"That label already exists"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Some contacts do not have email addresses."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Some contacts do not have phone numbers."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Send email"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Send message"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Choose contacts"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Send"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"No contacts"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> found</item>
-      <item quantity="one">1 found</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"All"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favourites"</string>
-    <string name="callBack" msgid="5498224409038809224">"Call back"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Call again"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Return call"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Add \"<xliff:g id="EMAIL">%s</xliff:g>\" to contacts?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"contact photo"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> of <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Names of your contacts"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"No app was found to handle this action."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Click to return to previous screen"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Add phone number"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Add email"</string>
     <string name="missing_app" msgid="1466111003546611387">"No app was found to handle this action."</string>
     <string name="menu_share" msgid="943789700636542260">"Share"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Add to contacts"</string>
-    <string name="share_via" msgid="563121028023030093">"Share contact via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Create group under account"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Add"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Share contacts via</item>
+      <item quantity="one">Share contact via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Choose account"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Create label"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Rename label"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Label name"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Label name"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Voice chat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Video chat"</string>
-    <string name="connections" msgid="8098440723172028350">"Connections"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Add connection"</string>
-    <string name="recent" msgid="2659189233141493004">"Recent"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Recent updates"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> account"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Not editable from this app."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Not editable on this device"</string>
     <string name="take_photo" msgid="7496128293167402354">"Take photo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Take new photo"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Choose photo"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Select new photo"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Contact list is being updated."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Searching…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Show selected"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Show all"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Select all"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Unselect all"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Add new"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Add organisation"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Group name"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Change"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primary photo"</string>
-    <string name="description_star" msgid="2605854427360036550">"favourite"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Edit contact"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Link the current contact with the selected contact?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Label"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancel"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Back"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"close"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Switch to editing the selected contact? Information that you\'ve entered so far will be copied."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copy to My Contacts"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Add to My Contacts"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directory <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Customised"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Settings"</string>
     <string name="menu_settings" msgid="377929915873428211">"Settings"</string>
     <string name="menu_help" msgid="1680178646764069976">"Help &amp; feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Display options"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Phone number"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Add to contacts"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Add to contact"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Close"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Include year"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contact"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Loading…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Create a new contact"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Add account"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Import contacts"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Create new group"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Create new group"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> groups</item>
-      <item quantity="one">1 group</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Delete the group \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Contacts themselves will not be deleted.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> people from <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person from <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> people</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Import"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Create new…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Delete the label \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Contacts themselves will not be deleted.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Type contact name before linking with another."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copy to clipboard"</string>
     <string name="set_default" msgid="4417505153468300351">"Set default"</string>
     <string name="clear_default" msgid="7193185801596678067">"Clear default"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Text copied"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Discard your changes?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Discard"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Set up my profile"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Type person\'s name"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Group\'s name"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Discard changes?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Discard"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancel"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Discard customisations?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Search contacts"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Remove contacts"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"My local profile"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"My <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profile"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Displaying all contacts"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Contacts works better with a Google Account.\n\n• Access from any web browser.\n• Back up your contacts securely."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Keep your contacts safe even if you lose your phone: synchronise with an online service."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Add an account"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Your new contact won\'t be backed up. Add an account that backs up contacts online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Take a moment to add an account that will back up your contacts to Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"New contacts will be saved to <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Choose a default account for new contacts:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Add new contact"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Create new contact"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edit contact"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Keep locally"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"View only"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Choose contact to edit"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Linked contacts"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Add"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Unlink"</string>
     <string name="add_account" msgid="8201790677994503186">"Add account"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Add new account"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Export database files"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"add new contact"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Create new contact"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"See more"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"See less"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"See all"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recent"</string>
     <string name="about_card_title" msgid="2920942314212825637">"About"</string>
-    <string name="send_message" msgid="8938418965550543196">"Send message"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Creating a personal copy..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Yesterday"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Creating a personal copy…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Tomorrow"</string>
     <string name="today" msgid="8041090779381781781">"Today"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Today at <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Tomorrow at <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Untitled event)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Set"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Website"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Event"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relation"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Account"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Name"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Email"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Phone"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Photo"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Click to expand contact editor."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Click to collapse contact editor."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"directions to location"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"recent SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. click to respond"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"recent SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. click to respond"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"incoming"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"outgoing"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"missed"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"recent call. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. click to call back"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"recent call. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. click to call back"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"You: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts works better when you enter the person\'s Hangouts identifier into the email field or phone field."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"More fields"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Change photo"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Failed to open editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Saving to"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Currently saving to <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Double-tap to pick a different account."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Linked contacts (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Linked contact</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> linked contacts"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"More fields"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Change contact photo"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Add contact photo"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Contact photo"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Failed to open editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Saving to"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Contact info from <xliff:g id="ACCOUNT">%s</xliff:g> isn\'t editable"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LINK CONTACTS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCEL"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Possible duplicates</item>
-      <item quantity="one">1 Possible duplicate</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> linked contacts</item>
-      <item quantity="one">1 linked contact</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"This contact"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Possible duplicates"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"These contacts might be the same person. You can link them together as a single contact."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Linked contacts"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"From your accounts"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Take a photo"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"All photos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Choose photo"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"From <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Delete <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Delete <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Delete <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Photo from <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>not checked"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Photo from <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>checked"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Photo from unknown account not selected"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Photo from unknown account selected"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Contact list is being updated to reflect the change of language.\n\nPlease wait..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Block number"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Add number or search contacts"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Unblock <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"UNBLOCK"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Block <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOCK"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blocked"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> unblocked"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is invalid."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Call blocking temporarily off"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Call blocking has been disabled because you contacted emergency services from this phone within the last 48 hours. It will be automatically re-enabled once the 48 hour period expires."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Call blocking disabled for 48 hours"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Disabled because an emergency call was made."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"UNDO"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Contact details for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Import numbers"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Turn on"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Suggestions"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"New"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Open navigation drawer"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Close navigation drawer"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> label"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Labels"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Accounts"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"See your history together"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Events and messages"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Events"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Messages"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suggestions"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Keep your contacts organised and useful"</string>
+    <string name="undo" msgid="1425165101664071422">"Undo"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Call <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Call home"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Call mobile"</string>
+    <string name="call_work" msgid="5328785911463744028">"Call work"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Call work fax"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Call home fax"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Call pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Call"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Call callback"</string>
+    <string name="call_car" msgid="3280537320306436445">"Call car"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Call company main"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Call ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Call main"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Call fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Call radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Call telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Call TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Call work mobile"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Call work pager"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Call <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Call MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Call)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Text <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Text home"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Text mobile"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Text work"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Text work fax"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Text home fax"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Text pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Text"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Text callback"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Text car"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Text company main"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Text ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Text main"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Text fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Text radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Text telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Text TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Text work mobile"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Text work pager"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Text <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Text MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Message)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Make video call"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Clear frequently contacted?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"You\'ll clear the frequently contacted list in the Contacts and Phone apps, and force email apps to learn your addressing preferences from scratch."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Clearing frequently contacted…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Available"</string>
+    <string name="status_away" msgid="1838861100379804730">"Away"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Busy"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Other"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directory"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Work directory"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"All contacts"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Quick contact for <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(No name)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Frequently contacted"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"All contacts with phone numbers"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Work profile contacts"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"View updates"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Device"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Name"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nickname"</string>
+    <string name="name_given" msgid="4280790853455320619">"First name"</string>
+    <string name="name_family" msgid="7466985689626017037">"Surname"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Name prefix"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Middle name"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Name suffix"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Phonetic name"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Phonetic first name"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonetic middle name"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Phonetic surname"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Phone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Email"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Address"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisation"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relationship"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Special date"</string>
+    <string name="sms" msgid="1756857139634224222">"Text message"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Address"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Company"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Title"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notes"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Custom"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Website"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Labels"</string>
+    <string name="email_home" msgid="8573740658148184279">"Email home"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Email mobile"</string>
+    <string name="email_work" msgid="2807430017302722689">"Email work"</string>
+    <string name="email_other" msgid="3454004077967657109">"Email"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Email <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Email"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Street"</string>
+    <string name="postal_city" msgid="6597491300084895548">"City"</string>
+    <string name="postal_region" msgid="6045263193478437672">"County"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postcode"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Country"</string>
+    <string name="map_home" msgid="1243547733423343982">"View home address"</string>
+    <string name="map_work" msgid="1360474076921878088">"View work address"</string>
+    <string name="map_other" msgid="3817820803587012641">"View  address"</string>
+    <string name="map_custom" msgid="8761800628069473526">"View <xliff:g id="CUSTOM_LABEL">%s</xliff:g> address"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chat using AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chat using Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chat using Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chat using Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chat using QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chat using Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chat using ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chat using Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"delete"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Show more name fields"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Collapse name fields"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Show more phonetic name fields"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Collapse phonetic name fields"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Expand"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Collapse"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Expanded"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Collapsed"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"All contacts"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Starred"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Customise"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contact"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"All other contacts"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"All contacts"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Remove sync group"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Add sync group"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"More groups…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Removing \"<xliff:g id="GROUP">%s</xliff:g>\" from sync will also remove any ungrouped contacts from sync."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Saving display options…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Customised view"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Save imported contacts to:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM card"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contacts</item>
+      <item quantity="one">1 contact</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contacts • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contact • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf file"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nothing to import"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Import contacts from vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Cancel import of <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Cancel export of <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Couldn\'t cancel vCard import/export"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Unknown error."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Couldn\'t open \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Couldn\'t start the exporter: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"There is no exportable contact."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"You have disabled a required permission."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"An error occurred during export: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O error"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Not enough memory. The file may be too large."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"The format isn\'t supported."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Finished exporting <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Finished exporting contacts."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Finished exporting contacts. Please click the notification to share contacts."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Tap to share contacts."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exporting <xliff:g id="FILENAME">%s</xliff:g> cancelled."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exporting contact data"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Contact data is being exported."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Couldn\'t get database information."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"There are no exportable contacts."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"The vCard composer didn\'t start properly."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Couldn\'t export"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"The contact data wasn\'t exported.\nReason: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importing <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Couldn\'t read vCard data"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Finished importing vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importing <xliff:g id="FILENAME">%s</xliff:g> cancelled"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> will be imported shortly."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"The file will be imported shortly."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard import request was rejected. Try again later."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Contacts will be exported shortly."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard export request was rejected. Try again later."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contact"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Caching vCard(s) to local temporary storage. The actual import will start soon."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Couldn\'t import vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contact received over NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Caching"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importing <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Export to .vcf file"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sort by"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Phonetic name"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Always show"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Hide if empty"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"First name"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Surname"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Name format"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"First name first"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Surname first"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Accounts"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Default account for new contacts"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"My info"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Set up your profile"</string>
+    <string name="setting_about" msgid="7014388749752042863">"About Contacts"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Share favourite contacts"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Share all contacts"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Failed to share contacts."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Export contacts"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Import contacts from"</string>
+    <string name="share_error" msgid="948429331673358107">"This contact cannot be shared."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"There are no contacts to share."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contacts to display"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contacts to display"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Customise view"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Save"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Search contacts"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favourites"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Import"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Export"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blocked numbers"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"stop searching"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Clear search"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Account"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Always use this for calls"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Call with a note"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Type a note to send with the call…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SEND &amp; CALL"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Build version"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Open-source licences"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Licence details for open-source software"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Privacy Policy"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Terms of Service"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Open-source licences"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Failed to open the URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> checked"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> not checked"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Place video call"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Delete"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipsis"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> sec"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> hr <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> sec"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"This shortcut has been disabled"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Contact was removed"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Import"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Select contacts"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"No contacts on your SIM card"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Contact already exists on your list"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM contacts imported</item>
+      <item quantity="one">1 SIM contact imported</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Import from SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancel"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Auto-sync is off. Tap to turn on."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Dismiss"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Account sync is off. Tap to turn on."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Turn on auto-sync?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Changes made to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Turn on"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"No connection"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Show more"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Finished importing SIM card"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Import failed"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Couldn\'t import contacts from SIM card"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importing SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 9145fc4..c4c7131 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contacts"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contacts"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"View contact"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Edit Contact"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Add contact"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direct dial"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direct message"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Choose a contact short cut"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Choose a number to call"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Choose a number to message"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Choose contact"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Add to contact"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Choose a contact"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Select"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Create new contact"</string>
-    <string name="starredList" msgid="4817256136413959463">"Starred"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frequent"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favourites"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Contact details"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Edit contact"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Create contact"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Edit group"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Create group"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"About"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Updates"</string>
     <string name="searchHint" msgid="8482945356247760701">"Search contacts"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"View contact"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Add to favourites"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Remove from favourites"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Removed from favourites"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Edit"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Delete"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Change photo"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Place on Home screen"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Call contact"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Text contact"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Create shortcut"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Unlink"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Edit"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Delete"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Add Contact"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Add Group"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Remove contacts"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Rename label"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Delete label"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Add contact"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Select contacts"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Add contacts"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Remove from label"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Create label"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Unlink this contact into multiple contacts?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Unlink"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Would you like to save the changes that you already made and unlink this contact into multiple contacts?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Save and Unlink"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Would you like to save the changes that you already made and link with the contact selected?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Save and Link"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Linking"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Unlinking"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Link"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"View linked contacts"</string>
     <string name="menu_save" msgid="1727844363591825909">"Save"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Link contacts"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Choose the contact who you want to link with <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Show all  contacts"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Suggested Contacts"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"All contacts"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> linked"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contacts linked"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> deleted"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> and <xliff:g id="NAME_1">%2$s</xliff:g> deleted"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… deleted"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Contacts deleted</item>
       <item quantity="one">Contact deleted</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contacts</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contact</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contact · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"From Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"From <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Set ringtone"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"All calls to voicemail"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Contacts from your read-only accounts cannot be deleted, but they can be hidden."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Hide"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"The contact to be deleted has details from multiple accounts. Details from read-only accounts will be hidden, not deleted."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"You need at least two contacts selected to perform a link."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Link selected contacts?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Link"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Route to voicemail"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Don\'t route to voicemail"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"This contact is read-only. It can\'t be deleted, but you can hide it."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Hide contact"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Read-only accounts in this contact will be hidden, not deleted."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Delete this contact?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Delete selected contacts?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Contacts from your read-only accounts cannot be deleted, but they can be hidden."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Deleting this contact will delete details from multiple accounts."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Delete this contact?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"delete"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Discard changes"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"The contact doesn\'t exist."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contact added to Home screen."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> added to Home screen."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Create new contact"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Create new contact"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisation"</item>
-    <item msgid="7196592230748086755">"Note"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"No pictures are available on the tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"No pictures are available on the phone."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"There are no pictures available on the device."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Contact photo"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Custom label name"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Send calls directly to voicemail"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Remove photo"</string>
-    <string name="noContacts" msgid="4955659076981974652">"No contacts"</string>
-    <string name="noGroups" msgid="8614664663561385253">"No groups."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"To create groups you need an account."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"No people in this group."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"To add some, edit the group."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Saving contact…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Your contacts list is empty"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"No contacts with this label"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"No contacts in this account"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Your contacts list is empty"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> saved"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contact saved"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contacts unlinked"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Couldn\'t save contact changes."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Couldn\'t unlink contact."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Couldn\'t link contact."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Error while saving contact."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Couldn\'t save contact photo changes."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Group saved."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Couldn\'t save group changes."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts with phone numbers</item>
-      <item quantity="one">1 contact with phone number</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No contacts with phone numbers"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> found</item>
-      <item quantity="one">1 found</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Couldn\'t save contact changes"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Couldn\'t unlink contact"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Couldn\'t link contact"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Error while saving contact"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Couldn\'t save contact photo changes"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Failed to load label"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Label deleted"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Label created"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Can\'t create label"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Label updated"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Removed from label"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Added to label"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Couldn\'t save label changes"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"That label already exists"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Some contacts do not have email addresses."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Some contacts do not have phone numbers."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Send email"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Send message"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Choose contacts"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Send"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"No contacts"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> found</item>
-      <item quantity="one">1 found</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"All"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favourites"</string>
-    <string name="callBack" msgid="5498224409038809224">"Call back"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Call again"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Return call"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Add \"<xliff:g id="EMAIL">%s</xliff:g>\" to contacts?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"contact photo"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> of <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Names of your contacts"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"No app was found to handle this action."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Click to return to previous screen"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Add phone number"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Add email"</string>
     <string name="missing_app" msgid="1466111003546611387">"No app was found to handle this action."</string>
     <string name="menu_share" msgid="943789700636542260">"Share"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Add to contacts"</string>
-    <string name="share_via" msgid="563121028023030093">"Share contact via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Create group under account"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Add"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Share contacts via</item>
+      <item quantity="one">Share contact via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Choose account"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Create label"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Rename label"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Label name"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Label name"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Voice chat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Video chat"</string>
-    <string name="connections" msgid="8098440723172028350">"Connections"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Add connection"</string>
-    <string name="recent" msgid="2659189233141493004">"Recent"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Recent updates"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> account"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Not editable from this app."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Not editable on this device"</string>
     <string name="take_photo" msgid="7496128293167402354">"Take photo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Take new photo"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Choose photo"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Select new photo"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Contact list is being updated."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Searching…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Show selected"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Show all"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Select all"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Unselect all"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Add new"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Add organisation"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Group name"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Change"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primary photo"</string>
-    <string name="description_star" msgid="2605854427360036550">"favourite"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Edit contact"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Link the current contact with the selected contact?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Label"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancel"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Back"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"close"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Switch to editing the selected contact? Information that you\'ve entered so far will be copied."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copy to My Contacts"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Add to My Contacts"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directory <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Customised"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Settings"</string>
     <string name="menu_settings" msgid="377929915873428211">"Settings"</string>
     <string name="menu_help" msgid="1680178646764069976">"Help &amp; feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Display options"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Phone number"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Add to contacts"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Add to contact"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Close"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Include year"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contact"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Loading…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Create a new contact"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Add account"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Import contacts"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Create new group"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Create new group"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> groups</item>
-      <item quantity="one">1 group</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Delete the group \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Contacts themselves will not be deleted.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> people from <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person from <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> people</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Import"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Create new…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Delete the label \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Contacts themselves will not be deleted.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Type contact name before linking with another."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copy to clipboard"</string>
     <string name="set_default" msgid="4417505153468300351">"Set default"</string>
     <string name="clear_default" msgid="7193185801596678067">"Clear default"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Text copied"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Discard your changes?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Discard"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Set up my profile"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Type person\'s name"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Group\'s name"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Discard changes?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Discard"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancel"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Discard customisations?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Search contacts"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Remove contacts"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"My local profile"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"My <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profile"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Displaying all contacts"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Contacts works better with a Google Account.\n\n• Access from any web browser.\n• Back up your contacts securely."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Keep your contacts safe even if you lose your phone: synchronise with an online service."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Add an account"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Your new contact won\'t be backed up. Add an account that backs up contacts online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Take a moment to add an account that will back up your contacts to Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"New contacts will be saved to <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Choose a default account for new contacts:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Add new contact"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Create new contact"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edit contact"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Keep locally"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"View only"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Choose contact to edit"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Linked contacts"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Add"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Unlink"</string>
     <string name="add_account" msgid="8201790677994503186">"Add account"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Add new account"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Export database files"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"add new contact"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Create new contact"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"See more"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"See less"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"See all"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recent"</string>
     <string name="about_card_title" msgid="2920942314212825637">"About"</string>
-    <string name="send_message" msgid="8938418965550543196">"Send message"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Creating a personal copy..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Yesterday"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Creating a personal copy…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Tomorrow"</string>
     <string name="today" msgid="8041090779381781781">"Today"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Today at <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Tomorrow at <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Untitled event)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Set"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Website"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Event"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relation"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Account"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Name"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Email"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Phone"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Photo"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Click to expand contact editor."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Click to collapse contact editor."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"directions to location"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"recent SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. click to respond"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"recent SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. click to respond"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"incoming"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"outgoing"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"missed"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"recent call. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. click to call back"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"recent call. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. click to call back"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"You: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts works better when you enter the person\'s Hangouts identifier into the email field or phone field."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"More fields"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Change photo"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Failed to open editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Saving to"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Currently saving to <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Double-tap to pick a different account."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Linked contacts (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Linked contact</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> linked contacts"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"More fields"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Change contact photo"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Add contact photo"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Contact photo"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Failed to open editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Saving to"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Contact info from <xliff:g id="ACCOUNT">%s</xliff:g> isn\'t editable"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LINK CONTACTS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCEL"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Possible duplicates</item>
-      <item quantity="one">1 Possible duplicate</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> linked contacts</item>
-      <item quantity="one">1 linked contact</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"This contact"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Possible duplicates"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"These contacts might be the same person. You can link them together as a single contact."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Linked contacts"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"From your accounts"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Take a photo"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"All photos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Choose photo"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"From <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Delete <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Delete <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Delete <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Photo from <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>not checked"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Photo from <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>checked"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Photo from unknown account not selected"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Photo from unknown account selected"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Contact list is being updated to reflect the change of language.\n\nPlease wait..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Block number"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Add number or search contacts"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Unblock <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"UNBLOCK"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Block <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOCK"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blocked"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> unblocked"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is invalid."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Call blocking temporarily off"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Call blocking has been disabled because you contacted emergency services from this phone within the last 48 hours. It will be automatically re-enabled once the 48 hour period expires."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Call blocking disabled for 48 hours"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Disabled because an emergency call was made."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"UNDO"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Contact details for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Import numbers"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Turn on"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Suggestions"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"New"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Open navigation drawer"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Close navigation drawer"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> label"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Labels"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Accounts"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"See your history together"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Events and messages"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Events"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Messages"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suggestions"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Keep your contacts organised and useful"</string>
+    <string name="undo" msgid="1425165101664071422">"Undo"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Call <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Call home"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Call mobile"</string>
+    <string name="call_work" msgid="5328785911463744028">"Call work"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Call work fax"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Call home fax"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Call pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Call"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Call callback"</string>
+    <string name="call_car" msgid="3280537320306436445">"Call car"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Call company main"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Call ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Call main"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Call fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Call radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Call telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Call TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Call work mobile"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Call work pager"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Call <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Call MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Call)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Text <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Text home"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Text mobile"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Text work"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Text work fax"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Text home fax"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Text pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Text"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Text callback"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Text car"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Text company main"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Text ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Text main"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Text fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Text radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Text telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Text TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Text work mobile"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Text work pager"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Text <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Text MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Message)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Make video call"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Clear frequently contacted?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"You\'ll clear the frequently contacted list in the Contacts and Phone apps, and force email apps to learn your addressing preferences from scratch."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Clearing frequently contacted…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Available"</string>
+    <string name="status_away" msgid="1838861100379804730">"Away"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Busy"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Other"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directory"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Work directory"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"All contacts"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Quick contact for <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(No name)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Frequently contacted"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"All contacts with phone numbers"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Work profile contacts"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"View updates"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Device"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Name"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nickname"</string>
+    <string name="name_given" msgid="4280790853455320619">"First name"</string>
+    <string name="name_family" msgid="7466985689626017037">"Surname"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Name prefix"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Middle name"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Name suffix"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Phonetic name"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Phonetic first name"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonetic middle name"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Phonetic surname"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Phone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Email"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Address"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisation"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relationship"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Special date"</string>
+    <string name="sms" msgid="1756857139634224222">"Text message"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Address"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Company"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Title"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notes"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Custom"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Website"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Labels"</string>
+    <string name="email_home" msgid="8573740658148184279">"Email home"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Email mobile"</string>
+    <string name="email_work" msgid="2807430017302722689">"Email work"</string>
+    <string name="email_other" msgid="3454004077967657109">"Email"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Email <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Email"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Street"</string>
+    <string name="postal_city" msgid="6597491300084895548">"City"</string>
+    <string name="postal_region" msgid="6045263193478437672">"County"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postcode"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Country"</string>
+    <string name="map_home" msgid="1243547733423343982">"View home address"</string>
+    <string name="map_work" msgid="1360474076921878088">"View work address"</string>
+    <string name="map_other" msgid="3817820803587012641">"View  address"</string>
+    <string name="map_custom" msgid="8761800628069473526">"View <xliff:g id="CUSTOM_LABEL">%s</xliff:g> address"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chat using AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chat using Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chat using Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chat using Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chat using QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chat using Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chat using ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chat using Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"delete"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Show more name fields"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Collapse name fields"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Show more phonetic name fields"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Collapse phonetic name fields"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Expand"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Collapse"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Expanded"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Collapsed"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"All contacts"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Starred"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Customise"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contact"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"All other contacts"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"All contacts"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Remove sync group"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Add sync group"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"More groups…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Removing \"<xliff:g id="GROUP">%s</xliff:g>\" from sync will also remove any ungrouped contacts from sync."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Saving display options…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Customised view"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Save imported contacts to:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM card"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contacts</item>
+      <item quantity="one">1 contact</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contacts • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contact • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf file"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nothing to import"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Import contacts from vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Cancel import of <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Cancel export of <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Couldn\'t cancel vCard import/export"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Unknown error."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Couldn\'t open \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Couldn\'t start the exporter: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"There is no exportable contact."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"You have disabled a required permission."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"An error occurred during export: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O error"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Not enough memory. The file may be too large."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"The format isn\'t supported."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Finished exporting <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Finished exporting contacts."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Finished exporting contacts. Please click the notification to share contacts."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Tap to share contacts."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exporting <xliff:g id="FILENAME">%s</xliff:g> cancelled."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exporting contact data"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Contact data is being exported."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Couldn\'t get database information."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"There are no exportable contacts."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"The vCard composer didn\'t start properly."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Couldn\'t export"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"The contact data wasn\'t exported.\nReason: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importing <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Couldn\'t read vCard data"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Finished importing vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importing <xliff:g id="FILENAME">%s</xliff:g> cancelled"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> will be imported shortly."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"The file will be imported shortly."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard import request was rejected. Try again later."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Contacts will be exported shortly."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard export request was rejected. Try again later."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contact"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Caching vCard(s) to local temporary storage. The actual import will start soon."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Couldn\'t import vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contact received over NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Caching"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importing <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Export to .vcf file"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sort by"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Phonetic name"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Always show"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Hide if empty"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"First name"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Surname"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Name format"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"First name first"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Surname first"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Accounts"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Default account for new contacts"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"My info"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Set up your profile"</string>
+    <string name="setting_about" msgid="7014388749752042863">"About Contacts"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Share favourite contacts"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Share all contacts"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Failed to share contacts."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Export contacts"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Import contacts from"</string>
+    <string name="share_error" msgid="948429331673358107">"This contact cannot be shared."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"There are no contacts to share."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contacts to display"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contacts to display"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Customise view"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Save"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Search contacts"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favourites"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Import"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Export"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blocked numbers"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"stop searching"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Clear search"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Account"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Always use this for calls"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Call with a note"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Type a note to send with the call…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SEND &amp; CALL"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Build version"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Open-source licences"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Licence details for open-source software"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Privacy Policy"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Terms of Service"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Open-source licences"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Failed to open the URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> checked"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> not checked"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Place video call"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Delete"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipsis"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> sec"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> hr <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> sec"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"This shortcut has been disabled"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Contact was removed"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Import"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Select contacts"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"No contacts on your SIM card"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Contact already exists on your list"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM contacts imported</item>
+      <item quantity="one">1 SIM contact imported</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Import from SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancel"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Auto-sync is off. Tap to turn on."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Dismiss"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Account sync is off. Tap to turn on."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Turn on auto-sync?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Changes made to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Turn on"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"No connection"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Show more"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Finished importing SIM card"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Import failed"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Couldn\'t import contacts from SIM card"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importing SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 9145fc4..c4c7131 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contacts"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contacts"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"View contact"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Edit Contact"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Add contact"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direct dial"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direct message"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Choose a contact short cut"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Choose a number to call"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Choose a number to message"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Choose contact"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Add to contact"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Choose a contact"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Select"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Create new contact"</string>
-    <string name="starredList" msgid="4817256136413959463">"Starred"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frequent"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favourites"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Contact details"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Edit contact"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Create contact"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Edit group"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Create group"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"About"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Updates"</string>
     <string name="searchHint" msgid="8482945356247760701">"Search contacts"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"View contact"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Add to favourites"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Remove from favourites"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Removed from favourites"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Edit"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Delete"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Change photo"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Place on Home screen"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Call contact"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Text contact"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Create shortcut"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Unlink"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Edit"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Delete"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Add Contact"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Add Group"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Remove contacts"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Rename label"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Delete label"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Add contact"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Select contacts"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Add contacts"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Remove from label"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Create label"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Unlink this contact into multiple contacts?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Unlink"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Would you like to save the changes that you already made and unlink this contact into multiple contacts?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Save and Unlink"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Would you like to save the changes that you already made and link with the contact selected?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Save and Link"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Linking"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Unlinking"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Link"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"View linked contacts"</string>
     <string name="menu_save" msgid="1727844363591825909">"Save"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Link contacts"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Choose the contact who you want to link with <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Show all  contacts"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Suggested Contacts"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"All contacts"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> linked"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contacts linked"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> deleted"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> and <xliff:g id="NAME_1">%2$s</xliff:g> deleted"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… deleted"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Contacts deleted</item>
       <item quantity="one">Contact deleted</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contacts</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contact</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contact · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"From Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"From <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Set ringtone"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"All calls to voicemail"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Contacts from your read-only accounts cannot be deleted, but they can be hidden."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Hide"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"The contact to be deleted has details from multiple accounts. Details from read-only accounts will be hidden, not deleted."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"You need at least two contacts selected to perform a link."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Link selected contacts?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Link"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Route to voicemail"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Don\'t route to voicemail"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"This contact is read-only. It can\'t be deleted, but you can hide it."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Hide contact"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Read-only accounts in this contact will be hidden, not deleted."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Delete this contact?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Delete selected contacts?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Contacts from your read-only accounts cannot be deleted, but they can be hidden."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Deleting this contact will delete details from multiple accounts."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Delete this contact?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"delete"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Discard changes"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"The contact doesn\'t exist."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contact added to Home screen."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> added to Home screen."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Create new contact"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Create new contact"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisation"</item>
-    <item msgid="7196592230748086755">"Note"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"No pictures are available on the tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"No pictures are available on the phone."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"There are no pictures available on the device."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Contact photo"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Custom label name"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Send calls directly to voicemail"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Remove photo"</string>
-    <string name="noContacts" msgid="4955659076981974652">"No contacts"</string>
-    <string name="noGroups" msgid="8614664663561385253">"No groups."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"To create groups you need an account."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"No people in this group."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"To add some, edit the group."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Saving contact…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Your contacts list is empty"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"No contacts with this label"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"No contacts in this account"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Your contacts list is empty"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> saved"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contact saved"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contacts unlinked"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Couldn\'t save contact changes."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Couldn\'t unlink contact."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Couldn\'t link contact."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Error while saving contact."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Couldn\'t save contact photo changes."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Group saved."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Couldn\'t save group changes."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts with phone numbers</item>
-      <item quantity="one">1 contact with phone number</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No contacts with phone numbers"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> found</item>
-      <item quantity="one">1 found</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Couldn\'t save contact changes"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Couldn\'t unlink contact"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Couldn\'t link contact"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Error while saving contact"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Couldn\'t save contact photo changes"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Failed to load label"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Label deleted"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Label created"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Can\'t create label"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Label updated"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Removed from label"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Added to label"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Couldn\'t save label changes"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"That label already exists"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Some contacts do not have email addresses."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Some contacts do not have phone numbers."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Send email"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Send message"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Choose contacts"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Send"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"No contacts"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> found</item>
-      <item quantity="one">1 found</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"All"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favourites"</string>
-    <string name="callBack" msgid="5498224409038809224">"Call back"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Call again"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Return call"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Add \"<xliff:g id="EMAIL">%s</xliff:g>\" to contacts?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"contact photo"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> of <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Names of your contacts"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"No app was found to handle this action."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Click to return to previous screen"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Add phone number"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Add email"</string>
     <string name="missing_app" msgid="1466111003546611387">"No app was found to handle this action."</string>
     <string name="menu_share" msgid="943789700636542260">"Share"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Add to contacts"</string>
-    <string name="share_via" msgid="563121028023030093">"Share contact via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Create group under account"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Add"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Share contacts via</item>
+      <item quantity="one">Share contact via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Choose account"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Create label"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Rename label"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Label name"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Label name"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Voice chat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Video chat"</string>
-    <string name="connections" msgid="8098440723172028350">"Connections"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Add connection"</string>
-    <string name="recent" msgid="2659189233141493004">"Recent"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Recent updates"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> account"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Not editable from this app."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Not editable on this device"</string>
     <string name="take_photo" msgid="7496128293167402354">"Take photo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Take new photo"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Choose photo"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Select new photo"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Contact list is being updated."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Searching…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Show selected"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Show all"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Select all"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Unselect all"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Add new"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Add organisation"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Group name"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Change"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primary photo"</string>
-    <string name="description_star" msgid="2605854427360036550">"favourite"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Edit contact"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Link the current contact with the selected contact?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Label"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancel"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Back"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"close"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Switch to editing the selected contact? Information that you\'ve entered so far will be copied."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copy to My Contacts"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Add to My Contacts"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directory <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Customised"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Settings"</string>
     <string name="menu_settings" msgid="377929915873428211">"Settings"</string>
     <string name="menu_help" msgid="1680178646764069976">"Help &amp; feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Display options"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Phone number"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Add to contacts"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Add to contact"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Close"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Include year"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contact"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Loading…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Create a new contact"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Add account"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Import contacts"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Create new group"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Create new group"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> groups</item>
-      <item quantity="one">1 group</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Delete the group \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Contacts themselves will not be deleted.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> people from <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person from <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> people</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Import"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Create new…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Delete the label \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Contacts themselves will not be deleted.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Type contact name before linking with another."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copy to clipboard"</string>
     <string name="set_default" msgid="4417505153468300351">"Set default"</string>
     <string name="clear_default" msgid="7193185801596678067">"Clear default"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Text copied"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Discard your changes?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Discard"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Set up my profile"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Type person\'s name"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Group\'s name"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Discard changes?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Discard"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancel"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Discard customisations?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Search contacts"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Remove contacts"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"My local profile"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"My <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profile"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Displaying all contacts"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Contacts works better with a Google Account.\n\n• Access from any web browser.\n• Back up your contacts securely."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Keep your contacts safe even if you lose your phone: synchronise with an online service."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Add an account"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Your new contact won\'t be backed up. Add an account that backs up contacts online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Take a moment to add an account that will back up your contacts to Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"New contacts will be saved to <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Choose a default account for new contacts:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Add new contact"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Create new contact"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edit contact"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Keep locally"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"View only"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Choose contact to edit"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Linked contacts"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Add"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Unlink"</string>
     <string name="add_account" msgid="8201790677994503186">"Add account"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Add new account"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Export database files"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"add new contact"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Create new contact"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"See more"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"See less"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"See all"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recent"</string>
     <string name="about_card_title" msgid="2920942314212825637">"About"</string>
-    <string name="send_message" msgid="8938418965550543196">"Send message"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Creating a personal copy..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Yesterday"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Creating a personal copy…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Tomorrow"</string>
     <string name="today" msgid="8041090779381781781">"Today"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Today at <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Tomorrow at <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Untitled event)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Set"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Website"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Event"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relation"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Account"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Name"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Email"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Phone"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Photo"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Click to expand contact editor."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Click to collapse contact editor."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"directions to location"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"recent SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. click to respond"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"recent SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. click to respond"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"incoming"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"outgoing"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"missed"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"recent call. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. click to call back"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"recent call. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. click to call back"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"You: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts works better when you enter the person\'s Hangouts identifier into the email field or phone field."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"More fields"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Change photo"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Failed to open editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Saving to"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Currently saving to <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Double-tap to pick a different account."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Linked contacts (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Linked contact</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> linked contacts"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"More fields"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Change contact photo"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Add contact photo"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Contact photo"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Failed to open editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Saving to"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Contact info from <xliff:g id="ACCOUNT">%s</xliff:g> isn\'t editable"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LINK CONTACTS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCEL"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Possible duplicates</item>
-      <item quantity="one">1 Possible duplicate</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> linked contacts</item>
-      <item quantity="one">1 linked contact</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"This contact"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Possible duplicates"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"These contacts might be the same person. You can link them together as a single contact."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Linked contacts"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"From your accounts"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Take a photo"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"All photos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Choose photo"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"From <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Delete <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Delete <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Delete <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Photo from <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>not checked"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Photo from <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>checked"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Photo from unknown account not selected"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Photo from unknown account selected"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Contact list is being updated to reflect the change of language.\n\nPlease wait..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Block number"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Add number or search contacts"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Unblock <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"UNBLOCK"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Block <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOCK"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blocked"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> unblocked"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is invalid."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Call blocking temporarily off"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Call blocking has been disabled because you contacted emergency services from this phone within the last 48 hours. It will be automatically re-enabled once the 48 hour period expires."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Call blocking disabled for 48 hours"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Disabled because an emergency call was made."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"UNDO"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Contact details for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Import numbers"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Turn on"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Suggestions"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"New"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Open navigation drawer"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Close navigation drawer"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> label"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Labels"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Accounts"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"See your history together"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Events and messages"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Events"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Messages"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suggestions"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Keep your contacts organised and useful"</string>
+    <string name="undo" msgid="1425165101664071422">"Undo"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Call <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Call home"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Call mobile"</string>
+    <string name="call_work" msgid="5328785911463744028">"Call work"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Call work fax"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Call home fax"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Call pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Call"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Call callback"</string>
+    <string name="call_car" msgid="3280537320306436445">"Call car"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Call company main"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Call ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Call main"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Call fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Call radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Call telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Call TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Call work mobile"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Call work pager"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Call <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Call MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Call)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Text <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Text home"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Text mobile"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Text work"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Text work fax"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Text home fax"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Text pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Text"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Text callback"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Text car"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Text company main"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Text ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Text main"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Text fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Text radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Text telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Text TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Text work mobile"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Text work pager"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Text <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Text MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Message)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Make video call"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Clear frequently contacted?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"You\'ll clear the frequently contacted list in the Contacts and Phone apps, and force email apps to learn your addressing preferences from scratch."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Clearing frequently contacted…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Available"</string>
+    <string name="status_away" msgid="1838861100379804730">"Away"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Busy"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Other"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directory"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Work directory"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"All contacts"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Quick contact for <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(No name)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Frequently contacted"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"All contacts with phone numbers"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Work profile contacts"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"View updates"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Device"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Name"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nickname"</string>
+    <string name="name_given" msgid="4280790853455320619">"First name"</string>
+    <string name="name_family" msgid="7466985689626017037">"Surname"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Name prefix"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Middle name"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Name suffix"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Phonetic name"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Phonetic first name"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonetic middle name"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Phonetic surname"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Phone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Email"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Address"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisation"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relationship"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Special date"</string>
+    <string name="sms" msgid="1756857139634224222">"Text message"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Address"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Company"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Title"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notes"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Custom"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Website"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Labels"</string>
+    <string name="email_home" msgid="8573740658148184279">"Email home"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Email mobile"</string>
+    <string name="email_work" msgid="2807430017302722689">"Email work"</string>
+    <string name="email_other" msgid="3454004077967657109">"Email"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Email <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Email"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Street"</string>
+    <string name="postal_city" msgid="6597491300084895548">"City"</string>
+    <string name="postal_region" msgid="6045263193478437672">"County"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postcode"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Country"</string>
+    <string name="map_home" msgid="1243547733423343982">"View home address"</string>
+    <string name="map_work" msgid="1360474076921878088">"View work address"</string>
+    <string name="map_other" msgid="3817820803587012641">"View  address"</string>
+    <string name="map_custom" msgid="8761800628069473526">"View <xliff:g id="CUSTOM_LABEL">%s</xliff:g> address"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chat using AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chat using Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chat using Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chat using Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chat using QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chat using Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chat using ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chat using Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"delete"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Show more name fields"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Collapse name fields"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Show more phonetic name fields"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Collapse phonetic name fields"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Expand"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Collapse"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Expanded"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Collapsed"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"All contacts"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Starred"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Customise"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contact"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"All other contacts"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"All contacts"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Remove sync group"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Add sync group"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"More groups…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Removing \"<xliff:g id="GROUP">%s</xliff:g>\" from sync will also remove any ungrouped contacts from sync."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Saving display options…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Customised view"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Save imported contacts to:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM card"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contacts</item>
+      <item quantity="one">1 contact</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contacts • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contact • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf file"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nothing to import"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Import contacts from vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Cancel import of <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Cancel export of <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Couldn\'t cancel vCard import/export"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Unknown error."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Couldn\'t open \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Couldn\'t start the exporter: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"There is no exportable contact."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"You have disabled a required permission."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"An error occurred during export: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O error"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Not enough memory. The file may be too large."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"The format isn\'t supported."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Finished exporting <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Finished exporting contacts."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Finished exporting contacts. Please click the notification to share contacts."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Tap to share contacts."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exporting <xliff:g id="FILENAME">%s</xliff:g> cancelled."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exporting contact data"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Contact data is being exported."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Couldn\'t get database information."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"There are no exportable contacts."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"The vCard composer didn\'t start properly."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Couldn\'t export"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"The contact data wasn\'t exported.\nReason: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importing <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Couldn\'t read vCard data"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Finished importing vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importing <xliff:g id="FILENAME">%s</xliff:g> cancelled"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> will be imported shortly."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"The file will be imported shortly."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard import request was rejected. Try again later."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Contacts will be exported shortly."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard export request was rejected. Try again later."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contact"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Caching vCard(s) to local temporary storage. The actual import will start soon."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Couldn\'t import vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contact received over NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Caching"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importing <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Export to .vcf file"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sort by"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Phonetic name"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Always show"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Hide if empty"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"First name"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Surname"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Name format"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"First name first"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Surname first"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Accounts"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Default account for new contacts"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"My info"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Set up your profile"</string>
+    <string name="setting_about" msgid="7014388749752042863">"About Contacts"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Share favourite contacts"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Share all contacts"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Failed to share contacts."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Export contacts"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Import contacts from"</string>
+    <string name="share_error" msgid="948429331673358107">"This contact cannot be shared."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"There are no contacts to share."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contacts to display"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contacts to display"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Customise view"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Save"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Search contacts"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favourites"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Import"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Export"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blocked numbers"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"stop searching"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Clear search"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Account"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Always use this for calls"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Call with a note"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Type a note to send with the call…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SEND &amp; CALL"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Build version"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Open-source licences"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Licence details for open-source software"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Privacy Policy"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Terms of Service"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Open-source licences"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Failed to open the URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> checked"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> not checked"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Place video call"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Delete"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipsis"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> sec"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> hr <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> sec"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"This shortcut has been disabled"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Contact was removed"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Import"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Select contacts"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"No contacts on your SIM card"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Contact already exists on your list"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM contacts imported</item>
+      <item quantity="one">1 SIM contact imported</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Failed to import SIM contacts"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Import from SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancel"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Auto-sync is off. Tap to turn on."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Dismiss"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Account sync is off. Tap to turn on."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Turn on auto-sync?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Changes made to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Turn on"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"No connection"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Show more"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Finished importing SIM card"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Import failed"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Couldn\'t import contacts from SIM card"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importing SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 92be4d8..1be103d 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -17,72 +17,74 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contactos"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contactos"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Ver contacto"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Editar contacto"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Agregar contacto"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Marcado directo"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Mensaje directo"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Seleccionar un acceso directo"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Seleccionar un número para la llamada"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Seleccionar un número para el mensaje"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Elegir contacto"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Agregar al contacto"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Seleccionar un contacto"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Seleccionar"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Crear contacto nuevo"</string>
-    <string name="starredList" msgid="4817256136413959463">"Destacados"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frecuente"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoritos"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detalles de contacto"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Editar contacto"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Crear contacto"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Crear grupo"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Acerca de"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Actualizaciones"</string>
     <string name="searchHint" msgid="8482945356247760701">"Buscar contactos"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Ver contacto"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Agregar a favoritos"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Eliminar de favoritos"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Eliminado de favoritos"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"Agregado a favoritos"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Eliminar"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Borrar"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Cambiar foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Colocar en pantalla principal"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Llamar al contacto"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Enviar texto al contacto"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Crear acceso directo"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Desvincular"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Editar"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Eliminar"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Agregar contacto"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Agregar grupo"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Quitar contactos"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Cambiar nombre de la etiqueta"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Borrar etiqueta"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Agregar contacto"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Seleccionar contactos"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Agregar contactos"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Quitar de la etiqueta"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Crear etiqueta"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"¿Deseas desvincular este contacto en múltiples contactos?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Desvincular"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"¿Deseas guardar los cambios que realizaste y desvincular este contacto en múltiples contactos?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Guardar y desvincular"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"¿Deseas guardar los cambios que realizaste y vincular al contacto seleccionado?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Guardar y vincular"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Vinculando"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Desvinculando"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Vincular"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Ver contactos vinculados"</string>
     <string name="menu_save" msgid="1727844363591825909">"Guardar"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Vincular contactos"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Selecciona el contacto que quieres vincular con <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostrar todos los contactos"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contactos sugeridos"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos los contactos"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Se vinculó a <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Se vincularon los contactos"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Se borró a <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Se borró a <xliff:g id="NAME_0">%1$s</xliff:g> y a <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Se borró a <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Contactos borrados</item>
       <item quantity="one">Contacto borrado</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contactos</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contactos   <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"De Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"De <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Establecer tono"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Llamadas al buzón de voz"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Los contactos de las cuentas de solo lectura no se pueden borrar, pero pueden ocultarse."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ocultar"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"El contacto que se borrará tiene información de múltiples cuentas. La información de la cuentas de solo lectura se ocultarán, pero no se borrarán."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Debes seleccionar al menos dos contactos para poder vincularlos."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"¿Deseas vincular los contactos seleccionados?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Vincular"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Dirigir al buzón de voz"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"No dirigir al buzón de voz"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Este contacto es de solo lectura. No puedes borrarlo, pero puedes ocultarlo."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ocultar contacto"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Las cuentas de solo lectura de este contacto se ocultarán, no se borrarán."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"¿Deseas borrar este contacto?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"¿Deseas borrar los contactos seleccionados?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Los contactos de las cuentas de solo lectura no se pueden borrar, pero pueden ocultarse."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Borrar este contacto suprimirá la información de múltiples cuentas."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"¿Deseas borrar este contacto?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Borrar"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Descartar cambios"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"El contacto no existe."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Se agregó el contacto a la pantalla principal."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> se agregó a la pantalla principal."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear nuevo contacto"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Crear contacto nuevo"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organización"</item>
-    <item msgid="7196592230748086755">"Nota"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"No hay imágenes disponibles en el tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"No hay imágenes disponibles en el dispositivo."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"No hay imágenes disponibles en el dispositivo."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto de contacto"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nombre personalizado de etiqueta"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Enviar llamadas directamente al correo de voz"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Eliminar foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"No hay contactos"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Ningún grupo"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Para crear grupos, necesitas una cuenta."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"No hay contactos en este grupo."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Para agregar alguno, edita el grupo."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Guardando contacto..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Tu lista de contactos está vacía"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Ningún contacto tiene esta etiqueta"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"No hay contactos en esta cuenta"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Tu lista de contactos está vacía"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Se guardó a <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contacto guardado"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contactos desvinculados"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"No se pudieron guardar los cambios realizados al contacto."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"No se pudo desvincular el contacto."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"No se pudo vincular el contacto."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Se produjo un error al guardar el contacto."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"No se pudieron guardar los cambios que se realizaron en la foto de contacto."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupo guardado."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"No se pudieron guardar los cambios realizados al grupo."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos con números de teléfono</item>
-      <item quantity="one">1 contacto con número de teléfono</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"No hay contactos con números de dispositivo"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">Se encontraron <xliff:g id="COUNT">%d</xliff:g>.</item>
-      <item quantity="one">Se encontró 1.</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"No se pudieron guardar los cambios en el contacto"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"No se pudo desvincular el contacto"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"No se pudo vincular el contacto"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Se produjo un error al guardar el contacto"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"No se pudieron guardar los cambios en la foto del contacto"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"No se pudo cargar la etiqueta"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Se borró la etiqueta"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Se creó la etiqueta"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"No se puede crear la etiqueta"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Se actualizó la etiqueta"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Eliminado de la etiqueta"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Agregado a la etiqueta"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"No se pudieron guardar los cambios en la etiqueta"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Esa etiqueta ya existe"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Algunos contactos no tienen correo electrónico."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Algunos contactos no tienen número de teléfono."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Enviar correo electrónico"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Enviar mensaje"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Elegir contactos"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Enviar"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"No hay contactos"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">Se encontraron <xliff:g id="COUNT">%d</xliff:g>.</item>
-      <item quantity="one">Se encontró 1.</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Todos"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
-    <string name="callBack" msgid="5498224409038809224">"Volver a llamar"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Llamar nuevamente"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Regresar llamada"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"¿Deseas agregar \"<xliff:g id="EMAIL">%s</xliff:g>\" a los contactos?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto de contacto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"más"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nombres de tus contactos"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"No se encontró ninguna aplicación que pueda realizar esta acción."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Haz clic para volver a la pantalla anterior."</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Agregar número de teléfono"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Agregar correo electrónico"</string>
     <string name="missing_app" msgid="1466111003546611387">"No se encontró ninguna aplicación que pueda realizar esta acción."</string>
     <string name="menu_share" msgid="943789700636542260">"Compartir"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Agregar a contactos"</string>
-    <string name="share_via" msgid="563121028023030093">"Compartir un contacto a través de"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Crear un grupo en la cuenta"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Agregar"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Compartir contactos a través de</item>
+      <item quantity="one">Compartir contacto a través de</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Elegir cuenta"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Crear etiqueta"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Cambiar nombre de etiqueta"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nombre de la etiqueta"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nombre de etiq."</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
     <string name="video_chat" msgid="1872255818640336072">"Chat de video"</string>
-    <string name="connections" msgid="8098440723172028350">"Conexiones"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Agregar conexión"</string>
-    <string name="recent" msgid="2659189233141493004">"Recientes"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Actualiz. recientes"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contacto de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Cuenta de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"No se puede editar desde esta aplicación"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"No se puede editar en este dispositivo."</string>
     <string name="take_photo" msgid="7496128293167402354">"Tomar foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tomar nueva foto"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Elegir una foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Seleccionar una foto nueva"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"La lista de contactos se está actualizando."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Buscando..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mostrar los seleccionados"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mostrar todos"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Seleccionar todo"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Desmarcar todos"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Agregar nuevo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Agregar organización"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Fecha"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nombre de grupo"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Cambiar"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto principal"</string>
-    <string name="description_star" msgid="2605854427360036550">"favorito"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Editar contacto"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"¿Deseas vincular el contacto actual con el contacto seleccionado?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiqueta"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancelar"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Atrás"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"cerrar"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"¿Optar por modificar contacto seleccionado? Se copiará la información que ingresaste hasta ahora."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copiar en Mis contactos"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Agregar a Mis contactos"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directorio <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizado"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Configuración"</string>
     <string name="menu_settings" msgid="377929915873428211">"Configuración"</string>
     <string name="menu_help" msgid="1680178646764069976">"Ayuda y comentarios"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opciones de visualización"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Núm. de tel."</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Agregar a contactos"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Agregar al contacto"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Cerrar"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Incluir el año"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contacto"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Cargando..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Crear un contacto nuevo"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Agregar cuenta"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importar contactos"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Crear grupo nuevo"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Crear grupo nuevo"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupos</item>
-      <item quantity="one">1 grupo</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"¿Deseas eliminar el grupo \" <xliff:g id="GROUP_LABEL">%1$s</xliff:g> \"? (No se eliminarán los contactos)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> personas de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persona de <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> personas</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persona</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importar"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Crear nueva…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"¿Quieres quitar la etiqueta \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Los contactos en sí no se borrarán)."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Escribe el nombre del contacto antes de vincularlo con otro."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copiar en el portapapeles"</string>
     <string name="set_default" msgid="4417505153468300351">"Establecer como predeterminado"</string>
     <string name="clear_default" msgid="7193185801596678067">"Eliminar predeterminado"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Texto copiado"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"¿Deseas descartar los cambios?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Descartar"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configurar mi perfil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Escribe el nombre de la persona."</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nombre del grupo"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"¿Deseas descartar los cambios?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancelar"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"¿Deseas descartar las personalizaciones?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Buscar contactos"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Quitar contactos"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mi perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mi perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Mostrar todos los contactos"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"La aplicación Contactos funciona mejor con una cuenta de Google.\n\n• Accede desde cualquier navegador web.\n• Haz copias de seguridad de tus contactos de forma segura."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantén tus contactos a salvo aunque pierdas el dispositivo: sincronízalos con un servicio online."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Agregar una cuenta"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"No se hará una copia de seguridad del contacto nuevo. ¿Quieres agregar una cuenta para hacer copias de seguridad en línea de los contactos?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Tómate un minuto para agregar una cuenta desde la que se creará una copia de seguridad de tus contactos en Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Se guardarán los contactos nuevos en <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Elige una cuenta predeterminada para los contactos nuevos:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Agregar contacto"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Crear contacto nuevo"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Copia local"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Solo lectura"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Selecciona un contacto para editar"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contactos vinculados"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Agregar"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Desvincular"</string>
     <string name="add_account" msgid="8201790677994503186">"Agregar una cuenta"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Agregar cuenta"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportar archivos de base de datos"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"agregar contacto nuevo"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Crear contacto nuevo"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ver más"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ver menos"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ver todo"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Reciente"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Información"</string>
-    <string name="send_message" msgid="8938418965550543196">"Enviar mensaje"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Creando una copia personal…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Ayer"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Creando una copia personal..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Mañana"</string>
     <string name="today" msgid="8041090779381781781">"Hoy"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Hoy a la hora <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Mañana a la hora <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Evento sin título)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Establecer"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"MI"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Sitio web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relación"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Cuenta"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nombre"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Correo electrónico"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Teléfono"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Haz clic aquí para expandir el editor de contacto."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Haz clic aquí para contraer el editor de contacto."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"instrucciones sobre cómo llegar a la ubicación"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS reciente. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Haz clic para responder."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS reciente. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Haz clic para responder."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"entrante"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"realizada"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"perdida"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Llamada reciente. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Haz clic para devolver la llamada."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Llamada reciente. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Haz clic para devolver la llamada."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Tú: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funciona mejor si ingresas el identificador de Hangouts de la persona en el campo de correo electrónico o teléfono."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Más campos"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Cambiar foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"No se pudo abrir el editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Guardando en"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Guardando contacto en <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Presiona dos veces para elegir una cuenta diferente."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Contactos vinculados (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Contacto vinculado</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contactos vinculados"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Más campos"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Cambiar foto de contacto"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Agregar foto de contacto"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto de contacto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"No se pudo abrir el editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Guardar en"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"No se puede editar la información de contacto de <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"VINCULAR CONTACTOS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCELAR"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other">Hay <xliff:g id="COUNT">%d</xliff:g> posibles duplicados</item>
-      <item quantity="one">Hay 1 posible duplicado</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">Se vincularon <xliff:g id="COUNT">%d</xliff:g> contactos</item>
-      <item quantity="one">Se vinculó 1 contacto</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Este contacto"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Posibles duplicados"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Es posible que estos contactos sean de la misma persona. Puedes vincularlos como un solo contacto."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contactos vinculados"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"De tus cuentas"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Tomar una foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Todas las fotos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Elegir foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Desde <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Borrar <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Borrar <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Borrar <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"No se seleccionó la foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Se seleccionó la foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"No se seleccionó la foto de una cuenta desconocida"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Se seleccionó la foto de una cuenta desconocida"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"La lista de contactos se está actualizando para reflejar el cambio de idioma.\n\n Espera."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Agregar número"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Agregar número o buscar contactos"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"¿Deseas desbloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"¿Deseas bloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> bloqueado"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> desbloqueado"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> no es válido."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueo de llamadas desactivado temporalmente"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Se inhabilitó el bloqueo de llamadas porque te comunicaste con servicios de emergencia en las últimas 48 horas desde este teléfono. Se volverá a habilitar de forma automática una vez que venza el período de 48 horas."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Agregar número"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"El bloqueo de llamadas se inhabilitó durante 48 horas"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Se inhabilitó porque se realizó una llamada de emergencia."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"DESHACER"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Datos de contacto de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error al importar"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Para buscar contactos, activa el permiso Contactos."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Activar"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Sugerencias"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nuevo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Abrir panel lateral de navegación"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Cerrar panel lateral de navegación"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiqueta <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiquetas"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Cuentas"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Consulta el historial entre ustedes"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Eventos y mensajes"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Eventos"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mensajes"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Sugerencias"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mantén los contactos organizados y útiles"</string>
+    <string name="undo" msgid="1425165101664071422">"Deshacer"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Llamar a <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Llamar a casa"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Llamar al celular"</string>
+    <string name="call_work" msgid="5328785911463744028">"Llamar al trabajo"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Llamar al fax del trabajo"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Llamar al fax personal"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Llamar a localizador"</string>
+    <string name="call_other" msgid="8563753966926932052">"Llamar"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Llamar a devolución de llamada"</string>
+    <string name="call_car" msgid="3280537320306436445">"Llamar al auto"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Llamar empresa principal"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Llamar a ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Llamada principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Llamar a fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Llamar a la radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Llamar a télex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Llamar a TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Llamar al celular del trabajo"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Llamar al localizador del trabajo"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Llamar a <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Llamar a MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Llamar)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Enviar SMS a <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Enviar texto al hogar"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Enviar texto a celular"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Enviar texto al trabajo"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Enviar texto a fax laboral"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Enviar texto a fax personal"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Enviar texto a localizador"</string>
+    <string name="sms_other" msgid="806127844607642331">"Enviar texto"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Enviar texto a devolución de llamada"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Enviar texto a auto"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Enviar texto a empresa principal"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN de texto"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Texto principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Enviar fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Enviar texto a radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Enviar texto a télex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Enviar texto a TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Enviar texto al celular del trabajo"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Enviar texto a localizador del trabajo"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Enviar texto a <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Enviar texto MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Enviar mensaje)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Realizar una videollamada"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"¿Borrar los contactos frecuentes?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Borrarás de las apps Contactos y Teléfono la lista de personas con las que te comunicas frecuentemente. Además, las apps de correo deberán volver a establecer tus preferencias."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Borrando contactos frecuentes…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponible"</string>
+    <string name="status_away" msgid="1838861100379804730">"Ausente"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Ocupado"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Otro"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directorio"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Directorio de trabajo"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Todos los contactos"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contacto rápido de <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Sin nombre)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Contactado con frecuencia"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Todos los contactos con número de teléfono"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contactos del perfil de trabajo"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Ver actualizaciones"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Dispositivo"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nombre"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Apodo"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nombre"</string>
+    <string name="name_family" msgid="7466985689626017037">"Apellido"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefijo del nombre"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Segundo nombre"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Sufijo del nombre"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nombre fonético"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nombre fonético"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Segundo nombre fonético"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Apellido fonético"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Teléfono"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Correo electrónico"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Dirección"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Mensajería instantánea"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organización"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relación"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Fecha especial"</string>
+    <string name="sms" msgid="1756857139634224222">"Mensaje de texto"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Dirección"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Empresa"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Título"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notas"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalizado"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Sitio web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiquetas"</string>
+    <string name="email_home" msgid="8573740658148184279">"Correo personal"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Correo celular"</string>
+    <string name="email_work" msgid="2807430017302722689">"Correo laboral"</string>
+    <string name="email_other" msgid="3454004077967657109">"Enviar correo"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Enviar correo electrónico a <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Correo"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Dirección postal"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Ciudad"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Estado"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Código POSTAL"</string>
+    <string name="postal_country" msgid="7638264508416368690">"País"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ver dirección principal"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ver dirección laboral"</string>
+    <string name="map_other" msgid="3817820803587012641">"Ver dirección"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Ver la dirección de <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chat mediante AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chat mediante Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chat mediante Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chat mediante Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chat mediante QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chat mediante Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chat mediante ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chat mediante Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"Eliminar"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Mostrar más campos de nombre"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Contraer campos de nombre"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Mostrar más campos de nombre fonético"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Contraer campos de nombre fonético"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Expandir"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Contraer"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Expandido"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Contraído"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Todos los contactos"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Destacado"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizar"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contacto"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Todos los demás contactos"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Todos los contactos"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Eliminar grupo de sincronización"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Agregar grupo de sincronización"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Más grupos…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"La eliminación de \"<xliff:g id="GROUP">%s</xliff:g>\" de la sincronización también eliminará de la sincronización todos los contactos que no estén agrupados."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Guardando opciones de visualización..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Vista personalizada"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Guardar los contactos importados en la siguiente ubicación:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Tarjeta SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contactos</item>
+      <item quantity="one">1 contacto</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contactos • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contacto • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Archivo .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nada para importar"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"¿Importar los contactos desde una vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"¿Deseas cancelar la importación de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"¿Deseas cancelar la exportación de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"No se canceló la impor./expor. de vCard."</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Error desconocido"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"No se pudo abrir \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"No se pudo iniciar el exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"No hay contactos para exportar."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Inhabilitaste un permiso necesario."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Se produjo un error durante la exportación: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Error de E/S"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Memoria insuficiente (es probable que el archivo sea muy grande)."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"El formato no es compatible."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Finalizó la exportación de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Finalizó la exportación de contactos."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Se completó la exportación de los contactos. Haz clic en la notificación para compartirlos."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Presiona para compartir contactos."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Se canceló la exportación de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportando datos de contacto"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Se están exportando los datos de contacto."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"No se pudo obtener la información de la base de datos."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"No hay contactos para exportar."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"El compositor de la vCard no se inició correctamente."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"No se pudo exportar"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"No se exportaron los datos del contacto.\nMotivo: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importando <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"No se pudieron leer los datos de vCard."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Finalizó la importación de la vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Se canceló la importación de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> se importará en breve."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"El archivo se importará en breve."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Se rechazó la solicitud de importación de la vCard. Vuelve a intentarlo más tarde."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Los contactos se exportarán en breve."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Se rechazó la solicitud de exportación de la vCard. Vuelve a intentarlo más tarde."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contacto"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Almacenando vCard(s) en caché local temporal. La importación comenzará pronto."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"No se pudo importar archivo de vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contac recib NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Almacenando en caché"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importando <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportar al archivo .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Ordenar por"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nombre fonético"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mostrar siempre"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ocultar si está vacío"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nombre"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Apellido"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formato del nombre"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Nombre primero"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Apellido primero"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Cuentas"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Cuenta predeterminada para los contactos nuevos"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mi información"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configura tu perfil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Acerca de Contactos"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Compartir contactos favoritos"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Compartir todos los contactos"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"No se pudieron compartir los contactos."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportar contactos"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importar contactos de"</string>
+    <string name="share_error" msgid="948429331673358107">"No es posible compartir este contacto."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"No hay contactos para compartir."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contactos para mostrar"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contactos para mostrar"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizar vista"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Guardar"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Buscar contactos"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritos"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importar"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportar"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Números bloqueados"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"a través de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> a través de <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"detener la búsqueda"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Borrar la búsqueda"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Cuenta"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Usar siempre para llamadas"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Llamada con una nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Escribe una nota para enviar con la llamada…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVIAR Y LLAMAR"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versión de compilación"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licencias de código abierto"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalles de la licencia de software de código abierto"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Política de privacidad"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Condiciones del servicio"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licencias de código abierto"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"No se pudo abrir la URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> marcada"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> no marcada"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Iniciar una videollamada"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Borrar"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Elipsis"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Este acceso directo se inhabilitó"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Se quitó el contacto"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importar"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Seleccionar contactos"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"No hay contactos en la tarjeta SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"El contacto ya está en la lista"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">Se importaron <xliff:g id="COUNT">%d</xliff:g> contactos de la SIM</item>
+      <item quantity="one">Se importó 1 contacto de la SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"No se pudieron importar los contactos de la SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importar desde la tarjeta SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancelar"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"La sincronización automática está desactivada. Presiona para activarla."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Descartar"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"La sincronización de la cuenta está desactivada. Presiona para activarla."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"¿Activar la sincronización automática?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Los cambios que hagas en todas las apps y cuentas, no solo en los Contactos de Google, se mantendrán actualizados entre la Web y tus dispositivos."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Activar"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Sin conexión"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mostrar más"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Terminó la importación de la tarjeta SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Error al importar"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"No se pudieron importar los contactos de la tarjeta SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importando la tarjeta SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e6a0a61..e047fab 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -17,72 +17,74 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contactos"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contactos"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Ver contacto"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Editar contacto"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Añadir contacto"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Llamada directa"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Mensaje directo"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Elegir un acceso directo para el contacto"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Elegir un número para la llamada"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Elegir un número para el mensaje"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Elegir contacto"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Añadir al contacto"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Seleccionar un contacto"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Elige un contacto"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Seleccionar"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Crear nuevo contacto"</string>
-    <string name="starredList" msgid="4817256136413959463">"Destacados"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frecuentes"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoritos"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detalles del contacto"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Editar contacto"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Crear contacto"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Crear grupo"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Información"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Actividad"</string>
     <string name="searchHint" msgid="8482945356247760701">"Buscar contactos"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Ver contacto"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Añadir a \"Favoritos\""</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Eliminar de \"Favoritos\""</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Añadir a Favoritos"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Eliminar de Favoritos"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Eliminado de favoritos"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"Añadido a favoritos"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Eliminar"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Cambiar foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Añadir a la pantalla de inicio"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Llamar al contacto"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Enviar SMS al contacto"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Crear acceso directo"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Desvincular"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Editar"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Eliminar"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Añadir contacto"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Añadir grupo"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Quitar contactos"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Cambiar nombre de etiqueta"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Eliminar etiqueta"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Añadir contacto"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Seleccionar contactos"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Añadir contactos"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Eliminar de la etiqueta"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Crear etiqueta"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"¿Desvincular este contacto en varios contactos?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Desvincular"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"¿Quieres guardar los cambios que has hecho y desvincular este contacto en varios contactos?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Guardar y desvincular"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"¿Quieres guardar los cambios que has hecho y enlazar este contacto con el contacto seleccionado?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Guardar y enlazar"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Enlazar"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"¿Quieres guardar los cambios que has hecho y vincular este contacto con el contacto seleccionado?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Guardar y vincular"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Vinculando"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Desvinculando"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Vincular"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Ver contactos enlazados"</string>
     <string name="menu_save" msgid="1727844363591825909">"Guardar"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Enlazar contactos"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Selecciona el contacto que quieras enlazar con <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostrar todos los contactos"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Vincular contactos"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Selecciona el contacto que quieras vincular con <xliff:g id="NAME">%s</xliff:g>:"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contactos sugeridos"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos los contactos"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> enlazado"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contactos enlazados"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Se ha eliminado a <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Se ha eliminado a <xliff:g id="NAME_0">%1$s</xliff:g> y a <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Se ha eliminado a <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Contactos eliminados</item>
       <item quantity="one">Contacto eliminado</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contactos</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contactos · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"De Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"De <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Establecer tono"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Al buzón de voz"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Los contactos de las cuentas de solo lectura no se pueden eliminar, pero se pueden ocultar."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ocultar"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"El contacto que se va a eliminar incluye detalles de varias cuentas. Los detalles de las cuentas de solo lectura se ocultarán, no se eliminarán."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Debes seleccionar al menos dos contactos para enlazarlos."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"¿Enlazar contactos seleccionados?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Enlazar"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Redirigir al buzón de voz"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"No redirigir al buzón de voz"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Este contacto es de solo lectura. No se puede eliminar, pero sí ocultar."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ocultar contacto"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Se ocultarán las cuentas de solo lectura de este contacto, pero no se eliminarán."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"¿Eliminar este contacto?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"¿Eliminar contactos seleccionados?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Los contactos de las cuentas de solo lectura no se pueden eliminar, pero se pueden ocultar."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Si se elimina este contacto, se eliminarán detalles de varias cuentas."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"¿Eliminar este contacto?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Eliminar"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Descartar cambios"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Este contacto no existe."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contacto añadido a la pantalla inicio."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> añadido a la pantalla de inicio."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear nuevo contacto"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Crear nuevo contacto"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organización"</item>
-    <item msgid="7196592230748086755">"Nota"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"No hay ninguna imagen disponible en el tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"No hay ninguna imagen disponible en el teléfono."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"No hay ninguna imagen disponible en el dispositivo."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto de contacto"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nombre del campo personalizado"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Enviar llamadas directamente al buzón de voz"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Eliminar foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"No hay contactos."</string>
-    <string name="noGroups" msgid="8614664663561385253">"No hay grupos"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Para poder crear grupos, necesitas una cuenta."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Este grupo está vacío."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Para añadir contactos al grupo, edítalo."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Guardando contacto…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"La lista de contactos está vacía"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"No hay ningún contacto con esta etiqueta"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"No hay contactos en esta cuenta"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"La lista de contactos está vacía"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Se ha guardado <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contacto guardado"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contactos desvinculados"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"No se han guardado los cambios del contacto."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"No se ha podido desvincular el contacto."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"No se ha podido enlazar el contacto."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Error al guardar contacto."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"No se han podido guardar los cambios de la foto de contacto."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupo guardado"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"No se han guardado los cambios del grupo."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos con número de teléfono</item>
-      <item quantity="one">1 contacto con número de teléfono</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ningún contacto con número de teléfono"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos encontrados</item>
-      <item quantity="one">1 contacto encontrado</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"No hay contactos."</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos encontrados</item>
-      <item quantity="one">1 contacto encontrado</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Todos"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
-    <string name="callBack" msgid="5498224409038809224">"Llamar"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Volver a llamar"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Devolver llamada"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"No se han podido guardar los cambios en el contacto"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"No se ha podido desvincular el contacto"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"No se ha podido enlazar el contacto"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"No se ha podido guardar el contacto"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"No se han podido guardar los cambios en la foto del contacto"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"No se ha podido cargar la etiqueta"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiqueta eliminada"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiqueta creada"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"No se puede crear la etiqueta"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiqueta actualizada"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Eliminado(s) de la etiqueta"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Añadido a la etiqueta"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"No se han podido guardar los cambios en la etiqueta"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Esta etiqueta ya existe"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Algunos contactos no tienen correo electrónico."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Algunos contactos no tienen número de teléfono."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Enviar correo electrónico"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Enviar mensaje"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Seleccionar contactos"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Enviar"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"No hay contactos"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"¿Quieres añadir \"<xliff:g id="EMAIL">%s</xliff:g>\" a Contactos?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto de contacto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"más"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nombres de tus contactos"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"No se ha detectado ninguna aplicación que pueda hacer esta acción."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Haz clic para volver a la pantalla anterior"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Añadir número de teléfono"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Añadir correo electrónico"</string>
     <string name="missing_app" msgid="1466111003546611387">"No se ha detectado ninguna aplicación que pueda hacer esta acción."</string>
     <string name="menu_share" msgid="943789700636542260">"Compartir"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Añadir a contactos"</string>
-    <string name="share_via" msgid="563121028023030093">"Compartir contacto a través de"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Crear grupo en cuenta"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Añadir"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Compartir contactos a través de</item>
+      <item quantity="one">Compartir contacto a través de</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Seleccionar una cuenta"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Crear etiqueta"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Cambiar nombre de etiqueta"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nombre de etiqueta"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nombre etiqueta"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
     <string name="video_chat" msgid="1872255818640336072">"Chat de vídeo"</string>
-    <string name="connections" msgid="8098440723172028350">"Conexiones"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Añadir conexión"</string>
-    <string name="recent" msgid="2659189233141493004">"Reciente"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Actualizaciones recientes"</string>
-    <string name="account_type_format" msgid="718948015590343010">"Contacto de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Cuenta de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"No se puede editar desde la aplicación."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"No se puede editar en este dispositivo."</string>
     <string name="take_photo" msgid="7496128293167402354">"Hacer una foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Hacer una foto nueva"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Elegir foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Seleccionar nueva foto"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"La lista de contactos se está actualizando."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Buscando..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mostrar seleccionados"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mostrar todos"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Seleccionar todo"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Desmarcar todo"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Añadir nuevo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Añadir organización"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Fecha"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nombre del grupo"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Cambiar"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto principal"</string>
-    <string name="description_star" msgid="2605854427360036550">"favoritos"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Editar contacto"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"¿Quieres enlazar el contacto actual con el contacto seleccionado?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiqueta"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancelar"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Atrás"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"cerrar"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"¿Quieres editar el contacto seleccionado? Se copiará la información que hayas introducido hasta el momento."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copiar en mis contactos"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Añadir a Mis contactos"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directorio <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizar"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Ajustes"</string>
     <string name="menu_settings" msgid="377929915873428211">"Ajustes"</string>
     <string name="menu_help" msgid="1680178646764069976">"Ayuda y sugerencias"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opciones de visualización"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Número de teléfono"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Añadir a contactos"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Añadir al contacto"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Cerrar"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Incluir año"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contacto"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Cargando..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Crear un contacto"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Añadir cuenta"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importar contactos"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Crear nuevo grupo"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Crear nuevo grupo"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupos</item>
-      <item quantity="one">1 grupo</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"¿Seguro que quieres eliminar el grupo \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Los contactos no se eliminarán."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> personas de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persona de <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> personas</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persona</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Para enlazar el contacto, escribe el nombre del otro contacto."</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importar"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Crear…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"¿Seguro que quieres eliminar la etiqueta \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Los contactos no se eliminarán."</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Para vincular el contacto, escribe el nombre del otro contacto."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copiar en el portapapeles"</string>
     <string name="set_default" msgid="4417505153468300351">"Establecer como predeterminado"</string>
     <string name="clear_default" msgid="7193185801596678067">"Borrar predeterminado"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Texto copiado"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"¿Seguro que quieres descartar los cambios?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Descartar"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configurar mi perfil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Escribe el nombre de la persona"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nombre del grupo"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"¿Descartar cambios?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancelar"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"¿Quieres descartar las personalizaciones?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Buscar contactos"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Quitar contactos"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mi perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mi perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Mostrando todos los contactos"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"La aplicación Contactos funciona mejor con una cuenta de Google.\n\n• Accede a tu lista de contactos desde cualquier navegador web.\n• Haz copias de seguridad de tus contactos de forma segura."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantén tus contactos a salvo aunque pierdas el teléfono: sincronízalos con un servicio online."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Añadir una cuenta"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"No se hará una copia de seguridad del nuevo contacto. ¿Quieres añadir una cuenta para hacer copias de seguridad online de los contactos?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Dedica un minuto a añadir una cuenta que hará copias de seguridad de tus contactos en Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Los nuevos contactos se guardan en <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Selecciona una cuenta predeterminada para los contactos nuevos:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Añadir contacto"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Crear contacto"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Copia local"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Solo lectura"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Seleccionar contacto para editarlo"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contactos enlazados"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Añadir"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Desvincular"</string>
     <string name="add_account" msgid="8201790677994503186">"Añadir cuenta"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Añadir cuenta"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportar archivos de base de datos"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"añadir nuevo contacto"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Crear un contacto"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ver más"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ver menos"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ver todo"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recientes"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Información"</string>
-    <string name="send_message" msgid="8938418965550543196">"Enviar mensaje"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Creando una copia personal..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Ayer"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Creando una copia personal..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Mañana"</string>
     <string name="today" msgid="8041090779381781781">"Hoy"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Hoy a las <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Mañana a las <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Evento sin título)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Establecer"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"MI"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Sitio web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relación"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Cuenta"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nombre"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Correo electrónico"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Teléfono"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Haz clic para ampliar el editor de contactos."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Haz clic para contraer el editor de contactos."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"indicaciones para llegar a la ubicación"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms reciente. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. haz clic para responder"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms reciente. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. haz clic para responder"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"recibida"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"realizada"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"perdida"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"llamada reciente. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. haz clic para devolver la llamada"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"llamada reciente. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. haz clic para devolver la llamada"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Tú: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funciona mejor si se introduce el identificador de Hangouts de la persona en el campo del correo electrónico o en el campo del teléfono."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Más campos"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Cambiar foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Error al abrir el editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Se guarda en"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Actualmente los contactos se guardan en <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Toca dos veces para seleccionar otra cuenta."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Contactos enlazados (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Contacto enlazado</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contactos enlazados"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ENLAZAR CONTACTOS"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Más campos"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Cambiar la foto del contacto"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Añadir una foto del contacto"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto del contacto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"No se ha podido abrir el editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Se guardará en"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"No se puede editar la información de contacto de <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"VINCULAR CONTACTOS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCELAR"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> posibles duplicados</item>
-      <item quantity="one">1 posible duplicado</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos enlazados</item>
-      <item quantity="one">1 contacto enlazado</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Este contacto"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Posibles duplicados"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Es posible que estos contactos se correspondan a la misma persona. Puedes enlazarlos y crear un único contacto."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contactos enlazados"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"De tus cuentas"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Hacer una foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Todas las fotos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Elegir foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"De <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Eliminar <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Eliminar <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Eliminar <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> no seleccionada"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> seleccionada"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"No se ha seleccionado una foto de una fuente desconocida"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Se ha seleccionado una foto de una fuente desconocida"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"La lista de contactos se está actualizando para reflejar el cambio de idioma.\n\nPor favor, espera..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Añadir número"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Añade número o busca contactos"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"¿Desbloquear el número <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"¿Bloquear el número <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Se ha bloqueado el número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Se ha desbloqueado el número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> no es válido."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueo de llamadas desactivado temporalmente"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Se ha inhabilitado el bloqueo de llamadas porque te has puesto en contacto con los servicios de emergencia desde este teléfono en las últimas 48 horas. Se volverá a habilitar automáticamente cuando finalice este periodo de tiempo."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Añadir número"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bloqueo de llamadas inhabilitado durante 48 horas"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Inhabilitado porque has hecho una llamada de emergencia."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"DESHACER"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Información de contacto de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error al importar"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Para poder buscar tus contactos, activa los permisos de contactos."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Activar"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Sugerencias"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nuevo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Abrir panel de navegación"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Cerrar panel de navegación"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiqueta <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiquetas"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Cuentas"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Ver tus historiales juntos"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Eventos y mensajes"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Eventos"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mensajes"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Sugerencias"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mantén tus contactos organizados de manera que te resulten útiles"</string>
+    <string name="undo" msgid="1425165101664071422">"Deshacer"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Llamar a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Llamar a casa"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Llamar al móvil"</string>
+    <string name="call_work" msgid="5328785911463744028">"Llamar al trabajo"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Llamar al fax del trabajo"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Llamar a fax de casa"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Llamar al busca"</string>
+    <string name="call_other" msgid="8563753966926932052">"Llamar"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Llamar a un número de devolución de llamada"</string>
+    <string name="call_car" msgid="3280537320306436445">"Llamar al coche"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Llamar al teléfono principal de la empresa"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Llamar a RDSI"</string>
+    <string name="call_main" msgid="6082900571803441339">"Llamar al teléfono principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Llamar a fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Llamar a la radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Llamar al télex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Llamar a TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Llamar al móvil del trabajo"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Llamar al busca del trabajo"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Llamar a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Llamar a MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Llamar)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Enviar un SMS a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Enviar SMS a casa"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Enviar SMS a móvil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Enviar SMS a trabajo"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Enviar SMS al fax del trabajo"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Enviar SMS al fax de casa"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Enviar SMS al busca"</string>
+    <string name="sms_other" msgid="806127844607642331">"Enviar SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Enviar SMS a devolución de llamada"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Enviar SMS al coche"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Enviar SMS al teléfono principal de la empresa"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Enviar SMS a RDSI"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Enviar SMS al teléfono principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Enviar SMS a fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Enviar SMS a la radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Enviar SMS al télex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Enviar SMS a TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Enviar SMS al móvil del trabajo"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Enviar SMS al busca del trabajo"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Enviar un mensaje de texto a <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Enviar SMS a MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Enviar SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Hacer videollamada"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"¿Borrar contactos frecuentes?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Vas a borrar la lista de contactos frecuentes de las aplicaciones Contactos y Teléfono, por lo que las aplicaciones de correo electrónico tendrán que memorizar tus preferencias de nuevo."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Borrando contactos frecuentes…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponible"</string>
+    <string name="status_away" msgid="1838861100379804730">"Ausente"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Ocupado"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Otro"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directorio"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Directorio de trabajo"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Todos los contactos"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contacto rápido de <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Sin nombre)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Contactos frecuentes"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Todos los contactos con número"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contactos del perfil de trabajo"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Ver actualizaciones"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Dispositivo"</string>
+    <string name="account_sim" msgid="6519016427905087952">"Tarjeta SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nombre"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Seudónimo"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nombre"</string>
+    <string name="name_family" msgid="7466985689626017037">"Apellidos"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefijo del nombre"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Segundo nombre"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Sufijo del nombre"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nombre fonético"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nombre fonético"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Segundo nombre fonético"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Apellido fonético"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Teléfono"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Correo electrónico"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Dirección"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Chat"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organización"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relación"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Fecha especial"</string>
+    <string name="sms" msgid="1756857139634224222">"Mensaje de texto"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Dirección"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Empresa"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Cargo"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notas"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalizado"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Sitio web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiquetas"</string>
+    <string name="email_home" msgid="8573740658148184279">"Enviar correo a casa"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Enviar correo al móvil"</string>
+    <string name="email_work" msgid="2807430017302722689">"Enviar correo al trabajo"</string>
+    <string name="email_other" msgid="3454004077967657109">"Enviar correo"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Enviar un correo a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Correo electrónico"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Calle"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Ciudad"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Provincia/Estado"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Código postal"</string>
+    <string name="postal_country" msgid="7638264508416368690">"País"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ver dirección de casa"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ver dirección del trabajo"</string>
+    <string name="map_other" msgid="3817820803587012641">"Ver dirección"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Ver la dirección postal de <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chatear con AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chatear con Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chatear con Yahoo!"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chatear con Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chatear con QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chatear con Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chatear con ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chatear con Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"eliminar"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Mostrar más campos de nombre"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Ocultar los campos de nombre"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Mostrar más campos de nombre fonético"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Ocultar los campos de nombre fonético"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Mostrar"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Ocultar"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Mostrados"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Ocultados"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Todos los contactos"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Destacados"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizar"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contacto"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Todos los demás contactos"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Todos los contactos"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Eliminar grupo de sincronización"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Añadir grupo de sincronización"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Más grupos…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Si eliminas \"<xliff:g id="GROUP">%s</xliff:g>\" de las sincronización, también se eliminarán todos los contactos no agrupados."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Guardando opciones de visualización…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Vista personalizada"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Guardar contactos importados en:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Tarjeta SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contactos</item>
+      <item quantity="one">1 contacto</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contactos • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contacto • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Archivo .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"No hay nada que importar"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"¿Importar contactos de vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"¿Seguro que quieres cancelar la importación de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"¿Seguro que quieres cancelar la exportación de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Error al cancelar la importación/exportación de vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Error desconocido"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"No se ha podido abrir el archivo \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" (<xliff:g id="EXACT_REASON">%2$s</xliff:g>)."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"No se ha podido iniciar la exportación: (\"<xliff:g id="EXACT_REASON">%s</xliff:g>\")."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"No hay contactos que exportar."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Has inhabilitado un permiso necesario."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Se ha producido un error durante la exportación (\"<xliff:g id="EXACT_REASON">%s</xliff:g>\")."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Error de E/S"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"No hay suficiente espacio de memoria (el archivo puede ser demasiado grande)."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"No se admite este formato."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Exportación de <xliff:g id="FILENAME">%s</xliff:g> finalizada"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Los contactos se han exportado."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Los contactos se han exportado; haz clic en la notificación para compartirlos."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Toca para compartir los contactos."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Se ha cancelado la exportación de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportando datos de contacto"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Se están exportando los datos de los contactos."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"No se ha podido obtener información de la base de datos."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"No hay contactos que se puedan exportar."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"El redactor de vCard no se ha iniciado correctamente."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Error al exportar"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"No se han exportado los datos de contactos (\nmotivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\")."</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importando <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"No se han podido leer los datos de la vCard."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Importación de <xliff:g id="FILENAME">%s</xliff:g> de vCard finalizada"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Se ha cancelado la importación de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> se importará en breve."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"El archivo se importará en breve."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Se ha rechazado la solicitud de importación de vCard. Inténtalo de nuevo más tarde."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Los contactos se van a exportar en breve."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Se ha rechazado la solicitud de exportación de vCard. Inténtalo de nuevo más tarde."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contacto"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Se están almacenando los archivos vCard en la caché. La importación empezará pronto."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Error al importar el archivo vCard"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contacto recibido por NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Almacenando en caché"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importando <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportar a archivo .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Ordenar por"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nombre fonético"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mostrar siempre"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ocultar si está vacío"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nombre"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Apellidos"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formato de nombre"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Nombre primero"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Apellido primero"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Cuentas"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Cuenta predeterminada para nuevos contactos"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mi información"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configura tu perfil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Información sobre Contactos"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Compartir contactos favoritos"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Compartir todos los contactos"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"No se han podido compartir contactos."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportar contactos"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importar contactos de"</string>
+    <string name="share_error" msgid="948429331673358107">"No se puede compartir este contacto."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"No hay contactos que compartir."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contactos que mostrar"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contactos que mostrar"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizar vista"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Guardar"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Buscar contactos"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritos"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importar"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportar"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Números bloqueados"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"con <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> con <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"dejar de buscar"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Borrar la búsqueda"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Cuenta"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Usar siempre esta para llamadas"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Llamada con una nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Escribe una nota para enviarla con la llamada…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVIAR Y LLAMAR"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versión de la compilación"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licencias de código abierto"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalles de las licencias de software libre"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Política de Privacidad"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Condiciones de Servicio"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licencias de código abierto"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"No se ha podido abrir la URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Se ha seleccionado <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"No se ha seleccionado <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Hacer videollamada"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Eliminar"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Puntos suspensivos"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Se ha inhabilitado este acceso directo"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"El contacto se ha eliminado"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importar"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Seleccionar contactos"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"No hay ningún contacto en la tarjeta SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"El contacto ya existe en tu lista"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">Se han importado <xliff:g id="COUNT">%d</xliff:g> contactos de la SIM</item>
+      <item quantity="one">Se ha importado 1 contacto de la SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"No se han podido importar los contactos de la SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importar de la SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancelar"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"La sincronización automática está desactivada. Toca para activarla."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ignorar"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"La sincronización de la cuenta está desactivada. Toca para activarla."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"¿Activar la sincronización automática?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Los cambios que realices en todas las aplicaciones y cuentas, no solo en Contactos de Google, se actualizarán en la Web y en tus dispositivos."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Activar"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"No hay conexión"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mostrar más"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Se ha importado la tarjeta SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"No se ha podido realizar la importación"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"No se han podido importar los contactos de la tarjeta SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Se está importando la tarjeta SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
deleted file mode 100644
index 6584461..0000000
--- a/res/values-et-rEE/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktid"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontaktid"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Kuva kontakt"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Muuda kontakti"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Kontaktid"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Otsevalimine"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Otsesõnum"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Kontakti otsetee valimine"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Valige helistamiseks number"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Valige sõnumi jaoks number"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Kontaktile lisamine"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontakti valimine"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Loo uus kontakt"</string>
-    <string name="starredList" msgid="4817256136413959463">"Tärniga"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Sagedane"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Lemmikud"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontakti üksikasjad"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Muuda kontakti"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Looge kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Grupi muutmine"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Grupi loomine"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Teave"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Värskendused"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Otsige kontakte"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Kuva kontakt"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Lisa lemmikutesse"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Eemalda lemmikutest"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Lemmikutest eemaldatud"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Lemmikutesse lisatud"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Muuda"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Kustuta"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Foto vahetamine"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Paiguta avalehele"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Helista kontaktile"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Saada kontaktile SMS"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Tühista linkimine"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Muuda"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Kustuta"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Kontaktisiku lisamine"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Rühma lisamine"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Kas tühistada selle kontakti linkimine ja jagada see mitmeks kontaktiks?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Tühista linkimine"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Kas soovite tehtud muudatused salvestada, tühistada selle kontakti linkimise ja jagada selle mitmeks kontaktiks?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Salvesta ja tühista linkimine"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Kas soovite tehtud muudatused salvestada ja linkida need valitud kontaktiga?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Salvesta ja lingi"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Lingi"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Salvesta"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontaktide linkimine"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Valige kontakt, kelle soovite linkida kontaktiga <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Kuva kõik kontaktid"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Soovitatud kontaktid"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Kõik kontaktid"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktid lingiti"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Kontaktid kustutati</item>
-      <item quantity="one">Kontakt kustutati</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Määrake helin"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Kõik kõned kõneposti"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kirjutuskaitsega kontodel olevaid kontakte ei saa kustutada, kuid need saab peita."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Peida"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kustutataval kontaktil on andmeid mitmelt kontolt. Kirjutuskaitsega kontode andmed peidetakse, mitte ei kustutata."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Linkimiseks peate valima vähemalt kaks kontakti."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Kas linkida valitud kontaktid?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Lingi"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Kas kustutada see kontakt?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Kas kustutada valitud kontaktid?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kirjutuskaitsega kontodel olevaid kontakte ei saa kustutada, kuid need saab peita."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kustutatavatel kontaktidel on andmeid mitmelt kontolt. Kirjutuskaitsega kontode andmed peidetakse, mitte ei kustutata."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Selle kontakti kustutamisel kustutatakse andmed mitmelt kontolt."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Kas kustutada see kontakt?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Kustuta"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Loobu muudatustest"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakti ei ole olemas."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt lisati avaekraanile."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> lisati avaekraanile."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Loo uus kontakt"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Loo uus kontakt"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisatsioon"</item>
-    <item msgid="7196592230748086755">"Märkus"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Tahvelarvutis pole ühtegi pilti saadaval."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Telefonis pole ühtegi pilti saadaval."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakti foto"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Kohandatud sildi nimi"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Saada kõned otse kõneposti"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Eemalda foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Kontaktid puuduvad"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Grupid puuduvad."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Rühmade loomiseks vajate kontot."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Selles rühmas pole inimesi."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Lisamiseks muutke rühma."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Kontakti salvestamine ..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt on salvestatud."</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktide linkimine tühistati"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kontaktide muudatuste salvestamine ebaõnnestus."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Kontakti linkimist ei saanud tühistada."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kontakti ei saanud linkida."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Viga kontakti salvestamisel."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Kontakti foto muudatusi ei õnnestunud salvestada."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupp on salvestatud."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Rühmade muudatuste salvestamine ebaõnnestus."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> telefoninumbriga kontakti</item>
-      <item quantity="one">1 telefoninumbriga kontakt</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Telefoninumbritega kontakte pole"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">Leiti <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">Leiti 1</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Kontakte pole"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">Leiti <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">Leiti 1</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Kõik"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Lemmikud"</string>
-    <string name="callBack" msgid="5498224409038809224">"Helista tagasi"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Helista uuesti"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Tagasihelistamine"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Kas lisada „<xliff:g id="EMAIL">%s</xliff:g>” kontaktidesse?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kontakti foto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"pluss"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktist"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Teie kontaktide nimed"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Selle toimingu käsitsemiseks ei leitud ühtegi rakendust."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klõpsake eelmisele ekraanikuvale naasmiseks"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Lisage telefoninumber"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Lisage e-posti aadress"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Selle toimingu käsitlemiseks ei leitud ühtegi rakendust."</string>
-    <string name="menu_share" msgid="943789700636542260">"Jaga"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Lisa kontaktide hulka"</string>
-    <string name="share_via" msgid="563121028023030093">"Kontakti jagamisvalikud"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Kontopõhise grupi loomine"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Häälvestlus"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Videovestlus"</string>
-    <string name="connections" msgid="8098440723172028350">"Ühendused"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Lisa ühendus"</string>
-    <string name="recent" msgid="2659189233141493004">"Hiljutine"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Uusimad värskendused"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"Teenuse <xliff:g id="SOURCE">%1$s</xliff:g> konto"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Ei saa muuta selles rakenduses."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Ei saa muuta selles seadmes."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Tee foto"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Tee uus foto"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Vali foto"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Vali uus foto"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktiloendit värskendatakse."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Otsimine ..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Kuva valitud"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Kuva kõik"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Vali kõik"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Tühista kõikide valik"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Lisa uus"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Lisa organisatsioon"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Kuupäev"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Grupi nimi"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Muuda"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Põhifoto"</string>
-    <string name="description_star" msgid="2605854427360036550">"lemmik"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Muuda kontakti"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Kas linkida praegune kontakt valitud kontaktiga?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Kas lülituda valitud kontakti muutmisse? Seni sisestatud andmed kopeeritakse."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopeeri valikusse Minu kontaktid"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Lisa lehele Minu kontaktid"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Kataloog <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Kohandatud"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Seaded"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Seaded"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Abi ja tagasiside"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Kuvamisvalikud"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Telefoninumber"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Lisa kontaktidesse"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Kontaktile lisamine"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Sule"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Lisa aasta"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Laadimine ..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Loo uus kontakt"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Lisa konto"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Impordi kontaktid"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Uue grupi loomine"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Loo uus rühm"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> rühma</item>
-      <item quantity="one">1 rühm</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Kas kustutada rühm „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”? (Kontakte ei kustutata.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> inimest kontolt <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> inimene kontolt <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> inimest</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> inimene</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Enne teise kontaktiga linkimist sisestage kontakti nimi."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Kopeeri lõikelauale"</string>
-    <string name="set_default" msgid="4417505153468300351">"Määra vaikeseadeks"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Kustuta vaikeseaded"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Tekst on kopeeritud"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Kas loobute oma muudatustest?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Loobu"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Minu profiili seadistamine"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Sisestage isiku nimi"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Rühma nimi"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Minu kohalik profiil"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Minu profiil: <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Kõigi kontaktide kuvamine"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Teenus Kontaktid töötab Google\'i kontoga paremini.\n\n• Pääsete sellele juurde igast veebibrauserist.\n• Varundage oma kontaktid turvaliselt."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Hoidke oma kontaktid turvalisena ka siis, kui kaotate telefoni: sünkroonige need võrguteenusega."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Konto lisamine"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Teie uut kontakti ei varundata. Kas lisada konto, mis varundab kontakte veebis?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Uued kontaktid salvestatakse kontole <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Valige uute kontaktide jaoks vaikekonto:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Kontakti lisamine"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontakti muutmine"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Hoia kohalikuna"</string>
-    <string name="add_account" msgid="8201790677994503186">"Lisa konto"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Lisa uus konto"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Andmebaasi failide eksportimine"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"uue kontakti lisamine"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Lisateave"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Kuva vähem"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Kuva kõik"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Hiljutine"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Teave"</string>
-    <string name="send_message" msgid="8938418965550543196">"Saada sõnum"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Isikliku koopia loomine ..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Eile"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Homme"</string>
-    <string name="today" msgid="8041090779381781781">"Täna"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Täna kell <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Homme kell <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Pealkirjata sündmus)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Määra"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Organisatsioon"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Hüüdnimi"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Märge"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Veebisait"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Sündmus"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Seos"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Konto"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Nimi"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"E-post"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Klõpsake kontaktiredigeerija laiendamiseks."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Klõpsake kontaktiredigeerija ahendamiseks."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"juhised asukohta"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"viimane SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klõpsake vastamiseks"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"sissetulevad"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"väljaminevad"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"vastamata"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"viimane kõne. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klõpsake tagasihelistamiseks"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Teie: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts toimib paremini, kui sisestate isiku Hangoutsi koodi e-posti aadressi või telefoninumbri väljale."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Rohkem välju"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Foto vahetamine"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Redigeerija avamine nurjus."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Salvestamine asukohta"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Praegu salvestatakse kontole <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Teise konto valimiseks topeltpuudutage."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Lingitud kontaktid (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Lingitud kontakt</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> lingitud kontakti"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LINGI KONTAKTID"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"TÜHISTA"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> võimalikku duplikaati</item>
-      <item quantity="one">1 võimalik duplikaat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> lingitud kontakti</item>
-      <item quantity="one">1 lingitud kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"See kontakt"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Võimalikud duplikaadid"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Need kontaktid võivad olla sama isik. Saate need linkida üheks kontaktiks."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Lingitud kontaktid"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Teie kontodelt"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Foto jäädvustamine"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Kõik fotod"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Foto valimine"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Kontolt <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Kustuta <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Kustuta <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto kasutajalt <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> pole märgitud"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto kasutajalt <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> on märgitud"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Tundmatult kontolt pärinev foto pole märgitud"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Tundmatult kontolt pärinev foto on märgitud"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kontaktiloendit värskendatakse keele muutmise kajastamiseks.\n\nPalun oodake ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Lisa number"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokeeri number"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Lisage nr või otsige kontakte"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Kas soovite deblokeerida numbri <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKEERI"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Kas soovite blokeerida numbri <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKEERI"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Number <xliff:g id="NUMBER">%1$s</xliff:g> on blokeeritud"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Number <xliff:g id="NUMBER">%1$s</xliff:g> on deblokeeritud"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> on kehtetu."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Kõnede blokeerimine on ajutiselt väljas"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Kõnede blokeerimine on keelatud, kuna võtsite sellelt telefonilt viimase 48 tunni jooksul ühendust hädaabiteenustega. See lubatakse 48 tunni möödumisel automaatselt uuesti."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Impordi"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Vaata numbreid"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Lisa number"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Kõnede blokeerimine on 48 tunniks keelatud"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Keelatud, kuna tehti hädaabikõne."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"VÕTA TAG."</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> on juba blokeeritud."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Numbri deblokeerimine"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Kontakti <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> üksikasjad"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importimine ebaõnnestus"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Impordi numbrid"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Kontaktide otsimiseks lülitage sisse kontaktiload."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Lülita sisse"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
new file mode 100644
index 0000000..744e24b
--- /dev/null
+++ b/res/values-et/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktid"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Kontaktid"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Kontakti lisamine"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Otsevalimine"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Otsesõnum"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Kontakti valimine"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Kontaktile lisamine"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontakti valimine"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Valimine"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Loo uus kontakt"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Otsige kontakte"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Lisa lemmikutesse"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Eemalda lemmikutest"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Lemmikutest eemaldatud"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Lemmikutesse lisatud"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Muuda"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Kustuta"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Foto vahetamine"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Loo otsetee"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Tühista linkimine"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Eemalda kontaktid"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Nimeta silt ümber"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Kustuta silt"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Kontakti lisamine"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Vali kontaktid"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Lisa kontakte"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Eemalda sildilt"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Sildi loomine"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Kas tühistada selle kontakti linkimine ja jagada see mitmeks kontaktiks?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Tühista linkimine"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Kas soovite tehtud muudatused salvestada, tühistada selle kontakti linkimise ja jagada selle mitmeks kontaktiks?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Salvesta ja tühista linkimine"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Kas soovite tehtud muudatused salvestada ja linkida need valitud kontaktiga?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Salvesta ja lingi"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Linkimine"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Linkimise tühistamine"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Lingi"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Kuva lingitud kontaktid"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Salvesta"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontaktide linkimine"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Valige kontakt, kelle soovite linkida kontaktiga <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Soovitatud kontaktid"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Kõik kontaktid"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> on lingitud"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktid lingiti"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> on kustutatud"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> ja <xliff:g id="NAME_1">%2$s</xliff:g> on kustutatud"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g> … on kustutatud"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Kontaktid kustutati</item>
+      <item quantity="one">Kontakt kustutati</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakti</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakti · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google\'ilt"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Kontolt <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Määra helin"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Suuna kõneposti"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Tühista kõneposti suunamine"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Kontakt on kirjutuskaitstud. Seda ei saa kustutada, ent saate selle peita."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Peida kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Kontakti kirjutuskaitstud kontod peidetakse ja neid ei kustutata."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Kas kustutada see kontakt?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Kas kustutada valitud kontaktid?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kirjutuskaitsega kontodel olevaid kontakte ei saa kustutada, kuid need saab peita."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kustutatavatel kontaktidel on andmeid mitmelt kontolt. Kirjutuskaitsega kontode andmed peidetakse, mitte ei kustutata."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Selle kontakti kustutamisel kustutatakse andmed mitmelt kontolt."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Kas kustutada see kontakt?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Kustuta"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakti ei ole olemas."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt lisati avaekraanile."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> lisati avaekraanile."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Seadmes pole ühtegi pilti saadaval."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakti foto"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Kohandatud sildi nimi"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Eemalda foto"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Teie kontaktiloend on tühi"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Selle sildiga kontakte pole"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Kontol ei ole ühtki kontakti"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Teie kontaktiloend on tühi"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> on salvestatud"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt on salvestatud."</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktide linkimine tühistati"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Kontakti muudatusi ei õnnestunud salvestada"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Kontakti linkimist ei õnnestunud tühistada"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontakti ei saanud linkida"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Viga kontakti salvestamisel"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Kontakti foto muudatusi ei õnnestunud salvestada"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Sildi laadimine ebaõnnestus"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Silt on kustutatud"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Silt on loodud"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Silti ei saa luua"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Silt on värskendatud"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Eemaldatud sildilt"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Lisati sildile"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Sildi muudatusi ei õnnestunud salvestada"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"See silt on juba olemas"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Mõnel kontaktil pole e-posti aadressi."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Mõnel kontaktil pole telefoninumbrit."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Saada meil"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Saada sõnum"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Kontaktide valimine"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Saada"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Kontakte pole"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Kas lisada „<xliff:g id="EMAIL">%s</xliff:g>” kontaktidesse?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Teie kontaktide nimed"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klõpsake eelmisele ekraanikuvale naasmiseks"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Lisage telefoninumber"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Lisage e-posti aadress"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Selle toimingu käsitlemiseks ei leitud ühtegi rakendust."</string>
+    <string name="menu_share" msgid="943789700636542260">"Jaga"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Lisa kontaktide hulka"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Lisamine"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Kontaktide jagamine rakendusega</item>
+      <item quantity="one">Kontakti jagamine rakendusega</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Konto valimine"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Sildi loomine"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Sildi ümbernimetamine"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Sildi nimi"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Sildi nimi"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Häälvestlus"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Videovestlus"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"Teenuse <xliff:g id="SOURCE">%1$s</xliff:g> konto"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Tee foto"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Tee uus foto"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Vali foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Vali uus foto"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Otsimine ..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Kuupäev"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Silt"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Tühista"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Tagasi"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"sule"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Kas lülituda valitud kontakti muutmisse? Seni sisestatud andmed kopeeritakse."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Kataloog <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Seaded"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Seaded"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Abi ja tagasiside"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Telefoninumber"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Lisa kontaktidesse"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Sule"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Kaasa aasta"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Konto lisamine"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importimine"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Uue loomine …"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Kas kustutada silt „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”? (Kontakte ei kustutata.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Enne teise kontaktiga linkimist sisestage kontakti nimi."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Kopeeri lõikelauale"</string>
+    <string name="set_default" msgid="4417505153468300351">"Määra vaikeseadeks"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Kustuta vaikeseaded"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Tekst on kopeeritud"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Kas soovite muudatustest loobuda?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Loobu"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Tühista"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Kas soovite kohandamistest loobuda?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Otsige kontakte"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Kontaktide eemaldamine"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Minu kohalik profiil"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Minu profiil: <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Leidke pisut aega ja lisage konto, mis varundab teie kontaktid Google\'is."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Uued kontaktid salvestatakse kontole <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Valige uute kontaktide jaoks vaikekonto:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Uue kontakti loomine"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontakti muutmine"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Vaid vaatamiseks"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Valige kontakt, mida soovite muuta"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Lingitud kontaktid"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Lisamine"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Link. tühistam."</string>
+    <string name="add_account" msgid="8201790677994503186">"Konto lisamine"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Lisa uus konto"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Andmebaasi failide eksportimine"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Loo uus kontakt"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Lisateave"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Kuva vähem"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Hiljutine"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Teave"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Isikliku koopia loomine ..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Homme"</string>
+    <string name="today" msgid="8041090779381781781">"Täna"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Täna kell <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Homme kell <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Pealkirjata sündmus)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Määra"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Kiirsuhtlus"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisatsioon"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Hüüdnimi"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Märge"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Veebisait"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Sündmus"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Seos"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Nimi"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"E-post"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"juhised asukohta"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"viimane SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klõpsake vastamiseks"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"sissetulevad"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"väljaminevad"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"vastamata"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"viimane kõne. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klõpsake tagasihelistamiseks"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Teie: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Rohkem välju"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Kontakti foto muutmine"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Kontakti foto lisamine"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontakti foto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Redigeerija avamine ebaõnnestus."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Salvestamine asukohta"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontaktiteavet kontol <xliff:g id="ACCOUNT">%s</xliff:g> ei saa muuta"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LINGI KONTAKTID"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"TÜHISTA"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"See kontakt"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Võimalikud duplikaadid"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Need kontaktid võivad olla sama isik. Saate need linkida üheks kontaktiks."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Kustuta <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Kustuta <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Soovitused"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Uus"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Ava navigeerimissahtel"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Sule navigeerimissahtel"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Silt <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Sildid"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Kontod"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Ajaloo koos kuvamine"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Sündmused ja sõnumid"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Sündmused"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Sõnumid"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Soovitused"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Hoidke kontaktid korrastatute ja kasulikena"</string>
+    <string name="undo" msgid="1425165101664071422">"Võta tagasi"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Helista: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Helista kodu telefoninumbrile"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Helista mobiilinumbrile"</string>
+    <string name="call_work" msgid="5328785911463744028">"Helista töönumbrile"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Helista tööfaksinumbrile"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Helista kodu faksinumbrile"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Helista piiparinumbrile"</string>
+    <string name="call_other" msgid="8563753966926932052">"Helista"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Helista tagasihelistusnumbrile"</string>
+    <string name="call_car" msgid="3280537320306436445">"Helista autotelefoninumbrile"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Helista ettevõtte põhinumbrile"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Helista ISDN-telefoninumbrile"</string>
+    <string name="call_main" msgid="6082900571803441339">"Helista põhinumbrile"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Helista faksinumbrile"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Helista raadiotelefoninumbrile"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Helista teleksinumbrile"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Helista TTY-/TDD-numbrile"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Helista töömobiilinumbrile"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Helista tööpiiparinumbrile"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Helista: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Helista MMS-i numbrile"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (helistamine)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Saada SMS: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Saada SMS kodu telefoninumbrile"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Saada SMS mobiilinumbrile"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Saada SMS töönumbrile"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Saada SMS tööfaksinumbrile"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Saada SMS kodusele faksinumbrile"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Saada SMS piiparinumbrile"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Saada SMS tagasihelistusnumbrile"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Saada SMS autotelefoninumbrile"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Saada SMS ettevõtte peamisele telefoninumbrile"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Saada SMS ISDN-telefoninumbrile"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Saada SMS põhinumbrile"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Saada SMS faksinumbrile"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Saada SMS raadiotelefoninumbrile"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Saada SMS teleksinumbrile"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Saada SMS TTY-/TDD-numbrile"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Saada SMS töömobiilinumbrile"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Saada SMS tööpiiparinumbrile"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Saada SMS numbrile <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Saada MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (sõnum)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Videokõne tegemine"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Kas kustutada sagedased kontaktid?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Kustutate rakendustes Kontaktid ja Telefon sagedaste kontaktide loendi, mistõttu meilirakendused peavad teie adresseerimiseelistused uuesti omandama."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Saged. kontaktide kustutamine ..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Saadaval"</string>
+    <string name="status_away" msgid="1838861100379804730">"Eemal"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Hõivatud"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Muu"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Kataloog"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Töökontaktide kataloog"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Kõik kontaktid"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Kiirkontakt: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Nimi puudub)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Sageli valitud kontaktid"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Kõik telefoninumbritega kontaktid"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Tööprofiili kontaktid"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Kuva värskendused"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Seade"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM-kaart"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nimi"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Hüüdnimi"</string>
+    <string name="name_given" msgid="4280790853455320619">"Eesnimi"</string>
+    <string name="name_family" msgid="7466985689626017037">"Perekonnanimi"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Nime eesliide"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Teine nimi"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Nime järelliide"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Foneetiline nimi"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Foneetiline eesnimi"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Foneetiline keskmine nimi"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Foneetiline perekonnanimi"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-post"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Aadress"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM (Kiirsuhtlus)"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisatsioon"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Suhe"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Erikuupäev"</string>
+    <string name="sms" msgid="1756857139634224222">"Tekstsõnum"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Aadress"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Ettevõte"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Pealkiri"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Märkused"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Kohandatud"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Veebisait"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Sildid"</string>
+    <string name="email_home" msgid="8573740658148184279">"Saada meilisõnum kodusele aadressile"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Saada meilisõnum mobiilile"</string>
+    <string name="email_work" msgid="2807430017302722689">"Saada meiliaadress tööaadressile"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-post"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Saada meil: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-post"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Tänav"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Linn"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Riik"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Sihtnumber"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Riik"</string>
+    <string name="map_home" msgid="1243547733423343982">"Vaata kodu aadressi"</string>
+    <string name="map_work" msgid="1360474076921878088">"Vaata tööaadressi"</string>
+    <string name="map_other" msgid="3817820803587012641">"Vaata aadressi"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Kuva aadress: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Vestle AIM-i kasutades"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Vestle Windows Live\'i abil"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Vestle Yahoo abil"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Vestle Skype\'i abil"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Vestle QQ abil"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Vestle Google Talki kasutades"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Vestle ICQ-d kasutades"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Vestle Jabberi abil"</string>
+    <string name="chat" msgid="9025361898797412245">"Vestlus"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"kustutamine"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Kuva rohkem nimevälju"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Nimeväljade ahendamine"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Kuva rohkem foneetiliste nimede välju"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Foneetiliste nimede väljade ahendamine"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Laiendamine"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Ahendamine"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Laiendatud"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Ahendatud"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Kõik kontaktid"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Tärniga tähistatud"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Kohanda"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Kõik teised kontaktid"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Kõik kontaktid"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Eemalda sünkroonimisrühm"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Lisa sünkroonimisrühm"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Rohkem rühmi ..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Rühma „<xliff:g id="GROUP">%s</xliff:g>” eemaldamisel sünkroonimisest eemaldatakse sünkroonimisest ka kõik rühmitamata kontaktid."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Kuvavalikute salvestamine ..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Kohandatud vaade"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Imporditud kontaktid salvestatakse kontole:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-kaart"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM-kaart <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kontakti</item>
+      <item quantity="one">1 kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakti • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"VCF-fail"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Midagi pole importida"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Kas importida kontaktid vCardist?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Kas tühistada faili <xliff:g id="FILENAME">%s</xliff:g> importimine?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Kas tühistada faili <xliff:g id="FILENAME">%s</xliff:g> eksportimine?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCardi impordi/ekspordi tühist. ebaõnn."</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Tundmatu viga."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Faili „<xliff:g id="FILE_NAME">%1$s</xliff:g>” ei saa avada: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Eksportijat ei saa lähtestada: „<xliff:g id="EXACT_REASON">%s</xliff:g>”."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Eksporditavad kontaktid puuduvad."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Olete nõutud loa keelanud."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Viga eksportimisel: „<xliff:g id="EXACT_REASON">%s</xliff:g>”."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O viga"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Pole piisavalt mälu. Fail võib olla liiga suur."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Vormingut ei toetata."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Faili <xliff:g id="FILENAME">%s</xliff:g> eksportimine on lõpetatud."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Kontaktide eksportimine lõpetati."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontaktide eksportimine lõpetati. Kontaktide jagamiseks klõpsake märguandel."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Puudutage kontaktide jagamiseks."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Faili <xliff:g id="FILENAME">%s</xliff:g> eksportimine tühistati."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kontaktandmete eksportimine"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontaktandmed eksporditakse."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Andmebaasiteabe hankimine ebaõnnestus."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Eksporditavaid kontakte ei ole."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCardi helilooja ei käivitunud korralikult."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Eksport ebaõnnestus"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontaktandmeid ei eksporditud.\nPõhjus: „<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importimine: <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCardi andmete lugemine ebaõnnestus"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCardi faili <xliff:g id="FILENAME">%s</xliff:g> importimine on lõpetatud"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Faili <xliff:g id="FILENAME">%s</xliff:g> importimine tühistati"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Fail <xliff:g id="FILENAME">%s</xliff:g> imporditakse peagi."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Fail imporditakse peagi."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCardi importimistaotlus lükati tagasi. Proovige hiljem uuesti."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontaktid eksporditakse peagi."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCardi eksportimistaotlus lükati tagasi. Proovige hiljem uuesti."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCardi(de) vahemälustamine kohalikku ajutisse mäluruumi. Tegelik importimine algab peagi."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCardi importimine ebaõnnestus."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt võeti vastu  NFC kaudu"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Vahemällu salvestamine"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importimine: <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Eksportimine VCF-faili"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortimisalus:"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Foneetiline nimi"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Kuva alati"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Peida, kui see on tühi"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Eesnimi"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Perekonnanimi"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Nimevorming"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Eesnimi enne"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Perekonnanimi enne"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Kontod"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Vaikekonto uute kontaktide jaoks"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Minu teave"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Seadistage oma profiil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Teave rakenduse Kontaktid kohta"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Jaga lemmikkontakte"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Jaga kõiki kontakte"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kontaktide jagamine ebaõnnestus."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Kontaktide eksportimine"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Kontaktide importimine asukohast"</string>
+    <string name="share_error" msgid="948429331673358107">"Seda kontakti ei saa jagada."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Jagamiseks ei ole ühtki kontakti."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kuvatavad kontaktisikud"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kuvatavad kontaktid"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Vaate kohandamine"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Salvesta"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Otsi kontakte"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Lemmikud"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importimine"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksportimine"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokeeritud numbrid"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"allika <xliff:g id="SOURCE">%1$s</xliff:g> kaudu"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> allika <xliff:g id="SOURCE">%2$s</xliff:g> kaudu"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"otsimise peatamine"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Otsingu kustutamine"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Konto"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Kasuta helistamiseks alati seda"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Kõne koos märkusega"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Sisestage märkus, mis koos kõnega saata …"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SAADA JA HELISTA"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Järguversioon"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Avatud lähtekoodi litsentsid"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Avatud lähtekoodiga tarkvara litsentsi üksikasjad"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Privaatsuseeskirjad"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Teenusetingimused"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Avatud lähtekoodi litsentsid"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"URL-i avamine ebaõnnestus."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Üksus <xliff:g id="ACCOUNT_INFO">%s</xliff:g> on märgitud"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Üksus <xliff:g id="ACCOUNT_INFO">%s</xliff:g> pole märgitud"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Videokõne tegemine"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Kustuta"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Mõttepunktid"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"See otsetee on keelatud"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt eemaldati"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Impordi"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Kontaktide valimine"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Teie SIM-kaardil pole ühtegi kontakti"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt on teie loendis juba olemas"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-kaardi kontakti imporditi</item>
+      <item quantity="one">1 SIM-kaardi kontakt imporditi</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-kaardi kontaktide importimine ebaõnnestus"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM-kaardilt importimine"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Tühista"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automaatne sünkroonimine on välja lülitatud. Puudutage sisselülitamiseks."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Loobu"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Automaatne sünkroonimine on välja lülitatud. Puudutage sisselülitamiseks."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Kas soovite automaatse sünkroonimise sisse lülitada?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Kõikides rakendustes ja kontodel tehtud muudatused (mitte ainult Google\'i kontaktid) sünkroonitakse ajakohasena hoidmiseks veebi ning teie seadmete vahel."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Lülita sisse"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Ühendus puudub"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-kaart"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Kuva rohkem"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM-kaardi importimine viidi lõpule"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Importimine ebaõnnestus"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kontakte ei õnnestunud SIM-kaardilt importida"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM-kaardi importimine"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
deleted file mode 100644
index 5b97fc7..0000000
--- a/res/values-eu-rES/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktuak"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontaktuak"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Ikusi kontaktua"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Editatu kontaktua"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Kontaktuak"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Kontaktua"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Markatze zuzena"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mezu zuzena"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Aukeratu kontakturako lasterbidea"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Aukeratu deitzeko zenbaki bat"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Aukeratu testu-mezua bidaltzeko zenbaki bat"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Gehitu kontaktu batean"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Aukeratu kontaktu bat"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Sortu kontaktua"</string>
-    <string name="starredList" msgid="4817256136413959463">"Izardunak"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Sarri"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Gogokoak"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontaktuaren xehetasunak"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Editatu kontaktua"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Sortu kontaktua"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Editatu taldea"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Sortu taldea"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Honi buruz"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Eguneratzeak"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Bilatu kontaktuetan"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Ikusi kontaktua"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Gehitu gogokoetan"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Kendu gogokoetatik"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Gogokoetatik kendu da"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Gogokoetan gehitu da"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Editatu"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Ezabatu"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Aldatu argazkia"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Jarri hasierako pantailan"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Deitu kontaktuari"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Bidali testu-mezua kontaktuari"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Desestekatu"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Editatu"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Ezabatu"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Gehitu kontaktua"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Gehitu taldea"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Kontaktuaren loturak desegin eta hainbat kontaktutan banandu nahi duzu?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Banandu"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Egin dituzun aldaketak gorde, eta hautatutako kontaktua hainbat kontaktutan banandu nahi duzu?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Gorde eta banandu"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Egin dituzun aldaketak gorde, eta hautatutako kontaktuarekin lotu nahi duzu?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Gorde eta lotu"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Estekatu"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Gorde"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Lotu kontaktuak"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Aukeratu <xliff:g id="NAME">%s</xliff:g> kontaktuarekin lotu nahi duzuna:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Erakutsi kontaktu guztiak"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Gomendatutako kontaktuak"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Kontaktu guztiak"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Estekatu dira kontaktuak"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Ezabatu dira kontaktuak</item>
-      <item quantity="one">Ezabatu da kontaktua</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Ezarri tonua"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Erantzungailuko dei guztiak"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Irakurtzeko soilik diren kontuetako kontaktuak ezin dira ezabatu, baina ezkutatu egin daitezke."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ezkutatu"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Ezabatzeko hautatu duzun kontaktuak hainbat kontutako informazioa du. Irakurtzeko soilik diren kontuetako informazioa kontaktuen zerrendatik ezkutatuko da, baina ez da ezabatuko."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Gutxienez bi kontaktu behar dituzu estekatu ahal izateko."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Hautatutako kontaktuak lotu nahi dituzu?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Lotu"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Kontaktua ezabatu nahi duzu?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Hautatutako kontaktuak ezabatu nahi dituzu?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Irakurtzeko soilik diren kontuetako kontaktuak ezin dira ezabatu, baina ezkutatu egin daitezke."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Ezabatzeko hautatu dituzun kontaktuek hainbat kontutako informazioa dute. Irakurtzeko soilik diren kontuetako informazioa kontaktuen zerrendatik ezkutatuko da, baina ez da ezabatuko."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Kontaktua ezabatzen baduzu, hainbat kontutatik ezabatuko da informazioa."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Kontaktua ezabatu nahi duzu?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Ezabatu"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Baztertu aldaketak"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Ez dago horrelako kontakturik."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Hasierako pantailan gehitu da kontaktua."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Hasierako pantailan gehitu da <xliff:g id="NAME">%s</xliff:g>."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Sortu kontaktua"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Sortu kontaktua"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Erakundea"</item>
-    <item msgid="7196592230748086755">"Oharra"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Ez dago irudi erabilgarririk tabletan."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Ez dago irudi erabilgarririk telefonoan."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontaktuaren argazkia"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Etiketa pertsonalizatuaren izena"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Bidali deiak zuzenean erantzungailura"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Kendu argazkia"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Ez dago kontakturik"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Ez dago talderik."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Taldeak sortzeko, kontu bat behar duzu."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Ez dago jenderik talde honetan."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Batzuk gehitzeko, editatu taldea."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Kontaktua gordetzen…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Gorde da kontaktua"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kendu da kontaktuen lotura"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Ezin izan dira gorde kontaktuari egindako aldaketak."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Ezin izan da kendu kontaktuaren lotura."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Ezin izan da lotu kontaktua."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Errore bat gertatu da kontaktua gordetzean."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Ezin izan dira gorde kontaktuaren argazkiari egindako aldaketak."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Taldea gorde da."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Ezin izan dira gorde taldeari egindako aldaketak."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktuk telefono-zenbakia dute</item>
-      <item quantity="one">Kontaktu batek telefono-zenbakia du</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ez dago telefono-zenbakirik duen kontakturik"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> aurkitu dira</item>
-      <item quantity="one">Bat aurkitu da</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Ez dago kontakturik"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> aurkitu dira</item>
-      <item quantity="one">Bat aurkitu da</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Guztiak"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Gogokoak"</string>
-    <string name="callBack" msgid="5498224409038809224">"Itzuli deia"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Deitu berriro"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Itzuli deia"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" kontaktuetan gehitu?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kontaktuaren argazkia"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"gehi"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktu"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Kontaktuen izenak"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Ez da ekintza kudeatzeko aplikaziorik aurkitu."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Egin klik hemen aurreko pantailara itzultzeko"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Gehitu telefono-zenbakia"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Gehitu helbide elektronikoa"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Ez da ekintza kudeatzeko aplikaziorik aurkitu."</string>
-    <string name="menu_share" msgid="943789700636542260">"Partekatu"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Gehitu kontaktuetan"</string>
-    <string name="share_via" msgid="563121028023030093">"Partekatu kontaktua honen bidez:"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Sortu taldea kontuaren barruan"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Ahots-txata"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Bideo-txata"</string>
-    <string name="connections" msgid="8098440723172028350">"Konexioak"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Gehitu konexioa"</string>
-    <string name="recent" msgid="2659189233141493004">"Azkenak"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Azken berritasunak"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontaktua"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> kontua"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Ezin da aplikazio honen bidez editatu."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Ezin da gailu honetan editatu."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Atera argazkia"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Atera beste argazki bat"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Aukeratu argazkia"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Hautatu argazki berria"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktuen zerrenda eguneratzen ari da."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Bilatzen…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Erakutsi hautatutakoak"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Erakutsi guztiak"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Hautatu guztiak"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Desautatu guztiak"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Gehitu beste bat"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Gehitu erakundea"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Taldearen izena"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Aldatu"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Argazki nagusia"</string>
-    <string name="description_star" msgid="2605854427360036550">"gogokoa"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Editatu kontaktua"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Uneko kontaktua eta hautatutako kontaktua lotu nahi dituzu?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Hautatutako kontaktua editatu nahi duzu? Orain arte idatzi duzun informazioa kopiatu egingo da."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiatu Nire kontaktuetan"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Gehitu Nire kontaktuak atalean"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> direktorioa"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Pertsonalizatua"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Ezarpenak"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Ezarpenak"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Laguntza eta iritziak"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Bistaratze-aukerak"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Telefono-zenbakia"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Gehitu kontaktuetan"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Gehitu kontaktuan"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Itxi"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Sartu urtea"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontaktua"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Kargatzen…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Sortu kontaktua"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Gehitu kontua"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Inportatu kontaktuak"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Sortu taldea"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Sortu taldea"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> talde</item>
-      <item quantity="one">Talde bat</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" taldea ezabatu nahi duzu? (Ez dira kontaktuak ezabatuko.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> taldeko <xliff:g id="COUNT_2">%1$d</xliff:g> pertsona</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> taldeko <xliff:g id="COUNT_0">%1$d</xliff:g> pertsona</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> pertsona</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> pertsona</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Beste batekin lotu aurretik, idatzi kontaktuaren izena."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Kopiatu arbelean"</string>
-    <string name="set_default" msgid="4417505153468300351">"Ezarri lehenetsi gisa"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Garbitu metodo lehenetsia"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Testua kopiatu da"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Aldaketak baztertu nahi dituzu?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Baztertu"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> (<xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>)"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Konfiguratu nire profila"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Idatzi pertsonaren izena"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Taldearen izena"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Gailuko profila"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Nire <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profila"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Kontaktu guztiak bistaratzen"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktuak atalak hobeto funtzionatzen du Google kontu bat estekatzen badiozu.\n\n• Atzitu edozein web-arakatzailetatik.\n• Gorde kontaktuen babeskopiak toki seguru batean."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Izan kontaktuak seguru telefonoa galduta ere: sinkronizatu sareko zerbitzu batekin."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Gehitu kontu bat"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Ez da kontaktu berriaren babeskopiarik egingo. Kontaktuen babeskopia sarean gordetzeko kontua gehitu nahi duzu?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"<xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> kontuan gordeko dira kontaktu berriak."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Aukeratu kontaktu berriak gordetzeko erabili nahi duzun kontua:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Gehitu kontaktu berria"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editatu kontaktua"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Mantendu gailuan"</string>
-    <string name="add_account" msgid="8201790677994503186">"Gehitu kontua"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Gehitu beste kontu bat"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Esportatu datu-baseko fitxategiak"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"gehitu kontaktu berri bat"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ikusi gehiago"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ikusi gutxiago"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ikusi guztiak"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Azkenak"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Honi buruz"</string>
-    <string name="send_message" msgid="8938418965550543196">"Bidali mezua"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Kopia pertsonala sortzen…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Atzo"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Bihar"</string>
-    <string name="today" msgid="8041090779381781781">"Gaur"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Gaur (<xliff:g id="TIME_INTERVAL">%s</xliff:g>)"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Bihar (<xliff:g id="TIME_INTERVAL">%s</xliff:g>)"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g> (<xliff:g id="TIME_INTERVAL">%s</xliff:g>)"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Izenik gabeko gertaera)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Ezarri"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Erakundea"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Goitizena"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Oharra"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Webgunea"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Gertaera"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Erlazioa"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Kontua"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Izena"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"Helbide elektronikoa"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Telefonoa"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Argazkia"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Egin klik kontaktuen editorea zabaltzeko."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Egin klik kontaktuen editorea tolesteko."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"kokapenerako jarraibideak"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"duela gutxiko SMSa. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. sakatu erantzuteko"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"sarrerakoa"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"irteerakoa"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"galdua"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"duela gutxiko deia. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. sakatu deitzeko"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Zu: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts-ek hobeto funtzionatzen du pertsonaren Hangouts identifikatzailea idazten baduzu helbide elektronikoaren edo telefonoaren eremuan."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Eremu gehiago"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Aldatu argazkia"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Ezin izan da ireki editorea."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Gorde hemen:"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> kontuan gordetzen dira kontaktuak. Beste kontu bat hautatzeko, sakatu birritan."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Lotutako kontaktuak (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Lotutako kontaktu bat</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> kontaktu lotuta"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LOTU KONTAKTUAK"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"UTZI"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> bikoiztu posible</item>
-      <item quantity="one">Bikoiztu posible bat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">Lotutako <xliff:g id="COUNT">%d</xliff:g> kontaktu</item>
-      <item quantity="one">Lotutako kontaktu bat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Kontaktu hau"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Baliteke bikoiztuak egotea"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Kontaktu hauek pertsona bera izan daitezke. Lotu egin ditzakezu, informazioa kontaktu bakarrean bilduta izateko."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Estekatutako kontaktuak"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Zure kontuetatik"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Atera argazkia"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Argazki guztiak"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Aukeratu argazkia"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Kontua: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Ezabatu <xliff:g id="DATA_TYPE">%s </xliff:g> <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Ezabatu <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Ez da hautatu <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> erabiltzailearen kontuko argazkia"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Hautatu da <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> erabiltzailearen kontuko argazkia"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Kontu ezezaguneko argazkia hautatu gabe dago"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Kontu ezezaguneko argazkia hautatu da"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kontaktuen zerrenda eguneratzen ari da hizkuntzaren aldaketa aplikatzeko.\n\nItxaron, mesedez…"</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Gehitu zenbakia"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokeatu zenbakia"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Gehitu zk. edo bilatu kontaktua"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> desblokeatu nahi duzu?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOKEATU"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatu nahi duzu?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKEATU"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatuta"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> desblokeatuta"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> zenbakiak ez du balio."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Deien blokeoa aldi baterako desgaituta"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Deiak blokeatzeko aukera desgaitu egin da, azken 48 orduetan larrialdi-zerbitzuekin harremanetan jarri zarelako telefono honetatik. Berriro gaituko da 48 orduko epea igaro ondoren."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Inportatu"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ikusi zenbakiak"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Gehitu zenbakia"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Deiak blokeatzeko aukera desgaituta egongo da 48 orduan"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desgaituta dago, larrialdi-dei bat egin delako."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"DESEGIN"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatuta dago dagoeneko."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desblokeatu zenbakia"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> kontaktuaren xehetasunak"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ezin izan da inportatu"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Inportatu zenbakiak"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktibatu"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
new file mode 100644
index 0000000..7776242
--- /dev/null
+++ b/res/values-eu/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktuak"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Kontaktuak"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Gehitu kontaktua"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Kontaktua"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Markatze zuzena"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mezu zuzena"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Aukeratu kontaktua"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Gehitu kontaktu batean"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Aukeratu kontaktu bat"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Hautatu"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Sortu kontaktua"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Bilatu kontaktuetan"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Gehitu gogokoetan"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Kendu gogokoetatik"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Gogokoetatik kendu da"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Gogokoetan gehitu da"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Editatu"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Ezabatu"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Aldatu argazkia"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Sortu lasterbidea"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Desestekatu"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Kendu kontaktuak"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Aldatu etiketaren izena"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Ezabatu etiketa"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Gehitu kontaktua"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Hautatu kontaktuak"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Gehitu kontaktuak"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Kendu etiketatik"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Sortu etiketa"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Kontaktuaren loturak desegin eta hainbat kontaktutan banandu nahi duzu?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Banandu"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Egin dituzun aldaketak gorde, eta hautatutako kontaktua hainbat kontaktutan banandu nahi duzu?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Gorde eta banandu"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Egin dituzun aldaketak gorde, eta hautatutako kontaktuarekin lotu nahi duzu?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Gorde eta lotu"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Lotzen"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Lotura kentzen"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Lotu"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Ikusi lotutako kontaktuak"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Gorde"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Lotu kontaktuak"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Aukeratu <xliff:g id="NAME">%s</xliff:g> kontaktuarekin lotu nahi duzuna:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Gomendatutako kontaktuak"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Kontaktu guztiak"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Lotu da <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Estekatu dira kontaktuak"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Ezabatu da <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Ezabatu dira <xliff:g id="NAME_0">%1$s</xliff:g> eta <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Ezabatu dira <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Ezabatu dira kontaktuak</item>
+      <item quantity="one">Ezabatu da kontaktua</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontaktu</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontaktu</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google-koak"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> kontukoak"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Ezarri tonua"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Desbideratu erantzungailura"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ez desbideratu erantzungailura"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Soilik irakurtzekoa da kontaktu hau. Ezin da ezabatu, baina ezkutatu egin dezakezu."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ezkutatu kontaktua"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Ezkutatu egingo dira soilik irakurtzekoak diren kontuak kontaktu honetan; ez dira ezabatuko."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Kontaktua ezabatu nahi duzu?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Hautatutako kontaktuak ezabatu nahi dituzu?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Irakurtzeko soilik diren kontuetako kontaktuak ezin dira ezabatu, baina ezkutatu egin daitezke."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Ezabatzeko hautatu dituzun kontaktuek hainbat kontutako informazioa dute. Irakurtzeko soilik diren kontuetako informazioa kontaktuen zerrendatik ezkutatuko da, baina ez da ezabatuko."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Kontaktua ezabatzen baduzu, hainbat kontutatik ezabatuko da informazioa."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Kontaktua ezabatu nahi duzu?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Ezabatu"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Ez dago horrelako kontakturik."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Hasierako pantailan gehitu da kontaktua."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Hasierako pantailan gehitu da <xliff:g id="NAME">%s</xliff:g>."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Ez dago irudi erabilgarririk gailuan."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontaktuaren argazkia"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Etiketa pertsonalizatuaren izena"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Kendu argazkia"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Hutsik dago kontaktuen zerrenda"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Ez dago etiketa hau duen kontakturik"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Ez dago kontakturik kontu honetan"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Hutsik dago kontaktuen zerrenda"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Gorde da <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Gorde da kontaktua"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kendu dira kontaktuaren loturak"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Ezin izan dira gorde kontaktuari egindako aldaketak"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Ezin izan da kendu kontaktuaren lotura"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Ezin izan da lotu kontaktua"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Errore bat gertatu da kontaktua gordetzean"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Ezin izan dira gorde kontaktuaren argazkiari egindako aldaketak"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Ezin izan da kargatu etiketa"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Ezabatu da etiketa"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Sortu da etiketa"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Ezin da sortu etiketa"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Eguneratu da etiketa"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Kendu zaie etiketa"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Gehitu zaie etiketa"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Ezin izan dira gorde etiketen aldaketak"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Badago etiketa"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Kontaktu batzuek ez dute helbide elektronikorik."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Kontaktu batzuek ez dute telefono-zenbakirik."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Bidali mezu elektronikoa"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Bidali mezua"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Aukeratu kontaktuak"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Bidali"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Ez dago kontakturik"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" kontaktuetan gehitu?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Kontaktuen izenak"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Egin klik hemen aurreko pantailara itzultzeko"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Gehitu telefono-zenbakia"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Gehitu helbide elektronikoa"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Ez da ekintza kudeatzeko aplikaziorik aurkitu."</string>
+    <string name="menu_share" msgid="943789700636542260">"Partekatu"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Gehitu kontaktuetan"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Gehitu"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Partekatu kontaktuak honen bidez</item>
+      <item quantity="one">Partekatu kontaktua honen bidez</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Aukeratu kontua"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Sortu etiketa"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Aldatu etiketaren izena"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etiketaren izena"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Etiketa-izena"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Ahots-txata"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Bideo-txata"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontaktua"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> kontua"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Atera argazkia"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Atera beste argazki bat"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Aukeratu argazkia"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Hautatu beste argazki bat"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Bilatzen…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiketa"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Utzi"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Atzera"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"itxi"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Hautatutako kontaktua editatu nahi duzu? Orain arte idatzi duzun informazioa kopiatu egingo da."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> direktorioa"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Ezarpenak"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Ezarpenak"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Laguntza eta iritziak"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Telefono-zenbakia"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Gehitu kontaktuetan"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Itxi"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Sartu urtea"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Gehitu kontua"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Inportatu"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Sortu…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" taldea ezabatu nahi duzu? (Ez dira kontaktuak ezabatuko.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Beste batekin lotu aurretik, idatzi kontaktuaren izena."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Kopiatu arbelean"</string>
+    <string name="set_default" msgid="4417505153468300351">"Ezarri lehenetsi gisa"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Garbitu metodo lehenetsia"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Testua kopiatu da"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Aldaketak baztertu nahi dituzu?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Baztertu"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Utzi"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Pertsonalizazioak baztertu nahi dituzu?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Bilatu kontaktuetan"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Kendu kontaktuak"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Gailuko profila"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Nire <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profila"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Hartu minutu pare bat Google-ko kontaktuen babeskopiak gordeko dituen kontu bat gehitzeko."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"<xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> kontuan gordeko dira kontaktu berriak."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Aukeratu kontaktu berriak gordetzeko erabili nahi duzun kontua:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Sortu kontaktua"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editatu kontaktua"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Ikusi soilik"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Aukeratu editatu beharreko kontaktua"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Lotutako kontaktuak"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Gehitu"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Kendu lotura"</string>
+    <string name="add_account" msgid="8201790677994503186">"Gehitu kontua"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Gehitu beste kontu bat"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Esportatu datu-baseko fitxategiak"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Sortu kontaktua"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ikusi gehiago"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ikusi gutxiago"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Azkenak"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Honi buruz"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Kopia pertsonala sortzen…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Bihar"</string>
+    <string name="today" msgid="8041090779381781781">"Gaur"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Gaur (<xliff:g id="TIME_INTERVAL">%s</xliff:g>)"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Bihar (<xliff:g id="TIME_INTERVAL">%s</xliff:g>)"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g> (<xliff:g id="TIME_INTERVAL">%2$s</xliff:g>)"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Izenik gabeko gertaera)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Ezarri"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Erakundea"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Goitizena"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Oharra"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Webgunea"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Gertaera"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Erlazioa"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Izena"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Helbide elektronikoa"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Telefonoa"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"kokapenerako jarraibideak"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"duela gutxiko SMSa. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. sakatu erantzuteko"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"sarrerakoa"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"irteerakoa"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"galdua"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"duela gutxiko deia. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. sakatu deitzeko"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Zu: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Eremu gehiago"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Aldatu kontaktuaren argazkia"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Gehitu kontaktuaren argazkia"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontaktuaren argazkia"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Ezin izan da ireki editorea."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Hemen gordeko da:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Ezin da editatu <xliff:g id="ACCOUNT">%s</xliff:g> kontuko kontaktuaren informazioa"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LOTU KONTAKTUAK"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"UTZI"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Kontaktu hau"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Baliteke bikoiztuak egotea"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Kontaktu hauek pertsona bera izan daitezke. Lotu egin ditzakezu, informazioa kontaktu bakarrean bilduta izateko."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Ezabatu <xliff:g id="DATA_TYPE">%1$s </xliff:g> <xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Ezabatu <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Iradokizunak"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Berriak"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Ireki nabigazio-panel lerrakorra"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Itxi nabigazio-panel lerrakorra"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> etiketa"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiketak"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Kontuak"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Ikusi hemen historia osoa"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Gertaerak eta mezuak"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Gertaerak"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mezuak"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Iradokizunak"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Izan kontaktuak antolatuta, erabilgarriak izan daitezen"</string>
+    <string name="undo" msgid="1425165101664071422">"Desegin"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Deitu <xliff:g id="CUSTOM_LABEL">%s</xliff:g> zenbakira"</string>
+    <string name="call_home" msgid="1990519474420545392">"Deitu etxera"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Deitu mugikorrera"</string>
+    <string name="call_work" msgid="5328785911463744028">"Deitu lanera"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Deitu laneko faxera"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Deitu etxeko faxera"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Deitu bilagailura"</string>
+    <string name="call_other" msgid="8563753966926932052">"Deitu"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Dei bidezko erantzuna"</string>
+    <string name="call_car" msgid="3280537320306436445">"Deitu autoko telefonora"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Deitu enpresaren zenbaki nagusira"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Deitu ISDN zenbakira"</string>
+    <string name="call_main" msgid="6082900571803441339">"Deitu zenbaki nagusira"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Deitu faxera"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Deitu irratira"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Deitu telexera"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Deitu TTY/TDD zenbakira"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Deitu laneko mugikorrera"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Deitu laneko bilagailura"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Deitu <xliff:g id="CUSTOM_LABEL">%s</xliff:g> zenbakira"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Deitu MMS zenbakira"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (deitu)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Bidali testu-mezu bat <xliff:g id="CUSTOM_LABEL">%s</xliff:g> zenbakira"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Bidali testu-mezua etxera"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Bidali testu-mezua mugikorrera"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Bidali testu-mezua lanera"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Bidali testu-mezua laneko faxera"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Bidali testu-mezua etxeko faxera"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Bidali testu-mezua bilagailura"</string>
+    <string name="sms_other" msgid="806127844607642331">"Bidali testu-mezua"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Testu bidezko erantzuna"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Bidali testu-mezua autora"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Bidali testu-mezua enpresako zenbaki nagusira"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Bidali testu-mezua ISDN zenbakira"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Bidali testu-mezua zenbaki nagusira"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Bidali testu-mezua faxera"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Bidali testu-mezua irratira"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Bidali testu-mezua telexera"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Bidali testu-mezua TTY/TDD zenbakira"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Bidali testu-mezua laneko mugikorrera"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Bidali testu-mezua laneko bilagailura"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Bidali testu-mezua <xliff:g id="ASSISTANT">%s</xliff:g> zenbakira"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Bidali testu-mezua MMS zenbakira"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (bidali SMS mezua)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Egin bideo-deia"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Sarri erabilitako kontaktuak garbitu?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Kontaktuak eta Telefonoa aplikazioetako maiz erabilitako kontaktuen zerrenda garbituko duzu. Beraz, berriro ikasi beharko dituzte helbideen hobespenak posta elektronikoaren aplikazioek."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Sarri erabilitako kontaktuak garbitzen…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Libre"</string>
+    <string name="status_away" msgid="1838861100379804730">"Kanpoan"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Okupatuta"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Bestelakoak"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Direktorioa"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Laneko kontaktuak"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Kontaktu guztiak"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Honen kontaktu bizkorra: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Izenik ez)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Sarri kontaktatutakoak"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Telefono-zenbakiak dituzten kontaktu guztiak"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Laneko profileko kontaktuak"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Ikusi berritasunak"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Gailua"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM txartela"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Izena"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Goitizena"</string>
+    <string name="name_given" msgid="4280790853455320619">"Izena"</string>
+    <string name="name_family" msgid="7466985689626017037">"Abizena"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Izenaren aurrizkia"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Bigarren izena"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Izenaren atzizkia"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Izen fonetikoa"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Izen fonetikoa"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Bigarren izen fonetikoa"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Abizen fonetikoa"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefonoa"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Helbide elektronikoa"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Helbidea"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Erakundea"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Harremana"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Data berezia"</string>
+    <string name="sms" msgid="1756857139634224222">"Testu-mezua"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Helbidea"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Enpresa"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Lanpostua"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Oharrak"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Pertsonalizatua"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Webgunea"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiketak"</string>
+    <string name="email_home" msgid="8573740658148184279">"Bidali mezu elektronikoa etxera"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Bidali mezu elektronikoa mugikorrera"</string>
+    <string name="email_work" msgid="2807430017302722689">"Bidali mezu elektronikoa lanera"</string>
+    <string name="email_other" msgid="3454004077967657109">"Bidali mezu elektronikoa"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Bidali mezu elektroniko bat <xliff:g id="CUSTOM_LABEL">%s</xliff:g> helbidera"</string>
+    <string name="email" msgid="5668400997660065897">"Bidali mezu elektronikoa"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Kalea"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Hiria"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Estatua"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Posta-kodea"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Herrialdea"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ikusi etxeko helbidea"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ikusi laneko helbidea"</string>
+    <string name="map_other" msgid="3817820803587012641">"Ikusi helbidea"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Ikusi <xliff:g id="CUSTOM_LABEL">%s</xliff:g> helbidea"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Txateatu AIM bidez"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Txateatu Windows Live bidez"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Txateatu Yahoo bidez"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Txateatu Skype bidez"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Txateatu QQ bidez"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Txateatu Google Talk bidez"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Txateatu ICQ bidez"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Txateatu Jabber bidez"</string>
+    <string name="chat" msgid="9025361898797412245">"Txata"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ezabatu"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Erakutsi izenen eremu gehiago"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Tolestu izenen eremuak"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Erakutsi izen fonetikoen eremu gehiago"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Tolestu izen fonetikoen eremuak"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Zabaldu"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Tolestu"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Zabaldu da"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Tolestu da"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Kontaktu guztiak"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Izardunak"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Pertsonalizatua"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Hautatutako kontaktua"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Gainerako kontaktuak"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Kontaktu guztiak"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Kendu sinkronizazio-taldea"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Gehitu sinkronizazio-taldea"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Talde gehiago…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\" sinkronizaziotik kentzen baduzu, talderik gabeko kontaktu guztiak ere ezabatuko dira."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Bistaratze-aukerak gordetzen…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Ikuspegi pertsonalizatua"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Gorde inportatutako kontaktuak hemen:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM txartela"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"<xliff:g id="SIM_NAME">%1$s</xliff:g> SIM txartela"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kontaktu</item>
+      <item quantity="one">1 kontaktu</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontaktu • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontaktu • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf fitxategia"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Ez dago ezer inportatzeko"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard fitxategitik inportatu nahi dituzu kontaktuak?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> fitxategiaren inportazioa bertan behera utzi nahi duzu?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> fitxategiaren esportazioa bertan behera utzi nahi duzu?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Ezin da vCard inportazioa edo esportazioa utzi"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Errore ezezaguna."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Ezin izan da \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ireki. Arrazoia: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Ezin izan da esportatzailea hasi. Arrazoia: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Ez dago esporta daitekeen kontakturik."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Beharrezkoa den baimen bat desgaitu duzu."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Errore bat gertatu da esportatu bitartean. Arrazoia: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Sarrera- edo irteera-errorea"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Ez dago behar adina memoria. Baliteke fitxategia handiegia izatea."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formatua ez da bateragarria."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Amaitu da <xliff:g id="FILENAME">%s</xliff:g> esportatzen."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Esportatu dira kontaktuak."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Esportatu dira kontaktuak. Haiek partekatzeko, egin klik jakinarazpenean."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Sakatu kontaktuak partekatzeko."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> fitxategia esportatzeari utzi zaio."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kontaktuen datuak esportatzen"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontaktuen datuak esportatzen ari dira."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Ezin izan da datu-baseko informazioa lortu."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Ez dago esporta daitekeen kontakturik."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard txartelen idazlea ez da behar bezala hasi."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Ezin izan da esportatu"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Ez dira kontaktuaren datuak esportatu.\nArrazoia: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> inportatzen"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Ezin izan dira vCard datuak irakurri"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g> vCard fitxategia inportatzen amaitu da"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> fitxategiaren inportazioa utzi egin da"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> fitxategia laster inportatuko da."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Fitxategia laster inportatuko da."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard fitxategia inportatzeko eskaera ukatu da. Saiatu geroago."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Laster esportatuko dira kontaktuak."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard fitxategia esportatzeko eskaera ukatu da. Saiatu berriro geroago."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontaktua"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard-ak aldi baterako biltegi lokalaren cachean gordetzen ari dira. Inportazioa bera laster hasiko da."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Ezin izan da vCard fitxategia inportatu."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontaktua NFC bidez jaso da"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Cachean gordetzen"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> inportatzen: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Esportatu .vcf gisa"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Ordenatzeko irizpidea"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Izen fonetikoa"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Erakutsi beti"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Hutsik badago, ezkutatu"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Izena"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Abizena"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Izenaren formatua"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Izena lehenengo"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Abizena lehenengo"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Kontuak"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Kontaktu berriak gordetzeko kontu lehenetsia"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Nire informazioa"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Konfiguratu profila"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Kontaktuak zerbitzuari buruz"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Partekatu gogoko kontaktuak"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Partekatu kontaktu guztiak"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Ezin izan dira partekatu kontaktuak."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Esportatu kontaktuak"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Inportatu kontaktuak hemendik:"</string>
+    <string name="share_error" msgid="948429331673358107">"Ezin da kontaktua partekatu."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Ez dago parteka daitekeen kontakturik."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Bistaratu beharreko kontaktuak"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Bistaratu beharrekoak"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Pertsonalizatu ikuspegia"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Gorde"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Bilatu kontaktuetan"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Gogokoak"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Inportatu"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Esportatu"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokeatutako zenbakiak"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> bidez"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="SOURCE">%2$s</xliff:g> bidez"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"gelditu bilaketa"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Garbitu bilaketa"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Kontua"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Erabili beti hau deietarako"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Egin deia ohar batekin"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Idatzi deiarekin batera bidali beharreko oharra…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"BIDALI ETA DEITU"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Konpilazioaren bertsioa"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Kode irekiko lizentziak"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Kode irekiko softwarearen lizentziaren xehetasunak"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Pribatutasun-gidalerroak"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Zerbitzu-baldintzak"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Kode irekiko lizentziak"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Ezin izan da ireki URLa."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> hautatu da"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Ez da hautatu <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Egin bideo-deia"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Ezabatu"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Elipsia"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Lasterbidea desgaitu egin da"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kendu da kontaktua"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Inportatu"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Hautatu kontaktuak"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Ez duzu kontakturik SIM txartelean"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontaktua lehendik duzu zerrendan"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">SIM txarteleko <xliff:g id="COUNT">%d</xliff:g> kontaktu inportatu dira</item>
+      <item quantity="one">SIM txarteleko 1 kontaktu inportatu da</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Ezin izan dira inportatu SIM txarteleko kontaktuak"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Inportatu SIM txarteletik"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Utzi"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Desaktibatuta dago sinkronizazio automatikoa. Sakatu aktibatzeko."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Baztertu"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Desaktibatuta dago kontuaren sinkronizazioa. Sakatu aktibatzeko."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Sinkronizazio automatikoa aktibatu nahi duzu?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Webgunearekin eta gailuekin sinkronizatuko dira aplikazio eta kontu guztietan egiten dituzun aldaketak, ez bakarrik Google Kontaktuak aplikazioan egiten dituzunak."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Aktibatu"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Ez dago konexiorik"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM txart."</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Erakutsi gehiago"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Inportatu da SIM txartela"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Ezin izan da inportatu"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Ezin izan dira inportatu SIM txarteleko kontaktuak"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM txartela inportatzen"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 605a232..97c0d7a 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"مخاطبین"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"مخاطبین"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"مشاهده مخاطب"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"ویرایش مخاطب"</string>
     <string name="contactsList" msgid="8661624236494819731">"مخاطبین"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"افزودن مخاطب"</string>
     <string name="shortcutContact" msgid="749243779392912958">"مخاطب"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"شماره گیری مستقیم"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"پیام جدید"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"انتخاب میان‌بر مخاطب"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"انتخاب یک شماره برای تماس"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"انتخاب یک شماره برای پیام"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"انتخاب مخاطب"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"افزودن به مخاطب"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"انتخاب یک مخاطب"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"انتخاب مخاطب"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"انتخاب"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ایجاد مخاطب جدید"</string>
-    <string name="starredList" msgid="4817256136413959463">"ستاره‌دار"</string>
-    <string name="frequentList" msgid="7154768136473953056">"مکرر"</string>
-    <string name="strequentList" msgid="5640192862059373511">"موارد دلخواه"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"اطلاعات تماس"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"ویرایش مخاطب"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"ایجاد مخاطب"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"ویرایش گروه"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"ایجاد گروه"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"درباره"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"نسخه‌های به روز"</string>
     <string name="searchHint" msgid="8482945356247760701">"جستجوی مخاطبین"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"مشاهده مخاطب"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"افزودن به موارد دلخواه"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"حذف از موارد دلخواه"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"از موارد دلخواه حذف می‌شود"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"ویرایش"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"حذف"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"تغییر عکس"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"گذاشتن روی صفحه اصلی"</string>
-    <string name="menu_call" msgid="3992595586042260618">"تماس با مخاطب"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"ارسال متن به مخاطب"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"ایجاد میان‌بر"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"لغو ارتباط"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"ویرایش"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"حذف"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"افزودن مخاطب"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"افزودن گروه"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"حذف مخاطبین"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"تغییر نام برچسب"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"حذف برچسب"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"افزودن مخاطب"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"انتخاب مخاطبین"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"افزودن مخاطبین"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"حذف از برچسب"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"ایجاد برچسب"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"این مخاطب به چند مخاطب لغو پیوند شود؟"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"لغو پیوند"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"می‌خواهید تغییراتی را که قبلاً ایجاد کرده‌اید، ذخیره کنید و این مخاطب را به چند مخاطب لغو پیوند کنید؟"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"ذخیره و لغو پیوند"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"می‌خواهید تغییراتی را که قبلاً ایجاد کرده‌اید، ذخیره کنید و با مخاطب انتخاب‌شده پیوند دهید؟"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"ذخیره و پیوند کردن"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"درحال پیوند دادن"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"درحال لغو پیوند"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"پیوند"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"مشاهده مخاطبین پیوندداده‌شده"</string>
     <string name="menu_save" msgid="1727844363591825909">"ذخیره‌"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"پیوند دادن مخاطبین"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"مخاطبی را که می‌خواهید با <xliff:g id="NAME">%s</xliff:g> پیوند دهید، انتخاب کنید:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"نمایش همه مخاطبین"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"مخاطبین پیشنهادی"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"همه مخاطبین"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> پیوند داده شد"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"مخاطبین پیوند داده شدند"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> حذف شد"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> و <xliff:g id="NAME_1">%2$s</xliff:g> حذف شدند"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>، <xliff:g id="NAME_1">%2$s</xliff:g>، <xliff:g id="NAME_2">%3$s</xliff:g>... حذف شد"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">مخاطب حذف شد</item>
       <item quantity="other">مخاطب حذف شد</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> مخاطب</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> مخاطب</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> مخاطب · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> مخاطب · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"‏از Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"از <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"تنظیم آهنگ زنگ"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"همه تماس‌ها به پست صوتی"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"مخاطبین از حساب‌های فقط خواندنی شما قابل حذف نیستند، اما می‌توان آن‌ها را پنهان کرد."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"پنهان کردن"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"مخاطبی که برای حذف انتخاب کرده‌اید، جزئیاتی از چند حساب دارد. جزئیات از حساب‌های فقط خواندنی حذف نمی‌شود، بلکه پنهان می‌شود."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"برای پیوند دادن، حداقل باید دو مخاطب انتخاب شوند."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"مخاطبین انتخاب‌شده پیوند داده شوند؟"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"پیوند کردن"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"هدایت به پست صوتی"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"لغو هدایت به پست صوتی"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"این مخاطب فقط‌خواندنی است. نمی‌توانید آن را حذف کنید اما می‌توانید پنهان کنید."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"پنهان کردن مخاطب"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"حساب‌های فقط‌خواندنی این مخاطب، پنهان هستند اما حذف نمی‌شوند."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"این مخاطب حذف شود؟"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"مخاطبین انتخاب‌شده حذف شوند؟"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"مخاطبین از حساب‌های فقط خواندنی شما قابل حذف نیستند، اما می‌توان آن‌ها را پنهان کرد."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"حذف این مخاطب، جزئیات از چند حساب را حذف می‌کند."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"این مخاطب حذف شود؟"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"حذف"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"صرف‌نظر از تغییرات"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"مخاطبی موجود نیست."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"مخاطب به صفحه اصلی اضافه شد."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> به صفحه اصلی اضافه شد."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"ایجاد مخاطب جدید"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"ایجاد مخاطب جدید"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"سازمان"</item>
-    <item msgid="7196592230748086755">"توجه"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"عکسی در رایانهٔ لوحی موجود نیست."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"عکسی در گوشی موجود نیست."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"هیچ عکسی در دستگاه موجود نیست."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"عکس مخاطب"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"نام برچسب سفارشی"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ارسال تماس به صورت مستقیم به پست صوتی"</string>
     <string name="removePhoto" msgid="4898105274130284565">"حذف عکس"</string>
-    <string name="noContacts" msgid="4955659076981974652">"مخاطبی موجود نیست"</string>
-    <string name="noGroups" msgid="8614664663561385253">"گروهی وجود ندارد."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"برای ایجاد گروه‌ها، نیاز به یک حساب دارید."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"هیچ فردی در این گروه نیست."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"برای افزودن چند عضو، گروه را ویرایش کنید."</string>
-    <string name="savingContact" msgid="4075751076741924939">"در حال ذخیره مخاطب..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"فهرست مخاطبینتان خالی است"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"هیچ مخاطبی با این برچسب وجود ندارد"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"هیچ مخاطبی در این حساب نیست"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"فهرست مخاطبینتان خالی است"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> ذخیره شد"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"مخاطب ذخیره شد"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"ارتباط مخاطبین لغو شد."</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"ذخیره تغییرات مخاطب انجام نشد."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"مخاطب جدا نشد."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"مخاطب پیوند داده نشد."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"خطا هنگام ذخیره مخاطب."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"ذخیره تغییرات عکس مخاطب انجام نشد."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"گروه ذخیره شد."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ذخیرهٔ تغییرات گروه انجام نشد."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> مخاطب با شماره تلفن</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> مخاطب با شماره تلفن</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"مخاطبی با شماره تلفن موجود نیست"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> مورد پیدا شد</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> مورد پیدا شد</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"تغییرات مخاطب ذخیره نشد"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"مخاطب لغو پیوند نشد"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"مخاطب پیوند داده نشد"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"خطا در ذخیره مخاطب"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"تغییرات عکس مخاطب ذخیره نشد"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"برچسب بار نشد"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"برچسب حذف شد"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"برچسب ایجاد شد"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"برچسب ایجاد نشد"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"برچسب به‌روزرسانی شد"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"از برچسب حذف شد"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"به برچسب اضافه شد"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"تغییرات برچسب ذخیره نشد"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"این برچسب از قبل موجود است"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"بعضی از مخاطبین رایانامه ندارند."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"بعضی از مخاطبین شماره تلفن ندارند."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ارسال رایانامه"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"ارسال پیام"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"انتخاب مخاطبین"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"ارسال"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"مخاطبی موجود نیست"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> مورد پیدا شد</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> مورد پیدا شد</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"همه"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"موارد دلخواه"</string>
-    <string name="callBack" msgid="5498224409038809224">"بازگرداندن تماس"</string>
-    <string name="callAgain" msgid="3197312117049874778">"تماس مجدد"</string>
-    <string name="returnCall" msgid="8171961914203617813">"برگرداندن تماس"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" به مخاطبین افزوده شود؟"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"عکس مخاطب"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"به اضافه"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> از <xliff:g id="TOTAL_NUMBER">%s</xliff:g> مخاطب"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"نام‌های مخاطبین شما"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"برنامه‌ای برای انجام این عملکرد یافت نشد."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"برای بازگشت به صفحه قبلی کلیک کنید"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"افزودن شماره تلفن"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"افزودن ایمیل"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"افزودن رایانامه"</string>
     <string name="missing_app" msgid="1466111003546611387">"برنامه‌ای برای انجام این عملکرد یافت نشد."</string>
     <string name="menu_share" msgid="943789700636542260">"اشتراک‌گذاری"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"افزودن به مخاطبین"</string>
-    <string name="share_via" msgid="563121028023030093">"اشتراک‌گذاری مخاطب از طریق"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"ایجاد گروه تحت حساب کاربری"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"افزودن"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">اشتراک‌گذاری مخاطبین از طریق</item>
+      <item quantity="other">اشتراک‌گذاری مخاطبین از طریق</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"انتخاب حساب"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"ایجاد برچسب"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"تغییر نام برچسب"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"نام برچسب"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"نام برچسب"</string>
     <string name="audio_chat" msgid="2535716629358298691">"گپ صوتی"</string>
     <string name="video_chat" msgid="1872255818640336072">"گپ ویدئویی"</string>
-    <string name="connections" msgid="8098440723172028350">"اتصال‌ها"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"افزودن اتصال"</string>
-    <string name="recent" msgid="2659189233141493004">"اخیر"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"به‌روزرسانی‌های اخیر"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> مخاطب"</string>
+    <string name="account_type_format" msgid="718948015590343010">"مخاطب <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"حساب <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"از این برنامه قابل ویرایش نیست."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"در این دستگاه قابل ویرایش نیست."</string>
     <string name="take_photo" msgid="7496128293167402354">"عکس گرفتن"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"عکس جدید گرفتن"</string>
     <string name="pick_photo" msgid="2129509985223564942">"انتخاب عکس"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"انتخاب عکس جدید"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"لیست مخاطبین در حال به‌روزرسانی است."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"در حال جستجو..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"نمایش موارد انتخاب شده"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"نمایش همه"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"انتخاب همه"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"لغو انتخاب همهٔ موارد"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"افزودن مورد جدید"</string>
-    <string name="add_organization" msgid="7311893231158291197">"افزودن سازمان"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"تاریخ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"نام گروه"</string>
-    <string name="change_photo" msgid="8530597935483526383">"تغییر"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"عکس اصلی"</string>
-    <string name="description_star" msgid="2605854427360036550">"مورد دلخواه"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"ویرایش مخاطب"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"مخاطب فعلی به مخاطب انتخاب شده پیوند داده شود؟"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"برچسب"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"لغو"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"برگشت"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"بستن"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"به ویرایش مخاطب انتخابی می‌روید؟ اطلاعاتی که تا حال وارد کرده‌اید کپی خواهد شد."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"کپی در مخاطبین من"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"افزودن به مخاطبین من"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"دایرکتوری <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"سفارشی"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"تنظیمات"</string>
     <string name="menu_settings" msgid="377929915873428211">"تنظیمات"</string>
     <string name="menu_help" msgid="1680178646764069976">"راهنما و بازخورد"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"گزینه‌های نمایش"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"شماره تلفن"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"افزودن به مخاطبین"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"افزودن به مخاطب"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"بستن"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"سال لحاظ شود"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"مخاطب"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"در حال بارگیری..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"ایجاد مخاطب جدید"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"افزودن حساب"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"وارد کردن مخاطبین"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"ایجاد گروه جدید"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"ایجاد گروه جدید"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> گروه</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> گروه</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"مطمئنید می‌خواهید گروه \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" حذف شود؟ (مخاطبین خودشان حذف نخواهند شد.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> نفر از <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> نفر از <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> نفر</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> نفر</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"وارد کردن"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"ایجاد مورد جدید..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"برچسب «<xliff:g id="GROUP_LABEL">%1$s</xliff:g>» حذف شود؟ (مخاطبین حذف نخواهند شد.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"قبل از پیوند دادن با مخاطب دیگر، نام مخاطب را تایپ کنید."</string>
-    <string name="copy_text" msgid="3257145021583508761">"کپی به کلیپ بورد"</string>
+    <string name="copy_text" msgid="3257145021583508761">"کپی در بریده‌دان"</string>
     <string name="set_default" msgid="4417505153468300351">"تنظیم پیش‌فرض"</string>
     <string name="clear_default" msgid="7193185801596678067">"پاک کردن پیش فرض‌ها"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"متن کپی شده"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"از تغییرات صرف‌نظر می‌کنید؟"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"صرف‌نظر کردن"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"راه‌اندازی نمایه من"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"نام شخص را تایپ کنید"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"نام گروه"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"از تغییرات صرف‌نظر شود؟"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"صرف‌نظر کردن"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"لغو"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"از موارد سفارشی صرف‌نظر شود؟"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"جستجوی مخاطبین"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"حذف مخاطبین"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"نمایه محلی من"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"نمایه <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> من"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"نمایش همه مخاطبان"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"‏مخاطبین با حساب Google بهتر کار می‌کند.\n\n‏• از هر مرورگر وبی به آن دسترسی داشته باشید.\n‏• به صورت ایمن از مخاطبینتان پشتیبان‌گیری کنید."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"مخاطبین خود را ایمن نگهدارید حتی اگر گوشی شما گم شود: با یک سرویس آنلاین همگام‌سازی کنید."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"افزودن یک حساب"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"از مخاطب جدید شما نسخه پشتبان تهیه نمی‌شود. حسابی را اضافه می‌کنید که از مخاطبین به‌صورت آنلاین نسخه پشتبان تهیه کند؟"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"‏کمی وقت بگذارید و حسابی را اضافه کنید تا از مخاطبینتان در Google نسخه پشتیبان تهیه شود."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"مخاطب‌های جدید در <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ذخیره می‌شوند."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"انتخاب حساب پیش‌فرض برای مخاطبین جدید:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"افزودن مخاطب جدید"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"ایجاد مخاطب جدید"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ویرایش مخاطب"</string>
-    <string name="keep_local" msgid="1258761699192993322">"ذخیره به‌صورت محلی"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"فقط مشاهده"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"انتخاب مخاطب برای ویرایش"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"مخاطبین پیوندداده‌شده"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"افزودن"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"لغو پیوند"</string>
     <string name="add_account" msgid="8201790677994503186">"افزودن حساب"</string>
     <string name="add_new_account" msgid="5748627740680940264">"افزودن حساب جدید"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"صدور فایل‌های پایگاه داده"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"افزودن مخاطب جدید"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"ایجاد مخاطب جدید"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"مشاهده موارد بیشتر"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"مشاهده موارد کمتر"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"مشاهده همه"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"اخیر"</string>
     <string name="about_card_title" msgid="2920942314212825637">"درباره"</string>
-    <string name="send_message" msgid="8938418965550543196">"ارسال پیام"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"در حال ایجاد یک کپی شخصی..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"دیروز"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"ایجاد یک کپی شخصی..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"فردا"</string>
     <string name="today" msgid="8041090779381781781">"امروز"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"امروز در <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"فردا در <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>، ‏<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>، ‏<xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(رویداد بدون عنوان)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"تنظیم"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"پیام فوری"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"وب‌سایت"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"رویداد"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"رابطه"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"حساب"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"نام"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ایمیل"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"رایانامه"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"تلفن"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"عکس"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"برای بزرگ کردن ویرایشگر مخاطب کلیک کنید."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"برای کوچک کردن ویرایشگر مخاطب کلیک کنید."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"مسیرها به مکان"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"پیامک اخیر. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. ‏<xliff:g id="PHONE_NUMBER">%s</xliff:g>. ‏<xliff:g id="DATE">%s</xliff:g>. برای پاسخ دادن کلیک کنید"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"پیامک اخیر. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. ‏<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. ‏<xliff:g id="DATE">%3$s</xliff:g>. برای پاسخ دادن کلیک کنید"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ورودی"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"خروجی"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"بی‌پاسخ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"تماس اخیر. <xliff:g id="CALL_TYPE">%s</xliff:g>‏. <xliff:g id="PHONE_NUMBER">%s</xliff:g>‏. ‏<xliff:g id="DATE">%s</xliff:g>. برای بازگرداندن تماس کلیک کنید"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"تماس اخیر. <xliff:g id="CALL_TYPE">%1$s</xliff:g>‏. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>‏. ‏<xliff:g id="DATE">%3$s</xliff:g>. برای بازگرداندن تماس کلیک کنید"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"شما: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"‏وقتی شناسه Hangouts شخص را در فیلد ایمیل یا فیلد تلفن وارد کنید، Hangouts بهتر کار می‌کند."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"فیلدهای بیشتر"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"تغییر عکس"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"ویرایشگر باز نشد."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"ذخیره در"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"درحال‌ حاضر در <xliff:g id="ACCOUNT_NAME">%s</xliff:g> ذخیره می‌شود. برای انتخاب حساب دیگری، دوضربه سریع بزنید."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">مخاطبین پیوند داده شده (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">مخاطبین پیوند داده شده (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> مخاطب پیوند داده شده"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"فیلدهای بیشتر"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"تغییر عکس مخاطب"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"افزودن عکس مخاطب"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"عکس مخاطب"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"ویرایشگر باز نشد."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"ذخیره در"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"اطلاعات تماس از <xliff:g id="ACCOUNT">%s</xliff:g> قابل ویرایش نیست"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"پیوند دادن مخاطبین"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"لغو"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> مخاطب تکراری ممکن</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> مخاطب تکراری ممکن</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> مخاطب پیوند داده شده</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> مخاطب پیوند داده شده</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"این مخاطب"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"مخاطبین تکراری ممکن"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"ممکن است این مخاطب‌ها یک نفر باشند. می‌توانید آن‌ها را به‌عنوان یک مخاطب به هم پیوند دهید."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"مخاطب‌های پیوند داده شده"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"از حساب‌های شما"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"عکس گرفتن"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"همه عکس‌ها"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"انتخاب عکس"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"از <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"حذف <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"حذف <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"حذف <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"عکس <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> انتخاب نشد"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"عکس <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> انتخاب شد"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"عکس از حساب نامشخص انتخاب نشده است"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"عکس از حساب نامشخص انتخاب شده است"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"لیست مخاطبین جهت اعمال تغییر زبان در حال به‌روزرسانی است.\n\nلطفاً منتظر بمانید..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"افزودن شماره"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"مسدود کردن شماره"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"افزودن شماره یا جستجوی مخاطب"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> گشوده شود؟"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"گشودن"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> مسدود شود؟"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"مسدود کردن"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> مسدود شد"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> گشوده شد"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> نامعتبر است."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"انسداد تماس موقتاً خاموش است"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"چون در ۴۸ ساعت گذشته با این تلفن با سرویس‌های اضطراری تماس گرفتید، انسداد تماس غیرفعال شده است. پس از گذشت ۴۸ ساعت، این قابلیت دوباره فعال می‌شود."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"وارد کردن"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"مشاهده شماره‌ها"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"افزودن شماره"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"مسدود کردن تماس برای ۴۸ ساعت غیرفعال شد"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"به علت برقرار شدن تماس اضطراری، غیرفعال شد."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"واگرد"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> درحال‌حاضر مسدود شده است."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"گشودن شماره"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"جزئیات تماس برای <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"وارد کردن انجام نشد"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"وارد کردن شماره‌ها"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"روشن کردن"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"پیشنهادها"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"جدید"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"بازکردن کشوی پیمایش"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"بستن کشوی پیمایش"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"برچسب «<xliff:g id="LABEL_NAME">%s</xliff:g>»"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"برچسب‌ها"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"حساب‌ها"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"سابقه‌تان را با یکدیگر ببینید"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"رویدادها و پیام‌ها"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"رویدادها"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"پیام‌ها"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"پیشنهادها"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"مخاطبینی منظم و مفید داشته باشید"</string>
+    <string name="undo" msgid="1425165101664071422">"واگرد"</string>
+    <string name="call_custom" msgid="6385303130912713318">"تماس با <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"تماس با خانه"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"تماس با تلفن همراه"</string>
+    <string name="call_work" msgid="5328785911463744028">"تماس با محل کار"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"تماس با نمابر محل کار"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"تماس با نمابر خانه"</string>
+    <string name="call_pager" msgid="9003902812293983281">"تماس با پیجو"</string>
+    <string name="call_other" msgid="8563753966926932052">"تماس"</string>
+    <string name="call_callback" msgid="1910165691349426858">"تماس با شماره بازگرداندن تماس"</string>
+    <string name="call_car" msgid="3280537320306436445">"تماس با تلفن خودرو"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"تماس با خط اصلی شرکت"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"‏تماس با ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"تماس با خط اصلی"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"تماس با نمابر"</string>
+    <string name="call_radio" msgid="8296755876398357063">"تماس با تلفن رادیویی"</string>
+    <string name="call_telex" msgid="2223170774548648114">"تماس با تلکس"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"‏تماس با TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"تماس با تلفن همراه محل کار"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"تماس با پی‌جوی محل کار"</string>
+    <string name="call_assistant" msgid="670941612175068337">"تماس با <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"تماس با فراپیام"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (تماس)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"ارسال پیام نوشتاری به <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ارسال متن به تلفن خانه"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"ارسال متن به تلفن همراه"</string>
+    <string name="sms_work" msgid="2269624156655267740">"ارسال متن به محل کار"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"ارسال متن به نمابر محل کار"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"ارسال متن به نمابر خانه"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"ارسال متن به پی‌جو"</string>
+    <string name="sms_other" msgid="806127844607642331">"ارسال متن"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"ارسال متن برگرداندن پاسخ"</string>
+    <string name="sms_car" msgid="7444227058437359641">"ارسال متن به تلفن خودرو"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"ارسال متن به خط اصلی شرکت"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"‏ارسال متن به ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"ارسال متن به خط اصلی"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ارسال متن به نمابر"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ارسال متن به تلفن رادیویی"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ارسال متن به تلکس"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"‏ارسال متن به TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"ارسال متن به تلفن همراه محل کار"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"ارسال متن به پی‌جوی محل کار"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"ارسال متن به <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"ارسال متن به فراپیام"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (پیام)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"برقراری تماس ویدئویی"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"فهرست تماس مکرر با مخاطب پاک شود؟"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"با این کار فهرست افرادی که بیشتر با آنها تماس گرفته‌اید در برنامه‌های «مخاطبین» و «تلفن» پاک می‌کنید و برنامه‌های رایانامه را وادار می‌کنید تنظیمات برگزیده مخاطبینتان را از اول یاد بگیرند."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"در حال پاک کردن فهرست تماس مکرر..."</string>
+    <string name="status_available" msgid="5586870015822828392">"در دسترس"</string>
+    <string name="status_away" msgid="1838861100379804730">"غایب"</string>
+    <string name="status_busy" msgid="9147992455450257136">"مشغول"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"سایر موارد"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"دایرکتوری"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"فهرست کار"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"همه مخاطبین"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"تماس سریع برای <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(بدون نام)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"اغلب تماس گرفته شده"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"همه مخاطبین دارای شماره تلفن"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"مخاطبین نمایه کاری"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"مشاهده به‌روزرسانی‌ها"</string>
+    <string name="account_phone" msgid="7128032778471187553">"دستگاه"</string>
+    <string name="account_sim" msgid="6519016427905087952">"سیم کارت"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"نام"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"نام مستعار"</string>
+    <string name="name_given" msgid="4280790853455320619">"نام"</string>
+    <string name="name_family" msgid="7466985689626017037">"نام خانوادگی"</string>
+    <string name="name_prefix" msgid="59756378548779822">"پیشوند نام"</string>
+    <string name="name_middle" msgid="8467433655992690326">"نام میانی"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"پسوند نام"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"تلفظ نام"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"تلفظ نام"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"تلفظ نام میانی"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"تلفظ نام خانوادگی"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"تلفن"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"رایانامه"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"آدرس"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"سازمان"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"رابطه"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"تاریخ ویژه"</string>
+    <string name="sms" msgid="1756857139634224222">"پیام نوشتاری"</string>
+    <string name="postal_address" msgid="8765560217149624536">"آدرس"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"شرکت"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"عنوان"</string>
+    <string name="label_notes" msgid="8337354953278341042">"یادداشت‌ها"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"سفارشی"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"وب سایت"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"برچسب‌ها"</string>
+    <string name="email_home" msgid="8573740658148184279">"رایانامه به خانه"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"رایانامه به تلفن همراه"</string>
+    <string name="email_work" msgid="2807430017302722689">"رایانامه به محل کار"</string>
+    <string name="email_other" msgid="3454004077967657109">"رایانامه"</string>
+    <string name="email_custom" msgid="5536404237099078802">"ارسال رایانامه به <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"رایانامه"</string>
+    <string name="postal_street" msgid="8133143961580058972">"خیابان"</string>
+    <string name="postal_city" msgid="6597491300084895548">"شهر"</string>
+    <string name="postal_region" msgid="6045263193478437672">"ایالت"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"کد پستی"</string>
+    <string name="postal_country" msgid="7638264508416368690">"کشور"</string>
+    <string name="map_home" msgid="1243547733423343982">"مشاهده آدرس منزل"</string>
+    <string name="map_work" msgid="1360474076921878088">"مشاهده آدرس محل کار"</string>
+    <string name="map_other" msgid="3817820803587012641">"مشاهده آدرس"</string>
+    <string name="map_custom" msgid="8761800628069473526">"مشاهده آدرس <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"‏گپ با استفاده از AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"‏گپ با استفاده از Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"‏گپ با استفاده از Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"‏گپ با استفاده از Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"‏گپ با استفاده از QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"‏گپ با استفاده از Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"‏گپ با استفاده از ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"‏گپ با استفاده از Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"گپ"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"حذف"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"نمایش فیلدهای نام بیشتر"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"کوچک کردن فیلدهای نام"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"نمایش فیلدهای نام‌آوای بیشتر"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"کوچک کردن فیلدهای نام‌آوا"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"بزرگ کردن"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"کوچک کردن"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"بزرگ شد"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"کوچک شد"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"همه مخاطبین"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ستاره‌دار"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"سفارشی کردن"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"مخاطب"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"همهٔ مخاطبین دیگر"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"همه مخاطبین"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"حذف گروه همگام‌سازی"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"افزودن گروه همگام‌سازی"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"گروه‌های بیشتر..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"حذف \"<xliff:g id="GROUP">%s</xliff:g>\" از همگام‌سازی نیز هر گونه مخاطب گروه‌بندی نشده‌ای را از همگام‌سازی حذف می‌کند."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"در حال ذخیره گزینه‌های نمایش..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"نمای سفارشی‌شده"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"ذخیره مخاطبین واردشده در:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"سیم کارت"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"سیم کارت <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">‏‎%1$d مخاطب</item>
+      <item quantity="other">‏‎%1$d مخاطب</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> مخاطب • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> مخاطب • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"‏فایل vcf."</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"چیزی برای وارد کردن نیست"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"‏مخاطبین از vCard وارد شوند؟"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"وارد کردن <xliff:g id="FILENAME">%s</xliff:g> لغو شود؟"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"صادر کردن <xliff:g id="FILENAME">%s</xliff:g> لغو شود؟"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"نمی‌توان وارد کردن/ صادر کردن کارت ویزیت را لغو کرد"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"خطای ناشناس."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" باز نشد: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"صادر کننده راه‌اندازی نشد: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"هیچ مخاطب قابل صدوری موجود نیست."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"یک اجازه الزامی را غیرفعال کردید."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"خطایی در هنگام صادر کردن روی داد: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"خطای ورودی/خروجی"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"حافظه کافی نیست. ممکن است فایل بسیار بزرگ باشد."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"قالب پشتیبانی نمی‌شود."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"صادر کردن <xliff:g id="FILENAME">%s</xliff:g> پایان یافت."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"صادر کردن مخاطبین تمام شد."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"مخاطبین صادر شدند؛ برای اشتراک‌گذاری مخاطبین، روی اعلان کلیک کنید."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"برای اشتراک‌گذاری مخاطبین ضربه بزنید."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"صادر کردن <xliff:g id="FILENAME">%s</xliff:g> لغو شد."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"صدور اطلاعات مخاطب"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"داده‌های مخاطب در حال صادر شدن است."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"نمی‌توان اطلاعات پایگاه داده را دریافت کرد."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"هیچ مخاطب قابل صدوری وجود ندارد."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"سازنده فایل کارت ویزیت به درستی اجرا نشد."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"صادر نمی‌شود"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"‏داده‎های مخاطب صادر نشد.\nعلت: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"وارد کردن <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"خواندن داده‌های کارت ویزیت ممکن نیست"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"وارد کردن کارت ویزیت <xliff:g id="FILENAME">%s</xliff:g> پایان یافت"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"واردکردن <xliff:g id="FILENAME">%s</xliff:g> لغو شد"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> به زودی وارد می‌شود."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"فایل پس از مدت کوتاهی وارد می‌شود."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"درخواست وارد کردن کارت ویزیت رد شد. لطفاً بعداً امتحان کنید."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"مخاطبین به‌زودی صادر می‌شوند."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"درخواست صدور کارت ویزیت رد شد. لطفاً بعداً امتحان کنید."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"مخاطب"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"در حال ذخیره کارت‌های ویزیت در حافظه موقت محلی است. وارد کردن واقعی به زودی آغاز خواهد شد."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"وارد کردن کارت ویزیت انجام نشد."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"‏مخاطب از طریق NFC رسید"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"در حال ذخیره در حافظهٔ پنهان"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"وارد کردن <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"‏صادر کردن به فایل ‎.vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"مرتب‌سازی براساس"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"تلفظ نام"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"همیشه نشان داده شود"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"اگر خالی است پنهان شود"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"نام"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"نام خانوادگی"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"قالب نام"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ابتدا نام"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"ابتدا نام خانوادگی"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"حساب‌ها"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"حساب پیش‌فرض برای مخاطبین جدید"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"اطلاعات من"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"تنظیم نمایه"</string>
+    <string name="setting_about" msgid="7014388749752042863">"درباره مخاطبین"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"اشتراک‌گذاری مخاطبین دلخواه"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"اشتراک‌گذاری همه مخاطبین"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"مخاطبین به اشتراک گذاشته نشدند."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"صادر کردن مخاطبین"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"وارد کردن مخاطبین از"</string>
+    <string name="share_error" msgid="948429331673358107">"این مخاطب قابل اشتراک‌گذاری نیست."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"مخاطبی برای اشتراک‌گذاری وجود ندارد."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"مخاطبین جهت نمایش"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"مخاطبین جهت نمایش"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"سفارشی ساختن نما"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"ذخیره"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"جستجوی مخاطبین"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"موارد دلخواه"</string>
+    <string name="menu_import" msgid="6107961135813836467">"وارد کردن"</string>
+    <string name="menu_export" msgid="2658783911863503902">"صادر کردن"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"شماره‌های مسدودشده"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"از طریق <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> از طریق <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"توقف جستجو"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"پاک کردن جستجو"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"حساب"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"همیشه برای تماس‌ استفاده شود"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"تماس به همراه یادداشت"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"یادداشتی بنویسید که همراه تماس ارسال شود…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ارسال و تماس"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / ‏<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"نسخه ساخت"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"مجوزهای منبع آزاد"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"جزئیات مجوز برای نرم‌افزار منبع آزاد"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"خط‌مشی رازداری"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"شرایط و ضوابط"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"مجوزهای منبع آزاد"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"نشانی وب باز نشد."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> علامت‌گذاری شد"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> بدون علامت"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"برقراری تماس ویدئویی"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"حذف"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"سه نقطه"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> دقیقه <xliff:g id="SECONDS">%2$s</xliff:g> ثانیه"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ساعت <xliff:g id="MINUTES_1">%2$s</xliff:g> دقیقه <xliff:g id="SECONDS">%3$s</xliff:g> ثانیه"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"میان‌بر غیرفعال شده است"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"محاطب حذف شد"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"وارد کردن"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"انتخاب مخاطبین"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"مخاطبی در سیم کارت نیست"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"مخاطب از قبل در فهرستتان است"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> مخاطب سیم کارت وارد شد</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> مخاطب سیم کارت وارد شد</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"مخاطبین سیم کارت وارد نشدند"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"وارد کردن از سیم کارت"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"لغو"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"همگام‌سازی خودکار غیرفعال است. برای فعال کردن ضربه بزنید."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"نپذیرفتن"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"همگام‌سازی خودکار غیرفعال است. برای فعال کردن ضربه بزنید."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"همگام‌سازی خودکار را فعال می‌کنید؟"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"‏تغییراتی که در همه برنامه‌ها و حساب‌ها، نه فقط در Google Contacts، ایجاد می‌کنید، بین وب و دستگاه‌هایتان به‌روز نگه داشته می‌شوند."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"فعال کردن"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"اتصال برقرار نیست"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"سیم کارت"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"نمایش موارد بیشتر"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"وارد کردن سیم کارت تمام شد"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"وارد نشد"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"مخاطبین از سیم کارت وارد نشدند"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"وارد کردن سیم کارت"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 6d2ea93..f052068 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Yhteystiedot"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Yhteystiedot"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Näytä yhteystieto"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Muokkaa yhteystietoa"</string>
     <string name="contactsList" msgid="8661624236494819731">"Yhteystiedot"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Lisää yhteystieto"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Yhteystieto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Puhelu"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Tekstiviesti"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Valitse pikakuvakkeen yhteystieto"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Valitse vastaanottajan numero"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Valitse vastaanottajan numero"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Yhteystiedon valitseminen"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Lisää yhteystietoon"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Valitse yhteystieto"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Valitse"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Luo uusi yhteystieto"</string>
-    <string name="starredList" msgid="4817256136413959463">"Tähdelliset"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Usein käytetyt"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Suosikit"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Yhteystiedot"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Muokkaa yhteystietoa"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Luo yhteystieto"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Muokkaa ryhmää"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Luo ryhmä"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Tietoja"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Päivitykset"</string>
     <string name="searchHint" msgid="8482945356247760701">"Hae yhteystiedoista"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Näytä yhteystieto"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Lisää suosikkeihin"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Poista suosikeista"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Poistettu suosikeista"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Muokkaa"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Poista"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Vaihda kuva"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Aloitusnäytöksi"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Soita"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Lähetä tekstiviesti yhteystiedolle"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Luo pikakuvake"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Poista linkitys"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Muokkaa"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Poista"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Lisää yhteystieto"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Lisää ryhmä"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Poista yhteystiedot"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Nimeä tunniste uudelleen"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Poista tunniste"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Lisää yhteystieto"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Kontaktien valitseminen"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Lisää yhteystietoja"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Poista tunnisteesta"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Luo tunniste"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Poistetaanko tämän yhteystiedon linkitys useisiin yhteystietoihin?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Poista linkitys"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Haluatko tallentaa jo tekemäsi muutokset ja poistaa tämän yhteystiedon linkityksen useisiin yhteystietoihin?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Tallenna muutokset ja poista linkitys"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Haluatko tallentaa jo tekemäsi muutokset ja linkittää valitun yhteystiedon?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Tallenna ja linkitä"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Linkitetään."</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Linkkiä poistetaan."</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Linkitä"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Näytä linkitetyt yhteystiedot"</string>
     <string name="menu_save" msgid="1727844363591825909">"Tallenna"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Yhdistä kontaktit"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Valitse kontakti, jonka haluat yhdistää kontaktiin <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Näytä kaikki yhteystiedot"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Linkitä yhteystiedot"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Valitse yhteystieto, jonka haluat yhdistää yhteystietoon <xliff:g id="NAME">%s</xliff:g>:"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Ehdotetut yhteystiedot"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Kaikki yhteystiedot"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> liitetty"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Yhteystiedot on linkitetty"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> poistettu."</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> ja <xliff:g id="NAME_1">%2$s</xliff:g> poistettu."</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… poistettu."</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Yhteystiedot poistettu</item>
       <item quantity="one">Yhteystieto poistettu</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> yhteystietoa</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> yhteystieto</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> yhteystietoa, <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> yhteystieto, <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Googlelta"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Tililtä <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Aseta soittoääni"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Kaikki puhelut vastaajaan"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Vain luku -tilassa olevien tiliesi yhteystietoja ei voida poistaa, mutta ne voidaan piilottaa."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Piilota"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Poistettava yhteystieto sisältää tietoja useilta tileiltä. Vain luku -tilassa olevien tilien tiedot piilotetaan, eikä niitä poisteta."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Linkittäminen edellyttää vähintään kahden yhteystiedon valintaa."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Linkitetäänkö valitut yhteystiedot?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Linkitä"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Ohjaa suoraan vastaajaan"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Kumoa vastaajaan ohjaaminen"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Yhteystieto on vain luku ‑tilassa. Sitä ei voi poistaa, mutta voit piilottaa sen."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Piilota yhteystieto"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Yhteystiedon vain luku ‑tilassa olevat tilit piilotetaan, ei poisteta."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Poistetaanko yhteystieto?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Poistetaanko valitut yhteystiedot?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Vain luku -tilassa olevien tiliesi yhteystietoja ei voida poistaa, mutta ne voidaan piilottaa."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Jos poistat tämän yhteystiedon, tietoja poistetaan useilta tileiltä."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Poistetaanko yhteystieto?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Poista"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Hylkää muutokset"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Yhteystietoa ei ole olemassa."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Yhteystieto lisättiin aloitusnäytölle."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> lisättiin aloitusnäytölle."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Luo uusi yhteystieto"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Luo uusi yhteystieto"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisaatio"</item>
-    <item msgid="7196592230748086755">"Muistiinpano"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Tablet-laitteella ei ole kuvia."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Tässä puhelimessa ei ole käytettäviä kuvia."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Laitteella ei ole kuvia."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Yhteyshenkilön valokuva"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Oman luokituksen nimi"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Ohjaa puheluja suoraan vastaajaan"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Poista kuva"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Ei kontakteja"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Ei ryhmiä."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Tarvitset tilin ryhmien luomiseen."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Tässä ryhmässä ei ole ihmisiä."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Muokkaa ryhmää, niin voit lisätä ihmisiä."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Tallennetaan yhteystietoa…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Yhteystietoluettelo on tyhjä."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Tässä tunnisteessa ei ole yhteystietoja."</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Tällä tilillä ei ole yhteystietoja."</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Yhteystietoluettelo on tyhjä."</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> tallennettiin."</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Yhteystieto tallennettu"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Yhteystietojen linkitys on poistettu."</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Ei voitu tallentaa yhteystietojen muutoksia."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Kontaktien erottaminen epäonnistui."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kontaktien yhdistäminen epäonnistui."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Kontaktin tallennus epäonnistui"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Yhteystietojen kuvien muutosten tallentaminen epäonnistui."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Ryhmä tallennettu."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Ryhmän muutoksia ei voitu tallentaa."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> yhteystietoa, jossa puhelinnumero</item>
-      <item quantity="one">1 yhteystieto, jossa puhelinnumero</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ei yhteystietoja, joissa on puhelinnumero"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> löytyi</item>
-      <item quantity="one">1 löytyi</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Ei kontakteja"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> löytyi</item>
-      <item quantity="one">1 löytyi</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Kaikki"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Suosikit"</string>
-    <string name="callBack" msgid="5498224409038809224">"Soita takaisin"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Soita uudelleen"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Soita takaisin"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Ei voitu tallentaa yhteystietojen muutoksia."</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Yhteystietojen linkityksen poisto epäonnistui."</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Yhteystietojen yhdistäminen epäonnistui."</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Virhe tallennettaessa yhteystietoa"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Yhteystietojen kuvien muutosten tallentaminen epäonnistui."</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Tunnisteen lataus epäonnistui."</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Tunniste poistettiin."</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Tunniste luotiin."</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Tunnisteen luominen ei onnistu."</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Tunniste päivitettiin."</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Poistettu tunnisteesta"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Lisätty tunnisteeseen"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Tunnisteen muutosten tallennus epäonnistui."</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Tunniste on jo olemassa."</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Joiltain yhteistiedoilta puuttuu sähköpostiosoite."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Joiltain yhteistiedoilta puuttuu puhelinnumero."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Lähetä sähköpostia"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Lähetä viesti"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Valitse yhteystiedot"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Lähetä"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Ei yhteystietoja"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Lisätäänkö <xliff:g id="EMAIL">%s</xliff:g> yhteystietoihin?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"yhteystiedon valokuva"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%s</xliff:g> yhteystietoa"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Yhteystietojen nimet"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Tätä toimintoa käsittelevää sovellusta ei löydy."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Palaa edelliseen näyttöön klikkaamalla"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Lisää puhelinnumero"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Lisää sähköposti"</string>
     <string name="missing_app" msgid="1466111003546611387">"Tätä toimintoa käsittelevää sovellusta ei löydy."</string>
     <string name="menu_share" msgid="943789700636542260">"Jaa"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Lisää yhteystietoihin"</string>
-    <string name="share_via" msgid="563121028023030093">"Jaa yhteystieto"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Luo ryhmä tilissä"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Lisää"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Jaa yhteystiedot sovelluksella</item>
+      <item quantity="one">Jaa yhteystieto sovelluksella</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Valitse tili"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Luo tunniste"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Nimeä tunniste uudelleen"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Tunnisteen nimi"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Tunnisteen nimi"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Äänikeskustelu"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videokeskustelu"</string>
-    <string name="connections" msgid="8098440723172028350">"Yhteydet"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Lisää yhteys"</string>
-    <string name="recent" msgid="2659189233141493004">"Viimeisimmät"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Uusimmat päivitykset"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-osoite"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-tili"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Ei muokattavissa tästä sovelluksesta."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Ei muokattavissa tällä laitteella."</string>
     <string name="take_photo" msgid="7496128293167402354">"Ota valokuva"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ota uusi kuva"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Valitse valokuva"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Valitse uusi valokuva"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Yhteystietoluetteloa päivitetään."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Haetaan..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Näytä valitut"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Näytä kaikki"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Valitse kaikki"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Poista kaikki valinnat"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Lisää uusi"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Lisää organisaatio"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Päivämäärä"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Ryhmän nimi"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Muuta"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Kontaktin kuva"</string>
-    <string name="description_star" msgid="2605854427360036550">"lisää suosikkeihin"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Muokkaa yhteystietoa"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Yhdistetäänkö valittu kontakti nykyiseen kontaktiin?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Tunniste"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Peruuta"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Takaisin"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"sulje"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Haluatko muokata valittuja yhteystietoja? Antamasi tiedot kopioidaan."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopioi yhteystietoihini"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Lisää yhteystietoihin"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Hakemisto <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Oma"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Asetukset"</string>
     <string name="menu_settings" msgid="377929915873428211">"Asetukset"</string>
     <string name="menu_help" msgid="1680178646764069976">"Ohje ja palaute"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Näyttövalinnat"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Puhelinnumero"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Lisää yhteystietoihin"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Lisää yhteystietoon"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Sulje"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Näytä vuosi"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Yhteystiedot"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Ladataan..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Luo uusi yhteystieto"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Lisää tili"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Tuo yhteystietoja"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Luo uusi ryhmä"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Luo uusi ryhmä"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ryhmää</item>
-      <item quantity="one">1 ryhmä</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Poistetaanko ryhmä <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Ryhmään kuuluvia yhteystietoja ei poisteta.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> henkilöä tilistä <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> henkilö tilistä <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> henkilöä</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> henkilö</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Tuo"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Luo uusi…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Poistetaanko tunniste <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Yhteystietoja ei poisteta.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Kirjoita kontaktin nimi ennen kuin yhdistät sen toiseen."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopioi leikepöydälle"</string>
     <string name="set_default" msgid="4417505153468300351">"Aseta oletukseksi"</string>
     <string name="clear_default" msgid="7193185801596678067">"Poista oletus"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Teksti kopioitu"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Hylätäänkö muutokset?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Hylkää"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Luo profiili"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Kirjoita henkilön nimi"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Ryhmän nimi"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Hylätäänkö muutokset?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Hylkää"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Peruuta"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Hylätäänkö muokkaukset?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Hae yhteystiedoista"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Poista yhteystiedot"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Oma paikallinen profiili"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Oma <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-profiili"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Kaikki kontaktit"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Yhteystiedot toimivat paremmin Google-tilin kanssa.\n\n• Käytä millä tahansa selaimella.\n• Varmuuskopioi turvallisesti."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Pidä kontaktisi turvassa, vaikka puhelimesi katoaisi: synkronoi ne verkkopalvelun avulla."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Lisää tili"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Uutta kontaktiasi ei varmuuskopioida. Lisätäänkö tili, joka varmuuskopioi uudet kontaktit verkossa?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Lisää Google-tili, jolle yhteystiedot voidaan varmuuskopioida. Se vie vain hetken."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Uudet yhteystiedot tallennetaan tilille <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Valitse uusien yhteystietojen oletustili:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Lisää yhteystieto"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Muokkaa yhteystietoa"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Säilytä paikallisena"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Luo uusi yhteystieto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Muokkaa kontaktia"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Vain lukuoikeus"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Valitse muokattava yhteystieto"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Linkitetyt yhteystiedot"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Lisää"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Poista linkitys"</string>
     <string name="add_account" msgid="8201790677994503186">"Lisää tili"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Lisää uusi tili"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Vie tietokantatiedostot"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"lisää uusi kontakti"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Luo uusi yhteystieto"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Näytä enemmän"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Näytä vähemmän"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Näytä kaikki"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Viimeisimmät"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Tietoja"</string>
-    <string name="send_message" msgid="8938418965550543196">"Lähetä viesti"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Luodaan oma kopio…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Eilen"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Luodaan kopio..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Huomenna"</string>
     <string name="today" msgid="8041090779381781781">"Tänään"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Tänään klo <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Huomenna klo <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Nimetön tapahtuma)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Käytä"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Pikaviesti"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Sivusto"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Tapahtuma"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Suhde"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Tili"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nimi"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Sähköposti"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Puhelin"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Valokuva"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Laajenna yhteystietojen muokkausnäkymä klikkaamalla."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Tiivistä yhteystietojen muokkausnäkymä klikkaamalla."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"reittiohjeet sijaintiin"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Viimeisin tekstiviesti. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Vastaa klikkaamalla."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Viimeisin tekstiviesti. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Vastaa klikkaamalla."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"saapuva"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"lähtevä"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"vastaamaton"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Viimeisin puhelu. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Soita takaisin klikkaamalla."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Viimeisin puhelu. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Soita takaisin klikkaamalla."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Sinä: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts toimii paremmin, kun kirjoitat käyttäjän Hangouts-tunnuksen sähköposti- tai puhelinnumerokenttään."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Lisää kenttiä"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Vaihda kuva"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Muokkausnäkymän avaaminen epäonnistui."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Tallennetaan tiliin"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Tälle hetkellä tallennetaan tilille <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Valitse eri tili kaksoisnapauttamalla."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Yhdistetyt kontaktit (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Yhdistetty kontakti</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> yhdistettyä kontaktia"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"YHDISTÄ KONTAKTIT"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Lisää kenttiä"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Vaihda yhteystiedon valokuvaa"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Lisää yhteystiedon valokuva"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Yhteystiedon valokuva"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Muokkausnäkymän avaaminen epäonnistui."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Tallennetaan tilille"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Tilin <xliff:g id="ACCOUNT">%s</xliff:g> yhteystietoja ei voi muokata."</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LINKITÄ YHTEYSTIEDOT"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"PERUUTA"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mahdollista kaksoiskappaletta</item>
-      <item quantity="one">1 mahdollinen kaksoiskappale</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">Yhdistä <xliff:g id="COUNT">%d</xliff:g> kontaktin tiedot</item>
-      <item quantity="one">Yhdistä 1 kontaktin tiedot</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Tämä kontakti"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mahdolliset kaksoiskappaleet"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Nämä yhteystiedot saattavat kuulua samalle henkilölle. Voit linkittää ne yhdeksi yhteystiedoksi."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Linkitetyt yhteystiedot"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Omista tileistäsi"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Ota kuva"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Kaikki kuvat"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Valitse valokuva"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Tili: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Poista <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Poista <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Poista <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Tilin <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> kuvaa ei ole valittuna."</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Tilin <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> kuva on valittuna."</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Tuntemattoman tilin kuva ei ole valittuna."</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Tuntemattoman tilin kuva on valittuna."</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Yhteystietoluetteloa päivitetään vaihdetun kielen mukaiseksi.\n\nOdota…"</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Lisää numero"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Estä numero"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Lisää numero tai hae yhteystiedoista"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Kumotaanko numeron <xliff:g id="NUMBER">%1$s</xliff:g> esto?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"KUMOA ESTO"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Estetäänkö <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ESTÄ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Numero <xliff:g id="NUMBER">%1$s</xliff:g> estetty"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Numeron <xliff:g id="NUMBER">%1$s</xliff:g> esto kumottu"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> on virheellinen."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Puheluesto väliaikaisesti pois käytöstä"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Puheluiden estäminen on poistettu käytöstä, koska olet ottanut yhteyttä hätäpalveluihin tästä puhelimesta viimeisen 48 tunnin aikana. Esto otetaan automaattisesti uudelleen käyttöön, kun puhelusta on kulunut 48 tuntia."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Tuo"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Näytä numerot"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Lisää numero"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Puhelujen esto poistettiin käytöstä 48 tunnin ajaksi"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Toiminto poistettiin käytöstä hätäpuhelun vuoksi."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"KUMOA"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> on jo estetty."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Poista numeron esto"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Yhteystiedot: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Tuonti epäonnistui."</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Tuo numerot"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Ota käyttöön"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Ehdotukset"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Uusi"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Avaa navigoinnin vetopaneeli"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Sulje navigoinnin vetopaneeli"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Tunniste <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Tunnisteet"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Tilit"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Näytä yhteiset historiatiedot"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Tapahtumat ja viestit"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Tapahtumat"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Viestit"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Ehdotukset"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Pidä yhteystiedot järjestettynä ja hyödyllisinä"</string>
+    <string name="undo" msgid="1425165101664071422">"Kumoa"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Soita: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Soita kotinumeroon"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Soita matkapuhelimeen"</string>
+    <string name="call_work" msgid="5328785911463744028">"Soita työnumeroon"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Soita faksinumeroon (työ)"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Soita faksinumeroon (koti)"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Soita hakulaitteeseen"</string>
+    <string name="call_other" msgid="8563753966926932052">"Soita"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Soita takaisinsoittonumeroon"</string>
+    <string name="call_car" msgid="3280537320306436445">"Soita autopuhelimeen"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Soita yrityksen ensisijaiseen numeroon"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Soita ISDN-numeroon"</string>
+    <string name="call_main" msgid="6082900571803441339">"Soita ensisijaiseen numeroon"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Soita faksinumeroon"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Soita radiopuhelimeen"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Soita teleksinumeroon"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Soita tekstipuhelimeen"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Soita matkapuhelimeen (työ)"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Soita hakulaitteeseen (työ)"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Soita: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Soita MMS-numeroon"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (soita)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Lähetä tekstiviesti: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Lähetä tekstiviesti kotinumeroon"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Lähetä tekstiviesti matkapuhelimeen"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Lähetä tekstiviesti työnumeroon"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Lähetä tekstiviesti faksinumeroon (työ)"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Lähetä tekstiviesti faksinumeroon (koti)"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Lähetä tekstiviesti hakulaitteeseen"</string>
+    <string name="sms_other" msgid="806127844607642331">"Tekstiviesti"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Lähetä tekstiviesti takaisinsoittonumeroon"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Lähetä tekstiviesti autopuhelimeen"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Lähetä tekstiviesti yrityksen ensisijaiseen numeroon"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Lähetä tekstiviesti ISDN-numeroon"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Lähetä tekstiviesti ensisijaiseen numeroon"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Lähetä tekstiviesti faksinumeroon"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Lähetä tekstiviesti radiopuhelimeen"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Lähetä tekstiviesti teleksinumeroon"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Lähetä tekstiviesti tekstipuhelimeen"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Lähetä tekstiviesti matkapuhelimeen (työ)"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Lähetä tekstiviesti hakulaitteeseen (työ)"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Lähetä tekstiviesti: <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Lähetä tekstiviesti MMS-numeroon"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (lähetä viesti)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Soita videopuhelu"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Tyhjennetäänkö usein käytetyt?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Toiminto tyhjentää Yhteystiedot- ja Puhelin-sovellusten usein käytettyjen yhteystietojen luettelon. Lisäksi sähköpostisovellukset pakotetaan opettelemaan osoiteasetuksesi uudestaan."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Tyhjennetään usein käytetyt..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Tavoitettavissa"</string>
+    <string name="status_away" msgid="1838861100379804730">"Poissa"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Varattu"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Muu"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Hakemisto"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Työhakemisto"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Kaikki yhteystiedot"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Pikayhteys henkilöön <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Ei nimeä)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Usein käytetyt"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Kaikki kontaktit puhelinnumeroineen"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Työprofiilin yhteystiedot"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Näytä päivitykset"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Laite"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM-kortti"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nimi"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Lempinimi"</string>
+    <string name="name_given" msgid="4280790853455320619">"Etunimi"</string>
+    <string name="name_family" msgid="7466985689626017037">"Sukunimi"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Nimen etuliite"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Toinen nimi"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Nimen jälkiliite"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nimen ääntämistapa"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Etunimen ääntämistapa"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Toisen nimen ääntämistapa"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Sukunimen ääntämistapa"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Puhelin"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Sähköposti"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Osoite"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Pikaviestitili"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisaatio"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Suhde"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Erityispäivämäärä"</string>
+    <string name="sms" msgid="1756857139634224222">"Tekstiviesti"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Osoite"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Yritys"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Nimi"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Muistiinpanot"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Muokattu"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Sivusto"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Tunnisteet"</string>
+    <string name="email_home" msgid="8573740658148184279">"Lähetä sähköpostia kotiosoitteeseen"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Lähetä sähköpostia mobiiliosoitteeseen"</string>
+    <string name="email_work" msgid="2807430017302722689">"Lähetä sähköpostia työosoitteeseen"</string>
+    <string name="email_other" msgid="3454004077967657109">"Sähköposti"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Lähetä sähköpostia: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Sähköposti"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Katuosoite"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Kaupunki"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Lääni"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postinumero"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Maa"</string>
+    <string name="map_home" msgid="1243547733423343982">"Näytä kotiosoite"</string>
+    <string name="map_work" msgid="1360474076921878088">"Näytä työosoite"</string>
+    <string name="map_other" msgid="3817820803587012641">"Näytä osoite"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Näytä osoite: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Keskustele AIM:n avulla"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Keskustele Windows Liven avulla"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Keskustele Yahoon avulla"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Keskustele Skypen avulla"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Keskustele QQ:n avulla"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Keskustele Google Talkin avulla"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Keskustele ICQ:n avulla"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Keskustele Jabberin avulla"</string>
+    <string name="chat" msgid="9025361898797412245">"Pikaviesti"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"poista"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Näytä lisää nimikenttiä"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Tiivistä nimikentät"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Näytä lisää foneettisia nimikenttiä"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Tiivistä foneettiset nimikentät"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Laajenna"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Kutista"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Laajennettu"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Tiivistetty"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Kaikki yhteystiedot"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Tähdelliset"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Muokkaa"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Yhteystiedot"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Kaikki muut yhteystiedot"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Kaikki yhteystiedot"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Poista synkronointiryhmä"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Lisää synkronointiryhmä"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Lisää ryhmiä…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Ryhmän <xliff:g id="GROUP">%s</xliff:g> poistaminen synkronoinnista lopettaa myös ryhmittelemättömien yhteystietojen synkronoinnin."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Tallennetaan näyttövalintoja…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Muokattu näkymä"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Tallenna tuodut yhteystiedot kohteeseen"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-kortti"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM-kortti <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d yhteystietoa</item>
+      <item quantity="one">1 yhteystieto</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> yhteystietoa • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> yhteystieto • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf-tiedosto"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Ei tuotavia tietoja"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Tuodaanko yhteystiedot vCard-tiedostosta?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Peruuta kohteen <xliff:g id="FILENAME">%s</xliff:g> tuonti?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Peruuta kohteen <xliff:g id="FILENAME">%s</xliff:g> vienti?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCardin tuonnin/viennin peruutus epäonn."</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Tuntematon virhe."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Tiedostoa \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ei voi avata: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Vientiohjelman käynnistys epäonnistui: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Ei vietäviä yhteystietoja."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Olet poistanut käytöstä tarvittavan käyttöoikeuden."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Virhe viennin aikana: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O-virhe"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Muisti ei riitä. Tiedosto voi olla liian suuri."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Muotoa ei tueta."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Kohteen <xliff:g id="FILENAME">%s</xliff:g> vienti valmis."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Yhteystiedot vietiin"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Yhteystiedot vietiin. Jaa yhteystiedot klikkaamalla ilmoitusta."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Jaa yhteystiedot napauttamalla."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Kohteen <xliff:g id="FILENAME">%s</xliff:g> vienti peruutettu."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Viedään yhteystietoja"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Yhteystietoja viedään."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Tietokannan tietojen hakeminen epäonnistui."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Vietäviä yhteystietoja ei ole."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard-luonti ei käynnistynyt oikein."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Vieminen epäonnistui"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Yhteystietoja ei viety.\nSyy: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Tuodaan <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard-tietojen luku epäonnistui."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCardin <xliff:g id="FILENAME">%s</xliff:g> tuonti valmis"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Kohteen <xliff:g id="FILENAME">%s</xliff:g> tuonti peruttu"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> tuodaan pian."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Tiedosto tuodaan pian."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard-tuontipyyntö hylättiin. Yritä myöhemmin uudelleen."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Yhteystiedot viedään hetken kuluttua."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard-vientipyyntö hylättiin. Yritä myöhemmin uudelleen."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"yhteystieto"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Lisätään vCard-tietojen välimuistiversiot paikalliseen väliaikaistallennustilaan. Tuonti alkaa pian."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard-tietojen tuominen epäonnistui."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakti saatu (NFC)"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Vie välimuistiin"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Tuodaan <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Vie .vcf-tiedostoon"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Lajitteluperuste"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nimen ääntämistapa"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Näytä aina"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Piilota, jos tyhjä"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Etunimi"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Sukunimi"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Nimen muoto"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Etunimi ensin"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Sukunimi ensin"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Tilit"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Uusien yhteystietojen oletustili"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Omat tiedot"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Luo profiili"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Tietoja yhteystiedoista"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Jaa suosikkiyhteystiedot"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Jaa kaikki yhteystiedot"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Yhteystietojen jakaminen epäonnistui."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Vie yhteystiedot"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Tuo yhteystiedot lähteestä"</string>
+    <string name="share_error" msgid="948429331673358107">"Yhteystieto ei jaettavissa"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Jaettavia yhteystietoja ei ole."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Näytettävät yhteystiedot"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Näytettävät yhteystiedot"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Näkymän muokkaaminen"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Tallenna"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Hae yhteystietoja"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Suosikit"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Tuo"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Vie"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Estetyt numerot"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"lähteestä: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> lähteestä: <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"lopeta haku"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Tyhjennä haku"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Tili"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Käytä kaikille puheluille"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Soita ja lähetä muistiinpano"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Kirjoita muistiinpano, joka lähetetään puhelun yhteydessä…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"LÄHETÄ ja SOITA"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Koontiversio"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Avoimen lähdekoodin käyttöluvat"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Avoimen lähdekoodin ohjelmiston käyttöluvan tiedot"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Tietosuojakäytäntö"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Käyttöehdot"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Avoimen lähdekoodin käyttöluvat"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"URL-osoitteen avaus epäonnistui."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g>, valittu"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g>, ei valittu"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Soita videopuhelu"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Poista"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipsi"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> t <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Pikakuvake on poistettu käytöstä"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Yhteystieto poistettiin"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Tuo"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Valitse yhteystiedot"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM-kortilla ei ole yhteystietoja."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Yhteystieto on jo luettelossasi."</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-yhteystietoa tuotiin.</item>
+      <item quantity="one">Yksi SIM-yhteystieto tuotiin.</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-yhteystietojen tuonti epäonnistui."</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Tuo SIM-kortilta"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Peruuta"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automaattinen synkronointi ei ole käytössä. Ota toiminto käyttöön napauttamalla."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Hylkää"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Tilin synkronointi ei ole käytössä. Ota toiminto käyttöön napauttamalla."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Otetaanko automaattinen synkronointi käyttöön?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Yhteystietoihin ja kaikkiin muihin sovelluksiin ja tileihin tekemäsi muutokset synkronoidaan verkon ja laitteidesi välillä."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Ota käyttöön"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Ei yhteyttä"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-kortti"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Näytä lisää"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM-kortin tuominen valmis"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Tuonti epäonnistui."</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Yhteystietojen tuominen SIM-kortilta epäonnistui."</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Tuodaan SIM-kortin yhteystietoja"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 392ab62..b5ca8bd 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contacts"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contacts"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Afficher le contact"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Modifier le contact"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Ajouter un contact"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Raccourci appel"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Raccourci message"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Choisir un contact pour le raccourci"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Choisissez le numéro à appeler"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Choisissez le numéro auquel envoyer le message"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Sélectionner un contact"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Ajouter au contact"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Sélectionner un contact"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Sélectionner"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Créer un contact"</string>
-    <string name="starredList" msgid="4817256136413959463">"Favoris"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Contacts fréquents"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoris"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Détails du contact"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Modifier un contact"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Créer un contact"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Modifier le groupe"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Créer un groupe"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"À propos"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Mises à jour"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Rechercher des contacts"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Afficher le contact"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Rech. des contacts"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Ajouter aux favoris"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Supprimer des favoris"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Supprimé des favoris"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Modifier"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Supprimer"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Changer de photo"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Placer sur l\'écran d\'accueil"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Appeler le contact"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Envoyer un SMS au contact"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Créer un raccourci"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Annuler la fusion"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Modifier"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Supprimer"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Ajouter un contact"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Ajouter un groupe"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Supprimer les contacts"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Renommer l\'étiquette"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Supprimer l\'étiquette"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Ajouter un contact"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Sélectionner des contacts"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Ajouter des contacts"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Supprimer de l\'étiquette"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Créer une étiquette"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Annuler la fusion et diviser ce contact en plusieurs contacts?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Annuler la fusion"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Voulez-vous enregistrer les modifications que vous avez déjà apportées et diviser ce contact en plusieurs contacts?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Enregistrer et annuler la fusion"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Voulez-vous enregistrer les modifications que vous avez déjà apportées et les associer au contact sélectionné?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Enregistrer et fusionner"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Association en cours…"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Dissociation en cours…"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Fusionner"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Afficher les contacts associés"</string>
     <string name="menu_save" msgid="1727844363591825909">"Enregistrer"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Associer les contacts"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Choisissez le contact que vous souhaitez associer à <xliff:g id="NAME">%s</xliff:g> :"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Afficher tous les contacts"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contacts suggérés"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tous les contacts"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> associés"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contacts associés"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> supprimé"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> et <xliff:g id="NAME_1">%2$s</xliff:g> supprimés"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… supprimés"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Contact supprimé</item>
       <item quantity="other">Contacts supprimés</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> contact</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contacts</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> contact · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"De Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"De <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Régler sonnerie"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Tous appels vers messag. voc."</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Les contacts issus de vos comptes en lecture seule ne peuvent pas être supprimés, mais ils peuvent être masqués."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Masquer"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Le contact à supprimer contient des renseignements issus de plusieurs comptes. Les détails issus des comptes en lecture seule seront masqués, mais pas supprimés."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Au moins deux contacts doivent être sélectionnés pour effectuer une fusion."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Fusionner les contacts sélectionnés?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Fusionner"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Diriger vers messagerie vocale"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ne plus rediriger"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ce contact est en lecture seule. Il ne peut pas être supprimé, mais vous pouvez le masquer."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Masquer le contact"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Les comptes en lecture seule de ce contact seront masqués, mais non supprimés."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Supprimer ce contact?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Supprimer les contacts sélectionnés?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Les contacts issus de vos comptes en lecture seule ne peuvent pas être supprimés, mais ils peuvent être masqués."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"La suppression de ce contact entraînera la suppression de renseignements dans plusieurs comptes."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Supprimer ce contact?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Supprimer"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Supprimer les modifications"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Ce contact n\'existe pas."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Le contact a été ajouté à l\'écran d\'accueil."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"« <xliff:g id="NAME">%s</xliff:g> » a été ajouté à l\'écran d\'accueil."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Créer un nouveau contact"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Créer un nouveau contact"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisation"</item>
-    <item msgid="7196592230748086755">"NOTE"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Aucune image n\'est disponible sur la tablette."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Aucune image disponible sur le téléphone"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Aucune image n\'est disponible sur l\'appareil."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Photo du contact"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Étiquette personnalisée"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Renvoyer les appels directement vers la messagerie vocale"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Retirer la photo"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Aucun contact"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Aucun groupe"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Vous devez posséder un compte pour créer des groupes."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Ce groupe est vide."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Pour ajouter des membres, veuillez le modifier."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Enregistrement du contact…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Votre liste de contacts est vide"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Aucun contact avec cette étiquette"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Aucun contact dans ce compte"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Votre liste de contacts est vide"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> enregistré"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contact enregistré."</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"La fusion des contacts a été annulée"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Impossible d\'enregistrer les modifications apportées au contact."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Impossible de dissocier le contact."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Impossible d\'associer le contact."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Erreur lors de l\'enregistrement du contact."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Impossible d\'enregistrer les changements apportés à la photo du contact."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Groupe enregistré"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Impossible d\'enregistrer les modifications apportées au groupe."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact avec un numéro de téléphone</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts avec un numéro de téléphone</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Aucun contact disposant d\'un numéro de téléphone"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> résultat</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> résultats</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Impossible d\'enregistrer les modifications apportées au contact"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Impossible de dissocier le contact"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Impossible d\'associer le contact"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Erreur lors de l\'enregistrement du contact"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Impossible d\'enregistrer les changements apportés à la photo du contact"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Échec du chargement de l\'étiquette"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Étiquette supprimée"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Étiquette créée"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Impossible de créer une étiquette"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Étiquette mise à jour"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Supprimé de l\'étiquette"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Ajouté à l\'étiquette"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Impossible d\'enregistrer l\'étiquette modifiée"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Cette étiquette existe déjà"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Certains contacts n\'ont pas d\'adresse de courriel."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Certains contacts n\'ont pas de numéro de téléphone."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Envoyer un courriel"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Envoyer un message"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Sélectionner des contacts"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Envoyer"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Aucun contact"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> résultat</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> résultats</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Tout"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoris"</string>
-    <string name="callBack" msgid="5498224409038809224">"Rappeler"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Renouveler l\'appel"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Rappeler"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Ajouter \"<xliff:g id="EMAIL">%s</xliff:g>\" aux contacts?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"photo du contact"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> sur <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Noms de vos contacts"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Aucune application pouvant gérer cette action n\'a été trouvée."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Cliquez ici pour revenir à l\'écran précédent"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ajouter un numéro de téléphone"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Ajouter une adresse de courriel"</string>
     <string name="missing_app" msgid="1466111003546611387">"Aucune application pouvant gérer cette action n\'a été trouvée."</string>
     <string name="menu_share" msgid="943789700636542260">"Partager"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Ajouter aux contacts"</string>
-    <string name="share_via" msgid="563121028023030093">"Partager contact via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Sélectionner le compte associé au groupe"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Ajouter"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Partager le contact par</item>
+      <item quantity="other">Partager les contacts par</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Choisir un compte"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Créer une étiquette"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Renommer l\'étiquette"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nom d\'étiquette"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nom d\'étiquette"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Clavardage audio"</string>
     <string name="video_chat" msgid="1872255818640336072">"Clavardage vidéo"</string>
-    <string name="connections" msgid="8098440723172028350">"Liens"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Ajouter un contact"</string>
-    <string name="recent" msgid="2659189233141493004">"Fichiers récents"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Mises à jour récentes"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Compte <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Non modifiable depuis cette application."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Non modifiable sur cet appareil."</string>
     <string name="take_photo" msgid="7496128293167402354">"Prendre une photo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Prendre une autre photo"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Choisir une photo"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Sélectionner une nouvelle photo"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"La liste de contacts est en cours de mise à jour."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Recherche en cours..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Afficher la sélection"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Tout afficher"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Tout sélectionner"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Tout désélectionner"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Ajouter"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Ajouter une entreprise"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Recherche…"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nom du groupe"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Modifier"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Photo principale"</string>
-    <string name="description_star" msgid="2605854427360036550">"favori"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Modifier un contact"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Associer ce contact au contact sélectionné?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Étiquette"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Annuler"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Précédent"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"fermer"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Modifier le contact sélectionné? Les informations saisies jusqu\'ici seront copiées."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copier dans \"Mes contacts\""</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Ajouter à \"Mes contacts\""</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Annuaire <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personnaliser"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Paramètres"</string>
     <string name="menu_settings" msgid="377929915873428211">"Paramètres"</string>
     <string name="menu_help" msgid="1680178646764069976">"Aide et commentaires"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Options d\'affichage"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Numéro de téléphone"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Ajouter aux contacts"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Ajouter au contact"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Fermer"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Inclure l\'année"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contact"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Chargement en cours..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Créer un contact"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Ajouter un compte"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Téléverser des contacts"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Créer un groupe"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Créer un groupe"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> groupe</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> groupes</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Supprimer le groupe \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Les contacts ne seront pas supprimés."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> personne à partir de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> personnes à partir de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> personne</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> personnes</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importer"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Créer…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Supprimer l\'étiquette « <xliff:g id="GROUP_LABEL">%1$s</xliff:g> »? (Les contacts ne seront pas supprimés.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Entrez le nom du contact avant de l\'associer à un autre."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copier dans le presse-papiers"</string>
     <string name="set_default" msgid="4417505153468300351">"Définir par défaut"</string>
     <string name="clear_default" msgid="7193185801596678067">"Effacer les valeurs par défaut"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Texte copié."</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Annuler les modifications?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Ignorer"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configurer mon profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Saisissez le nom de la personne"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nom du groupe"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Supprimer les modifications?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Ignorer"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Annuler"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Supprimer les personnalisations?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Rechercher dans les contacts"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Supprimer les contacts"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mon profil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mon profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Affichage de tous les contacts"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Tirez le meilleur parti de l\'application Contacts en utilisant un compte Google.\n\n• Accédez-y à partir de n\'importe quel navigateur Web.\n• Sauvegardez vos contacts en toute sécurité."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Assurez la sécurité de vos contacts, même si vous perdez votre téléphone en effectuant une synchronisation avec un service en ligne."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Ajouter un compte"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Votre nouveau contact ne sera pas sauvegardé. Ajouter un compte qui sauvegarde les contacts en ligne?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Prenez une minute pour ajouter un compte qui sauvegardera vos contacts sur Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Les nouveaux contacts seront enregistrés dans le compte <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Choisissez un compte par défaut pour les nouveaux contacts :"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Ajouter un contact"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Modifier un contact"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Enreg. copie locale"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Contact"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Modifier"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Lecture seule"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Choisissez le contact à modifier"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contacts associés"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Ajouter"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Dissocier"</string>
     <string name="add_account" msgid="8201790677994503186">"Ajouter un compte"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Ajouter un nouveau compte"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exporter les fichiers de la base de données"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ajouter un contact"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Créer un contact"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"En voir plus"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"En voir moins"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Tout afficher"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Récents"</string>
     <string name="about_card_title" msgid="2920942314212825637">"À propos"</string>
-    <string name="send_message" msgid="8938418965550543196">"Envoyer un message"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Création d\'une copie personnelle en cours..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Hier"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Création d\'une copie personnelle…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Demain"</string>
     <string name="today" msgid="8041090779381781781">"Aujourd\'hui"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Aujourd\'hui à <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Demain à <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Événement sans titre)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Définir"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"MI"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Site Web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Événement"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relation"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Compte"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nom"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Courriel"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Téléphone"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Photo"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Cliquez pour développer l\'éditeur de contact."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Cliquez pour réduire l\'éditeur de contact."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"itinéraire vers le lieu"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Texto récent : « <xliff:g id="MESSAGE_BODY">%s</xliff:g> », de <xliff:g id="PHONE_NUMBER">%s</xliff:g>, le <xliff:g id="DATE">%s</xliff:g>. Touchez l\'écran pour répondre à ce message."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Texto récent : « <xliff:g id="MESSAGE_BODY">%1$s</xliff:g> », de <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>, le <xliff:g id="DATE">%3$s</xliff:g>. Touchez l\'écran pour répondre à ce message."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"entrant"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"sortant"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"manqué"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Appel récent : <xliff:g id="CALL_TYPE">%s</xliff:g>, <xliff:g id="PHONE_NUMBER">%s</xliff:g>, <xliff:g id="DATE">%s</xliff:g>. Touchez l\'écran pour rappeler ce numéro."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Appel récent : <xliff:g id="CALL_TYPE">%1$s</xliff:g>, <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>, <xliff:g id="DATE">%3$s</xliff:g>. Touchez l\'écran pour rappeler ce numéro."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Vous : <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Google Hangout fonctionne mieux lorsque vous entrez l\'identifiant Hangout de la personne dans le champ de l\'adresse de courriel ou du numéro de téléphone."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Autres champs"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Changer de photo"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Échec d\'ouverture de l\'éditeur."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Enregistrer dans le compte"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Enregistrement en cours dans le compte <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Touchez deux fois pour choisir un autre compte."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Contact associé (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Contacts associés (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contacts associés"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Autres champs"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Modifier la photo du contact"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Ajouter une photo du contact"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Photo du contact"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Échec de l\'ouverture de l\'éditeur."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Enregistrer dans le compte"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Les coordonnées de <xliff:g id="ACCOUNT">%s</xliff:g> ne peuvent pas être modifiées"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ASSOCIER LES CONTACTS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANNULER"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> doublon possible</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> doublons possibles</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact associé</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts associés</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one"> (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other"> (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g> <xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ce contact"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Doublons possibles"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Ces contacts correspondent peut-être à la même personne. Vous pouvez les regrouper dans un seul contact."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contacts associés"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"De vos comptes"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Prendre une photo"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Toutes les photos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Sélectionner une photo"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"De <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Effacer <xliff:g id="DATA_TYPE">%s </xliff:g> <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Effacer <xliff:g id="DATA_TYPE">%1$s </xliff:g> <xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Effacer <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Photo <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> – <xliff:g id="USER_NAME">%s </xliff:g> non cochée"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Photo <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> – <xliff:g id="USER_NAME">%s </xliff:g> cochée"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Photo d\'un compte inconnu non sélectionnée"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Photo d\'un compte inconnu sélectionnée"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Mise à jour de la liste des contacts en cours suite au changement de langue.\n\nVeuillez patienter..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Ajouter un numéro"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquer le numéro"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Ajouter nº ou chercher contact"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Débloquer le numéro <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DÉBLOQUER"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloquer le numéro <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUER"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Le numéro « <xliff:g id="NUMBER">%1$s</xliff:g> » est bloqué"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Le numéro « <xliff:g id="NUMBER">%1$s</xliff:g> » est débloqué"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Le numéro <xliff:g id="NUMBER">%1$s</xliff:g> n\'est pas valide."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blocage appels désactivé temporairement"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Le blocage des appels a été désactivé, car vous avez communiqué avec les services d\'urgence à partir de ce téléphone au cours des dernières 48 heures. Le blocage sera réactivé automatiquement après 48 heures."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importer"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Afficher les numéros"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Ajouter un numéro"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blocage des appels désactivé pendant 48 heures"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Désactivé, car un appel d\'urgence a été effectué"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ANNULER"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Le numéro <xliff:g id="NUMBER">%1$s</xliff:g> est déjà bloqué."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Débloquer le numéro"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Coordonnées de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Échec de l\'importation"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importer les numéros"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Activer"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Suggestions"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nouveau"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Ouvrir le panneau de navigation"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Fermer le panneau de navigation"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Étiquette <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Étiquettes"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Comptes"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Consultez votre historique en commun"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Événements et messages"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Événements"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Messages"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suggestions"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Gardez vos contacts organisés et utiles"</string>
+    <string name="undo" msgid="1425165101664071422">"Annuler"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Appeller <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Appeler le numéro de téléphone du domicile"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Appeler le numéro de téléphone mobile"</string>
+    <string name="call_work" msgid="5328785911463744028">"Appeler le numéro de téléphone professionnel"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Appeler le numéro de télécopie professionnel"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Appeler le numéro de télécopie du domicile"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Appeler le téléavertisseur"</string>
+    <string name="call_other" msgid="8563753966926932052">"Appeler"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Appeler le numéro de rappel"</string>
+    <string name="call_car" msgid="3280537320306436445">"Appeler le numéro de télphone de la voiture"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Appeler le numéro de téléphone principal de l\'entreprise"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Appeler le numéro de téléphone RNIS"</string>
+    <string name="call_main" msgid="6082900571803441339">"Appeler le numéro de téléphone principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Appeler le numéro de télécopie"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Appeler par signal radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Appeler par télex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Appeler le numéro TTY/TDD (malentendants)"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Appeler le numéro de téléphone mobile professionnel"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Appeler le téléavertisseur professionnel"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Appeller <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Appeler le numéro de téléphone MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (appeler)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Envoyer un texto à <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Envoyer un SMS au numéro de téléphone du domicile"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Envoyer un SMS au numéro de téléphone mobile"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Envoyer un SMS au numéro de téléphone professionnel"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Envoyer un SMS au numéro de télécopie professionnel"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Envoyer un SMS au numéro de télécopie du domicile"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Envoyer un SMS au téléavertisseur"</string>
+    <string name="sms_other" msgid="806127844607642331">"Texte"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Envoyer un SMS au numéro de rappel"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Envoyer un SMS au numéro de téléphone de la voiture"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Envoyer un SMS au numéro de téléphone principal de l\'entreprise"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Envoyer un SMS au numéro de téléphone RNIS"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Envoyer un SMS au numéro de téléphone principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Envoyer un SMS au numéro de télécopie"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Envoyer un SMS par signal radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Envoyer un SMS par télex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Envoyer un SMS au numéro TTY/TDD (malentendants)"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Envoyer un SMS au numéro de téléphone mobile professionnel"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Envoyer un SMS au téléavertisseur professionnel"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Envoyer un SMS au <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Envoyer un SMS au numéro de téléph MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (envoyer un message texte)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Faire un appel vidéo"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Effacer les contacts fréquents?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Cette opération efface la liste des personnes avec qui vous communiquez le plus souvent dans les applications Contacts et Téléphone. Elle oblige vos applications de courriel à mémoriser de nouveau les adresses que vous utilisez le plus."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Suppression des contacts fréquents…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponible"</string>
+    <string name="status_away" msgid="1838861100379804730">"Absent"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Occupé(e)"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Autre"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Répertoire"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Annuaire professionnel"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Tous les contacts"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Lien rapide vers <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Sans nom)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Contacts fréquents"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Tous les contacts disposant d\'un numéro de téléphone"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contacts du profil professionnel"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Afficher les mises à jour"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Appareil"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nom"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Pseudonyme"</string>
+    <string name="name_given" msgid="4280790853455320619">"Prénom"</string>
+    <string name="name_family" msgid="7466985689626017037">"Nom de famille"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Préfixe du nom"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Deuxième prénom"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Suffixe du nom"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nom phonétique"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Prénom phonétique"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Deuxième prénom phonétique"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Nom de famille phonétique"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Téléphone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Adresse de courriel :"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresse"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Messagerie instantanée"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisation"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relation"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Date spéciale"</string>
+    <string name="sms" msgid="1756857139634224222">"Message texte"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresse"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Entreprise"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titre"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Remarques"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personnalisé"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Site Web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Étiquettes"</string>
+    <string name="email_home" msgid="8573740658148184279">"Envoyer un courriel au domicile"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Envoyer un courriel sur le mobile"</string>
+    <string name="email_work" msgid="2807430017302722689">"Envoyer un courriel au bureau"</string>
+    <string name="email_other" msgid="3454004077967657109">"Adresse de courriel :"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Envoyer un courriel à <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Adresse de courriel :"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Rue"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Ville"</string>
+    <string name="postal_region" msgid="6045263193478437672">"État/province"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Code postal"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Pays"</string>
+    <string name="map_home" msgid="1243547733423343982">"Afficher l\'adresse personnelle"</string>
+    <string name="map_work" msgid="1360474076921878088">"Afficher l\'adresse professionnelle"</string>
+    <string name="map_other" msgid="3817820803587012641">"Afficher l\'adresse"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Afficher l\'adresse de <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Clavarder via AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Clavarder via Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Clavarder via Yahoo!"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Clavarder via Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Clavarder via QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Clavarder via Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Clavarder via ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Clavarder via Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Clavardage"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"suppr"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Afficher plus de champs de nom"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Réduire les champs de nom"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Afficher plus de champs de nom phonétique"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Réduire les champs de nom phonétique"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Développer"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Réduire"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Développés"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Réduits"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Tous les contacts"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Marqués d\'une étoile"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personnaliser"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"contact"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Tous les autres contacts"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Tous les contacts"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Supprimer le groupe de synchronisation"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Ajouter groupe de synchronisation"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Autres groupes…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Le retrait du groupe \"<xliff:g id="GROUP">%s</xliff:g>\" de la synchronisation entraîne également le retrait des contacts n\'appartenant à aucun groupe."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Enregistrement des options d\'affichage en cours…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Affichage personnalisé"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Enregistrer les contacts importés dans le compte :"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Carte SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"Carte SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d contact</item>
+      <item quantity="other">%1$d contacts</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> contact • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contacts • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Fichier .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Rien à importer"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importer les contacts de vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Annuler l\'importation du fichier <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Annuler l\'exportation du fichier <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Impossible annuler import./export. vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Erreur inconnue."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Impossible d\'ouvrir le fichier <xliff:g id="FILE_NAME">%1$s</xliff:g> pour la raison suivante : <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Impossible de démarrer le programme d\'exportation pour la raison suivante : <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Aucun contact ne peut être exporté."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Vous avez désactivé une autorisation obligatoire."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Une erreur s\'est produite lors de l\'exportation : <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Erreur d\'E/S."</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Mémoire insuffisante. Le fichier est peut-être trop volumineux."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Le format n\'est pas compatible."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Exportation du fichier <xliff:g id="FILENAME">%s</xliff:g> terminée"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Les contacts ont été exportés."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Les contacts ont été exportés. Cliquez sur la notification pour les partager."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Touchez ici pour partager des contacts."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exportation du fichier <xliff:g id="FILENAME">%s</xliff:g> annulée"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportation des données des contacts en cours"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Les données des contacts sont en cours d\'exportation."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Impossible d\'obtenir les informations concernant la base de données."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Aucun contact ne peut être exporté."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Le système de composition vCard n\'a pas démarré correctement."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Échec exportation"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Les données du contact n\'ont pas été exportées.\nMotif : <xliff:g id="FAIL_REASON">%s</xliff:g>."</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importation (<xliff:g id="NAME">%s</xliff:g>)"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Impossible de lire les données vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Le fichier vCard <xliff:g id="FILENAME">%s</xliff:g> a bien été importé"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importation du fichier <xliff:g id="FILENAME">%s</xliff:g> annulée"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Le fichier <xliff:g id="FILENAME">%s</xliff:g> va bientôt être importé."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Le fichier va bientôt être importé."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"La demande d\'importation du fichier vCard a été rejetée. Veuillez réessayer plus tard."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Les contacts seront exportés sous peu."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"La demande d\'exportation du fichier vCard a été rejetée. Veuillez réessayer plus tard."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contact"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Mise en cache des fichiers vCard dans l\'espace de stockage temporaire local. L\'importation va bientôt démarrer."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Impossible d\'importer le fichier vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contact reçu via NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Mise en cache…"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importation <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> sur <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> (<xliff:g id="NAME">%3$s</xliff:g>)"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exporter en format .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Trier par"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nom phonétique"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Toujours afficher"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Masquer si vide"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Prénom"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Nom de famille"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format de nom"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Prénom en premier"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nom de famille en premier"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Comptes"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Compte par défaut pour nouveaux contacts"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mon profil"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configurer votre profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"À propos de Contacts"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Partager les contacts favoris"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Partager tous les contacts"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Échec du partage des contacts."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exporter des contacts"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importer des contacts de"</string>
+    <string name="share_error" msgid="948429331673358107">"Impossible de partager ce contact."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Il n\'y a aucun contact à partager."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contacts à afficher"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contacts à afficher"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personnaliser l\'affichage"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Enregistrer"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Rechercher dans les contacts"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoris"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importer"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exporter"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Numéros bloqués"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"arrêter la recherche"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Effacer les termes de recherche"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Compte"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Toujours l\'utiliser pour les appels"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Envoyez une note pour accompagner l\'appel"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Tapez une note pour accompagner l\'appel…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVOYER ET APPELER"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Version"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licences de logiciels libres"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Renseignements sur les licences de logiciels libres"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Politique de confidentialité"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Conditions d\'utilisation"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licences de logiciels libres"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Échec de l\'ouverture de l\'URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Contact « <xliff:g id="ACCOUNT_INFO">%s</xliff:g> » coché"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Contact « <xliff:g id="ACCOUNT_INFO">%s</xliff:g> » non coché"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Faire un appel vidéo"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Supprimer"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipse"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ce raccourci a été désactivé"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Le contact a été supprimé"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importer"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Sélectionner des contacts"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Aucun contact n\'a été trouvé sur votre carte SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Ce contact existe déjà dans votre liste"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact importé de la carte SIM</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts importés de la carte SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Échec de l\'importation des contacts de la carte SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importer à partir de la carte SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Annuler"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"La synchronisation automatique est désactivée. Touchez ici pour l\'activer."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ignorer"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"La synchronisation des comptes est désactivée. Touchez ici pour l\'activer."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Activer la synchronisation automatique?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Les modifications que vous apportez dans l\'ensemble des applications et des comptes, non seulement dans Contacts Google, sont synchronisées avec le Web et avec vos appareils."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Activer"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Aucune connexion"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"Carte SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Afficher plus"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importation de la carte SIM terminée"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Échec de l\'importation"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Impossible d\'importer des contacts à partir de la carte SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importation des contacts SIM en cours…"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index dcd8161..0c33b80 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contacts"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contacts"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Afficher le contact"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Modifier le contact"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacts"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Ajouter un contact"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Raccourci appel"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Raccourci message"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Choisissez un contact pour le raccourci"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Choisissez le numéro à appeler"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Choisissez le numéro auquel envoyer le message"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Choisir un contact"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Ajouter au contact"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Sélectionner un contact"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Sélectionner"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Créer un contact"</string>
-    <string name="starredList" msgid="4817256136413959463">"Favoris"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Contacts fréquents"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoris"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Détails du contact"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Modifier le contact"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Créer un contact"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Modifier le groupe"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Créer un groupe"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"À propos de"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Mises à jour"</string>
     <string name="searchHint" msgid="8482945356247760701">"Rech. des contacts"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Afficher le contact"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Ajouter aux favoris"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Supprimer des favoris"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Supprimé des favoris"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Modifier"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Supprimer"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Changer de photo"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Placer sur l\'écran d\'accueil"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Appeler le contact"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Envoyer un SMS au contact"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Créer un raccourci"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Dissocier"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Modifier"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Supprimer"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Ajouter un contact"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Ajouter un groupe"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Supprimer les contacts"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Renommer le libellé"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Supprimer le libellé"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Ajouter un contact"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Sélectionner des contacts"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Ajouter des contacts"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Retirer du libellé"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Créer un libellé"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Diviser ce contact en plusieurs contacts ?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Dissocier"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Voulez-vous enregistrer les modifications que vous avez déjà apportées et diviser ce contact en plusieurs contacts ?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Enregistrer et dissocier"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Voulez-vous enregistrer les modifications que vous avez déjà apportées et les associer au contact sélectionné ?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Enregistrer et associer"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Association des contacts..."</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Dissociation des contacts..."</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Associer"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Afficher les contacts associés"</string>
     <string name="menu_save" msgid="1727844363591825909">"Enregistrer"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Associer les contacts"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Sélectionnez le contact que vous souhaitez associer avec <xliff:g id="NAME">%s</xliff:g> :"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Afficher tous les contacts"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contacts suggérés"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tous les contacts"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> associé"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Les contacts ont bien été associés."</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Contact <xliff:g id="NAME">%1$s</xliff:g> supprimé"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Contacts <xliff:g id="NAME_0">%1$s</xliff:g> et <xliff:g id="NAME_1">%2$s</xliff:g> supprimés"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Contacts <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… supprimés"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Contact supprimé.</item>
       <item quantity="other">Contacts supprimés.</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> contact</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contacts</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> contact · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Contacts Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Contacts de <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Régler sonnerie"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Tous appels vers messag. voc."</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Les contacts issus de vos comptes en lecture seule ne peuvent pas être supprimés, mais ils peuvent être masqués."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Masquer"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Le contact à supprimer contient des informations détaillées issues de plusieurs comptes. Les informations détaillées issues des comptes en lecture seule seront masquées, mais pas supprimées."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Vous ne pouvez pas associer un seul et même contact. Veuillez en sélectionner au moins deux."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Associer les contacts sélectionnés ?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Associer"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Rediriger vers la messagerie"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ne plus rediriger"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ce contact est en lecture seule. Il ne peut pas être supprimé, mais vous pouvez le masquer."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Masquer le contact"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Les comptes en lecture seule de ce contact seront masqués, mais pas supprimés."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Supprimer ce contact ?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Supprimer les contacts sélectionnés ?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Les contacts issus de vos comptes en lecture seule ne peuvent pas être supprimés, mais ils peuvent être masqués."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"La suppression de ce contact entraînera la suppression d\'informations détaillées issues de plusieurs comptes."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Supprimer ce contact ?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Supprimer"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Supprimer les modifications"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Ce contact n\'existe pas."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Le contact a bien été ajouté à l\'écran d\'accueil."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"\"<xliff:g id="NAME">%s</xliff:g>\" a bien été ajouté à l\'écran d\'accueil."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Créer un nouveau contact"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Créer un nouveau contact"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisation"</item>
-    <item msgid="7196592230748086755">"Remarque"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Aucune image n\'est disponible sur la tablette."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Aucune image disponible sur le téléphone."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Aucune image n\'est disponible sur l\'appareil."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Photo d\'un contact"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Libellé personnalisé"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Renvoyer les appels directement vers la messagerie vocale"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Supprimer la photo"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Aucun contact"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Aucun groupe"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Vous devez posséder un compte pour créer des groupes."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Ce groupe est vide."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Pour ajouter des membres, veuillez le modifier."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Enregistrement du contact…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Votre liste de contacts est vide"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Aucun contact n\'est associé à ce libellé"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Aucun contact dans ce compte"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Votre liste de contacts est vide"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> enregistré"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contact enregistré."</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contacts dissociés"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Impossible d\'enregistrer les modifications apportées au contact."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Impossible de dissocier le contact."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Impossible d\'associer le contact."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Erreur lors de l\'enregistrement du contact."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Impossible d\'enregistrer les modifications apportées à la photo du contact."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Groupe enregistré"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Impossible d\'enregistrer les modifications apportées au groupe."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact avec numéro de téléphone</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts avec numéro de téléphone</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Aucun contact disposant d\'un numéro de téléphone"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact trouvé</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts trouvés</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Impossible d\'enregistrer les modifications apportées au contact"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Impossible de dissocier le contact"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Impossible d\'associer le contact"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Erreur lors de l\'enregistrement du contact"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Impossible d\'enregistrer les modifications apportées à la photo du contact"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Impossible de charger le libellé"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Libellé supprimé"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Libellé créé"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Impossible de créer le libellé"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Libellé mis à jour"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Contact retiré du libellé"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Ajout au libellé effectué"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Impossible d\'enregistrer les changements apportés au libellé"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ce libellé existe déjà"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Certains contacts n\'ont pas d\'adresse e-mail."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Certains contacts n\'ont pas de numéro de téléphone."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Envoyer un e-mail"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Envoyer un message"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Sélectionner des contacts"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Envoyer"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Aucun contact"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact trouvé</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts trouvés</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Tous"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoris"</string>
-    <string name="callBack" msgid="5498224409038809224">"Rappeler"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Renouveler l\'appel"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Rappeler"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Ajouter \"<xliff:g id="EMAIL">%s</xliff:g>\" aux contacts ?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"photo du contact"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> sur <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacts"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Noms de vos contacts"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Aucune application pouvant gérer cette action n\'a été trouvée."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Cliquez pour revenir à l\'écran précédent."</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ajouter un numéro de téléphone"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Ajouter une adresse e-mail"</string>
     <string name="missing_app" msgid="1466111003546611387">"Aucune application trouvée pour gérer cette action."</string>
     <string name="menu_share" msgid="943789700636542260">"Partager"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Ajouter aux contacts"</string>
-    <string name="share_via" msgid="563121028023030093">"Partager contact via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Sélectionner le compte associé au groupe"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Ajouter"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Partager un contact via</item>
+      <item quantity="other">Partager des contacts via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Sélectionner un compte"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Créer un libellé"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Renommer un libellé"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nom du libellé"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nom du libellé"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat audio"</string>
     <string name="video_chat" msgid="1872255818640336072">"Chat vidéo"</string>
-    <string name="connections" msgid="8098440723172028350">"Contacts"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Ajouter un contact"</string>
-    <string name="recent" msgid="2659189233141493004">"Récentes"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Mises à jour récentes"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contact <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Compte <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Non modifiable depuis cette application."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Non modifiable sur cet appareil."</string>
     <string name="take_photo" msgid="7496128293167402354">"Prendre une photo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Prendre une autre photo"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Sélectionner une photo"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Sélectionner une nouvelle photo"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"La liste de contacts est en cours de mise à jour."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Recherche…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Afficher la sélection"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Tout afficher"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Tout sélectionner"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Tout désélectionner"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Ajouter"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Ajouter une entreprise"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Date"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nom du groupe"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Modifier"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Photo principale"</string>
-    <string name="description_star" msgid="2605854427360036550">"favori"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Modifier le contact"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Associer ce contact au contact sélectionné ?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Ajouter libellé"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Annuler"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Retour"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"fermer"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Modifier le contact sélectionné ? Les informations saisies jusqu\'ici seront copiées."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copier dans \"Mes contacts\""</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Ajouter à \"Mes contacts\""</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Annuaire <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personnalisé"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Paramètres"</string>
     <string name="menu_settings" msgid="377929915873428211">"Paramètres"</string>
     <string name="menu_help" msgid="1680178646764069976">"Aide et commentaires"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Options d\'affichage"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Numéro de téléphone"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Ajouter aux contacts"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Ajouter au contact"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Fermer"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Inclure l\'année"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contact"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Chargement…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Créer un contact"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Ajouter un compte"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importer des contacts"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Créer un groupe"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Créer un groupe"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> groupe</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> groupes</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Supprimer le groupe \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ? Les contacts ne seront pas supprimés."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> contact dans <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contacts dans <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> contact</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> contacts</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importer"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Créer…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Supprimer le libellé \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" (les contacts associés ne seront pas supprimés) ?"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Saisissez le nom du contact avant de l\'associer à un autre."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copier dans le presse-papiers"</string>
     <string name="set_default" msgid="4417505153468300351">"Définir par défaut"</string>
     <string name="clear_default" msgid="7193185801596678067">"Effacer les valeurs par défaut"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Texte copié"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Supprimer les modifications ?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Supprimer"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configurer mon profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Saisissez le nom de la personne"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nom du groupe"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Ignorer les modifications ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Supprimer"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Annuler"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Supprimer les personnalisations ?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Rechercher des contacts"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Supprimer les contacts"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mon profil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mon profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Affichage de tous les contacts"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Tirez le meilleur parti de l\'application Contacts en utilisant un compte Google.\n\n• Accédez-y depuis n\'importe quel navigateur Web.\n• Sauvegardez vos contacts en toute sécurité."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Assurez la sécurité de vos contacts, même si vous perdez votre téléphone en effectuant une synchronisation avec un service en ligne."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Ajouter un compte"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Votre nouveau contact ne sera pas sauvegardé. Ajouter un compte permettant de sauvegarder les contacts en ligne ?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Prenez le temps d\'ajouter un compte afin de sauvegarder vos contacts sur Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Les nouveaux contacts seront enregistrés dans le compte <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Sélectionnez un compte par défaut pour les nouveaux contacts :"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Ajouter un contact"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Créer un contact"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Modifier contact"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Enregistrer localement"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Lecture seule"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Choisir le contact à modifier"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contacts associés"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Ajouter"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Dissocier"</string>
     <string name="add_account" msgid="8201790677994503186">"Ajouter un compte"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Ajouter un compte"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exporter les fichiers de la base de données"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ajouter un contact"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Créer un contact"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Plus"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Moins"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Tout afficher"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Récents"</string>
     <string name="about_card_title" msgid="2920942314212825637">"À propos de"</string>
-    <string name="send_message" msgid="8938418965550543196">"Envoyer le message"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Création d\'une copie personnelle en cours..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Hier"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Création d\'une copie personnelle…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Demain"</string>
     <string name="today" msgid="8041090779381781781">"Aujourd\'hui"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Aujourd\'hui, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Demain, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Événement sans titre)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Définir"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Messagerie instantanée"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Site Web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Événement"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relation"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Compte"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nom"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Adresse e-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Numéro de téléphone"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Photo"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Cliquez pour développer l\'éditeur de contact."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Cliquez pour réduire l\'éditeur de contact."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"itinéraire vers le lieu"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS récent : \"<xliff:g id="MESSAGE_BODY">%s</xliff:g>\", <xliff:g id="PHONE_NUMBER">%s</xliff:g>, <xliff:g id="DATE">%s</xliff:g>. Appuyez sur l\'écran pour répondre à ce message."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS récent : \"<xliff:g id="MESSAGE_BODY">%1$s</xliff:g>\", <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>, <xliff:g id="DATE">%3$s</xliff:g>. Appuyez sur l\'écran pour répondre à ce message."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"entrant"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"sortant"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"manqué"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Appel récent : <xliff:g id="CALL_TYPE">%s</xliff:g>, <xliff:g id="PHONE_NUMBER">%s</xliff:g>, <xliff:g id="DATE">%s</xliff:g>. Appuyez sur l\'écran pour rappeler ce numéro."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Appel récent : <xliff:g id="CALL_TYPE">%1$s</xliff:g>, <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>, <xliff:g id="DATE">%3$s</xliff:g>. Appuyez sur l\'écran pour rappeler ce numéro."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Vous : <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Les Hangouts fonctionnent mieux si vous saisissez l\'identifiant Hangouts de la personne concernée dans le champ de l\'adresse e-mail ou du numéro de téléphone."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Autres champs"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Changer de photo"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Échec de l\'ouverture de l\'éditeur."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Enregistrement sur le compte"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Enregistrement en cours sur le compte <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Double-cliquez pour choisir un autre compte."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Contact associé (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Contacts associés (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contacts associés"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Autres champs"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Modifier la photo du contact"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Ajouter une photo pour le contact"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Photo du contact"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Échec de l\'ouverture de l\'éditeur."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Enregistrement sur le compte"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Les coordonnées de <xliff:g id="ACCOUNT">%s</xliff:g> ne sont pas modifiables."</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ASSOCIER LES CONTACTS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANNULER"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact potentiellement en double</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts potentiellement en double</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact associé</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts associés</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g> – <xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ce contact"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Doublons potentiels"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Ces contacts correspondent peut-être à la même personne. Vous pouvez les regrouper dans un seul contact."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contacts associés"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"De vos comptes"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Prendre une photo"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Toutes les photos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Sélectionner une photo"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Du compte <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Supprimer l\'élément \"<xliff:g id="DATA_TYPE">%s </xliff:g> – <xliff:g id="DATA_KIND">%s</xliff:g>\""</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Supprimer l\'élément \"<xliff:g id="DATA_TYPE">%1$s </xliff:g> – <xliff:g id="DATA_KIND">%2$s</xliff:g>\""</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Supprimer l\'élément \"<xliff:g id="DATA_KIND">%s</xliff:g>\""</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Photo <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> – <xliff:g id="USER_NAME">%s </xliff:g> non cochée"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Photo <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> – <xliff:g id="USER_NAME">%s </xliff:g> cochée"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Photo d\'un compte inconnu non sélectionnée"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Photo d\'un compte inconnu sélectionnée"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Mise à jour de la liste des contacts en cours suite au changement de langue.\n\nVeuillez patienter..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Ajouter un numéro"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquer le numéro"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Ajouter num. ou rech. contacts"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Débloquer le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" ?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DÉBLOQUER"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloquer le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" ?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUER"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est bloqué."</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est débloqué."</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" n\'est pas valide."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blocage appels désactivé temporairement"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Le blocage des appels a été désactivé, car vous avez contacté les services d\'urgence à l\'aide de ce téléphone au cours des dernières 48 heures. Le blocage sera réactivé automatiquement après 48 heures."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importer"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Afficher les numéros"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Ajouter un numéro"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blocage des appels désactivé pendant 48 heures"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Désactivé, car un appel d\'urgence a été effectué"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ANNULER"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est déjà bloqué."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Débloquer le numéro"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Coordonnées associées à <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Échec lors de l\'importation."</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importer les numéros"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Pour rechercher vos contacts, activez l\'autorisation Contacts."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Activer"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Suggestions"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nouveau"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Ouvrir le panneau de navigation"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Fermer le panneau de navigation"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Libellé <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Libellés"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Comptes"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Rassembler vos historiques"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Événements et messages"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Événements"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Messages"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suggestions"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Organisez vos contacts et faites en sorte qu\'ils vous soient utiles"</string>
+    <string name="undo" msgid="1425165101664071422">"Annuler"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Appeler le <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Appeler domicile"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Appeler mobile"</string>
+    <string name="call_work" msgid="5328785911463744028">"Appeler bureau"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Composer télécopie (bureau)"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Composer fax (domicile)"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Appeler téléavertisseur"</string>
+    <string name="call_other" msgid="8563753966926932052">"Appeler"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Appeler numéro de rappel"</string>
+    <string name="call_car" msgid="3280537320306436445">"Appeler voiture"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Appeler entreprise (principal)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Appeler numéro RNIS"</string>
+    <string name="call_main" msgid="6082900571803441339">"Appeler numéro principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Appeler numéro de fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Appeler par signal radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Appeler par télex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Appeler TTY/TTD (malentendants)"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Appeler mobile bureau"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Appeler téléavertisseur bureau"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Appeler le <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Appeler MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (appeler)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Envoyer un SMS au <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Envoyer un SMS au domicile"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Envoyer un SMS vers mobile"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Envoyer un SMS au bureau"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Envoyer un SMS vers télécopie (bureau)"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Envoyer un SMS vers télécopie (domicile)"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Envoyer un SMS vers téléavertisseur"</string>
+    <string name="sms_other" msgid="806127844607642331">"Envoyer un SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Envoyer un SMS au numéro de rappel"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Envoyer un SMS vers voiture"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Envoyer un SMS à entreprise (principal)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Envoyer un SMS vers numéro RNIS"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Envoyer un SMS au numéro principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Envoyer un SMS à ce numéro de fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Envoyer un SMS vers radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Envoyer un SMS par télex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Envoyer SMS vers numéro TTY/TTD (malentendants)"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Envoyer un SMS sur le mobile professionnel"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Envoyer un SMS vers téléavertisseur (bureau)"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Envoyer un SMS à <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Envoyer un MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (envoyer un SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Passer un appel vidéo"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Effacer les contacts fréquents ?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Cette opération efface la liste des personnes que vous contactez le plus souvent dans les applications Contacts et Téléphone, et entraîne une réinitialisation des adresses mémorisées comme celles que vous utilisez le plus fréquemment dans vos applications de messagerie électronique."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Suppression des contacts fréquents"</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponible"</string>
+    <string name="status_away" msgid="1838861100379804730">"Absent"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Occupé"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Autre"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Annuaire"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Annuaire professionnel"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Tous les contacts"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Liens rapides vers <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Sans nom)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Contacts fréquents"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Tous les contacts disposant d\'un numéro de téléphone"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contacts du profil professionnel"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Afficher mises à jour"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Appareil"</string>
+    <string name="account_sim" msgid="6519016427905087952">"Carte SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nom"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Pseudo"</string>
+    <string name="name_given" msgid="4280790853455320619">"Prénom"</string>
+    <string name="name_family" msgid="7466985689626017037">"Nom"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Titre"</string>
+    <string name="name_middle" msgid="8467433655992690326">"2e prénom"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Suffixe"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nom phonétique"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Prénom phonétique"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"2e prénom phonétique"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Nom phonétique"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Téléphone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresse"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Chat"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisation"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relation"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Occasion spéciale"</string>
+    <string name="sms" msgid="1756857139634224222">"SMS"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresse"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Entreprise"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titre"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notes"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personnalisé"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"Adresse SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Site Web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Libellés"</string>
+    <string name="email_home" msgid="8573740658148184279">"Env. e-mail domicile"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Envoyer un e-mail sur le mobile"</string>
+    <string name="email_work" msgid="2807430017302722689">"Env. e-mail bureau"</string>
+    <string name="email_other" msgid="3454004077967657109">"Envoyer un e-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Envoyer un e-mail à <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Envoyer un e-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Rue"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Ville"</string>
+    <string name="postal_region" msgid="6045263193478437672">"État"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Code postal"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Pays"</string>
+    <string name="map_home" msgid="1243547733423343982">"Afficher adresse perso"</string>
+    <string name="map_work" msgid="1360474076921878088">"Afficher adresse prof."</string>
+    <string name="map_other" msgid="3817820803587012641">"Afficher l\'adresse"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Afficher l\'adresse de <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chatter via AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chatter via Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chatter via Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chatter via Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chatter via QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chatter via Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chatter via ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chatter via Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chatter"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"supprimer"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Afficher plus de champs pour la saisie du nom"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Réduire les champs de nom"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Afficher plus de champs pour la saisie du nom phonétique"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Réduire les champs de nom phonétique"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Développer"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Réduire"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Vue développée"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Vue réduite"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Tous les contacts"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Contacts favoris"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personnaliser"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contact"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Tous les autres contacts"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Tous les contacts"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Supprimer le groupe de synchronisation"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Ajouter groupe de synchronisation"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Autres groupes..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Le retrait de \"<xliff:g id="GROUP">%s</xliff:g>\" de la synchronisation entraînera également le retrait des contacts n\'appartenant à aucun groupe."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Enregistrement des options d\'affichage..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Vue personnalisée"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Enregistrer les contacts importés sur :"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Carte SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d contact</item>
+      <item quantity="other">%1$d contacts</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> contact • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contacts • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Fichier .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Aucun contact à importer"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importer les contacts de la vCard ?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Annuler l\'importation de \"<xliff:g id="FILENAME">%s</xliff:g>\" ?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Annuler l\'exportation de \"<xliff:g id="FILENAME">%s</xliff:g>\" ?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Impossible annuler import./export. vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Erreur inconnue."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Impossible d\'ouvrir \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" pour la raison suivante : <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Impossible de démarrer le programme d\'exportation : \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Aucun contact ne peut être exporté."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Vous avez désactivé une autorisation obligatoire."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Une erreur s\'est produite lors de l\'exportation : \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Erreur d\'E/S."</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Mémoire insuffisante. Le fichier est peut-être trop volumineux."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Ce format n\'est pas compatible."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Exportation de \"<xliff:g id="FILENAME">%s</xliff:g>\" terminée"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Les contacts ont bien été exportés"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Les contacts ont bien été exportés. Cliquez sur la notification pour les partager."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Appuyez pour partager les contacts."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exportation de \"<xliff:g id="FILENAME">%s</xliff:g>\" annulée"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportation des données des contacts"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Les données de contact sont en cours d\'exportation."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Impossible d\'obtenir les informations concernant la base de données."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Aucun contact à exporter."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Le système de composition vCard n\'a pas démarré correctement."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Échec exportation"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Les données du contact n\'ont pas été exportées.\nMotif : \"<xliff:g id="FAIL_REASON">%s</xliff:g>\"."</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importation en cours : <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Impossible de lire les données vCard."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Fichier vCard <xliff:g id="FILENAME">%s</xliff:g> importé"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importation de \"<xliff:g id="FILENAME">%s</xliff:g>\" annulée"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Importation du fichier <xliff:g id="FILENAME">%s</xliff:g> imminente"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Le fichier va bientôt être importé."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"La demande d\'importation du fichier vCard a été rejetée. Veuillez réessayer ultérieurement."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Les contacts seront bientôt exportés."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"La demande d\'exportation du fichier vCard a été rejetée. Veuillez réessayer ultérieurement."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contact"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Mise en cache des fichiers vCard dans l\'espace de stockage temporaire local. L\'importation va bientôt démarrer."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Impossible d\'importer le fichier vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contact reçu via NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Mise en cache…"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importation en cours <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> : <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exporter vers fichier VCF"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Trier par"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nom phonétique"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Toujours afficher"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Masquer si non disponible"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Prénom"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Nom"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format du nom"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Prénom en premier"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nom en premier"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Comptes"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Compte par défaut pour les nouveaux contacts"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mes infos"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configurer votre profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"À propos de Contacts"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Partager les contacts favoris"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Partager tous les contacts"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Échec du partage des contacts."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exporter les contacts"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importer des contacts de"</string>
+    <string name="share_error" msgid="948429331673358107">"Impossible de partager ce contact."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Aucun contact à partager."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contacts à afficher"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contacts à afficher"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personnaliser la vue"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Enregistrer"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Rechercher dans vos contacts"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoris"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importer"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exporter"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Numéros bloqués"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"arrêter la recherche"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Effacer la recherche"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Compte"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Toujours l\'utiliser pour les appels"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Appeler avec une note"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Saisissez une note pour accompagner l\'appel..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVOYER L\'OBJET ET APPELER"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Version de build"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licences Open Source"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Informations sur les licences des logiciels Open Source"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Règles de confidentialité"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Conditions d\'utilisation"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licences Open Source"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Impossible d\'ouvrir l\'URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Élément \"<xliff:g id="ACCOUNT_INFO">%s</xliff:g>\" coché"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Élément \"<xliff:g id="ACCOUNT_INFO">%s</xliff:g>\" non coché"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Passer un appel vidéo"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Supprimer"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipse"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min et <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min et <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ce raccourci a été désactivé."</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Le contact a été supprimé."</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importer"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Sélectionner des contacts"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Aucun contact n\'a été trouvé sur votre carte SIM."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Le contact figure déjà dans votre liste."</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact importé depuis la carte SIM</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacts importés depuis la carte SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Impossible d\'importer les contacts de la carte SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importer à partir de la carte SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Annuler"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"La synchronisation automatique est désactivée. Appuyez pour l\'activer."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ignorer"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"La synchronisation de votre compte est désactivée. Appuyez pour l\'activer."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Activer la synchronisation automatique ?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Les modifications que vous apportez sur l\'ensemble des applications et des comptes, pas seulement dans l\'application Contacts, sont actualisées entre le Web et vos appareils."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Activer"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Aucune connexion"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"Carte SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Afficher plus"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importation depuis la carte SIM terminée"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Échec lors de l\'importation"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Impossible d\'importer les contacts depuis la carte SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importation depuis la carte SIM..."</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
deleted file mode 100644
index 240106c..0000000
--- a/res/values-gl-rES/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Contactos"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contactos"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Ver contacto"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Editar contacto"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Marcación directa"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mensaxe directa"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Seleccionar un atallo para o contacto"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Escolle un número ao que chamar"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Escolle un número ao que enviar unha mensaxe"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Engadir ao contacto"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Seleccionar un contacto"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Crear novo contacto"</string>
-    <string name="starredList" msgid="4817256136413959463">"Marcados con asterisco"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frecuentes"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoritos"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detalles do contacto"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Editar contacto"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Crear contacto"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Crear grupo"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Acerca de"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Actualizacións"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Buscar contactos"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Ver contacto"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Engadir a favoritos"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Eliminar dos favoritos"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Eliminado de favoritos"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Engadido a favoritos"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Eliminar"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Cambiar foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Colocar na pantalla de inicio"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Chamar ao contacto"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Enviar mensaxe ao contacto"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Desligar"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Editar"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Eliminar"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Engadir contacto"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Engadir grupo"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Queres desligar este contacto en varios contactos?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Desligar"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Queres gardar os cambios que xa fixeches e desligar este contacto en varios contactos?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Gardar e desligar"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Queres gardar os cambios que xa fixeches e ligalos co contacto seleccionado?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Gardar e ligar"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Ligar"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Gardar"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Ligar contactos"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Selecciona o contacto que queres ligar con <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostrar todos os contactos"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contactos suxeridos"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos os contactos"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Ligáronse os contactos"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Elimináronse os contactos</item>
-      <item quantity="one">Eliminouse o contacto</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Definir ton"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Todas as chamadas a correo voz"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Non se poden eliminar os contactos das túas contas de só lectura, pero poden ocultarse."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ocultar"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"O contacto que se vai eliminar contén detalles de varias contas. Ocultaranse os detalles das contas de só lectura, pero non se eliminarán."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Necesitas seleccionar polo menos dous contactos para poder ligalos."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Queres ligar os contactos seleccionados?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Ligar"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Queres eliminar este contacto?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Queres eliminar os contactos seleccionados?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Non se poden eliminar os contactos das túas contas de só lectura, pero poden ocultarse."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Os contactos que se van eliminar teñen detalles de varias contas. Ocultaranse os detalles das contas de só lectura, pero non se eliminarán."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"A eliminación deste contacto eliminará detalles de varias contas."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Queres eliminar este contacto?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Eliminar"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Descartar cambios"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"O contacto non existe."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Engadiuse o contacto á pantalla de inicio."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> engadiuse á pantalla de inicio."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crear novo contacto"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Crear novo contacto"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organización"</item>
-    <item msgid="7196592230748086755">"Nota"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Non hai imaxes dispoñibles no tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Non hai imaxes dispoñibles no teléfono."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto de contacto"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nome de etiqueta personalizada"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Enviar chamadas directamente ao correo de voz"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Eliminar foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Sen contactos"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Ningún grupo"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Para crear grupos precisas unha conta."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Non hai ninguén neste grupo."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Para engadir algo, edita o grupo."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Gardando contacto..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Gardouse o contacto"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Desligáronse os contactos"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Non se puideron gardar os cambios nos contactos."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Non foi posible desligarse do contacto."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Non se puido ligar o contacto."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Produciuse un erro ao gardar o contacto."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Non se puideron gardar os cambios na foto do contacto."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupo gardado"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Non se puideron gardar os cambios no grupo."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos con números de teléfono</item>
-      <item quantity="one">Un contacto con número de teléfono</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ningún contacto ten número de teléfono"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos encontrados</item>
-      <item quantity="one">Un contacto encontrado</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Sen contactos"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos encontrados</item>
-      <item quantity="one">Un contacto encontrado</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Todos"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
-    <string name="callBack" msgid="5498224409038809224">"Devolver chamada"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Chamar de novo"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Devolver chamada"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Engadir \"<xliff:g id="EMAIL">%s</xliff:g>\" aos contactos?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto de contacto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"máis"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Nomes dos teus contactos"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Non se encontrou ningunha aplicación para procesar esta acción."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Fai clic para volver á pantalla anterior"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Engadir número de teléfono"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Engadir correo electrónico"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Non se encontrou ningunha aplicación para procesar esta acción."</string>
-    <string name="menu_share" msgid="943789700636542260">"Compartir"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Engadir a contactos"</string>
-    <string name="share_via" msgid="563121028023030093">"Compartir contacto mediante"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Crear grupo na conta"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Chat de vídeo"</string>
-    <string name="connections" msgid="8098440723172028350">"Conexións"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Engadir conexión"</string>
-    <string name="recent" msgid="2659189233141493004">"Recente"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Actualizac. recentes"</string>
-    <string name="account_type_format" msgid="718948015590343010">"Contacto de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"Conta de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Non editable desde esta aplicación."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Non editable neste dispositivo"</string>
-    <string name="take_photo" msgid="7496128293167402354">"Facer foto"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Facer foto nova"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Escoller foto"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Seleccionar nova foto"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Estase actualizando a lista de contactos."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Buscando..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mostrar selección"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mostrar todo"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Seleccionar todo"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Anular toda a selección"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Engadir nova"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Engadir organización"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome do grupo"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Cambiar"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto principal"</string>
-    <string name="description_star" msgid="2605854427360036550">"favorito"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Editar contacto"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Queres ligar o contacto actual co contacto seleccionado?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Cambiar para editar o contacto seleccionado? Copiarase a información introducida ata o momento."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copiar en Os meus contactos"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Engadir a Os meus contactos"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Directorio <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizados"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Configuración"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Configuración"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Axuda e opinión"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opcións de visualización"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Número de teléfono"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Engadir a contactos"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Engadir ao contacto"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Pechar"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Incluír ano"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contacto"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Cargando..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Crear un contacto novo"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Engadir conta"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importar contactos"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Crear novo grupo"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Crear novo grupo"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupos</item>
-      <item quantity="one">Un grupo</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Queres eliminar o grupo \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Os contactos non se eliminarán)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> persoas de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoa de <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> persoas</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoa</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Escribe o nome do contacto antes de ligalo con outro."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Copiar no portapapeis"</string>
-    <string name="set_default" msgid="4417505153468300351">"Definir como predeterminado"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Borrar valores predeterminados"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Texto copiado"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Descartar os cambios?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Descartar"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configurar o meu perfil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Escribe o nome da persoa"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nome do grupo"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"O meu perfil local"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"O meu perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Mostrando todos os contactos"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"A aplicación de Contactos funciona mellor cunha conta de Google.\n\n• Accede desde calquera navegador web.\n• Realiza copias de seguranza dos teus contactos de xeito seguro."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantén os teus contactos seguros aínda que perdas o teléfono: sincroniza cun servizo en liña."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Engadir unha conta"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Non se creará unha copia de seguranza do teu novo contacto. Queres engadir unha conta que cree unha copia de seguranza dos contactos en liña?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Os contactos novos gardaranse en <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Escolle unha conta predeterminada para novos contactos:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Engadir contacto"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Gardar localmente"</string>
-    <string name="add_account" msgid="8201790677994503186">"Engadir conta"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Engadir conta nova"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Exportar ficheiros da base de datos"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"engadir novo contacto"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ver máis"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ver menos"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ver todo"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Recente"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Acerca de"</string>
-    <string name="send_message" msgid="8938418965550543196">"Enviar mensaxe"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Creando unha copia persoal..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Onte"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Mañá"</string>
-    <string name="today" msgid="8041090779381781781">"Hoxe"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Hoxe ás <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Mañá ás <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Evento sen título)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Configurar"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"MI"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Organización"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Alcume"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Sitio web"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Relación"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Conta"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Nome"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"Correo electrónico"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Teléfono"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Fai clic para ampliar o editor de contactos."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Fai clic para contraer o editor de contactos."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"indicacións para a localización"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. fai clic para responder"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"entrante"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"saínte"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"perdida"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"chamada recente. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. fai clic para devolver a chamada"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Ti: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funciona mellor se introduces o identificador de Hangouts da persoa no campo do correo electrónico ou do teléfono."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Máis campos"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Cambiar foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Produciuse un erro ao abrir o editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Gardando en"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Gardando actualmente en <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Toca dúas veces para seleccionar unha conta diferente."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Ligáronse os contactos (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Ligouse o contacto</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Ligáronse <xliff:g id="COUNT">%d</xliff:g> contactos"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LIGAR CONTACTOS"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCELAR"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> posibles duplicados</item>
-      <item quantity="one">1 posible duplicado</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">Ligáronse <xliff:g id="COUNT">%d</xliff:g> contactos</item>
-      <item quantity="one">Ligouse 1 contacto</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Este contacto"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Posibles duplicados"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Estes contactos poden referirse á mesma persoa. Podes ligalos nun contacto único."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contactos ligados"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Das túas contas"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Tirar unha foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Todas as fotos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Escoller foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"De <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Eliminar <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Eliminar <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Non se seleccionou a foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Seleccionouse a foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Non se seleccionou a foto dunha conta descoñecida"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Seleccionouse a foto dunha conta descoñecida"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"A lista de contactos estase actualizando para reflectir o cambio do idioma.\n\nAgarda..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Engadir número"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Engade número/busca contactos"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Queres desbloquear o <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Queres bloquear o <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Bloqueouse o <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Desbloqueouse o <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"O <xliff:g id="NUMBER">%1$s</xliff:g> non e válido."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"O bloqueo de chamadas desactivouse temporalmente"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"O bloqueo de chamadas desactivouse porque contactaches cos servizos de emerxencias desde este teléfono nas últimas 48 horas. Volverase activar automaticamente unha vez que pase o período de 48 horas."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Engadir número"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Desactivouse o bloqueo de chamadas durante 48 horas"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desactivouse porque se realizou unha chamada de emerxencia."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"DESFACER"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"O <xliff:g id="NUMBER">%1$s</xliff:g> xa está bloqueado."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Detalles de contacto de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Produciuse un erro na importación"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Para buscar os teus contactos, activa os permisos de Contactos."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Activar"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
new file mode 100644
index 0000000..1fa3936
--- /dev/null
+++ b/res/values-gl/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Contactos"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Engadir contacto"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Marcación directa"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mensaxe directa"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Escoller contacto"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Engadir a un contacto"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Seleccionar un contacto"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Seleccionar"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Crear novo contacto"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Buscar contactos"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Engadir a favoritos"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Eliminar dos favoritos"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Eliminado de favoritos"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Engadido a favoritos"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Eliminar"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Cambiar foto"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Crear acceso directo"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Desligar"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Eliminar contactos"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Cambiar nome da etiqueta"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Eliminar etiqueta"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Engadir contacto"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Seleccionar contactos"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Engadir contactos"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Eliminar da etiqueta"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Crear etiqueta"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Queres desligar este contacto en varios contactos?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Desligar"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Queres gardar os cambios que xa fixeches e desligar este contacto en varios contactos?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Gardar e desligar"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Queres gardar os cambios que xa fixeches e ligalos co contacto seleccionado?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Gardar e ligar"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Ligando"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Desligando"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Ligar"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Ver contactos ligados"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Gardar"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Ligar contactos"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Selecciona o contacto que queres ligar con <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contactos suxeridos"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos os contactos"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ligou os contactos"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Ligáronse os contactos"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Eliminouse a <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Eliminouse a <xliff:g id="NAME_0">%1$s</xliff:g> e <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Eliminouse a <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Elimináronse os contactos</item>
+      <item quantity="one">Eliminouse o contacto</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contactos</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contactos · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"De Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"De <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Definir ton"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Encamiñar ao correo de voz"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Desencamiñar ao correo de voz"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Este contacto é de só lectura. Non se pode eliminar, pero podes ocultalo."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ocultar contacto"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"As contas de só lectura neste contacto ocultaranse, pero non se eliminarán."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Queres eliminar este contacto?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Queres eliminar os contactos seleccionados?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Non se poden eliminar os contactos das túas contas de só lectura, pero poden ocultarse."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Os contactos que se van eliminar teñen detalles de varias contas. Ocultaranse os detalles das contas de só lectura, pero non se eliminarán."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"A eliminación deste contacto eliminará detalles de varias contas."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Queres eliminar este contacto?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Eliminar"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"O contacto non existe."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Engadiuse o contacto á pantalla de inicio."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Engadiuse a <xliff:g id="NAME">%s</xliff:g> á pantalla de inicio."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Non hai imaxes dispoñibles no dispositivo."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto de contacto"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nome de etiqueta personalizada"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Eliminar foto"</string>
+    <string name="noContacts" msgid="2228592924476426108">"A túa lista de contactos está baleira"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Non hai ningún contacto con esta etiqueta"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Non hai ningún contacto nesta conta"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"A túa lista de contactos está baleira"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Gardouse a <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Gardouse o contacto"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Desligáronse os contactos"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Non se puideron gardar os cambios no contacto"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Non se puido desligar o contacto"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Non se puido ligar o contacto"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Produciuse un erro ao gardar o contacto"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Non se puideron gardar os cambios na foto do contacto"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Produciuse un erro ao cargar a etiqueta"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Eliminouse a etiqueta"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Creouse a etiqueta"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Non se pode crear a etiqueta"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Actualizouse a etiqueta"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Eliminouse da etiqueta"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Engadiuse á etiqueta"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Non se puideron gardar os cambios na etiqueta"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Esa etiqueta xa existe"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Hai contactos sen ningún correo electrónico."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Hai contactos sen ningún número de teléfono."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Enviar correo electrónico"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Enviar mensaxe"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Escoller contactos"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Enviar"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Non hai contactos"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Engadir \"<xliff:g id="EMAIL">%s</xliff:g>\" aos contactos?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Nomes dos teus contactos"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Fai clic para volver á pantalla anterior"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Engadir número de teléfono"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Engadir correo electrónico"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Non se encontrou ningunha aplicación para procesar esta acción."</string>
+    <string name="menu_share" msgid="943789700636542260">"Compartir"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Engadir a contactos"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Engadir"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Compartir contactos mediante</item>
+      <item quantity="one">Compartir contacto mediante</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Escoller conta"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Crear etiqueta"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Cambiar nome da etiqueta"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nome da etiqueta"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nome etiqueta"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Chat de vídeo"</string>
+    <string name="account_type_format" msgid="718948015590343010">"Contacto de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"Conta de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Facer foto"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Facer foto nova"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Escoller foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Seleccionar nova foto"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Buscando..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiqueta"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancelar"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Volver"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"pechar"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Cambiar para editar o contacto seleccionado? Copiarase a información introducida ata o momento."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Directorio <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Configuración"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Configuración"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Axuda e suxestións"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Número de teléfono"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Engadir a contactos"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Pechar"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Incluír ano"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Engadir conta"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importar"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Crear nova…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Queres eliminar a etiqueta \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Os contactos non se eliminarán.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Escribe o nome do contacto antes de ligalo con outro."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Copiar no portapapeis"</string>
+    <string name="set_default" msgid="4417505153468300351">"Definir como predeterminado"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Borrar valores predeterminados"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Texto copiado"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Queres descartar os cambios?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancelar"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Queres descartar as personalizacións?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Busca nos contactos"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Eliminar contactos"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"O meu perfil local"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"O meu perfil de <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Engade unha conta para facer a copia de seguranza dos teus contactos en Google."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Os contactos novos gardaranse en <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Escolle unha conta predeterminada para novos contactos:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Crear novo contacto"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Só visualización"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Escoller contacto para editar"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contactos ligados"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Engadir"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Desligar"</string>
+    <string name="add_account" msgid="8201790677994503186">"Engadir conta"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Engadir conta nova"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Exportar ficheiros da base de datos"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Crear novo contacto"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ver máis"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ver menos"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Recente"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Acerca de"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Creando unha copia persoal..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Mañá"</string>
+    <string name="today" msgid="8041090779381781781">"Hoxe"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Hoxe ás <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Mañá ás <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Evento sen título)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Configurar"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"MI"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organización"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Alcume"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Sitio web"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Relación"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Nome"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Correo electrónico"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Teléfono"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"indicacións para a localización"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. fai clic para responder"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"entrante"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"saínte"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"perdida"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"chamada recente. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. fai clic para devolver a chamada"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Ti: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Máis campos"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Cambiar foto de contacto"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Engadir foto de contacto"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto de contacto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Produciuse un erro ao abrir o editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Gardando en"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"A información de contacto de <xliff:g id="ACCOUNT">%s</xliff:g> non se pode editar"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LIGAR CONTACTOS"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCELAR"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Este contacto"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Posibles duplicados"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Estes contactos poden referirse á mesma persoa. Podes ligalos nun contacto único."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Eliminar <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Eliminar <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Suxestións"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Abrir panel de navegación"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Pechar panel de navegación"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiqueta <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiquetas"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Contas"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Consultar o teu historial"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Eventos e mensaxes"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Eventos"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mensaxes"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suxestións"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mantén os teus contactos organizados e de modo que sexan útiles"</string>
+    <string name="undo" msgid="1425165101664071422">"Desfacer"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Chamar a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Chamar á casa"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Chamar ao móbil"</string>
+    <string name="call_work" msgid="5328785911463744028">"Chamar ao traballo"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Chamar ao número de fax do traballo"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Chamar ao número de fax da casa"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Chamar ao buscapersoas"</string>
+    <string name="call_other" msgid="8563753966926932052">"Chamar"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Chamar ao número de devolución de chamada"</string>
+    <string name="call_car" msgid="3280537320306436445">"Chamar ao coche"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Chamar ao número principal da empresa"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Chamar ao número de RDSI"</string>
+    <string name="call_main" msgid="6082900571803441339">"Chamar ao número principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Chamar ao fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Chamar á radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Chamar ao télex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Chamar ao número de TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Chamar ao móbil do traballo"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Chamar ao buscapersoas do traballo"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Chamar a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Chamar ao número de teléfono de MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (chamar)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Enviar unha mensaxe a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Enviar unha mensaxe á casa"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Enviar unha mensaxe ao teléfono móbil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Enviar unha mensaxe ao traballo"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Enviar unha mensaxe ao fax do traballo"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Enviar unha mensaxe ao fax da casa"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Enviar unha mensaxe ao buscapersoas"</string>
+    <string name="sms_other" msgid="806127844607642331">"Enviar unha mensaxe"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Enviar unha mensaxe ao número de devolución da chamada"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Enviar unha mensaxe ao coche"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Enviar unha mensaxe ao teléfono principal da empresa"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Enviar unha mensaxe ao teléfono de RDSI"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Enviar unha mensaxe ao teléfono principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Enviar unha mensaxe ao fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Enviar unha mensaxe á radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Enviar unha mensaxe ao télex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Enviar unha mensaxe ao TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Enviar unha mensaxe ao móbil do traballo"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Enviar unha mensaxe ao buscapersoas do traballo"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Enviar unha mensaxe a <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Enviar unha mensaxe ao MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (enviar mensaxe)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Realizar videochamada"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Borrar contactados con frecuencia?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Borrarás a lista de persoas coas que contactas frecuentemente das aplicacións Contactos e Teléfono, e obrigarás as aplicacións de correo electrónico a que memoricen as túas preferencias de enderezos desde cero."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Borrando contactados frecuencia..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Dispoñible"</string>
+    <string name="status_away" msgid="1838861100379804730">"Ausente"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Ocupado"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Outro"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directorio"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Directorio de traballo"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Todos os contactos"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contacto rápido para <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Sen nome)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Contactados frecuentemente"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Todos os contactos con números de teléfono"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contactos do perfil de traballo"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Ver actualizacións"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Dispositivo"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nome"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Alcume"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nome"</string>
+    <string name="name_family" msgid="7466985689626017037">"Apelidos"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Tratamento do nome"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Segundo nome"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Información profesional do nome"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nome fonético"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nome fonético"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Segundo nome fonético"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Apelido fonético"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Teléfono"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Correo electrónico"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Enderezo"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"MI"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organización"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relación"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Data especial"</string>
+    <string name="sms" msgid="1756857139634224222">"Mensaxe de texto"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Enderezo"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Empresa"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Cargo"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notas"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalizado"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Sitio web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiquetas"</string>
+    <string name="email_home" msgid="8573740658148184279">"Enviar correo electrónico á casa"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Enviar correo electrónico ao móbil"</string>
+    <string name="email_work" msgid="2807430017302722689">"Enviar correo electrónico ao traballo"</string>
+    <string name="email_other" msgid="3454004077967657109">"Correo electrónico"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Enviar correo electrónico a: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Correo electrónico"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Rúa"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Cidade"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Estado"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Código postal"</string>
+    <string name="postal_country" msgid="7638264508416368690">"País"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ver enderezo da casa"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ver enderezo do traballo"</string>
+    <string name="map_other" msgid="3817820803587012641">"Ver enderezo"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Ver enderezo de: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chatear con AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chatear con Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chatear con Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chatear con Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chatear con QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chatear con Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chatear con ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chatear con Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chatear"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"eliminar"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Mostrar máis campos de nome"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Contraer campos de nome"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Mostrar máis campos de nome fonético"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Contraer campos de nome fonético"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Despregar"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Contraer"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Despregado"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Contraído"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Todos os contactos"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Marcados con estrela"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizar"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contacto"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Todos os demais contactos"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Todos os contactos"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Eliminar grupo de sincronización"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Engadir grupo de sincronización"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Máis grupos..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Se eliminas \"<xliff:g id="GROUP">%s</xliff:g>\" da sincronización, tamén eliminarás os contactos non agrupados da sincronización."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Gardando opcións de visualización..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Vista personalizada"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Gardar contactos importados en:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Tarxeta SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%d contactos</item>
+      <item quantity="one">1 contacto</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contactos • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contacto • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Ficheiro .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Non hai nada para importar"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Queres importar contactos de vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Queres cancelar importación de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Queres cancelar a exportación de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Imposible cancelar import./export. vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Erro descoñecido."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Non se puido abrir \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Non se puido iniciar o exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Non hai ningún contacto exportable."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Desactivaches un permiso necesario."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Produciuse un erro durante a exportación: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Erro de E/S"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Non hai memoria suficiente. É posible que o ficheiro sexa demasiado grande."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"O formato non é compatible."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Finalizou a exportación de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Finalizou a exportación dos contactos."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Finalizou a exportación dos contactos. Fai clic na notificación para compartilos."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Toca para compartir os contactos."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Cancelouse a exportación de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportando datos de contactos"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Estanse exportando os datos dos contactos."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Non se puido obter a información da base de datos."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Non hai ningún contacto exportable."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"O redactor de vCard non se iniciou correctamente."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Imposible exportar"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Non se exportaron os datos dos contactos.\n Motivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importando <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Non se puideron ler os datos de vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Importación de <xliff:g id="FILENAME">%s</xliff:g> de vCard finalizada"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importación de <xliff:g id="FILENAME">%s</xliff:g> cancelada"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> importarase en breve."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"O ficheiro importarase en breve."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Rexeitouse a solicitude de importación do ficheiro vCard. Téntao de novo máis tarde."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Exportaranse os contactos en breve."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Rexeitouse a solicitude de exportación de vCard. Téntao de novo máis tarde."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contacto"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Estanse almacenando as vCard na memoria caché do almacenamento temporal local. A importación real comezará en breve."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Non se puido importar o ficheiro vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contacto recibido por NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Almacenando na caché"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importando <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportar a ficheiro .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Ordenar por"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nome fonético"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mostrar sempre"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ocultar se está baleiro"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nome"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Apelidos"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formato do nome"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Primeiro o nome"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Primeiro os apelidos"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Contas"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Conta predeterminada para novos contactos"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"A miña información"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configurar perfil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Acerca de Contactos"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Compartir contactos favoritos"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Compartir todos os contactos"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Erro ao compartir os contactos."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportar contactos"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importar contactos de"</string>
+    <string name="share_error" msgid="948429331673358107">"Non se pode compartir este contacto."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Non hai ningún contacto para compartir."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contactos para mostrar"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contactos para mostrar"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizar vista"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Gardar"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Busca nos contactos"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritos"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importar"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportar"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Números bloqueados"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"a través de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> a través de <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"deter busca"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Borrar busca"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Conta"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Usar sempre esta tarxeta para as chamadas"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Chamar cunha nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Escribe unha nota para enviala coa chamada…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVIAR e CHAMAR"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versión de compilación"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licenzas de código aberto"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalles da licenza para software de código aberto"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Política de privacidade"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Condicións de servizo"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licenzas de código aberto"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Produciuse un erro ao abrir o URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Marcouse <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Non se marcou <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Facer videochamada"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Eliminar"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Puntos suspensivos"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Desactivouse o atallo"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Eliminouse o contacto"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importar"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Seleccionar contactos"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Non hai ningún contacto na tarxeta SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"O contacto xa está na túa lista"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">Importáronse <xliff:g id="COUNT">%d</xliff:g> contactos da SIM</item>
+      <item quantity="one">Importouse 1 contacto da SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Produciuse un erro ao importar contactos da SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importar da SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancelar"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"A sincronización automática está desactivada. Toca para activala."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ignorar"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"A sincronización da conta está desactivada. Toca para activala."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Queres activar a sincronización automática?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Os cambios que fas en todas as aplicacións e contas, non só en Contactos de Google, gardaranse actualizados entre a web e os teus dispositivos."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Activar"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Sen conexión"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mostrar máis"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Finalizou a importación da tarxeta SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Produciuse un erro na importación"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Non se puideron importar os contactos da tarxeta SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importando SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
deleted file mode 100644
index 22dc7e8..0000000
--- a/res/values-gu-rIN/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"સંપર્કો"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"સંપર્કો"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"સંપર્ક જુઓ"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"સંપર્ક સંપાદિત કરો"</string>
-    <string name="contactsList" msgid="8661624236494819731">"સંપર્કો"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"સંપર્ક"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"સીધું જ ડાયલ"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"સીધો જ સંદેશ"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"સંપર્ક શોર્ટકટ પસંદ કરો"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"કૉલ કરવા માટે નંબર પસંદ કરો"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"સંદેશ કરવા માટે નંબર પસંદ કરો"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"સંપર્કમાં ઉમેરો"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"સંપર્ક પસંદ કરો"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"નવો સંપર્ક બનાવો"</string>
-    <string name="starredList" msgid="4817256136413959463">"તારાંકિત"</string>
-    <string name="frequentList" msgid="7154768136473953056">"વારંવાર"</string>
-    <string name="strequentList" msgid="5640192862059373511">"મનપસંદ"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"સંપર્ક વિગતો"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"સંપર્ક સંપાદિત કરો"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"સંપર્ક બનાવો"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"જૂથ સંપાદિત કરો"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"જૂથ બનાવો"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"વિશે"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"અપડેટ્સ"</string>
-    <string name="searchHint" msgid="8482945356247760701">"સંપર્કો શોધો"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"સંપર્ક જુઓ"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"મનપસંદમાં ઉમેરો"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"મનપસંદમાંથી દૂર કરો"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"મનપસંદમાંથી દૂર કર્યું"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"મનપસંદમાં ઉમેર્યું"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"સંપાદન"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"કાઢી નાખો"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ફોટો બદલો"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"હોમ સ્ક્રીન પર સ્થાન"</string>
-    <string name="menu_call" msgid="3992595586042260618">"સંપર્કને કૉલ કરો"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"સંપર્કને ટેક્સ્ટ કરો"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"અનલિંક કરો"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"સંપાદન"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"કાઢી નાખો"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"સંપર્ક ઉમેરો"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"જૂથ ઉમેરો"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"આ સંપર્કને બહુવિધ સંપર્કોમાં અનલિંક કરીએ?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"અનલિંક કરો"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"તમે પહેલેથી કરેલા ફેરફારોને સાચવવા અને આ સંપર્કને બહુવિધ સંપર્કોમાં અનલિંક કરવા ઈચ્છો છો?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"સાચવો અને અનલિંક કરો"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"તમે પહેલેથી કરેલા ફેરફારોને સાચવવા અને પસંદ કરેલાં સંપર્ક સાથે લિંક કરવા ઈચ્છો છો?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"સાચવો અને લિંક કરો"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"લિંક કરો"</string>
-    <string name="menu_save" msgid="1727844363591825909">"સાચવો"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"સંપર્કો લિંક કરો"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"તમે <xliff:g id="NAME">%s</xliff:g> સાથે લિંક કરવા માંગતા હોય તે સંપર્ક પસંદ કરો:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"તમામ સંપર્કો બતાવો"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"સૂચવેલા સંપર્કો"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"તમામ સંપર્કો"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"સંપર્કો લિંક કર્યાં"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">સંપર્કો કાઢી નાખ્યા</item>
-      <item quantity="other">સંપર્કો કાઢી નાખ્યા</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"રિંગટોન સેટ કરો"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"વૉઇસમેઇલ પરના બધા કૉલ્સ"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"તમારા માત્ર-વાંચવા માટેનાં એકાઉન્ટ્સ પરના સંપર્કોને કાઢી નાખી શકાતાં નથી, પરંતુ તેઓને છુપાવી શકાય છે."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"છુપાવો"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"કાઢી નાખવા માટેનો સંપર્ક બહુવિધ એકાઉન્ટ્સ પરની વિગતો ધરાવે છે. માત્ર-વાંચવા માટેનાં એકાઉન્ટ્સ પરની વિગતો છુપાવવામાં આવશે, કાઢી નાખવામાં આવશે નહિ."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"લિંક કરવા માટે તમારે ઓછામાં ઓછા બે સંપર્કો પસંદ કરવાની જરૂર છે."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"પસંદ કરેલાં સંપર્કોને લિંક કરીએ?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"લિંક કરો"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"આ સંપર્કને કાઢી નાખીએ?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"પસંદ કરેલા સંપર્કોને કાઢી નાખીએ?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"તમારા માત્ર-વાંચવા માટેનાં એકાઉન્ટ્સ પરના સંપર્કોને કાઢી નાખી શકાતાં નથી, પરંતુ તેઓને છુપાવી શકાય છે."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"કાઢી નાખવાના સંપર્કો બહુવિધ એકાઉન્ટ્સ પરની વિગતો ધરાવે છે. માત્ર-વાંચવા માટેનાં એકાઉન્ટ્સ પરની વિગતો છુપાવવામાં આવશે, કાઢી નાખવામાં આવશે નહિ."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"આ સંપર્કને કાઢી નાખવું બહુવિધ એકાઉન્ટ્સમાંથી વિગતો કાઢી નાખશે."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"આ સંપર્કને કાઢી નાખીએ?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"કાઢી નાખો"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"ફેરફારો છોડી દો"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"સંપર્ક અસ્તિત્વમાં નથી."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"સંપર્કને હોમ સ્ક્રીન પર ઉમેરવામાં આવ્યો."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ને હોમ સ્ક્રીન પર ઉમેરવામાં આવ્યું."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"નવો સંપર્ક બનાવો"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"નવો સંપર્ક બનાવો"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"સંગઠન"</item>
-    <item msgid="7196592230748086755">"નોંધ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ટેબ્લેટ પર કોઈ ચિત્રો ઉપલબ્ધ નથી."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ફોન પર કોઈ ચિત્રો ઉપલબ્ધ નથી."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"સંપર્ક ફોટો"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"કસ્ટમ લેબલ નામ"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"કૉલ્સને સીધા જ વૉઇસમેઇલ પર મોકલો"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ફોટો દૂર કરો"</string>
-    <string name="noContacts" msgid="4955659076981974652">"કોઈ સંપર્કો નથી"</string>
-    <string name="noGroups" msgid="8614664663561385253">"કોઈ જૂથ નથી."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"જૂથો બનાવવા માટે તમને એકાઉન્ટની જરૂર છે."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"આ જૂથમાં કોઈ લોકો નથી."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"કોઈને ઉમેરવા માટે, જૂથ સંપાદિત કરો."</string>
-    <string name="savingContact" msgid="4075751076741924939">"સંપર્ક સાચવી રહ્યાં છે…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"સંપર્ક સાચવ્યો"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"સંપર્કો અનલિંક કર્યા"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"ફેરફારો સાચવી શકાયાં નથી."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"સંપર્કને અનલિંક કરી શક્યા નથી."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"સંપર્ક લિંક કરી શક્યાં નથી."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"સંપર્ક સાચવવામાં ભૂલ."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"સંપર્ક ફોટાના ફેરફારો સાચવી શક્યાં નથી."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"જૂથ સાચવ્યુ."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"જૂથ ફેરફારો સાચવી શકાયાં નથી."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one">ફોન નંબર્સ સાથેના <xliff:g id="COUNT">%d</xliff:g> સંપર્કો</item>
-      <item quantity="other">ફોન નંબર્સ સાથેના <xliff:g id="COUNT">%d</xliff:g> સંપર્કો</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ફોન નંબર્સ સાથે કોઈ સંપર્કો નથી"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> મળ્યાં</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> મળ્યાં</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"સંપર્કો નથી"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> મળ્યાં</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> મળ્યાં</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"તમામ"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"મનપસંદ"</string>
-    <string name="callBack" msgid="5498224409038809224">"કૉલ બૅક કરો"</string>
-    <string name="callAgain" msgid="3197312117049874778">"ફરી કૉલ કરો"</string>
-    <string name="returnCall" msgid="8171961914203617813">"વળતો કૉલ"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ને સંપર્કોમાં ઉમેરીએ?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"સંપર્ક ફોટો"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"પ્લસ"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> માંથી <xliff:g id="CURRENT_NUMBER">%s</xliff:g> સંપર્કો"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"તમારા સંપર્કોના નામ"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"આ ક્રિયાને હેન્ડલ કરવા માટે કોઈ એપ્લિકેશન મળી નહીં."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"પાછલી સ્ક્રીન પર પાછા આવવા માટે ક્લિક કરો"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ફોન નંબર ઉમેરો"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ઇમેઇલ ઉમેરો"</string>
-    <string name="missing_app" msgid="1466111003546611387">"આ ક્રિયાને હેન્ડલ કરવા માટે કોઈ એપ્લિકેશન મળી નહીં."</string>
-    <string name="menu_share" msgid="943789700636542260">"શેર કરો"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"સંપર્કોમાં ઉમેરો"</string>
-    <string name="share_via" msgid="563121028023030093">"આના દ્વારા સંપર્ક શેર કરો"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"એકાઉન્ટ હેઠળ જૂથ બનાવો"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"વોઇસ ચેટ"</string>
-    <string name="video_chat" msgid="1872255818640336072">"વિડિઓ ચેટ"</string>
-    <string name="connections" msgid="8098440723172028350">"કનેક્શંસ"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"કનેક્શન ઉમેરો"</string>
-    <string name="recent" msgid="2659189233141493004">"તાજેતરના"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"તાજેતરનાં અપડેટ્સ"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> સંપર્ક"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> એકાઉન્ટ"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"આ એપ્લિકેશનથી સંપાદનયોગ્ય નથી."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"આ ઉપકરણ પર સંપાદનયોગ્ય નથી."</string>
-    <string name="take_photo" msgid="7496128293167402354">"ફોટો લો"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"નવો ફોટો લો"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ફોટો પસંદ કરો"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"નવો ફોટો પસંદ કરો"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"સંપર્ક સૂચિ અપડેટ કરવામાં આવી રહી છે."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"શોધી રહ્યું છે..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"પસંદ કરેલ બતાવો"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"બધું બતાવો"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"બધા પસંદ કરો"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"બધા નાપસંદ કરો"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"નવું ઉમેરો"</string>
-    <string name="add_organization" msgid="7311893231158291197">"સંગઠન ઉમેરો"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"તારીખ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"જૂથ નામ"</string>
-    <string name="change_photo" msgid="8530597935483526383">"બદલો"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"પ્રાથમિક ફોટો"</string>
-    <string name="description_star" msgid="2605854427360036550">"મનપસંદ"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"સંપર્ક સંપાદિત કરો"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"પસંદ કરેલ સંપર્ક સાથે વર્તમાન સંપર્કને લિંક કરીએ?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"પસંદ કરેલ સંપર્કોને સંપાદિત કરવા પર સ્વિચ કરીએ? તમે અત્યાર સુધીમાં દાખલ કરેલી માહિતીને કૉપિ કરાશે."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"મારા સંપર્કો પર કૉપિ કરો"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"મારા સંપર્કોમાં ઉમેરો"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"નિર્દેશિકા <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"કસ્ટમ"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"સેટિંગ્સ"</string>
-    <string name="menu_settings" msgid="377929915873428211">"સેટિંગ્સ"</string>
-    <string name="menu_help" msgid="1680178646764069976">"સહાય અને પ્રતિસાદ"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"પ્રદર્શન વિકલ્પો"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ફોન નંબર"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"સંપર્કોમાં ઉમેરો"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"સંપર્કમાં ઉમેરો"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"બંધ કરો"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"વર્ષ શામેલ કરો"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"સંપર્ક"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"લોડ કરી રહ્યું છે..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"એક નવો સંપર્ક બનાવો"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"એકાઉન્ટ ઉમેરો"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"સંપર્કો આયાત કરો"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"નવું જૂથ બનાવો"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"નવું જૂથ બનાવો"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> જૂથ</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> જૂથ</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" જૂથ કાઢી નાખીએ? (તેમાં રહેલા સંપર્કો કાઢી નાખવામાં આવશે નહીં.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> માંથી <xliff:g id="COUNT_2">%1$d</xliff:g> લોકો</item>
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> માંથી <xliff:g id="COUNT_2">%1$d</xliff:g> લોકો</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> લોકો</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> લોકો</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"બીજા સાથે લિંક કરતાં પહેલાં સંપર્કનું નામ લખો."</string>
-    <string name="copy_text" msgid="3257145021583508761">"ક્લિપબોર્ડ પર કૉપિ કરો"</string>
-    <string name="set_default" msgid="4417505153468300351">"ડિફોલ્ટ સેટ કરો"</string>
-    <string name="clear_default" msgid="7193185801596678067">"ડિફોલ્ટ સાફ કરો"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"ટેક્સ્ટ કૉપિ કર્યો"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"તમારા ફેરફારો છોડી દઈએ?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"કાઢી નાખો"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"મારી પ્રોફાઇલ સેટ કરો"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"વ્યક્તિનું નામ લખો"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"જૂથનું નામ"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"મારી સ્થાનિક પ્રોફાઇલ"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"મારી <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> પ્રોફાઇલ"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"તમામ સંપર્કો દર્શાવી રહ્યાં છે"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Google એકાઉન્ટ સાથે સંપર્કો વધુ સારી રીતે કાર્ય કરે છે.\n\n• તેને કોઈપણ વેબ બ્રાઉઝરથી ઍક્સેસ કરો\n• તમારા ફોટાનો સુરક્ષિત રૂપે બેક અપ લો."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"તમે તમારો ફોન ગુમાવી દો તો પણ તમારા સંપર્કોને સુરક્ષિત રાખો: ઓનલાઇન સેવા સાથે સમન્વયિત કરો."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"એક એકાઉન્ટ ઉમેરો"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"તમારા નવા સંપર્કનો બેક અપ લેવાશે નહીં. સંપર્કોનો ઓનલાઇન બેક અપ લેતાં એકાઉન્ટને ઉમેરીએ?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"નવા સંપર્કોને <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> પર સાચવવામાં આવશે."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"નવા સંપર્કો માટે એક ડીફોલ્ટ એકાઉન્ટ પસંદ કરો:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"નવો સંપર્ક ઉમેરો"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"સંપર્ક સંપાદિત કરો"</string>
-    <string name="keep_local" msgid="1258761699192993322">"સ્થાનિક રાખો"</string>
-    <string name="add_account" msgid="8201790677994503186">"એકાઉન્ટ ઉમેરો"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"નવું એકાઉન્ટ ઉમેરો"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"ડેટાબેસ ફાઇલોનો નિકાસ કરો"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"નવો સંપર્ક ઉમેરો"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"વધુ જુઓ"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ઓછું જુઓ"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"બધું જુઓ"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"તાજેતરના"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"વિશે"</string>
-    <string name="send_message" msgid="8938418965550543196">"સંદેશ મોકલો"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"વ્યક્તિગત કૉપિ બનાવી રહ્યાં છે..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"ગઈ કાલે"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"આવતીકાલે"</string>
-    <string name="today" msgid="8041090779381781781">"આજે"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> વાગ્યે આજે"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> વાગ્યે આવતીકાલે"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(અનામાંકિત ઇવેન્ટ)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"સેટ કરો"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"સંગઠન"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"ઉપનામ"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"નોંધ"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"વેબસાઇટ"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ઇવેન્ટ"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"સંબંધ"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"એકાઉન્ટ"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"નામ"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ઇમેઇલ"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ફોન"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ફોટો"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"સંપર્ક સંપાદક વિસ્તૃત કરવા માટે ક્લિક કરો."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"સંપર્ક સંપાદકને સંકુચિત કરવા માટે ક્લિક કરો."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"સ્થાન માટેનાં દિશા નિર્દેશો"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"તાજેતરનો sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. પ્રતિસાદ આપવા ક્લિક કરો"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"આવનારા"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"આઉટગોઇંગ"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"છૂટેલ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"તાજેતરનો કૉલ. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. કૉલ બેક કરવા ક્લિક કરો"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"તમે: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"જ્યારે તમે વ્યક્તિના Hangouts ઓળખકર્તાને ઇમેઇલ ફીલ્ડ અથવા ફોન ફીલ્ડમાં દાખલ કરો છો ત્યારે Hangouts વધુ સારું કામ કરે છે."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"વધુ ફીલ્ડ્સ"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ફોટો બદલો"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"સંપાદક ખોલવામાં નિષ્ફળ થયાં."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"મા સાચવી રહ્યાં છે"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"વર્તમાનમાં <xliff:g id="ACCOUNT_NAME">%s</xliff:g> પર સાચવી રહ્યાં છે. ભિન્ન એકાઉન્ટ ચૂંટવા માટે બે વાર ટેપ કરો."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">લિંક કરેલ સંપર્કો (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">લિંક કરેલ સંપર્કો (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> લિંક કરેલ સંપર્ક"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"સંપર્કો લિંક કરો"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"રદ કરો"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> સંભવિત ડુપ્લિકેટ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> સંભવિત ડુપ્લિકેટ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> લિંક કરેલ સંપર્ક</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> લિંક કરેલ સંપર્ક</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"આ સંપર્ક"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"સંભવિત ડુપ્લિકેટ્સ"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"આ સંપર્કો એક જ વ્યક્તિ હોઈ શકે છે. તમે તેઓને એકલ સંપર્ક તરીકે એકસાથે લિંક કરી શકો છો."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"લિંક કરેલ સંપર્કો"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"તમારા એકાઉન્ટ્સમાંથી"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"એક ફોટો લો"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"બધા ફોટા"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ફોટો પસંદ કરો"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> માંથી"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> કાઢી નાખો"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> કાઢી નાખો"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> ની તસ્વીર ચેક કરી નથી"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> ની તસ્વીર ચેક કરી"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"અજાણ્યાં એકાઉન્ટનો ફોટો ચેક ન કર્યો"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"અજાણ્યાં એકાઉન્ટનો ફોટો ચેક કર્યો"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"ભાષામાં ફેરફાર પ્રતિબિંબિત કરવા માટે સંપર્ક સૂચિને અપડેટ કરવામાં આવી રહી છે.\n\nકૃપા કરીને રાહ જુઓ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"નંબર ઉમેરો"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"નંબર અવરોધિત કરો"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"નંબર ઉમેરો અથવા સંપર્કો શોધો"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> ને અનાવરોધિત કરીએ?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"અનાવરોધિત કરો"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> ને અવરોધિત કરીએ?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"અવરોધિત કરો"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> અવરોધિત કર્યો"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> અનાવરોધિત કર્યો"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> અમાન્ય છે."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"કૉલ અવરોધિત કરવાનું અસ્થાયીરૂપે બંધ છે"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"કૉલ અવરોધિત કરવાનું અક્ષમ કરવામાં આવ્યું છે કારણ કે તમે આ ફોનમાંથી છેલ્લા 48 કલાકમાં કટોકટીની સેવાઓનો સંપર્ક કર્યો હતો. એકવાર 48 કલાકનો સમયગાળો સમાપ્ત થાય, પછી તે આપમેળે ફરીથી સક્ષમ કરવામાં આવશે."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"આયાત કરો"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"સંખ્યા જુઓ"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"નંબર ઉમેરો"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"કૉલ અવરોધિત કરવાનું 48 કલાક માટે અક્ષમ કરાયું"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"અક્ષમ કરાયું કારણ કે એક કટોકટીનો કૉલ કરવામાં આવ્યો હતો."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"પૂર્વવત્ કરો"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ને પહેલેથી અવરોધિત કરવામાં આવ્યો છે."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"નંબર અનાવરોધિત કરો"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> માટે સંપર્ક વિગતો"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"આયાત નિષ્ફળ થયું"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"નંબર્સ આયાત કરો"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ચાલુ કરો"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
new file mode 100644
index 0000000..1cc4617
--- /dev/null
+++ b/res/values-gu/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"સંપર્કો"</string>
+    <string name="contactsList" msgid="8661624236494819731">"સંપર્કો"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"સંપર્ક ઉમેરો"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"સંપર્ક"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"સીધું જ ડાયલ"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"સીધો જ સંદેશ"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"સંપર્ક પસંદ કરો"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"સંપર્કમાં ઉમેરો"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"સંપર્ક પસંદ કરો"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"પસંદ કરો"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"નવો સંપર્ક બનાવો"</string>
+    <string name="searchHint" msgid="8482945356247760701">"સંપર્કો શોધો"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"મનપસંદમાં ઉમેરો"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"મનપસંદમાંથી દૂર કરો"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"મનપસંદમાંથી દૂર કર્યું"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"મનપસંદમાં ઉમેર્યું"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"સંપાદન"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"કાઢી નાખો"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ફોટો બદલો"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"શૉર્ટકટ બનાવો"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"અનલિંક કરો"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"સંપર્કો દૂર કરો"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"લેબલનું નામ બદલો"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"લેબલ કાઢી નાખો"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"સંપર્ક ઉમેરો"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"સંપર્કો પસંદ કરો"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"સંપર્કો ઉમેરો"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"લેબલમાંથી દૂર કરો"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"લેબલ બનાવો"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"આ સંપર્કને બહુવિધ સંપર્કોમાં અનલિંક કરીએ?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"અનલિંક કરો"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"તમે પહેલેથી કરેલા ફેરફારોને સાચવવા અને આ સંપર્કને બહુવિધ સંપર્કોમાં અનલિંક કરવા ઈચ્છો છો?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"સાચવો અને અનલિંક કરો"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"તમે પહેલેથી કરેલા ફેરફારોને સાચવવા અને પસંદ કરેલાં સંપર્ક સાથે લિંક કરવા ઈચ્છો છો?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"સાચવો અને લિંક કરો"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"લિંક કરી રહ્યું છે"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"અનલિંક કરી રહ્યું છે"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"લિંક કરો"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"લિંક કરેલ સંપર્કો જુઓ"</string>
+    <string name="menu_save" msgid="1727844363591825909">"સાચવો"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"સંપર્કો લિંક કરો"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"તમે <xliff:g id="NAME">%s</xliff:g> સાથે લિંક કરવા માંગતા હોય તે સંપર્ક પસંદ કરો:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"સૂચવેલા સંપર્કો"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"તમામ સંપર્કો"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ને લિંક કર્યાં"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"સંપર્કો લિંક કર્યાં"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> ને કાઢી નાખ્યાં"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> અને <xliff:g id="NAME_1">%2$s</xliff:g> ને કાઢી નાખ્યાં"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… ને કાઢી નાખ્યાં"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">સંપર્કો કાઢી નાખ્યા</item>
+      <item quantity="other">સંપર્કો કાઢી નાખ્યા</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> સંપર્ક</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> સંપર્ક</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> સંપર્ક · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> સંપર્ક · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google થી"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> થી"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"રિંગટોન સેટ કરો"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"વૉઇસમેઇલ પર રૂટ કરો"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"વૉઇસમેઇલથી અનરૂટ કરો"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"આ સંપર્ક ફક્ત-વાંચવા માટે છે. તેને કાઢી નાખી શકતાં નથી, પરંતુ તમે તેને છુપાવી શકો છો."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"સંપર્ક છુપાવો"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"આ સંપર્કમાંના ફક્ત-વાંચવા માટેના એકાઉન્ટ્સ છુપાવવામાં આવશે, કાઢી નાખવામાં નહીં."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"આ સંપર્કને કાઢી નાખીએ?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"પસંદ કરેલા સંપર્કોને કાઢી નાખીએ?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"તમારા માત્ર-વાંચવા માટેનાં એકાઉન્ટ્સ પરના સંપર્કોને કાઢી નાખી શકાતાં નથી, પરંતુ તેઓને છુપાવી શકાય છે."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"કાઢી નાખવાના સંપર્કો બહુવિધ એકાઉન્ટ્સ પરની વિગતો ધરાવે છે. માત્ર-વાંચવા માટેનાં એકાઉન્ટ્સ પરની વિગતો છુપાવવામાં આવશે, કાઢી નાખવામાં આવશે નહિ."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"આ સંપર્કને કાઢી નાખવું બહુવિધ એકાઉન્ટ્સમાંથી વિગતો કાઢી નાખશે."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"આ સંપર્કને કાઢી નાખીએ?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"કાઢી નાખો"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"સંપર્ક અસ્તિત્વમાં નથી."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"સંપર્કને હોમ સ્ક્રીન પર ઉમેરવામાં આવ્યો."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ને હોમ સ્ક્રીન પર ઉમેરવામાં આવ્યું."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"ઉપકરણ પર કોઈ ચિત્રો ઉપલબ્ધ નથી."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"સંપર્ક ફોટો"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"કસ્ટમ લેબલ નામ"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ફોટો દૂર કરો"</string>
+    <string name="noContacts" msgid="2228592924476426108">"તમારી સંપર્કોની સૂચિ ખાલી છે"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"આ લેબલ સાથે કોઈ સંપર્કો નથી"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"આ એકાઉન્ટમાંં કોઈ સંંપર્કો નથી"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"તમારી સંપર્કોની સૂચિ ખાલી છે"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> સાચવ્યો"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"સંપર્ક સાચવ્યો"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"સંપર્કો અનલિંક કર્યા"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"ફેરફારો સાચવી શક્યાં નથી"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"સંપર્કને અનલિંક કરી શક્યા નથી"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"સંપર્ક લિંક કરી શક્યાં નથી"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"સંપર્ક સાચવવામાં ભૂલ"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"સંપર્ક ફોટાના ફેરફારો સાચવી શક્યાં નથી"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"લેબલ લોડ કરવામાં નિષ્ફળ થયાં"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"લેબલ કાઢી નાખ્યું"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"લેબલ બનાવ્યું"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"લેબલ બનાવી શકતાં નથી"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"લેબલ અપડેટ કર્યું"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"લેબલમાંથી દૂર કર્યાં"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"લેબલમાં ઉમેર્યા"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"લેબલ ફેરફારો સાચવી શક્યાં નથી"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"તે લેબલ પહેલાંથી અસ્તિત્વમાં છે"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"કેટલાક સંપર્કોની પાસે ઇમેઇલ્સ નથી."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"કેટલાક સંપર્કોની પાસે ફોન નંબર્સ નથી."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ઇમેઇલ મોકલો"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"સંદેશ મોકલો"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"સંપર્કો પસંદ કરો"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"મોકલો"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"સંપર્કો નથી"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ને સંપર્કોમાં ઉમેરીએ?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"તમારા સંપર્કોના નામ"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"પાછલી સ્ક્રીન પર પાછા આવવા માટે ક્લિક કરો"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ફોન નંબર ઉમેરો"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ઇમેઇલ ઉમેરો"</string>
+    <string name="missing_app" msgid="1466111003546611387">"આ ક્રિયાને હેન્ડલ કરવા માટે કોઈ ઍપ્લિકેશન મળી નહીં."</string>
+    <string name="menu_share" msgid="943789700636542260">"શેર કરો"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"સંપર્કોમાં ઉમેરો"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"ઉમેરો"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">આના દ્વારા સંપર્કો શેર કરો</item>
+      <item quantity="other">આના દ્વારા સંપર્કો શેર કરો</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"એકાઉન્ટ પસંદ કરો"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"લેબલ બનાવો"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"લેબલનું નામ બદલો"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"લેબલનું નામ"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"લેબલનું નામ"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"વોઇસ ચેટ"</string>
+    <string name="video_chat" msgid="1872255818640336072">"વિડિઓ ચેટ"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> સંપર્ક"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> એકાઉન્ટ"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ફોટો લો"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"નવો ફોટો લો"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ફોટો પસંદ કરો"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"નવો ફોટો પસંદ કરો"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"શોધી રહ્યું છે..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"તારીખ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"લેબલ"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"રદ કરો"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"પાછળ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"બંધ કરો"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"પસંદ કરેલ સંપર્કોને સંપાદિત કરવા પર સ્વિચ કરીએ? તમે અત્યાર સુધીમાં દાખલ કરેલી માહિતીને કૉપિ કરાશે."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"નિર્દેશિકા <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"સેટિંગ્સ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"સેટિંગ્સ"</string>
+    <string name="menu_help" msgid="1680178646764069976">"સહાય અને પ્રતિસાદ"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ફોન નંબર"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"સંપર્કોમાં ઉમેરો"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"બંધ કરો"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"વર્ષ શામેલ કરો"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"એકાઉન્ટ ઉમેરો"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"આયાત કરો"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"નવું બનાવો…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" લેબલ કાઢી નાખીએ? (સંપર્કો સ્વયં કાઢી નાખવામાં આવશે નહીં.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"બીજા સાથે લિંક કરતાં પહેલાં સંપર્કનું નામ લખો."</string>
+    <string name="copy_text" msgid="3257145021583508761">"ક્લિપબોર્ડ પર કૉપિ કરો"</string>
+    <string name="set_default" msgid="4417505153468300351">"ડિફોલ્ટ સેટ કરો"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ડિફોલ્ટ સાફ કરો"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"ટેક્સ્ટ કૉપિ કર્યો"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"ફેરફારો નિકાળીએ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"નિકાળો"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"રદ કરો"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"કસ્ટમાઇઝેશન્સ નિકાળીએ?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"સંપર્કો શોધો"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"સંપર્કો દૂર કરો"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"મારી સ્થાનિક પ્રોફાઇલ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"મારી <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> પ્રોફાઇલ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"તે એકાઉન્ટ ઉમેરવા માટે થોડો સમય આપો કે જે Google પર તમારા સંપર્કોનું બેક અપ લેશે."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"નવા સંપર્કોને <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> પર સાચવવામાં આવશે."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"નવા સંપર્કો માટે એક ડીફોલ્ટ એકાઉન્ટ પસંદ કરો:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"નવો સંપર્ક બનાવો"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"સંપર્ક સંપાદિત કરો"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"ફક્ત જુઓ"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"સંપાદિત કરવા માટે સંપર્ક પસંદ કરો"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"લિંક કરેલ સંપર્કો"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"ઉમેરો"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"અનલિંક કરો"</string>
+    <string name="add_account" msgid="8201790677994503186">"એકાઉન્ટ ઉમેરો"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"નવું એકાઉન્ટ ઉમેરો"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ડેટાબેસ ફાઇલોનો નિકાસ કરો"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"નવો સંપર્ક બનાવો"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"વધુ જુઓ"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ઓછું જુઓ"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"તાજેતરના"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"વિશે"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"વ્યક્તિગત કૉપિ બનાવી રહ્યાં છે…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"આવતીકાલે"</string>
+    <string name="today" msgid="8041090779381781781">"આજે"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> વાગ્યે આજે"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> વાગ્યે આવતીકાલે"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(અનામાંકિત ઇવેન્ટ)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"સેટ કરો"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"સંગઠન"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ઉપનામ"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"નોંધ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"વેબસાઇટ"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ઇવેન્ટ"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"સંબંધ"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"નામ"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ઇમેઇલ"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ફોન"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"સ્થાન માટેનાં દિશા નિર્દેશો"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"તાજેતરનો sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. પ્રતિસાદ આપવા ક્લિક કરો"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"આવનારા"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"આઉટગોઇંગ"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"છૂટેલ"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"તાજેતરનો કૉલ. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. કૉલ બેક કરવા ક્લિક કરો"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"તમે: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"વધુ ફીલ્ડ્સ"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"સંપર્ક ફોટો બદલો"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"સંપર્ક ફોટો ઉમેરો"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"સંપર્ક ફોટો"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"સંપાદક ખોલવામાં નિષ્ફળ થયાં."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"આમાં સાચવી રહ્યાં છે"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> તરફથી સંપર્ક માહિતી સંપાદનક્ષમ નથી"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"સંપર્કો લિંક કરો"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"રદ કરો"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"આ સંપર્ક"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"સંભવિત ડુપ્લિકેટ્સ"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"આ સંપર્કો એક જ વ્યક્તિ હોઈ શકે છે. તમે તેઓને એકલ સંપર્ક તરીકે એકસાથે લિંક કરી શકો છો."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> કાઢી નાખો"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> કાઢી નાખો"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"સૂચનો"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"નવું"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"નેવિગેશન ડ્રોઅર ખોલો"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"નેવિગેશન ડ્રોઅર બંધ કરો"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> લેબલ"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"લેબલ્સ"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"એકાઉન્ટ્સ"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"તમારા ઇતિહાસને એકસાથે જુઓ"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ઇવેન્ટ્સ અને સંદેશા"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ઇવેન્ટ્સ"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"સંદેશા"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"સૂચનો"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"તમારા સંપર્કો ગોઠવાયેલ અને ઉપયોગી રાખો"</string>
+    <string name="undo" msgid="1425165101664071422">"પૂર્વવત્ કરો"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> પર કૉલ કરો"</string>
+    <string name="call_home" msgid="1990519474420545392">"ઘરે કૉલ કરો"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"મોબાઇલ પર કૉલ કરો"</string>
+    <string name="call_work" msgid="5328785911463744028">"કાર્યાલય પર કૉલ કરો"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"કાર્યાલયના ફૅક્સ પર કૉલ કરો"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"ઘરના ફૅક્સ પર કૉલ કરો"</string>
+    <string name="call_pager" msgid="9003902812293983281">"પેજર પર કૉલ કરો"</string>
+    <string name="call_other" msgid="8563753966926932052">"કૉલ કરો"</string>
+    <string name="call_callback" msgid="1910165691349426858">"કૉલબેક પર કૉલ કરો"</string>
+    <string name="call_car" msgid="3280537320306436445">"કાર પર કૉલ કરો"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"કંપની મુખ્ય પર કૉલ કરો"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN પર કૉલ કરો"</string>
+    <string name="call_main" msgid="6082900571803441339">"મુખ્ય પર કૉલ કરો"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ફૅક્સ પર કૉલ કરો"</string>
+    <string name="call_radio" msgid="8296755876398357063">"રેડિઓ પર કૉલ કરો"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ટેલેક્સ પર કૉલ કરો"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD પર કૉલ કરો"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"કાર્યાલયના મોબાઇલ પર કૉલ કરો"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"કાર્યાલયના પેજર પર કૉલ કરો"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> પર કૉલ કરો"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS પર કૉલ કરો"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (કૉલ કરો)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> પર ટેક્સ્ટ મોકલો"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ઘરે ટેક્સ્ટ કરો"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"મોબાઇલ પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_work" msgid="2269624156655267740">"કાર્યાલય પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"કાર્યાલયના ફૅક્સ પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"ઘરના ફૅક્સ પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"પેજર પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_other" msgid="806127844607642331">"ટેક્સ્ટ કરો"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"કૉલબેક પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_car" msgid="7444227058437359641">"કાર પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"કંપની મુખ્ય પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_main" msgid="8621625784504541679">"મુખ્ય પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ફૅક્સ પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"રેડિઓ પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ટેલેક્સ પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"કાર્યાલયના મોબાઇલ પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"કાર્યાલયના પેજર પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> ને ટેક્સ્ટ કરો"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS પર ટેક્સ્ટ કરો"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (સંદેશ મોકલો)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"વિડિઓ કૉલ કરો"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"વારંવાર સંપર્ક કરેલા સાફ કરીએ?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"તમે સંપર્કો અને ફોન ઍપ્લિકેશનોમાં વારંવાર સંપર્ક કરેલ સૂચિને સાફ કરશો અને ઇમેઇલ ઍપ્લિકેશનોને તમારી સંબોધન પસંદગીઓને શરૂઆતથી જાણવા માટે ફરજ પાડશો."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"વારંવાર સંપર્ક કરેલા સાફ કરે છે…"</string>
+    <string name="status_available" msgid="5586870015822828392">"ઉપલબ્ધ"</string>
+    <string name="status_away" msgid="1838861100379804730">"દૂર"</string>
+    <string name="status_busy" msgid="9147992455450257136">"વ્યસ્ત"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"અન્ય"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"નિર્દેશિકા"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"કાર્ય નિર્દેશિકા"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"તમામ સંપર્કો"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> માટે ઝડપી સંપર્ક"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(નામ નથી)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"વારંવાર સંપર્ક કરેલા લોકો"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ફોન નંબર્સ સાથેના તમામ સંપર્કો"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"કાર્ય પ્રોફાઇલના સંપર્કો"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"અપડેટ્સ જુઓ"</string>
+    <string name="account_phone" msgid="7128032778471187553">"ઉપકરણ"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"નામ"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"ઉપનામ"</string>
+    <string name="name_given" msgid="4280790853455320619">"નામ"</string>
+    <string name="name_family" msgid="7466985689626017037">"અટક"</string>
+    <string name="name_prefix" msgid="59756378548779822">"નામ ઉપસર્ગ"</string>
+    <string name="name_middle" msgid="8467433655992690326">"પિતા/પતિનું નામ"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"નામ પ્રત્યય"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ધ્વન્યાત્મક નામ"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ધ્વન્યાત્મક નામ"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ધ્વન્યાત્મક પિતા/પતિનું નામ"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ધ્વન્યાત્મક અટક"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ફોન"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ઇમેઇલ"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"સરનામું"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"સંસ્થા"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"સંબંધ"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"વિશિષ્ટ તારીખ"</string>
+    <string name="sms" msgid="1756857139634224222">"ટેક્સ્ટ સંદેશ"</string>
+    <string name="postal_address" msgid="8765560217149624536">"સરનામું"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"કંપની"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"શીર્ષક"</string>
+    <string name="label_notes" msgid="8337354953278341042">"નોંધ"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"કસ્ટમ"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"વેબસાઇટ"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"લેબલ્સ"</string>
+    <string name="email_home" msgid="8573740658148184279">"ઘરે ઇમેઇલ કરો"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"મોબાઇલ પર ઇમેઇલ કરો"</string>
+    <string name="email_work" msgid="2807430017302722689">"કાર્યાલય પર ઇમેઇલ કરો"</string>
+    <string name="email_other" msgid="3454004077967657109">"ઇમેઇલ"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> પર ઇમેઇલ મોકલો"</string>
+    <string name="email" msgid="5668400997660065897">"ઇમેઇલ"</string>
+    <string name="postal_street" msgid="8133143961580058972">"શેરી"</string>
+    <string name="postal_city" msgid="6597491300084895548">"શહેર"</string>
+    <string name="postal_region" msgid="6045263193478437672">"રાજ્ય"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"પિન કોડ"</string>
+    <string name="postal_country" msgid="7638264508416368690">"દેશ"</string>
+    <string name="map_home" msgid="1243547733423343982">"ઘરનું સરનામું જુઓ"</string>
+    <string name="map_work" msgid="1360474076921878088">"કાર્યાલયનું સરનામું જુઓ"</string>
+    <string name="map_other" msgid="3817820803587012641">"સરનામું જુઓ"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> સરનામું જુઓ"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM નો ઉપયોગ કરીને ચેટ કરો"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live નો ઉપયોગ કરીને ચેટ કરો"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo નો ઉપયોગ કરીને ચેટ કરો"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype નો ઉપયોગ કરીને ચેટ કરો"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ નો ઉપયોગ કરીને ચેટ કરો"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk નો ઉપયોગ કરીને ચેટ કરો"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ નો ઉપયોગ કરીને ચેટ કરો"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber નો ઉપયોગ કરીને ચેટ કરો"</string>
+    <string name="chat" msgid="9025361898797412245">"ચેટ"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"કાઢી નાખો"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"વધુ નામ ફીલ્ડ્સ બતાવો"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"નામ ફીલ્ડ્સ સંકુચિત કરો"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"વધુ ધ્વન્યાત્મક નામ ફીલ્ડ્સ બતાવો"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ધ્વન્યાત્મક નામ ફીલ્ડ્સ સંકુચિત કરો"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"વિસ્તૃત કરો"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"સંકુચિત કરો"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"વિસ્તૃત કર્યું"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"સંકુચિત કર્યું"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"તમામ સંપર્કો"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"તારાંકિત કરેલ"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"કસ્ટમાઇઝ કરો"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"સંપર્ક"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"તમામ અન્ય સંપર્કો"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"તમામ સંપર્કો"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"સમન્વયન જૂથ દૂર કરો"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"સમન્વયન જૂથ ઉમેરો"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"વધુ જૂથો…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"સમન્વયનમાંથી \"<xliff:g id="GROUP">%s</xliff:g>\" ને દૂર કરવું, સમન્વયનમાંથી કોઇપણ જૂથ વિનાના સંપર્કોને પણ દૂર કરશે."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"પ્રદર્શન વિકલ્પો સાચવી રહ્યું છે…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"કસ્ટમાઇઝ કરેલ દૃશ્ય"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"આયાત કરેલ સંપર્કોને આની પર સાચવો:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM કાર્ડ"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d સંપર્ક</item>
+      <item quantity="other">%1$d સંપર્ક</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> સંપર્ક • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> સંપર્ક • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ફાઇલ"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"આયાત કરવા માટે કંઇ નથી"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard માંથી સંપર્કો આયાત કરીએ?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> ની આયાત રદ કરીએ?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> ની નિકાસ રદ કરીએ?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard આયાત/નિકાસને રદ કરી શક્યાં નહીં"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"અજાણી ભૂલ."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ખોલી શક્યાં નથી: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"નિકાસકર્તા શરૂ કરી શક્યાં નહીં: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"કોઈ નિકાસયોગ્ય સંપર્ક નથી."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"તમે આવશ્યક પરવાનગી અક્ષમ કરી છે."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"નિકાસ દરમિયાન ભૂલ આવી: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O ભૂલ"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"પર્યાપ્ત મેમરી નથી. આ ફાઇલ ખૂબ મોટી હોઈ શકે છે."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ફોર્મેટ સમર્થિત નથી."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> ને નિકાસ કરવું સમાપ્ત થયું."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"સંપર્કોને નિકાસ કરવાનું સમાપ્ત થયું."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"નિકાસ કરવાનું સમાપ્ત થયું, સંપર્કો શેર કરવા માટે સૂચના ક્લિક કરો."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"સંપર્કો શેર કરવા માટે ટૅપ કરો."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> ને નિકાસ કરવું રદ કર્યું."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"સંપર્ક ડેટા નિકાસ કરી રહ્યાં છે"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"સંપર્ક ડેટાનો નિકાસ કરવામાં આવી રહ્યો છે."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ડેટાબેઝ માહિતી મેળવી શક્યાં નથી."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"કોઇ નિકાસયોગ્ય સંપર્કો નથી."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard કમ્પોઝર ઠીકથી પ્રારંભ થયું નથી."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"નિકાસ કરી શક્યાં નથી"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"સંપર્ક ડેટા નિકાસ કર્યો નહોતો.\nકારણ: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> ને આયાત કરે છે"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard ડેટા વાંચી શકાયો નથી"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> ને આયાત કરવું સમાપ્ત થયું"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> ને આયાત કરવું રદ કર્યું"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> ને ટૂંક સમયમાં આયાત કરવામાં આવશે."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ફાઇલ ટૂંક સમયમાં આયાત કરવામાં આવશે."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard આયાતની વિનંતી નકારી હતી. પછીથી ફરી પ્રયાસ કરો."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"સંપર્કોનો ટૂંક સમયમાં નિકાસ કરવામાં આવશે."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard નિકાસની વિનંતી નકારી હતી. પછીથી ફરી પ્રયાસ કરો."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"સંપર્ક"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"સ્થાનિક અસ્થાયી સ્ટોરેજ પર vCard કેશ કરી રહ્યાં છે. વાસ્તવિક આયાત ટૂંક સમયમાં શરૂ થશે."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard આયાત કરી શકાયો નથી."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC પર સંપર્ક પ્રાપ્ત"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"કેશ કરી રહ્યાં છે"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> આયાત કરે છે: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf ફાઇલ પર નિકાસ કરો"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"આ પ્રમાણે સૉર્ટ કરો"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ધ્વન્યાત્મક નામ"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"હંમેશા બતાવો"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"જો ખાલી હોય તો છુપાવો"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"નામ"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"અટક"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"નામ ફોર્મેટ"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"પ્રથમ નામ પહેલા"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"છેલ્લું નામ પહેલા"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"એકાઉન્ટ્સ"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"નવા સંપર્કો માટે ડિફોલ્ટ એકાઉન્ટ"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"મારી માહિતી"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"તમારી પ્રોફાઇલ સેટ કરો"</string>
+    <string name="setting_about" msgid="7014388749752042863">"સંપર્કો વિશે"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"મનપસંદ સંપર્કોને શેર કરો"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"તમામ સંપર્કોને શેર કરો"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"સંપર્કોને શેર કરવામાં નિષ્ફળ થયાં."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"સંપર્કો નિકાસ કરો"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"આમાંથી સંપર્કો આયાત કરો"</string>
+    <string name="share_error" msgid="948429331673358107">"આ સંપર્ક શેર કરી શકાતો નથી."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"શેર કરવા માટે કોઇ સંપર્કો નથી"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"પ્રદર્શિત કરવાના સંપર્કો"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"પ્રદર્શિત કરવાના સંપર્કો"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"કસ્ટમાઇઝ દૃશ્ય"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"સાચવો"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"સંપર્કો શોધો"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"મનપસંદ"</string>
+    <string name="menu_import" msgid="6107961135813836467">"આયાત કરો"</string>
+    <string name="menu_export" msgid="2658783911863503902">"નિકાસ કરો"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"અવરોધિત નંબરો"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> મારફતે"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> મારફતે <xliff:g id="DATE">%1$s</xliff:g> ના રોજ"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"શોધવાનું રોકો"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"શોધ સાફ કરો"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"એકાઉન્ટ"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"કૉલ્સ માટે આનો ઉપયોગ હંમેશાં કરો"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"નોંધ સાથે કૉલ કરો"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"કૉલ સાથે મોકલવા માટે એક નોંધ લખો…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"મોકલો અને કૉલ કરો"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"બિલ્ડ સંસ્કરણ"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ઓપન સોર્સ લાઇસન્સીસ"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ખુલ્લા સ્ત્રોતના સોફ્ટવેર માટે લાઇસન્સની વિગતો"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"ગોપનીયતા નીતિ"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"સેવાની શરતો"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ઓપન સોર્સ લાઇસન્સીસ"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url ખોલવામાં નિષ્ફળ થયાં."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ચેક કર્યું"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ચેક કરેલ નથી"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"વિડિઓ કૉલ કરો"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"કાઢી નાખો"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"અધ્યાહાર"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> સેકંડ"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> મિનિટ <xliff:g id="SECONDS">%2$s</xliff:g> સેકંડ"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> કલાક <xliff:g id="MINUTES_1">%2$s</xliff:g> મિનિટ <xliff:g id="SECONDS">%3$s</xliff:g> સેકંડ"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"આ શૉર્ટકટ અક્ષમ કરવામાંં આવેલ છે"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"સંપર્ક દૂર કર્યો હતો"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"આયાત કરો"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"સંપર્કો પસંદ કરો"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"તમારા SIM કાર્ડ પર કોઈ સંપર્કો નથી"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"સંપર્ક પહેલાંથી જ તમારી સૂચિમાં અસ્તિત્વમાં છે"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> SIM સંપર્કો આયાત કર્યાં</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM સંપર્કો આયાત કર્યાં</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM સંપર્કો આયાત કરવામાં નિષ્ફળ થયાં"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM માંથી આયાત કરો"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"રદ કરો"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"સ્વતઃ સમન્વયન બંધ છે. ચાલુ કરવા માટે ટૅપ કરો."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"છોડી દો"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"એકાઉન્ટ સમન્વયન બંધ છે. ચાલુ કરવા માટે ટૅપ કરો."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"સ્વતઃસમન્વયન ચાલુ કરીએ?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"તમે બધી ઍપ્લિકેશનો અને એકાઉન્ટ્સમાં જે ફેરફારો કરો છો, માત્ર Google સંપર્કોમાં નહીં, તે વેબ અને તમારા ઉપકરણો વચ્ચે અપ ટુ ડેટ રાખવામાં આવશે."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ચાલુ કરો"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"કોઈ કનેક્શન નથી"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"વધુ બતાવો"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM કાર્ડ આયાત કરવાનું સમાપ્ત થયું"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"આયાત કરવું નિષ્ફળ થયું"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM કાર્ડમાંથી સંપર્કો આયાત કરી શક્યાં નથી"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM આયાત કરી રહ્યાં છે"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index a7c79e5..6f4788f 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"संपर्क"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"संपर्क"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"संपर्क देखें"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"संपर्क संपादित करें"</string>
     <string name="contactsList" msgid="8661624236494819731">"संपर्क"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"संपर्क जोड़ें"</string>
     <string name="shortcutContact" msgid="749243779392912958">"संपर्क"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"कॉल करें"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"मैसेज भेजें"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"कोई संपर्क शॉर्टकट चुनें"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"कॉल करने के लिए कोई नंबर चुनें"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"संदेश भेजने के लिए कोई नंबर चुनें"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"संपर्क चुनें"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"संपर्क में जोड़ें"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"कोई संपर्क चुनें"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"चुनें"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"नया संपर्क बनाएं"</string>
-    <string name="starredList" msgid="4817256136413959463">"तारांकित"</string>
-    <string name="frequentList" msgid="7154768136473953056">"बार-बार"</string>
-    <string name="strequentList" msgid="5640192862059373511">"पसंदीदा"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"संपर्क विवरण"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"संपर्क संपादित करें"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"संपर्क बनाएं"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"समूह संपादित करें"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"समूह बनाएं"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"इस बारे में"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"नई जानकारी"</string>
     <string name="searchHint" msgid="8482945356247760701">"संपर्क खोजें"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"संपर्क देखें"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"पसंदीदा में जोड़ें"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"पसंदीदा से निकालें"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"पसंदीदा से निकाल दिया गया"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"संपादित करें"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"हटाएं"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"फ़ोटो बदलें"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"मुख्यपृष्ठ स्क्रीन पर रखें"</string>
-    <string name="menu_call" msgid="3992595586042260618">"संपर्क को कॉल करें"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"इस संपर्क को SMS भेजें"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"शॉर्टकट बनाएं"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"अनलिंक करें"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"संपादित करें"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"हटाएं"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"संपर्क जोड़ें"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"समूह जोड़ें"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"संपर्क निकालें"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"लेबल का नाम बदलें"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"लेबल हटाएं"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"संपर्क जोड़ें"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"संपर्कों को चुनें"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"संपर्क जोड़ें"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"लेबल से निकालें"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"लेबल बनाएं"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"एकाधिक खातों में इन संपर्कों को अनलिंक करें?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"अनलिंक करें"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"क्या आप पहले से किए गए बदलावों को सहेजना और इस संपर्क को एकाधिक संपर्कों में अनलिंक करना चाहते हैं?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"सहेजें और अनलिंक करें"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"क्या आप पहले से किए गए बदलावों को सहेजना और चयनित संपर्कों से लिंक करना चाहते हैं?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"सहेजें और लिंक करें"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"लिंक किए जा रहे हैं"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"अनलिंक कर रहे हैं"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"लिंक करें"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"लिंक किए गए संपर्क देखें"</string>
     <string name="menu_save" msgid="1727844363591825909">"सहेजें"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"संपर्क लिंक करें"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"वह संपर्क चुनें जिसे आप <xliff:g id="NAME">%s</xliff:g> के साथ लिंक करना चाहते हैं:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"सभी संपर्क दिखाएं"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"सुझाए गए संपर्क"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"सभी संपर्क"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> लिंक किया गया"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"संपर्क लिंक कर दिए गए"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> को हटाया गया"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> और <xliff:g id="NAME_1">%2$s</xliff:g> को हटाया गया"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… को हटाया गया"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">संपर्क हटा दिए गए</item>
       <item quantity="other">संपर्क हटा दिए गए</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> संपर्क</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> संपर्क</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> संपर्क · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> संपर्क · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google से"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> से"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"रिंगटोन सेट करें"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ध्‍वनि‍मेल से सभी कॉल"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"आपके केवल पढ़े जाने वाले खातों के संपर्क हटाए नहीं जा सकते, लेकिन उन्हें छिपाया जा सकता है."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"छिपाएं"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"जिस संपर्क को हटाया जाना है उसमें एकाधिक खातों के विवरण हैं. केवल पढ़े जाने वाले खातों के विवरण छिपाए जाएंगे, उन्हें हटाया नहीं जाएगा."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"लिंक करने के लिए आपको कम से कम दो संपर्कों को चुनना होगा."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"चयनित संपर्कों को लिंक करें?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"लिंक करें"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"वॉइसमेल पर रूट करें"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"वॉइसमेल से रूट हटाएं"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"यह संपर्क केवल पढ़ने के लिए है. इसे हटाया नहीं जा सकता है, लेकिन आप इसे छिपा सकते हैं."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"संपर्क छिपाएं"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"इस संपर्क के उन खातों को बस छिपाया जाएगा जो सिर्फ़ पढ़ने के लिए हैं, हटाया नहीं जाएगा."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"यह संपर्क हटाएं?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"चयनित संपर्क हटाएं?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"आपके केवल पढ़े जाने वाले खातों के संपर्क हटाए नहीं जा सकते, लेकिन उन्हें छिपाया जा सकता है."</string>
@@ -90,276 +92,442 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"इस संपर्क को हटाने से एकाधिक खातों से विवरण हट जाएंगे."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"यह संपर्क हटाएं?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"हटाएं"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"परिवर्तन हटा दें"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"संपर्क मौजूद नहीं है."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"संपर्कों को होम स्क्रीन में जोड़ा गया."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> को होम स्क्रीन में जोड़ा गया."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"नया संपर्क बनाएं"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"नया संपर्क बनाएं"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"संगठन"</item>
-    <item msgid="7196592230748086755">"नोट"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"टेबलेट पर कोई चित्र उपलब्ध नहीं है."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"फ़ोन पर कोई चित्र उपलब्ध नहीं है."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"डिवाइस पर कोई चित्र उपलब्ध नहीं है."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"संपर्क का फ़ोटो"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"कस्टम लेबल नाम"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"सीधे वॉयस मेल पर कॉल भेजें"</string>
     <string name="removePhoto" msgid="4898105274130284565">"फ़ोटो निकालें"</string>
-    <string name="noContacts" msgid="4955659076981974652">"कोई संपर्क नहीं"</string>
-    <string name="noGroups" msgid="8614664663561385253">"कोई समूह नहीं."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"समूह बनाने के लिए आपको किसी खाते की आवश्‍यकता होती है."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"इस समूह में कोई व्‍यक्ति नहीं."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"कुछ जोड़ने के लिए, समूह संपादित करें."</string>
-    <string name="savingContact" msgid="4075751076741924939">"संपर्क सहेज रहा है…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"आपकी संपर्क सूची खाली है"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"इस लेबल वाला कोई संपर्क नहीं"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"इस खाते में कोई संपर्क नहीं"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"आपकी संपर्क सूची खाली है"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> सहेजा गया"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"संपर्क सहेजा गया"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"संपर्क अनलिंक किए गए"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"संपर्क परिवर्तन सहेजे नहीं जा सके."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"संपर्क को अनलिंक नहीं किया जा सका."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"संपर्क को लिंक नहीं किया जा सका."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"संपर्क सहेजने में त्रुटि हुई."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"संपर्क फ़ोटो के बदलाव नहीं सहेजे जा सके."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"समूह सहेजा गया."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"समूह परिवर्तन सहेजे नहीं जा सके."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one">फ़ोन नंबर वाले <xliff:g id="COUNT">%d</xliff:g> संपर्क</item>
-      <item quantity="other">फ़ोन नंबर वाले <xliff:g id="COUNT">%d</xliff:g> संपर्क</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"फ़ोन नंबर वाले कोई संपर्क नहीं"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> मिले</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> मिले</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"संपर्क परिवर्तन सहेजे नहीं जा सके"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"संपर्क को अनलिंक नहीं किया जा सका"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"संपर्क को लिंक नहीं किया जा सका"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"संपर्क सहेजने में गड़बड़ी"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"संपर्क फ़ोटो के बदलाव नहीं सहेजे जा सके"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"लेबल लोड करने में विफल रहा"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"लेबल हटाया गया"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"लेबल बनाया गया"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"लेबल नहीं बनाया जा सकता"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"लेबल अपडेट किया गया"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"लेबल से निकाला गया"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"लेबल में जोड़ा गया"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"लेबल के बदलाव सहेजे नहीं जा सके"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"वह लेबल पहले से मौजूद है"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"कुछ संपर्कों में ईमेल नहीं हैं."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"कुछ संपर्कों में फ़ोन नंबर नहीं हैं."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ईमेल भेजें"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"संदेश भेजें"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"संपर्क चुनें"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"भेजें"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"कोई संपर्क नहीं"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> मिले</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> मिले</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"सभी"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"पसंदीदा"</string>
-    <string name="callBack" msgid="5498224409038809224">"कॉल बैक करें"</string>
-    <string name="callAgain" msgid="3197312117049874778">"फिर से कॉल करें"</string>
-    <string name="returnCall" msgid="8171961914203617813">"रिटर्न कॉल"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" को संपर्कों में जोड़ें?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"संपर्क का फ़ोटो"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"जोड़ें"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> में से <xliff:g id="CURRENT_NUMBER">%s</xliff:g> संपर्क"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"आपके संपर्कों के नाम"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"यह कार्यवाही प्रबंधित करने के लिए कोई ऐप्स  नहीं मिला."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"पिछली स्क्रीन पर लौटने के लिए क्लिक करें"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"फ़ोन नंबर जोड़ें"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"ईमेल जोड़ें"</string>
     <string name="missing_app" msgid="1466111003546611387">"यह कार्यवाही प्रबंधित करने के लिए कोई ऐप्स नहीं मिला."</string>
     <string name="menu_share" msgid="943789700636542260">"साझा करें"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"संपर्कों में जोड़ें"</string>
-    <string name="share_via" msgid="563121028023030093">"इसके द्वारा संपर्क साझा करें"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"खाते के तहत समूह बनाएं"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"जोड़ें"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">इसके द्वारा संपर्कों को साझा करें</item>
+      <item quantity="other">इसके द्वारा संपर्कों को साझा करें</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"खाता चुनें"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"लेबल बनाएं"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"लेबल का नाम बदलें"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"लेबल नाम"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"लेबल नाम"</string>
     <string name="audio_chat" msgid="2535716629358298691">"ध्वनि बातचीत"</string>
     <string name="video_chat" msgid="1872255818640336072">"वीडियो बातचीत"</string>
-    <string name="connections" msgid="8098440723172028350">"कनेक्शन"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"कनेक्शन जोड़ें"</string>
-    <string name="recent" msgid="2659189233141493004">"हाल ही के"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"हाल ही के नई जानकारी"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> संपर्क"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> खाता"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"इस ऐप्स  द्वारा संपादन-योग्‍य नहीं."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"इस डिवाइस पर संपादन योग्‍य नहीं."</string>
     <string name="take_photo" msgid="7496128293167402354">"फ़ोटो लें"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"नया फ़ोटो लें"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"नई फ़ोटो लें"</string>
     <string name="pick_photo" msgid="2129509985223564942">"फ़ोटो चुनें"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"नई फ़ोटो चुनें"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"संपर्क सूची से नई जानकारी मिल रही है."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"खोज रहा है…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"चयनित दिखाएं"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"सभी दिखाएं"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"सभी को चुनें"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"कुछ भी ना चुनें"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"नया जोड़ें"</string>
-    <string name="add_organization" msgid="7311893231158291197">"संगठन जोड़ें"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"दि‍नांक"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"समूह नाम"</string>
-    <string name="change_photo" msgid="8530597935483526383">"बदलें"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"प्राथमिक फ़ोटो"</string>
-    <string name="description_star" msgid="2605854427360036550">"पसंदीदा"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"संपर्क संपादित करें"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"वर्तमान संपर्क को चयनित संपर्क से लिंक करें?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"लेबल"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"रद्द करें"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"वापस जाएं"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"बंद करें"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"चयनित संपर्क के संपादन पर जाएं? आपके द्वारा अभी तक दर्ज की गई जानकारी की प्रतिलिपि बनाई जाएगी."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"मेरे संपर्क में प्रतिलिपि बनाएं"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"मेरे संपर्क में जोड़ें"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"निर्देशिका <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"कस्टम"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"सेटिंग"</string>
     <string name="menu_settings" msgid="377929915873428211">"सेटिंग"</string>
     <string name="menu_help" msgid="1680178646764069976">"सहायता और फ़ीडबैक"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"प्रदर्शन विकल्प"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"फ़ोन नंबर"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"संपर्कों में जोड़ें"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"संपर्क में जोड़ें"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"बंद करें"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"वर्ष शामिल करें"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"संपर्क करें"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"लोड हो रहा है..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"एक नया संपर्क बनाएं"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"खाता जोड़ें"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"संपर्क आयात करें"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"नया समूह बनाएं"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"नया समूह बनाएं"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> समूह</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> समूह</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"समूह \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" को हटाएं? (संपर्क स्वयं नहीं हटाए जाएंगे.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> से <xliff:g id="COUNT_2">%1$d</xliff:g> लोग</item>
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> से <xliff:g id="COUNT_2">%1$d</xliff:g> लोग</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> व्‍यक्‍ति</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> लोग</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"आयात करें"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"नया बनाएं…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"लेबल \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" हटाएं? (संपर्क स्वयं नहीं हटाए जाएंगे.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"अन्‍य संपर्क से लिंक करने से पहले संपर्क नाम लिखें."</string>
     <string name="copy_text" msgid="3257145021583508761">"क्‍लिपबोर्ड पर प्रतिलिपि बनाएं"</string>
     <string name="set_default" msgid="4417505153468300351">"सामान्य सेट करें"</string>
     <string name="clear_default" msgid="7193185801596678067">"सामान्य साफ़ करें"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"लेख की प्रतिलिपि बनाई गई"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"आपके परिवर्तन हटा दें?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"ख़ारिज करें"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"मेरी प्रोफ़ाइल सेट करें"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"व्‍यक्ति‍ का नाम लिखें"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"समूह का नाम"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"क्या परिवर्तनों को छोड़ना चाहते हैं?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"अभी नहीं"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"रद्द करें"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"कस्‍टमाइज़ेशन छोड़ें?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"संपर्क खोजें"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"संपर्क निकालें"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"मेरी स्थानीय प्रोफ़ाइल"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"मेरी <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> प्रोफ़ाइल"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"सभी संपर्क प्रदर्शित कर रहा है"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"संपर्क Google खाते के साथ बेहतर कार्य करता है.\n\n• किसी भी वेब ब्राउज़र से एक्सेस करें.\n• अपने संपर्कों का सुरक्षित रूप से बैकअप लें."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"अपना फ़ोन खो देने पर भी अपने संपर्क सुरक्षित रखें: किसी ऑनलाइन सेवा से समन्‍वयित करें."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"कोई खाता जोड़ें"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"आपके नए संपर्क का बैक अप नहीं लिया जाएगा. ऐसा खाता जोड़ें जो संपर्कों का ऑन‍लाइन बैक अप ले?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"कुछ समय निकालें और Google में आपके संपर्कों का बैकअप लेने के लिए एक खाता जोड़ें."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"नए संपर्कों को <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> में सहेजा जाएगा."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"नए संपर्कों के लिए डिफ़ॉल्ट खाता चुनें:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"नया संपर्क जोड़ें"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"नया संपर्क बनाएं"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"संपर्क संपादित करें"</string>
-    <string name="keep_local" msgid="1258761699192993322">"स्‍थानीय रखें"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"केवल देखने के लिए"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"संपादित करने के लिए संपर्क चुनें"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"लिंक किए गए संपर्क"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"जोड़ें"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"अनलिंक करें"</string>
     <string name="add_account" msgid="8201790677994503186">"खाता जोड़ें"</string>
     <string name="add_new_account" msgid="5748627740680940264">"नया खाता जोड़ें"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"डेटाबेस फ़ाइलें निर्यात करें"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"नया संपर्क जोड़ें"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"नया संपर्क बनाएं"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"अधिक देखें"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कम देखें"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"सभी देखें"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"हाल ही का"</string>
     <string name="about_card_title" msgid="2920942314212825637">"संक्षिप्त विवरण"</string>
-    <string name="send_message" msgid="8938418965550543196">"संदेश भेजें"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"व्यक्तिगत प्रति बनाई जा रही है..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"कल"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"एक व्‍यक्तिगत प्रतिलिपि बना रहा है…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"कल"</string>
     <string name="today" msgid="8041090779381781781">"आज"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"आज <xliff:g id="TIME_INTERVAL">%s</xliff:g> बजे"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"कल <xliff:g id="TIME_INTERVAL">%s</xliff:g> बजे"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(शीर्षक रहित ईवेंट)"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(शीर्षक रहित इवेंट)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"सेट करें"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
     <string name="header_organization_entry" msgid="8515394955666265406">"संगठन का नाम"</string>
     <string name="header_nickname_entry" msgid="6743561883967451485">"उपनाम"</string>
     <string name="header_note_entry" msgid="4320190426480612344">"नोट"</string>
     <string name="header_website_entry" msgid="1411467850000824745">"वेबसाइट"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ईवेंट"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"इवेंट"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"संबंध"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"खाता"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"नाम"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"ईमेल"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"फ़ोन"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"फ़ोटो"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"संपर्क संपादक को विस्‍तृत करने के लिए क्‍लिक करें."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"संपर्क संपादक को संक्षिप्‍त करने के लिए क्‍लिक करें."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"स्थान के लिए दिशा निर्देश"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"हाल ही का एसएमएस. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. जवाब देने के लिए क्लिक करें"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"हाल ही का एसएमएस. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. जवाब देने के लिए क्लिक करें"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"इनकमिंग"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"आउटगोइंग"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"छूटा"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"हाल ही का कॉल. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. पुनः कॉल करने के लिए क्लिक करें"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"हाल ही का कॉल. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. पुनः कॉल करने के लिए क्लिक करें"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"आप: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts तब बेहतर कार्य करता है जब आप व्‍यक्‍ति के Hangouts पहचानकर्ता को ईमेल फ़ील्‍ड या फ़ोन फ़ील्‍ड में डालते हैं."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"अधिक फ़ील्‍ड"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"फ़ोटो बदलें"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"संपादक को खोलने में विफल रहा."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"इसमें सहेजें"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"वर्तमान में <xliff:g id="ACCOUNT_NAME">%s</xliff:g> में सहेजा जा रहा है. भिन्न खाता चुनने के लिए डबल-टैप करें."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">लिंक किए गए संपर्क (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">लिंक किए गए संपर्क (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> लिंक किए गए संपर्क"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"अधिक फ़ील्‍ड"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"संपर्क की फ़ोटो बदलें"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"संपर्क की फ़ोटो जोड़ें"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"संपर्क की फ़ोटो"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"संपादक को खोलने में विफल रहा."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"इसमें सहेजा जा रहा है"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> की संपर्क जानकारी संपादित नहीं की जा सकती है"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"संपर्क लिंक करें"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"अभी नहीं"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> संभावित प्रतिलिपि</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> संभावित प्रतिलिपि</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one">लिंक किए गए <xliff:g id="COUNT">%d</xliff:g> संपर्क</item>
-      <item quantity="other">लिंक किए गए <xliff:g id="COUNT">%d</xliff:g> संपर्क</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"यह संपर्क"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"संभावित प्रतिलिपि"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"हो सकता है कि ये संपर्क एक ही व्‍यक्‍ति हो. आप उन्हें एकल संपर्क के रूप में एक साथ लिंक कर सकते हैं."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"लिंक किए गए संपर्क"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"आपके खातों से"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"फ़ोटो लें"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"सभी फ़ोटो"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"फ़ोटो चुनें"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> की ओर से"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> हटाएं"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> हटाएं"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> हटाएं"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>की फ़ोटो चेक नहीं की गई"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>की फ़ोटो चेक की गई"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"अज्ञात खाते की फ़ोटो नहीं जांची गई"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"अज्ञात खाते की फ़ोटो जांची गई"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"भाषा के परिवर्तन दिखाने के लिए संपर्क सूची से नई जानकारी मिल रही है.\n\nकृपया प्रतीक्षा करें..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"नंबर जोड़ें"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"नंबर अवरुद्ध करें"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"नंबर जोड़ें या संपर्क खोजें"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> को अनवरोधित करें?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"अनवरोधित करें"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> को अवरुद्ध करें?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"अवरुद्ध करें"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> अवरोधित किया गया"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> अनवरोधित किया गया"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> अमान्य है."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"कॉल अवरुद्ध करना अस्‍थायी रूप से बंद है"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"कॉल अवरुद्ध किए जाने को अक्षम कर दिया गया है क्योंकि पिछले 48 घंटों में आपने इस फ़ोन से आपातकालीन सेवाओं से संपर्क किया है. 48 घंटे की अवधि बीत जाने पर यह अपने आप फिर से सक्षम हो जाएगी."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात करें"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नंबर देखें"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"नंबर जोड़ें"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"कॉल अवरुद्ध करना 48 घंटे के लिए अक्षम कर दिया गया"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"आपातकालीन कॉल किए जाने के कारण अक्षम कर दिया गया."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"वापस लाएं"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> पहले से अवरोधित है."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नंबर अनवरोधित करें"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> का संपर्क विवरण"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात करना विफल रहा"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"नंबर आयात करें"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"चालू करें"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"सुझाव"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"नया"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"मार्गदर्शक ड्रॉवर खोलें"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"मार्गदर्शक ड्रॉवर बंद करें"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> लेबल"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"लेबल"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"खाते"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"अपना इतिहास एक साथ देखें"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"इवेंट और संदेश"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"इवेंट"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"संदेश"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"सुझाव"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"अपने संपर्कों को व्यवस्थित और उपयोगी बनाए रखें"</string>
+    <string name="undo" msgid="1425165101664071422">"वापस लाएं"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> पर कॉल करें"</string>
+    <string name="call_home" msgid="1990519474420545392">"घर के फ़ोन नंबर पर कॉल करें"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"मोबाइल पर कॉल करें"</string>
+    <string name="call_work" msgid="5328785911463744028">"कार्यस्थल के फ़ोन नंबर पर कॉल करें"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"कार्यस्थल फ़ैक्स पर कॉल करें"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"घर के फ़ैक्स पर कॉल करें"</string>
+    <string name="call_pager" msgid="9003902812293983281">"पेजर पर कॉल करें"</string>
+    <string name="call_other" msgid="8563753966926932052">"कॉल करें"</string>
+    <string name="call_callback" msgid="1910165691349426858">"कॉलबैक नंबर पर कॉल करें"</string>
+    <string name="call_car" msgid="3280537320306436445">"कार फ़ोन पर कॉल करें"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"कंपनी के मुख्य नंबर पर कॉल करें"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN फ़ोन नं. को कॉल करें"</string>
+    <string name="call_main" msgid="6082900571803441339">"मुख्य फ़ोन पर कॉल करें"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"अन्य फ़ैक्स नंबर पर कॉल करें"</string>
+    <string name="call_radio" msgid="8296755876398357063">"रेडियो पर कॉल करें"</string>
+    <string name="call_telex" msgid="2223170774548648114">"इस टेलेक्स पर कॉल करें"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD फ़ोन नंबर पर कॉल करें"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"कार्यस्थल मोबाइल पर कॉल करें"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"कार्यस्थल पेजर पर कॉल करें"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> पर कॉल करें"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS फ़ोन नंबर पर कॉल करें"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (कॉल करें)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> लिखित संदेश भेजें"</string>
+    <string name="sms_home" msgid="7524332261493162995">"घर के फ़ोन पर SMS भेजें"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"मोबाइल पर SMS भेजें"</string>
+    <string name="sms_work" msgid="2269624156655267740">"कार्यस्थल के फ़ोन नंबर पर SMS भेजें"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"कार्यस्थल फ़ैक्स नंबर पर SMS भेजें"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"घर के फ़ैक्स पर SMS भेजें"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"पेजर पर SMS भेजें"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS भेजें"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"कॉलबैक नंबर पर SMS भेजें"</string>
+    <string name="sms_car" msgid="7444227058437359641">"कार फ़ोन नंबर पर SMS भेजें"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"कंपनी के मुख्या फ़ोन पर SMS भेजें"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN फ़ोन नंबर पर SMS भेजें"</string>
+    <string name="sms_main" msgid="8621625784504541679">"मुख्य फ़ोन नंबर पर SMS भेजें"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"इस फ़ैक्स नंबर पर SMS भेजें"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"रेडियो फ़ोन नंबर पर SMS भेजें"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"टेलेक्स फ़ोन नंबर पर SMS भेजें"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD को SMS भेजें"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"कार्यस्थल मोबाइल को SMS भेजें"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"कार्यस्थल पेजर पर SMS भेजें"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> को SMS भेजें"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS भेजें"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (संदेश भेजें)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"वीडियो कॉल करें"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"अक्‍सर किए जाने वाले संपर्क साफ करें?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"आपको संपर्क और फ़ोन ऐप्लिकेशन से अक्सर संपर्क की जाने वाली सूची साफ़ करनी होगी, और अपने ईमेल ऐप्लिकेशन को आपकी पता प्राथमिकताओं को प्रारंभ से जानने के लिए बाध्य करना होगा."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"अक्‍सर किए जाने वाले संपर्क साफ़ कर रहा है…"</string>
+    <string name="status_available" msgid="5586870015822828392">"उपलब्ध"</string>
+    <string name="status_away" msgid="1838861100379804730">"दूर"</string>
+    <string name="status_busy" msgid="9147992455450257136">"व्यस्त"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"अन्य"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"निर्देशिका"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"कार्य निर्देशिका"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"सभी संपर्क"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> के लिए त्‍वरित संपर्क"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(कोई नाम नहीं)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"बार-बार संपर्क किया गया"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"फ़ोन नंबरों वाले सभी संपर्क."</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"कार्य प्रोफ़ाइल के संपर्क"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"नई जानकारी देखें"</string>
+    <string name="account_phone" msgid="7128032778471187553">"डिवाइस"</string>
+    <string name="account_sim" msgid="6519016427905087952">"सिम"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"नाम"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"प्रचलित नाम"</string>
+    <string name="name_given" msgid="4280790853455320619">"नाम"</string>
+    <string name="name_family" msgid="7466985689626017037">"उपनाम"</string>
+    <string name="name_prefix" msgid="59756378548779822">"नाम उपसर्ग"</string>
+    <string name="name_middle" msgid="8467433655992690326">"मध्य नाम"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"नाम का अंतिम भाग"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"फ़ोनेटिक नाम"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"फ़ोनेटिक नाम"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"फ़ोनेटिक मध्य नाम"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"फ़ोनेटिक उपनाम"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"फ़ोन"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ईमेल"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"पता"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"संगठन"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"संबंध"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"विशेष दिनांक"</string>
+    <string name="sms" msgid="1756857139634224222">"लेख संदेश"</string>
+    <string name="postal_address" msgid="8765560217149624536">"पता"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"कंपनी"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"शीर्षक"</string>
+    <string name="label_notes" msgid="8337354953278341042">"नोट"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"कस्टम"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"वेबसाइट"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"लेबल"</string>
+    <string name="email_home" msgid="8573740658148184279">"घर का ईमेल"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"मोबाइल पर ईमेल भेजें"</string>
+    <string name="email_work" msgid="2807430017302722689">"कार्यस्थल का ईमेल"</string>
+    <string name="email_other" msgid="3454004077967657109">"ईमेल भेजें"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> को ईमेल करें"</string>
+    <string name="email" msgid="5668400997660065897">"ईमेल भेजें"</string>
+    <string name="postal_street" msgid="8133143961580058972">"मार्ग का नाम"</string>
+    <string name="postal_city" msgid="6597491300084895548">"शहर"</string>
+    <string name="postal_region" msgid="6045263193478437672">"राज्य"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ज़िप कोड"</string>
+    <string name="postal_country" msgid="7638264508416368690">"देश"</string>
+    <string name="map_home" msgid="1243547733423343982">"घर का पता देखें"</string>
+    <string name="map_work" msgid="1360474076921878088">"कार्यस्थल का पता देखें"</string>
+    <string name="map_other" msgid="3817820803587012641">"पता देखें"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> पता देखें"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM का उपयोग करके बातचीत करें"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live का उपयोग करके बातचीत करें"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo का उपयोग करके बातचीत करें"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype का उपयोग करके बातचीत करें"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ का उपयोग करके बातचीत करें"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google टॉक का उपयोग करके बातचीत करें"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ का उपयोग करके बातचीत करें"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber का उपयोग करके बातचीत करें"</string>
+    <string name="chat" msgid="9025361898797412245">"बातचीत करें"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"हटाएं"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"अधिक नाम फ़ील्ड दिखाएं"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"नाम फ़ील्ड संक्षिप्त करें"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"अधिक फ़ोनेटिक नाम फ़ील्ड दिखाएं"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"फ़ोनेटिक नाम फ़ील्ड संक्षिप्त करें"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"विस्तृत करें"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"संक्षिप्त करें"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"विस्तृत किया गया"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"संक्षिप्त किया गया"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"सभी संपर्क"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"तारांकित"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"कस्‍टमाइज़ करें"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"संपर्क"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"अन्य सभी संपर्क"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"सभी संपर्क"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"समन्वयन समूह निकालें"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"समन्वयन समूह जोड़ें"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"अधिक समूह…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\" को समन्‍वयन से निकालने से समन्‍वयन से सभी असमूहीकृत संपर्क भी  निकल जाएंगे."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"प्रदर्शन विकल्प सहेज रहा है…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"कस्टमाइज़ किया गया दृश्य"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"आयातित संपर्कों को इसमें सहेजें:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM कार्ड"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"सिम <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d संपर्क</item>
+      <item quantity="other">%1$d संपर्क</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> संपर्क • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> संपर्क • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf फ़ाइल"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"आयात करने के लिए कुछ नहीं है"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard से संपर्कों को आयात करना चाहते हैं?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> का आयात रहने दें?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> का निर्यात रहने दें?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard आयात/निर्यात रद्द नहीं हो सका"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"अज्ञात गड़बड़ी‍."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" नहीं खोली जा सकी: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"निर्यातकर्ता प्रारंभ नहीं किया जा सका: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"कोई निर्यात-योग्‍य संपर्क नहीं है."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"आपने एक आवश्यक अनुमति को अक्षम कर दिया है."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"निर्यात करते समय कोई गड़बड़ी आई: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O गड़बड़ी"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"स्‍मृति पर्याप्त नहीं है. हो सकता है फ़ाइल बहुत बड़ी हो."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"प्रारूप समर्थित नहीं है."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> का निर्यात करना पूर्ण."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"संपर्कों का निर्यात किया जाना समाप्त हो गया."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"संपर्कों का निर्यात पूरा हो गया है, संपर्क साझा करने के लिए नोटिफ़िकेशन क्लिक करें."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"संपर्क साझा करने के लिए टैप करें."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> को निर्यात करना रद्द किया गया."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"संपर्क डेटा निर्यात हो रहा है"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"संपर्क डेटा निर्यात किया जा रहा है."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"डेटाबेस जानकारी नहीं मिल सकी."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"कोई भी निर्यात-योग्‍य संपर्क नहीं है."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard कंपोज़र ठीक से शुरू नहीं हुआ."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"निर्यात नहीं कर सका"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"संपर्क डेटा निर्या‍त नहीं किया गया था.\nकारण: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> आयात कर रहा है"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard डेटा नहीं पढ़ा जा सका"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> आयात करना पूर्ण"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> को आयात करना रद्द किया गया"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> को जल्‍दी ही आयात किया जाएगा."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"फ़ाइल शीघ्र ही आयात की जाएगी."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard आयात अनुरोध अस्‍वीकार हो गया था. बाद में पुन: प्रयास करें."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"संपर्कों को शीघ्र ही निर्यात किया जाएगा."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard आयात अनुरोध अस्‍वीकार हो गया था. बाद में पुन: प्रयास करें."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"संपर्क"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard को स्‍थानीय अस्‍थायी मेमोरी में संचित कर रहा है. वास्‍तविक आयात जल्‍दी ही प्रारंभ होगा."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard आयात नहीं कर सका."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC पर प्राप्त संपर्क"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"संचय कर रहा है"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> आयात कर रहा है: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf फाइल में निर्यात करें"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"इससे क्रमित करें"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"फ़ोनेटिक नाम"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"हमेशा दिखाएं"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"अगर खाली है तो छिपाएं"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"नाम"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"उपनाम"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"नाम प्रारूप"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"नाम पहले"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"उपनाम पहले"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"खाते"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"नए संपर्कों के लिए डिफ़ॉल्ट खाता"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"मेरी जानकारी"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"अपनी प्रोफ़ाइल सेट करें"</string>
+    <string name="setting_about" msgid="7014388749752042863">"संपर्क के बारे में"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"पसंदीदा संपर्कों को साझा करें"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"सभी संपर्कों को साझा करें"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"संपर्कों को साझा करना विफल रहा."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"संपर्क निर्यात करें"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"संपर्क यहां से आयात करें"</string>
+    <string name="share_error" msgid="948429331673358107">"यह संपर्क साझा नहीं किया जा सकता."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"साझा करने के लिए कोई भी संपर्क नहीं है."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"प्रदर्शन के लिए संपर्क"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"प्रदर्शन के लिए संपर्क"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"दृश्य कस्टमाइज़ करें"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"सहेजें"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"संपर्क खोजें"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"पसंदीदा"</string>
+    <string name="menu_import" msgid="6107961135813836467">"आयात करें"</string>
+    <string name="menu_export" msgid="2658783911863503902">"निर्यात करें"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"अवरोधित नंबर"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> द्वारा"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> द्वारा <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"खोजना बंद करें"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"खोज साफ़ करें"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"खाता"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"कॉल के लिए हमेशा इसका उपयोग करें"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"नोट के साथ कॉल करें"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"कॉल के साथ भेजने के लिए नोट लिखें..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"भेजें और कॉल करें"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"बिल्ड वर्शन"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ओपन सोर्स लाइसेंस"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ओपन सोर्स सॉफ़्टवेयर के लाइसेंस वि‍वरण"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"निजता नीति"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"सेवा की शर्तें"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ओपन सोर्स लाइसेंस"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url खोलने में विफल रहा."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> चेक किया गया"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> चेक नहीं किया गया"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"वीडियो कॉल करें"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"हटाएं"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"पदलोप चिह्न"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> सेकंड"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> मि. <xliff:g id="SECONDS">%2$s</xliff:g> से."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> घंटे <xliff:g id="MINUTES_1">%2$s</xliff:g> मिनट <xliff:g id="SECONDS">%3$s</xliff:g> सेकंड"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"इस शॉर्टकट को अक्षम कर दिया गया है"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"संपर्क निकाल दिया गया था"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"आयात करें"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"संपर्कों को चुनें"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"आपके सिम कार्ड पर कोई संपर्क नहीं है"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"संपर्क पहले से ही आपकी सूची में मौजूद है"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> सिम संपर्क आयात किए गए</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सिम संपर्क आयात किए गए</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"सिम संपर्कों को आयात करने में विफल रहा"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"सिम से आयात करें"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"रद्द करें"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"स्वतः समन्वयन बंद है. चालू करने के लिए टैप करें."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"खारिज करें"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"खाता समन्वयन बंद है. चालू करने के लिए टैप करें."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"ऑटो सिंक चालू करना चाहते हैं?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"आपके द्वारा न केवल Google संपर्क में, बल्कि सभी ऐप्लिकेशन और खातों में किए जाने वाले बदलाव, वेब और आपके डिवाइस के बीच अप-टू-डेट रखे जाएंगे."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"चालू करें"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"कोई कनेक्शन नहीं"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"सिम"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"और दिखाएं"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM कार्ड का आयात पूर्ण"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"आयात करना विफल रहा"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM कार्ड से संपर्क आयात नहीं किए जा सके"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM को आयात किया जा रहा है"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 31630cb..021b4aa 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakti"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakti"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Prikaži kontakt"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Uredi kontakt"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakti"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Dodavanje kontakta"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Izravan poziv"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Izravna poruka"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Odaberite prečac kontakta"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Odaberite broj za pozivanje"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Odabir broja za poruku"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Odabir kontakta"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Dodavanje kontaktu"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Odaberite kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Odaberi"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Izrada novog kontakta"</string>
-    <string name="starredList" msgid="4817256136413959463">"Sa zvjezdicom"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Često"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoriti"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Pojedinosti kontakta"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Uredi kontakt"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Izradi kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Uredi skupinu"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Izradi skupinu"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"O kontaktu"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Ažuriranja"</string>
     <string name="searchHint" msgid="8482945356247760701">"Pretraži kontakte"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Prikaži kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Dodaj u favorite"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Ukloni iz favorita"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Uklonjeno iz favorita"</string>
@@ -49,41 +35,59 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Uredi"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Izbriši"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Promijeni fotografiju"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Stavi na početni zaslon"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Nazovi kontakt"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Poruka kontaktu"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Izradi prečac"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Prekini vezu"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Uredi"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Izbriši"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Dodavanje kontakta"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Dodavanje grupe"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Uklanjanje kontakata"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Promjena naziva oznake"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Brisanje oznake"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Dodavanje kontakta"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Odabir kontakata"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Dodavanje kontakata"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Uklanjanje iz oznake"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Izrada oznake"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Želite li razdvojiti taj kontakt na više kontakata?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Razdvoji"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Želite li spremiti promjene koje ste već izvršili i razdvojiti taj kontakt na više kontakata?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Spremi i razdvoji"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Želite li spremiti promjene koje ste već izvršili i povezati ih s odabranim kontaktom?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Spremi i poveži"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Povezivanje"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Prekidanje veze"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Poveži"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Prikaz povezanih kontakata"</string>
     <string name="menu_save" msgid="1727844363591825909">"Spremi"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Povezivanje kontakata"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Odaberite kontakt koji želite povezati s kontaktom <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Prikaži sve kontakte"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Predloženi kontakti"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Svi kontakti"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Kontakti su povezani s imenom <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakti su povezani"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Izbrisano: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Izbrisano: <xliff:g id="NAME_0">%1$s</xliff:g> i <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Izbrisano: <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Kontakti su izbrisani</item>
       <item quantity="few">Kontakti su izbrisani</item>
       <item quantity="other">Kontakti su izbrisani</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> kontakt</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontakta</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakata</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakta · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakata · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"S Google računa"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"S računa: <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Postavi zvuk zvona"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Svi pozivi na govornu poštu"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakti s računa koji su samo za čitanje ne mogu se izbrisati, ali se mogu sakriti."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Sakrij"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakt koji želite izbrisati ima podatke s više računa. Podaci s računa koji su samo za čitanje neće se izbrisati, već samo sakriti."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Da biste izvršili povezivanje, morate odabrati barem dva kontakta."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Želite li povezati odabrane kontakte?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Poveži"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Preusmjeri na govornu poštu"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Poništ. preusm. na gov. poštu"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Taj je kontakt samo za čitanje. Ne može se izbrisati, no možete ga sakriti."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Sakrij kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Računi u ovom kontaktu koji su samo za čitanje sakrit će se, ali neće se izbrisati."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Želite li izbrisati ovaj kontakt?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Želite li izbrisati odabrane kontakte?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakti s računa koji su samo za čitanje ne mogu se izbrisati, ali se mogu sakriti."</string>
@@ -91,183 +95,125 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Brisanjem ovog kontakta izbrisat ćete podatke s više računa."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Želite li izbrisati ovaj kontakt?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Izbriši"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Odbaci promjene"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt ne postoji."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt je dodan na početni zaslon."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> dodan je na početni zaslon."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Izrada novog kontakta"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Stvori novi kontakt"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizacija"</item>
-    <item msgid="7196592230748086755">"Napomena"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Na tabletnom uređaju nema dostupnih slika."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Nema dostupnih slika na telefonu."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Na uređaju nema dostupnih slika."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakt fotografija"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Prilagođeni naziv oznake"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Pošalji pozive izravno u govornu poštu"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Ukloni fotografiju"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nema kontakata"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nema grupa."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Za stvaranje grupa potreban vam je račun"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"U ovoj grupi nema osoba."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Da biste dodali neke članove, uredite grupu."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Spremanje kontakta..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Popis kontakata je prazan"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nema kontakata s tom oznakom"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Nema kontakata na ovom računu"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Popis kontakata je prazan"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Spremljeno: <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt je spremljen"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Prekinuta je veza kontakata"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Promjene kontakta nije moguće spremiti."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Razdvajanje kontakata nije uspjelo."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kontakt nije povezan."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Pogreška prilikom spremanja kontakta."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Promjene fotografije kontakta nisu spremljene."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Skupina spremljena."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Promjene grupe nije moguće spremiti."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontakt s telefonskim brojem</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakta s telefonskim brojem</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakata s telefonskim brojem</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nema kontakata s telefonskim brojevima"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> pronađeni</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> pronađena</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> pronađenih</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Promjene kontakta ne mogu se spremiti"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Prekid veze kontakta nije uspio"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontakt se ne može povezati"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Pogreška pri spremanju kontakta"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Promjene fotografije kontakta ne mogu se spremiti"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Oznaka se ne može učitati"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Oznaka je izbrisana"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Oznaka je izrađena"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Oznaka se ne može izraditi"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Oznaka je ažurirana"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Uklonjeno iz oznake"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodano u oznaku"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Promjene oznake ne mogu se spremiti"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"To oznaka već postoji"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Neki kontakti nemaju e-adresu."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Neki kontakti nemaju telefonske brojeve."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Slanje e-poruke"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Slanje poruke"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Odabir kontakata"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Slanje"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nema kontakata"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> pronađeni</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> pronađena</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> pronađenih</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Sve"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriti"</string>
-    <string name="callBack" msgid="5498224409038809224">"Povratni poziv"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Zovi ponovo"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Povratni poziv"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Dodati \"<xliff:g id="EMAIL">%s</xliff:g>\" kontaktima?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotografija kontakta"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> od <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakata"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nazivi vaših kontakata"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nije pronađena nijedna aplikacija koja može provesti ovu radnju."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknite za povratak na prethodni zaslon"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodajte telefonski broj"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Dodajte e-adresu"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nije pronađena nijedna aplikacija koja može provesti tu radnju."</string>
     <string name="menu_share" msgid="943789700636542260">"Podijeli"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Dodaj u kontakte"</string>
-    <string name="share_via" msgid="563121028023030093">"Dijeli kontakt putem"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Napravite skupinu pod računom"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Dodavanje"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Dijeljenje kontakata putem</item>
+      <item quantity="few">Dijeljenje kontakata putem</item>
+      <item quantity="other">Dijeljenje kontakata putem</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Odabir računa"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Izrada oznake"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Promjena naziva oznake"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Naziv oznake"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Naziv oznake"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Glasovni chat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videochat"</string>
-    <string name="connections" msgid="8098440723172028350">"Veze"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Dodaj vezu"</string>
-    <string name="recent" msgid="2659189233141493004">"Nedavni"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Nedavna ažuriranja"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> račun"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Iz ove aplikacije ne može se uređivati."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Na ovom uređaju ne može se uređivati"</string>
     <string name="take_photo" msgid="7496128293167402354">"Snimi fotografiju"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Snimi novu fotografiju"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Odaberi fotografiju"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Odaberite novu fotografiju"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Popis kontakata ažurira se."</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Odaberi novu fotografiju"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Pretraživanje..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Prikaži odabrano"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Pokaži sve"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Odaberi sve"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Poništi odabir svega"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Dodaj novo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Dodaj organizaciju"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Naziv grupe"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Promijeni"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primarna slika"</string>
-    <string name="description_star" msgid="2605854427360036550">"favorit"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Uredi kontakt"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Želite li povezati trenutačni kontakt s odabranim kontaktom?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Oznaka"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Odustani"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Natrag"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zatvaranje"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Prebaciti se na uređivanje odabranog kontakta? Informacije koje ste unijeli dosad kopirat će se."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiraj u Moje kontakte"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Dodaj u Moje kontakte"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Direktorij <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Prilagođeno"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Postavke"</string>
     <string name="menu_settings" msgid="377929915873428211">"Postavke"</string>
     <string name="menu_help" msgid="1680178646764069976">"Pomoć i povratne informacije"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opcije prikaza"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Broj telefona"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Dodaj kontaktima"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Dodavanje kontaktu"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Zatvori"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Uključi godinu"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Učitavanje..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Izradi novi kontakt"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodaj račun"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Uvezi kontakte"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Izrada nove grupe"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Izrada nove grupe"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> grupa</item>
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> grupe</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupa</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Izbrisati grupu \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Sami kontakti neće biti izbrisani.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> osoba iz grupe <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> osobe iz grupe <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> osoba iz grupe <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> osoba</item>
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> osobe</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> osoba</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Uvezi"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Izrada nove oznake…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Želite li izbrisati oznaku \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontakti se neće izbrisati.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Upišite ime kontakta da biste ga povezali s drugim kontaktom."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopiraj u međuspremnik"</string>
     <string name="set_default" msgid="4417505153468300351">"Postavi zadano"</string>
     <string name="clear_default" msgid="7193185801596678067">"Izbriši zadano"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Tekst kopiran"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Odbaciti promjene?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Odbaci"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Postavi moj profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Upišite ime osobe"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Naziv grupe"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Želite li odbaciti izmjene?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odbaci"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Odustani"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Želite li odbaciti prilagodbe?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Pretraživanje kontakata"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Uklanjanje kontakata"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Moj lokalni profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Moj <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profil"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Prikaz svih kontakata"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakti funkcioniraju bolje uz Google račun.\n\n• Pristupajte im iz bilo kojeg web-preglednika.\n• Stvorite sigurnosnu kopiju kontakata."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Očuvajte sigurnost svojih kontakata čak i ako izgubite telefon, sinkronizirajte ih mrežnom uslugom."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodajte račun"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Sigurnosna kopija novog kontakta neće biti napravljena. Želite li dodati račun za pravljenje sigurnosnih kopija kontakata na mreži?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Odvojite jednu minutu da biste dodali račun koji će na Googleu sigurnosno kopirati sve vaše kontakte."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novi kontakti spremat će se na račun <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Odaberite zadani račun za nove kontakte:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Dodaj novi kontakt"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Izrada novog kontakta"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Uredi kontakt"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Zadrži lokalno"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Samo za prikaz"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Odabir kontakta za uređivanje"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Povezani kontakti"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Dodaj"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Prekini vezu"</string>
     <string name="add_account" msgid="8201790677994503186">"Dodaj račun"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Dodaj novi račun"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Izvezi datoteke podatkovne baze"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"dodavanje novog kontakta"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Izradi novi kontakt"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Pokaži više"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Pokaži manje"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Pokaži sve"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Nedavno"</string>
     <string name="about_card_title" msgid="2920942314212825637">"O kartici"</string>
-    <string name="send_message" msgid="8938418965550543196">"Pošalji poruku"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Izrada osobne kopije..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Jučer"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Stvaranje osobne kopije..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Sutra"</string>
     <string name="today" msgid="8041090779381781781">"Danas"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Danas u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Sutra u <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Događaj bez naslova)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Postavi"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -277,100 +223,318 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Web-lokacija"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Događaj"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Odnos"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Račun"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Ime"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-adresa"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotografija"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliknite da bi se alat za uređivanje kontakta proširio."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknite da bi se alat za uređivanje kontakta sažeo."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"upute do lokacije"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedavni sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknite za odgovor"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedavni sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknite za odgovor"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"dolazno"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"odlazno"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"propušteno"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"nedavni poziv. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknite za uzvratni poziv"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"nedavni poziv. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknite za uzvratni poziv"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Vi: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funkcionira bolje kada unesete njegov identifikator osobe u polje e-adrese ili telefona."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Više polja"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Promijeni fotografiju"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Otvaranje alata za uređivanje nije uspjelo."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Spremanje na"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Trenutačno se sprema na <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dvaput dodirnite da biste odabrali neki drugi račun."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Povezani kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">Povezani kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Povezani kontakti (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Povezani kontakti (<xliff:g id="COUNT">%d</xliff:g>)"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Više polja"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Promjena fotografije kontakta"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Dodavanje fotografije kontakta"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Fotografija kontakta"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Otvaranje alata za uređivanje nije uspjelo."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Spremi na račun"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Inform. o kontaktu na računu <xliff:g id="ACCOUNT">%s</xliff:g> ne mogu se uređivati"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"POVEŽI KONTAKTE"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ODUSTANI"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> mogući duplikat</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> moguća duplikata</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mogućih duplikata</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> povezani kontakt</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> povezana kontakta</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> povezanih kontakata</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ovaj kontakt"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mogući duplikati"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Ti bi se kontakti mogli odnositi na istu osobu. Možete ih povezati u jedan kontakt."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Povezani kontakti"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"S vaših računa"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Snimi fotografiju"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Sve fotografije"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Odabir fotografije"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"S računa <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Izbriši <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Slika s računa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> nije odabrana"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Fotografija s računa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> odabrana"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Fotografija s nepoznatog računa nije odabrana"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Fotografija s nepoznatog računa odabrana"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Popis kontakata ažurira se tako da odražava promjene jezika.\n\nPričekajte..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj broj"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokiraj broj"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Dodaj broj ili potraži kontakt"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Želite li deblokirati <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKIRAJ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Želite li blokirati <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKIRAJ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blokiran"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> deblokiran"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Broj <xliff:g id="NUMBER">%1$s</xliff:g> nije važeći."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokiranje poziva privremeno isključeno"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Blokiranje poziva onemogućeno je jer ste kontaktirali hitne službe s ovog telefona u posljednjih 48 sati. Automatski će se ponovo omogućiti kada prođe 48 sati."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvezi"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Prikaži brojeve"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj broj"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokiranje poziva onemogućeno je na 48 sati"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Onemogućeno jer je upućen hitni poziv."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"PONIŠTI"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Broj <xliff:g id="NUMBER">%1$s</xliff:g> već je blokiran."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokiranje broja"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Pojedinosti o kontaktu <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz nije uspio"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Uvoz brojeva"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Da biste pretraživali kontakte, uključite dopuštenja za kontakte."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Uključi"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Prijedlozi"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Otvaranje ladice za navigaciju"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zatvaranje ladice za navigaciju"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Oznaka: <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Oznake"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Računi"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Pogledajte povijest SMS-a i kalendara"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Događaji i poruke"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Događaji"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Poruke"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Prijedlozi"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Neka vaši kontakti budu organizirani i korisni"</string>
+    <string name="undo" msgid="1425165101664071422">"Poništavanje"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Nazovite <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Nazovi kućni"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Nazovi mobitel"</string>
+    <string name="call_work" msgid="5328785911463744028">"Nazovi poslovni"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Nazovi poslovni faks"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Nazovi faks kod kuće"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Nazovi dojavljivač"</string>
+    <string name="call_other" msgid="8563753966926932052">"Pozovi"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Pozovi povratno"</string>
+    <string name="call_car" msgid="3280537320306436445">"Nazovi automobil"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Nazovi glavni u tvrtki"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Nazovi ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Pozovi glavni"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Pozovi faks"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Nazovi radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Nazovi teleks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Nazovi TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Nazovi poslovni mobitel"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Nazovi poslovni dojavljivač"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Nazovite <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Nazovi MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (poziv)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Pošaljite SMS na <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Poruka na kućni"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Poruka na mobitel"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Poruka na poslovni"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Poruka na poslovni faks"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Poruka na kućni faks"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Poruka na dojavljivač"</string>
+    <string name="sms_other" msgid="806127844607642331">"Tekst"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Poruka za povratni poziv"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Poruka u automobil"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Poruka na glavni u tvrtki"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Poruka na ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Poruka na glavni"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Poruka na faks"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Poruka na radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Poruka na teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Poruka za TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Poruka na poslovni mobitel"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Poruka na poslovni dojavljivač"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Poruka za <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Poruka na MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (poruka)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Uputi videopoziv"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Brisati podatke o čestim kontaktima?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Izbrisat ćete popis osoba s kojima često kontaktirate u aplikacijama Kontakti i Osobe, pa će aplikacije e-pošte morati ispočetka učiti vaše postavke adresiranja."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Brisanje često kontaktiranih..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Dostupan"</string>
+    <string name="status_away" msgid="1838861100379804730">"Odsutan"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Zauzet"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Drugo"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Direktorij"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Poslovni direktorij"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Svi kontakti"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Brzi kontakt za korisnika <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Bez imena)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Često kontaktirani"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Svi kontakti s telefonskim brojevima"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Poslovni kontakti"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Prikaži ažuriranja"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Uređaj"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Ime"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nadimak"</string>
+    <string name="name_given" msgid="4280790853455320619">"Ime"</string>
+    <string name="name_family" msgid="7466985689626017037">"Prezime"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefiks imena"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Srednje ime"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Sufiks imena"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Ime fonetski"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetski zapis imena"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetsko srednje ime"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetski zapis prezimena"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-pošta"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacija"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Odnos"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Poseban datum"</string>
+    <string name="sms" msgid="1756857139634224222">"Tekstualna poruka"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresa"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Tvrtka"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Naslov"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Bilješke"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Prilagođeno"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Web-lokacija"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Oznake"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-poruka na privatnu e-poštu"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-pošta na mobitel"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-pošta na poslovni"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-pošta"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Pošaljite e-poruku na <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-pošta"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Grad"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Država"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Poštanski broj"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Zemlja"</string>
+    <string name="map_home" msgid="1243547733423343982">"Prikaz kućne adrese"</string>
+    <string name="map_work" msgid="1360474076921878088">"Prikaži adresu na poslu"</string>
+    <string name="map_other" msgid="3817820803587012641">"Prikaz adrese"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Prikažite <xliff:g id="CUSTOM_LABEL">%s</xliff:g> adresu"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chatajte koristeći AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chatajte koristeći Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chatanje koristeći Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chatajte koristeći Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chatajte koristeći QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chatajte koristeći Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chatajte koristeći ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chatajte koristeći Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"izbriši"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Prikaži više polja s imenom"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Sažmi nazive polja"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Proširi polja fonetskih imena"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Sažmi polja fonetskih imena"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Proširi"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Sažmi"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Prošireno"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Sažeto"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Svi kontakti"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Sa zvjezdicom"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Prilagodi"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Svi ostali kontakti"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Svi kontakti"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Ukloni grupu sinkronizacije"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Dodaj grupu sinkroniziranja"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Više grupa..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Uklanjanje grupe \"<xliff:g id="GROUP">%s</xliff:g>\" iz sinkronizacije uklonit će i sve negrupirane kontakte iz sinkronizacije."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Spremanje opcija prikaza..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Prilagođeni prikaz"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Spremite uvezene kontakte na račun:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM kartica"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d kontakt</item>
+      <item quantity="few">%1$d kontakta</item>
+      <item quantity="other">%1$d kontakata</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontakta • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakata • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf datoteka"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nema ništa za uvoz"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Želite li uvesti kontakte s vCarda?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Otkazati uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Otkazati izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Uvoz/izvoz kartice vCard nije otkazan"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Nepoznata pogreška."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Datoteku \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" nije moguće otvoriti radi: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Alat za izvoz ne može se pokrenuti; razlog: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nema kontakata koji se mogu izvoziti."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Onemogućili ste obavezno dopuštenje."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Tijekom izvoza došlo je do pogreške zbog: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O pogreška"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nema dovoljno memorije. Datoteka je možda prevelika."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format nije podržan."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Završetak izvoza datoteke <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Dovršen je izvoz kontakata."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Dovršen je izvoz kontakata. Kliknite obavijest za dijeljenje kontakata."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Dodirnite za dijeljenje kontakata."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> otkazan je."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Izvoz podataka o kontaktu"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Podaci kontakata izvoze se."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Dohvaćanje podataka iz baze podataka nije uspjelo."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nema kontakata koji se mogu izvesti."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Sastavljač za vCard nije se ispravno pokrenuo."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Izvoz nije uspio"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Podaci o kontaktu nisu izvezeni.\nRazlog: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Uvoz <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Čitanje podataka vCarda nije uspjelo"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Završetak uvoza kartice vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> otkazan je"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Datoteka <xliff:g id="FILENAME">%s</xliff:g> uskoro će biti uvezena."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Datoteka će uskoro biti uvezena."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Zahtjev za uvoz formata vCard odbijen je. Pokušajte ponovo kasnije."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakti će se uskoro izvesti."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Zahtjev za izvoz formata vCard odbijen je. Pokušajte ponovo kasnije."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Spremanje vCard datoteka u predmemoriju za lokalnu privremenu pohranu. Stvarni uvoz uskoro će početi."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Uvoz vCard datoteke nije uspio."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt NFC-om"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Spremanje u predmemoriju"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Uvoz <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Izvoz u .vcf datoteku"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Poredano po"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetski zapis imena"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Uvijek prikaži"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Sakrij ako je prazno"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ime"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Prezime"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Oblik imena"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Najprije ime"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Najprije prezime"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Računi"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Zadani račun za nove kontakte"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Moje informacije"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Postavite svoj profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"O kontaktima"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Dijeljenje omiljenih kontakata"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Dijeljenje svih kontakata"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Dijeljenje kontakata nije uspjelo."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Izvoz kontakata"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Uvoz kontakata iz izvora"</string>
+    <string name="share_error" msgid="948429331673358107">"Ovaj kontakt nije moguće dijeliti."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nema kontakata za dijeljenje."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakti za prikaz"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakti za prikaz"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Prilagodba prikaza"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Spremanje"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Pretražite kontakte"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoriti"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Uvoz"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Izvoz"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokirani brojevi"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"preko izvora <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> preko izvora <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"zaustavi pretraživanje"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Brisanje pretraživanja"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Račun"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Uvijek upotrebljavaj za pozive"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Poziv uz bilješku"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Napišite bilješku koju ćete poslati uz poziv..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"POŠALJI I NAZOVI"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Međuverzija"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licence otvorenog koda"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Pojedinosti o licenci za softver otvorenog koda"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Pravila o privatnosti"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Uvjeti pružanja usluge"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licence otvorenog koda"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Otvaranje URL-a nije uspjelo."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> potvrđen"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> nije potvrđen"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Uputi videopoziv"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Izbriši"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Tri točke"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ovaj je prečac onemogućen"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt je uklonjen"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Uvezi"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Odabir kontakata"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Nema kontakata na vašoj SIM kartici"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt već postoji na vašem popisu"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">Uvezen je <xliff:g id="COUNT">%d</xliff:g> kontakt sa SIM-a</item>
+      <item quantity="few">Uvezena su <xliff:g id="COUNT">%d</xliff:g> kontakta sa SIM-a</item>
+      <item quantity="other">Uvezeno je <xliff:g id="COUNT">%d</xliff:g> kontakata sa SIM-a</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Uvoz kontakata sa SIM kartice nije uspio"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Uvoz sa SIM-a"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Odustani"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatska sinkronizacija je isključena. Dodirnite da biste je uključili."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Odbacivanje"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Sinkronizacija računa je isključena. Dodirnite da biste je uključili."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Želite li uključiti automatsku sinkronizaciju?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Izmjene koje unesete u aplikacije i na račune, ne samo na Google kontakte ažurirat će se na webu i vašim uređajima."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Uključi"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Nema veze"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Prikaži više"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Dovršen je uvoz SIM kartice"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Uvoz nije uspio"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Uvoz kontakata sa SIM kartice nije moguć"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Uvoz SIM kontakata"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index faffd44..35f0e44 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Névjegyek"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Névjegyek"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Névjegy megtekintése"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Névjegy szerkesztése"</string>
     <string name="contactsList" msgid="8661624236494819731">"Címtár"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Névjegy hozzáadása"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Névjegy"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Közvetlen tárcsázás"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Közvetlen üzenet"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Válasszon névjegyet a parancsikonhoz"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Válasszon telefonszámot a híváshoz"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Válasszon telefonszámot az üzenetküldéshez"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Névjegy kiválasztása"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Hozzáadás névjegyhez"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Névjegy kiválasztása"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Választás"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Új névjegy létrehozása"</string>
-    <string name="starredList" msgid="4817256136413959463">"Csillaggal megjelölt"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Gyakori"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Kedvencek"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Névjegy adatai"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Névjegy szerkesztése"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Névjegy létrehozása"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Csoport szerkesztése"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Csoport létrehozása"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Információ"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Frissítések"</string>
     <string name="searchHint" msgid="8482945356247760701">"Keresés a névjegyek között"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Névjegy megtekintése"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Hozzáadás a kedvencekhez"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Eltávolítás a kedvencek közül"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Eltávolítva a kedvencek közül"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Szerkesztés"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Törlés"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Fénykép lecserélése"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Kezdőképernyőre"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Ismerős hívása"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"SMS küldése ismerősnek"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Társítás megszüntetése"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Szerkesztés"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Törlés"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Névjegy hozzáadása"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Csoport hozzáadása"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Parancsikon létrehozása"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Szétválasztás"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Névjegyek eltávolítása"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Címke átnevezése"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Címke törlése"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Névjegy hozzáadása"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Névjegyek kiválasztása"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Névjegyek hozzáadása"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Eltávolítás a címkéről"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Címke létrehozása"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Szeretné több névjegyre szétbontani ezt a névjegyet?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Szétbontás"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Szétválasztás"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Szeretné menteni a végrehajtott módosításokat, és több névjeggyé szétbontani ezt a névjegyet?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Mentés és szétbontás"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Szeretné menteni a végrehajtott módosításokat, és társítani a kiválasztott névjegyet?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Mentés és társítás"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Társítás"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Összekapcsolás"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Szétválasztás"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Összekapcsolás"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Összek. névjegyek megtekintése"</string>
     <string name="menu_save" msgid="1727844363591825909">"Mentés"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Névjegyek társítása"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Válassza ki a névjegyet, amelyet a következővel szeretne társítani: <xliff:g id="NAME">%s</xliff:g>"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Az összes névjegy megjelenítése"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Javasolt névjegyek"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Összes névjegy"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> összekapcsolva"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Névkegyek társítva"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> törölve"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> és <xliff:g id="NAME_1">%2$s</xliff:g> törölve"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… törölve"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Névjegyek törölve.</item>
       <item quantity="one">Névjegy törölve.</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> névjegy</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> névjegy</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> névjegy · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> névjegy · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"A Google rendszeréből"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Innen: <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Csengőhang"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Minden hívás a hangpostára"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Az írásvédett fiókokból származó névjegyeket nem lehet törölni, de el lehet rejteni őket."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Elrejtés"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"A törlésre kijelölt névjegy több fiókból is tartalmaz információkat. Az írásvédett fiókokból származó információkat csak elrejti a rendszer, nem törli őket."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Társításhoz legalább két névjegyet kell kiválasztania."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Társítja a kiválasztott névjegyeket?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Társítás"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Átirányítás a hangpostára"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Átirányítás visszavonása"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"A névjegy írásvédett. Nem törölhető, de elrejtheti."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Névjegy elrejtése"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"A névjegyben szereplő írásvédett fiókok el lesznek rejtve, de a rendszer nem törli őket."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Törli ezt a névjegyet?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Törli a kijelölt névjegyeket?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Az írásvédett fiókokból származó névjegyeket nem lehet törölni, de el lehet rejteni őket."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"A névjegy törlésével több fiókból is töröl adatokat."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Törli ezt a névjegyet?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Törlés"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Módosítások elvetése"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"A névjegy nem létezik."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Névjegy hozzáadva a kezdőképernyőhöz"</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> hozzáadva a kezdőképernyőhöz"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Új névjegy létrehozása"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Új névjegy létrehozása"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Szervezet"</item>
-    <item msgid="7196592230748086755">"Jegyzet"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Nem állnak rendelkezésre képek a táblagépen."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Nincsenek elérhető képek a telefonon."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Nem állnak rendelkezésre képek az eszközön."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Ismerős fotója"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Egyéni címkenév"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Hívások közvetlen átirányítása a hangpostára"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Fénykép törlése"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nincsenek névjegyek"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nincsenek csoportok"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Csoportok létrehozásához szükség van egy fiókra."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Ebben a csoportban nincsenek személyek."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Felhasználók hozzáadásához szerkessze a csoportot."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Névjegy mentése..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"A névjegylista üres"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nincs ilyen címkéjű névjegy"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"A fiókban nincsenek névjegyek"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"A névjegylista üres"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Mentette a következőt: <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Névjegy elmentve"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Névjegyek szétválasztva"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Nem sikerült menteni a névjegymódosításokat."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Nem sikerült szétbontani a névjegyet."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Nem sikerült társítani a névjegyet."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Hiba történt a névjegy mentése során"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Nem sikerült menteni a névjegyfotó módosításait."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Csoport mentve."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Nem sikerült menteni a csoportmódosításokat."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> névjegy telefonszámmal</item>
-      <item quantity="one">1 névjegy telefonszámmal</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nincsenek telefonszámot is tartalmazó névjegyek"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> találat</item>
-      <item quantity="one">1 találat</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Nem sikerült menteni a névjegymódosításokat"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Nem sikerült leválasztani a névjegyet"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Nem sikerült társítani a névjegyet"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Hiba történt az ismerős mentése során"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Nem sikerült menteni a névjegyfotó módosításait"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Nem sikerült betölteni a címkét"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Címke törölve"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Címke létrehozva"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Nem hozhat létre címkét"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Címke frissítve"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Eltávolítva a címkéből"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Hozzáadva a címkéhez"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Nem sikerült menteni a címke változtatásait"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Már van ilyen címke"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Egyes névjegyekhez nem tartozik e-mail-cím."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Egyes névjegyekhez nem tartozik telefonszám."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"E-mail küldése"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Üzenet küldése"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Névjegyek kiválasztása"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Küldés"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nincsenek névjegyek"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> találat</item>
-      <item quantity="one">1 találat</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Összes"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Kedvencek"</string>
-    <string name="callBack" msgid="5498224409038809224">"Visszahívás"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Hívásismétlés"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Visszahívás"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Hozzáadja a(z) \"<xliff:g id="EMAIL">%s</xliff:g>\"címet a Címtárhoz?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotó a névjegyhez"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plusz"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g> névjegy"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Ismerősök nevei"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nincs megfelelő alkalmazás a művelet elvégzésére."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kattintással visszatér az előző képernyőre"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefonszám hozzáadása"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"E-mail cím hozzáadása"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"E-mail-cím hozzáadása"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nincs megfelelő alkalmazás a művelet elvégzéséhez."</string>
     <string name="menu_share" msgid="943789700636542260">"Megosztás"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Hozzáadás a névjegyekhez"</string>
-    <string name="share_via" msgid="563121028023030093">"Névjegy megosztása a következőn:"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Csoport létrehozása a fiókban"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Hozzáadás"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Névjegyek megosztása a következőn</item>
+      <item quantity="one">Névjegy megosztása a következőn</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Fiók kiválasztása"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Címke létrehozása"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Címke átnevezése"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Címke neve"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Címke neve"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Audiocsevegés"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videocsevegés"</string>
-    <string name="connections" msgid="8098440723172028350">"Kapcsolatok"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Kapcsolat hozzáadása"</string>
-    <string name="recent" msgid="2659189233141493004">"Legújabbak"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Legújabb frissítések"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> névjegy"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-fiók"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Nem szerkeszthető ezen alkalmazásból."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Nem szerkeszthető ezen a készüléken"</string>
     <string name="take_photo" msgid="7496128293167402354">"Fotó készítése"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Új fénykép készítése"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Fotó kiválasztása"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Új fotó kiválasztása"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Az ismerőslista frissítése folyamatban van."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Keresés..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Kiválasztottak megjelenítése"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Összes megjelenítése"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Összes kijelölése"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Összes kijelölés megszüntetése"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Új hozzáadása"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Szervezet hozzáadása"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dátum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Csoport neve"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Módosítás"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Elsődleges fotó"</string>
-    <string name="description_star" msgid="2605854427360036550">"kedvenc"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Névjegy szerkesztése"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Társítja a jelenlegi és a kijelölt névjegyet?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Címke"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Mégse"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Vissza"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"bezárás"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"A kiválasztott névjegy szerkesztésére vált? Az eddig beírt információk át lesznek másolva."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Másolás a saját névjegyeim közé"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Hozzáadás a Címtárhoz"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Mappa: <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Egyéni"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Beállítások"</string>
     <string name="menu_settings" msgid="377929915873428211">"Beállítások"</string>
     <string name="menu_help" msgid="1680178646764069976">"Súgó és visszajelzés"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Megjelenítési beállítások"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefonszám"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Hozzáadása a névjegyekhez"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Hozzáadás névjegyhez"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Bezárás"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Az év szerepeltetése"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Névjegy"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Betöltés..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Új névjegy létrehozása"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Fiók hozzáadása"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Névjegyek importálása"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Új csoport létrehozása"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Új csoport létrehozása"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> csoport</item>
-      <item quantity="one">1 csoport</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Törli a következő csoportot \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Maguk a névjegyek nem kerülnek törlésre.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> személy a(z) <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> csoportból</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> személy a(z) <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> csoportból</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> személy</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> személy</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importálás"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Új létrehozása…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Törli a következő címkét: <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Ezzel nem törli a névjegyeket.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Adja meg a névjegyhez tartozó nevet, mielőtt társítana egy másik névjegyet."</string>
     <string name="copy_text" msgid="3257145021583508761">"Másolás vágólapra"</string>
     <string name="set_default" msgid="4417505153468300351">"Beállítás alapértelmezettként"</string>
     <string name="clear_default" msgid="7193185801596678067">"Alapértelmezés törlése"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Másolt szöveg"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Elveti a módosításokat?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Elvetés"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> -- <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Saját profil beállítása"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Írja be a személy nevét"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Csoport neve"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Elveti a módosításokat?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Elvetés"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Mégse"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Elveti a személyre szabott elemeket?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Keresés a névjegyek között"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Névjegyek eltávolítása"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Helyi profilom"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilom"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Az összes névjegy megjelenítése"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"A Névjegyek alkalmazás jobban működik egy Google-fiókkal.\n\n• Bármilyen böngészőből elérheti.\n• Biztonsági másolatot készíthet névjegyeiről."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Tartsa névjegyeit biztonságban akkor is, ha elveszíti a telefont: szinkronizáljon egy online szolgáltatással."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Fiók hozzáadása"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Az új névjegyről nem készül biztonsági másolat. Hozzáad egy olyan fiókot, amelyik online biztonsági másolatot készít a névjegyekről?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Adjon hozzá egy fiókot, amellyel biztonsági mentést készíthet a névjegyeiről a Google rendszerében."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Az új névjegyek mentésének helye: <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Válasszon ki egy alapértelmezett fiókot az új névjegyek számára"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Névjegy hozzáadása"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Új névjegy"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Névjegy szerkesztése"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Tárolás helyben"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Csak olvasás"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Válassza ki a szerkeszteni kívánt névjegyet"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Összekapcsolt névjegyek"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Hozzáadás"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Szétválasztás"</string>
     <string name="add_account" msgid="8201790677994503186">"Fiók megadása"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Új fiók hozzáadása"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Adatbázisfájlok exportálása"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"új névjegy hozzáadása"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Új névjegy létrehozása"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Továbbiak"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Kevesebb megjelenítése"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Az összes megjelenítése"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Legutóbbiak"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Névjegy"</string>
-    <string name="send_message" msgid="8938418965550543196">"Üzenet küldése"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Személyes másolat létrehozása…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Tegnap"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Személyes másolat készítése..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Holnap"</string>
     <string name="today" msgid="8041090779381781781">"Ma"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Ma <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Holnap <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Névtelen esemény)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Beállítás"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Azonnali üzenetküldés"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Webhely"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Esemény"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Viszony"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Fiók"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Név"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fénykép"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kattintson a névjegyszerkesztő kibontásához."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kattintson a névjegyszerkesztő összecsukásához."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"útvonalterv a helyhez"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS a közelmúltban. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kattintson, ha választ szeretne küldeni"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS a közelmúltban. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kattintson, ha választ szeretne küldeni"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"bejövő"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"kimenő"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"nem fogadott"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"hívás a közelmúltban. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kattintson a visszahíváshoz"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"hívás a közelmúltban. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kattintson a visszahíváshoz"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Ön: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"A Hangouts jobban működik, ha a személy Hangouts-azonosítóját adja meg az e-mail vagy telefonszám mezőben."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"További mezők"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Fénykép lecserélése"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Nem sikerült megnyitni a szerkesztőt."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Mentés ide"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Jelenleg a(z) <xliff:g id="ACCOUNT_NAME">%s</xliff:g>fiókba menti a névjegyet. Koppintson duplán másik fiók kiválasztásához."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Társított névjegyek (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Társított névjegy</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> társított névjegy"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"További mezők"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Névjegyfotó lecserélése"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Névjegyfotó felvétele"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Névjegyfotó"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Nem sikerült megnyitni a szerkesztőt."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Mentés ide"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"A(z) <xliff:g id="ACCOUNT">%s</xliff:g> névjegyadatai nem szerkeszthetők"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"NÉVJEGYEK TÁRSÍTÁSA"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"MÉGSE"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> lehetséges ismétlődő névjegy</item>
-      <item quantity="one">1 lehetséges ismétlődő névjegy</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> társított névjegy</item>
-      <item quantity="one">1 társított névjegy</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ez a névjegy"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Lehetséges ismétlődések"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Lehet, hogy ezek a névjegyek ugyanahhoz a személyhez tartoznak. Lehetőség van a névjegyek egyesítésére."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Társított névjegyek"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Az Ön fiókjaiból"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Fotó készítése"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Az összes fotó"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Fotó kiválasztása"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Innen: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"A(z) <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> törlése"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"A(z) <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> törlése"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"A(z) <xliff:g id="DATA_KIND">%s</xliff:g> törlése"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"A következőtől származó fotó nincs kiválasztva: <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"A következőtől származó fotó kiválasztva: <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Az ismeretlen fiókból származó kép nincs kiválasztva"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Ismeretlen fiókból származó kép kiválasztva"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"A nyelv módosítása miatt folyamatban van a Címtár frissítése.\n\nKérjük, várjon..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Szám hozzáadása"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Szám tiltása"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Adjon meg egy számot, vagy keressen a névjegyek között"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Feloldja a következő szám tiltását: <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"TILTÁS FELOLDÁSA"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Letiltja a következő számot: <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"LETILTÁS"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"A következő szám letiltva: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"A következő szám tiltása feloldva: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"A(z) <xliff:g id="NUMBER">%1$s</xliff:g> érvénytelen."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Hívástiltás átmenetileg felfüggesztve"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Felfüggesztettük a hívások tiltását, mert az elmúlt 48 órában tárcsázta a segélyhívót erről a telefonról. A funkciót automatikusan újból engedélyezzük 48 óra elteltével."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importálás"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Számok megtekintése"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Szám hozzáadása"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"A hívások tiltása funkció kikapcsolva 48 órára"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Letiltva vészhívás miatt."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"VISSZAVONÁS"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"A következő szám már le van tiltva: <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Szám tiltásának feloldása"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> részletes adatai."</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Az importálás nem sikerült"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Számok importálása"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"A névjegyek kereséséhez adja meg a Névjegyek engedélyeket."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Engedélyezés"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Javaslatok"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Új"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Navigációs fiók kinyitása"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Navigációs fiók bezárása"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> címke"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Címkék"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Fiókok"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Az előzmények együttes megjelenítése"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Események és üzenetek"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Események"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Üzenetek"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Javaslatok"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Tartsa naprakészen és rendezetten a névjegyeket."</string>
+    <string name="undo" msgid="1425165101664071422">"Visszavonás"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Hívás: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Otthoni szám hívása"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Mobil hívása"</string>
+    <string name="call_work" msgid="5328785911463744028">"Munkahelyi telefon hívása"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Munkahelyi fax hívása"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Otthoni fax hívása"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Csipogó hívása"</string>
+    <string name="call_other" msgid="8563753966926932052">"Hívás"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Visszahívási szám hívása"</string>
+    <string name="call_car" msgid="3280537320306436445">"Gépkocsi hívása"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Céges fővonal hívása"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN-telefon hívása"</string>
+    <string name="call_main" msgid="6082900571803441339">"Fő telefonszám hívása"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Fax hívása"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Rádiótelefon hívása"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Telex hívása"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD-szám hívása"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Munkahelyi mobil hívása"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Munkahelyi csipogó hívása"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Hívás: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS-ben szereplő telefonszám hívása"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (hívás)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"SMS: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS küldése haza"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS küldése mobiltelefonra"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS küldése munkahelyi telefonra"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS küldése munkahelyi faxszámra"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS küldése otthoni faxszámra"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS küldése csipogóra"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS küldése"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS küldése visszahívandó számra"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS küldése gépkocsinak"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS küldése a céges fővonalra"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS küldése ISDN-telefonra"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS küldése fő telefonszámra"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"SMS küldése faxszámra"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS küldése rádiótelefonra"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS küldése telexre"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS küldése szöveges telefonra (TTY/TDD)"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS küldése munkahelyi mobilra"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS küldése munkahelyi csipogóra"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"SMS küldése ide: <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"SMS küldése MMS-ben szereplő számra"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (üzenet)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Videohívás kezdeményezése"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Törli a gyakran keresetteket?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Törölni fogja a gyakran keresett személyek listáját a Névjegyek és a Telefon alkalmazásban, és arra kényszeríti az e-mail alkalmazásokat, hogy elölről kezdjék az Ön címzési szokásainak megtanulását."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Gyakran keresettek törlése..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Elérhető"</string>
+    <string name="status_away" msgid="1838861100379804730">"Nincs a gépnél"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Elfoglalt"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Egyéb"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Mappa"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Munkahelyi névjegyek címtára"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Összes névjegy"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> gyors elérése"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Nincs név)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Gyakran keresett"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Minden névjegy telefonszámokkal"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Munkaprofilhoz tartozó névjegyek"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Frissítések"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Eszköz"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Név"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Becenév"</string>
+    <string name="name_given" msgid="4280790853455320619">"Utónév"</string>
+    <string name="name_family" msgid="7466985689626017037">"Családnév"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Név előtagja"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Második név"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Név utótagja"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Név fonetikusan"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Utónév fonetikusan"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Második utónév fonetikusan"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Családnév fonetikusan"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail cím"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Cím"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Azonnali üzenetküldés"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Szervezet"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Kapcsolat"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Különleges dátum"</string>
+    <string name="sms" msgid="1756857139634224222">"Szöveges üzenet"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Cím"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Cég"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Beosztás"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Jegyzetek"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Egyéni"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Webhely"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Címkék"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mail küldése haza"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-mail küldése mobiltelefonra"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mail küldése munkahelyi címre"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-mail küldése"</string>
+    <string name="email_custom" msgid="5536404237099078802">"E-mail: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-mail küldése"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Utca"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Település"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Állapot"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Irányítószám"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Ország"</string>
+    <string name="map_home" msgid="1243547733423343982">"Otthoni cím megtekintése"</string>
+    <string name="map_work" msgid="1360474076921878088">"Munkahelyi cím megtekintése"</string>
+    <string name="map_other" msgid="3817820803587012641">"Cím megtekintése"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> cím megtekintése"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Csevegés AIM-on"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Csevegés a Windows Live-on"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Csevegés a Yahoon"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Csevegés Skype használatával"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Csevegés a QQ-n"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Csevegés a Google Csevegő használatával"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Csevegés az ICQ-n"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Csevegés Jabberen"</string>
+    <string name="chat" msgid="9025361898797412245">"Csevegés"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"törlés"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"További névmezők megjelenítése"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Névmezők összecsukása"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"További fonetikusnév-mezők megjelenítése"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Fonetikusnév-mezők összecsukása"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Kibontás"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Összecsukás"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Kibontva"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Összecsukva"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Összes névjegy"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Csillaggal megjelölt"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Személyre szabás"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kapcsolat"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Az összes többi névjegy"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Összes névjegy"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Szinkronizálási csoport eltávolítása"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Szinkronizálási csoport hozzáadása"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"További csoportok..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Ha leállítja a(z) \"<xliff:g id="GROUP">%s</xliff:g>\" csoport szinkronizálását, ugyanez történik a nem csoportosított névjegyekkel is."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Megjelenítési beállítások mentése..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Személyre szabott nézet"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Importált névjegyek mentési helye:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-kártya"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM: <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d névjegy</item>
+      <item quantity="one">1 névjegy</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> névjegy • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> névjegy • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf-fájl"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nincs importálható névjegy"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importálja a vCard-névjegyeit?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Megszakítja <xliff:g id="FILENAME">%s</xliff:g> importálását?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Megszakítja <xliff:g id="FILENAME">%s</xliff:g> exportálását?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard imp./exp. megszakítása sikertelen"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Ismeretlen hiba."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"A(z) \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" fájl nem nyitható meg: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nem sikerült elindítani az exportálót: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nincs exportálható névjegy."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Letiltott egy szükséges engedélyt."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Hiba történt az exportálás során: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O hiba"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nincs elég memória. Lehet, hogy túl nagy a fájl."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"A formátum nem támogatott."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"A(z) <xliff:g id="FILENAME">%s</xliff:g> exportálása befejeződött."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"A névjegyek exportálása befejeződött."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Az exportálás befejeződött. A névjegyek megosztásához kattintson az értesítésre."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Koppintson rá a névjegyek megosztásához."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"A(z) <xliff:g id="FILENAME">%s</xliff:g> exportálása megszakítva."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Névjegyadatok exportálása"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"A névjegyadatok exportálása folyamatban van."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nem sikerült lekérni az adatbázis-információkat."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nincsenek exportálható névjegyek."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"A vCard-készítő nem megfelelően indult el."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Sikertelen export"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Nem sikerült a névjegyadatok exportálása.\nOk: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importálás - <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nem sikerült beolvasni a vCard adatait."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"A(z) <xliff:g id="FILENAME">%s</xliff:g> vCard importálása befejeződött"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"A(z) <xliff:g id="FILENAME">%s</xliff:g> importálása megszakítva"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"A(z) <xliff:g id="FILENAME">%s</xliff:g> hamarosan importálásra kerül."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"A fájl importálása hamarosan megtörténik."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"A vCard-importálási kérelem elutasítva. Próbálja újra később."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"A névjegyek exportálása hamarosan megtörténik."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"A vCard-exportálási kérelem elutasítva. Próbálja újra később."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kapcsolat"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard(ok) mentése az ideiglenes helyi tárolóba. A tényleges importálás hamarosan megkezdődik."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Nem sikerült a vCard importálása."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC-n kapott névjegy"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Gyorsítótárazás"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importálás - <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>/<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportálás .vcf fájlba"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Rendezés"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Név fonetikusan"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mindig látszik"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Elrejtés, ha üres"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Utónév"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Családnév"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Névformátum"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Utónév elöl"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Családnév elöl"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Fiókok"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Alapértelmezett fiók az új névjegyek számára"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Saját adatok"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Profil beállítása"</string>
+    <string name="setting_about" msgid="7014388749752042863">"A névjegyekről"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Kedvenc névjegyek megosztása"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Az összes névjegy megosztása"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Nem sikerült megosztani a névjegyeket."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Névjegyek exportálása"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Névjegyek importálása innen"</string>
+    <string name="share_error" msgid="948429331673358107">"Ez a névjegy nem osztható meg."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nincsenek megosztható névjegyek."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Megjelenítendő névjegyek"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Megjelenítendő névjegyek"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Nézet személyre szabása"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Mentés"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Névjegyek keresése"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Kedvencek"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importálás"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportálás"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Letiltott számok"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"- <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> - <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"keresés leállítása"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Keresés törlése"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Fiók"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Mindig ezt használja hívásokhoz"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Hívás üzenettel"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Írjon üzenetet, amelyet elküldhetünk a hívással együtt…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"KÜLDÉS és HÍVÁS"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="LIMIT">%2$s</xliff:g>/<xliff:g id="COUNT">%1$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Build verziószáma"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Nyílt forráskódú licencek"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"A nyílt forráskódú szoftverekhez kapcsolódó licenc részletei"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Adatvédelmi irányelvek"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Általános Szerződési Feltételek"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Nyílt forráskódú licencek"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Nem sikerült megnyitni az URL-címet."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"A(z) <xliff:g id="ACCOUNT_INFO">%s</xliff:g> kiválasztva"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"A(z) <xliff:g id="ACCOUNT_INFO">%s</xliff:g> nincs kiválasztva"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Videohívás indítása"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Törlés"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Három pont"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> perc, <xliff:g id="SECONDS">%2$s</xliff:g> mp"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> óra, <xliff:g id="MINUTES_1">%2$s</xliff:g> perc, <xliff:g id="SECONDS">%3$s</xliff:g> mp"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"A parancsikon le van tiltva"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Névjegy eltávolítva"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importálás"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Névjegyek kiválasztása"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Nincsenek névjegyek a SIM-kártyán."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"A névjegy már szerepel a listában."</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-névjegy importálva</item>
+      <item quantity="one">1 SIM-névjegy importálva</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Nem sikerült importálni a SIM-névjegyeket."</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importálás SIM-kártyáról"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Mégse"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Az automatikus szinkronizálás ki van kapcsolva. Koppintson a bekapcsolásához."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Elvetés"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"A fiókszinkronizálás ki van kapcsolva. Koppintson a bekapcsolásához."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Bekapcsolja az automatikus szinkronizálást?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Az alkalmazásokban és fiókokban (nem csak a Névjegyek szolgáltatásban) végrehajtott módosítások szinkronizálva lesznek az internetes felület és az eszközei között."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Engedélyezés"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Nincs kapcsolat"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Több megjelenítése"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"A SIM-kártya importálása befejeződött"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Sikertelen importálás"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nem sikerült importálni a névjegyeket a SIM-kártyáról"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM-kártya importálása folyamatban"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
deleted file mode 100644
index f32ebcd..0000000
--- a/res/values-hy-rAM/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Կոնտակտներ"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Կոնտակտներ"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Դիտել կոնտակտը"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Խմբագրել կոնտակտը"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Կոնտակտներ"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Կոնտակտ"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Ուղիղ համարհավաքում"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Ուղիղ հաղորդագրություն"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Ընտրել կոնտակտի դյուրանցումը"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Ընտրել զանգելու համարը"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Ընտրել համարը՝ հաղորդագրելու համար"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Ավելացնել կոնտակտին"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Ընտրել կոնտակտ"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Ստեղծել նոր կոնտակտ"</string>
-    <string name="starredList" msgid="4817256136413959463">"Աստղանշված"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Հաճախակի"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Ընտրյալներ"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Մանրամասներ կոնտակտի մասին"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Խմբագրել կոնտակտը"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Ստեղծել կոնտակտ"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Խմբագրել խումբը"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Ստեղծել խումբ"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Տեղեկատվություն"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Թարմացումները"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Որոնել կոնտակտներ"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Դիտել կոնտակտը"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Ավելացնել ընտրյալներում"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Հեռացնել ընտրյալներից"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Հեռացված է ընտրյալներից"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Ավելացված է ընտրյալներում"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Խմբագրել"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Ջնջել"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Փոխել լուսանկարը"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Տեղադրել գլխավոր էկրանին"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Զանգել կոնտակտին"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Հաղորդագրել կոնտակտին"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Հղման չեղարկում"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Խմբագրել"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Ջնջել"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Ավելացնել կոնտակտ"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Ավելացնել խումբ"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Տրոհե՞լ այս կոնտակտը մի քանի կոնտակտների:"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Տրոհել"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Պահե՞լ արդեն իսկ կատարված փոփոխությունները և տրոհել այս կոնտակտը մի քանի կոնտակտների:"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Պահել և տրոհել"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Պահե՞լ արդեն իսկ կատարված փոփոխությունները և կապել ընտրված կոնտակտի հետ:"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Պահել և կապել"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Հղում"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Պահել"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Կապել կոնտակտները"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Ընտրեք կոնտակտը, որը ցանկանում եք կապել <xliff:g id="NAME">%s</xliff:g>-ին՝"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Ցույց տալ բոլոր կոնտակտները"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Առաջարկվող կոնտակները"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Բոլոր կոնտակտները"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Հղված կոնտակտները"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">Կոնտակտները ջնջվեցին</item>
-      <item quantity="other">Կոնտակտները ջնջվեցին</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Կարգավորել զանգերանգը"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Բոլոր զանգերը՝ ձայնային փոստին"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Ձեր միայն կարդալու հաշիվների կոնտակտները չեն կարող ջնջվել, սակայն կարող են թաքցվել:"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Թաքցնել"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Ջնջվող կոնտակտը պարունակում են տվյալներ մի քանի հաշիվներից: Միայն կարդալու հաշիվների տվյալները կթաքցվեն, սակայն չեն ջնջվի:"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Հղելու համար հարկավոր է ընտրել առնվազն երկու կոնտակտ:"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Կապե՞լ ընտրված կոնտակտները:"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Կապել"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Ջնջե՞լ այս կոնտակտը:"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Ջնջե՞լ ընտրված կոնտակտները:"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Ձեր միայն կարդալու հաշիվների կոնտակտները չեն կարող ջնջվել, սակայն կարող են թաքցվել:"</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Ջնջվող կոնտակտները պարունակում են տվյալներ մի քանի հաշիվներից: Միայն կարդալու հաշիվների տվյալները կթաքցվեն, սակայն չեն ջնջվի:"</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Եթե ջնջեք այս կոնտակտը, կջնջվեն մի քանի հաշիվների տվյալներ:"</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Ջնջե՞լ այս կոնտակտը:"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Ջնջել"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Հրաժարվել փոփոխություններից"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Կոնտակտը գոյություն չունի:"</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Կոնտակտն ավելացվեց Հիմնական էկրանում:"</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> կոնտակտն ավելացվեց Հիմնական էկրանում:"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Ստեղծել նոր կոնտակտ"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Ստեղծել նոր կոնտակտ"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Կազմակերպություն"</item>
-    <item msgid="7196592230748086755">"Նշում"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Գրասալիկի վրա հասանելի նկարներ չկան:"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Հեռախոսում մատչելի լուսանկարներ չկան:"</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Կոնտակտի լուսանկարը"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Պիտակի հատուկ անունը"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Ուղարկել զանգերը անմիջապես ձայնային փոստին"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Հեռացնել լուսանկարը"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Կոնտակտներ չկան"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Խմբեր չկան:"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Խմբեր ստեղծելու համար դուք պետք է հաշիվ ունենաք:"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Այս խմբում ոչ ոք չկա:"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Խմբագրեք` խմբին անդամ ավելացնելու համար:"</string>
-    <string name="savingContact" msgid="4075751076741924939">"Կոնտակտի պահվում է..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Կոնտակտը պահվեց"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Կոնտակտներն անջատվեցին"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Հնարավոր չէ պահել կոնտակտային փոփոխությունները:"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Չհաջողվեց անջատել կոնտակտը:"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Չհաջողվեց կապել կոնտակտը:"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Չհաջողվեց պահել կոնտակտը:"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Չհաջողվեց պահել կոնտակտի լուսանկարի փոփոխությունները:"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Խումբը պահվեց:"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Հնարավոր չէ պահել խմբի փոփոխությունները:"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> հեռախոսահամարով կոնտակտ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> հեռախոսահամարով կոնտակտ</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Հեռախոսահամարներով կոնտակտներ չկան"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one">Գտնվել է <xliff:g id="COUNT">%d</xliff:g> կոնտակտ</item>
-      <item quantity="other">Գտնվել է <xliff:g id="COUNT">%d</xliff:g> կոնտակտ</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Կոտնակտներ չկան"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one">Գտնվել է <xliff:g id="COUNT">%d</xliff:g> կոնտակտ</item>
-      <item quantity="other">Գտնվել է <xliff:g id="COUNT">%d</xliff:g> կոնտակտ</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Բոլորը"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Ընտրանի"</string>
-    <string name="callBack" msgid="5498224409038809224">"Հետ զանգել"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Կրկին զանգել"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Հետ զանգել"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Ավելացնե՞լ «<xliff:g id="EMAIL">%s</xliff:g>»-ը կոնտակտներին:"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"կոնտակտի լուսանկարը"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"գումարել"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>-ը <xliff:g id="TOTAL_NUMBER">%s</xliff:g> կոնտակտից"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Ձեր կոնտակտների անունները"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Այս գործողությունը կատարելու համար ոչ մի ծրագիր չի գտնվել:"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Սեղմեք՝ նախորդ էկրանին վերադառնալու համար"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ավելացնել հեռախոսահամար"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Ավելացնել էլփոստ"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Այս գործողությունը կատարելու համար ոչ մի ծրագիր չի գտնվել:"</string>
-    <string name="menu_share" msgid="943789700636542260">"Տարածել"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Ավելացնել կոնտակտներում"</string>
-    <string name="share_via" msgid="563121028023030093">"Տարածել կոնտակտը"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Ստեղծել խումբ հաշվի ներքևում"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Ձայնային զրույց"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Տեսազրույց"</string>
-    <string name="connections" msgid="8098440723172028350">"Կապեր"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Ավելացնել կապ"</string>
-    <string name="recent" msgid="2659189233141493004">"Վերջին"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Վերջին թարմացումները"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> կոնտակտ"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> հաշիվ"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Ենթակա չէ խմբագրման այս ծրագրով:"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Խմբագրելի չէ այս սարքից:"</string>
-    <string name="take_photo" msgid="7496128293167402354">"Լուսանկարել"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Լուսանկարել նորը"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Ընտրել լուսանկար"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Ընտրել նոր լուսանկար"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Կոնտակտների ցանկը թարմացվում է:"</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Որոնում..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Ցույց տալ ընտրվածները"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Ցուցադրել բոլորը"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Ընտրել բոլորը"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Ապանշել բոլորը"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Ավելացնել նորը"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Ավելացնել կազմակերպություն"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Ամսաթիվը"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Խմբի անունը"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Փոխել"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Հիմնական լուսանկար"</string>
-    <string name="description_star" msgid="2605854427360036550">"ընտրյալ"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Խմբագրել կոնտակտը"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Կապե՞լ այս կոնտակտը ընտրված կոնտակտի հետ:"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Փոխարկե՞լ ընտրված կոնտակտի խմբագրմանը: Մինչ այս պահը ձեր մուտքագրած տեղեկությունները կպատճենվեն:"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Պատճենել Իմ կոնտակտներում"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Ավելացնել Իմ կոնտակտներին"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> գրացուցակ"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Հատուկ"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Կարգավորումներ"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Կարգավորումներ"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Օգնություն և հետադարձ կապ"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Ցուցադրման ընտրանքներ"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Հեռախոսահամար"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Ավելացնել կոնտակտներում"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Ավելացնել կոնտակտին"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Փակել"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Ներառել տարին"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Կոնտակտ"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Բեռնում..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Ստեղծել նոր կոնտակտ"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Ավելացնել հաշիվ"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Ներմուծել կոնտակտներ"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Ստեղծել նոր խումբ"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Ստեղծել նոր խումբ"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> խումբ</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> խումբ</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Ջնջե՞լ «<xliff:g id="GROUP_LABEL">%1$s</xliff:g>» խումբը: (Կոնտակտները չեն ջնջվի:)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> մարդ <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>-ից</item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> մարդ <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>-ից</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> մարդ</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> մարդ</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Մուտքագրեք կոնտակտի անունը՝ մեկ ուրիշի հետ կապելուց առաջ:"</string>
-    <string name="copy_text" msgid="3257145021583508761">"Պատճենել սեղմատախտակին"</string>
-    <string name="set_default" msgid="4417505153468300351">"Սահմանել լռելյայն"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Մաքրել լռելյայն"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Տեքսը պատճենված է"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Հրաժարվե՞լ ձեր փոփոխություններից"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Անտեսել"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Կարգավորել իմ պրոֆիլը"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Մուտքագրեք անձի անունը"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Խմբի անունը"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Իմ տեղային պրոֆիլը"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Իմ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> պրոֆիլը"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Ցուցադրվում են բոլոր կոնտակտները"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Կոնտակտների հավելվածն ավելի լավ է աշխատում Google հաշվի հետ:\n\n• Մուտք գործեք ցանկացած վեբ դիտարկիչով:\n• Պահուստավորեք ձեր կոնտակտներն ապահով ճանապարհով:"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Պահեք ձեր կոնտակտները ապահով, նույնիսկ եթե կորցնեք ձեր հեռախոսը. համաժամեցրեք առցանց ծառայության հետ:"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Ավելացնել հաշիվ"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Ձեր նոր կոնտակտը չի պահուստավորվի: Ավելացնե՞լ հաշիվ, որն առցանց է պահուստավորում կոնտակտները:"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Նոր կոնտակտները կպահվեն <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> հաշվում:"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Ընտրեք կանխադրված հաշիվ նոր կոնտակտների համար՝"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Ավելացնել կոնտակտ"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Փոփոխել կոնտակտը"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Պահել տեղային"</string>
-    <string name="add_account" msgid="8201790677994503186">"Ավելացնել հաշիվ"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Ավելացնել նոր հաշիվ"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Արտահանել տվյալների շտեմարանի ֆայլերը"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ավելացնել նոր կոնտակտ"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Տեսնել ավելին"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Տեսնել պակաս"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Տեսնել բոլորը"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Վերջին գործողությունները"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Տեղեկատվություն"</string>
-    <string name="send_message" msgid="8938418965550543196">"Ուղարկել հաղորդագրություն"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Ստեղծվում է անձնական պատճենը..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Երեկ"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Վաղը"</string>
-    <string name="today" msgid="8041090779381781781">"Այսօր"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Այսօր՝ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Վաղը՝ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Անվերնագիր միջոցառում)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Սահմանել"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Կազմակերպություն"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Մականուն"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Գրառում"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Վեբկայք"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Միջոցառում"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Հարաբերություն"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Հաշիվ"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Անուն"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"Էլփոստի հասցե"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Հեռախոս"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Լուսանկար"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Սեղմեք՝ կոնտակտների խմբագրիչը ընդարձակելու համար:"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Սեղմեք՝ կոնտակտների խմբագրիչը կոծկելու համար:"</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"Երթուղիներ"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"վերջին SMS-ը՝ <xliff:g id="MESSAGE_BODY">%s</xliff:g>, <xliff:g id="PHONE_NUMBER">%s</xliff:g>, <xliff:g id="DATE">%s</xliff:g>, սեղմեք՝ պատասխանելու համար"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"մուտքային"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ելքային"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"բաց թողնված"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"վերջին զանգը՝ <xliff:g id="CALL_TYPE">%s</xliff:g>, <xliff:g id="PHONE_NUMBER">%s</xliff:g>, <xliff:g id="DATE">%s</xliff:g>, սեղմեք՝ հետ զանգելու համար"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Դուք՝ <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts-ն ավելի լավ կաշխատի, եթե էլփոստի կամ հեռախոսի դաշտում մուտքագրեք Hangouts-ի օգտվողի նույնացուցիչը:"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Լրացուցիչ դաշտեր"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Փոխել լուսանկարը"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Չհաջողվեց բացել խմբագրիչը:"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Պահվում է հետևյալ հաշվում՝"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Ներկայումս պահվում է <xliff:g id="ACCOUNT_NAME">%s</xliff:g> հաշվում: Կրկնակի հպեք՝ մեկ այլ հաշիվ ընտրելու համար:"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Կապված կոնտակտներ (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Կապված կոնտակտներ (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> կապված կոնտակտ"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ԿԱՊԵԼ ԿՈՆՏԱԿՏՆԵՐԸ"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ՉԵՂԱՐԿԵԼ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> հնարավոր կրկնօրինակ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> հնարավոր կրկնօրինակ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> կապված կոնտակտ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> կապված կոնտակտ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Այս կոնտակտը"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Հնարավոր կրկնօրինակներ"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Այս կոնտակտները կարող են վերաբերել միևնույն մարդուն: Կարող եք դրանք կապել միմյանց և ստեղծել մեկ կոնտակտ:"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Հղված կոնտակտներ"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Ձեր հաշիվներից"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Լուսանկարել"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Բոլոր լուսանկարները"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Ընտրել լուսանկար"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> հաշվից"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Ջնջել <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Ջնջել <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> հաշվի լուսանկարը չի նշվել"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> հաշվի լուսանկարը նշվել է"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Անհայտ հաշվից լուսանկարն ընտրված չէ"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Անհայտ հաշվից լուսանկարն ընտրված է"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Կոնտակտների ցանկը թարմացվում է` լեզվի փոփոխությունները արտացոլելու համար:\n \nԽնդրում ենք սպասել..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Ավելացնել համար"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Արգելափակել համարը"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Ավելացրեք համար/որոնեք կոնտակտներ"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Արգելաբացե՞լ <xliff:g id="NUMBER">%1$s</xliff:g> համարը:"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ԱՐԳԵԼԱԲԱՑԵԼ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Արգելափակե՞լ <xliff:g id="NUMBER">%1$s</xliff:g> համարը:"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ԱՐԳԵԼԱՓԱԿԵԼ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Արգելափակվել է <xliff:g id="NUMBER">%1$s</xliff:g> համար"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Արգելաբացվել է <xliff:g id="NUMBER">%1$s</xliff:g> համար"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> համարը սխալ է:"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Զանգերի արգելափակումը կասեցվել է"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Զանգերի արգելափակումը կասեցվել է, քանի որ վերջին 48 ժամվա ընթացքում դուք այս հեռախոսից զանգել եք արտակարգ իրավիճակների ծառայություններին: 48 ժամ տևողությամբ ժամանակահատվածի ավարտից հետո այն ավտոմատ կերպով կվերամիացվի:"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Ներմուծում"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Կոնտակտների թիվը"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Ավելացնել համար"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Զանգերի արգելափակումն անջատվել է 48 ժամով"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Անջատվել է, քանի որ կատարվել է արտակարգ իրավիճակների զանգ:"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ՀԵՏԱՐԿԵԼ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> համարն արդեն արգելափակված է:"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Արգելաբացել համարը"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ի կոնտակտային տվյալները"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ներմուծումը չհաջողվեց"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Ներմուծել համարները"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Միացնել"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
new file mode 100644
index 0000000..e8d2033
--- /dev/null
+++ b/res/values-hy/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Կոնտակտներ"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Կոնտակտներ"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Ավելացնել կնոտակտ"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Կոնտակտ"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Ուղիղ համարհավաքում"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Ուղիղ հաղորդագրություն"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Կոնտակտի ընտրում"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Ավելացնել կոնտակտին"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Ընտրել կոնտակտ"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Ընտրել"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Ստեղծել նոր կոնտակտ"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Կոնտակտների որոնում"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Ավելացնել ընտրյալներում"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Հեռացնել ընտրյալներից"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Հեռացված է ընտրյալներից"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Ավելացված է ընտրյալներում"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Փոփոխել"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Ջնջել"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Փոխել լուսանկարը"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Ստեղծել դյուրանցում"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Միավորման չեղարկում"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Հեռացնել կոնտակտները"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Վերանվանել պիտակը"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Ջնջել պիտակը"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Ավելացնել կոնտակտ"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Ընտրեք կոնտակտներ"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Ավելացնել կոնտակտներ"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Հեռացնել պիտակից"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Ստեղծել պիտակ"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Տրոհե՞լ այս կոնտակտը մի քանի կոնտակտների:"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Տրոհել"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Պահե՞լ արդեն իսկ կատարված փոփոխությունները և տրոհել այս կոնտակտը մի քանի կոնտակտների:"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Պահել և տրոհել"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Պահե՞լ արդեն իսկ կատարված փոփոխությունները և միակցել ընտրված կոնտակտի հետ:"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Պահել և միակցել"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Կցում"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Ապակցում"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Միակցել"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Դիտել միակցված կոնտակտները"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Պահել"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Միակցել կոնտակտները"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Ընտրեք կոնտակտը, որը ցանկանում եք միակցել <xliff:g id="NAME">%s</xliff:g>-ի հետ՝"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Առաջարկվող կոնտակները"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Բոլոր կոնտակտները"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> կոնտակտը կցվեց"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Կոնտակտները միավորված են"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> կոնտակտը ջնջվեց"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> և <xliff:g id="NAME_1">%2$s</xliff:g> կոնտակտները ջնջվեցին"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… ջնջվեցին"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">Կոնտակտները ջնջվեցին</item>
+      <item quantity="other">Կոնտակտները ջնջվեցին</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> contacts</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> կոնտակտ</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> կոնտակտ · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google-ից"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> հաշվից"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Ընտրել զանգերանգ"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Ուղարկել ձայնային փոստին"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Չուղարկել ձայնային փոստին"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Սա միայն կարդալու կոնտակտ է: Այն չեք կարող ջնջել, սակայն կարող եք թաքցնել:"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Թաքցնել կոնտակտը"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Այս հաշվի միայն կարդալու թույլտվությամբ կոնտակտները կթաքցվեն (չեն ջնջվի):"</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Ջնջե՞լ այս կոնտակտը:"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Ջնջե՞լ ընտրված կոնտակտները:"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Ձեր միայն կարդալու հաշիվների կոնտակտները չեն կարող ջնջվել, սակայն կարող են թաքցվել:"</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Ջնջվող կոնտակտները պարունակում են տվյալներ մի քանի հաշիվներից: Միայն կարդալու հաշիվների տվյալները կթաքցվեն, սակայն չեն ջնջվի:"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Եթե ջնջեք այս կոնտակտը, կջնջվեն տվյալներ մի քանի հաշիվներից։"</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Ջնջե՞լ այս կոնտակտը:"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Ջնջել"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Կոնտակտը գոյություն չունի:"</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Կոնտակտն ավելացվեց հիմնական էկրանին:"</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> կոնտակտն ավելացվեց հիմնական էկրանին:"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Սարքում հասանելի լուսանկարներ չկան:"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Կոնտակտի լուսանկարը"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Հատուկ պիտակի անունը"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Հեռացնել լուսանկարը"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Կոնտակտների ցանկը դատարկ է"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Այս պիտակով կոնտակտներ չկան"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Այս հաշվում կոնտակտներ չկան"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Կոնտակտների ցանկը դատարկ է"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> կոնտակտը պահվեց"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Կոնտակտը պահվեց"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Կոնտակտները ապակցվեցին"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Չհաջողվեց պահել կոնտակտի տվյալների փոփոխությունները"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Չհաջողվեց անջատել կոնտակտը"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Չհաջողվեց կապել կոնտակտը"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Չհաջողվեց պահել կոնտակտը"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Չհաջողվեց պահել կոնտակտի լուսանկարի փոփոխությունները"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Չհաջողվեց բեռնել պիտակը"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Պիտակը ջնջվեց"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Պիտակը ստեղծվեց"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Չհաջողվեց պիտակ ստեղծել"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Պիտակը թարմացվեց"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Հեռացվել է պիտակից"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Ավելացվեց պիտակին"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Չհաջողվեց պահել պիտակի փոփոխությունները"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Այս անունով խումբ արդեն կա"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Որոշ կոնտակտներ էլփոստի հասցե չունեն:"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Որոշ կոնտակտներ հեռախոսահամար չունեն:"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Ուղարկել նամակ"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Ուղարկել հաղորդագրություն"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Ընտրեք կոնտակտներ"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Ուղարկել"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Կոտնակտներ չկան"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Ավելացնե՞լ «<xliff:g id="EMAIL">%s</xliff:g>»-ը կոնտակտներին:"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Ձեր կոնտակտների անունները"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Սեղմեք՝ նախորդ էկրանին վերադառնալու համար"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ավելացնել հեռախոսահամար"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Ավելացնել էլփոստ"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Այս գործողությունը կատարելու համար ոչ մի ծրագիր չի գտնվել:"</string>
+    <string name="menu_share" msgid="943789700636542260">"Կիսվել"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Ավելացնել կոնտակտներում"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Ավելացնել"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Share contacts via</item>
+      <item quantity="other">Ուղարկել կոնտակտները հետևյալով՝</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Ընտրեք հաշիվը"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Պիտակի ստեղծում"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Պիտակի վերանվանում"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Պիտակի անունը"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Պիտակի անունը"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Ձայնային զրույց"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Տեսազրույց"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> կոնտակտ"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> հաշիվ"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Լուսանկարել"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Լուսանկարել"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Ընտրել լուսանկար"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Ընտրել նոր լուսանկար"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Որոնում..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Ամսաթիվը"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Պիտակ"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Չեղարկել"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Հետ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"փակել"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Խմբագրե՞լ ընտրված կոնտակտը: Մինչ այս պահը ձեր մուտքագրած տեղեկությունները կպատճենվեն:"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> գրացուցակ"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Կարգավորումներ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Կարգավորումներ"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Օգնություն և հետադարձ կապ"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Հեռախոսահամար"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Ավելացնել կոնտակտներում"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Փակել"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Ներառել տարին"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Ավելացնել հաշիվ"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Ներմուծել"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Ստեղծել նոր…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Ջնջե՞լ «<xliff:g id="GROUP_LABEL">%1$s</xliff:g>» պիտակը (կոնտակտները չեն ջնջվի):"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Մուտքագրեք կոնտակտի անունը՝ մեկ ուրիշի հետ միավերլուց առաջ:"</string>
+    <string name="copy_text" msgid="3257145021583508761">"Պատճենել սեղմատախտակին"</string>
+    <string name="set_default" msgid="4417505153468300351">"Սահմանել ըստ կանխադրման"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Մաքրել լռելյայն"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Տեքսը պատճենված է"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Չեղարկե՞լ փոփոխությունները:"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Անտեսել"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Չեղարկել"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Չեղարկե՞լ փոփոխությունները:"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Որոնեք կոնտակտներ"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Կոնտակտների ջնջում"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Իմ տեղային պրոֆիլը"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Իմ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> պրոֆիլը"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Ավելացրեք հաշիվ, որի միջոցով ձեր կոնտակտները կպահուստավորվեն Google-ում:"</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Նոր կոնտակտները կպահվեն <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> հաշվում:"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Ընտրեք կանխադրված հաշիվ նոր կոնտակտների համար՝"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Նոր կոնտակտ"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Փոփոխել կոնտակտը"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Միայն դիտում"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Ընտրեք կոնտակտ՝ խմբագրելու համար"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Միակցված կոնտակտներ"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Ավելացնել"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Ապակցել"</string>
+    <string name="add_account" msgid="8201790677994503186">"Ավելացնել հաշիվ"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Ավելացնել նոր հաշիվ"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Արտահանել տվյալների շտեմարանի ֆայլերը"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Ստեղծել նոր կոնտակտ"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Տեսնել ավելին"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Կոծկել"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Վերջին գործողությունները"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Տեղեկատվություն"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Ստեղծվում է անձնական պատճենը..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Վաղը"</string>
+    <string name="today" msgid="8041090779381781781">"Այսօր"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Այսօր՝ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Վաղը՝ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Անվերնագիր միջոցառում)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Հաստատել"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Կազմակերպություն"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Մականուն"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Գրառում"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Վեբկայք"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Միջոցառում"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Հարաբերություն"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Անուն"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Էլփոստի հասցե"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Հեռախոս"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"Երթուղիներ"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"վերջին SMS-ը՝ <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>, <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>, <xliff:g id="DATE">%3$s</xliff:g>, սեղմեք՝ պատասխանելու համար"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"մուտքային"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ելքային"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"բաց թողնված"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"վերջին զանգը՝ <xliff:g id="CALL_TYPE">%1$s</xliff:g>, <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>, <xliff:g id="DATE">%3$s</xliff:g>, սեղմեք՝ հետ զանգելու համար"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Դուք՝ <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Լրացուցիչ դաշտեր"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Փոխել կոնտակտի լուսանկարը"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Ավելացնել կոնտակտի լուսանկարը"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Կոնտակտի լուսանկարը"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Չհաջողվեց բացել խմբագրիչը:"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Պահվում է այստեղ՝"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> հաշվի կոնտակտային տվյալները ենթակա չեն փոփոխման:"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ՄԻԱԿՑԵԼ ԿՈՆՏԱԿՏՆԵՐԸ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ՉԵՂԱՐԿԵԼ"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Այս կոնտակտը"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Հնարավոր կրկնօրինակներ"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Այս կոնտակտները հնարավոր է միևնույն մարդու կոնտակտներ են։ Կարող եք դրանք միակցել և ստեղծել մեկ կոնտակտ։"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Ջնջել <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Ջնջել <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Առաջարկներ"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Նոր"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Բացել նավարկման դարակը"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Փակել նավարկման դարակը"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> պիտակ"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Պիտակներ"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Հաշիվներ"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Ցուցադրել միավորված պատմությունը"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Իրադարձություններ և հաղորդագրություններ"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Իրադարձություններ"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Հաղորդագրություններ"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Առաջարկներ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Կոնտակտները պահեք տեսակավորված և ցանկացած պահի հեշտությամբ գտեք ձեր ուզած կոնտակտը"</string>
+    <string name="undo" msgid="1425165101664071422">"Հետարկել"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Զանգել <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-ին"</string>
+    <string name="call_home" msgid="1990519474420545392">"Զանգել տուն"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Զանգել շարժական համարին"</string>
+    <string name="call_work" msgid="5328785911463744028">"Զանգել աշխատավայր"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Զանգել աշխատանքային ֆաքսի համարին"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Զանգել տան Ֆաքսի համարին"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Զանգել փեյջերի համարին"</string>
+    <string name="call_other" msgid="8563753966926932052">"Զանգել"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Հետզանգել"</string>
+    <string name="call_car" msgid="3280537320306436445">"Զանգել մեքենանայի համարին"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Զանգել ընկերության հիմնական համարին"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Զանգել ISDN համարին"</string>
+    <string name="call_main" msgid="6082900571803441339">"Զանգել հիմնական համարին"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Զանգել ֆաքսի համարին"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Զանգել ռադիոյի համարին"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Զանգել տելեքս համարին"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Զանգել TTY/TDD համարին"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"զանգել աշխատանքային բջջային համարին"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Զանգել աշխատանքային փեյջերի համարին"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Զանգել <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-ին"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Զանգել MMS համարին"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Զանգ)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Ուղարկել SMS <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-ին"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Հաղորդագրել տուն"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Հաղորդագրել շարժականին"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Հաղորդագրել աշխատանքային համարին"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Հաղորդագրել աշխատանքային ֆաքսի համարին"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Հաղորդագրել տնային ֆաքսի համարին"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Հաղորդագրել փեյջերին"</string>
+    <string name="sms_other" msgid="806127844607642331">"Հաղորդագրել"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Հաղորդագրել հետզանգման համարին"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Հաղորդագրել ավտոմեքենայի հեռախոսահամարին"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Հաղորդագրել ընկերության հիմնական համարին"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Հաղորդագրել ISDN համարին"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Հաղորդագրել հիմնական համարին"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Հաղորդագրել ֆաքսի համարին"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Հաղորդագրել ռադիո համարին"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Հաղորդագրել տելեքս համարին"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Հաղորդագրել TTY/TDD համարին"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Գրել աշխատանքային շարժականին"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Հաղորդագրել աշտատանքային փեյջերին"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Հաղորդագրել <xliff:g id="ASSISTANT">%s</xliff:g>-ին"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Հաղորդագրել MMS համարին"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Գրել ՍՄՍ)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Կատարել տեսազանգ"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Մաքրե՞լ հաճախակի հաղորդակցվողները"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Կոնտակտներ և Հեռախոս հավելվածներից կմաքրվի հաճախակի օգտագործվող կոնտակտների ցանկը, և էլփոստի հավելվածները զրոյից են սովորելու ձեր հաճախակի օգտագործվող կոնտակտները։"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Մաքրվում է հաճախակի հաղորդակցվողները..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Հասանելի է"</string>
+    <string name="status_away" msgid="1838861100379804730">"Տեղում չէ"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Զբաղված է"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Այլ"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Գրացուցակ"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Աշխատանքային գրացուցակ"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Բոլոր կոնտակտները"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Արագ հաղորդակցում <xliff:g id="NAME">%1$s</xliff:g>-ի հետ"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Անանուն)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Հաճախակի հաղորդակցվածները"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Բոլոր հեռախոսահամարներով կոնտակտները"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Աշխատանքային պրոֆիլի կոնտակտներ"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Դիտել թարմացումները"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Սարք"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM քարտ"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Անունը"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Կեղծանուն"</string>
+    <string name="name_given" msgid="4280790853455320619">"Անուն"</string>
+    <string name="name_family" msgid="7466985689626017037">"Ազգանուն"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Անվան նախածանց"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Հայրանուն"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Անվան վերջածանց"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Անուն (տառադարձված)"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Անունը (տառադարձված)"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Հայրանուն (տառադարձված)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Ազգանուն (տառադարձված)"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Հեռախոս"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Էլփոստ"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Հասցե"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Կազմակերպություն"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Հարաբերություններ"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Հատուկ ամսաթիվ"</string>
+    <string name="sms" msgid="1756857139634224222">"Տեքստային հաղորդագրություն"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Հասցե"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Ընկերություն"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Պաշտոն"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Գրառումներ"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Հատուկ"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Վեբ-կայք"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Պիտակներ"</string>
+    <string name="email_home" msgid="8573740658148184279">"Նամակագրել տուն"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Ուղարկել բջջային փոստին"</string>
+    <string name="email_work" msgid="2807430017302722689">"Նամակագրել աշխատավայր"</string>
+    <string name="email_other" msgid="3454004077967657109">"Նամակագրել"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Ուղարկել էլեկտրոնային նամակ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-ին"</string>
+    <string name="email" msgid="5668400997660065897">"Նամակագրել"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Փողոց"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Քաղաք"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Նահանգ"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Փոստային կոդ"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Երկիր"</string>
+    <string name="map_home" msgid="1243547733423343982">"Դիտել բնակության հասցեն"</string>
+    <string name="map_work" msgid="1360474076921878088">"Դիտել աշխատավայրի հասցեն"</string>
+    <string name="map_other" msgid="3817820803587012641">"Դիտել հասցեն"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Դիտել <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-ի հասցեն"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Զրուցել AIM-ով"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Զրույց Windows Live-ով"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Զրուցել Yahoo-ով"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Զրուցել Skype-ով"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Զրուցել QQ-ով"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Զրուցել Google Talk-ով"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Զրուցել ICQ-ով"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Զրուցել Jabber-ով"</string>
+    <string name="chat" msgid="9025361898797412245">"Զրուցել"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ջնջել"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Ցույց տալ անվան այլ դաշտեր"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Կոծկել անվան դաշտերը"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Ցույց տալ տառադարձված անվան այլ դաշտեր"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Կոծկել տառադարձված անվան դաշտերը"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Ընդարձակել"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Կոծկել"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Ընդարձակված է"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Կոծկված է"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Բոլոր կոնտակտները"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Աստղանշված"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Հարմարեցնել"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Կոնտակտ"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Բոլոր այլ կոնտակտները"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Բոլոր կոնտակտները"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Հեռացնել համաժամեցված խումբը"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Ավելացնել համաժամեցված խումբ"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Այլ խմբեր..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"«<xliff:g id="GROUP">%s</xliff:g>»-ի հեռացումը համաժամեցումից նաև կհեռացնի ցանկացած չխմբավորված կոնտակտ համաժամեցումից:"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Ցուցադրման ընտրանքները պահվում են..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Անհատականացված դիտակերպ"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Պահել ներմուծված կոնտակտներն այստեղ՝"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM քարտից"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"<xliff:g id="SIM_NAME">%1$s</xliff:g> SIM-ից"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d contacts</item>
+      <item quantity="other">%1$d կոնտակտ</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> contacts • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> կոնտակտ • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ֆայլից"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Ներմուծելու ոչինչ չկա"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Վերականգնե՞լ կոնտակտները vCard-ից։"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Չեղարկե՞լ <xliff:g id="FILENAME">%s</xliff:g>-ի ներմուծումը"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Չեղարկե՞լ <xliff:g id="FILENAME">%s</xliff:g>-ի արտահանումը"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Հնարավոր չէ չեղարկել vCard-ի ներմուծումը/արտահանումը"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Անհայտ սխալ:"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Հնարավոր չէ բացել \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\"-ը. պատճառը` <xliff:g id="EXACT_REASON">%2$s</xliff:g>:"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Հնարավոր չէ մեկնարկել արտահանողը. պատճառը` «<xliff:g id="EXACT_REASON">%s</xliff:g>»:"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Արտահանելի կոնտակտ չկա:"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Դուք անջատել եք անհրաժեշտ թույլտվությունը:"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Արտահանման ընթացքում տեղի է ունեցել սխալ. պատճառը` «<xliff:g id="EXACT_REASON">%s</xliff:g>»:"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O սխալ"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Հիշողությունը բավարար չէ: Հնարավոր է` ֆայլը չափազանց մեծ է:"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Ձևաչափը չի աջակցվում:"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g>-ի արտահանումն ավարտվեց"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Կոնտակտների արտահանումն ավարտվեց:"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Կոնտակտներն արտահանվեցին: Սեղմեք ծանուցումը՝ դրանցով կիսվելու համար:"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Հպեք՝ կոնտակտներով կիսվելու համար:"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g>-ի արտահանումը չեղարկվեց:"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Կոնտակտային տվյալների արտահանում"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Կոնտակտային տվյալներն արտահանվում են:"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Հնարավոր չէ ստանալ տվյալների շտեմարանի տեղեկատվությունը:"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Արտահանելու կոնտակտներ չկան:"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard-ի կազմիչը ճիշտ չէ մեկնարկել:"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Հնարավոր չէ արտահանել"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Կոնտակտային տվյալները չեն արտահանվել:\nՊատճառը՝ «<xliff:g id="FAIL_REASON">%s</xliff:g>»"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g>-ը ներմուծվում է"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Հնարավոր չէ ընթերցել vCard-ի տվյալները"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g>-ի ներմուծումը vCard ավարտվեց"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g>-ի ներմուծումը չեղարկվեց"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g>-ը շուտով կներմուծվի:"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Ֆայլը շուտով կներմուծվի:"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard-ի ներմուծման հայցը մերժվեց: Փորձեք կրկին ավելի ուշ:"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Կոնտակտները շուտով կարտահանվեն:"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard-ի արտահանման հայցը մերժվել է: Կրկին փորեք ավելի ուշ:"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"կոնտակտ"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard(եր)-ի քեշավորում տեղային ժամանակավոր պահոց: Ներմուծումը կսկսվի շուտով:"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Հնարավոր չէ ներմուծել vCard-ը:"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC-ով ստացված կոտակտ"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Քեշավորում"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> : <xliff:g id="NAME">%3$s</xliff:g>-ի ներմուծում"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Արտահանել .vcf ֆայլ"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Դասավորել ըստ"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Անուն (տառադարձված)"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Միշտ ցուցադրել"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Թաքցնել, եթե դատարկ է"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Անվան"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Ազգանվան"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Անվան ձևաչափ"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Սկզբում՝ անունը"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Սկզբում՝ ազգանունը"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Հաշիվներ"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Ստանդարտ հաշիվ նոր կոնտակտների համար"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Իմ մասին"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Կարգավորել պրոֆիլը"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Կոնտակտների մասին"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Կիսվել նախընտրած կոնտակտներով"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Կիսվել բոլոր կոնտակտներով"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Չհաջողվեց կիսվել կոնտակտներով:"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Արտահանել կոնտակտները"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Կոնտակտների ներմուծում"</string>
+    <string name="share_error" msgid="948429331673358107">"Չհաջողվեց կիսվել կոնտակտով:"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Հասանելի կոնտակտներ չկան։"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Կոնտակտների զտիչ"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Կոնտակտների զտիչ"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Դիտակերպի անհատականացում"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Պահել"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Կոնտակտների որոնում"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Ընտրյալներ"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Ներմուծել"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Արտահանել"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Արգելափակված համարներ"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g>-ի միջոցով"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="SOURCE">%2$s</xliff:g>-ով"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"դադարեցնել որոնումը"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Մաքրել որոնման դաշտը"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Հաշիվ"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Միշտ օգտագործել սա՝ զանգերի համար"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Գրառումով զանգ"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Մուտքագրեք գրառում՝ զանգի հետ ուղարկելու համար…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ՈՒՂԱՐԿԵԼ ԵՎ ԶԱՆԳԵԼ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Պատրաստման տարբերակը"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Բաց կոդով ծրագրակազմի արտոնագրեր"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Բաց կոդով ծրագրակազմի արտոնագրերի մանրամասներ"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Գաղտնիության քաղաքականություն"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Օգտագործման պայմաններ"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Բաց կոդով ծրագրերի արտոնագրեր"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Չհաջողվեց բացել url-ը:"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> հաշիվը նշվել է"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> հաշիվը չի նշվել"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Կատարել տեսազանգ"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Ջնջել"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Բազմակետ"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> վ"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> ր <xliff:g id="SECONDS">%2$s</xliff:g> վ"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ժ <xliff:g id="MINUTES_1">%2$s</xliff:g> ր <xliff:g id="SECONDS">%3$s</xliff:g> վ"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Այս դյուրանցումն անջատվել է"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Կոնտակտը հեռացվել է"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Ներմուծել"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Ընտրեք կոնտակտները"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Ձեր SIM քարտում կոնտակտներ չկան"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Կոնտակտն արդեն առկա է ձեր ցանկում"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> կոնտակտ SIM քարտից ներմուծվեց</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> կոնտակտ SIM քարտից ներմուծվեց</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM քարտից չհաջողվեց ներմուծել կոնտակտները"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Ներմուծել SIM քարտից"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Չեղարկել"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Հպեք՝ հաշվի ինքնահամաժամեցումը միացնելու համար:"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Անտեսել"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Հպեք՝ հաշվի համաժամեցումը միացնելու համար:"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Միացնե՞լ ինքնահամաժամեցումը:"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Ինչպես Google Կոնտակտներում, այնպես էլ մյուս բոլոր հավելվածներում և հաշիվներում կատարած փոփոխությունները կհամաժամեցվեն վեբ միջերեսի և ձեր սարքերի միջև:"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Միացնել"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Կապ չկա"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM քարտ"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Ցուցադրել ավելի շատ"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM քարտի ներմուծումն ավարտվեց"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Ներմուծման սխալ"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Չհաջողվեց կոնտակտներ ներմուծել SIM քարտից"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM քարտի ներմուծում"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index b6ca03b..09849f0 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontak"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontak"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Lihat Kontak"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Edit Kontak"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontak"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Tambahkan kontak"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontak"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Panggilan langsung"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Pesan langsung"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Pilih pintasan kontak"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Pilih nomor untuk dipanggil"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Pilih nomor untuk dikirimi pesan"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Memilih kontak"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Tambahkan ke kontak"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Pilih kontak"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Pilih"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Buat kontak baru"</string>
-    <string name="starredList" msgid="4817256136413959463">"Yang berbintang"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Sering"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favorit"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detail kontak"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Edit kontak"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Buat kontak"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Edit grup"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Buat grup"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Tentang"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Pembaruan"</string>
     <string name="searchHint" msgid="8482945356247760701">"Telusuri kontak"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Lihat kontak"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Tambahkan ke favorit"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Hapus dari favorit"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Dibuang dari favorit"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Edit"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Hapus"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Ganti foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Letakkan di layar Utama"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Hubungi kontak"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"SMS kontak"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Buat pintasan"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Batalkan tautan"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Edit"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Hapus"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Tambahkan Kenalan"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Tambahkan Grup"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Hapus kontak"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Ganti nama label"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Hapus label"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Tambahkan kontak"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Pilih kontak"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Tambahkan kontak"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Hapus dari label"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Buat label"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Batalkan tautannya menjadi beberapa kontak?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Batalkan tautan"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Ingin menyimpan perubahan yang sudah dilakukan dan membatalkan tautan dengan kontak ini menjadi beberapa kontak?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Simpan dan Batalkan Tautan"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Ingin menyimpan perubahan yang sudah dilakukan dan menautkan dengan kontak yang dipilih?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Simpan dan Tautkan"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Menautkan"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Membatalkan tautan"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Tautkan"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Lihat kontak yang ditautkan"</string>
     <string name="menu_save" msgid="1727844363591825909">"Simpan"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Tautkan kontak"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Pilih kontak yang ingin Anda tautkan dengan <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Tampilkan semua kontak"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Kontak yang disarankan"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Semua kontak"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ditautkan"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontak ditautkan"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> dihapus"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> dan <xliff:g id="NAME_1">%2$s</xliff:g> dihapus"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… dihapus"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Kontak dihapus</item>
       <item quantity="one">Kontak dihapus</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontak</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontak</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontak · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontak · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Dari Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Dari <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Setel nada dering"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Panggilan masuk kotak pesan"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontak dari akun hanya-baca tidak dapat dihapus, tetapi dapat disembunyikan."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Sembunyikan"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontak yang akan dihapus memiliki detail dari beberapa akun. Detail dari akun hanya-baca akan disembunyikan, tidak dihapus."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Anda perlu memilih sedikitnya dua kontak untuk menautkan."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Tautkan kontak yang dipilih?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Tautkan"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Rute ke pesan suara"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Pindahkan rute ke pesan suara"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Kontak ini adalah hanya baca. Kontak tidak dapat dihapus, namun dapat disembunyikan."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Sembunyikan Kontak"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Akun hanya baca di kontak ini akan disembunyikan, bukan dihapus."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Hapus kontak ini?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Hapus kontak yang dipilih?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontak dari akun hanya-baca tidak dapat dihapus, tetapi dapat disembunyikan."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Menghapus kontak ini akan menghapus detail dari beberapa akun."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Hapus kontak ini?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Hapus"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Buang perubahan"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontak tidak ada."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontak ditambahkan ke layar Utama."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ditambahkan ke layar Utama."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Buat kontak baru"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Buat kontak baru"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisasi"</item>
-    <item msgid="7196592230748086755">"Catatan"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Tidak ada gambar yang tersedia pada tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Tidak ada gambar pada ponsel."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Tidak ada gambar yang tersedia di perangkat."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto kontak"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nama label khusus"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Kirim panggilan ke kotak pesan secara langsung"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Hapus foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Tidak ada kontak"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Tidak ada grup."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Untuk membuat grup, Anda memerlukan sebuah akun."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Tidak ada orang dalam grup ini."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Untuk menambah beberapa orang, edit grup tersebut."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Menyimpan kontak..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Daftar kontak Anda kosong"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Tidak ada kontak dengan label ini"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Tidak ada kontak di akun ini"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Daftar kontak Anda kosong"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> disimpan"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontak disimpan"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontak dibatalkan tautannya"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Tidak dapat menyimpan perubahan kontak."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Tidak dapat membatalkan tautan kontak."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Tidak dapat menautkan kontak."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Kesalahan saat menyimpan kontak."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Tidak dapat menyimpan perubahan foto kontak."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grup disimpan."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Tidak dapat menyimpan perubahan grup."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontak dengan nomor telepon</item>
-      <item quantity="one">1 kontak dengan nomor telepon</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Tidak ada kontak dengan nomor telepon"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ditemukan</item>
-      <item quantity="one">1 ditemukan</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Tidak dapat menyimpan perubahan kontak"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Tidak dapat membatalkan tautan kontak"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Tidak dapat menautkan kontak"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Kesalahan saat menyimpan kontak"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Tidak dapat menyimpan perubahan foto kontak"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Gagal memuat label"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Label dihapus"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Label dibuat"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Tidak dapat membuat label"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Label diperbarui"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Dihapus dari label"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Ditambahkan ke label"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Tidak dapat menyimpan perubahan label"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Label tersebut sudah ada"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Beberapa kontak tidak memiliki email."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Beberapa kontak tidak memiliki nomor telepon."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Kirim email"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Kirim pesan"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Pilih Kontak"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Kirim"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Tidak ada kontak"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ditemukan</item>
-      <item quantity="one">1 ditemukan</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Semua"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favorit"</string>
-    <string name="callBack" msgid="5498224409038809224">"Hubungi kembali"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Hubungi sekali lagi"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Panggilan kembali"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Tambahkan \"<xliff:g id="EMAIL">%s</xliff:g>\" ke kontak?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto kontak"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> dari <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontak"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nama kontak Anda"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Tidak ada apl yang ditemukan untuk menangani tindakan ini."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik untuk kembali ke layar sebelumnya"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Tambahkan nomor telepon"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Tambahkan email"</string>
     <string name="missing_app" msgid="1466111003546611387">"Tidak ditemukan aplikasi untuk menangani tindakan ini."</string>
     <string name="menu_share" msgid="943789700636542260">"Bagikan"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Tambahkan ke kontak"</string>
-    <string name="share_via" msgid="563121028023030093">"Bagikan kontak melalui"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Buat grup dalam akun"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Tambahkan"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Bagikan kontak melalui</item>
+      <item quantity="one">Bagikan kontak melalui</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Pilih akun"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Buat label"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Ganti nama label"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nama label"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nama label"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Obrolan suara"</string>
     <string name="video_chat" msgid="1872255818640336072">"Obrolan video"</string>
-    <string name="connections" msgid="8098440723172028350">"Hubungan"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Tambahkan hubungan"</string>
-    <string name="recent" msgid="2659189233141493004">"Terbaru"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Pembaruan terkini"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontak"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Akun <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Tidak dapat diedit dari apl ini."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Tidak dapat diedit pada perangkat ini."</string>
     <string name="take_photo" msgid="7496128293167402354">"Ambil foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ambil foto baru"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Pilih foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Pilih foto baru"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Daftar kontak sedang diperbarui."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Menelusuri..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Tampilkan yang dipilih"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Tampilkan semua"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Pilih semua"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Batal pilih semua"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Tambah baru"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Tambahkan organisasi"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tanggal"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nama grup"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Ganti"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto utama"</string>
-    <string name="description_star" msgid="2605854427360036550">"favorit"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Edit kontak"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Tautkan kontak ini dengan kontak yang dipilih?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Beri Label"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Batal"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Kembali"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"tutup"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Beralih ke mengedit kontak yang dipilih? Informasi yang telah Anda masukkan sejauh ini akan disalin."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Salin ke Kontak Saya"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Tambahkan ke Kontak Saya"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Direktori <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Khusus"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Setelan"</string>
     <string name="menu_settings" msgid="377929915873428211">"Setelan"</string>
     <string name="menu_help" msgid="1680178646764069976">"Bantuan &amp; masukan"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opsi tampilan"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Nomor telepon"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Tambahkan ke kontak"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Tambahkan ke kontak"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Tutup"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Sertakan tahun"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontak"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Memuat..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Buat kontak baru"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Tambahkan akun"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Impor kontak"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Buat grup baru"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Buat grup baru"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grup</item>
-      <item quantity="one">1 grup</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Menghapus grup \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontak itu sendiri tidak akan dihapus.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> orang dari <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> orang dari <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> orang</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> orang</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Impor"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Buat baru…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Hapus label \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontak tidak akan dihapus.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Ketik nama kontak sebelum menautkan dengan lainnya."</string>
     <string name="copy_text" msgid="3257145021583508761">"Salin ke papan klip"</string>
     <string name="set_default" msgid="4417505153468300351">"Setel sebagai default"</string>
     <string name="clear_default" msgid="7193185801596678067">"Hapus default"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Teks disalin"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Buang perubahan Anda?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Buang"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Siapkan profil saya"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Ketik nama seseorang"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nama grup"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Buang perubahan?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Buang"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Batal"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Hapus penyesuaian?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Telusuri kontak"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Hapus kontak"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Profil lokal saya"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> saya"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Menampilkan semua kontak"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontak bekerja lebih baik dengan Akun Google.\n\n• Akses dari browser web apa pun.\n• Cadangkan kontak Anda dengan aman."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Tetap amankan kontak Anda jika kehilangan ponsel: sinkronkan dengan layanan online."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Tambahkan akun"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Kontak baru Anda tidak akan dicadangkan. Tambahkan akun yang mencadangkan kontak secara online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Luangkan waktu untuk menambahkan akun yang akan mencadangkan kontak Anda ke Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Kontak baru akan disimpan ke <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Pilih akun default untuk kontak baru:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Tambah kontak baru"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Buat kontak baru"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edit kontak"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Simpan secara lokal"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Hanya lihat"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Pilih kontak untuk diedit"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Kontak yang ditautkan"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Tambahkan"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Batalkan tautan"</string>
     <string name="add_account" msgid="8201790677994503186">"Tambahkan akun"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Tambahkan akun baru"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Ekspor file basis data"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"menambah kontak baru"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Buat kontak baru"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Lihat lebih banyak"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Lihat lebih sedikit"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Lihat semua"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Terbaru"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Tentang"</string>
-    <string name="send_message" msgid="8938418965550543196">"Kirim pesan"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Membuat salinan pribadi..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Kemarin"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Membuat salinan pribadi..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Besok"</string>
     <string name="today" msgid="8041090779381781781">"Hari ini"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Hari ini pukul <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Besok pukul <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Acara tanpa judul)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Setel"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Situs web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Acara"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Hubungan"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Akun"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nama"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Email"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telepon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Klik untuk meluaskan editor kontak."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Klik untuk menciutkan editor kontak."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"petunjuk arah ke lokasi"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms terbaru. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klik untuk menanggapi"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms terbaru. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik untuk menanggapi"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"masuk"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"keluar"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"tak terjawab"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"panggilan telepon terbaru. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klik untuk menelepon balik"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"panggilan telepon terbaru. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik untuk menelepon balik"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Anda: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts bekerja lebih baik jika Anda memasukkan pengidentifikasi Hangouts orang tersebut ke bidang email atau bidang ponsel."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Bidang lainnya"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Ganti foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Gagal membuka editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Menyimpan ke"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Saat ini menyimpan ke <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Ketuk dua kali untuk memilih akun lain."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Kontak tertaut (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Kontak tertaut</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> kontak tertaut"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Bidang lainnya"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Ubah foto kontak"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Tambahkan foto kontak"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto kontak"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Gagal membuka editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Menyimpan ke"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Info kontak dari <xliff:g id="ACCOUNT">%s</xliff:g> tidak dapat diedit"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"TAUTKAN KONTAK"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"BATAL"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Kemungkinan duplikat</item>
-      <item quantity="one">1 Kemungkinan duplikat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontak tertaut</item>
-      <item quantity="one">1 kontak tertaut</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Kontak ini"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Kemungkinan duplikat"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Semua kontak ini mungkin orang yang sama. Anda dapat menautkannya sebagai satu kontak."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Kontak yang ditautkan"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Dari akun Anda"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Jepret foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Semua foto"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Pilih foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Dari <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Hapus <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Hapus <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Hapus <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto dari <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>tidak dicentang"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto dari <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>dicentang"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto dari akun tak dikenal tidak dicentang"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto dari akun tak dikenal dicentang"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Daftar kontak sedang diperbarui untuk mencerminkan perubahan bahasa.\n\nHarap tunggu..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Tambahkan nomor"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokir nomor"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Tambahkan nomor atau telusuri kontak"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Bebaskan <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"BEBASKAN"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokir <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKIR"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> diblokir"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> dibebaskan"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> tidak valid."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokir panggilan dinonaktifkan sementara"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Pemblokiran panggilan telepon telah dinonaktifkan karena Anda menghubungi layanan darurat dari telepon ini dalam 48 jam terakhir. Akan diaktifkan kembali secara otomatis setelah masa 48 jam berakhir."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Impor"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Lihat Nomor"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Tambahkan nomor"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Pemblokiran panggilan dinonaktifkan selama 48 jam"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Dinonaktifkan karena panggilan darurat dilakukan."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"URUNGKAN"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah diblokir."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Bebaskan nomor"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Detail kontak untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Impor gagal"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Impor nomor"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Untuk menelusuri kontak, aktifkan izin Kontak."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktifkan"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Saran"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Baru"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Buka panel samping navigasi"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Tutup panel samping navigasi"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Label <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Label"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Akun"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Lihat riwayat bersama"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Acara dan pesan"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Acara"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Pesan"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Saran"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Pastikan kontak Anda teratur dan bermanfaat"</string>
+    <string name="undo" msgid="1425165101664071422">"Urungkan"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Telepon <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Telepon nomor telepon rumah"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Telepon nomor seluler"</string>
+    <string name="call_work" msgid="5328785911463744028">"Telepon nomor kantor"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Telepon faks kantor"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Telepon nomor faks rumah"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Telepon pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Telepon"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Hubungi panggilan balik"</string>
+    <string name="call_car" msgid="3280537320306436445">"Hubungi nomor telepon mobil"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Hubungi nomor telepon utama perusahaan"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Telepon ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Telepon nomor utama"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Telepon faks"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Telepon radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Telepon teleks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Telepon TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Telepon nomor seluler kantor"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Telepon pager kantor"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Telepon <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Telepon MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Telepon)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Kirim SMS ke <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS rumah"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS seluler"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS kantor"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS faks kantor"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS faks rumah"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS panggilan balik"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS mobil"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS nomor utama perusahaan"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS utama"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"SMS faks"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS seluler kantor"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Teks pager kantor"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"SMS <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"SMS MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Lakukan video call"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Hapus yang sering dihubungi?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Anda akan menghapus daftar yang sering dihubungi pada aplikasi Kontak dan Ponsel, serta memaksa aplikasi email untuk mempelajari preferensi penanganan dari awal."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Menghapus yang sering dihubungi..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Ada"</string>
+    <string name="status_away" msgid="1838861100379804730">"Tidak di Tempat"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Sibuk"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Lainnya"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Direktori"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Direktori kerja"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Semua kontak"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Kontak cepat untuk <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Tanpa nama)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Paling sering dihubungi"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Semua kontak dengan nomor telepon"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontak profil kerja"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Lihat pembaruan"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Perangkat"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nama"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nama panggilan"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nama depan"</string>
+    <string name="name_family" msgid="7466985689626017037">"Nama belakang"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Awalan nama"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Nama tengah"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Akhiran nama"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nama fonetik"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nama depan fonetik"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Nama tengah fonetik"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Nama belakang fonetik"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telepon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Email"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Alamat"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisasi"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Hubungan"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Tanggal khusus"</string>
+    <string name="sms" msgid="1756857139634224222">"Pesan teks"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Alamat"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Perusahaan"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Jabatan"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Catatan"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Khusus"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Situs web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Label"</string>
+    <string name="email_home" msgid="8573740658148184279">"Email ke rumah"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Email ke seluler"</string>
+    <string name="email_work" msgid="2807430017302722689">"Email ke kantor"</string>
+    <string name="email_other" msgid="3454004077967657109">"Email"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Kirim email ke <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Email"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Jalan"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Kota"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Neg. Bagian/Prov"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Kode pos"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Negara"</string>
+    <string name="map_home" msgid="1243547733423343982">"Tampilkan alamat rumah"</string>
+    <string name="map_work" msgid="1360474076921878088">"Tampilkan alamat kantor"</string>
+    <string name="map_other" msgid="3817820803587012641">"Lihat alamat"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Lihat alamat <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Ngobrol menggunakan AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Ngobrol menggunakan Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Ngobrol menggunakan Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Ngobrol menggunakan Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Ngobrol menggunakan QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Ngobrol menggunakan Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Ngobrol menggunakan ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Ngobrol menggunakan Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Ngobrol"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"hapus"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Tampilkan kolom nama lainnya"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Ciutkan bidang nama"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Tampilkan kolom nama fonetik lainnya"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Ciutkan bidang nama fonetik"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Luaskan"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Ciutkan"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Diperluas"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Diciutkan"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Semua kontak"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Yang berbintang"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Khusus"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontak"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Semua kontak lainnya"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Semua kontak"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Hapus grup sinkronisasi"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Tambahkan grup sinkronisasi"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Grup lainnya..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Menghapus \"<xliff:g id="GROUP">%s</xliff:g>\" dari sinkronisasi juga akan menghapus setiap kontak yang tidak berada dalam grup dari sinkronisasi."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Menyimpan opsi tampilan..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Tampilan khusus"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Simpan kontak yang diimpor ke:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Kartu SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kontak</item>
+      <item quantity="one">1 kontak</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontak • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontak • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"File .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Tidak ada yang diimpor"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Impor kontak dari vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Batalkan impor <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Batalkan ekspor <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Tidak dpt membatalkan impor/ekspor vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Kesalahan tidak dikenal."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Tidak dapat membuka \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Tidak dapat memulai pengeskpor: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Tidak ada kontak yang dapat diekspor."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Anda telah menonaktifkan izin yang diperlukan."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Terjadi kesalahan saat ekspor: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Kesalahan I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Memori tidak cukup. File mungkin terlalu besar."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format tidak didukung."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Selesai mengekspor <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Selesai mengekspor kontak."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Selesai mengekspor kontak, klik notifikasi untuk membagikan kontak."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Ketuk untuk membagikan kontak."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Mengekspor <xliff:g id="FILENAME">%s</xliff:g> dibatalkan."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Mengekspor kontak"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Data kontak sedang diekspor."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Tidak dapat memperoleh informasi basis data."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Tidak ada kontak yang dapat diekspor."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Penyusun vCard tidak memulai dengan semestinya."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Tak dapat mengekspor"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontak tidak diekspor.\nAlasan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Mengimpor <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Tidak dapat membaca data vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Selesai mengimpor vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Mengimpor <xliff:g id="FILENAME">%s</xliff:g> dibatalkan"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> akan segera diimpor."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"File akan diimpor segera."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Permintaan impor vCard ditolak. Coba lagi nanti."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontak akan segera diekspor."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Permintaan ekspor vCard ditolak. Coba lagi nanti."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontak"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Menyimpan vCard ke cache untuk penyimpanan lokal sementara. Impor yang sebenarnya akan segera dimulai."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Tidak dapat mengimpor vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontak yang diterima lewat NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Menyimpan ke cache"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Mengimpor <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Ekspor ke file .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Urutkan menurut"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nama fonetik"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Selalu tampilkan"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Sembunyikan jika kosong"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nama depan"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Nama belakang"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format nama"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Nama depan terlebih dulu"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nama belakang terlebih dulu"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Akun"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Akun default untuk kontak baru"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Info saya"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Siapkan profil Anda"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Tentang Kontak"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Bagikan kontak favorit"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Bagikan semua kontak"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Gagal membagikan kontak."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Ekspor kontak"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Impor kontak dari"</string>
+    <string name="share_error" msgid="948429331673358107">"Kontak ini tidak dapat dibagi."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Tidak ada kontak untuk dibagikan."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontak untuk ditampilkan"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontak untuk ditampilkan"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Sesuaikan tampilan"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Simpan"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Telusuri kontak"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favorit"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Impor"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Ekspor"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Nomor yang diblokir"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"melalui <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> melalui <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"hentikan penelusuran"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Hapus penelusuran"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Akun"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Selalu gunakan ini untuk telepon"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Telepon dengan catatan"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Ketik catatan untuk dikirim dengan panggilan telepon..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"KIRIM &amp; PANGGILAN"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versi build"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Lisensi sumber terbuka"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detail lisensi untuk perangkat lunak sumber terbuka"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Kebijakan privasi"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Persyaratan layanan"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Lisensi sumber terbuka"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Gagal membuka url."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> dicentang"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> tidak dicentang"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Lakukan video call"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Hapus"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Elipsis"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> mnt <xliff:g id="SECONDS">%2$s</xliff:g> dtk"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> j <xliff:g id="MINUTES_1">%2$s</xliff:g> mnt <xliff:g id="SECONDS">%3$s</xliff:g> dtk"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Pintasan ini telah dinonaktifkan"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontak telah dihapus"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Impor"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Pilih kontak"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Tidak ada kontak pada kartu SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontak sudah ada di daftar"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontak SIM yang diimpor</item>
+      <item quantity="one">1 kontak SIM yang diimpor</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Gagal mengimpor kontak SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Impor dari SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Batal"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Sinkronisasi otomatis tidak aktif. Tap untuk mengaktifkan."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Tutup"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Sinkronisasi akun tidak aktif. Tap untuk mengaktifkan."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Aktifkan sinkronisasi otomatis?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Perubahan yang Anda lakukan pada semua aplikasi dan akun, tidak hanya Google Kontak, akan terus diperbarui antara web dan perangkat."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Aktifkan"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Tidak ada sambungan"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Tampilkan lebih banyak"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Selesai mengimpor kartu SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Impor gagal"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Tidak dapat mengimpor kontak dari kartu SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Mengimpor SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
deleted file mode 100644
index 68f1791..0000000
--- a/res/values-is-rIS/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Tengiliðir"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Tengiliðir"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Skoða tengilið"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Breyta tengilið"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Tengiliðir"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Tengiliður"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Bein lína"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Bein skilaboð"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Veldu tengilið fyrir flýtileið"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Veldu númer til að hringja í"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Veldu númer til að senda skilaboð til"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Bæta við tengilið"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Velja tengilið"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Búa til nýjan tengilið"</string>
-    <string name="starredList" msgid="4817256136413959463">"Stjörnumerktir"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Mikil samskipti"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Uppáhald"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Upplýsingar um tengilið"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Breyta tengilið"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Búa til tengilið"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Breyta hóp"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Búa til hóp"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Um"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Uppfærslur"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Leita í tengiliðum"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Skoða tengilið"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Bæta við uppáhald"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Fjarlægja úr uppáhaldi"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Fjarlægt úr uppáhaldi"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Bætt við uppáhald"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Breyta"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Eyða"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Skipta um mynd"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Setja á heimaskjáinn"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Hringja í tengilið"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Senda tengilið textaskilaboð"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Skipta upp"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Breyta"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Eyða"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Bæta tengilið við"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Bæta hóp við"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Skipta þessum tengilið upp í fleiri tengiliði?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Skipta upp"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Viltu vista breytingarnar sem þegar hafa verið gerðar og skipta þessum tengilið upp í fleiri tengiliði?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Vista og skipta upp"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Viltu vista breytingarnar sem þegar hafa verið gerðar og tengja þær við valinn tengilið?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Vista og tengja"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Tengja saman"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Vista"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Tengja tengiliði saman"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Veldu tengiliðinn sem þú vilt tengja við <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Sýna alla tengiliði"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Tillögur að tengiliðum"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Allir tengiliðir"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Tengiliðir tengdir saman"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">Tengiliðum eytt</item>
-      <item quantity="other">Tengiliðum eytt</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Velja hringitón"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Öll símtöl í talhólf"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Ekki er hægt að eyða tengiliðum af skrifvörðum reikningum, en þá er hægt að fela."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Fela"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Tengiliðurinn sem á að eyða geymir upplýsingar af mörgum reikningum. Upplýsingar af skrifvörðum reikningum verða faldar, en þeim ekki eytt."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Þú þarft að velja a.m.k. tvo tengiliði til að tengja saman."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Tengja saman valda tengiliði?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Tengja saman"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Eyða þessum tengilið?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Eyða völdum tengiliðum?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Ekki er hægt að eyða tengiliðum af skrifvörðum reikningum, en þá er hægt að fela."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Þeir tengiliðir sem á að eyða geyma upplýsingar af mörgum reikningum. Upplýsingar af skrifvörðum reikningum verða faldar en þeim ekki eytt."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Ef þessum tengilið er eytt verður upplýsingum eytt af mörgum reikningum."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Eyða þessum tengilið?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Eyða"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Hætta við breytingar"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Tengiliðurinn er ekki til."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Tengilið bætt á heimaskjá."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> bætt á heimaskjá."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Búa til nýjan tengilið"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Búa til nýjan tengilið"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Fyrirtæki"</item>
-    <item msgid="7196592230748086755">"Athugasemd"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Engar myndir eru tiltækar í spjaldtölvunni."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Engar myndir eru tiltækar í símanum."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Mynd tengiliðar"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Sérsniðin merking"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Senda símtöl beint í talhólfið"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Fjarlægja mynd"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Engir tengiliðir"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Engir hópar."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Þú þarft að vera með reikning til að geta búið til hópa."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Það er enginn í þessum hóp."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Breyttu hópnum til að bæta fólki við hann."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Vistar tengilið…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Tengiliður vistaður"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Tengiliðir aðskildir"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Ekki tókst að vista breytingar á tengiliðnum."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Ekki var hægt að skipta upp tengiliðnum."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Ekki tókst að tengja tengilið."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Villa við að vista tengilið."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Ekki var hægt að vista breytingar á mynd tengiliðar."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Hópur vistaður."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Ekki tókst að vista breytingarnar á hópnum."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> tengiliður með símanúmer</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tengiliðir með símanúmer</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Engir tengiliðir með símanúmer"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> fannst</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> fundust</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Engir tengiliðir"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> fannst</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> fundust</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Allir"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Uppáhald"</string>
-    <string name="callBack" msgid="5498224409038809224">"Hringja til baka"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Hringja aftur"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Hringja til baka"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Bæta „<xliff:g id="EMAIL">%s</xliff:g>“ við tengiliði?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"mynd tengiliðar"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plús"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> af <xliff:g id="TOTAL_NUMBER">%s</xliff:g> tengiliðum"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Nöfn tengiliðanna þinna"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Ekkert forrit fannst sem getur framkvæmt þessa aðgerð."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Smelltu til að fara aftur á fyrri skjá"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Bæta við símanúmeri"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Bæta við netfangi"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Ekkert forrit fannst sem getur framkvæmt þessa aðgerð."</string>
-    <string name="menu_share" msgid="943789700636542260">"Deila"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Bæta við tengiliði"</string>
-    <string name="share_via" msgid="563121028023030093">"Deila tengilið í gegnum"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Búa til hóp undir reikningi"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Símtalsspjall"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Myndspjall"</string>
-    <string name="connections" msgid="8098440723172028350">"Tengingar"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Bæta tengingu við"</string>
-    <string name="recent" msgid="2659189233141493004">"Nýlegt"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Nýlegar uppfærslur"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> tengiliður"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> reikningur"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Ekki hægt að breyta úr þessu forriti."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Ekki hægt að breyta í þessu tæki."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Taka mynd"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Taka nýja mynd"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Velja mynd"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Velja nýja mynd"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Verið er að uppfæra tengiliðalistann."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Leitar…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Sýna valda"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Sýna alla"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Velja alla"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Velja enga"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Bæta nýjum við"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Bæta fyrirtæki við"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dagsetning"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Heiti hóps"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Breyta"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Aðalmynd"</string>
-    <string name="description_star" msgid="2605854427360036550">"uppáhald"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Breyta tengilið"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Viltu tengja saman núverandi tengilið og valda tengiliðinn?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Skipta yfir í að breyta völdum tengilið? Upplýsingarnar sem þú hefur sett inn nú þegar verða afritaðar."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Afrita í tengiliðina mína"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Bæta við tengiliði"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Skrá <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Sérsniðið"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Stillingar"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Stillingar"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Hjálp og ábendingar"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Birtingarvalkostir"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Símanúmer"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Bæta við tengiliði"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Bæta við tengilið"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Loka"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Hafa árið með"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Tengiliður"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Hleður…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Búa til nýjan tengilið"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Bæta reikningi við"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Flytja tengiliði inn"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Búa til nýjan hóp"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Búa til nýjan hóp"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> hópur</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> hópar</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Eyða hópnum „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Tengiliðunum sjálfum verður ekki eytt.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> aðili úr <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> aðilar úr <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> aðili</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> aðilar</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Sláðu inn nafn tengiliðar áður en þú tengir hann saman við annan."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Afrita á klippiborð"</string>
-    <string name="set_default" msgid="4417505153468300351">"Velja sem sjálfgefið"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Hreinsa sjálfgefið"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Texti afritaður"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Hunsa breytingarnar?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Fleygja"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Setja upp prófílinn minn"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Sláðu inn nafn tengiliðar"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Heiti hópsins"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Staðbundinn prófíll"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> prófíllinn minn"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Allir tengiliðir sýndir"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Tengiliðir virka betur með Google reikningi.\n\n• Aðgangur í öllum vöfrum.\n• Tekur öryggisafrit af tengiliðunum þínum."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Ekki glata tengiliðunum þótt þú týnir símanum: Samstilltu þá við netþjónustu."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Bættu reikningi við"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Ekki verður tekið öryggisafrit af nýja tengiliðnum. Viltu bæta við reikningi sem tekur öryggisafrit af tengiliðum á netinu?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nýir tengiliðir verða vistaðir á <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Veldu sjálfgefinn reikning fyrir nýja tengiliði:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Bæta tengilið við"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Breyta tengilið"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Halda í tækinu"</string>
-    <string name="add_account" msgid="8201790677994503186">"Bæta reikningi við"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Bæta nýjum reikningi við"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Flytja út gagnagrunnsskrár"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"bæta nýjum tengilið við"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Sjá meira"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Minnka"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Sjá allt"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Nýlegt"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Um"</string>
-    <string name="send_message" msgid="8938418965550543196">"Senda skilaboð"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Býr til afrit til einkanota…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Í gær"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Á morgun"</string>
-    <string name="today" msgid="8041090779381781781">"Í dag"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Í dag klukkan <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Á morgun klukkan <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g> kl. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Ónefndur viðburður)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Nota"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"Spjall"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Fyrirtæki"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Gælunafn"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Athugasemd"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Vefsvæði"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Viðburður"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Tengsl"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Reikningur"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Nafn"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"Netfang"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Sími"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Ljósmynd"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Smelltu til að stækka tengiliðaritilinn."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Smelltu til að draga saman tengiliðaritilinn."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"leiðarlýsing að stað"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"nýleg sms-skilaboð. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. smelltu til að svara"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"móttekið"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"hringt"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ósvarað"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"nýlegt símtal. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. smelltu til að hringja til baka"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Þú: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts virkar betur ef þú slærð Hangouts auðkenni viðkomandi inn í netfangsreitinn eða símanúmersreitinn."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Fleiri reitir"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Skipta um mynd"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Mistókst að opna ritilinn."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Vistar í"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Vistar núna á <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Ýttu tvisvar til að velja annan reikning."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Tengdir tengiliðir (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Tengdir tengiliðir (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> tengdir tengiliðir"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"TENGJA TENGILIÐI SAMAN"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"HÆTTA VIÐ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> möguleg tvítekning</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mögulegar tvítekningar</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> tengdur tengiliður</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tengdir tengiliðir</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Þessi tengiliður"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mögulegar tvítekningar"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Hugsanlegt er að þessir tengiliðir séu sama manneskjan. Þú getur tengt þá saman í einn tengilið."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Samtengdir tengiliðir"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Af reikningunum þínum"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Taka mynd"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Allar myndir"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Velja mynd"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Af <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Eyða <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Eyða <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Mynd frá <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>ekki valin"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Mynd frá <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>valin"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Mynd af óþekktum reikningi ekki valin"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Mynd af óþekktum reikningi valin"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Verið er að uppfæra tengiliðalistann í samræmi við nýja tungumálið.\n\nAugnablik..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Bæta númeri við"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Setja númer á bannlista"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Bættu við númeri eða tengilið"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Taka <xliff:g id="NUMBER">%1$s</xliff:g> af bannlista?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"TAKA AF BANNLISTA"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Setja <xliff:g id="NUMBER">%1$s</xliff:g> á bannlista?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"SETJA Á BANNLISTA"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Lokað fyrir <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> tekið af bannlista"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> er ógilt."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Tímabundið slökkt á lokun fyrir símtöl"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Lokun fyrir símtöl hefur verið gerð óvirk vegna þess að þú hafðir samband við neyðarþjónustu úr þessum síma á undanförnum tveimur sólarhringum. Lokunin verður aftur virk að þessum tveimur sólarhringum liðnum."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Flytja inn"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Skoða tölur"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Bæta númeri við"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Slökkt á lokun símtala í 48 klukkustundir"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Óvirkt vegna þess að neyðarsímtal var hringt."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"AFTURKALLA"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> er nú þegar á bannlista."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Taka númer af bannlista"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Tengiliðaupplýsingar um <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Innflutningur mistókst"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Flytja inn númer"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Kveikja"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
new file mode 100644
index 0000000..45c92cf
--- /dev/null
+++ b/res/values-is/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Tengiliðir"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Tengiliðir"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Bæta tengilið við"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Tengiliður"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Bein lína"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Bein skilaboð"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Veldu tengilið"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Bæta við tengilið"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Velja tengilið"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Velja"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Búa til nýjan tengilið"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Leita í tengiliðum"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Bæta við uppáhald"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Fjarlægja úr uppáhaldi"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Fjarlægt úr uppáhaldi"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Bætt við uppáhald"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Breyta"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Eyða"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Skipta um mynd"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Búa til flýtileið"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Skipta upp"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Fjarlægja tengiliði"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Endurnefna flokk"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Eyða flokki"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Bæta tengilið við"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Velja tengiliði"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Bæta tengiliðum við"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Taka úr flokki"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Búa til flokk"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Skipta þessum tengilið upp í fleiri tengiliði?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Skipta upp"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Viltu vista breytingarnar sem þegar hafa verið gerðar og skipta þessum tengilið upp í fleiri tengiliði?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Vista og skipta upp"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Viltu vista breytingarnar sem þegar hafa verið gerðar og tengja þær við valinn tengilið?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Vista og tengja"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Tengir"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Aftengir"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Tengja saman"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Skoða tengda tengiliði"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Vista"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Tengja tengiliði saman"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Veldu tengiliðinn sem þú vilt tengja við <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Tillögur að tengiliðum"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Allir tengiliðir"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> tengt"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Tengiliðir tengdir saman"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> eytt"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> og <xliff:g id="NAME_1">%2$s</xliff:g> eytt"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… eytt"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">Tengiliðum eytt</item>
+      <item quantity="other">Tengiliðum eytt</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> tengiliður</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> tengiliðir</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> tengiliður · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> tengiliðir · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Af Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Af <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Velja hringitón"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Senda í talhólf"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ekki senda í talhólf"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Þessi tengiliður er skrifvarinn. Ekki er hægt að eyða honum, en þú getur falið hann."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Fela tengilið"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Skrifvarðir reikningar á þessum tengilið verða faldir en þeim verður ekki eytt."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Eyða þessum tengilið?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Eyða völdum tengiliðum?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Ekki er hægt að eyða tengiliðum af skrifvörðum reikningum, en þá er hægt að fela."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Þeir tengiliðir sem á að eyða geyma upplýsingar af mörgum reikningum. Upplýsingar af skrifvörðum reikningum verða faldar en þeim ekki eytt."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Ef þessum tengilið er eytt verður upplýsingum eytt af mörgum reikningum."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Eyða þessum tengilið?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Eyða"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Tengiliðurinn er ekki til."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Tengilið bætt á heimaskjá."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> bætt á heimaskjá."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Engar myndir eru tiltækar á tækinu."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Mynd tengiliðar"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Sérsniðinn flokkur"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Fjarlægja mynd"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Listinn yfir tengiliði er tómur"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Engir tengiliðir í þessum flokki"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Engir tengiliðir á þessum reikningi"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Listinn yfir tengiliði er tómur"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Búið að vista <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Tengiliður vistaður"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Tengiliðir aðskildir"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Ekki tókst að vista breytingar á tengiliðnum"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Ekki var hægt að skipta upp tengiliðnum"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Ekki tókst að tengja tengilið"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Villa við að vista tengilið"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Ekki var hægt að vista breytingar á mynd tengiliðar"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Ekki tókst að hlaða flokk"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Flokki eytt"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Flokkur búinn til"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Ekki tókst að stofna flokkinn"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Flokkur uppfærður"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Fjarlægðir úr flokki"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Bætt við flokk"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Ekki tókst að vista breytingar á flokki"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Þessi flokkur er þegar til"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Sumir tengiliðir eru ekki með netfang."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Sumir tengiliðir eru ekki með símanúmer."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Senda tölvupóst"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Senda skilaboð"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Velja tengiliði"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Senda"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Engir tengiliðir"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Bæta „<xliff:g id="EMAIL">%s</xliff:g>“ við tengiliði?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Nöfn tengiliðanna þinna"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Smelltu til að fara aftur á fyrri skjá"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Bæta við símanúmeri"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Bæta við netfangi"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Ekkert forrit fannst sem getur framkvæmt þessa aðgerð."</string>
+    <string name="menu_share" msgid="943789700636542260">"Deila"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Bæta við tengiliði"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Bæta við"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Deila tengiliðum í gegnum</item>
+      <item quantity="other">Deila tengiliðum í gegnum</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Veldu reikning"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Búa til flokk"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Endurnefna flokk"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Heiti flokks"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Heiti flokks"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Símtalsspjall"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Myndspjall"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> tengiliður"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> reikningur"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Taka mynd"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Taka nýja mynd"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Velja mynd"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Velja nýja mynd"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Leitar…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dagsetning"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Flokkur"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Hætta við"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Til baka"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"loka"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Skipta yfir í að breyta völdum tengilið? Upplýsingarnar sem þú hefur sett inn nú þegar verða afritaðar."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Skrá <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Stillingar"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Stillingar"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Hjálp og ábendingar"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Símanúmer"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Bæta við tengiliði"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Loka"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Hafa árið með"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Bæta reikningi við"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Flytja inn"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Búa til nýjan…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Eyða flokknum „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Tengiliðunum sjálfum verður ekki eytt.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Sláðu inn nafn tengiliðar áður en þú tengir hann saman við annan."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Afrita á klippiborð"</string>
+    <string name="set_default" msgid="4417505153468300351">"Velja sem sjálfgefið"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Hreinsa sjálfgefið"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Texti afritaður"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Fleygja breytingum?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Fleygja"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Hætta við"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Fleygja sérstillingum?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Leita í tengiliðum"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Fjarlægja tengiliði"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Staðbundinn prófíll"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> prófíllinn minn"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Gefðu þér tíma til að bæta reikningi við sem mun taka afrit af tengiliðunum þínum yfir á Google."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nýir tengiliðir verða vistaðir á <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Veldu sjálfgefinn reikning fyrir nýja tengiliði:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Búa til nýjan tengilið"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Breyta tengilið"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Aðeins skoðun"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Veldu tengilið til að breyta"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Tengdir tengiliðir"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Bæta við"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Aftengja"</string>
+    <string name="add_account" msgid="8201790677994503186">"Bæta reikningi við"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Bæta nýjum reikningi við"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Flytja út gagnagrunnsskrár"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Búa til nýjan tengilið"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Sjá meira"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Minnka"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Nýlegt"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Um"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Býr til afrit til einkanota…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Á morgun"</string>
+    <string name="today" msgid="8041090779381781781">"Í dag"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Í dag klukkan <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Á morgun klukkan <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Ónefndur viðburður)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Nota"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Spjall"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Fyrirtæki"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Gælunafn"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Athugasemd"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Vefsvæði"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Viðburður"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Tengsl"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Nafn"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Netfang"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Sími"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"leiðarlýsing að stað"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"nýleg sms-skilaboð. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. smelltu til að svara"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"móttekið"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"hringt"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ósvarað"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"nýlegt símtal. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. smelltu til að hringja til baka"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Þú: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Fleiri reitir"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Skipta um mynd tengiliðar"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Setja inn mynd tengiliðar"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Mynd tengiliðar"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Mistókst að opna ritilinn."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Vista í"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Ekki er hægt að breyta tengiliðaupplýsingum af <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"TENGJA TENGILIÐI SAMAN"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"HÆTTA VIÐ"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Þessi tengiliður"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mögulegar tvítekningar"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Hugsanlegt er að þessir tengiliðir séu sama manneskjan. Þú getur tengt þá saman í einn tengilið."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Eyða <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Eyða <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Tillögur"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nýtt"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Opna yfirlitsskúffu"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Loka yfirlitsskúffu"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Flokkurinn <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Flokkar"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Reikningar"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Sjá sameiginlegan feril ykkar"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Viðburðir og skilaboð"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Viðburðir"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Skilaboð"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Tillögur"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Skipuleggðu og fullnýttu þér tengiliðina þína"</string>
+    <string name="undo" msgid="1425165101664071422">"Afturkalla"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Hringja í <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Hringja heim"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Hringa í farsíma"</string>
+    <string name="call_work" msgid="5328785911463744028">"Hringja í vinnusíma"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Hringja í faxnúmer vinnu"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Hringja í faxnúmer heima"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Hringja í símboða"</string>
+    <string name="call_other" msgid="8563753966926932052">"Hringja"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Hringja svarhringingu"</string>
+    <string name="call_car" msgid="3280537320306436445">"Hringja í bílasíma"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Hringja í aðalsíma fyrirtækis"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Hringja í ISDN-númer"</string>
+    <string name="call_main" msgid="6082900571803441339">"Hringja í aðalnúmer"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Hringja í faxnúmer"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Hringja í talstöð"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Hringja í telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Hringja í fjarrita"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Hringja í vinnufarsíma"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Hringja í vinnusímboða"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Hringja í <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Hringja í MMS-númer"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (hringja)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Senda <xliff:g id="CUSTOM_LABEL">%s</xliff:g> SMS-skilaboð"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Senda SMS-skilaboð heim"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Senda SMS-skilaboð í farsíma"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Senda SMS-skilaboð í vinnusíma"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Senda SMS-skilaboð í faxnúmer vinnu"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Senda SMS-skilaboð í faxnúmer heima"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Senda SMS-skilaboð í símboða"</string>
+    <string name="sms_other" msgid="806127844607642331">"Senda SMS-skilaboð"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Senda SMS-skilaboð í svarhringingarnúmer"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Senda SMS-skilaboð í bílasíma"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Senda SMS-skilaboð í aðalnúmer fyrirtækis"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Senda SMS-skilaboð í ISDN-númer"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Senda SMS-skilaboð í aðalnúmer"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Senda SMS-skilaboð í faxnúmer"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Senda SMS-skilaboð í talstöð"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Senda SMS-skilaboð í telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Senda SMS-skilaboð til fjarrita"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Senda SMS-skilaboð í vinnufarsíma"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Senda SMS-skilaboð í vinnusímboða"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Senda SMS-skilaboð til <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Senda SMS-skilaboð í MMS-númer"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (senda SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Hringja myndsímtal"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Hreinsa mest notuðu tengiliði?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Þetta hreinsar tengiliðina sem þú hefur mest samskipti við úr forritunum Tengiliðir og Sími og þvingar tölvupóstforrit til að læra upp á nýtt hvernig þú notar netföng."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Hreinsar mest notuðu tengiliði…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Laus"</string>
+    <string name="status_away" msgid="1838861100379804730">"Í burtu"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Upptekin(n)"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Annað"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Skrá"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Vinnuskrá"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Allir tengiliðir"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Flýtitengiliður fyrir <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Nafn vantar)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Oft haft samband við"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Allir tengiliðir með símanúmer"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Tengiliðir í vinnusniði"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Skoða uppfærslur"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Tæki"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nafn"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Gælunafn"</string>
+    <string name="name_given" msgid="4280790853455320619">"Fornafn"</string>
+    <string name="name_family" msgid="7466985689626017037">"Eftirnafn"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Forskeyti nafns"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Millinafn"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Viðskeyti nafns"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Hljóðrétt nafn"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Hljóðritað fornafn"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Hljóðrétt millinafn"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Hljóðritað eftirnafn"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Sími"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Netfang"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Heimilisfang"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Spjall"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Fyrirtæki"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Tengsl"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Sérstök dagsetning"</string>
+    <string name="sms" msgid="1756857139634224222">"Senda SMS-skilaboð"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Heimilisfang"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Fyrirtæki"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titill"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Glósur"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Sérsniðið"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Vefsvæði"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Flokkar"</string>
+    <string name="email_home" msgid="8573740658148184279">"Senda tölvupóst heim"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Senda tölvupóst í fartæki"</string>
+    <string name="email_work" msgid="2807430017302722689">"Senda tölvupóst í vinnu"</string>
+    <string name="email_other" msgid="3454004077967657109">"Senda tölvupóst"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Senda <xliff:g id="CUSTOM_LABEL">%s</xliff:g> tölvupóst"</string>
+    <string name="email" msgid="5668400997660065897">"Netfang"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Gata"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Borg"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Ríki"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Póstnúmer"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Land"</string>
+    <string name="map_home" msgid="1243547733423343982">"Skoða heimilisfang"</string>
+    <string name="map_work" msgid="1360474076921878088">"Skoða póstfang vinnu"</string>
+    <string name="map_other" msgid="3817820803587012641">"Skoða póstfang"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Skoða heimilisfang <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Spjalla með AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Spjalla með Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Spjalla með Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Spjalla með Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Spjalla með QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Spjalla með Google spjalli"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Spjalla með ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Spjalla með Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Spjalla"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"eyða"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Sýna fleiri nafnareiti"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Minnka nafnareiti"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Sýna fleiri nafnareiti með hljóðritun"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Minnka nafnareiti með hljóðritun"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Stækka"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Minnka"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Stækkað"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Minnkað"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Allir tengiliðir"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Stjörnumerktir"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Sérsníða"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Tengiliður"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Allir aðrir tengiliðir"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Allir tengiliðir"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Fjarlægja samstillingarhóp"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Bæta við samstillingarhóp"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Fleiri hópar…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Ef hópurinn „<xliff:g id="GROUP">%s</xliff:g>“ er fjarlægður úr samstillingu verður samstillingu einnig hætt á öllum tengiliðum sem ekki eru í hóp."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Vistar birtingarvalkosti…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Sérsniðið yfirlit"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Vista innflutta tengiliði á:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-korti"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d tengiliður</item>
+      <item quantity="other">%1$d tengiliðir</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> tengiliður • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> tengiliðir • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf-skrá"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Ekkert til að flytja inn"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Flytja inn tengiliði af vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Hætta við innflutning á <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Hætta við útflutning á <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Ekki tókst að hætta við flutning vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Óþekkt villa."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Ekki tókst að opna „<xliff:g id="FILE_NAME">%1$s</xliff:g>“: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Ekki tókst að ræsa útflutningsverkfærið: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Engir tengiliðir sem flytja má út."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Þú hefur gert nauðsynlegt leyfi óvirkt."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Villa kom upp við útflutninginn: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Inntaks-/úttaksvilla"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Ekki nægt minni. Skráin kann að vera of stór."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Ekki er stuðningur við sniðið."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Útflutningi á <xliff:g id="FILENAME">%s</xliff:g> lokið."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Útflutningi tengiliða lokið."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Útflutningi tengiliða lokið, smelltu á tilkynninguna til að deila tengiliðum."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Ýttu til að deila tengiliðum."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Hætt við útflutning á <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Flytur út tengiliðagögn"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Verið er að flytja út tengiliðagögn."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Ekki tókst að sækja upplýsingar úr gagnagrunni."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Engir tengiliðir sem flytja má út."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Ræsing vCard-skrifviðmótsins tókst ekki."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Útflutningur mistókst"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Tengiliðagögn voru ekki flutt út.\nÁstæða: „<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Flytur inn <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Ekki tókst að lesa gögn úr vCard-skrá"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Innflutningi lokið á vCard-skránni <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Hætt við innflutning á <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> verður flutt inn innan skamms."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Skráin verður flutt inn innan skamms."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Beiðni um innflutning vCard-skrár hafnað. Reyndu aftur síðar."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Tengiliðir verða fluttir út eftir smástund."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Beiðni um útflutning vCard-skrár hafnað. Reyndu aftur síðar."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"tengiliður"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Setur vCard í skyndiminni í staðbundinni geymslu. Raunverulegur innflutningur hefst innan skamms."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Ekki tókst að flytja vCard-skrá inn."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Tengiliður móttekinn um NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Setur í skyndiminni"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Flytur inn <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Flytja út í .vcf-skrá"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Raða eftir"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Hljóðrétt nafn"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Sýna alltaf"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Fela ef þetta er autt"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Fornafn"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Eftirnafn"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Nafnasnið"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Fornafn fyrst"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Eftirnafn fyrst"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Reikningar"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Sjálfgefinn reikningur fyrir nýja tengiliði"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mínar upplýsingar"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Settu upp snið"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Um Tengiliði"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Deila eftirlætistengiliðum"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Deila öllum tengiliðum"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Ekki tókst að deila tengiliðum."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Flytja út tengiliði"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Flytja inn tengiliði af"</string>
+    <string name="share_error" msgid="948429331673358107">"Ekki er hægt að deila þessum tengilið."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Engir tengiliðir til að deila."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Tengiliðir til að birta"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Tengiliðir til að birta"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Sérsníða yfirlit"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Vista"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Leita að tengiliðum"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Uppáhald"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Flytja inn"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Flytja út"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Númer á bannlista"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"í gegnum <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> í gegnum <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"hætta leit"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Hreinsa leit"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Reikningur"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Nota þetta alltaf fyrir símtöl"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Símtal með texta"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Sláðu inn texta til að senda með símtalinu..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SENDA OG HRINGJA"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Útgáfa smíðar"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Leyfi opins kóða"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Leyfisupplýsingar fyrir hugbúnað með opnum kóða"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Persónuverndarstefna"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Þjónustuskilmálar"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Leyfi opins kóða"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Ekki tókst að opna slóðina."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Merkt við <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Ekki merkt við <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Hringja myndsímtal"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Eyða"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Þrípunktur"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> m. <xliff:g id="SECONDS">%2$s</xliff:g> sek."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> klst. <xliff:g id="MINUTES_1">%2$s</xliff:g> mín. <xliff:g id="SECONDS">%3$s</xliff:g> sek."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Þessi flýtileið hefur verið gerð óvirk"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Tengiliður var fjarlægður"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Flytja inn"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Velja tengiliði"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Engir tengiliðir á SIM-kortinu"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Tengiliðurinn er þegar á listanum þínum"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> SIM-tengiliður fluttur inn</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-tengiliðir fluttir inn</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Ekki tókst að flytja inn SIM-tengiliðina"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Flytja inn af SIM-korti"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Hætta við"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Slökkt er á sjálfvirkri samstillingu. Ýttu til að kveikja á henni."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Hunsa"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Slökkt er á samstillingu reiknings. Ýttu til að kveikja á henni."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Kveikja á sjálfvirkri samstillingu?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Breytingar sem þú gerir á öllum forritum og reikningum, ekki bara Google tengiliðum, verða uppfærðar á netinu og í tækjunum þínum."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Kveikja"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Engin tenging"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Sýna meira"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Lauk við að flytja inn SIM-kort"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Innflutningur mistókst"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Gat ekki flutt inn tengiliði af SIM-korti"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Flytur inn SIM-kort"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 5f07e8c..6a767f1 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -17,72 +17,74 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contatti"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contatti"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Visualizza contatto"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Modifica contatto"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatti"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Aggiungi contatto"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contatto"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Composizione diretta"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Messaggio diretto"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Scegli una scorciatoia contatto"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Scegli un numero da chiamare"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Scegli un numero a cui inviare il messaggio"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Scegli contatto"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Aggiungi al contatto"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Scegli un contatto"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Seleziona"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Crea nuovo contatto"</string>
-    <string name="starredList" msgid="4817256136413959463">"Speciali"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frequenti"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Preferiti"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Dettagli contatto"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Modifica contatto"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Crea contatto"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Modifica gruppo"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Crea gruppo"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Informazioni"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Aggiornamenti"</string>
     <string name="searchHint" msgid="8482945356247760701">"Cerca contatti"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Visualizza contatto"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Aggiungi a preferiti"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Aggiungi ai preferiti"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Rimuovi dai preferiti"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Rimosso dai preferiti"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"Aggiunto ai preferiti"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Modifica"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Elimina"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Cambia foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Aggiungi a schermata Home"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Chiama"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Invia SMS"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Crea scorciatoia"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Scollega"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Modifica"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Elimina"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Aggiungi contatto"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Aggiungi gruppo"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Rimuovi contatti"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Rinomina etichetta"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Elimina etichetta"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Aggiungi contatto"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Seleziona contatti"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Aggiungi contatti"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Rimuovi da etichetta"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Crea etichetta"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Scollegare questo contatto in diversi contatti?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Scollega"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Vuoi salvare le modifiche già apportate e scollegare il contatto in diversi contatti?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Salva e scollega"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Vuoi salvare le modifiche già apportate e collegare questo contatto con il contatto selezionato?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Salva e collega"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Collegamento"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Scollegamento"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Collega"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Visualizza contatti collegati"</string>
     <string name="menu_save" msgid="1727844363591825909">"Salva"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Collega contatti"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Scegli il contatto che desideri collegare a <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostra tutti i contatti"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contatti suggeriti"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tutti i contatti"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> collegati"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contatti collegati"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> eliminato"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> e <xliff:g id="NAME_1">%2$s</xliff:g> eliminati"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… eliminati"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Contatti eliminati</item>
       <item quantity="one">Contatto eliminato</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contatti</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contatto</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contatti · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contatto · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Di Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Da <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Imposta suoneria"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Tutte le chiamate a segreteria"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"I contatti degli account di sola lettura non possono essere eliminati, ma possono essere nascosti."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Nascondi"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Il contatto da eliminare contiene dati di più account. I dati degli account di sola lettura verranno nascosti, non eliminati."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Devi selezionare almeno due contatti da collegare."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Collegare i contatti selezionati?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Collega"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Indirizza a segreteria"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Non indirizzare a segreteria"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Il contatto è di solo lettura. Non puoi eliminarlo, ma puoi nasconderlo."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Nascondi contatto"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Gli account di sola lettura in questo contatto verranno nascosti, non eliminati."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Eliminare questo contatto?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Eliminare i contatti selezionati?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"I contatti degli account di sola lettura non possono essere eliminati, ma possono essere nascosti."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"L\'eliminazione di questo contatto comporterà l\'eliminazione di dati da più account."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Eliminare questo contatto?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Elimina"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Ignora modifiche"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Contatto non esistente."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contatto aggiunto alla schermata Home."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> aggiunto alla schermata Home."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Crea nuovo contatto"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Crea nuovo contatto"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizzazione"</item>
-    <item msgid="7196592230748086755">"Nota"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Nessuna foto disponibile sul tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Nessuna foto disponibile."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Nessuna foto disponibile sul dispositivo."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto del contatto"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nome etichetta personalizzata"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Inoltra chiamate direttamente alla segreteria"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Rimuovi foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nessun contatto"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nessun gruppo."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Per creare gruppi è necessario un account."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Nessuna persona in questo gruppo."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Per aggiungerne qualcuno, modifica il gruppo."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Salvataggio contatto..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"L\'elenco dei contatti è vuoto"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nessun contatto con questa etichetta"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Nessun contatto in questo account"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"L\'elenco dei contatti è vuoto"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> - salvato"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contatto salvato"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contatti scollegati"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Salvataggio delle modifiche ai contatti non riuscito."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Impossibile scollegare il contatto."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Impossibile collegare il contatto."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Errore durante il salvataggio del contatto."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Impossibile salvare le modifiche alle foto dei contatti."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Gruppo salvato."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Salvataggio delle modifiche ai gruppi non riuscito."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatti con numero di telefono</item>
-      <item quantity="one">1 contatto con numero di telefono</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nessun contatto con numeri di telefono"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> trovati</item>
-      <item quantity="one">1 trovato</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Impossibile salvare le modifiche al contatto"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Impossibile scollegare il contatto"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Impossibile collegare il contatto"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Errore durante il salvataggio del contatto"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Impossibile salvare le modifiche alla foto del contatto"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Impossibile caricare l\'etichetta"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etichetta eliminata"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etichetta creata"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Impossibile creare l\'etichetta"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etichetta aggiornata"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Rimossa da etichetta"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Aggiunti all\'etichetta"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Impossibile salvare le modifiche all\'etichetta"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"L\'etichetta esiste già"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Alcuni contatti non hanno email."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Alcuni contatti non hanno numeri di telefono."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Invia email"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Invia messaggio"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Scegli contatti"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Invia"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nessun contatto"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> trovati</item>
-      <item quantity="one">1 trovato</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Tutti"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Preferiti"</string>
-    <string name="callBack" msgid="5498224409038809224">"Richiama"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Richiama"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Chiama numero"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Aggiungi \"<xliff:g id="EMAIL">%s</xliff:g>\" ai contatti?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto contatto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"più"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> contatti su <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"I nomi dei tuoi contatti"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nessuna applicazione trovata per gestire questa azione."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Fai clic per tornare alla schermata precedente"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Aggiungi numero di telefono"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Aggiungi email"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nessuna applicazione trovata per gestire questa azione."</string>
     <string name="menu_share" msgid="943789700636542260">"Condividi"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Aggiungi a contatti"</string>
-    <string name="share_via" msgid="563121028023030093">"Condividi contatto tramite"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Crea un gruppo nell\'account"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Aggiungi"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Condividi contatti tramite</item>
+      <item quantity="one">Condividi contatto tramite</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Scegli account"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Crea etichetta"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Rinomina etichetta"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nome etichetta"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nome etichetta"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat vocale"</string>
     <string name="video_chat" msgid="1872255818640336072">"Chat video"</string>
-    <string name="connections" msgid="8098440723172028350">"Connessioni"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Aggiungi connessione"</string>
-    <string name="recent" msgid="2659189233141493004">"Recenti"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Aggiornamenti recenti"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contatto <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Account <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Non modificabile da questa applicazione."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Non modificabile su questo dispositivo."</string>
     <string name="take_photo" msgid="7496128293167402354">"Scatta foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Scatta nuova foto"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Scegli foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Seleziona nuova foto"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Elenco contatti in fase di aggiornamento."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Ricerca..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mostra selezionati"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mostra tutto"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Seleziona tutto"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Deseleziona tutto"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Aggiungi nuovo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Aggiungi organizzazione"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome del gruppo"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Modifica"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto principale"</string>
-    <string name="description_star" msgid="2605854427360036550">"preferiti"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Modifica contatto"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Collegare il contatto corrente al contatto selezionato?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etichetta"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Annulla"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Indietro"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"chiudi"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Passare alla modifica del contatto selezionato? Le informazioni inserite finora verranno copiate."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copia nei miei contatti"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Aggiungi ai contatti personali"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directory <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizza"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Impostazioni"</string>
     <string name="menu_settings" msgid="377929915873428211">"Impostazioni"</string>
     <string name="menu_help" msgid="1680178646764069976">"Guida e feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opzioni di visualizzazione"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Numero di telefono"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Aggiungi a contatti"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Aggiungi al contatto"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Chiudi"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Includi l\'anno"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contatto"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Caricamento..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Crea nuovo contatto"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Aggiungi account"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importa contatti"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Crea nuovo gruppo"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Crea nuovo gruppo"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> gruppi</item>
-      <item quantity="one">1 gruppo</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Eliminare il gruppo \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (I contatti non verranno eliminati)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> persone di <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persona di <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> persone</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persona</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importa"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Crea nuova…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Eliminare l\'etichetta \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? I contatti non verranno eliminati."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Inserisci il nome del contatto prima di collegarlo a un altro contatto."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copia negli appunti"</string>
     <string name="set_default" msgid="4417505153468300351">"Imposta come predefinito"</string>
     <string name="clear_default" msgid="7193185801596678067">"Cancella impostazione predefinita"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Testo copiato"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Annullare le modifiche?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Annulla"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Imposta il mio profilo"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Digita il nome della persona"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nome del gruppo"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Ignorare le modifiche?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Ignora"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Annulla"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Ignorare le personalizzazioni?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Cerca contatti"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Rimuovi contatti"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Il mio profilo locale"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Il mio profilo <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Sono visualizzati tutti i contatti"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"L\'app Contatti funziona meglio con un account Google.\n\n• Accedi da qualsiasi browser web.\n• Effettua il backup dei tuoi contatti in modo sicuro."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Tieni al sicuro i tuoi contatti anche se perdi il telefono: sincronizzali con un servizio online."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Aggiungi un account"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Non verrà effettuato il backup del nuovo contatto. Aggiungere un account che effettua il backup dei contatti online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Dedica un minuto del tuo tempo per aggiungere un account per eseguire il backup dei tuoi contatti in Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"I nuovi contatti verranno salvati nell\'account <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Scegli un account predefinito per i nuovi contatti:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Nuovo contatto"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Crea nuovo contatto"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Modifica contatto"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Memorizza in locale"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Solo visualizzazione"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Scegli contatto da modificare"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contatti collegati"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Aggiungi"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Scollega"</string>
     <string name="add_account" msgid="8201790677994503186">"Aggiungi account"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Aggiungi nuovo account"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Esporta file database"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"aggiungi nuovo contatto"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Crea nuovo contatto"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Mostra altro"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Mostra meno"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Mostra tutto"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recenti"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Informazioni"</string>
-    <string name="send_message" msgid="8938418965550543196">"Invia messaggio"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Creazione di una copia personale..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Ieri"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Creazione di una copia personale..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Domani"</string>
     <string name="today" msgid="8041090779381781781">"Oggi"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Oggi alle ore <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Domani alle ore <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Evento senza titolo)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Imposta"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Chat"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Sito web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relazione"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Account"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nome"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Email"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefono"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Fai clic per espandere l\'editor contatti."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Fai clic per comprimere l\'editor contatti."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"indicazioni per la posizione"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. fai clic per rispondere"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. fai clic per rispondere"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"in arrivo"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"in uscita"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"senza risposta"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"chiamata recente. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. fai clic per richiamare"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"chiamata recente. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. fai clic per richiamare"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Tu: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funziona meglio se inserisci l\'identificatore Hangouts della persona nel campo dell\'indirizzo email o del numero di telefono."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Altri campi"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Cambia foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Impossibile aprire l\'editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Salvataggio in:"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"I contatti vengono salvati in <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Tocca due volte per scegliere un altro account."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Contatti collegati (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Contatto collegato</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contatti collegati"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Altri campi"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Cambia foto del contatto"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Aggiungi foto al contatto"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto del contatto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Impossibile aprire l\'editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Salvataggio in:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Le informazioni di contatto di <xliff:g id="ACCOUNT">%s</xliff:g> non sono modificabili"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"COLLEGA CONTATTI"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANNULLA"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> possibili duplicati</item>
-      <item quantity="one">1 possibile duplicato</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatti collegati</item>
-      <item quantity="one">1 contatto collegato</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Questo contatto"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Possibili duplicati"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Questi contatti potrebbero riguardare la stessa persona. Puoi collegarli per creare un unico contatto."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contatti collegati"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Dei tuoi account"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Scatta una foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Tutte le foto"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Scegli foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Da <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Elimina <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Elimina <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Elimina <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto di <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> non selezionata"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto di <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> selezionata"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto di un account sconosciuto non selezionata"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto di un account sconosciuto selezionata"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"L\'elenco contatti verrà aggiornato per rispecchiare il cambio di lingua.\n\nAttendi..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Aggiungi numero"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blocca numero"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Aggiungi numero/cerca contatti"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Sbloccare il numero <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"SBLOCCA"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloccare il numero <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOCCA"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> bloccato"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> sbloccato"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> non è valido."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blocco chiamate temporaneam. disattivato"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Il blocco chiamate è stato disattivato perché hai contattato servizi di emergenza da questo telefono nelle ultime 48 ore. Verrà riattivato automaticamente una volta trascorso il periodo di 48 ore."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importa"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Visualizza numeri"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Aggiungi numero"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Il blocco chiamate è stato disattivato per 48 ore"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Funzione disattivata: è stata fatta una chiamata di emergenza."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ANNULLA"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> è già bloccato."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Sblocca numero"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Dettagli contatto <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importazione non riuscita"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importa numeri"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Attiva"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Suggerimenti"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nuovo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Apri riquadro di navigazione a scomparsa"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Chiudi riquadro navigazione a scomparsa"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etichetta <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etichette"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Account"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Visualizza la cronologia insieme"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Eventi e messaggi"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Eventi"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Messaggi"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suggerimenti"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mantieni i contatti organizzati e utili"</string>
+    <string name="undo" msgid="1425165101664071422">"Annulla"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Chiama <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Chiama casa"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Chiama cellulare"</string>
+    <string name="call_work" msgid="5328785911463744028">"Chiama n. lavoro"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Chiama fax lavoro"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Chiama n. fax casa"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Chiama cercapersone"</string>
+    <string name="call_other" msgid="8563753966926932052">"Chiama"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Chiama n. callback"</string>
+    <string name="call_car" msgid="3280537320306436445">"Chiama n. automobile"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Chiama n. azienda, principale"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Chiama n. ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Chiama n. principale"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Chiama n. fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Chiama radiotelefono"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Chiama telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Chiama n. TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Chiama cellulare lavoro"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Chiama cercapersone lavoro"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Chiama <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Chiama n. MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Chiama)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Invia un SMS a <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Invia SMS a n. casa"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Invia SMS a cellulare"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Invia SMS a n. lavoro"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Invia SMS a fax lavoro"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Invia SMS a n. fax casa"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Invia SMS a n. cercapersone"</string>
+    <string name="sms_other" msgid="806127844607642331">"Invia SMS a n."</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Invia SMS a n. callback"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Invia SMS a n. automobile"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Invia SMS a n. azienda, principale"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Invia SMS a n. ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Invia SMS a n. principale"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Invia SMS a n. fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Invia SMS a radiotelefono"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Invia SMS a n. telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Invia SMS a n. TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Invia SMS a cellulare lavoro"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS a cercapersone lavoro"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Invia testo a <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Invia SMS a n. MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Invia SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Avvia videochiamata"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Cancellare contattati di frequente?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Verrà cancellato l\'elenco dei contatti frequenti nelle app Contatti e Telefono e le app email dovranno apprendere da zero le tue preferenze di comunicazione."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Cancellazione contattati di frequente…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponibile"</string>
+    <string name="status_away" msgid="1838861100379804730">"Assente"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Occupato"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Altro"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directory"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Directory di lavoro"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Tutti i contatti"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contatto rapido per <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Nessun nome)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Contattati spesso"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Tutti i contatti con numeri di telefono"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contatti del profilo di lavoro"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Visualizza aggiornamenti"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Dispositivo"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nome"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nickname"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nome"</string>
+    <string name="name_family" msgid="7466985689626017037">"Cognome"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefisso nome"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Secondo nome"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Suffisso nome"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nome fonetico"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nome fonetico"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Secondo nome fonetico"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Cognome fonetico"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefono"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Email"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Indirizzo"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Chat"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizzazione"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relazione"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Data speciale"</string>
+    <string name="sms" msgid="1756857139634224222">"Messaggio di testo"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Indirizzo"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Società"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titolo"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Note"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalizzato"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Sito web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etichette"</string>
+    <string name="email_home" msgid="8573740658148184279">"Invia email a ind. casa"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Invia email a ind. cellulare"</string>
+    <string name="email_work" msgid="2807430017302722689">"Invia email a ind. lavoro"</string>
+    <string name="email_other" msgid="3454004077967657109">"Invia email"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Invia un\'email a <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Email"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Indirizzo postale"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Città"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Provincia"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Codice postale"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Paese"</string>
+    <string name="map_home" msgid="1243547733423343982">"Visualizza indirizzo casa"</string>
+    <string name="map_work" msgid="1360474076921878088">"Visualizza indirizzo lavoro"</string>
+    <string name="map_other" msgid="3817820803587012641">"Visualizza indirizzo"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Visualizza l\'indirizzo di <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chatta su AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chatta su Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chatta su Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chatta su Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chatta su QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chatta su Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chatta su ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chatta su Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chatta"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"elimina"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Mostra altri campi dei nomi"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Comprimi i campi dei nomi"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Mostra altri campi dei nomi fonetici"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Comprimi i campi dei nomi fonetici"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Espandi"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Comprimi"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Espanso"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Compresso"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Tutti i contatti"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Speciali"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizza"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contatto"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Tutti gli altri contatti"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Tutti i contatti"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Rimuovi gruppo sinc."</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Aggiungi gruppo sinc."</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Altri gruppi..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Se rimuovi \"<xliff:g id="GROUP">%s</xliff:g>\" dalla sincronizzazione, verranno rimossi anche gli eventuali contatti separati."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Salvataggio opzioni di visualizzazione..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Visualizzazione personalizzata"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Salva i contatti importati in:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Scheda SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contatti</item>
+      <item quantity="one">1 contatto</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contatti • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contatto • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"File .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Niente da importare"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importare i contatti da vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Annullare l\'importazione di <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Annullare l\'esportazione di <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Annullam. import./esport. vCard non riuscito"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Errore sconosciuto."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Apertura di \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" non riuscita: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Avvio dell\'utilità di esportazione non riuscito: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nessun contatto esportabile."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Hai disattivato un\'autorizzazione obbligatoria."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Si è verificato un errore durante l\'esportazione: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Errore I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Memoria insufficiente. Il file potrebbe essere troppo grande."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Il formato non è supportato."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Esportazione di <xliff:g id="FILENAME">%s</xliff:g> terminata."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Esportazione dei contatti terminata."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Esportazione dei contatti terminata. Fai clic sulla notifica per condividere i contatti."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Tocca per condividere i contatti."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Esportazione di <xliff:g id="FILENAME">%s</xliff:g> annullata."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Esportazione dati di contatto"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Esportazione dei dati dei contatti in corso."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Recupero informazioni database non riuscito."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Non ci sono contatti esportabili."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Il compositore di vCard non si è avviato correttamente."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Impossibile esportare"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"I dati dei contatti non sono stati esportati.\nMotivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importazione di <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Lettura dati vCard non riuscita"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Importazione vCard <xliff:g id="FILENAME">%s</xliff:g> terminata"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importazione di <xliff:g id="FILENAME">%s</xliff:g> annullata"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"La vCard <xliff:g id="FILENAME">%s</xliff:g> verrà importata a breve."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Il file sarà importato a breve."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Richiesta importazione vCard rifiutata. Riprova più tardi."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"I contatti verranno esportati a breve."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Richiesta esportazione vCard rifiutata. Riprova più tardi."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contatto"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Memorizzazione delle vCard nella cache di archiviazione temporanea locale. L\'importazione reale inizierà a breve."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Importazione vCard non riuscita."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contatto ricevuto via NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Memorizzazione nella cache"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importazione di <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Esporta in file .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Ordina per"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nome fonetico"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mostra sempre"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Nascondi se vuoto"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nome"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Cognome"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formato nome"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Prima il nome"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Prima il cognome"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Account"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Account predefinito per i nuovi contatti"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"I miei dati"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configura il tuo profilo"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Informazioni su Contatti"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Condividi i contatti preferiti"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Condividi tutti i contatti"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Impossibile condividere i contatti."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Esporta contatti"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importa contatti da"</string>
+    <string name="share_error" msgid="948429331673358107">"Questo contatto non può essere condiviso."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nessun contatto da condividere."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contatti da visualizzare"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contatti da visualizzare"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizza visualizzazione"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Salva"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Cerca contatti"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Preferiti"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importa"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Esporta"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Numeri bloccati"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"tramite <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> tramite <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"interrompi ricerca"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Cancella ricerca"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Account"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Usa sempre questa per chiamare"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Chiama e invia una nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Digita una nota da inviare con la chiamata…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"INVIA E CHIAMA"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versione build"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licenze open source"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Dettagli delle licenze per il software open source"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Norme sulla privacy"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Termini di servizio"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licenze open source"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Impossibile aprire l\'URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> contrassegnato"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> non contrassegnato"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Avvia videochiamata"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Cancella"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellissi"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> m <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> m <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Questa scorciatoia è stata disattivata"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Contatto rimosso"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importa"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Seleziona contatti"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Nessun contatto presente nella SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Contatto già esistente nell\'elenco"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatti della SIM importati</item>
+      <item quantity="one">1 contatto della SIM importato</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Impossibile importare i contatti della SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importa da SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Annulla"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"La sincronizzazione automatica è disattivata. Tocca per attivarla."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ignora"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"La sincronizzazione dell\'account è disattivata. Tocca per attivarla."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Attivare la sincronizzazione automatica?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Le modifiche che apporti a tutte le app e a tutti gli account, non solo a Contatti Google, verranno mantenute aggiornate tra il Web e i dispositivi."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Attiva"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Nessuna connessione"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mostra altro"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importazione della scheda SIM completata"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Importazione non riuscita"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Impossibile importare i contatti dalla scheda SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importazione della SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 95d43b9..899019e 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -17,74 +17,80 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"אנשי קשר"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"אנשי קשר"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"הצג איש קשר"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"ערוך איש קשר"</string>
     <string name="contactsList" msgid="8661624236494819731">"אנשי קשר"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"הוסף איש קשר"</string>
     <string name="shortcutContact" msgid="749243779392912958">"איש קשר"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"חיוג ישיר"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"הודעה ישירה"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"בחר קיצור דרך של איש קשר"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"בחר מספר להתקשר אליו"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"בחר מספר לשליחת הודעה"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"בחירת איש קשר"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"הוסף לאיש קשר"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"בחר איש קשר"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"בחר"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"צור איש קשר חדש"</string>
-    <string name="starredList" msgid="4817256136413959463">"מסומן בכוכב"</string>
-    <string name="frequentList" msgid="7154768136473953056">"לעתים קרובות"</string>
-    <string name="strequentList" msgid="5640192862059373511">"מועדפים"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"פרטי איש קשר"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"ערוך איש קשר"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"צור איש קשר"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"ערוך קבוצה"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"צור קבוצה"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"מידע כללי"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"עדכונים"</string>
     <string name="searchHint" msgid="8482945356247760701">"חפש אנשי קשר"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"הצג איש קשר"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"הוסף למועדפים"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"הסר מהמועדפים"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"הוספה למועדפים"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"הסרה מהמועדפים"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"הוסר מהמועדפים"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"נוסף למועדפים"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"ערוך"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"מחק"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"שנה תמונה"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"הצב במסך הבית"</string>
-    <string name="menu_call" msgid="3992595586042260618">"התקשר לאיש קשר"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"שלח הודעת טקסט לאיש קשר"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"בטל קישור"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"ערוך"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"מחק"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"הוסף איש קשר"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"הוסף קבוצה"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"עריכה"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"מחיקה"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"החלפת תמונה"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"יצירת קיצור דרך"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"ביטול קישור"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"הסרה של אנשי הקשר"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"שינוי שם התווית"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"מחיקת התווית"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"הוספת איש קשר"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"בחירת אנשי קשר"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"הוספת אנשי קשר"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"הסרה מהתווית"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"יצירת תווית"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"האם לבטל את הקישור של איש הקשר הזה לאנשי קשר מרובים?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"בטל קישור"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"האם ברצונך לשמור את השינויים שכבר ביצעת ולבטל את הקישור של איש הקשר הזה לאנשי קשר מרובים?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"שמור ובטל את הקישור"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"האם ברצונך לשמור את השינויים שכבר ביצעת ולקשר לאיש הקשר שנבחר?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"שמור וקשר"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"קשר"</string>
-    <string name="menu_save" msgid="1727844363591825909">"שמור"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"הקישור מתבצע"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"ביטול הקישור מתבצע"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"קישור"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"הצגת אנשי הקשר המקושרים"</string>
+    <string name="menu_save" msgid="1727844363591825909">"שמירה"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"קישור אנשי קשר"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"בחר את איש הקשר שברצונך לקשר עם <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"הצג את כל אנשי הקשר"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"אנשי קשר מוצעים"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"כל אנשי הקשר"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> מקושר/ת"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"אנשי הקשר קושרו"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"מחקת את <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> ו-<xliff:g id="NAME_1">%2$s</xliff:g> נמחקו"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... נמחקו"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="two">אנשי קשר נמחקו</item>
       <item quantity="many">אנשי קשר נמחקו</item>
       <item quantity="other">אנשי קשר נמחקו</item>
       <item quantity="one">איש קשר נמחק</item>
     </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"הגדר רינגטון"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"כל השיחות לתא הקולי"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"לא ניתן למחוק אנשי קשר מחשבונות לקריאה-בלבד, אך ניתן להסתיר אותם."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"הסתר"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"איש הקשר שנבחר למחיקה מכיל פרטים מחשבונות מרובים. פרטים מחשבונות לקריאה-בלבד יוסתרו ולא יימחקו."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"כדי לבצע קישור עליך לבחור שני אנשי קשר לפחות."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"האם לקשר את אנשי הקשר שנבחרו?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"קשר"</string>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="two"><xliff:g id="COUNT_1">%d</xliff:g> אנשי קשר</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> אנשי קשר</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> אנשי קשר</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> איש קשר</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="two"><xliff:g id="COUNT_2">%1$d</xliff:g> אנשי קשר · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> אנשי קשר · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> אנשי קשר · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> איש קשר · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"‏מ-Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"מ-<xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"בחירת רינגטון"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"ניתוב לדואר הקולי"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ביטול הניתוב לדואר הקולי"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"איש הקשר הזה הוא לקריאה בלבד. אי אפשר למחוק אותו, אלא רק להסתיר אותו."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"הסתר את איש הקשר"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"חשבונות לקריאה בלבד באיש הקשר הזה יוסתרו ולא יימחקו."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"האם למחוק את איש הקשר הזה?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"האם למחוק את אנשי הקשר שנבחרו?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"לא ניתן למחוק אנשי קשר מחשבונות לקריאה-בלבד, אך ניתן להסתיר אותם."</string>
@@ -92,189 +98,126 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"מחיקת איש קשר זה תמחק פרטים מחשבונות מרובים."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"האם למחוק את איש הקשר הזה?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"מחק"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"בטל שינויים"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"איש הקשר לא קיים."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"איש הקשר נוסף למסך דף הבית."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> נוסף למסך דף הבית."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"צור איש קשר חדש"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"צור איש קשר חדש"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"ארגון"</item>
-    <item msgid="7196592230748086755">"הערה"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"אין תמונות זמינות בטאבלט."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"אין תמונות זמינות בטלפון."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"אין אף תמונה זמינה במכשיר."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"תמונה של איש קשר"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"שם תווית בהתאמה אישית"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"שלח שיחות ישירות לדואר הקולי"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"הסר תמונה"</string>
-    <string name="noContacts" msgid="4955659076981974652">"אין אנשי קשר"</string>
-    <string name="noGroups" msgid="8614664663561385253">"אין קבוצות."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"כדי ליצור קבוצות, נחוץ חשבון."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"אין אנשים בקבוצה זו."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"כדי להוסיף, ערוך את הקבוצה."</string>
-    <string name="savingContact" msgid="4075751076741924939">"שומר איש קשר…"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"הסרת תמונה"</string>
+    <string name="noContacts" msgid="2228592924476426108">"רשימת אנשי הקשר שלך ריקה"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"אין אנשי קשר עם התווית הזו"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"אין אנשי קשר בחשבון הזה"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"רשימת אנשי הקשר שלך ריקה"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> נשמר/ה"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"איש הקשר נשמר"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"בוטל הקישור לאנשי קשר"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"לא ניתן לשמור את השינויים באנשי הקשר."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"לא ניתן לבטל את הקישור של איש הקשר."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"לא ניתן היה לקשר איש קשר."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"אירעה שגיאה בעת שמירת איש הקשר."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"לא ניתן היה לשמור את השינויים בתמונות של אנשי הקשר."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"הקבוצה נשמרה."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"לא ניתן לשמור את השינויים בקבוצות."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> אנשי קשר עם מספרי טלפון</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> אנשי קשר עם מספרי טלפון</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> אנשי קשר עם מספרי טלפון</item>
-      <item quantity="one">איש קשר אחד עם מספר טלפון</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"אין אנשי קשר עם מספרי טלפון"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="two">נמצאו <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="many">נמצאו <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">נמצאו <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">אחד נמצא</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"לא ניתן היה לשמור את השינויים באיש הקשר"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"לא ניתן היה לבטל את הקישור של איש הקשר"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"לא ניתן היה לקשר את איש הקשר"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"שגיאה בשמירת איש הקשר"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"לא ניתן היה לשמור את השינויים בתמונה של איש הקשר"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"טעינת התווית נכשלה"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"התווית נמחקה"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"התווית נוצרה"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"לא ניתן ליצור את התווית"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"התווית עודכנה"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"הוסר מהתווית"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"נוסף לתווית"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"לא ניתן היה לשמור את השינויים בתווית"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"התווית הזו כבר קיימת"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"לחלק מאנשי הקשר אין כתובות אימייל."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"לחלק מאנשי הקשר אין מספרי טלפון."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"שלח אימייל"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"שלח הודעה"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"בחר אנשי קשר"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"שליחה"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"אין אנשי קשר"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="two">נמצאו <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="many">נמצאו <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">נמצאו <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">אחד נמצא</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"הכל"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"מועדפים"</string>
-    <string name="callBack" msgid="5498224409038809224">"התקשר חזרה"</string>
-    <string name="callAgain" msgid="3197312117049874778">"התקשר שוב"</string>
-    <string name="returnCall" msgid="8171961914203617813">"התקשר בחזרה"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"להוסיף את \"<xliff:g id="EMAIL">%s</xliff:g>\" לאנשי הקשר?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"תמונה של איש קשר"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"חיבור"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> מתוך <xliff:g id="TOTAL_NUMBER">%s</xliff:g> אנשי קשר"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"השמות של אנשי הקשר"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"לא נמצאה אפליקציה שיכולה לטפל בפעולה זו."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"לחץ כדי לחזור אל המסך הקודם"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"הוסף מספר טלפון"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"הוסף אימייל"</string>
     <string name="missing_app" msgid="1466111003546611387">"לא נמצאה אפליקציה שיכולה לטפל בפעולה זו."</string>
-    <string name="menu_share" msgid="943789700636542260">"שתף"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"הוסף לאנשי הקשר"</string>
-    <string name="share_via" msgid="563121028023030093">"שתף איש קשר באמצעות"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"צור קבוצה עבור חשבון"</string>
+    <string name="menu_share" msgid="943789700636542260">"שיתוף"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"הוספה לאנשי הקשר"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"הוספה"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="two">שתף את אנשי הקשר באמצעות</item>
+      <item quantity="many">שתף את אנשי הקשר באמצעות</item>
+      <item quantity="other">שתף את אנשי הקשר באמצעות</item>
+      <item quantity="one">שתף את איש הקשר באמצעות</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"בחר חשבון"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"יצירת תווית"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"שינוי שם התווית"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"שם התווית"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"שם התווית"</string>
     <string name="audio_chat" msgid="2535716629358298691">"צ\'אט קולי"</string>
     <string name="video_chat" msgid="1872255818640336072">"Hangout"</string>
-    <string name="connections" msgid="8098440723172028350">"חיבורים"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"הוסף חיבור"</string>
-    <string name="recent" msgid="2659189233141493004">"פריטים אחרונים"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"עדכונים אחרונים"</string>
     <string name="account_type_format" msgid="718948015590343010">"איש קשר של <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"חשבון <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"לא ניתן לעריכה מאפליקציה זו."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"לא ניתן לעריכה במכשיר זה"</string>
     <string name="take_photo" msgid="7496128293167402354">"צלם תמונה"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"צלם תמונה חדשה"</string>
     <string name="pick_photo" msgid="2129509985223564942">"בחר תמונה"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"בחר תמונה חדשה"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"רשימת אנשי הקשר מתעדכנת."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"מחפש..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"הצג פריטים שנבחרו"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"הצג הכל"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"בחר הכל"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"בטל בחירה של הכל"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"הוסף חדש"</string>
-    <string name="add_organization" msgid="7311893231158291197">"הוסף ארגון"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"תאריך"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"שם קבוצה"</string>
-    <string name="change_photo" msgid="8530597935483526383">"שנה"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"תמונה ראשית"</string>
-    <string name="description_star" msgid="2605854427360036550">"מועדף"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"ערוך איש קשר"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"לקשר את איש הקשר הנוכחי לאיש הקשר שנבחר?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"תווית"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"ביטול"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"הקודם"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"סגירה"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"לעבור לעריכה של איש הקשר שנבחר? המידע שהזנת עד עכשיו יועתק."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"העתק אל \'אנשי הקשר שלי\'"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"הוסף ל\'אנשי הקשר שלי\'"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> ספריה"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"מותאם אישית"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"הגדרות"</string>
     <string name="menu_settings" msgid="377929915873428211">"הגדרות"</string>
     <string name="menu_help" msgid="1680178646764069976">"עזרה ומשוב"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"אפשרויות תצוגה"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"מספר טלפון"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"הוסף לאנשי הקשר"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"הוסף לאיש קשר"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"סגור"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"ציין שנה"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"איש קשר"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"טוען..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"צור איש קשר חדש"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"הוסף חשבון"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"יבא אנשי קשר"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"צור קבוצה חדשה"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"צור קבוצה חדשה"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="two"><xliff:g id="COUNT">%0$d</xliff:g> קבוצות</item>
-      <item quantity="many"><xliff:g id="COUNT">%0$d</xliff:g> קבוצות</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> קבוצות</item>
-      <item quantity="one">קבוצה אחת</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"למחוק את הקבוצה \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (אנשי הקשר עצמם לא יימחקו.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="two"><xliff:g id="COUNT_2">%1$d</xliff:g> אנשים מ-<xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> אנשים מ-<xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> אנשים מ-<xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one">אדם <xliff:g id="COUNT_0">%1$d</xliff:g> מ-<xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="two"><xliff:g id="COUNT_1">%1$d</xliff:g> אנשים</item>
-      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> אנשים</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> אנשים</item>
-      <item quantity="one">אדם <xliff:g id="COUNT_0">%1$d</xliff:g></item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"ייבא"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"צור חדשה…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"למחוק את התווית \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (אנשי הקשר המסומנים בתווית לא יימחקו)."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"הקלד שם של איש קשר לפני קישורו לאחר."</string>
-    <string name="copy_text" msgid="3257145021583508761">"העתק ללוח"</string>
-    <string name="set_default" msgid="4417505153468300351">"קבע כברירת מחדל"</string>
-    <string name="clear_default" msgid="7193185801596678067">"נקה ברירת מחדל"</string>
+    <string name="copy_text" msgid="3257145021583508761">"העתקה ללוח"</string>
+    <string name="set_default" msgid="4417505153468300351">"ברירת מחדל"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ניקוי ברירת מחדל"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"טקסט שהועתק"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"למחוק את השינויים שביצעת?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"מחק"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"הגדרת הפרופיל שלי"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"הקלד שם של אדם"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"שם הקבוצה"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"האם לבטל את השינויים?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"מחק"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"ביטול"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"האם לבטל את ההתאמות האישיות?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"חיפוש אנשי קשר"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"הסרה של אנשי הקשר"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"הפרופיל המקומי שלי"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"פרופיל <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> שלי"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"מציג את כל אנשי הקשר"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"‏\'אנשי קשר\' פועל טוב יותר עם ​​חשבון Google‏.\n\n• קבל גישה מכל דפדפן אינטרנט.\n• גבה את אנשי הקשר באופן מאובטח."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"דאג שלא תאבד את אנשי הקשר שלך גם אם הטלפון שלך יאבד: בצע סנכרון עם שירות מקוון."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"הוסף חשבון"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"איש הקשר החדש שלך לא יגובה. להוסיף חשבון שמגבה אנשי קשר באופן מקוון?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"‏הקדש דקה כדי להוסיף חשבון Google שבו תגבה את אנשי הקשר שלך."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"אנשי קשר חדשים יישמרו ב-<xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"בחר חשבון ברירת מחדל לאנשי קשר חדשים:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"הוספת איש קשר חדש"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"צור איש קשר חדש"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ערוך איש קשר"</string>
-    <string name="keep_local" msgid="1258761699192993322">"שמור באופן מקומי"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"תצוגה בלבד"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"בחר איש קשר לעריכה"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"אנשי קשר מקושרים"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"הוסף"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"בטל את הקישור"</string>
     <string name="add_account" msgid="8201790677994503186">"הוסף חשבון"</string>
     <string name="add_new_account" msgid="5748627740680940264">"הוסף חשבון חדש"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"ייצוא קובצי מסד נתונים"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"הוסף איש קשר חדש"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"צור איש קשר חדש"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"הצג יותר"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"הצג פחות"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"הצג הכל"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"מהזמן האחרון"</string>
     <string name="about_card_title" msgid="2920942314212825637">"מידע כללי"</string>
-    <string name="send_message" msgid="8938418965550543196">"שלח הודעה"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"יוצר עותק אישי..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"אתמול"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"יוצר עותק אישי..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"מחר"</string>
     <string name="today" msgid="8041090779381781781">"היום"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"היום ב-<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"מחר ב-<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>‏, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>‏, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(אירוע ללא שם)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"הגדר"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"הודעות מיידיות"</string>
@@ -284,104 +227,321 @@
     <string name="header_website_entry" msgid="1411467850000824745">"אתר"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"אירוע"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"קשר"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"חשבון"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"שם"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"אימייל"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"טלפון"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"תמונה"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"לחץ כדי להרחיב את עורך אנשי הקשר."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"לחץ כדי לכווץ את עורך אנשי הקשר."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"הנחיות הגעה למיקום"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"‏הודעת SMS אחרונה. <xliff:g id="MESSAGE_BODY">%s</xliff:g>‏. <xliff:g id="PHONE_NUMBER">%s</xliff:g>‏. <xliff:g id="DATE">%s</xliff:g>‏. לחץ כדי להשיב"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"‏הודעת SMS אחרונה. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>‏. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>‏. <xliff:g id="DATE">%3$s</xliff:g>‏. לחץ כדי להשיב"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"נכנסת"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"יוצאת"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"לא נענתה"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"שיחה אחרונה. <xliff:g id="CALL_TYPE">%s</xliff:g>‏. <xliff:g id="PHONE_NUMBER">%s</xliff:g>‏. <xliff:g id="DATE">%s</xliff:g>‏. לחץ כדי להתקשר חזרה"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"שיחה אחרונה. <xliff:g id="CALL_TYPE">%1$s</xliff:g>‏. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>‏. <xliff:g id="DATE">%3$s</xliff:g>‏. לחץ כדי להתקשר חזרה"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"אתה: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"‏Hangouts פועל טוב יותר כשאתה מזין את מזהה ה-Hangouts של המשתמש בשדה האימייל או בשדה הטלפון."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"עוד שדות"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"שנה תמונה"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"פתיחת העורך נכשלה."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"שומר ב-"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"נשמר כרגע ב-<xliff:g id="ACCOUNT_NAME">%s</xliff:g>. הקש פעמיים כדי לבחור חשבון אחר."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="two">שני אנשי קשר מקושרים (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">אנשי קשר מקושרים (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">אנשי קשר מקושרים (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">איש קשר מקושר אחד</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> אנשי קשר מקושרים"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g>‏ (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"שדות נוספים"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"שנה את התמונה של איש הקשר"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"הוסף תמונה לאיש הקשר"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"התמונה של איש הקשר"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"לא ניתן היה לפתוח את העורך."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"לשמירה ב-"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"לא ניתן לערוך את פרטי איש הקשר מהחשבון <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"קשר אנשי קשר"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"בטל"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> כפילויות</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> כפילויות</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> כפילויות</item>
-      <item quantity="one">כפילות אחת</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> אנשי קשר מקושרים</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> אנשי קשר מקושרים</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> אנשי קשר מקושרים</item>
-      <item quantity="one">איש קשר מקושר אחד</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="two">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"איש קשר זה"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"כפילויות אפשריות"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"ייתכן שאנשי הקשר האלו הם אותו אדם. תוכל לקשר אותם ביחד כאיש קשר יחיד."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"אנשי קשר שקושרו"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"מהחשבונות שלך"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"צלם תמונה"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"כל התמונות"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"בחירת תמונה"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"מאת <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"מחק את <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"מחק את <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"מחק <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"תמונה מ-<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>לא סומנה"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"תמונה מ-<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>סומנה"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"לא סומנה תמונה מחשבון לא ידוע"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"סומנה תמונה מחשבון לא ידוע"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"רשימת אנשי הקשר מתעדכנת כדי לשקף את החלפת השפה.\n\nהמתן..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"הוסף מספר"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"חסום מספר"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"הוסף מספר או חפש אנשי קשר"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"האם לבטל את חסימת המספר <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ביטול חסימה"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"האם לחסום את המספר <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"חסום"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> חסום"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"בוטלה החסימה של <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> אינו חוקי."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"חסימת השיחות מושבתת באופן זמני"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"חסימת השיחות הושבתה מפני שיצרת קשר מטלפון זה עם שירותי חירום במהלך 48 השעות האחרונות. הפונקציה תופעל מחדש באופן אוטומטי בתום 48 השעות."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"יבא"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"הצג מספרים"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"הוסף מספר"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"חסימת השיחות הושבתה ל-48 שעות"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"מושבתת מפני שבוצעה שיחת חירום."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"בטל"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> כבר חסום."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"בטל חסימת מספר"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"פרטי יצירת קשר עבור <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"הייבוא נכשל"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"יבא מספרים"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"הפעל"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"הצעות"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"חדש"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"פתח את חלונית ההזזה לניווט"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"סגור את חלונית ההזזה לניווט"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"התווית <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"תוויות"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"חשבונות"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"הצגה של ההיסטוריה המשותפת שלכם"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"אירועים והודעות"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"אירועים"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"הודעות"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"הצעות"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"שמור על סדר וארגון באנשי הקשר"</string>
+    <string name="undo" msgid="1425165101664071422">"בטל"</string>
+    <string name="call_custom" msgid="6385303130912713318">"התקשר אל <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"התקשר לבית"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"התקשר לנייד"</string>
+    <string name="call_work" msgid="5328785911463744028">"התקשר לעבודה"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"התקשר לפקס בעבודה"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"התקשר לפקס בבית"</string>
+    <string name="call_pager" msgid="9003902812293983281">"התקשר לזימונית"</string>
+    <string name="call_other" msgid="8563753966926932052">"חייג"</string>
+    <string name="call_callback" msgid="1910165691349426858">"התקשר חזרה"</string>
+    <string name="call_car" msgid="3280537320306436445">"התקשר למכונית"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"התקשר למספר הטלפון הראשי של החברה"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"‏התקשר ל-ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"התקשר למספר הראשי"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"התקשר לפקס"</string>
+    <string name="call_radio" msgid="8296755876398357063">"התקשר לרדיו"</string>
+    <string name="call_telex" msgid="2223170774548648114">"התקשר לטלקס"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"‏התקשר ל-TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"התקשר לנייד של העבודה"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"התקשר לזימונית של העבודה"</string>
+    <string name="call_assistant" msgid="670941612175068337">"התקשר אל <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"‏התקשר ל-MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (שיחה)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"‏שלח SMS אל <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"שלח הודעת טקסט לבית"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"שלח הודעת טקסט לנייד"</string>
+    <string name="sms_work" msgid="2269624156655267740">"שלח הודעת טקסט לעבודה"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"שלח הודעת טקסט לפקס בעבודה"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"שלח הודעת טקסט לפקס בבית"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"שלח הודעת טקסט לזימונית"</string>
+    <string name="sms_other" msgid="806127844607642331">"הודעת טקסט"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"שלח הודעת טקסט למספר להתקשרות חזרה"</string>
+    <string name="sms_car" msgid="7444227058437359641">"‏שלח SMS לטלפון במכונית"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"שלח הודעת טקסט למספר הטלפון הראשי של החברה"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"‏שלח הודעת טקסט ל-ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"שלח הודעת טקסט למספר הטלפון הראשי"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"שלח הודעת טקסט לפקס"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"שלח הודעת טקסט לרדיו"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"שלח הודעת טקסט לטלקס"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"‏שלח הודעת טקסט ל-TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"שלח הודעת טקסט לנייד של עבודה"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"שלח הודעת טקסט לזימונית של העבודה"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"שלח הודעת טקסט אל <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"‏שלח הודעת טקסט ל-MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (הודעה)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"התקשר בשיחת וידאו"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"האם למחוק אנשי קשר קבועים?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"הפעולה הזו תימחק מהאפליקציות \'אנשי קשר\' ו\'טלפון\' את הרשימה של אנשי הקשר השכיחים. אפליקציות האימייל יצטרכו ללמוד מחדש את הכתובות השכיחות שלך."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"מוחק אנשי קשר קבועים…"</string>
+    <string name="status_available" msgid="5586870015822828392">"זמין"</string>
+    <string name="status_away" msgid="1838861100379804730">"לא נמצא"</string>
+    <string name="status_busy" msgid="9147992455450257136">"עסוק"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"אחר"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ספריה"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"ספריית עבודה"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"כל אנשי הקשר"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"קשר מהיר עבור <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(ללא שם)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"בקשר לעתים קרובות"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"כל אנשי הקשר עם מספרי טלפון"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"אנשי קשר מהעבודה"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"הצג עדכונים"</string>
+    <string name="account_phone" msgid="7128032778471187553">"מכשיר"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"שם"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"כינוי"</string>
+    <string name="name_given" msgid="4280790853455320619">"שם פרטי"</string>
+    <string name="name_family" msgid="7466985689626017037">"שם משפחה"</string>
+    <string name="name_prefix" msgid="59756378548779822">"קידומת שם"</string>
+    <string name="name_middle" msgid="8467433655992690326">"שם אמצעי"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"סיומת שם"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"שם פונטי"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"שם פרטי פונטי"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"שם אמצעי פונטי"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"שם משפחה פונטי"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"טלפון"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"אימייל"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"כתובת"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"הודעה מיידית"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"ארגון"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"קשר"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"תאריך מיוחד"</string>
+    <string name="sms" msgid="1756857139634224222">"הודעת טקסט"</string>
+    <string name="postal_address" msgid="8765560217149624536">"כתובת"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"חברה"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"שם"</string>
+    <string name="label_notes" msgid="8337354953278341042">"הערות"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"מותאם אישית"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"אתר"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"תוויות"</string>
+    <string name="email_home" msgid="8573740658148184279">"שלח אימייל לבית"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"שלח אימייל לנייד"</string>
+    <string name="email_work" msgid="2807430017302722689">"שלח אימייל לעבודה"</string>
+    <string name="email_other" msgid="3454004077967657109">"אימייל"</string>
+    <string name="email_custom" msgid="5536404237099078802">"שלח אימייל אל <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"אימייל"</string>
+    <string name="postal_street" msgid="8133143961580058972">"רחוב"</string>
+    <string name="postal_city" msgid="6597491300084895548">"עיר"</string>
+    <string name="postal_region" msgid="6045263193478437672">"מדינה"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"מיקוד"</string>
+    <string name="postal_country" msgid="7638264508416368690">"ארץ"</string>
+    <string name="map_home" msgid="1243547733423343982">"הצג כתובת בית"</string>
+    <string name="map_work" msgid="1360474076921878088">"הצג כתובת עבודה"</string>
+    <string name="map_other" msgid="3817820803587012641">"הצג כתובת"</string>
+    <string name="map_custom" msgid="8761800628069473526">"הצג את הכתובת של <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"‏שוחח בצ\'אט באמצעות AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"‏שוחח בצ\'אט באמצעות Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"‏שוחח בצ\'אט באמצעות Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"‏שוחח בצ\'אט באמצעות Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"‏שוחח בצ\'אט באמצעות QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"‏שוחח בצ\'אט באמצעות Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"‏שוחח בצ\'אט באמצעות ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"‏שוחח בצ\'אט באמצעות Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"שוחח בצ\'אט"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"מחק"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"הצג עוד שדות של שמות"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"כיווץ של שדות השמות"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"הצג עוד שדות של שמות פונטיים"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"כיווץ של שדות השמות הפונטיים"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"הרחב"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"כווץ"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"מורחב"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"מכווץ"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"כל אנשי הקשר"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"מסומן בכוכב"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"התאם אישית"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"איש קשר"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"כל אנשי הקשר האחרים"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"כל אנשי הקשר"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"הסרת קבוצת סנכרון"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"הוספת קבוצת סנכרון"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"קבוצות נוספות…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"הסרת \"<xliff:g id="GROUP">%s</xliff:g>\" מהסנכרון תסיר מהסנכרון גם אנשי קשר שאינם מקובצים."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"שומר אפשרויות תצוגה..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"תצוגה מותאמת אישית"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"איפה יישמרו אנשי הקשר שמיובאים:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"‏כרטיס SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"‏כרטיס SIM‏ <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="two">‏%1$d אנשי קשר</item>
+      <item quantity="many">‏%1$d אנשי קשר</item>
+      <item quantity="other">‏%1$d אנשי קשר</item>
+      <item quantity="one">איש קשר אחד</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="two"><xliff:g id="COUNT_2">^1</xliff:g> אנשי קשר • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> אנשי קשר • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> אנשי קשר • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> איש קשר • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"‏קובץ vcf."</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"אין מה לייבא"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"‏האם לייבא את אנשי הקשר מ-vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"לבטל את הייבוא של <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"לבטל את הייצוא של <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"‏לא ניתן לבטל ייבוא/ייצוא של vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"שגיאה לא ידועה."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"לא ניתן לפתוח את \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\"‏: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"לא ניתן להפעיל את המייצא: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"אין אנשי קשר הניתנים לייצוא."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"השבתת הרשאה נדרשת."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"אירעה שגיאה במהלך הייצוא: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"שגיאת קלט/פלט"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"אין מספיק זיכרון. ייתכן שהקובץ גדול מדי."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"הפורמט אינו נתמך."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"הייצוא של <xliff:g id="FILENAME">%s</xliff:g> הסתיים."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"הייצוא של אנשי הקשר הסתיים."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"היצוא של אנשי הקשר הסתיים. לחץ על ההודעה כדי לשתף אנשי קשר."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"הקש כדי לשתף אנשי קשר."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"הייצוא של <xliff:g id="FILENAME">%s</xliff:g> בוטל."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"מייצא נתונים של אנשי קשר"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"ייצוא הנתונים של אנשי הקשר מתבצע."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"לא ניתן לקבל מידע ממסד הנתונים."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"אין אנשי קשר שניתן לייצא."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"‏יישום היצירה של ה-vCard לא הופעל כהלכה."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"לא ניתן לייצא"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"נתוני אנשי הקשר לא יוצאו.\nסיבה: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"מייבא את <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"‏לא ניתן לקרוא נתוני vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"‏הייבוא של vCard בשם <xliff:g id="FILENAME">%s</xliff:g> הסתיים"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"הייבוא של <xliff:g id="FILENAME">%s</xliff:g> בוטל"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"הייבוא של <xliff:g id="FILENAME">%s</xliff:g> יתבצע בהקדם."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"הייבוא של הקובץ יתבצע בהקדם."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"‏הבקשה לייבוא ה-vCard נדחתה. נסה שוב מאוחר יותר."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"הייצוא של אנשי הקשר יבוצע בהקדם."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"‏הבקשה לייצוא ה-vCard נדחתה. נסה שוב מאוחר יותר."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"איש קשר"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"‏קובצי ה-vCard נשמרים כקבצים באחסון מקומי זמני. הייבוא בפועל יחל בקרוב."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"‏לא ניתן לייבא את ה-vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"‏איש הקשר התקבל באמצעות NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"הופך לקובץ שמור"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"מייבא <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"‏יצא לקובץ ‎.vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"מיין לפי"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"שם פונטי"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"הצג תמיד"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"הסתר את השדה אם הוא ריק"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"שם פרטי"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"שם משפחה"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"פורמט השם"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"קודם השם הפרטי"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"קודם שם המשפחה"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"חשבונות"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"חשבון ברירת המחדל לאנשי קשר חדשים"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"המידע שלי"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"הגדרת הפרופיל שלך"</string>
+    <string name="setting_about" msgid="7014388749752042863">"מידע על אנשי הקשר"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"שתף את אנשי הקשר המועדפים"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"שתף את כל אנשי הקשר"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"לא ניתן היה לשתף את אנשי הקשר."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"ייצא אנשי קשר"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"המקור לייבוא של אנשי הקשר"</string>
+    <string name="share_error" msgid="948429331673358107">"לא ניתן לשתף איש קשר זה."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"אין אנשי קשר שניתן לשתף."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"אנשי קשר להצגה"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"אנשי קשר להצגה"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"התאמה אישית של התצוגה"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"שמירה"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"חפש אנשי קשר"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"מועדפים"</string>
+    <string name="menu_import" msgid="6107961135813836467">"ייבוא"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ייצוא"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"מספרים חסומים"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"באמצעות <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> באמצעות <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"הפסק לחפש"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"נקה חיפוש"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"חשבון"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"השתמש תמיד לשיחות"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"התקשר עם הערה"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"הזן את ההערה שתישלח עם השיחה..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"שלח והתקשר"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"‏גרסת Build"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"רישיונות קוד פתוח"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"פרטי רישיון לתוכנות קוד פתוח"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"מדיניות הפרטיות"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"תנאים והגבלות"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"רישיונות קוד פתוח"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"לא ניתן היה לפתוח את כתובת האתר."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> מסומן"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> לא מסומן"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"התקשרות בשיחת וידאו"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"מחיקה"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"שלוש נקודות"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> שניות"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> דקות ו-<xliff:g id="SECONDS">%2$s</xliff:g> שניות"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> שעות, <xliff:g id="MINUTES_1">%2$s</xliff:g> דקות ו-<xliff:g id="SECONDS">%3$s</xliff:g> שניות"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"קיצור הדרך הזה הושבת"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"איש הקשר הוסר"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"ייבא"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"בחירת אנשי קשר"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"‏אין אף איש קשר בכרטיס ה-SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"איש הקשר כבר קיים ברשימה"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="two">‏<xliff:g id="COUNT">%d</xliff:g> אנשי קשר יובאו מכרטיס ה-SIM</item>
+      <item quantity="many">‏<xliff:g id="COUNT">%d</xliff:g> אנשי קשר יובאו מכרטיס ה-SIM</item>
+      <item quantity="other">‏<xliff:g id="COUNT">%d</xliff:g> אנשי קשר יובאו מכרטיס ה-SIM</item>
+      <item quantity="one">‏איש קשר אחד יובא מכרטיס ה-SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"‏לא ניתן היה לייבא את אנשי הקשר מכרטיס ה-SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"‏ייבוא מכרטיס SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"ביטול"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"הסינכרון האוטומטי מושבת. הקש כדי להפעיל אותו."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"ביטול"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"סנכרון החשבון מושבת. הקש כדי להפעיל אותו."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"האם להשבית את הסנכרון האוטומטי?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"‏השינויים שתבצע בכל האפליקציות והחשבונות, לא רק באנשי הקשר מחשבון Google, יסונכרנו בין האינטרנט לבין המכשירים שלך."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"הפעל"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"אין חיבור"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"‏כרטיס SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"הצג עוד"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"‏הייבוא מכרטיס ה-SIM הסתיים"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"הייבוא נכשל"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"‏לא ניתן היה לייבא את אנשי הקשר מכרטיס ה-SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"‏הייבוא מכרטיס ה-SIM מתבצע"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-ja/donottranslate_config.xml b/res/values-ja/donottranslate_config.xml
new file mode 100644
index 0000000..ff8a8eb
--- /dev/null
+++ b/res/values-ja/donottranslate_config.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<resources>
+    <!-- If true, an option is shown in Display Options UI to choose a sort order -->
+    <bool name="config_sort_order_user_changeable">false</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_sort_order_primary">true</bool>
+
+    <!-- If true, an option is shown in Display Options UI to choose a name display order -->
+    <bool name="config_display_order_user_changeable">false</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_display_order_primary">true</bool>
+
+    <!-- If true, the order of name fields in the editor is primary (i.e. given name first) -->
+    <bool name="config_editor_field_order_primary">false</bool>
+
+    <!-- If true, phonetic name is included in the contact editor by default -->
+    <bool name="config_editor_include_phonetic_name">true</bool>
+</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 3838d80..3e56e34 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"連絡先"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"連絡先"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"連絡先の表示"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"連絡先の編集"</string>
     <string name="contactsList" msgid="8661624236494819731">"連絡先"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"連絡先を追加"</string>
     <string name="shortcutContact" msgid="749243779392912958">"連絡先"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"直接発信"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"直接メッセージを送る"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"連絡先ショートカットを選択"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"発信する番号の選択"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"メッセージを送る番号の選択"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"連絡先を選択"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"連絡先に追加"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"連絡先を選択"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"選択"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"新しい連絡先を作成"</string>
-    <string name="starredList" msgid="4817256136413959463">"スター付き"</string>
-    <string name="frequentList" msgid="7154768136473953056">"よく使う連絡先"</string>
-    <string name="strequentList" msgid="5640192862059373511">"お気に入り"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"連絡先情報"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"連絡先を編集"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"連絡先を新規登録"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"グループの編集"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"グループの作成"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"概要"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"最新情報"</string>
     <string name="searchHint" msgid="8482945356247760701">"連絡先を検索"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"連絡先詳細"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"お気に入りに追加"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"お気に入りから削除"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"お気に入りから削除します"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"編集"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"削除"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"写真を変更"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ホーム画面に配置"</string>
-    <string name="menu_call" msgid="3992595586042260618">"連絡先に発信"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"連絡先にSMS"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"ショートカットを作成"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"リンクを解除"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"編集"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"削除"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"連絡先を追加"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"グループを追加"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"連絡先を削除"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"ラベル名を変更"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"ラベルを削除"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"連絡先を追加"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"連絡先を選択"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"連絡先を追加"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"ラベルから削除"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"ラベルを作成"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"この連絡先を複数の連絡先にリンク解除しますか？"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"リンク解除"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ここまでの変更を保存してこの連絡先を複数の連絡先にリンク解除しますか？"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"保存してリンク解除"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"ここまでの変更を保存して選択した連絡先にリンクしますか？"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"保存してリンク"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"リンクしています"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"リンクを解除中"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"リンク"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"リンクされた連絡先を表示"</string>
     <string name="menu_save" msgid="1727844363591825909">"保存"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"連絡先をリンク"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g>さんとリンクする連絡先を選択してください。"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"すべての連絡先を表示"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"連絡先候補"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"すべての連絡先"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> さんが連絡先をリンクしました"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"連絡先をリンクしました"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> さんを削除しました"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> さんと <xliff:g id="NAME_1">%2$s</xliff:g> さんを削除しました"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g> さん、<xliff:g id="NAME_1">%2$s</xliff:g> さん、<xliff:g id="NAME_2">%3$s</xliff:g> さん…を削除しました"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">連絡先を削除しました</item>
       <item quantity="one">連絡先を削除しました</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 件の連絡先</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 件の連絡先</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> 件の連絡先 · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 件の連絡先 · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google アカウントから"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> から"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"着信音を設定"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"すべての通話をボイスメールへ"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"読み取り専用のアカウントからの連絡先は削除できませんが非表示にすることはできます。"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"非表示"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"削除しようとしている連絡先には複数のアカウントからの詳細情報が含まれています。読み取り専用のアカウントからの詳細情報は非表示になるだけで削除はされません。"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"リンクするには連絡先を2件以上選択してください。"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"選択した連絡先をリンクしますか？"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"リンク"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"ボイスメールに転送"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ボイスメールへの転送を解除"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"この連絡先は読み取り専用です。非表示にはできますが、削除することはできません。"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"連絡先を非表示にする"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"この連絡先の読み取り専用アカウントが非表示になります（削除されるわけではありません）。"</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"この連絡先を削除しますか？"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"選択した連絡先を削除しますか？"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"読み取り専用のアカウントからの連絡先は削除できませんが非表示にすることはできます。"</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"この連絡先を削除すると複数のアカウントから詳細情報が削除されます。"</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"この連絡先を削除しますか？"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"削除"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"変更を破棄"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"連絡先が存在しません。"</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"連絡先をホーム画面に追加しました。"</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g>をホーム画面に追加しました。"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"連絡先を新規登録"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"新しい連絡先を作成"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"所属"</item>
-    <item msgid="7196592230748086755">"メモ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"タブレット内に写真がありません。"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"画像がありません。"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"使用できる写真が端末上にありません。"</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"連絡先の写真"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"新しいラベル名"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ボイスメールに自動転送する"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"カスタムラベル名"</string>
     <string name="removePhoto" msgid="4898105274130284565">"写真を削除"</string>
-    <string name="noContacts" msgid="4955659076981974652">"連絡先はありません"</string>
-    <string name="noGroups" msgid="8614664663561385253">"グループはありません。"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"グループを作成するにはアカウントが必要です。"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"このグループにはメンバーがいません。"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"メンバーを追加するにはグループを編集します。"</string>
-    <string name="savingContact" msgid="4075751076741924939">"連絡先を保存しています..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"連絡先リストが空です"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"このラベルを使用している連絡先はいません"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"このアカウントに保存されている連絡先はありません"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"連絡先リストが空です"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> さんを保存しました"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"連絡先を保存しました"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"連絡先のリンクを解除しました"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"連絡先の変更を保存できませんでした。"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"連絡先のリンクを解除できませんでした。"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"連絡先をリンクできませんでした。"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"連絡先の保存中にエラーが発生しました。"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"連絡先の写真の変更を保存できませんでした。"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"グループを保存しました。"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"グループの変更を保存できませんでした。"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">電話番号のある連絡先<xliff:g id="COUNT">%d</xliff:g>件</item>
-      <item quantity="one">電話番号のある連絡先1件</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"電話番号付きの連絡先はありません"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>件見つかりました</item>
-      <item quantity="one">1件見つかりました</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"連絡先の変更を保存できませんでした"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"連絡先のリンクを解除できませんでした"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"連絡先をリンクできませんでした"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"連絡先の保存中にエラーが発生しました"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"連絡先の写真の変更を保存できませんでした"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"ラベルを読み込めませんでした"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"ラベルを削除しました"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"ラベルを作成しました"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"ラベルを作成できません"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"ラベルを更新しました"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"ラベルから削除されました"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"ラベルに追加されました"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"ラベルの変更を保存できませんでした"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"このラベルは既に存在しています"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"メールアドレスが登録されていない連絡先があります。"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"電話番号が登録されていない連絡先があります。"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"メールを送信"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"メッセージを送信"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"連絡先の選択"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"送信"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"連絡先はありません"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>件見つかりました</item>
-      <item quantity="one">1件見つかりました</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"すべて"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"お気に入り"</string>
-    <string name="callBack" msgid="5498224409038809224">"コールバック"</string>
-    <string name="callAgain" msgid="3197312117049874778">"再発信"</string>
-    <string name="returnCall" msgid="8171961914203617813">"発信"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"<xliff:g id="EMAIL">%s</xliff:g> を連絡先に追加しますか？"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"連絡先の写真"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"プラス"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%s</xliff:g>件のファイル"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"連絡先の名前"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"この操作を行うアプリが見つかりませんでした。"</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"前の画面に戻るにはタップしてください"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"電話番号を追加"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"メールを追加"</string>
     <string name="missing_app" msgid="1466111003546611387">"この操作を行うアプリが見つかりませんでした。"</string>
     <string name="menu_share" msgid="943789700636542260">"共有"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"連絡先に追加"</string>
-    <string name="share_via" msgid="563121028023030093">"連絡先の共有ツール"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"次のアカウントにグループを作成"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"追加"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">連絡先を共有するアプリ</item>
+      <item quantity="one">連絡先を共有するアプリ</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"アカウントの選択"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"ラベルの作成"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"ラベル名の変更"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ラベルの名前"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ラベル名"</string>
     <string name="audio_chat" msgid="2535716629358298691">"ボイスチャット"</string>
     <string name="video_chat" msgid="1872255818640336072">"ビデオチャット"</string>
-    <string name="connections" msgid="8098440723172028350">"連絡先情報"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"連絡先を招待"</string>
-    <string name="recent" msgid="2659189233141493004">"最近"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"最近の更新"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>からの連絡先"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>の連絡先"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>のアカウント"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"このアプリからは編集できません。"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"この端末では編集できません。"</string>
     <string name="take_photo" msgid="7496128293167402354">"写真を撮影"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"新しい写真を撮る"</string>
     <string name="pick_photo" msgid="2129509985223564942">"写真を選択"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"新しい写真を選択"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"連絡先リストを更新しています。"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"検索しています..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"選択した連絡先を表示"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"すべて表示"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"すべて選択"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"選択をすべて解除"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"新しく追加"</string>
-    <string name="add_organization" msgid="7311893231158291197">"所属を追加"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"日付"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"グループ名"</string>
-    <string name="change_photo" msgid="8530597935483526383">"変更"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"メインの写真"</string>
-    <string name="description_star" msgid="2605854427360036550">"お気に入り"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"連絡先の編集"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"現在の連絡先を選択した連絡先にリンクしますか？"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ラベル"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"キャンセル"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"戻る"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"閉じる"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"選択した連絡先の編集に切り替えますか？これまでに入力した情報はコピーされます。"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Myコンタクトにコピー"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Myコンタクトに追加"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"ディレクトリ<xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"カスタム"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"設定"</string>
     <string name="menu_settings" msgid="377929915873428211">"設定"</string>
     <string name="menu_help" msgid="1680178646764069976">"ヘルプとフィードバック"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"表示オプション"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>、<xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"電話番号"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"連絡先に追加"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"連絡先に追加"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"閉じる"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g>（<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>）"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"年を含める"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"連絡先"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"読み込んでいます..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"新しい連絡先を作成"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"アカウントを追加"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"連絡先をインポート"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"新しいグループの作成"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"新しいグループを作成"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g>グループ</item>
-      <item quantity="one">1グループ</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"グループ「<xliff:g id="GROUP_LABEL">%1$s</xliff:g>」を削除しますか？連絡先自体は削除されません。"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>から<xliff:g id="COUNT_2">%1$d</xliff:g>人</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g>から<xliff:g id="COUNT_0">%1$d</xliff:g>人</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>人</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g>人</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"インポート"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"新規作成…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"ラベル「<xliff:g id="GROUP_LABEL">%1$s</xliff:g>」を削除しますか？（連絡先自体は削除されません。）"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"別の連絡先とリンクするにはまず連絡先の名前を入力してください。"</string>
     <string name="copy_text" msgid="3257145021583508761">"クリップボードにコピー"</string>
     <string name="set_default" msgid="4417505153468300351">"デフォルトに設定"</string>
     <string name="clear_default" msgid="7193185801596678067">"デフォルトを解除"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"テキストをコピーしました"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"変更を破棄しますか？"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"破棄"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"プロファイルを設定"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"名前を入力"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"グループの名前"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"変更を破棄しますか？"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"破棄"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"キャンセル"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"カスタマイズを破棄しますか？"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"連絡先を検索"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"連絡先の削除"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"ローカルプロファイル"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>のプロファイル"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"すべての連絡先を表示しています"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Googleアカウントがあれば連絡先をもっと活用できます。\n\n• どのウェブブラウザからもアクセスできます。\n• 連絡先を安全にバックアップできます。"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"携帯端末を紛失したときにも連絡先を保護するため、オンラインサービスと同期させます。"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"アカウントの追加"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"新しい連絡先はバックアップされません。オンラインで連絡先をバックアップするアカウントを追加しますか？"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"アカウントを追加すると、連絡先を Google にバックアップできるようになります。"</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"新しい連絡先を<xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>に保存します"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"新しい連絡先のデフォルトアカウントを選択してください。"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"新しい連絡先を追加"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"新しい連絡先の作成"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"連絡先を編集"</string>
-    <string name="keep_local" msgid="1258761699192993322">"ローカルに保存"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"表示のみ"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"編集する連絡先の選択"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"リンクされた連絡先"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"追加"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"リンクを解除"</string>
     <string name="add_account" msgid="8201790677994503186">"アカウントを追加"</string>
     <string name="add_new_account" msgid="5748627740680940264">"新しいアカウントを追加"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"データベースファイルをエクスポート"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"新しい連絡先を追加"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"新しい連絡先を作成"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"もっと見る"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"一部を表示"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"すべて表示"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"最近"</string>
     <string name="about_card_title" msgid="2920942314212825637">"概要"</string>
-    <string name="send_message" msgid="8938418965550543196">"メッセージの送信"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"個人用コピーを作成しています..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"昨日"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"個人用コピーを作成しています..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"明日"</string>
     <string name="today" msgid="8041090779381781781">"今日"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"今日の<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"明日の<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>の<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>の<xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"（無題の予定）"</string>
     <string name="date_time_set" msgid="4761419824439606690">"設定"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"ウェブサイト"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"予定"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"関係"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"アカウント"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"名前"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"メール"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"電話"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"写真"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"クリックして連絡先エディターを展開します。"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"クリックして連絡先エディターを折りたたみます。"</string>
     <string name="content_description_directions" msgid="2686791825798189335">"場所までの経路"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"最近のSMS。<xliff:g id="MESSAGE_BODY">%s</xliff:g>。<xliff:g id="PHONE_NUMBER">%s</xliff:g>。<xliff:g id="DATE">%s</xliff:g>。折り返し電話するにはタップしてください。"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"最近のSMS。<xliff:g id="MESSAGE_BODY">%1$s</xliff:g>。<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>。<xliff:g id="DATE">%3$s</xliff:g>。折り返し電話するにはタップしてください。"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"着信"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"発信"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"不在着信"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"最近の通話。<xliff:g id="CALL_TYPE">%s</xliff:g>。<xliff:g id="PHONE_NUMBER">%s</xliff:g>。<xliff:g id="DATE">%s</xliff:g>。折り返し電話するにはタップしてください。"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"最近の通話。<xliff:g id="CALL_TYPE">%1$s</xliff:g>。<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>。<xliff:g id="DATE">%3$s</xliff:g>。折り返し電話するにはタップしてください。"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"あなた: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"ハングアウトを使いやすくするには、相手のハングアウトIDをメールアドレス欄または電話番号欄に入力します。"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"他の項目"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"写真を変更"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"エディタを開けませんでした。"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"保存先"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"現在の保存先は<xliff:g id="ACCOUNT_NAME">%s</xliff:g>です。別のアカウントを選択するにはダブルタップします。"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">リンクされた連絡先（<xliff:g id="COUNT">%d</xliff:g>件）</item>
-      <item quantity="one">リンクされた連絡先</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g>件のリンクされた連絡先"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g>（<xliff:g id="PHONETIC_NAME">%s</xliff:g>）"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"その他の項目"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"連絡先の写真を変更"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"連絡先の写真を追加"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"連絡先の写真"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"エディタを開けませんでした。"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"保存先"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> から取得した連絡先情報は編集できません"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"連絡先をリンク"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"キャンセル"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other">重複の可能性のある連絡先（<xliff:g id="COUNT">%d</xliff:g>件）</item>
-      <item quantity="one">重複の可能性のある連絡先（1件）</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>件のリンクされた連絡先</item>
-      <item quantity="one">1件のリンクされた連絡先</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">（<xliff:g id="COUNT">%d</xliff:g>）</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"この連絡先"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"重複の可能性"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"これらの連絡先は同一人物である可能性があります。リンクして1つの連絡先にまとめることができます。"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"リンクした連絡先"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"アカウントの写真"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"写真を撮る"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"すべての写真"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"写真の選択"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"送信元: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>を削除"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>を削除"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>を削除"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> の写真は選択されていません"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> の写真は選択されています"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"不明なアカウントの写真は選択されていません"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"不明なアカウントの写真が選択されています"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"言語の変更に伴い連絡先リストを更新しています。\n\nしばらくお待ちください..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"電話番号を追加"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"番号をブロック"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"番号を追加するか連絡先を検索"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>のブロックを解除しますか？"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ブロックを解除"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>をブロックしますか？"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ブロック"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g>をブロックしました"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g>のブロックを解除しました"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g>は無効な番号です。"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"通話のブロックは一時的にOFFです"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"このスマートフォンから緊急通報番号への発信が過去48時間以内に行われているため、通話のブロックは無効になっています。48時間経過すると、通話のブロックは自動的に有効になります。"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"インポート"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"番号を表示"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"電話番号を追加"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"通話のブロックは48時間経過するまで無効になりました"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"緊急通報を行ったため無効になりました。"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"元に戻す"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g>は既にブロックしています。"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"番号のブロックを解除"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>の連絡先の詳細"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"インポートに失敗しました"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"番号をインポート"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"連絡先を検索するには、連絡先権限をONにしてください。"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ONにする"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"候補"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"New"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ナビゲーションドロワーを開く"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ナビゲーションドロワーを閉じる"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"「<xliff:g id="LABEL_NAME">%s</xliff:g>」ラベル"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ラベル"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"アカウント"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"一緒に履歴を表示"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"予定とメッセージ"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"予定"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"メッセージ"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"候補"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"連絡先を使いやすく整理できます"</string>
+    <string name="undo" msgid="1425165101664071422">"元に戻す"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>宛に通話を発信"</string>
+    <string name="call_home" msgid="1990519474420545392">"自宅に発信"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"携帯電話に発信"</string>
+    <string name="call_work" msgid="5328785911463744028">"勤務先に発信"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"勤務先FAXに発信"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"自宅のFAXに発信"</string>
+    <string name="call_pager" msgid="9003902812293983281">"ポケベルに発信"</string>
+    <string name="call_other" msgid="8563753966926932052">"発信"</string>
+    <string name="call_callback" msgid="1910165691349426858">"コールバック先に発信"</string>
+    <string name="call_car" msgid="3280537320306436445">"クルマに発信"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"会社代表番号に発信"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDNに発信"</string>
+    <string name="call_main" msgid="6082900571803441339">"電話番号1に発信"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"FAXに電話"</string>
+    <string name="call_radio" msgid="8296755876398357063">"無線に発信"</string>
+    <string name="call_telex" msgid="2223170774548648114">"テレックスに発信"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDDに発信"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"携帯電話（勤務先）に発信"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"ポケベル（勤務先）に発信"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>宛に通話を発信"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMSに発信"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> さん（通話を発信）"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>宛にテキストメッセージを送信"</string>
+    <string name="sms_home" msgid="7524332261493162995">"自宅にSMS"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"携帯にSMS"</string>
+    <string name="sms_work" msgid="2269624156655267740">"勤務先にSMS"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"勤務先FAXにSMS"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"自宅FAXにSMS"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"ポケベルにSMS"</string>
+    <string name="sms_other" msgid="806127844607642331">"電話にSMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"コールバック先にSMS"</string>
+    <string name="sms_car" msgid="7444227058437359641">"クルマにSMS"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"会社代表番号にSMS"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDNにSMS"</string>
+    <string name="sms_main" msgid="8621625784504541679">"電話番号1にSMS"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"FAXにSMS"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"無線にSMS"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"テレックスにSMS"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDDにSMS"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"携帯電話（勤務先）にSMS"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"ポケベル（勤務先)にSMS"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g>にSMS"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMSにSMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> さん（メッセージを送信）"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ビデオハングアウトを発信"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"よく使う連絡先をクリアしますか？"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"連絡先アプリや電話アプリのよく使う連絡先リストをクリアし、メールアプリがアドレス設定を初めから保存していくようにします。"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"よく使う連絡先をクリアしています…"</string>
+    <string name="status_available" msgid="5586870015822828392">"オンライン"</string>
+    <string name="status_away" msgid="1838861100379804730">"不在"</string>
+    <string name="status_busy" msgid="9147992455450257136">"取り込み中"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"その他"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ディレクトリ"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"仕事用の連絡先リスト"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"すべての連絡先"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g>さんのクイックコンタクト"</string>
+    <string name="missing_name" msgid="8745511583852904385">"（名前なし）"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"よく使う連絡先"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"電話番号のあるすべての連絡先"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"仕事用プロファイルの連絡先"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"更新情報を表示"</string>
+    <string name="account_phone" msgid="7128032778471187553">"端末"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"名前"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"ニックネーム"</string>
+    <string name="name_given" msgid="4280790853455320619">"名"</string>
+    <string name="name_family" msgid="7466985689626017037">"姓"</string>
+    <string name="name_prefix" msgid="59756378548779822">"敬称（名前の前）"</string>
+    <string name="name_middle" msgid="8467433655992690326">"ミドルネーム"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"敬称（名前の後）"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"よみがな"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"フリガナ（名）"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ミドルネームのよみがな"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"フリガナ（姓）"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"電話番号"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"メール"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"住所"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"チャット"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"所属"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"関係"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"特別な日"</string>
+    <string name="sms" msgid="1756857139634224222">"テキストメッセージ"</string>
+    <string name="postal_address" msgid="8765560217149624536">"住所"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"会社"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"役職"</string>
+    <string name="label_notes" msgid="8337354953278341042">"メモ"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"カスタム"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ウェブサイト"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ラベル"</string>
+    <string name="email_home" msgid="8573740658148184279">"自宅にメール"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"携帯電話にメール"</string>
+    <string name="email_work" msgid="2807430017302722689">"勤務先にメール"</string>
+    <string name="email_other" msgid="3454004077967657109">"メール送信"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>宛にメールを送信"</string>
+    <string name="email" msgid="5668400997660065897">"メール"</string>
+    <string name="postal_street" msgid="8133143961580058972">"番地"</string>
+    <string name="postal_city" msgid="6597491300084895548">"市区町村"</string>
+    <string name="postal_region" msgid="6045263193478437672">"都道府県"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"郵便番号"</string>
+    <string name="postal_country" msgid="7638264508416368690">"国"</string>
+    <string name="map_home" msgid="1243547733423343982">"自宅の住所を表示"</string>
+    <string name="map_work" msgid="1360474076921878088">"勤務先の住所を表示"</string>
+    <string name="map_other" msgid="3817820803587012641">"住所を表示"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>の住所を表示"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIMでチャット"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Liveでチャット"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahooでチャット"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skypeでチャット"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQでチャット"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Googleトークでチャット"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQでチャット"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabberでチャット"</string>
+    <string name="chat" msgid="9025361898797412245">"チャット"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"削除"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"名前欄を展開"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"名前欄を折りたたむ"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"名前のフリガナ欄を展開"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"名前のフリガナ欄を折りたたむ"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"展開"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"折りたたむ"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"展開しました"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"折りたたみました"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"すべての連絡先"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"スター付き"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"カスタマイズ"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"連絡先"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"その他すべての連絡先"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"すべての連絡先"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"同期グループを削除"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"同期グループに追加"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"他のグループ..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"「<xliff:g id="GROUP">%s</xliff:g>」を同期から除外すると、グループに含まれない連絡先もすべて同期から除外されます。"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"表示オプションを保存中..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"カスタムビュー"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"インポートした連絡先の保存先:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM カード"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM（<xliff:g id="SIM_NAME">%1$s</xliff:g>）"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d 件の連絡先</item>
+      <item quantity="one">1 件の連絡先</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> 件の連絡先 • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> 件の連絡先 • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ファイル"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"インポートに使用できる外部ソースがありません"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard から連絡先をインポートしますか？"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g>のインポートをキャンセルしますか？"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g>のエクスポートをキャンセルしますか？"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCardインポート/エクスポート取り消し不可"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"不明なエラーです。"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"「<xliff:g id="FILE_NAME">%1$s</xliff:g>」を開けませんでした: <xliff:g id="EXACT_REASON">%2$s</xliff:g>。"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"エクスポータを起動できませんでした: 「<xliff:g id="EXACT_REASON">%s</xliff:g>」。"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"エクスポートできる連絡先がありません。"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"必要な権限が無効になっています。"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"エクスポート中にエラーが発生しました: 「<xliff:g id="EXACT_REASON">%s</xliff:g>」。"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"送受信エラー"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"メモリが不足しています。ファイルが大きすぎる可能性があります。"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"このフォーマットには対応していません。"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g>のエクスポートが完了しました。"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"連絡先のエクスポートを完了しました。"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"連絡先のエクスポートを完了しました。通知をタップして連絡先を共有してください。"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"タップして連絡先を共有してください。"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g>のエクスポートをキャンセルしました。"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"連絡先データのエクスポート"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"連絡先データをエクスポートしています。"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"データベース情報を取得できませんでした。"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"エクスポートできる連絡先がありません。"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCardコンポーザーが正しく起動しませんでした。"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"エクスポート失敗"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"連絡先データはエクスポートされませんでした。\n理由: 「<xliff:g id="FAIL_REASON">%s</xliff:g>」"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g>をインポート中"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCardデータを読み取れませんでした"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard<xliff:g id="FILENAME">%s</xliff:g>のインポートが終了しました"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g>のインポートをキャンセルしました"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g>はまもなくインポートされます。"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ファイルはまもなくインポートされます。"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCardのインポートリクエストは拒否されました。しばらくしてからもう一度お試しください。"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"連絡先のエクスポートをまもなく開始します。"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCardのエクスポートリクエストは拒否されました。しばらくしてからもう一度お試しください。"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"連絡先"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCardをローカル一時ストレージにキャッシュしています。まもなくインポート処理を開始します。"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCardをインポートできませんでした。"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC受信の連絡先"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"キャッシュしています"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>件（<xliff:g id="NAME">%3$s</xliff:g>）をインポート中"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf にエクスポート"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"並べ替え"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"フリガナ（名前）"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"常に表示"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"空白の場合は非表示にする"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"名"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"姓"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"名前の形式"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"名が先"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"姓が先"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"アカウント"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"新しい連絡先のデフォルト アカウント"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"ユーザー情報"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"プロファイルのセットアップ"</string>
+    <string name="setting_about" msgid="7014388749752042863">"連絡先について"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"お気に入りの連絡先を共有"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"すべての連絡先を共有"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"連絡先を共有できませんでした。"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"連絡先のエクスポート"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"連絡先のインポート元"</string>
+    <string name="share_error" msgid="948429331673358107">"この連絡先は共有できません。"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"共有する連絡先がありません。"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"表示する連絡先"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"表示する連絡先"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"ビューをカスタマイズ"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"保存"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"連絡先を検索"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"お気入り"</string>
+    <string name="menu_import" msgid="6107961135813836467">"インポート"</string>
+    <string name="menu_export" msgid="2658783911863503902">"エクスポート"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"ブロックした番号"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g>経由"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>、<xliff:g id="SOURCE">%2$s</xliff:g>経由"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"検索を停止"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"検索をクリア"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"アカウント"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"この SIM を常に通話に使用する"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"メモを添付して発信"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"発信時に送信するメモを入力..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"送信と発信"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"ビルド バージョン"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"オープンソース ライセンス"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"オープンソース ソフトウェアのライセンスの詳細"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"プライバシー ポリシー"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"利用規約"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"オープンソース ライセンス"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"この URL を開けませんでした。"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> がオンになっています"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> がオフになっています"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ビデオハングアウトを発信"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"削除"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"省略記号"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> 分 <xliff:g id="SECONDS">%2$s</xliff:g> 秒"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> 時間 <xliff:g id="MINUTES_1">%2$s</xliff:g> 分 <xliff:g id="SECONDS">%3$s</xliff:g> 秒"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"このショートカットは無効になっています"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"この連絡先は削除されました"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"インポート"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"連絡先の選択"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM カードに連絡先がありません"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"この連絡先はすでに連絡先リストに登録されています"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 件の SIM の連絡先をインポートしました</item>
+      <item quantity="one">1 件の SIM の連絡先をインポートしました</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM の連絡先をインポートできませんでした"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM からのインポート"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"キャンセル"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"自動同期が OFF になっています。タップすると ON になります。"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"閉じる"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"アカウントの同期が OFF になっています。タップすると ON になります。"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"自動同期を ON にしますか？"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Google コンタクトだけでなく、あらゆるアプリとアカウントに変更を加えるたびに、ウェブとご利用の端末間で同期されるようになります。"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ON にする"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"ネットワークに接続されていません"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"もっと見る"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM カードからインポートしました"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"インポートに失敗しました"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM カードの連絡先をインポートできませんでした"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM からインポートしています"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
deleted file mode 100644
index 4cbe356..0000000
--- a/res/values-ka-rGE/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"კონტაქტები"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"კონტაქტები"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"კონტაქტის ნახვა"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"კონტაქტის რედაქტირება"</string>
-    <string name="contactsList" msgid="8661624236494819731">"კონტაქტები"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"კონტაქტი"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"სწრაფი დარეკვა"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"სწრაფი შეტყობინება"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"კონტაქტის მალსახმობის არჩევა"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"დასარეკად აირჩიეთ ნომერი"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"ნომრის შერჩევა შეტყობინების გასაგზავნად"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"კონტაქტზე დამატება"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"კონტაქტის არჩევა"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ახალი კონტაქტის შექმნა"</string>
-    <string name="starredList" msgid="4817256136413959463">"ვარსკვლავიანი"</string>
-    <string name="frequentList" msgid="7154768136473953056">"ხშირი"</string>
-    <string name="strequentList" msgid="5640192862059373511">"რჩეულები"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"კონტაქტის დეტალები"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"კონტაქტის რედაქტირება"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"კონტაქტის შექმნა"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"ჯგუფის რედაქტირება"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"ჯგუფის შექმნა"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"შესახებ"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"განახლებები"</string>
-    <string name="searchHint" msgid="8482945356247760701">"კონტაქტებში ძიება"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"კონტაქტის ნახვა"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"რჩეულებში დამატება"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"რჩეულებიდან ამოშლა"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"წაიშალა რჩეულებიდან"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"რჩეულებში დამატება"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"რედაქტირება"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"წაშლა"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ფოტოს გამოცვლა"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"მთავარ ეკრანზე განთავსება"</string>
-    <string name="menu_call" msgid="3992595586042260618">"დარეკვა კონტაქტთან"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"ტექსტური შეტყობინების გაგზავნა კონტაქტისთვის"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"მიბმის გაუქმება"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"რედაქტირება"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"წაშლა"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"კონტაქტის დამატება"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ჯგუფის დამატება"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"გსურთ მიბმის გაუქმება და ამ კონტაქტის რამდენიმე კონტაქტად დაშლა?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"მიბმის გაუქმება"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"გსურთ უკვე შეტანილი ცვლილებების შენახვა და მიბმის გაუქმებით ამ კონტაქტის რამდენიმე კონტაქტად დაშლა?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"შენახვა და მიბმის გაუქმება"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"გსურთ უკვე შეტანილი ცვლილებების შენახვა და არჩეულ კონტაქტთან მიბმა?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"შენახვა და მიბმა"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"მიბმა"</string>
-    <string name="menu_save" msgid="1727844363591825909">"შენახვა"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"კონტაქტების მიბმა"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"აირჩიეთ კონტაქტი, რომელიც გსურთ, მიაბათ <xliff:g id="NAME">%s</xliff:g>-ს:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"ყველა კონტაქტის ჩვენება"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"შემოთავაზებული კონტაქტები"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ყველა კონტაქტი"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"კონტაქტები მიება"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">კონტაქტი წაიშალა</item>
-      <item quantity="one">კონტაქტი წაიშალა</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ზარის დაყენება"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ყველა ზარი ხმოვან ფოსტაში"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"მხოლოდ წაკითხვადი ანგარიშებიდან კონტაქტები ვერ წაიშლება, თუმცა შესაძლებელია მათი დამალვა."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"დამალვა"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"წასაშლელი კონტაქტი შეიცავს ინფორმაციას რამდენიმე ანგარიშიდან. მხოლოდ წაკითხვადი ანგარიშებიდან მიღებული ინფორმაცია, წაშლის ნაცვლად, დაიმალება."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"მისაბმელად მინიმუმ ორი კონტაქტი უნდა გქონდეთ არჩეული."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"გსურთ არჩეული კონტაქტების მიბმა?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"მიბმა"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"გსურთ ამ კონტაქტის წაშლა?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"გსურთ არჩეული კონტაქტების წაშლა?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"მხოლოდ წაკითხვადი ანგარიშებიდან კონტაქტები ვერ წაიშლება, თუმცა შესაძლებელია მათი დამალვა."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"წასაშლელი კონტაქტები შეიცავს ინფორმაციას რამდენიმე ანგარიშიდან. მხოლოდ წაკითხვადი ანგარიშებიდან მიღებული ინფორმაცია, წაშლის ნაცვლად, დაიმალება."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ამ კონტაქტის წაშლის შემთხვევაში, რამდენიმე ანგარიშიდან მიღებული ინფორმაცია წაიშლება."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"გსურთ ამ კონტაქტის წაშლა?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"წაშლა"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"ცვლილებების გაუქმება"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"კონტაქტი არ არსებობს."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"კონტაქტი დაემატა მთავარ ეკრანს."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> დაემატა მთავარ ეკრანს."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"ახალი კონტაქტის შექმნა"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"ახალი კონტაქტის შექმნა"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"ორგანიზაცია"</item>
-    <item msgid="7196592230748086755">"შენიშვნა"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ტაბლეტზე სურათები მიუწვდომელია."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ტელეფონზე სურათები არ არის."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"კონტაქტის ფოტო"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"მორგებული ლეიბლის სახელი"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ზარების პირდაპირ ხმოვან ფოსტაში გაგზავნა"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ფოტოების წაშლა"</string>
-    <string name="noContacts" msgid="4955659076981974652">"კონტაქტები არ არის"</string>
-    <string name="noGroups" msgid="8614664663561385253">"ჯგუფები არ არის."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"ჯგუფების შესაქმნელად გესაჭიროებათ ანგარიში."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ამ ჯგუფში ხალხი არ არის."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"წევრთა დასამატებლად შეასრულეთ ჯგუფის რედაქტირება."</string>
-    <string name="savingContact" msgid="4075751076741924939">"კონტაქტის შენახვა…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"კონტაქტი შენახულია"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"კონტაქტების მიბმა გაუქმდა"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"კონტაქტის ცვლილებების შენახვა ვერ მოხერხდა."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"კონტაქტის მიბმის გაუქმება ვერ მოხერხდა."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"კონტაქტის მიბმა ვერ მოხერხდა."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"შეცდომა კონტაქტის შენახვისას."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"კონტაქტის ფოტოს ცვლილებების შენახვა ვერ მოხერხდა."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"ჯგუფი შენახულია."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ჯგუფის ცვლილებების შენახვა ვერ მოხერხდა."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> კონტაქტი ტელეფონის ნომრით</item>
-      <item quantity="one">1 კონტაქტი ტელეფონის ნომრით</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ტელეფონის ნომრიანი კონტაქტები არ არის"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> მოიძებნა</item>
-      <item quantity="one">1 მოიძებნა</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"კონტაქტები არ არის"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> მოიძებნა</item>
-      <item quantity="one">1 მოიძებნა</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"ყველა"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"რჩეულები"</string>
-    <string name="callBack" msgid="5498224409038809224">"გადარეკვა"</string>
-    <string name="callAgain" msgid="3197312117049874778">"დარეკვა ხელახლა"</string>
-    <string name="returnCall" msgid="8171961914203617813">"გადარეკვა"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"„<xliff:g id="EMAIL">%s</xliff:g>“ დაემატოს კონტაქტებს?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"კონტაქტის ფოტო"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"პლუსი"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> (სულ <xliff:g id="TOTAL_NUMBER">%s</xliff:g> კონტაქტიდან)"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"თქვენი კონტაქტების სახელები"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ამ მოქმედების შესასრულებლად აპი ვერ მოიძებნა."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"დააწკაპუნეთ წინა ეკრანზე დასაბრუნებლად"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ტელეფონის ნომრის დამატება"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ელფოსტის დამატება"</string>
-    <string name="missing_app" msgid="1466111003546611387">"ამ მოქმედების შესასრულებლად აპი ვერ მოიძებნა."</string>
-    <string name="menu_share" msgid="943789700636542260">"გაზიარება"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"კონტაქტებში დამატება"</string>
-    <string name="share_via" msgid="563121028023030093">"კონტაქტის გაზიარება"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"ჯგუფის შექმნა ანგარიშში"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"ხმოვანი ჩეთი"</string>
-    <string name="video_chat" msgid="1872255818640336072">"ვიდეო ჩეთი"</string>
-    <string name="connections" msgid="8098440723172028350">"კავშირები"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"კავშირის დამატება"</string>
-    <string name="recent" msgid="2659189233141493004">"უახლესი"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"უახლესი განახლებები"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-ის კონტაქტი"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-ის ანგარიში"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"არ რედაქტირდება ამ აპიდან"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"არ რედაქტირდება ამ მოწყობილობაზე."</string>
-    <string name="take_photo" msgid="7496128293167402354">"ფოტოს გადაღება"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"ახალი ფოტოს გადაღება"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ფოტოს არჩევა"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"ახალი ფოტოს არჩევა"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"მიმდინარეობს კონტაქტების სიის განახლება."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"ძიება..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"არჩეულის ჩვენება"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"ყველას ჩვენება"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"ყველას არჩევა"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"ყველა არჩევანის გაუქმება"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"ახლის დამატება"</string>
-    <string name="add_organization" msgid="7311893231158291197">"ორგანიზაციის დამატება"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"თარიღი"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ჯგუფის სახელი"</string>
-    <string name="change_photo" msgid="8530597935483526383">"შეცვლა"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"პირველადი ფოტო"</string>
-    <string name="description_star" msgid="2605854427360036550">"რჩეული"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"კონტაქტის რედაქტირება"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"გსურთ მიმდინარე და არჩეული კონტაქტების მიბმა?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"გადაერთვებით არჩეული კონტაქტის რედაქტირებაზე? მოხდება თქვენს მიერ შეყვანილი ინფორმაციის კოპირება."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"კოპირება ჩემს კონტაქტებში"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"ჩემს კონტაქტებში დამატება"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"კატალოგი <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"მორგებული"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"პარამეტრები"</string>
-    <string name="menu_settings" msgid="377929915873428211">"პარამეტრები"</string>
-    <string name="menu_help" msgid="1680178646764069976">"დახმარება და უკუკავშირი"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ეკრანის პარამეტრები"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ტელეფონის ნომერი"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"კონტაქტებში დამატება"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"დაემატოს კონტაქტს"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"დახურვა"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"შეიტანე წელიც"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"კონტაქტი"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"იტვირთება…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"ახალი კონტაქტის შექმნა"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ანგარიშის დამატება"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"კონტაქტების იმპორტი"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"ახალი ჯგუფის შექმნა"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"ახალი ჯგუფის შექმნა"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ჯგუფი</item>
-      <item quantity="one">1 ჯგუფი</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"გსურთ ჯგუფის „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“ წაშლა? (კონტაქტები არ წაიშლება)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> ადამიანი <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>-დან</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ადამიანი <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g>-დან</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ადამიანი</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ადამიანი</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"სხვა კონტაქტთან მიბმამდე აკრიფეთ კონტაქტის სახელი."</string>
-    <string name="copy_text" msgid="3257145021583508761">"კოპირება გაცვლის ბუფერში"</string>
-    <string name="set_default" msgid="4417505153468300351">"ნაგულისხმევად დაყენება"</string>
-    <string name="clear_default" msgid="7193185801596678067">"ნაგულისხმევის წაშლა"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"კოპირებული ტექსტი"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"გსურთ ცვლილებების გაუქმება?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"გაუქმება"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"პროფ. დაყენება"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"აკრიფეთ კონტაქტის სახელი"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"ჯგუფის სახელი"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"ჩემი ადგილობრივი პროფილი"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"ჩემი <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> პროფილი"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ყველა კონტაქტის ჩვენება"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"კონტაქტები Google ანგარიშთან ერთად უკეთ მუშაობს.\n\n• იქონიეთ წვდომა ნებისმიერი ვებ-ბრაუზერიდან.\n• თქვენი კონტაქტების საიმედო დამარქაფება."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"შეინახეთ თქვენი კონტაქტები საიმედოდ ტელეფონის დაკარგვის შემთხვევაშიც კი: მოახდინეთ სინქრონიზაცია ონლაინ სერვისთან."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ანგარიშის დამატება"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"თქვენი ახალი კონტაქტი არ დამარქაფდება. გსურთ ანგარიშის დამატება, რომელიც დაამარქაფებს კონტაქტებს ონლაინ?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ახალი კონტაქტები შეინახება აქ: <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"აირჩიეთ ნაგულისხმევი ანგარიში ახალი კონტაქტებისთვის:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"ახალი კონტ. დამატება"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"კონტაქტის შესწორება"</string>
-    <string name="keep_local" msgid="1258761699192993322">"შენახვა ადგილობრივად"</string>
-    <string name="add_account" msgid="8201790677994503186">"ანგარიშის დამატება"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"ახალი ანგარიშის დამატება"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"მონაცემთა ბაზის ფაილების ექსპორტი"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ახალი კონტაქტის დამატება"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"იხილე მეტი"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ნაკლების ჩვენება"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ყველას ჩვენება"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"ბოლო"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"შესახებ"</string>
-    <string name="send_message" msgid="8938418965550543196">"შეტყობინების გაგზავნა"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"იქმნება პერსონალური ასლი..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"გუშინ"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"ხვალ"</string>
-    <string name="today" msgid="8041090779381781781">"დღეს"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"დღეს <xliff:g id="TIME_INTERVAL">%s</xliff:g>-ზე"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ხვალ <xliff:g id="TIME_INTERVAL">%s</xliff:g>-ზე"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(უსათაურო მოვლენა)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"დაყენება"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"ორგანიზაცია"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"მეტსახელი"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"ჩანიშვნა"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"ვებსაიტი"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"მოვლენა"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"კავშირი"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"ანგარიში"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"სახელი"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ელფოსტა"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ტელეფონი"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ფოტო"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"კონტაქტების რედაქტირების გაფართოებისათვის, დააჭირეთ."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"კონტაქტების რედაქტირების შეკუმშვისათვის, დააჭირეთ."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"მიმართულებები მდებარეობამდე"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"ბოლო sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. დააწკაპუნეთ საპასუხოდ"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"შემომავალი"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"გამავალი"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"გამოტოვებული"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"ბოლო ზარი. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. დააწკაპუნეთ გადასარეკად"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"თქვენ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangout უკეთესად იმუშავებს იმ შემთხვევაში, თუ ტელეფონის ან ელფოსტის ველში პიროვნების Hangout-ის ინდენტიფიკატორს შეიყვანთ."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"სხვა ველები"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ფოტოს გამოცვლა"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"რედაქტორი ვერ გაიხსნა."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"ინახება აქ:"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"ამჟამად ინახება აქ: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. ორმაგად შეეხეთ სხვა ანგარიშის ასარჩევად."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">მიბმული კონტაქტები (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">მიბმული კონტაქტი</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> მიბმული კონტაქტი"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"კონტაქტების მიბმა"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"გაუქმება"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> შესაძლო დუბლიკატი</item>
-      <item quantity="one">1 შესაძლო დუბლიკატი</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> მიბმული კონტაქტი</item>
-      <item quantity="one">1 მიბმული კონტაქტი</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ეს კონტაქტი"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"შესაძლო დუბლიკატები"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ეს კონტაქტები შეიძლება ერთი და იგივე პიროვნება იყოს. შეგიძლიათ მიბმის მეშვეობით მათი ერთ კონტაქტად გაერთიანება."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"მიბმული კონტაქტები"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"თქვენი ანგარიშებიდან"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ფოტოს გადაღება"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"ყველა ფოტო"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"აირჩიეთ ფოტო"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g>-დან"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"წაიშალოს <xliff:g id="DATA_KIND">%s</xliff:g> (<xliff:g id="DATA_TYPE">%s </xliff:g>)"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"წაიშალოს <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"ფოტო <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>-დან არ არის მონიშნული"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"ფოტო <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>-დან მონიშნულია"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"ფოტო უცნობი ანგარიშიდან არ არის მონიშნული"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"ფოტო უცნობი ანგარიშიდან მონიშნულია"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"მიმდინარეობს კონტაქტების სიის განახლება ენის შეცვლის ასახვის მიზნით.\n\nგთხოვთ, დაილოდოთ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ნომრის დამატება"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"ნომრის დაბლოკვა"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"დაამატეთ ნომერი ან მოიძიეთ კონტაქტებიდან"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"გსურთ, განბლოკოთ <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"განბლოკვა"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"გსურთ, დაბლოკოთ <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"დაბლოკვა"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> დაბლოკილია"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> განბლოკილია"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> არასწორია."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ზარების დაბლოკვა დროებით გამოირთო"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ზარების დაბლოკვა გაითიშა, რადგან ბოლო 48 საათში ამ ტელეფონიდან საგანგებო სამსახურებს დაუკავშირდით. 48 საათის გასვლის შემდეგ ის ავტომატურად ჩაირთვება."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"იმპორტი"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ნომრების ნახვა"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ნომრის დამატება"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ზარების დაბლოკვა გაითიშა 48 საათით"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"გათიშულია, რადგან განხორციელდა საგანგებო ზარი."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"დაბრუნება"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> უკვე დაბლოკილია."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ნომრის განბლოკვა"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის კონტაქტის დეტალები"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"იმპორტი ვერ მოხერხდა"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ნომრების იმპორტი"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ჩართვა"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
new file mode 100644
index 0000000..91a6dc5
--- /dev/null
+++ b/res/values-ka/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"კონტაქტები"</string>
+    <string name="contactsList" msgid="8661624236494819731">"კონტაქტები"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"კონტაქტის დამატება"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"კონტაქტი"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"სწრაფი დარეკვა"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"სწრაფი შეტყობინება"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"კონტაქტის არჩევა"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"კონტაქტზე დამატება"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"კონტაქტის არჩევა"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"არჩევა"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ახალი კონტაქტის შექმნა"</string>
+    <string name="searchHint" msgid="8482945356247760701">"კონტაქტებში ძიება"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"რჩეულებში დამატება"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"რჩეულებიდან ამოშლა"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"წაიშალა რჩეულებიდან"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"რჩეულებში დამატება"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"რედაქტირება"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"წაშლა"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ფოტოს გამოცვლა"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"მალსახმობის შექმნა"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"მიბმის გაუქმება"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"კონტაქტების წაშლა"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"ლეიბლის გადარქმევა"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"ლეიბლის წაშლა"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"კონტაქტის დამატება"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"კონტაქტების არჩევა"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"კონტაქტების დამატება"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"ლეიბლიდან ამოშლა"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"ლეიბლის შექმნა"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"გსურთ მიბმის გაუქმება და ამ კონტაქტის რამდენიმე კონტაქტად დაშლა?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"მიბმის გაუქმება"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"გსურთ უკვე შეტანილი ცვლილებების შენახვა და მიბმის გაუქმებით ამ კონტაქტის რამდენიმე კონტაქტად დაშლა?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"შენახვა და მიბმის გაუქმება"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"გსურთ უკვე შეტანილი ცვლილებების შენახვა და არჩეულ კონტაქტთან მიბმა?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"შენახვა და მიბმა"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"უკავშირდება"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"დაკავშირება უქმდება"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"მიბმა"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"დაკავშირებ. კონტაქტების ნახვა"</string>
+    <string name="menu_save" msgid="1727844363591825909">"შენახვა"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"კონტაქტების მიბმა"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"აირჩიეთ კონტაქტი, რომელიც გსურთ, მიაბათ <xliff:g id="NAME">%s</xliff:g>-ს:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"შემოთავაზებული კონტაქტები"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ყველა კონტაქტი"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> დაკავშირებულია"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"კონტაქტები მიება"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> წაიშალა"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> და <xliff:g id="NAME_1">%2$s</xliff:g> წაიშალა"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… წაიშალა"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">კონტაქტი წაიშალა</item>
+      <item quantity="one">კონტაქტი წაიშალა</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> კონტაქტი</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> კონტაქტი</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> კონტაქტი · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> კონტაქტი · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google-იდან"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g>-იდან"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ზარის დაყენება"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"ხმოვან ფოსტაში გადამისამართება"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ხმოვ. ფოსტაში გადამისამ. გაუქ."</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"ეს კონტაქტი მხოლოდ-წაკითხვადია. ის ვერ წაიშლება, თუმცა შეგიძლიათ მისი დამალვა."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"კონტაქტის დამალვა"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"ამ კონტაქტში დამალული იქნება მხოლოდ-წაკითხვადი ანგარიშები, თუმცა არ წაიშლება."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"გსურთ ამ კონტაქტის წაშლა?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"გსურთ არჩეული კონტაქტების წაშლა?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"მხოლოდ წაკითხვადი ანგარიშებიდან კონტაქტები ვერ წაიშლება, თუმცა შესაძლებელია მათი დამალვა."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"წასაშლელი კონტაქტები შეიცავს ინფორმაციას რამდენიმე ანგარიშიდან. მხოლოდ წაკითხვადი ანგარიშებიდან მიღებული ინფორმაცია, წაშლის ნაცვლად, დაიმალება."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ამ კონტაქტის წაშლის შემთხვევაში, რამდენიმე ანგარიშიდან მიღებული ინფორმაცია წაიშლება."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"გსურთ ამ კონტაქტის წაშლა?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"წაშლა"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"კონტაქტი არ არსებობს."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"კონტაქტი დაემატა მთავარ ეკრანს."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> დაემატა მთავარ ეკრანს."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"მოწყობილობაზე სურათები მიუწვდომელია."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"კონტაქტის ფოტო"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"მორგებული ლეიბლის სახელი"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ფოტოების წაშლა"</string>
+    <string name="noContacts" msgid="2228592924476426108">"თქვენი კონტაქტების სია ცარიელია"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"კონტაქტი ამ ლეიბლით არ არსებობს"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ამ ანგარიშში კონტაქტები არ არის"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"თქვენი კონტაქტების სია ცარიელია"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> შენახულია"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"კონტაქტი შენახულია"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"კონტაქტების მიბმა გაუქმდა"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"კონტაქტის ცვლილებების შენახვა ვერ მოხერხდა"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"კონტაქტის დაკავშირების გაუქმება ვერ მოხერხდა"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"კონტაქტის დაკავშირება ვერ მოხერხდა"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"კონტაქტის შენახვისას მოხდა შეცდომა"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"კონტაქტის ფოტოს ცვლილებების შენახვა ვერ მოხერხდა"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"ლეიბლი ვერ ჩაიტვირთა"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"ლეიბლი წაშლილია"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"ლეიბლი შექმნილია"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"ლეიბლის შექმნა შეუძლებელია"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"ლეიბლი განახლდა"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"ლეიბლიდან წაიშალა"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"დაემატა ლეიბლს"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"ლეიბლის ცვლილებების შენახვა ვერ მოხერხდა"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ეს ლეიბლი უკვე არსებობს"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"ზოგიერთ კონტაქტს არ აქვს ელფოსტის მისამართი."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"ზოგიერთ კონტაქტს არ აქვს ტელეფონის ნომერი."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ელფოსტის გაგზავნა"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"შეტყობინების გაგზავნა"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"აირჩიეთ კონტაქტები"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"გაგზავნა"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"კონტაქტები არ არის"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"„<xliff:g id="EMAIL">%s</xliff:g>“ დაემატოს კონტაქტებს?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"თქვენი კონტაქტების სახელები"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"დააწკაპუნეთ წინა ეკრანზე დასაბრუნებლად"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ტელეფონის ნომრის დამატება"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ელფოსტის დამატება"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ამ მოქმედების შესასრულებლად აპი ვერ მოიძებნა."</string>
+    <string name="menu_share" msgid="943789700636542260">"გაზიარება"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"კონტაქტებში დამატება"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"დამატება"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">კონტაქტების გაზიარება აპით</item>
+      <item quantity="one">კონტაქტის გაზიარება აპით</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"აირჩიეთ ანგარიში"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"ლეიბლის შექმნა"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"ლეიბლის გადარქმევა"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ლეიბლის სახელი"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ლეიბლის სახელი"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ხმოვანი ჩეთი"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ვიდეო ჩეთი"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-ის კონტაქტი"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-ის ანგარიში"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ფოტოს გადაღება"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ახალი ფოტოს გადაღება"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ფოტოს არჩევა"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ახალი ფოტოს არჩევა"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"ძიება..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"თარიღი"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ლეიბლი"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"გაუქმება"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"უკან"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"დახურვა"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"გადაერთვებით არჩეული კონტაქტის რედაქტირებაზე? მოხდება თქვენს მიერ შეყვანილი ინფორმაციის კოპირება."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"კატალოგი <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"პარამეტრები"</string>
+    <string name="menu_settings" msgid="377929915873428211">"პარამეტრები"</string>
+    <string name="menu_help" msgid="1680178646764069976">"დახმარება/უკუკავშირი"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ტელეფონის ნომერი"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"კონტაქტებში დამატება"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"დახურვა"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"წელის ჩათვლით"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ანგარიშის დამატება"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"იმპორტი"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"ახლის შექმნა…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"გსურთ ლეიბლის „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“ წაშლა? (თვითონ კონტაქტები არ წაიშლება)."</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"სხვა კონტაქტთან მიბმამდე აკრიფეთ კონტაქტის სახელი."</string>
+    <string name="copy_text" msgid="3257145021583508761">"კოპირება გაცვლის ბუფერში"</string>
+    <string name="set_default" msgid="4417505153468300351">"ნაგულისხმევად დაყენება"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ნაგულისხმევის წაშლა"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"კოპირებული ტექსტი"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"დავივიწყოთ ცვლილებები?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ცვლ.უარყოფა"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"გაუქმება"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"გსურთ მორგებული პარამეტრების გაუქმება?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"კონტაქტების ძიება"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"კონტაქტების წაშლა"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ჩემი ადგილობრივი პროფილი"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ჩემი <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> პროფილი"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"დაუთმეთ ორიოდე წუთი ანგარიშის დამატებას, რომლითაც შეიქმნება თქვენი კონტაქტების სარეზერვო ასლები Google-ში."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ახალი კონტაქტები შეინახება აქ: <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"აირჩიეთ ნაგულისხმევი ანგარიში ახალი კონტაქტებისთვის:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"ახალი კონტაქ. შექმნა"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"კონტაქტის შესწორება"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"მხოლოდ ნახვა"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"რედაქტირებისთვის აირჩიეთ კონტაქტი"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"დაკავშირებული კონტაქტები"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"დამატება"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"კავშ. გაუქმება"</string>
+    <string name="add_account" msgid="8201790677994503186">"ანგარიშის დამატება"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"ახალი ანგარიშის დამატება"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"მონაცემთა ბაზის ფაილების ექსპორტი"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"ახალი კონტაქტის შექმნა"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"იხილე მეტი"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ნაკლების ჩვენება"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ბოლო"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"შესახებ"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"პირადი ასლის შექმნა…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ხვალ"</string>
+    <string name="today" msgid="8041090779381781781">"დღეს"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"დღეს <xliff:g id="TIME_INTERVAL">%s</xliff:g>-ზე"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ხვალ <xliff:g id="TIME_INTERVAL">%s</xliff:g>-ზე"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(უსათაურო მოვლენა)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"დაყენება"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ორგანიზაცია"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"მეტსახელი"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ჩანიშვნა"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ვებსაიტი"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"მოვლენა"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"კავშირი"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"სახელი"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ელფოსტა"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ტელეფონი"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"მიმართულებები მდებარეობამდე"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"ბოლო sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. დააწკაპუნეთ საპასუხოდ"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"შემომავალი"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"გამავალი"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"გამოტოვებული"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"ბოლო ზარი. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. დააწკაპუნეთ გადასარეკად"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"თქვენ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"სხვა ველები"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"კონტაქტის ფოტოს შეცვლა"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"კონტაქტის ფოტოს დამატება"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"კონტაქტის ფოტო"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"რედაქტორი ვერ გაიხსნა."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"ინახება აქ:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"კონტაქტის ინფორმაცია <xliff:g id="ACCOUNT">%s</xliff:g>-იდან ვერ დარედაქტირდება"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"კონტაქტების მიბმა"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"გაუქმება"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ეს კონტაქტი"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"შესაძლო დუბლიკატები"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ეს კონტაქტები შეიძლება ერთი და იგივე პიროვნება იყოს. შეგიძლიათ მიბმის მეშვეობით მათი ერთ კონტაქტად გაერთიანება."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"წაიშალოს <xliff:g id="DATA_KIND">%2$s</xliff:g> (<xliff:g id="DATA_TYPE">%1$s </xliff:g>)"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"წაიშალოს <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"შეთავაზებები"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"ახალი"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ნავიგაციის უჯრის გახსნა"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ნავიგაციის უჯრის დახურვა"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> ლეიბლი"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ლეიბლები"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"ანგარიშები"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"თქვენი ერთიანი ისტორიის ნახვა"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"მოვლენები და შეტყობინებები"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"მოვლენები"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"შეტყობინებები"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"შეთავაზებები"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"მოახდინეთ თქვენი კონტაქტების ორგანიზება, რათა ადვილად გამოიყენოთ ისინი"</string>
+    <string name="undo" msgid="1425165101664071422">"მოქმედების გაუქმება"</string>
+    <string name="call_custom" msgid="6385303130912713318">"ზარი <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-თან"</string>
+    <string name="call_home" msgid="1990519474420545392">"დარეკვა სახლში"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"დარეკვა მობილურზე"</string>
+    <string name="call_work" msgid="5328785911463744028">"დარეკვა სამსახურში"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"დარეკვა სამსახურის ფაქსზე"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"დარეკვა სახლის ფაქსზე"</string>
+    <string name="call_pager" msgid="9003902812293983281">"დარეკვა პეიჯერზე"</string>
+    <string name="call_other" msgid="8563753966926932052">"დარეკვა"</string>
+    <string name="call_callback" msgid="1910165691349426858">"დარეკვა უკუგამოძახების ნომერზე"</string>
+    <string name="call_car" msgid="3280537320306436445">"დარეკვა მანქანის ტელეფონზე"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"დარეკვა კომპანიის მთავარ ნომერზე"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"დარეკვა ISDN ნომერზე"</string>
+    <string name="call_main" msgid="6082900571803441339">"დარეკვა მთავარ ნომერზე"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"დარეკვა ფაქსზე"</string>
+    <string name="call_radio" msgid="8296755876398357063">"დარეკვა გადამცემზე"</string>
+    <string name="call_telex" msgid="2223170774548648114">"დარეკვა ტელექსზე"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"დარეკვა TTY/TDD-ზე"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"დარეკვა სამსახურის მობილურზე"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"დარეკვა სამსახურის პეიჯერზე"</string>
+    <string name="call_assistant" msgid="670941612175068337">"ზარი <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-თან"</string>
+    <string name="call_mms" msgid="6274041545876221437">"დარეკვა MMS ნომერზე"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ზარი)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"ტექსტური შეტყობინება <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-ზე"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ტექსტური შეტყობინების გაგზავნა სახლში"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"ტექსტური შეტყობინების გაგზავნა მობილურზე"</string>
+    <string name="sms_work" msgid="2269624156655267740">"ტექსტური შეტყობინების გაგზავნა სამსახურის ნომერზე"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"ტექსტური შეტყობინების გაგზავნა სამუშაო ფაქსზე"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"ტექსტური შეტყობინების გაგზავნა სახლის ფაქსზე"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"ტექსტური შეტყობინების გაგზავნა პეიჯერზე"</string>
+    <string name="sms_other" msgid="806127844607642331">"ტექსტური შეტყობინების გაგზავნა"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"ტექსტური შეტყობინების გაგზავნა უკუგამოძახების ნომერზე"</string>
+    <string name="sms_car" msgid="7444227058437359641">"ტექსტური შეტყობინების გაგზავნა მანქანის ნომერზე"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"ტექსტური შეტყობინება კომპანიის ძირითად ნომერზე"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ტექსტური შეტყობინების გაგზავნა ISDN ნომერზე"</string>
+    <string name="sms_main" msgid="8621625784504541679">"ტექსტური შეტყობინების გაგზავნა მთავარ ნომერზე"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ტექსტური შეტყობინების გაგზავნა ფაქსზე"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ტექსტური შეტყობინების გაგზავნა გადამცემზე"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ტექსტური შეტყობინების გაგზავნა ტელექსზე"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"ტექსტური შეტყობინების გაგზავნა TTY/TDD-ზე"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"ტექსტური შეტყობინების გაგზავნა სამსახურის მობილურზე"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"ტექსტური შეტყობინების გაგზავნა სამსახურის პეიჯერზე"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"ტექსტური შეტყობინების გაგზავნა <xliff:g id="ASSISTANT">%s</xliff:g>-ისთვის"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"ტექსტური შეტყობინების გაგზავნა MMS ნომერზე"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (შეტყობინება)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ვიდეოზარის განხორციელება"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"გსურთ ხშირი კონტაქტების წაშლა?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"თქვენ წაშლით ხშირად დაკავშირებულთა სიას კონტაქტებიდან და ტელეფონის აპიდან და აიძულებთ ელფოსტის აპებს შეისწავლონ თქვენი ადრესატების პრიორიტეტები ნულიდან."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"ხშირი კონტაქტები იშლება…"</string>
+    <string name="status_available" msgid="5586870015822828392">"ხელმისაწვდომი"</string>
+    <string name="status_away" msgid="1838861100379804730">"გასული"</string>
+    <string name="status_busy" msgid="9147992455450257136">"დაკავებული"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"სხვა"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"კატალოგი"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"სამსახურის კატალოგი"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"ყველა კონტაქტი"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"სწრაფი კონტაქტი <xliff:g id="NAME">%1$s</xliff:g>-თან"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(სახელის გარეშე)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"ხშირი კონტაქტები"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ყველა ტელეფონის ნომრიანი კონტაქტი"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"სამსახურის პროფილის კონტაქტები"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"განახლებების ნახვა"</string>
+    <string name="account_phone" msgid="7128032778471187553">"მოწყობილობა"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"სახელი"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"მეტსახელი"</string>
+    <string name="name_given" msgid="4280790853455320619">"სახელი"</string>
+    <string name="name_family" msgid="7466985689626017037">"გვარი"</string>
+    <string name="name_prefix" msgid="59756378548779822">"სახელის პრეფიქსი"</string>
+    <string name="name_middle" msgid="8467433655992690326">"მეორე სახელი"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"სახელის სუფიქსი"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"სახელის ტრანსკრიფცია"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ფონეტიკური სახელი"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"მეორე სახელის ტრანსკრიფცია"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ფონეტიკური გვარი"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ტელეფონი"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ელფოსტა"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"მისამართი"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"ორგანიზაცია"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ურთიერთობა"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"სპეციალური თარიღი"</string>
+    <string name="sms" msgid="1756857139634224222">"ტექსტური შეტყობინება"</string>
+    <string name="postal_address" msgid="8765560217149624536">"მისამართი"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"კომპანია"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"სათაური"</string>
+    <string name="label_notes" msgid="8337354953278341042">"შენიშვნები"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"მორგებული"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ვებ-საიტი"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ლეიბლები"</string>
+    <string name="email_home" msgid="8573740658148184279">"გაგზავნა სახლის ელფოსტაზე"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"ელფოსტის გაგზავნა მობილურზე"</string>
+    <string name="email_work" msgid="2807430017302722689">"გაგზავნა სამსახურის ელფოსტაზე"</string>
+    <string name="email_other" msgid="3454004077967657109">"ელფოსტის გაგზავნა"</string>
+    <string name="email_custom" msgid="5536404237099078802">"ელფოსტის გაგზავნა <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-ზე"</string>
+    <string name="email" msgid="5668400997660065897">"ელფოსტის გაგზავნა"</string>
+    <string name="postal_street" msgid="8133143961580058972">"ქუჩა"</string>
+    <string name="postal_city" msgid="6597491300084895548">"ქალაქი"</string>
+    <string name="postal_region" msgid="6045263193478437672">"შტატი"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ZIP-კოდი"</string>
+    <string name="postal_country" msgid="7638264508416368690">"ქვეყანა"</string>
+    <string name="map_home" msgid="1243547733423343982">"სახლის მისამართის ნახვა"</string>
+    <string name="map_work" msgid="1360474076921878088">"სამსახურის მისამართის ნახვა"</string>
+    <string name="map_other" msgid="3817820803587012641">"მისამართის ნახვა"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>-ის მისამართის ნახვა"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"ჩეთი AIM-ით"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"ჩეთი Windows Live-ით"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"ჩეთი Yahoo-ს საშუალებით"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"ჩეთი Skype-ით"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"ჩეთი QQ-ით"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"ჩეთი Google Talk-ით"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ჩეთი ICQ-ით"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"ჩეთი Jabber-ით"</string>
+    <string name="chat" msgid="9025361898797412245">"ჩეთი"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"წაშლა"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"სახელის მეტი ველის ჩვენება"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"სახელების ველების ჩაკეცვა"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"ფონეტიკური სახელის მეტი ველის ჩვენება"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ფონეტიკური სახელების ველების ჩაკეცვა"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"გაფართოება"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"ჩაკეცვა"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"გაფართოებულია"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"ჩაკეცილია"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"ყველა კონტაქტი"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ვარსკვლავიანი"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"მორგება"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"კონტაქტი"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"ყველა სხვა კონტაქტი"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"ყველა კონტაქტი"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"სინქრონიზაციის ჯგუფის წაშლა"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"სინქრონიზაციის ჯგუფის დამატება"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"სხვა ჯგუფები…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"სინქრონიზაციიდან „<xliff:g id="GROUP">%s</xliff:g>“-ის ამოშლა წაშლის ყველა დაუჯგუფებელ კონტაქტს."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ეკრანის პარამეტრების შენახვა…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"მორგებული ხედი"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"იმპორტირებული კონტაქტების შენახვა აქ:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM ბარათიდან"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>-დან"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d კონტაქტი</item>
+      <item quantity="one">1 კონტაქტი</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> კონტაქტი • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> კონტაქტი • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ფაილიდან"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"იმპორტისთვის არაფერია"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"გსურთ კონტაქტების იმპორტი vCard-იდან?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g>-ის იმპორტის გაუქმება?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"გსურთ <xliff:g id="FILENAME">%s</xliff:g>-ის ექსპორტის გაუქმება?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard-ის იმპორტი/ექსპორტი ვერ მოხერხდა"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"უცნობი შეცდომა."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"„<xliff:g id="FILE_NAME">%1$s</xliff:g>“ ვერ გაიხსნა: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"ექსპორტერის გაშვება ვერ მოხერხდა: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ექსპორტირებადი კონტაქტი არ არსებობს."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"თქვენ გათიშული გაქვთ მოთხოვნილი ნებართვა."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"ექსპორტი ვერ მოხერხდა: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O შეცდომა"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"მეხსიერება არასაკმარისია. შესაძლოა ფაილი ძალიან დიდია."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ეს ფორმატი მხარდაუჭერელია."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g>-ის ექსპორტი დასრულდა."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"კონტაქტების ექსპორტი დასრულდა."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"კონტაქტების ექსპორტი დასრულდა. კონტაქტების გასაზიარებლად, შეეხეთ შეტყობინებას."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"შეეხეთ კონტაქტების გასაზიარებლად."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g>-ის ექსპორტი გაუქმდა."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"კონტაქტების მონაცემთა ექსპორტი"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"მიმდინარეობს კონტაქტების მონაცემების ექსპორტი."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"მონაცემთა ბაზის ინფორმაციის მიღება ვერ მოხერხდა."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"ექსპორტირებადი კონტაქტები არ არის."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard კომპოზიტორი გაშვებულია არასწორად."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"ექსპორტი ჩაიშალა."</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"კონტაქტების მონაცემები არ არის ექსპორტირებული.\nმიზეზი: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"იმპორტირდება <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard მონაცემთა წაკითხვა ვერ მოხერხდა"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g>-ის იმპორტი დასრულდა"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g>-ის იმპორტი გაუქმდა"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> მალე იმპორტირდება."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ამ ფაილის იმპორტი მალე შესრულდება."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard-ის იმპორტის მოთხოვნა უარყოფილია. სცადეთ მოგვიანებით."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"კონტაქტების ექსპორტი მალე განხორციელდება."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard-ის ექსპორტის მოთხოვნა უარყოფილია. სცადეთ მოგვიანებით."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"კონტაქტი"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"მიმდინარეობს vCard ფაილ(ებ)ის ქეშირება დროებით ადგილობრივ მეხსიერებაში. ფაქტიური იმპორტი დაიწყება მალე."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard-ის იმპორტი ვერ მოხერხდა."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"კონტაქტი NFC-ით"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"ქეშირება"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"მიმდინარეობს იმპორტი <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"ექსპორტი .vcf ფაილში"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"დალაგება:"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"სახელის ტრანსკრიფცია"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"ყოველთვის ჩვენება"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"დამალვა, თუ ცარიელია"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"სახელით"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"გვარით"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"სახელის ფორმატი"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ჯერ სახელი"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"ჯერ გვარი"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"ანგარიშები"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"ნაგულისხმევი ანგარიში ახალი კონტაქტებისთვის"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"ჩემი ინფორმაცია"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"თქვენი პროფილის დაყენება"</string>
+    <string name="setting_about" msgid="7014388749752042863">"კონტაქტების შესახებ"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"რჩეული კონტაქტების გაზიარება"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"ყველა კონტაქტის გაზიარება"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"კონტაქტების გაზიარება ვერ მოხერხდა."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"კონტაქტების ექსპორტი"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"კონტაქტების იმპორტი:"</string>
+    <string name="share_error" msgid="948429331673358107">"ამ კონტაქტის გაზიარება შეუძლებელია."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"გასაზიარებელი კონტაქტები არ არის."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"საჩვენებელი კონტაქტები"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"საჩვენებელი კონტაქტები"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"ხედის პარამეტრების დაყენება"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"შენახვა"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"კონტაქტებში ძიება"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"რჩეულები"</string>
+    <string name="menu_import" msgid="6107961135813836467">"იმპორტი"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ექსპორტი"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"დაბლოკილი ნომრები"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g>-ის საშუალებით"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="SOURCE">%2$s</xliff:g>-ის მეშვეობით"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ძიების შეჩერება"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ძიების გასუფთავება"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"ანგარიში"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ზარებისთვის მუდამ ამის გამოყენება"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"ზარი შენიშვნასთან ერთად"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"აკრიფეთ ჩანიშვნა ზართან ერთად გასაგზავნად…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"გაგზავნა და დარეკვა"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"ანაწყობის ვერსია"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ღია კოდის ლიცენზიები"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ღია კოდის პროგრამული უზრუნველყოფის ლიცენზირების დეტალები"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"კონფიდენციალურობის დებულება"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"მომსახურების პირობები"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ღია კოდის ლიცენზიები"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Url-ის გახსნა ვერ მოხერხდა."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> მონიშნულია"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> არ არის მონიშნული"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ვიდეოზარის განხორციელება"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"წაშლა"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"სამწერტილი"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> წმ."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> წთ. და <xliff:g id="SECONDS">%2$s</xliff:g> წმ."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> სთ. <xliff:g id="MINUTES_1">%2$s</xliff:g> წთ. <xliff:g id="SECONDS">%3$s</xliff:g> წმ."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ეს მალსახმობი გათიშულია"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"კონტაქტი წაშლილია"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"იმპორტი"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"კონტაქტების არჩევა"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"თქვენს SIM ბარათზე კონტაქტები არ არის"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"კონტაქტი უკვე არსებობს თქვენს სიაში"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">იმპორტირებულია <xliff:g id="COUNT">%d</xliff:g> SIM კონტაქტი</item>
+      <item quantity="one">იმპორტირებულია 1 SIM კონტაქტი</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM კონტაქტების იმპორტირება ვერ მოხერხდა"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM-იდან იმპორტი"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"გაუქმება"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"ავტო-სინქ. გამორთულია. შეეხეთ ჩასართავად."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"უარყოფა"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"ანგარიშის სინქრონიზაცია გამორთულია. შეეხეთ ჩასართავად."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"გსურთ ავტომატური სინქრონიზაციის გამორთვა?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"ის ცვლილებები, რომლებსაც შეიტანთ ყველა აპსა და ანგარიშში და არა მხოლოდ Google Contacts-ში, სინქრონიზებულად განახლდება ვებსა და თქვენს მოწყობილობას შორის."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ჩართვა"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"კავშირი არ არის"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"მეტის ჩვენება"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM ბარათის იმპორტი დასრულდა"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"იმპორტი ვერ შესრულდა"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM ბარათიდან კონტაქტების იმპორტი ვერ შესრულდა"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"მიმდინარეობს SIM-ის იმპორტი"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
deleted file mode 100644
index fffc728..0000000
--- a/res/values-kk-rKZ/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Контактілер"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Контактілер"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Контактіні көру"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Контактіні өңдеу"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Контактілер"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Тікелей теру"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Тікелей хабар"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Контакт төте пернесін таңдау"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Қоңырау шалатын нөмірді таңдау"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Хабар жіберетін нөмірді таңдау"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Контактілерге қосу"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Контакт таңдау"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Жаңа контакт жасау"</string>
-    <string name="starredList" msgid="4817256136413959463">"Жұлдызшалы"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Жиі"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Сүйіктілер"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Контакт егжей-тегжейі"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Контактіні жөндеу"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Контакт жасақтау"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Топты жөндеу"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Топ жасақтау"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Туралы"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Жаңартулар"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Контактілерді іздеу"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Контактіні көру"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Сүйіктілерге қосу"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Сүйіктілерден алу"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Таңдаулылардан жойылды"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Таңдаулыларға қосылды"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Жөндеу"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Жою"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Фотосуретті өзгерту"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Негізгі экранға орналастыру"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Контактіге қоңырау шалу"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Контактіге мәтін-хабар жіберу"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Ажырату"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Жөндеу"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Жою"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Контакт қосу"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Топ қосу"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Осы контакт байланысын жойып, бірнеше контактіге бөлу керек пе?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Байланысты жою"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Енгізіп қойған өзгертулерді сақтау және осы контакт байланысын жойып, бірнеше контактіге бөлу керек пе?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Сақтау және байланысты жою"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Енгізіп қойған өзгертулерді сақтау және таңдалған контактімен байланыстыру керек пе?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Сақтау және байланыстыру"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Байланыстыру"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Сақтау"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Контактілерді байланыстыру"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> байланыстыру керек контактіні таңдаңыз:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Барлық контактілерді көрсету"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Ұсынылған контактілер"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Барлық контактілер"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Контактілер байланыстырылды"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Контактілер жойылды</item>
-      <item quantity="one">Контакт жойылды</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Рингтонды орнату"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Тек дауыс поштасы"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Тек оқуға арналған есептік жазбалардағы контактілерді жою мүмкін емес, бірақ оларды жасыруға болады."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Жасыру"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Жойылатын контактіде бірнеше есептік жазбадан алынған мәліметтер бар. Тек оқуға арналған есептік жазбалардан алынған мәліметтер жойылмайды, жасырылады."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Байланыстыру үшін кемінде екі контактіні таңдау керек."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Таңдалған контактілерді байланыстыру керек пе?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Байланыстыру"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Осы контактіні жою керек пе?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Таңдалған контактілерді жою керек пе?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Тек оқуға арналған есептік жазбалардағы контактілерді жою мүмкін емес, бірақ оларды жасыруға болады."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Жойылатын контактілерде бірнеше есептік жазбадан алынған мәліметтер бар. Тек оқуға арналған есептік жазбалардан алынған мәліметтер жойылмайды, жасырылады."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Бұл контактіні жою бірнеше есептік жазбадан мәліметтерді жояды."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Осы контактіні жою керек пе?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Жою"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Өзгертулерден бас тарту"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Мұндай контакт жоқ."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Контакт негізгі экранға қосылды."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> негізгі экранға қосылды."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Жаңа контакт құру"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Жаңа контакт құру"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Ұйым"</item>
-    <item msgid="7196592230748086755">"Ескерту"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Планшетте ешқандай фотосуреттер жоқ."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Телефонда ешқандай фотосуреттер жоқ."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Контакт фотосуреті"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Реттелмелі белгі атауы"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Қоңырауларды тікелей дауыс хабарына жіберу"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Фотосуретті алу"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Контактілер жоқ"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Топтар жоқ."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Топтар жасақтау үшін есептік жазба қажет."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Бұл топта адамдар жоқ."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Кейбіреулерін қосу үшін, топты жөндеңіз."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Контактіні сақтауда…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Контакт сақталды"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Контактілердің байланысы жойылды"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Контакт өзгерістерін сақтай алмады."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Контакт байланысын жою мүмкін болмады."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Контактіні байланыстыру мүмкін болмады."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Контактіні сақтау кезіндегі қате."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Жаңа контакт фотосуреті сақталмады."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Топ сақталды."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Топ өзгерістерін сақтау мүмкін болмады."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">Телефон нөмірі бар <xliff:g id="COUNT">%d</xliff:g> контакт</item>
-      <item quantity="one">Телефон нөмірі бар 1 контакт</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Телефон нөмірлері бар контактілер жоқ"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> табылды</item>
-      <item quantity="one">1 табылды</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Контактілер жоқ"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> табылды</item>
-      <item quantity="one">1 табылды</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Барлығы"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Таңдаулылар"</string>
-    <string name="callBack" msgid="5498224409038809224">"Кері қоңырау шалу"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Қайта қоңырау шалу"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Қоңырауды қайтару"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" контактілерге қосылсын ба?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"контакт фотосуреті"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"қосу"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>, барлық <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контактілерден"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Контактілеріңіздің аттары"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Бұл әрекетті орындайтын ешқандай қолданба табылмады."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Алдыңғы экранға оралу үшін түртіңіз"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Телефон нөмірін қосу"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Электрондық пошта қосу"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Бұл әрекетті орындайтын қолданба табылмады."</string>
-    <string name="menu_share" msgid="943789700636542260">"Бөлісу"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Контактілерге қосу"</string>
-    <string name="share_via" msgid="563121028023030093">"Контактімен бөлісу"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Есептік жазба арқылы топ құру"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Дауыс чаты"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
-    <string name="connections" msgid="8098440723172028350">"Байланыстар"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Байланыс қосу"</string>
-    <string name="recent" msgid="2659189233141493004">"Жуықта қолданылған"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Соңғы жаңартулар"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> контактісі"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> есептік жазбасы"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Бұл қолданба арқылы жөнделмейді."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Бұл құрылғыда жөндеу мүмкін емеc."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Фотосурет түсіру"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Жаңа фотосурет түсіру"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Фотосуретті таңдау"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Жаңа фотоурет таңдау"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Контакт тізімі жаңартылуда."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Іздеуде…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Таңдалғанды көрсету"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Барлығын көрсету"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Барлығын таңдау"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Барлығының таңдау белгісін алу"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Жаңа қосу"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Ұйым қосу"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Күні"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Топ атауы"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Өзгерту"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Негізгі фотосурет"</string>
-    <string name="description_star" msgid="2605854427360036550">"сүйікті"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Контактіні жөндеу"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Ағымдағы контактіні таңдалған контактімен байланыстыру керек пе?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Таңдалған контактіні жөндеуге ауысуды қалайсыз ба? Осы уақытқа дейін сіз енгізген ақпараттың көшірмесі жасалады."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Менің контактілеріме көшіру"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Менің контактілерім тізіміне қосу"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> анықтамалық кітапшасы"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Реттелетін"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Параметрлер"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Параметрлер"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Анықтама және кері байланыс"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Көрсету опциялары"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Телефон нөмірі"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Контактілерге қосу"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Контактілерге қосу"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Жабу"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Жылды қосу"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Контакт"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Жүктеуде…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Жаңа контакт құру"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Есептік жазба қосу"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Контактілерді импорттау"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Жаңа топ жасақтау"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Жаңа топ жасақтау"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> топ</item>
-      <item quantity="one">1 топ</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" тобы жойылсын ба? (Контактілер жойылмайды.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> ішінен <xliff:g id="COUNT_2">%1$d</xliff:g> адам</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> ішінен <xliff:g id="COUNT_0">%1$d</xliff:g> адам</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> адам</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> адам</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Басқа контактімен байланыстыру алдында контактінің атын теріңіз."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Дерек алмастыру жадына сақтау"</string>
-    <string name="set_default" msgid="4417505153468300351">"Бастапқы ретінде орнату"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Бастапқыны өшіру"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Мәтін көшірмесі жасалды"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Өзгертулер сақталмай-ақ қойсын ба?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Жою"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Менің профайлымды реттеу"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Адамның атын теру"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Топтың атауы"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Менің жергілікті профайлым"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Менің <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайлым"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Барлық контактілер көрсетілуде"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Контактілер Google есептік жазбасымен жақсырақ жұмыс істейді.\n\n• Кез келген веб-браузерден қатынасыңыз.\n• Контактілердің сақтық көшірмесін қауіпсіз жасаңыз."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Телефоныңыз жоғалған жағдайда контактілеріңізді сақтап қалыңыз: желі қызметімен синхрондаңыз."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Есептік жазба қосу"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Жаңа контактінің сақтық көшірмесі жасалмайды. Контактілердің желі арқылы көшірмесін жасайтын есептік жазба қосуды қалайсыз ба?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Жаңа контактілер <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> есептік жазбасында сақталады."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Жаңа контактілерге арналған әдепкі есептік жазбаны таңдаңыз:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Жаңа контакт қосу"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Контактіні өңдеу"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Жергілікті сақтау"</string>
-    <string name="add_account" msgid="8201790677994503186">"Ес. жазба қосу"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Жаңа есептік жазба қосу"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Дерекқор файлдарын экспорттау"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"жаңа контакт қосу"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Көбірек көру"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Азырақ көру"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Барлығын көру"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Жақындағы"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Туралы"</string>
-    <string name="send_message" msgid="8938418965550543196">"Хабарды жіберу"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Жеке көшірмені жасау…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Кеше"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Ертең"</string>
-    <string name="today" msgid="8041090779381781781">"Бүгін"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Бүгін, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Ертең, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Атаусыз оқиға)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Орнату"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Ұйым"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Бүркеншік ат"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Ескертпе"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Веб-сайт"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Оқиға"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Қатынас"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Есептік жазба"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Аты"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"Электрондық пошта"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Фотосурет"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Контактілер өңдегішті кеңейту үшін басыңыз."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Контактілер өңдегішті тасалау үшін басыңыз."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"орынға бағыттар"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"жақындағы sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. жауап беру үшін басыңыз"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"кіріс"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"шығыс"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"өткізіп алған"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"жақындағы қоңырау. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. кері қоңырау шалу үшін басыңыз"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Сіз: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts қолданбасы электрондық пошта өрісіне немесе телефон өрісіне адамның Hangouts идентификаторын енгізгенде жақсырақ жұмыс істейді."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Қалған өрістер"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Фотосуретті өзгерту"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Өңдегішті ашу сәтсіз аяқталды."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Келесіге сақтау"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Қазіргі уақытта <xliff:g id="ACCOUNT_NAME">%s</xliff:g> есептік жазбасына сақталуда. Басқа есептік жазбаны таңдау үшін екі рет түртіңіз."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Байланыстырылған контактілер (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Байланыстырылған контакт</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> байланыстырылған контакт"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"КОНТАКТІЛЕРДІ БАЙЛАНЫСТЫРУ"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"БАС ТАРТУ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ықтимал көшірме</item>
-      <item quantity="one">1 ықтимал көшірме</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> байланыстырылған контакт</item>
-      <item quantity="one">1 байланыстырылған контакт</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Осы контакт"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Ықтимал көшірмелер"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Бұл контактілер бір адам болуы мүмкін. Оларды бір контактіге біріктіруге болады."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Байланыстырылған контактілер"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Есептік жазбаларыңыздан"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Фотосурет түсіру"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Барлық фотосуреттер"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Фотосуретті таңдау"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Кімнен: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> жою"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> жою"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> ішіндегі фотосуретке құсбелгі қойылмаған"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> ішіндегі фотосуретке құсбелгі қойылған"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Белгісіз есептік жазбадан алынған фотосуретке құсбелгі қойылмады"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Белгісіз есептік жазбадан алынған фотосуретке құсбелгі қойылды"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Контактілер тізімі тілдің өзгеруін көрсету үшін жаңартылуда.\n\nКүтіңіз..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Нөмір қосу"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Нөмірді бөгеу"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Нөмірді енгізіңіз немесе контактілерден іздеп табыңыз"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеуден шығару керек пе?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"БӨГЕУДЕН ШЫҒАРУ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеу керек пе?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"БӨГЕУ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгелген"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеуден шығарылған"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> жарамсыз."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Қоңырауларға тыйым салу уақытша өшірулі"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Қоңырауларға тыйым салу өшірілді, өйткені сіз соңғы 48 сағат ішінде осы телефоннан төтенше қызметтерге хабарластыңыз. Ол 48 сағаттық кезең өткеннен кейін автоматты түрде қайта қосылады."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импорттау"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Нөмірлерді көру"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Нөмір қосу"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Қоңырауларға тыйым салу 48 сағат бойы өшірілген"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Өшірілген, өйткені төтенше қоңырау соғылған."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"КЕРІ ОРЫНДАУ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеліп қойылған."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Нөмірді бөгеуден шығару"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> контакт деректері"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импорттау сәтсіз аяқталды"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Нөмірлерді импорттау"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Қосу"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
new file mode 100644
index 0000000..79c43e7
--- /dev/null
+++ b/res/values-kk/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Контактілер"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Контактілер"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Контакт қосу"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Тікелей теру"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Тікелей хабар"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Контактіні таңдау"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Контактілерге қосу"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Контакт таңдау"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Таңдау"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Жаңа контакт жасау"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Контактілерді іздеу"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Таңдаулыларға қосу"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Таңдаулылардан өшіру"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Таңдаулылардан жойылды"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Таңдаулыларға қосылды"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Жөндеу"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Жою"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Фотосуретті өзгерту"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Таңбаша жасау"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Ажырату"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Контактілерді жою"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Белгінің атын өзгерту"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Белгіні жою"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Контакт қосу"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Контактілер таңдау"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Контактілерді қосу"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Белгіден алып тастау"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Белгі жасау"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Осы контакт байланысын жойып, бірнеше контактіге бөлу керек пе?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Байланысты жою"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Енгізіп қойған өзгертулерді сақтау және осы контакт байланысын жойып, бірнеше контактіге бөлу керек пе?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Сақтау және байланысты жою"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Енгізіп қойған өзгертулерді сақтау және таңдалған контактімен байланыстыру керек пе?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Сақтау және байланыстыру"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Байланыстыруда"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Байланыс жойылуда"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Байланыстыру"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Байланысты контактілер"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Сақтау"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Контактілерді байланыстыру"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> өзара байланысатын контактіні таңдаңыз:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Ұсынылған контактілер"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Барлық контактілер"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> байланыстырылды"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Контактілер байланыстырылды"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> жойылды"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> және <xliff:g id="NAME_1">%2$s</xliff:g> жойылды"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… жойылды"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Контактілер жойылды</item>
+      <item quantity="one">Контакт жойылды</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> контакт</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> контакт</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> контакт· <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> контакт· <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google есептік жазбасынан"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> есептік жазбасынан"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Рингтонды орнату"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Дауыстық поштаға ауыстыру"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Дауыстық поштаны шығару"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Бұл контакт тек қана оқу рұқсаты бар есептік жазбадан. Оны жою мүмкін емес, бірақ жасыруға болады."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Контактіні жасыру"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Тек қана оқу рұқсаты бар есептік жазбалар жасырылады, жойылмайды."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Осы контактіні жою керек пе?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Таңдалған контактілерді жою керек пе?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Тек оқуға арналған есептік жазбалардағы контактілерді жою мүмкін емес, бірақ оларды жасыруға болады."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Жойылатын контактілерде бірнеше есептік жазбадан алынған мәліметтер бар. Тек оқуға арналған есептік жазбалардан алынған мәліметтер жойылмайды, жасырылады."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Бұл контактіні жою бірнеше есептік жазбадан мәліметтерді жояды."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Осы контактіні жою керек пе?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Жою"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Мұндай контакт жоқ."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Контакт негізгі экранға қосылды."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> негізгі экранға қосылды."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Құрылғыда ешқандай суреттер жоқ."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Контакт фотосуреті"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Реттелмелі белгі атауы"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Фотосуретті алу"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Контактілер тізімі бос"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Осы белгісі бар контактілер жоқ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Бұл есептік жазбада контактілер жоқ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Контактілер тізімі бос"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> сақталды"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Контакт сақталды"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Контактілердің байланысы жойылды"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Контакт өзгерістері сақталмады"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Контактіні ажырату мүмкін болмады"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Контактіні байланыстыру мүмкін болмады"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Контактіні сақтау қатесі"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Контакт суретінің өзгерістері сақталмады"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Белгі жүктелген жоқ"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Белгі жойылған"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Белгі жасалды"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Белгі жасау мүмкін болмады"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Белгі жаңартылды"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Белгіден жойылған"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Белгіге қосылды"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Белгі өзгертулері сақталмады"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Бұл белгіше бұрыннан бар"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Кейбір контактілердің электрондық пошталары жоқ."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Кейбір контактілердің телефон нөмірлері жоқ."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Электрондық хат жіберу"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Хабарды жіберу"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Контактілерді таңдау"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Жіберу"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Контактілер жоқ"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" контактілерге қосылсын ба?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Контактілеріңіздің аттары"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Алдыңғы экранға оралу үшін түртіңіз"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Телефон нөмірін қосу"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Электрондық пошта қосу"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Бұл әрекетті орындайтын қолданба табылмады."</string>
+    <string name="menu_share" msgid="943789700636542260">"Бөлісу"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Контактілерге қосу"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Қосу"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Контактілерді бөлісу</item>
+      <item quantity="one">Контактіні бөлісу</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Есептік жазба таңдау"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Белгі жасау"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Белгінің атын өзгерту"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Белгі атауы"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Белгі атауы"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Дауыс чаты"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> контакт"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> есептік жазбасы"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Фотосурет түсіру"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Жаңа фотосурет түсіру"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Фотосуретті таңдау"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Жаңа фотоурет таңдау"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Іздеуде…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Күні"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Белгі"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Жабу"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Артқа"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"жабу"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Таңдалған контактіні жөндеуге ауысуды қалайсыз ба? Осы уақытқа дейін сіз енгізген ақпараттың көшірмесі жасалады."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> анықтамалық кітапшасы"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Параметрлер"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Параметрлер"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Анықтама және пікір"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Телефон нөмірі"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Контактілерге қосу"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Жабу"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Жылды қосу"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Есептік жазба қосу"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Импорттау"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Жаңасын жасау…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" тобы жойылсын ба? Контактілер өздігінен жойылмайды."</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Басқа контактімен байланыстыру алдында контактінің атын теріңіз."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Аралық сақтағышқа көшіру"</string>
+    <string name="set_default" msgid="4417505153468300351">"Бастапқы ретінде орнату"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Бастапқыны өшіру"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Мәтін көшірмесі жасалды"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Өзгертулерді алып тастау қажет пе?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Алып тастау"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Бас тарту"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Таңдалған параметрлерді сақтау қажет емес пе?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Контактілерді іздеу"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Контактілерді жою"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Менің жергілікті профайлым"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Менің <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайлым"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Google-ға контактілеріңіздің сақтық көшірмесін жасайтын есептік жазба қосу үшін бір минут уақыт бөліңіз."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Жаңа контактілер <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> есептік жазбасында сақталады."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Жаңа контактілерге арналған әдепкі есептік жазбаны таңдаңыз:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Жаңа контакт қосу"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Контактіні өңдеу"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Көру мүмкіндігі ғана бар"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Өзгертілетін контактіні таңдаңыз"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Байланысты контактілер"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Қосу"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Байланысты жою"</string>
+    <string name="add_account" msgid="8201790677994503186">"Ес. жазба қосу"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Жаңа есептік жазба қосу"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Дерекқор файлдарын экспорттау"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Жаңа контакт қосу"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Көбірек көру"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Азырақ көру"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Жақындағы"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Туралы"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Жеке көшірме жасау…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Ертең"</string>
+    <string name="today" msgid="8041090779381781781">"Бүгін"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Бүгін, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Ертең, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Атаусыз оқиға)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Орнату"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Ұйым"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Бүркеншік ат"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Ескертпе"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Веб-сайт"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Оқиға"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Қатынас"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Аты"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Электрондық пошта"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"орынға бағыттар"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"жақындағы sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. жауап беру үшін басыңыз"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"кіріс"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"шығыс"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"өткізіп алған"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"жақындағы қоңырау. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. кері қоңырау шалу үшін басыңыз"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Сіз: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Тағы"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Контакт суретін өзгерту"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Контакт суретін қосу"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Контакт суреті"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Өңдегішті ашу мүмкін болмады."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Cақтау:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> контакт деректері өзгертілмейді"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"КОНТАКТІЛЕРДІ БАЙЛАНЫСТЫРУ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"БАС ТАРТУ"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Осы контакт"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Ықтимал көшірмелер"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Бұл контактілер бір адам болуы мүмкін. Оларды бір контактіге біріктіруге болады."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> жою"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> жою"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Ұсыныстар"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Жаңа"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Жылжу тақтасын ашу"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Жылжу тақтасын жабу"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> белгісі"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Белгілер"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Есептік жазбалар"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Тарихыңызды бірге көріңіз"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Оқиғалар және хабарлар"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Оқиғалар"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Хабарлар"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Ұсыныстар"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Контактілерді реттеу және тиімді пайдалану жолы"</string>
+    <string name="undo" msgid="1425165101664071422">"Қайтару"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> нөміріне қоңырау шалу"</string>
+    <string name="call_home" msgid="1990519474420545392">"Үйге қоңырау шалу"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Ұялы телефонға қоңырау шалу"</string>
+    <string name="call_work" msgid="5328785911463744028">"Жұмысқа қоңырау шалу"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Жұмыс факсіне қоңырау шалу"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Үй факсіне қоңырау шалу"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Пейджерге қоңырау шалу"</string>
+    <string name="call_other" msgid="8563753966926932052">"Қоңырау шалу"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Кері қоңырау шалу нөміріне қоңырау шалу"</string>
+    <string name="call_car" msgid="3280537320306436445">"Автокөлікке қоңырау шалу"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Компанияның негізгі нөміріне қоңырау шалу"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN нөміріне қоңырау шалу"</string>
+    <string name="call_main" msgid="6082900571803441339">"Негізгі нөмірге қоңырау шалу"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Факске қоңырау шалу"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Радиотелефонға қоңырау шалу"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Телекске қоңырау шалу"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Есту қабілеті төмен адамдарға арналған телетайпқа қоңырау шалу"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Жұмыс ұялы телефонына қоңырау шалу"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Жұмыс пейджеріне қоңырау шалу"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> нөміріне қоңырау шалу"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS нөміріне қоңырау шалу"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Қоңырау)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> нөміріне хабар жіберу"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Үй телефонына мәтіндік хабар жіберу"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Ұялы телефонға мәтіндік хабар жіберу"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Жұмыс нөміріне мәтіндік хабар жіберу"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Жұмыс факсіне мәтіндік хабар жіберу"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Үй факсіне мәтіндік хабар жіберу"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Пейджерге мәтіндік хабар жіберу"</string>
+    <string name="sms_other" msgid="806127844607642331">"Мәтін"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Кері қоңырау шалу нөміріне мәтіндік хабар жіберу"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Автокөлікке мәтіндік хабар жіберу"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Компанияның негізгі нөміріне мәтіндік хабар жіберу"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN нөміріне мәтіндік хабар жіберу"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Негізгі нөмірге мәтіндік хабар жіберу"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Факске мәтіндік хабар жіберу"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Радиотелефонға мәтіндік хабар жіберу"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Tелетайпқа мәтіндік хабар жіберу"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Есту қабілеті төмен адамдарға арналған телетайпқа мәтіндік хабар жіберу"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Жұмыс ұялы телефонына мәтіндік хабар жіберу"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Жұмыс пейджеріне мәтіндік хабар жіберу"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> нөміріне мәтіндік хабар жіберу"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS нөміріне мәтіндік хабар жіберу"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Хабар)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Бейне қоңырау шалу"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Жиі хабарласатындар тазартылсын ба?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Контактілер және Телефон қолданбаларындағы жиі хабарласатындар тізімі тазаланады және электрондық пошта қолданбалары мекенжай параметрлерін басынан үйренуге мәжбүрленеді."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Жиі хабарласатындар тазартылуда…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Қолжетімді"</string>
+    <string name="status_away" msgid="1838861100379804730">"Орнында жоқ"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Бос емес"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Басқа"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Каталог"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Жұмыс каталогы"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Барлық контактілер"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> үшін жылдам байланыс"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Атаусыз)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Жиі хабарласатындар"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Телефон нөмірі бар барлық контактілер"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Жұмыс профилінің контактілері"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Жаңартуларды көру"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Құрылғы"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Аты"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Лақап ат"</string>
+    <string name="name_given" msgid="4280790853455320619">"Аты"</string>
+    <string name="name_family" msgid="7466985689626017037">"Тегі"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Аттың префиксі"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Әкесінің аты"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Аттың суффиксі"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Атының транскрипциясы"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Атының транскрипциясы"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Әкесінің атының транскрипциясы"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Тегінің транскрипциясы"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Телефон"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Электрондық пошта"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Мекенжай"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Ұйым"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Қарым-қатынас"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Ерекше күн"</string>
+    <string name="sms" msgid="1756857139634224222">"Мәтіндік хабар"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Мекенжай"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Компания"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Атауы"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Ескертпелер"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Арнаулы"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP протоколы"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Вебсайт"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Таңбалар"</string>
+    <string name="email_home" msgid="8573740658148184279">"Үй поштасына хат жіберу"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Ұялы телефонға эл. пошта жіберу"</string>
+    <string name="email_work" msgid="2807430017302722689">"Жұмысқа электрондық пошта жіберу"</string>
+    <string name="email_other" msgid="3454004077967657109">"Электрондық пошта"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> поштасына хат жіберу"</string>
+    <string name="email" msgid="5668400997660065897">"Электрондық пошта"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Көше"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Қала"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Штат"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Индекс"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Ел"</string>
+    <string name="map_home" msgid="1243547733423343982">"Үй мекенжайын көру"</string>
+    <string name="map_work" msgid="1360474076921878088">"Жұмыс мекенжайын көру"</string>
+    <string name="map_other" msgid="3817820803587012641">"Мекенжайын көру"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> мекенжайын көру"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM арқылы чаттасу"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live арқылы чаттасу"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo арқылы чаттасу"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype арқылы чаттасу"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ арқылы чаттасу"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk арқылы чаттасу"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ арқылы чаттасу"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber арқылы чаттасу"</string>
+    <string name="chat" msgid="9025361898797412245">"Чат"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"жою"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Тағы аты-жөні өрістерін көрсету"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Аты-жөні өрістерін жию"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Тағы фонетикалық аты-жөні өрістерін көрсету"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Фонетикалық аты-жөні өрістерін жию"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Жаю"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Жию"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Жайылды"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Жиылды"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Барлық контактілер"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Жұлдызшалы"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Реттеу"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Контакт"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Барлық басқа топтар"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Барлық контактілер"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Синхрондау тобын жою"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Синхрондау тобын қосу"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Қосымша топтар…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\" синхрондаудан алынса, топталмаған контактілер де синхрондаудан алынады."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Дисплей опцияларын сақтау…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Реттелген көрініс"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Импортталған контактілерді келесіге сақтау:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM картасы"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"<xliff:g id="SIM_NAME">%1$s</xliff:g> SIM картасы"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d контакт</item>
+      <item quantity="one">1 контакт</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> контакт • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> контакт • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf файлы"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Импортталатын ешнәрсе жоқ"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard контактілерін импорттау қажет пе?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> импорттау тоқтатылсын ба?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> экспорттау тоқтатылсын ба?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard импорттау/экспорттау тоқтатылмады"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Белгісіз қате."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" файлын аша алмады: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Экспорттаушыны қосу мүмкін болмады: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Экспортталатын контакт жоқ."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Сіз міндетті рұқсатты өшірдіңіз."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Экспорттау кезінде қателік орын алды: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O қатесі"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Жад жеткіліксіз. Файл тым үлкен болуы мүмкін."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Форматқа қолдау көрсетілмейді."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> экспорттау аяқталды."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Контактілер экспортталып болды."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Контактілерді экспорттау аяқталды, контактілерді бөлісу үшін хабарландыруды басыңыз."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Контактілерді бөлісу үшін түртіңіз."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> экспорттау тоқтатылды."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Контакт деректері экспортталуда"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Контактінің деректері экспортталуда."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Дерекқор ақпаратын ала алмады."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Экспортталатын контактілер жоқ."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard редакторы дұрыс қосылмады."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Экспорттай алмады"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Контакт деректері экспортталмады. \nСебебі: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> импортталуда"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard деректерін оқи алмады"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g> vCard файлын импорттау аяқталды"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> импорттау тоқтатылды"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> жуық арада импортталады."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Файл жуық арада импортталады."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard импорттау өтініші қабылданбады. Кейінірек қайталап көріңіз."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Контактілер жуық арада экспортталады."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard экспорттау өтініші қабылданбады. Кейінірек қайталап көріңіз."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"контакт"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard карталарын жергілікті уақытша жадқа кэштеу. Импорттау жуық арада басталады."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard экспорттау мүмкін болмады."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC арқ. алынған"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кэштеу"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>/<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> импортталуда: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf файлына экспорттау"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Сұрыптау шарты"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Атауының транскрипциясы"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Үнемі көрсету"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Бос болғанда жасыру"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Аты"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Тегі"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Ат пішімі"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Алдымен аты"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Алдымен тегі"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Есептік жазбалар"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Жаңа контактілерге арналған әдепкі есептік жазба"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Ақпаратым"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Профильді орнату"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Контактілер туралы"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Таңдаулы контактілерді бөлісу"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Барлық контактілерді бөлісу"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Контактілерді бөлісу сәтсіз аяқталды."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Контактілерді экспорттау"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Контактілерді импорттау:"</string>
+    <string name="share_error" msgid="948429331673358107">"Бұл контактіні бөлісу мүмкін болмады"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Бөлісетін контактілер жоқ."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Көрсетілетін контактілер"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Көрсетілетін контактілер"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Көрінісін өзгерту"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Сақтау"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Контактілерді іздеу"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Таңдаулылар"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Импорттау"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Экспорттау"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Бөгелген нөмірлер"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> арқылы"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="SOURCE">%2$s</xliff:g> арқылы"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"іздеуді тоқтату"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Іздеуді өшіру"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Есептік жазба"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Осыны қоңырауларға ылғи пайдалану"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Ескертпе бар қоңырау"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Қоңыраумен жіберілетін мәтінді теріңіз..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ЖІБЕРУ ЖӘНЕ ҚОҢЫРАУ СОҒУ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Жинақ нұсқасы"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Ашық бастапқы код лицензиялары"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Ашық бастапқы код бағдарламасына арналған лицензия туралы мәліметтер"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Құпиялылық саясаты"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Қызмет көрсету шарттары"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Ашық бастапқы код лицензиялары"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Url ашылған жоқ."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> белгіленген"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> белгіленбеген"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Бейне қоңырау соғу"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Жою"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Көп нүкте"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> мин <xliff:g id="SECONDS">%2$s</xliff:g> сек"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> сағ <xliff:g id="MINUTES_1">%2$s</xliff:g> мин <xliff:g id="SECONDS">%3$s</xliff:g> сек"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Бұл белгіше өшірілген"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Контакт жойылған"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Импорттау"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Контактілерді таңдау"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM картаңызда контактілер жоқ"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Бұл контакт тізіміңізде бұрыннан бар"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM контактісі импортталды</item>
+      <item quantity="one">1 SIM контактісі импортталды</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM контактілері импортталмады"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM картасынан импортталған"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Жабу"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Автоматты синхрондау өшірулі. Қосу үшін түртіңіз."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Жабу"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Автоматты синхрондау өшірулі. Қосу үшін түртіңіз."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Авто сақтық функциясын қосу қажет пе?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Google контактілеріне ғана емес, барлық қолданбалар мен есептік жазбаларға енгізілген өзгерістер желі және құрылғылар арасында синхрондалады."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Қосу"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Байланыс жоқ"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Тағы көрсету"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM картасын импорттау аяқталды"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Импорттау мүмкін болмады"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Контактілерді SIM картасынан импорттау мүмкін болмады"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM картасы импортталуда"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
deleted file mode 100644
index 6be63cd..0000000
--- a/res/values-km-rKH/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"ទំនាក់ទំនង"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"ទំនាក់ទំនង"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"មើលទំនាក់ទំនង"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"កែទំនាក់ទំនង"</string>
-    <string name="contactsList" msgid="8661624236494819731">"ទំនាក់ទំនង"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"ទំនាក់ទំនង"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"ហៅ​ដោយ​ផ្ទាល់"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"ផ្ញើ​សារ​ដោយ​ផ្ទាល់"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"ជ្រើស​ផ្លូវកាត់​ទំនាក់ទំនង"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"ជ្រើស​លេខ​ដើម្បី​ហៅ"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"ជ្រើស​លេខ​ដើម្បី​ផ្ញើ​សារ"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ជ្រើស​ទំនាក់ទំនង"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
-    <string name="starredList" msgid="4817256136413959463">"បាន​ដាក់​ផ្កាយ"</string>
-    <string name="frequentList" msgid="7154768136473953056">"ញឹកញាប់"</string>
-    <string name="strequentList" msgid="5640192862059373511">"សំណព្វ"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"ព័ត៌មាន​លម្អិត​របស់​ទំនាក់ទំនង"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"កែ​ទំនាក់ទំនង"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"បង្កើត​ទំនាក់ទំនង"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"កែ​ក្រុម"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"បង្កើត​ក្រុម"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"អំពី"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"បច្ចុប្បន្នភាព"</string>
-    <string name="searchHint" msgid="8482945356247760701">"រក​ទំនាក់ទំនង"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"មើល​ទំនាក់ទំនង"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"បន្ថែម​ទៅ​សំណព្វ"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"លុប​ចេញពី​សំណព្វ"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"បាន​លុប​ចេញ​​និយម​ប្រើ"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"បន្ថែម​ទៅ​និយម​ប្រើ"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"កែសម្រួល​"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"លុប"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ប្ដូររូបថត"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ដាក់​លើ​អេក្រង់​ដើម"</string>
-    <string name="menu_call" msgid="3992595586042260618">"ហៅ​ទំនាក់ទំនង"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"អត្ថបទ​ទំនាក់ទំនង"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"ផ្តាច់ការតភ្ជាប់"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"កែសម្រួល​"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"លុប"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"បន្ថែម​ទំនាក់ទំនង"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"បន្ថែម​ក្រុម"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"ផ្តាច់ការតភ្ជាប់ទំនាក់ទំនងនេះទៅជាទំនាក់ទំនងច្រើនឬ?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ផ្តាច់ការតភ្ជាប់"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"តើអ្នកចង់រក្សាទុកការផ្លាស់ប្តូរដែលអ្នកបានធ្វើឡើង និងផ្តាច់ការតភ្ជាប់ទំនាក់ទំនងនេះទៅជាទំនាក់ទំនងច្រើនដែរឬទេ?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"រក្សាទុក និងផ្តាច់ការតភ្ជាប់"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"តើអ្នកចង់រក្សាទុកការផ្លាស់ប្តូរដែលអ្នកបានធ្វើឡើង និងតភ្ជាប់ជាមួយទំនាក់ទំនងដែលបានជ្រើសដែរឬទេ?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"រក្សាទុក និងតភ្ជាប់"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"តភ្ជាប់"</string>
-    <string name="menu_save" msgid="1727844363591825909">"រក្សាទុក"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"តភ្ជាប់ទំនាក់ទំនង"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ជ្រើសទំនាក់ទំនងដែលអ្នកចង់តភ្ជាប់ជាមួយ <xliff:g id="NAME">%s</xliff:g>៖"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"បង្ហាញ​ទំនាក់​ទំនង​ទាំងអស់"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"ទំនាក់ទំនង​ដែល​បាន​ស្នើ"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ទំនាក់ទំនង​ទាំងអស់"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"បានតភ្ជាប់ទំនាក់ទំនង"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">បានលុបទំនាក់ទំនង</item>
-      <item quantity="one">បានលុបទំនាក់ទំនង</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"កំណត់​សំឡេង​រោទ៍"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ការ​ហៅ​ទាំងអស់​ទៅ​សារ​ជា​សំឡេង"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"ព័ត៌មានលម្អិតពីគណនីសម្រាប់តែអានប៉ុណ្ណោះមិនអាចលុបបានទេ ប៉ុន្តែអាចលាក់បាន។"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"លាក់"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"ទំនាក់ទំនងដែលនឹងត្រូវលុបមានព័ត៌មានលម្អិតពីគណនីច្រើន។ ព័ត៌មានលម្អិតពីគណនីសម្រាប់តែអានប៉ុណ្ណោះនឹងត្រូវបានលាក់ ប៉ុន្តែវានឹងមិនត្រូវបានលុបនោះទេ។"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"អ្នកត្រូវការទំនាក់ទំនងដែលបានជ្រើសយ៉ាងតិចបំផុតពីរដើម្បីធ្វើការតភ្ជាប់។"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"តភ្ជាប់ទំនាក់ទំនងដែលបានជ្រើសឬ?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"តភ្ជាប់"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"លុបទំនាក់ទំនងនេះឬ?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"លុបទំនាក់ទំនងដែលបានជ្រើសឬ?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ព័ត៌មានលម្អិតពីគណនីសម្រាប់តែអានប៉ុណ្ណោះមិនអាចលុបបានទេ ប៉ុន្តែអាចលាក់បាន។"</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ទំនាក់ទំនងដែលនឹងត្រូវលុបមានព័ត៌មានលម្អិតពីគណនីច្រើន។ ព័ត៌មានលម្អិតពីគណនីសម្រាប់តែអានប៉ុណ្ណោះនឹងត្រូវបានលាក់ ប៉ុន្តែវានឹងមិនត្រូវបានលុបនោះទេ។"</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ការលុបទំនាក់ទំនងនេះនឹងលុបព័ត៌មានលម្អិតពីគណនីច្រើន"</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"លុបទំនាក់ទំនងនេះឬ?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"លុប"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"បោះបង់​ការ​ផ្លាស់ប្ដូរ"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"មិន​មាន​ទំនាក់ទំនង។"</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"បានបន្ថែមទំនាក់ទំនងទៅអេក្រង់ដើម"</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"បានបន្ថែម <xliff:g id="NAME">%s</xliff:g> ទៅអេក្រង់ដើម"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"ស្ថាប័ន"</item>
-    <item msgid="7196592230748086755">"ចំណាំ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"មិន​មាន​រូបភាព​នៅ​លើ​កុំព្យូទ័រ​បន្ទះ​នេះ​ទេ។"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"មិន​មាន​រូបភាព​នៅ​លើ​ទូរស័ព្ទ។"</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"រូបថត​ទំនាក់ទំនង"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ឈ្មោះ​ស្លាក​ផ្ទាល់ខ្លួន"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"បញ្ជូន​ការ​ហៅ​ដោយ​ផ្ទាល់​ទៅ​សារ​ជា​សំឡេង"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"លុប​រូបថត​ចេញ"</string>
-    <string name="noContacts" msgid="4955659076981974652">"គ្មាន​ទំនាក់ទំនង"</string>
-    <string name="noGroups" msgid="8614664663561385253">"មិន​មាន​ក្រុម។"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"ដើម្បី​បង្កើត​ក្រុម​អ្នក​ចាំបាច់​ត្រូវ​មាន​គណនី​មួយ។"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"មិន​មាន​មនុស្ស​នៅ​ក្នុង​ក្រុម​នេះ​ទេ។"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"ដើម្បី​បន្ថែម, កែ​សម្រួល​ក្រុម។"</string>
-    <string name="savingContact" msgid="4075751076741924939">"កំពុង​រក្សាទុក​ទំនាក់ទំនង..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"បាន​រក្សាទុក​ទំនាក់ទំនង"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"ទំនាក់ទំនងដែលមិនបានតភ្ជាប់"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"មិន​អាច​រក្សាទុក​ការ​ប្ដូរ​ទំនាក់ទំនង។"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"មិនអាចផ្តាច់ទំនាក់ទំនងបានទេ"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"មិនអាចតភ្ជាប់ទំនាក់ទំនងបានទេ"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"មានកំហុសក្នុងការរក្សាទុកទំនាក់ទំនង"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"មិនអាចរក្សាទុកការប្ដូររូបថតទំនាក់ទំនង។"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"បាន​រក្សាទុក​ក្រុម។"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"មិន​អាច​រក្សាទុក​ការ​ប្ដូរ​ក្រុម។"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">ទំនាក់ទំនង <xliff:g id="COUNT">%d</xliff:g> ដែលមានលេខទូរស័ព្ទ</item>
-      <item quantity="one">ទំនាក់ទំនង 1 ដែលមានលេខទូរស័ព្ទ</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"គ្មាន​ទំនាក់ទំនង​ដែល​មាន​លេខ​ទូរស័ព្ទ"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">បានរកឃើញ <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">បានរកឃើញ 1</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"មិន​មាន​ទំនាក់ទំនង"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">បានរកឃើញ <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">បានរកឃើញ 1</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"ទាំងអស់"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"ពេញចិត្ត"</string>
-    <string name="callBack" msgid="5498224409038809224">"ហៅ​ទៅវិញ"</string>
-    <string name="callAgain" msgid="3197312117049874778">"ហៅ​ម្ដងទៀត"</string>
-    <string name="returnCall" msgid="8171961914203617813">"ហៅ​ទៅវិញ"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"បន្ថែម \"<xliff:g id="EMAIL">%s</xliff:g>\" ទៅ​ទំនាក់ទំនង?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"រូបថត​ទំនាក់ទំនង"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"បូក"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> នៃ​ទំនាក់ទំនង <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"ឈ្មោះ​នៃ​ទំនាក់ទំនង​របស់​អ្នក"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"រក​មិន​ឃើញ​កម្មវិធី​សម្រាប់​សកម្មភាព​នេះ​ទេ។"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ចុច ដើម្បី​ត្រឡប់ទៅ​អេក្រង់​មុន"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"បន្ថែម​លេខទូរស័ព្ទ"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"បន្ថែម​អ៊ីមែល"</string>
-    <string name="missing_app" msgid="1466111003546611387">"រក​មិន​ឃើញ​កម្មវិធី​ដើម្បី​គ្រប់គ្រង​សកម្មភាព​នេះ​ទេ។"</string>
-    <string name="menu_share" msgid="943789700636542260">"ចែករំលែក​"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
-    <string name="share_via" msgid="563121028023030093">"ចែករំលែក​ទំនាក់ទំនង​តាម"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"បង្កើត​ក្រុម​នៅ​ក្នុង​គណនី"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"ជជែក​ជា​សំឡេង"</string>
-    <string name="video_chat" msgid="1872255818640336072">"ជជែក​ជា​វីដេអូ"</string>
-    <string name="connections" msgid="8098440723172028350">"ការ​តភ្ជាប់"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"បន្ថែម​ការ​តភ្ជាប់"</string>
-    <string name="recent" msgid="2659189233141493004">"ថ្មីៗ"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"បច្ចុប្បន្នភាព​ថ្មីៗ"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ទំនាក់ទំនង"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"គណនី <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ពី​កម្មវិធី​នេះ មិន​អាច​កែ​បាន​ទេ។"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"មិន​អាច​កែ​បាន​ទេ​លើ​ឧបករណ៍​នេះ។"</string>
-    <string name="take_photo" msgid="7496128293167402354">"ថតរូប"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"ថតរូប​ថ្មី"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ជ្រើស​រូបថត"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"ជ្រើស​រូបថត​ថ្មី"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"កំពុង​ធ្វើ​បច្ចុប្បន្នភាព​បញ្ជី​ទំនាក់ទំនង។"</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"កំពុង​រក..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"បង្ហាញ​អ្វី​ដែល​បាន​ជ្រើស"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"បង្ហាញ​ទាំងអស់"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"ជ្រើស​ទាំងអស់"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"មិន​ជ្រើស​ទាំងអស់"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"បន្ថែម​ថ្មី"</string>
-    <string name="add_organization" msgid="7311893231158291197">"បន្ថែម​ស្ថាប័ន"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"កាលបរិច្ឆេទ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ឈ្មោះ​ក្រុម"</string>
-    <string name="change_photo" msgid="8530597935483526383">"ផ្លាស់ប្ដូរ"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"រូបថតបឋម"</string>
-    <string name="description_star" msgid="2605854427360036550">"សំណព្វ"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"កែ​ទំនាក់ទំនង"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"តភ្ជាប់ទំនាក់ទំនងបច្ចុប្បន្នជាមួយទំនាក់ទំនងដែលបានជ្រើស?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ប្ដូរ​ដើម្បី​កែ​ទំនាក់ទំនង​ដែល​បាន​ជ្រើស? ព័ត៌មាន​ដែល​អ្នក​បញ្ចូល​នឹង​បាន​ចម្លង។"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"ចម្លង​ទៅ​ទំនាក់ទំនង​របស់​ខ្ញុំ"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"បន្ថែម​ទៅ​ទំនាក់ទំនង​របស់​ខ្ញុំ"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"ថត <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"ផ្ទាល់ខ្លួន"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"ការ​កំណត់"</string>
-    <string name="menu_settings" msgid="377929915873428211">"ការ​កំណត់"</string>
-    <string name="menu_help" msgid="1680178646764069976">"ជំនួយ &amp; មតិត្រឡប់"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"បង្ហាញ​ជម្រើស"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"លេខទូរស័ព្ទ"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"បិទ​"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"រួមបញ្ចូលឆ្នាំ"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"ទំនាក់ទំនង"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"កំពុង​ផ្ទុក..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"បន្ថែមគណនី"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"នាំចូល​ទំនាក់ទំនង"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"បង្កើត​ក្រុម​ថ្មី"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"បង្កើត​ក្រុម​ថ្មី"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ក្រុម</item>
-      <item quantity="one">1 ក្រុម</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"លុប​ក្រុម \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (ទំនាក់ទំនង​របស់​វា​នឹង​មិន​លុប​ទេ)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other">មនុស្ស <xliff:g id="COUNT_2">%1$d</xliff:g> នាក់ពី <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one">មនុស្ស <xliff:g id="COUNT_0">%1$d</xliff:g> នាក់ពី <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other">មនុស្ស <xliff:g id="COUNT_1">%1$d</xliff:g> នាក់</item>
-      <item quantity="one">មនុស្ស <xliff:g id="COUNT_0">%1$d</xliff:g> នាក់</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"សូមបញ្ចូលឈ្មោះទំនាក់ទំនងមុនពេលតភ្ជាប់ជាមួយទំនាក់ទំនងផ្សេងទៀត។"</string>
-    <string name="copy_text" msgid="3257145021583508761">"ចម្លង​ទៅ​ក្ដារ​តម្បៀត​ខ្ទាស់"</string>
-    <string name="set_default" msgid="4417505153468300351">"កំណត់​លំនាំដើម"</string>
-    <string name="clear_default" msgid="7193185801596678067">"សម្អាត​លំនាំដើម"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"បាន​ចម្លង​អត្ថបទ"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"បោះបង់​ការ​ប្ដូរ​រ​របស់​អ្នក?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"បោះបង់"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"រៀបចំ​ប្រវត្តិរូប​របស់​ខ្ញុំ"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"វាយ​ឈ្មោះ​មនុស្ស"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"ឈ្មោះ​របស់​ក្រុម"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"ប្រវត្តិរូប​មូលដ្ឋាន​របស់​ខ្ញុំ"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"ប្រវត្តិរូប <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> របស់​ខ្ញុំ"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"បង្ហាញ​ទំនាក់ទំនង​ទាំងអស់"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"ទំនាក់ទំនង​ដំណើរការ​កាន់តែ​ល្អ​ជា​មួយ​គណនី Google ។\n\n• ចូល​ដំណើរការ​ពី​កម្មវិធី​រុករក​បណ្ដាញ។\n• បម្រុងទុក​ទំនាក់ទំនង​របស់​អ្នក​ដោយ​សុវត្ថិភាព។"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"រក្សាទុក​ទំនាក់ទំនង​របស់​អ្នក​យ៉ាង​មាន​សុវត្ថិភាព ទោះបីជា​អ្នក​បាត់​ទូរស័ព្ទ​ក៏ដោយ៖ ធ្វើ​សមកាលកម្ម​ជាមួយ​សេវាកម្ម​លើ​បណ្ដាញ។"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"បន្ថែម​គណនី"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"នឹង​មិន​បម្រុងទុក​ទំនាក់ទំនង​ថ្មី​របស់​អ្នក​ទេ។ បន្ថែម​គណនី​ដើម្បី​បម្រុងទុក​ទំនាក់ទំនង​នៅ​លើ​បណ្ដាញ?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ទំនាក់ទំនងថ្មីនឹងត្រូវបានរក្សាទុកទៅក្នុង <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ជ្រើសគណនីលំនាំដើមសម្រាប់ទំនាក់ទំនងថ្មី៖"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"បន្ថែមទំនាក់ទំនងថ្មី"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"កែ​ទំនាក់ទំនង"</string>
-    <string name="keep_local" msgid="1258761699192993322">"រក្សា​ទុក​មូលដ្ឋាន"</string>
-    <string name="add_account" msgid="8201790677994503186">"បន្ថែម​គណនី"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"បន្ថែម​គណនី​ថ្មី"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"នាំចេញ​ឯកសារ​មូលដ្ឋាន​ទិន្នន័យ"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"បន្ថែម​ទំនាក់ទំនង​ថ្មី"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"​មើល​​ច្រើន​ជាង"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"​មើល​តិច​ជាង"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"​មើល​ទាំង​អស់"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"ថ្មីៗ"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"អំពី"</string>
-    <string name="send_message" msgid="8938418965550543196">"ផ្ញើ​សារ"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"កំពុង​បង្កើត​ច្បាប់​ចម្លង​ផ្ទាល់​ខ្លួន..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"ម្សិលមិញ"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"ស្អែក"</string>
-    <string name="today" msgid="8041090779381781781">"ថ្ងៃនេះ"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"ថ្ងៃនេះ​នៅ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ថ្ងៃស្អែក​នៅ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(ព្រឹត្តិការណ៍​គ្មាន​ចំណងជើង)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"កំណត់"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"ស្ថាប័ន"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"ឈ្មោះ​ហៅ​ក្រៅ"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"ចំណាំ"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"វេបសាយ"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ព្រឹត្តិការណ៍"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"ទំនាក់ទំនង"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"គណនី"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"ឈ្មោះ"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"អ៊ីមែល"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ទូរស័ព្ទ"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"រូបថត"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"ចុចដើម្បីពង្រីកកម្មវិធីកែប្រែទំនាក់ទំនង។"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"ចុចដើម្បីបង្រួមកម្មវិធីកែប្រែទំនាក់ទំនង។"</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"ទិសដៅ​ទៅ​ទីតាំង"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"សារ​ខ្លៗ​ថ្មី។ <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ចុច​ដើម្បី​ឆ្លើយតប"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ចូល"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ចេញ"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ខកខាន​ទទួល"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"ការ​ហៅ​ថ្មី​។ <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ចុច​ដើម្បី​ហៅ​ត្រឡប់"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"អ្នក៖ <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts ដំណើរការបានយ៉ាងល្អ នៅពេលដែលអ្នកបញ្ចូលអត្តសញ្ញាណ Hangouts របស់បុគ្គលនោះទៅក្នុងប្រអប់អ៊ីម៉ែល ឬប្រអប់លេខទូរស័ព្ទ។"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"ប្រអប់ច្រើនទៀត"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ប្ដូររូបថត"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"បានបរាជ័យក្នុងការបើកកម្មវិធីកែ"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"កំពុងរក្សាទុកទៅ"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"បច្ចុប្បន្នកំពុងរក្សាទុកទៅ <xliff:g id="ACCOUNT_NAME">%s</xliff:g>។ សូូមប៉ះពីរដងដើម្បីជ្រើសគណនីផ្សេងទៀត។"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">ទំនាក់ទំនងដែលបានតភ្ជាប់ (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">ទំនាក់ទំនងដែលបានតភ្ជាប់ 1</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"ទំនាក់ទំនងដែលបានតភ្ជាប់ <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ភ្ជាប់ទំនាក់ទំនង"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"បោះបង់"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other">អាចមានស្ទួន <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">អាចមានស្ទួន 1</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">ទំនាក់ទំនងដែលបានតភ្ជាប់ <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">ទំនាក់ទំនងដែលបានតភ្ជាប់ 1</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ទំនាក់ទំនងនេះ"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"អាចនឹងស្ទួន"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ទំនាក់ទំនងទាំងនេះប្រហែលជាមនុស្សតែមួយ។ អ្នកអាចតភ្ជាប់ពួកគេជាមួយគ្នាឲ្យទៅជាទំនាក់ទំនងទោលបាន។"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"ទំនាក់ទំនងដែលបានតភ្ជាប់"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"ពីគណនីរបស់អ្នក"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ថតរូប"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"រូបថតទាំងអស់"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ជ្រើសរូបថត"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"ពី <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"លុប <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"លុប <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"មិនបានជ្រើសរូបថតពី <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> នោះទេ"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"បានជ្រើសរូបថតពី <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"មិនបានជ្រើសរូបថតពីគណនីមិនស្គាល់ទេ"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"បានជ្រើសរូបថតពីគណនីមិនស្គាល់"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"កំពុង​ធ្វើ​បច្ចុប្បន្នភាព​ទំនាក់ទំនង​ដើម្បី​ឆ្លុះបញ្ចាំង​ការ​ប្ដូរ​ភាសា។\n\nសូម​រង់ចាំ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"បន្ថែមលេខ"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"រារាំងលេខ"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"បន្ថែមលេខទូរស័ព្ទ ឬស្វែងរកទំនាក់ទំនង"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"ឈប់រារាំង <xliff:g id="NUMBER">%1$s</xliff:g> ឬ?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ឈប់រារាំង"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"រារាំង <xliff:g id="NUMBER">%1$s</xliff:g> ឬ?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"រារាំង"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"បានរារាំង <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"បានឈប់រារាំង <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> មិនត្រឹមត្រូវទេ"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ការរារាំងការហៅត្រូវបានបិទជាបណ្តោះអាសន្ន"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ការរារាំងការហៅត្រូវបានបិទដំណើរការ ដោយសារតែអ្នកបានទាក់ទងទៅសេវាអាសន្នចេញពីទូរស័ព្ទនេះក្នុងចន្លោះពេល 48 ម៉ោងកន្លងមកនេះ។ វានឹងបើកដំណើរការឡើងវិញ បន្ទាប់ពីរយៈពេល 48 ម៉ោងផុតកំណត់។"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"នាំចូល"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"មើលលេខ"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"បន្ថែមលេខ"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ការរារាំងការហៅត្រូវបានបិទដំណើរការរយៈពេល 48 ម៉ោង"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"បានបិទដំណើរការពីព្រោះការហៅបន្ទាន់ត្រូវបានធ្វើឡើង"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"មិនធ្វើវិញ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ត្រូវបានទប់ស្កាត់រួចហើយ"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ឈប់ទប់ស្កាត់លេខ"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"ព័ត៌មាន​លម្អិត​ទំនាក់ទំនង​សម្រាប់ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ការនាំចូលបានបរាជ័យ"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"នាំចូលលេខ"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"បើក"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
new file mode 100644
index 0000000..fc34ed8
--- /dev/null
+++ b/res/values-km/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"ទំនាក់ទំនង"</string>
+    <string name="contactsList" msgid="8661624236494819731">"ទំនាក់ទំនង"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"បញ្ចូល​​ទំនាក់ទំនង"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"ទំនាក់ទំនង"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"ហៅ​ដោយ​ផ្ទាល់"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"ផ្ញើ​សារ​ដោយ​ផ្ទាល់"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"ជ្រើសរើស​ទំនាក់ទំនង"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"បញ្ចូល​​ទៅ​ទំនាក់ទំនង"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ជ្រើសរើស​ទំនាក់ទំនង"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"ជ្រើស"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
+    <string name="searchHint" msgid="8482945356247760701">"រក​ទំនាក់ទំនង"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"បន្ថែម​ទៅ​សំណព្វ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"លុប​ចេញពី​សំណព្វ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"បាន​លុប​ចេញ​​និយម​ប្រើ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"បន្ថែម​ទៅ​និយម​ប្រើ"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"កែសម្រួល​"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"លុប"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ប្ដូររូបថត"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"បង្កើត​ផ្លូវកាត់"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"ផ្តាច់"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"ដក​​ទំនាក់ទំនង​ចេញ"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"ប្ដូរឈ្មោះស្លាក"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"លុបស្លាក"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"បញ្ចូល​ទំនាក់ទំនង"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"ជ្រើស​រើសទំនាក់ទំនង"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"បញ្ចូល​​ទំនាក់ទំនង"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"លុប​ចេញ​ពី​ស្លាក"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"បង្កើតស្លាក"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"ផ្តាច់ទំនាក់ទំនងនេះទៅជាទំនាក់ទំនងច្រើន?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ផ្តាច់"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"តើអ្នកចង់រក្សាទុកការផ្លាស់ប្តូរដែលអ្នកបានធ្វើឡើង និងផ្តាច់ទំនាក់ទំនងនេះទៅជាទំនាក់ទំនងច្រើនដែរទេ?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"រក្សាទុក និងផ្តាច់"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"តើអ្នកចង់រក្សាទុកការផ្លាស់ប្តូរដែលអ្នកបានធ្វើឡើង និងតភ្ជាប់ជាមួយទំនាក់ទំនងដែលបានជ្រើសដែរឬទេ?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"រក្សាទុក និងតភ្ជាប់"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"កំពុង​តភ្ជាប់"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"កំពុង​ផ្ដាច់"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"តភ្ជាប់"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"មើល​ទំនាក់ទំនង​ដែល​បាន​តភ្ជាប់"</string>
+    <string name="menu_save" msgid="1727844363591825909">"រក្សាទុក"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"តភ្ជាប់ទំនាក់ទំនង"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ជ្រើសរើសទំនាក់ទំនងដែលអ្នកចង់តភ្ជាប់ជាមួយ <xliff:g id="NAME">%s</xliff:g>៖"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"ទំនាក់ទំនង​ដែល​បាន​ស្នើ"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ទំនាក់ទំនង​ទាំងអស់"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"បាន​ចូលចិត្ត <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"បានតភ្ជាប់ទំនាក់ទំនង"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"បាន​លុប <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"បាន​លុប <xliff:g id="NAME_0">%1$s</xliff:g> និង <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"បានលុប <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>..."</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">បានលុបទំនាក់ទំនង</item>
+      <item quantity="one">បានលុបទំនាក់ទំនង</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other">ទំនាក់ទំនង <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="one">ទំនាក់ទំនង <xliff:g id="COUNT_0">%d</xliff:g></item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other">ទំនាក់ទំនង <xliff:g id="COUNT_2">%1$d</xliff:g> · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one">ទំនាក់ទំនង <xliff:g id="COUNT_0">%1$d</xliff:g> · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"ពី Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"ពី <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"កំណត់​សំឡេង​រោទ៍"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"បញ្ជូន​ទៅ​សារ​ជា​សំឡេង"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"មិន​បញ្ជូន​ទៅ​សារ​ជា​សំឡេង"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"ទំនាក់ទំនង​នេះ​បាន​តែ​អាន​ប៉ុណ្ណោះ។ វា​មិន​អាច​លុប​ចេញ​បាន​ទេ ប៉ុន្តែ​អ្នក​អាច​លាក់​វា​បាន។"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"លាក់​ទំនាក់ទំនង"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"គណនី​ដែល​បាន​តែ​អាន​នៅ​ក្នុង​ទំនាក់ទំនង​នេះ នឹង​ត្រូវ​បាន​លាក់ មិន​លុប​ចេញ​​ទេ។"</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"លុបទំនាក់ទំនងនេះ?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"លុបទំនាក់ទំនងដែលបានជ្រើសឬ?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ព័ត៌មានលម្អិតពីគណនីសម្រាប់តែអានប៉ុណ្ណោះមិនអាចលុបបានទេ ប៉ុន្តែអាចលាក់បាន។"</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ទំនាក់ទំនងដែលនឹងត្រូវលុបមានព័ត៌មានលម្អិតពីគណនីច្រើន។ ព័ត៌មានលម្អិតពីគណនីសម្រាប់តែអានប៉ុណ្ណោះនឹងត្រូវបានលាក់ ប៉ុន្តែវានឹងមិនត្រូវបានលុបនោះទេ។"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ការលុបទំនាក់ទំនងនេះនឹងលុបព័ត៌មានលម្អិតពីគណនីច្រើន"</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"លុបទំនាក់ទំនងនេះ?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"លុប"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"មិន​មាន​ទំនាក់ទំនង។"</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"បានបញ្ចូល​ទំនាក់ទំនងទៅអេក្រង់ដើម"</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"បានបញ្ចូល​ <xliff:g id="NAME">%s</xliff:g> ទៅអេក្រង់ដើម"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"មិន​មាន​រូបភាព​នៅ​លើ​ឧបករណ៍​នេះ​ទេ។"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"រូបថត​ទំនាក់ទំនង"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ឈ្មោះ​ស្លាក​ផ្ទាល់ខ្លួន"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"លុប​រូបថត​ចេញ"</string>
+    <string name="noContacts" msgid="2228592924476426108">"បញ្ជីទំនាក់ទំនងរបស់អ្នកគឺទទេ"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"មិន​មាន​ទំនាក់ទំនង​ដែល​មាន​ស្លាក​នេះ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"មិនមានទំនាក់ទំនង​នៅ​ក្នុងគណនីនេះ​ទេ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"បញ្ជីទំនាក់ទំនងរបស់អ្នកគឺទទេ"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"បាន​រក្សាទុក <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"បាន​រក្សាទុក​ទំនាក់ទំនង"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"ទំនាក់ទំនងដែលមិនបានតភ្ជាប់"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"មិន​អាច​រក្សាទុក​ការ​ប្ដូរ​ទំនាក់ទំនង​បាន​ទេ"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"មិនអាចផ្តាច់ទំនាក់ទំនងបានទេ"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"មិនអាចតភ្ជាប់ទំនាក់ទំនងបានទេ"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"មាន​បញ្ហា​រក្សាទុក​ទំនាក់ទំនង"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"មិនអាចរក្សាទុកការប្ដូររូបថតទំនាក់ទំនង​បាន​ទេ"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"បាន​បរាជ័យ​ក្នុង​ការ​ផ្ទុក​ស្លាក"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"បានលុបស្លាក"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"បាន​បង្កើត​ស្លាក"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"មិនអាចបង្កើតស្លាក"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"បាន​ធ្វើ​​បច្ចុប្បន្នភាព​ស្លាក"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"បាន​យក​ចេញ​ពី​ស្លាក"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"បាន​បន្ថែម​ទៅ​ស្លាក"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"មិនអាចរក្សាទុកការផ្លាស់ប្តូរស្លាក​បាន​ទេ"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ស្លាក​នោះ​មាន​រួច​ហើយ"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"ទំនាក់ទំនង​ខ្លះ​មិន​មាន​អ៊ីមែល​ទេ។"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"ទំនាក់ទំនង​ខ្លះ​មិន​មាន​លេខ​ទូរសព្ទ​ទេ។"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ផ្ញើ​អ៊ីមែល"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"ផ្ញើ​សារ"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"ជ្រើសរើស​​ទំនាក់ទំនង"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"ផ្ញើ"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"មិន​មាន​ទំនាក់ទំនង"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"បញ្ចូល \"<xliff:g id="EMAIL">%s</xliff:g>\" ទៅ​ក្នុង​ទំនាក់ទំនង?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ឈ្មោះ​នៃ​ទំនាក់ទំនង​របស់​អ្នក"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ចុច ដើម្បី​ត្រឡប់ទៅ​អេក្រង់​មុន"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"បញ្ចូល​លេខទូរសព្ទ"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"បញ្ចូល​អ៊ីមែល"</string>
+    <string name="missing_app" msgid="1466111003546611387">"រក​មិន​ឃើញ​កម្មវិធី​ដើម្បី​គ្រប់គ្រង​សកម្មភាព​នេះ​ទេ។"</string>
+    <string name="menu_share" msgid="943789700636542260">"ចែករំលែក​"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"បញ្ចូល​ទៅក្នុងទំនាក់ទំនង"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"បន្ថែម"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">ចែករំលែក​ទំនាក់ទំនង​តាម</item>
+      <item quantity="one">ចែករំលែក​ទំនាក់ទំនង​តាម</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"ជ្រើសគណនី"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"បង្កើតស្លាក"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"ប្ដូរឈ្មោះស្លាក"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ឈ្មោះស្លាក"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ឈ្មោះស្លាក"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ជជែក​ជា​សំឡេង"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ជជែក​ជា​វីដេអូ"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ទំនាក់ទំនង"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"គណនី <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ថតរូប"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ថតរូប​ថ្មី"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ជ្រើសរើស​រូបថត"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ជ្រើស​រូបថត​ថ្មី"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"កំពុង​រក..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"កាលបរិច្ឆេទ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ស្លាក"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"បោះបង់"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"ថយក្រោយ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"បិទ"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ប្ដូរ​ដើម្បី​កែ​ទំនាក់ទំនង​ដែល​បាន​ជ្រើស? ព័ត៌មាន​ដែល​អ្នក​បញ្ចូល​នឹង​បាន​ចម្លង។"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ថត <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ការ​កំណត់"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ការ​កំណត់"</string>
+    <string name="menu_help" msgid="1680178646764069976">"ជំនួយ &amp; មតិស្ថាបនា"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"លេខទូរស័ព្ទ"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"បញ្ចូល​ទៅក្នុងទំនាក់ទំនង"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"បិទ​"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"រួមបញ្ចូលឆ្នាំ"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"បញ្ចូលគណនី"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"នាំចូល"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"បង្កើត​ថ្មី..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"លុប​​ស្លាក \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (ទំនាក់ទំនង​​នឹង​មិន​​លុប​ទេ)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"សូមបញ្ចូលឈ្មោះទំនាក់ទំនងមុនពេលតភ្ជាប់ជាមួយទំនាក់ទំនងផ្សេងទៀត។"</string>
+    <string name="copy_text" msgid="3257145021583508761">"ចម្លង​ទៅអង្គចងចាំ"</string>
+    <string name="set_default" msgid="4417505153468300351">"កំណត់​លំនាំដើម"</string>
+    <string name="clear_default" msgid="7193185801596678067">"សម្អាត​លំនាំដើម"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"បាន​ចម្លង​អត្ថបទ"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"បោះបង់ការផ្លាស់ប្ដូរដែរឬ​ទេ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"បោះបង់"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"បោះ​បង់​"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"បោះបង់ការប្ដូរតាមបំណង​ដែរ ឬ​ទេ?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"ស្វែងរក​ទំនាក់ទំនង"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"ដក​ទំនាក់ទំនង​ចេញ"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ប្រវត្តិរូប​មូលដ្ឋាន​របស់​ខ្ញុំ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ប្រវត្តិរូប <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> របស់​ខ្ញុំ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"ចំណាយ​ពេល​មួយ​​ភ្លែត​ ដើម្បី​បញ្ចូល​​គណនី​ដែល​នឹង​បម្រុងទុក​ទំនាក់ទំនងរបស់អ្នក​​ទៅក្នុង Google។"</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ទំនាក់ទំនងថ្មីនឹងត្រូវបានរក្សាទុកទៅក្នុង <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ជ្រើសគណនីលំនាំដើមសម្រាប់ទំនាក់ទំនងថ្មី៖"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"កែ​ទំនាក់ទំនង"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"បានតែ​មើល"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"ជ្រើសរើស​ទំនាក់ទំនង​ត្រូវ​កែសម្រួល"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"ទំនាក់ទំនងដែលបានតភ្ជាប់"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"បញ្ចូល"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"ផ្តាច់"</string>
+    <string name="add_account" msgid="8201790677994503186">"បញ្ចូល​​គណនី"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"បន្ថែម​គណនី​ថ្មី"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"នាំចេញ​ឯកសារ​មូលដ្ឋាន​ទិន្នន័យ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"បង្កើត​ទំនាក់ទំនង​ថ្មី"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"​មើល​​ច្រើន​ជាង"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"​មើល​តិច​ជាង"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ថ្មីៗ"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"អំពី"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"កំពុង​បង្កើត​ច្បាប់​ចម្លង​ផ្ទាល់​ខ្លួន..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ស្អែក"</string>
+    <string name="today" msgid="8041090779381781781">"ថ្ងៃនេះ"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ថ្ងៃនេះ​នៅ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ថ្ងៃស្អែក​នៅ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ព្រឹត្តិការណ៍​គ្មាន​ចំណងជើង)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"កំណត់"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ស្ថាប័ន"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ឈ្មោះ​ហៅ​ក្រៅ"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ចំណាំ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"គេហទំព័រ"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ព្រឹត្តិការណ៍"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ទំនាក់ទំនង"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"ឈ្មោះ"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"អ៊ីមែល"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ទូរស័ព្ទ"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ទិសដៅ​ទៅ​ទីតាំង"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"សារ​ខ្លៗ​ថ្មី។ <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ចុច​ដើម្បី​ឆ្លើយតប"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ចូល"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ចេញ"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ខកខាន​ទទួល"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"ការ​ហៅ​ថ្មី​។ <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ចុច​ដើម្បី​ហៅ​ត្រឡប់"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"អ្នក៖ <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"ប្រអប់​បន្ថែម"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"ផ្លាស់ប្ដូរ​រូបថត​ទំនាក់ទំនង"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"បញ្ចូល​រូបថត​ទំនាក់ទំនង"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"រូបថត​ទំនាក់ទំនង"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"មិន​អាច​បើក​កម្មវិធី​កែសម្រួល​បាន​ទេ។"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"រក្សាទុកទៅ"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"ព័ត៌មាន​អំពី​ទំនាក់ទំនង​ពី <xliff:g id="ACCOUNT">%s</xliff:g> មិន​អាច​កែ​សម្រួល​បាន​ទេ"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ភ្ជាប់ទំនាក់ទំនង"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"បោះបង់"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ទំនាក់ទំនងនេះ"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"អាចនឹងស្ទួន"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ទំនាក់ទំនងទាំងនេះប្រហែលជាមនុស្សតែមួយ។ អ្នកអាចតភ្ជាប់ពួកគេជាមួយគ្នាឲ្យទៅជាទំនាក់ទំនងទោលបាន។"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"លុប <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"លុប <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"ការ​ណែនាំ"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"ថ្មី"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"បើក​ផ្ទាំង​រុករក"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"បិទ​ផ្ទាំង​រុករក"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"ស្លាក <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ស្លាក"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"គណនី"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"មើល​ប្រវត្តិ​របស់​អ្នក​រួម​គ្នា"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ព្រឹត្តិការណ៍ និង​សារ"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ព្រឹត្តិការណ៍"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"សារ"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"ការណែនាំ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"រក្សា​ទំនាក់ទំនង​របស់​អ្នក​ឲ្យ​​រៀបរយ និង​​មាន​ប្រយោជន៍​ជា​និច្ច"</string>
+    <string name="undo" msgid="1425165101664071422">"មិនធ្វើវិញ"</string>
+    <string name="call_custom" msgid="6385303130912713318">"ការ​ហៅទូរសព្ទ​ទៅ​ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"ហៅ​ទៅ​ផ្ទះ"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"ហៅ​ទៅ​ទូរស័ព្ទ​ចល័ត"</string>
+    <string name="call_work" msgid="5328785911463744028">"ហៅ​ទៅ​កន្លែង​ធ្វើការ"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"ហៅ​ទៅ​លេខ​ទូរសារ​កន្លែង​ធ្វើការ"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"ហៅ​ទៅ​លេខ​ទូរសារ​ផ្ទះ"</string>
+    <string name="call_pager" msgid="9003902812293983281">"ហៅ​ទៅ​លេខ​ភេយ័រ"</string>
+    <string name="call_other" msgid="8563753966926932052">"ហៅ"</string>
+    <string name="call_callback" msgid="1910165691349426858">"ហៅ​ទៅ​លេខ​ហៅ​ទៅវិញ"</string>
+    <string name="call_car" msgid="3280537320306436445">"ហៅ​ទៅ​ទូរស័ព្ទ​រថយន្ត"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"ហៅ​ទៅ​លេខ​សំខាន់​របស់​ក្រុមហ៊ុន"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ហៅ​ទៅ ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"ហៅ​ទៅ​លេខ​សំខាន់"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ហៅ​ទៅ​ទូរសារ"</string>
+    <string name="call_radio" msgid="8296755876398357063">"ហៅ​ទៅ​លេខ​វិទ្យុ"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ហៅ​ទៅ telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"ហៅ​ទៅ TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"ហៅ​ទៅ​ទូរស័ព្ទ​ចល័ត​កន្លែង​ធ្វើការ"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"ហៅ​ទៅ​លេខ​ភេយ័រ​កន្លែង​ធ្វើការ"</string>
+    <string name="call_assistant" msgid="670941612175068337">"ការ​ហៅទូរសព្ទ​ទៅ​ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"ហៅ MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ហៅ)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"ផ្ញើ​សារ​ជា​អក្សរ​​ទៅ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"អត្ថបទ​ផ្ទះ"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"អត្ថបទ​ទូរស័ព្ទ​ចល័ត"</string>
+    <string name="sms_work" msgid="2269624156655267740">"អត្ថបទ​ការងារ"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"អត្ថបទ​ទូរសារ​ការងារ"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"អត្ថបទ​ទូរសារ​ផ្ទះ"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"អត្ថបទ​ភេយ័រ"</string>
+    <string name="sms_other" msgid="806127844607642331">"អត្ថបទ"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"អត្ថបទ​ហៅ​ទៅវិញ"</string>
+    <string name="sms_car" msgid="7444227058437359641">"អត្ថបទ​ទៅ​រថយន្ត"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"អត្ថបទ​ចម្បង​របស់​ក្រុមហ៊ុន"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"អត្ថបទ ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"អត្ថបទ​ចម្បង"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"អត្ថបទ​ទូរសារ"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"អត្ថបទ​វិទ្យុ"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"អត្ថបទ telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"អត្ថបទ TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"អត្ថបទ​ទូរស័ព្ទ​ចល័ត​កន្លែង​ធ្វើការ"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"អត្ថបទ​ភេ​យ័រ​កន្លែង​ធ្វើការ"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"អត្ថបទ <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"អត្ថបទ MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (សារ)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ហៅ​ជា​វីដេអូ"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"សម្អាត​ទំនាក់ទំនង​ញឹកញាប់?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"អ្នកនឹងជម្រះបញ្ជីដែលអ្នកទាក់ទងជាញឹកញាប់នៅក្នុងកម្មវិធីទូរស័ព្ទ និងទំនាក់ទំនង ហើយបង្ខំឲ្យកម្មវិធីអ៊ីមែលស្វែងយល់ពីចំណូលចិត្តទំនាក់ទំនងរបស់អ្នកតាំងពីដំបូង។"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"កំពុង​សម្អាត​ទំនាក់ទំនង​ញឹកញាប់..."</string>
+    <string name="status_available" msgid="5586870015822828392">"ទំនេរ"</string>
+    <string name="status_away" msgid="1838861100379804730">"ចាក​ឆ្ងាយ"</string>
+    <string name="status_busy" msgid="9147992455450257136">"រវល់"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"ផ្សេងៗ"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ថត"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"ថតកន្លែងការងារ"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"ទំនាក់ទំនង​ទាំងអស់"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"ទំនាក់ទំនង​រហ័ស​សម្រាប់ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(គ្មាន​ឈ្មោះ)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"បាន​ទាក់ទង​ញឹកញាប់"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ទំនាក់ទំនង​ទាំងអស់​ដែល​មាន​លេខ​ទូរស័ព្ទ"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"ទំនាក់ទំនងប្រវត្តិរូបការងារ"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"មើល​បច្ចុប្បន្នភាព"</string>
+    <string name="account_phone" msgid="7128032778471187553">"ឧបករណ៍"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"ឈ្មោះ"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"សម្មតិនាម"</string>
+    <string name="name_given" msgid="4280790853455320619">"នាម​ខ្លួន"</string>
+    <string name="name_family" msgid="7466985689626017037">"នាម​ត្រកូល"</string>
+    <string name="name_prefix" msgid="59756378548779822">"បុព្វបទ​ឈ្មោះ"</string>
+    <string name="name_middle" msgid="8467433655992690326">"ឈ្មោះ​កណ្ដាល"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"បច្ច័យ​ឈ្មោះ"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"សូរស័ព្ទ​ឈ្មោះ​"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"នាម​ខ្លួន​តាម​សូរស័ព្ទ"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"សូរស័ព្ទ​ឈ្មោះ​កណ្ដាល"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"នាមត្រកូល​តាម​សូរស័ព្ទ"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ទូរស័ព្ទ"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"អ៊ីមែល"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"អាសយដ្ឋាន"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"ស្ថាប័ន"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ចំណង​ទាក់ទង"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"កាលបរិច្ឆេទពិសេស"</string>
+    <string name="sms" msgid="1756857139634224222">"សារ​អត្ថបទ"</string>
+    <string name="postal_address" msgid="8765560217149624536">"អាសយដ្ឋាន"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"ក្រុមហ៊ុន"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"ចំណង​ជើង"</string>
+    <string name="label_notes" msgid="8337354953278341042">"ចំណាំ"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"ផ្ទាល់ខ្លួន"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"តំបន់បណ្ដាញ"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ស្លាក"</string>
+    <string name="email_home" msgid="8573740658148184279">"អ៊ីមែល​ទៅ​ផ្ទះ"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"អ៊ីមែល​ទៅ​ទូរស័ព្ទ​ចល័ត"</string>
+    <string name="email_work" msgid="2807430017302722689">"អ៊ីមែល​ទៅ​កន្លែង​ធ្វើការ"</string>
+    <string name="email_other" msgid="3454004077967657109">"អ៊ីមែល"</string>
+    <string name="email_custom" msgid="5536404237099078802">"ផ្ញើ​អ៊ីមែល​ទៅ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"អ៊ីមែល"</string>
+    <string name="postal_street" msgid="8133143961580058972">"ផ្លូវ"</string>
+    <string name="postal_city" msgid="6597491300084895548">"ទីក្រុង"</string>
+    <string name="postal_region" msgid="6045263193478437672">"រដ្ឋ"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"លេខ​កូដ​តំបន់"</string>
+    <string name="postal_country" msgid="7638264508416368690">"ប្រទេស"</string>
+    <string name="map_home" msgid="1243547733423343982">"មើល​អាសយដ្ឋាន​ផ្ទះ"</string>
+    <string name="map_work" msgid="1360474076921878088">"មើល​អាសយដ្ឋាន​ការងារ"</string>
+    <string name="map_other" msgid="3817820803587012641">"មើល​អាសយដ្ឋាន"</string>
+    <string name="map_custom" msgid="8761800628069473526">"មើល​អាសយដ្ឋាន <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"ជជែក​ដោយ​ប្រើ AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"ជជែក​ដោយ​ប្រើ Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"ជជែក​ដោយ​ប្រើ Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"ជជែក​ដោយ​ប្រើ Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"ជជែក​ដោយ​ប្រើ QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"ជជែក​ដោយ​ប្រើ Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ជជែក​ដោយ​ប្រើ ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"ជជែក​ដោយ​ប្រើ Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"ជជែក"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"លុប​"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"បង្ហាញ​​ប្រអប់​ឈ្មោះ​បន្ថែម"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"លាក់​​វាល​ឈ្មោះ"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"បង្ហាញប្រអប់​​ឈ្មោះ​តាម​សូរសព្ទ​បន្ថែម"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"លាក់​វាល​ឈ្មោះ​តាម​សូរស័ព្ទ"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"ពង្រីក"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"លាក់"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"បានពង្រីក"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"បានលាក់"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"ទំនាក់ទំនង​ទាំងអស់"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"បាន​ដាក់​ផ្កាយ"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"កំណត់តាម​តម្រូវ​ការ"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"ទំនាក់ទំនង"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"ទំនាក់ទំនង​ទាំងអស់​ផ្សេងទៀត"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"ទំនាក់ទំនង​ទាំងអស់"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"យក​ក្រុម​សមកាលកម្ម​ចេញ"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"បន្ថែម​ក្រុម​សមកាលកម្ម"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"ក្រុម​ច្រើន​ទៀត..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"ការ​លុប \"<xliff:g id="GROUP">%s</xliff:g>\" ចេញពី​សមកាលកម្ម​វា​ក៏​នឹង​លុប​ទំនាក់ទំនង​ដែល​មិន​នៅ​ក្នុង​ក្រុម​ចេញពី​សមកាលកម្ម​ផង​ដែរ។"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"កំពុង​រក្សាទុក​ជម្រើស​បង្ហាញ..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"ទិដ្ឋភាព​​ផ្ទាល់ខ្លួន"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"រក្សាទំនាក់ទំនងដែលបាននាំចូលទៅ៖"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"ស៊ីមកាត"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">ទំនាក់ទំនង %1$d</item>
+      <item quantity="one">ទំនាក់ទំនង 1</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other">ទំនាក់ទំនង <xliff:g id="COUNT_2">^1</xliff:g> • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one">ទំនាក់ទំនង <xliff:g id="COUNT_0">^1</xliff:g> • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"ឯកសារ .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"គ្មាន​អ្វី​ត្រូវ​នាំចូល"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"នាំចូល​ទំនាក់ទំនង​ពី vCard ដែរ​ឬ​ទេ?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"បោះបង់​ការ​នាំចូល <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"បោះបង់​ការ​នាំចេញ <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"មិន​អាច​បោះបង់​ការ​នាំចេញ/នាំចូល vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"មិន​ស្គាល់​កំហុស។"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"មិន​អាច​បើក \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g> ។"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"មិន​អាច​ចាប់ផ្ដើម​ម​ការ​នាំចេញ​៖ \"<xliff:g id="EXACT_REASON">%s</xliff:g>\" ។"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"មិន​មាន​ទំនាក់ទំនង​ដើម្បី​នាំចេញ។"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"អ្នកបានបិទសិទ្ធិអនុញ្ញាតដែលតម្រូវឲ្យមាន។"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"មាន​កំហុស​កើត​ឡើង​ពេល​នាំចេញ៖ \"<xliff:g id="EXACT_REASON">%s</xliff:g>\" ។"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"កំហុស I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"អង្គ​ចងចាំ​មិន​គ្រប់គ្រាន់។ ឯកសារ​ប្រហែលជា​ធំ​ពេក។"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"មិន​គាំទ្រ​ទ្រង់ទ្រាយ។"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"បាន​បញ្ចប់​ការ​នាំចេញ <xliff:g id="FILENAME">%s</xliff:g> ។"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"បានបញ្ចប់ការនាំចេញទំនាក់ទំនង។"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"បានបញ្ចប់ការនាំចេញទំនាក់ទំនង សូមចុចលើការជូនដំណឹង ដើម្បីចែករំលែកទំនាក់ទំនង"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"ប៉ះដើម្បីចែករំលែកទំនាក់ទំនង"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"បាន​បោះបង់​ការ​នាំចេញ <xliff:g id="FILENAME">%s</xliff:g> ។"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"កំពុង​នាំចេញ​ព័ត៌មាន​ទំនាក់ទំនង"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"ទិន្នន័យចំណាំកំពុងត្រូវបាននាំចេញ"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"មិន​អាច​យក​ព័ត៌មាន​មូលដ្ឋាន​ទិន្នន័យ។"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"មិន​មាន​ទំនាក់ទំនង​ដែល​អាច​នាំចេញ​ទេ។"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"មិន​បាន​ចាប់ផ្ដើម​កម្មវិធី​តែង vCard ដោយ​​ត្រឹមត្រូវ។"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"មិន​អាច​នាំចេញ"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"មិន​បាន​នាំចេញ​ទិន្នន័យ​ទំនាក់ទំនង។\nមូលហេតុ៖ \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"ការ​នាំចូល <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"មិន​អាច​អាន​ទិន្នន័យ vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"បាន​បញ្ចប់​ការ​នាំចូល vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"បាន​បោះបង់​ការ​នាំ​ចូល <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"នឹង​នាំចូល <xliff:g id="FILENAME">%s</xliff:g> ក្នុង​ពេល​ឆាប់ៗ។"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"នឹង​នាំចូល​ឯកសារ​ក្នុង​ពេល​ឆាប់ៗ។"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"បាន​បដិសេធ​សំណើ​នាំចូល vCard ។ សូម​ព្យាយាម​ម្ដងទៀត​នៅ​ពេល​ក្រោយ​។"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"ទំនាក់ទំនងនឹងត្រូវបាននាំចេញក្នុងពេលបន្តិចទៀតនេះ។"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"បាន​បដិសេធ​សំណើ​នាំចេញ vCard ។ សូម​ព្យាយាម​ម្ដងទៀត​នៅ​ពេល​ក្រោយ។"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"ទំនាក់ទំនង"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"ការ​ផ្ទុក vCard(s​) ទៅកាន់​ឧបករណ៍​ផ្ទុក​ប​បណ្ដោះអាសន្ន​មូលដ្ឋាន។ ការ​នាំចូល​ពិតប្រាកដ​នឹង​ចាប់ផ្ដើម​ម​ឆាប់ៗ។"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"មិន​អាច​នាំចូល vCard ។"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"ទំនាក់ទំនង​ដែល​បាន​ទទួល​តាម NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"ការ​ផ្ទុក​ក្នុង​ឃ្លាំង​សម្ងាត់"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"កំពុង​នាំចូល <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>៖ <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"នាំចេញទៅឯកសារ .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"តម្រៀបតាម"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ឈ្មោះ​តាម​សូរស័ព្ទ"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"បង្ហាញ​ជា​និច្ច"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"លាក់ បើ​ទទេ"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"នាម​ខ្លួន"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"នាម​ត្រកូល"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"ទម្រង់​ឈ្មោះ"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"នាម​ខ្លួន​មុន"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"នាមត្រកូល​មុន"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"គណនី"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"គណនីលំនាំដើមសម្រាប់ទំនាក់ទំនងថ្មី"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"ព័ត៌មាន​របស់​ខ្ញុំ"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"រៀបចំ​ប្រវត្តិរូប​របស់​អ្នក"</string>
+    <string name="setting_about" msgid="7014388749752042863">"អំពីទំនាក់ទំនង"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"ចែករំលែកទំនាក់ទំនង​ដែល​ចូលចិត្ត"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"ចែករំលែកទំនាក់ទំនងទាំងអស់"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"ការចែករំលែកទំនាក់ទំនង​មិន​បាន​សម្រេច។"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"នាំចេញ​ទំនាក់ទំនង"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"នាំចូល​ទំនាក់ទំនង​ពី"</string>
+    <string name="share_error" msgid="948429331673358107">"ទំនាក់ទំនង​នេះ​មិន​អាច​ចែករំលែក​បាន​ទេ។"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"មិនមានទំនាក់ទំនងដើម្បីចែករំលែកទេ។"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ទំនាក់ទំនង​ដែល​ត្រូវ​បង្ហាញ"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ទំនាក់ទំនង​ដែល​ត្រូវ​បង្ហាញ"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"ប្ដូរ​ការ​មើល​តាមបំណង"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"រក្សាទុក"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"ស្វែងរកទំនាក់ទំនង"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"សំណព្វ"</string>
+    <string name="menu_import" msgid="6107961135813836467">"នាំចូល"</string>
+    <string name="menu_export" msgid="2658783911863503902">"នាំ​ចេញ"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"លេខបានរារាំង"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"តាម​រយៈ <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> តាម​រយៈ <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"បញ្ឈប់​ការ​ស្វែងរក"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"សម្អាត​ការ​ស្វែងរក"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"គណនី"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ប្រើ​វា​សម្រាប់​ការ​ហៅ​ជា​និច្ច"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"ការហៅព្រមជាមួយចំណាំ"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"បញ្ចូលចំណាំដែលត្រូវផ្ញើជាមួយការហៅទូរសព្ទ..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ផ្ញើ &amp; ហៅទូរស័ព្ទ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"កំណែបង្កើត"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"អាជ្ញាប័ណ្ណ​ប្រភព​កូដ​ចំហ"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"សេចក្ដីលម្អិតអាជ្ញាប័ណ្ណសម្រាប់កម្មវិធីប្រភពកូដ​ចំហ"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"គោលការណ៍​​ឯកជនភាព"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"លក្ខខណ្ឌ​ប្រើប្រាស់"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"អាជ្ញាប័ណ្ណ​ប្រភព​កូដ​ចំហ"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"ការ​បើក URL មិន​បាន​សម្រេច។"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"បានពិនិត្យ <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"មិនបានពិនិត្យ <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ធ្វើការហៅជាវីដេអូ"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"លុប"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"សញ្ញា​ចុចបី"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> នាទី <xliff:g id="SECONDS">%2$s</xliff:g> វិនាទី"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ម៉ោង <xliff:g id="MINUTES_1">%2$s</xliff:g> នាទី <xliff:g id="SECONDS">%3$s</xliff:g> វិនាទី"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ផ្លូវកាត់នេះត្រូវបានបិទ"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"ទំនាក់ទំនងត្រូវបាន​លុប​ចេញ"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"នាំចូល"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"ជ្រើស​រើសទំនាក់ទំនង"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"គ្មាន​ទំនាក់ទំនង​នៅ​ក្នុង​​ស៊ីមកាត​របស់​អ្នក​ទេ"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"ទំនាក់ទំនង​មាន​រួច​ហើយ​នៅ​ក្នុង​បញ្ជី​របស់​អ្នក"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">បាន​នាំចូល​ទំនាក់ទំនង SIM <xliff:g id="COUNT">%d</xliff:g></item>
+      <item quantity="one">បាន​នាំចូល​ទំនាក់ទំនង SIM 1</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"មិន​អាច​នាំចូល​ទំនាក់ទំនង​ពី SIM បាន​ទេ"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"នាំចូល​ពី SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"បោះបង់"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"ការធ្វើសមកាលស្វ័យប្រវត្តិ​ត្រូវ​បានបិទ។ ចុច ដើម្បីបើក។"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"បោះបង់"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"ការ​ធ្វើ​សមកាលកម្ម​គណនី​ត្រូវ​បាន​បិទ។ ចុច ដើម្បី​បើក។"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"បើក​ការ​ធ្វើ​សមកាលកម្ម​ស្វ័យប្រវត្តិ?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"ការ​ផ្លាស់ប្ដូរ​ដែល​អ្នក​​ធ្វើ​ចំពោះ​កម្មវិធី និង​គណនី​ទាំងអស់ មិន​គ្រាន់តែ Google ទំនាក់ទំនង​ទេ នឹង​រក្សា​បច្ចុប្បន្នភាព​រវាង​បណ្ដាញ និង​ឧបករណ៍​របស់​អ្នក។"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"បើក"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"គ្មាន​ការ​តភ្ជាប់"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"បង្ហាញ​ជា​ច្រើន"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"បាន​បញ្ចប់​នាំចូល​ទំនាក់ទំនង​ក្នុង​ស៊ីមកាត"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"ការ​នាំចូល​មិន​បាន​សម្រេច"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"មិន​អាច​នាំចូល​ទំនាក់ទំនង​ពី​ស៊ីម​កាត​បាន​ទេ"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"កំពុង​នាំចូល​ទំនាក់ទំនង​​ពី SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
deleted file mode 100644
index e1085af..0000000
--- a/res/values-kn-rIN/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"ಸಂಪರ್ಕಗಳು"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"ಸಂಪರ್ಕಗಳು"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"ಸಂಪರ್ಕ ಸಂಪಾದಿಸು"</string>
-    <string name="contactsList" msgid="8661624236494819731">"ಸಂಪರ್ಕಗಳು"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"ಸಂಪರ್ಕ"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"ನೇರ ಡಯಲ್"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"ನೇರ ಸಂದೇಶ"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"ಸಂಪರ್ಕದ ಶಾರ್ಟ್‌ಕಟ್‌‌ ಆರಿಸಿ"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"ಕೆರಮಾಡಲು ಸಂಖ್ಯೆಯೊಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"ಸಂದೇಶಕ್ಕಾಗಿ ಸಂಖ್ಯೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"ಸಂಪರ್ಕಕ್ಕೆ ಸೇರಿಸು"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ಸಂಪರ್ಕ ಆಯ್ಕೆ ಮಾಡಿ"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
-    <string name="starredList" msgid="4817256136413959463">"ನಕ್ಷತ್ರ ಹಾಕಿರುವುದು"</string>
-    <string name="frequentList" msgid="7154768136473953056">"ಆಗಾಗ್ಗೆ"</string>
-    <string name="strequentList" msgid="5640192862059373511">"ಮೆಚ್ಚಿನವುಗಳು"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"ಸಂಪರ್ಕ ವಿವರಗಳು"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸು"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"ಸಂಪರ್ಕವನ್ನು ರಚಿಸಿ"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"ಗುಂಪು ಸಂಪಾದಿಸು"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"ಗುಂಪು ರಚಿಸಿ"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"ಕುರಿತು"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"ಅಪ್‌ಡೇಟ್‌ಗಳು"</string>
-    <string name="searchHint" msgid="8482945356247760701">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"ಸಂಪರ್ಕವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಿ"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"ಮೆಚ್ಚಿನವುಗಳಿಂದ ತೆಗೆದುಹಾಕಿ"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ಮೆಚ್ಚಿನವುಗಳಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಲಾಗಿದೆ"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"ಸಂಪಾದಿಸು"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"ಅಳಿಸು"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ಫೋಟೋ ಬದಲಾಯಿಸು"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ಮುಖಪುಟ ಪರದೆಯ ಮೇಲೆ ಇರಿಸು"</string>
-    <string name="menu_call" msgid="3992595586042260618">"ಕರೆಯ ಸಂಪರ್ಕ"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"ಪಠ್ಯ ಸಂಪರ್ಕ"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"ಲಿಂಕ್ ರದ್ದುಮಾಡು"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"ಸಂಪಾದಿಸು"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"ಅಳಿಸು"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ಗುಂಪು ಸೇರಿಸು"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"ಬಹು ಸಂಪರ್ಕಗಳಲ್ಲಿನ ಈ ಸಂಪರ್ಕವನ್ನು ಲಿಂಕ್ ರದ್ದುಮಾಡುವುದೇ?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ಲಿಂಕ್ ರದ್ದುಮಾಡು"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ನೀವು ಈಗಾಗಲೇ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲು ಮತ್ತು ಬಹು ಸಂಪರ್ಕಗಳಲ್ಲಿನ ಈ ಸಂಪರ್ಕವನ್ನು ಲಿಂಕ್ ರದ್ದುಮಾಡಲು ಬಯಸುವಿರಾ?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"ಉಳಿಸು ಮತ್ತು ಲಿಂಕ್ ರದ್ದುಮಾಡು"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"ನೀವು ಈಗಾಗಲೇ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲು ಮತ್ತು ಆಯ್ಕೆ ಮಾಡಲಾದ ಸಂಪರ್ಕದ ಜೊತೆಗೆ ಲಿಂಕ್ ಮಾಡಲು ಬಯಸುವಿರಾ?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"ಉಳಿಸು ಮತ್ತು ಲಿಂಕ್‌ ಮಾಡು"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"ಲಿಂಕ್‌"</string>
-    <string name="menu_save" msgid="1727844363591825909">"ಉಳಿಸು"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ಲಿಂಕ್ ಸಂಪರ್ಕಗಳು"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ನೀವು <xliff:g id="NAME">%s</xliff:g> ಅವರೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ಬಯಸುವ ಸಂಪರ್ಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"ಎಲ್ಲ ಸಂಪರ್ಕಗಳನ್ನು ತೋರಿಸು"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"ಸೂಚಿಸಲಾದ ಸಂಪರ್ಕಗಳು"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ಎಲ್ಲಾ ಸಂಪರ್ಕಗಳು"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ಸಂಪರ್ಕಗಳನ್ನು ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</item>
-      <item quantity="other">ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ರಿಂಗ್‌ಟೋನ್‌‌"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ಧ್ವನಿಮೇಲ್‌ಗೆ ಎಲ್ಲ ಕರೆಗಳು"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"ನಿಮ್ಮ ಓದಲು-ಮಾತ್ರ ಖಾತೆಗಳಿಂದ ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಅವುಗಳನ್ನು ಮರೆಮಾಡಬಹುದು."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"ಮರೆಮಾಡು"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"ಬಹು ಖಾತೆಗಳಿಂದ ವಿವರಗಳನ್ನು ಹೊಂದಿರುವ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ಓದಲು-ಮಾತ್ರ ಖಾತೆಗಳಿಂದ ವಿವರಗಳನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ, ಅಳಿಸಲಾಗುವುದಿಲ್ಲ."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"ಲಿಂಕ್ ಮಾಡಲು ನೀವು ಕನಿಷ್ಟ ಎರಡು ಸಂಪರ್ಕಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"ಆಯ್ಕೆ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳನ್ನು ಲಿಂಕ್ ಮಾಡವುದೇ?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"ಲಿಂಕ್‌"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸುವುದೇ?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ಆಯ್ಕೆ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸುವುದೇ?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ನಿಮ್ಮ ಓದಲು-ಮಾತ್ರ ಖಾತೆಗಳಿಂದ ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಅವುಗಳನ್ನು ಮರೆಮಾಡಬಹುದು."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ಬಹು ಖಾತೆಗಳಿಂದ ವಿವರಗಳನ್ನು ಹೊಂದಿರುವ ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ಓದಲು-ಮಾತ್ರ ಖಾತೆಗಳಿಂದ ವಿವರಗಳನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ, ಅಳಿಸಲಾಗುವುದಿಲ್ಲ."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ಬಹು ಖಾತೆಗಳಿಂದ ವಿವರಗಳನ್ನು ಅಳಿಸಿಹಾಕಲು ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸಿ ಹಾಕಲಾಗುತ್ತಿದೆ."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸುವುದೇ?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ಅಳಿಸು"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"ಬದಲಾವಣೆಗಳನ್ನು ತ್ಯಜಿಸು"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"ಸಂಪರ್ಕವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"ಸಂಪರ್ಕವನ್ನು ಮುಖಪುಟ ಪರದೆಗೆ ಸೇರಿಸಲಾಗಿದೆ."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ಅನ್ನು ಮುಖಪುಟ ಪರದೆಗೆ ಸೇರಿಸಲಾಗಿದೆ."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"ಸಂಘಟನೆ"</item>
-    <item msgid="7196592230748086755">"ಟಿಪ್ಪಣಿ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ಟ್ಯಾಬ್ಲೆಟ್‌‌ನಲ್ಲಿ ಯಾವುದೇ ಚಿತ್ರಗಳು ಲಭ್ಯವಿಲ್ಲ."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ಫೋನ್‌ನಲ್ಲಿ ಯಾವುದೇ ಚಿತ್ರಗಳು ಲಭ್ಯವಿಲ್ಲ."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ಸಂಪರ್ಕ ಫೋಟೋ"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ಕಸ್ಟಮ್ ಲೇಬಲ್ ಹೆಸರು"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ಕರೆಗಳನ್ನು ನೇರವಾಗಿ ಧ್ವನಿಮೇಲ್‌ಗೆ ಕಳುಹಿಸಿ"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ಫೋಟೋ ತೆಗೆದುಹಾಕಿ"</string>
-    <string name="noContacts" msgid="4955659076981974652">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
-    <string name="noGroups" msgid="8614664663561385253">"ಯಾವುದೇ ಗುಂಪುಗಳಿಲ್ಲ."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"ಗುಂಪುಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಖಾತೆಯ ಅಗತ್ಯವಿದೆ."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ಈ ಗುಂಪಿನಲ್ಲಿ ಜನರಿಲ್ಲ."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"ಕೆಲವೊಂದು ಸೇರಿಸಲು, ಗುಂಪನ್ನು ಸಂಪಾದಿಸಿ."</string>
-    <string name="savingContact" msgid="4075751076741924939">"ಸಂಪರ್ಕವನ್ನು ಉಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"ಸಂಪರ್ಕ‌ವನ್ನು ಉಳಿಸಲಾಗಿದೆ"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"ಸಂಪರ್ಕಗಳನ್ನು ಅನ್‌ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"ಸಂಪರ್ಕ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"ಸಂಪರ್ಕದ ಲಿಂಕ್ ರದ್ದು ಮಾಡಲಾಗಲಿಲ್ಲ."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"ಸಂಪರ್ಕವನ್ನು ಲಿಂಕ್ ಮಾಡಲಾಗಲಿಲ್ಲ."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"ಸಂಪರ್ಕವನ್ನು ಉಳಿಸುವಲ್ಲಿ ದೋಷ."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"ಸಂಪರ್ಕ ಫೋಟೋ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"ಗುಂಪನ್ನು ಉಳಿಸಲಾಗಿದೆ."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ಗುಂಪಿನ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one">ಫೋನ್‌ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ <xliff:g id="COUNT">%d</xliff:g> ಸಂಪರ್ಕಗಳು</item>
-      <item quantity="other">ಫೋನ್‌ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ <xliff:g id="COUNT">%d</xliff:g> ಸಂಪರ್ಕಗಳು</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ಫೋನ್‌ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಕಂಡುಬಂದಿದೆ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಕಂಡುಬಂದಿದೆ</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಕಂಡುಬಂದಿದೆ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಕಂಡುಬಂದಿದೆ</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"ಎಲ್ಲಾ"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"ಮೆಚ್ಚಿನವುಗಳು"</string>
-    <string name="callBack" msgid="5498224409038809224">"ಮರಳಿ ಕರೆ ಮಾಡಿ"</string>
-    <string name="callAgain" msgid="3197312117049874778">"ಮತ್ತೆ ಕರೆ ಮಾಡಿ"</string>
-    <string name="returnCall" msgid="8171961914203617813">"ಹಿಂತಿರುಗುವಿಕೆ ಕರೆ"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ಗೆ ಸಂಪರ್ಕಗಳನ್ನು ಸೇರಿಸುವುದೇ?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"ಸಂಪರ್ಕ ಫೋಟೋ"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"ಪ್ಲಸ್‌"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> ರಲ್ಲಿ <xliff:g id="CURRENT_NUMBER">%s</xliff:g> ಸಂಪರ್ಕಗಳು"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಹೆಸರುಗಳು"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ಈ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ ಕಂಡುಬಂದಿಲ್ಲ."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ಹಿಂದಿನ ಪರದೆಗೆ ಹಿಂತಿರುಗಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ಇಮೇಲ್ ಸೇರಿಸಿ"</string>
-    <string name="missing_app" msgid="1466111003546611387">"ಈ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ ಕಂಡುಬಂದಿಲ್ಲ."</string>
-    <string name="menu_share" msgid="943789700636542260">"ಹಂಚಿಕೊಳ್ಳು"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
-    <string name="share_via" msgid="563121028023030093">"ಸಂಪರ್ಕದ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"ಖಾತೆಯ ಅಡಿಯಲ್ಲಿ ಗುಂಪನ್ನು ರಚಿಸಿ"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"ಧ್ವನಿ ಚಾಟ್"</string>
-    <string name="video_chat" msgid="1872255818640336072">"ವೀಡಿಯೋ ಚಾಟ್"</string>
-    <string name="connections" msgid="8098440723172028350">"ಸಂಪರ್ಕಗಳು"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="recent" msgid="2659189233141493004">"ಇತ್ತೀಚಿನದು"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"ಇತ್ತೀಚಿನ ಅಪ್‌ಡೇಟ್‌ಗಳು"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ಸಂಪರ್ಕ"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ಖಾತೆ"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ಈ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಸಂಪಾದಿಸಲಾಗುವುದಿಲ್ಲ."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"ಈ ಸಾಧನದಲ್ಲಿ ಸಂಪಾದಿಸಲು ಆಗುವುದಿಲ್ಲ."</string>
-    <string name="take_photo" msgid="7496128293167402354">"ಫೋಟೋ ತೆಗೆಯಿರಿ"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"ಹೊಸ ಫೋಟೋ ತೆಗೆಯಿರಿ"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ಫೋಟೋ ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"ಹೊಸ ಫೋಟೋವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"ಸಂಪರ್ಕ ಪಟ್ಟಿಯನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"ಹುಡುಕಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"ಆಯ್ಕೆಮಾಡಿರುವುದನ್ನು ತೋರಿಸು"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"ಎಲ್ಲ ತೋರಿಸು"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"ಎಲ್ಲವನ್ನು ಆಯ್ಕೆ ರದ್ದುಮಾಡಿ"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"ಹೊಸದನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="add_organization" msgid="7311893231158291197">"ಸಂಸ್ಥೆಯನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ದಿನಾಂಕ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ಗುಂಪು ಹೆಸರು"</string>
-    <string name="change_photo" msgid="8530597935483526383">"ಬದಲಾಯಿಸು"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"ಪ್ರಾಥಮಿಕ ಫೋಟೋ"</string>
-    <string name="description_star" msgid="2605854427360036550">"ಮೆಚ್ಚಿನ"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸು"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"ಪ್ರಸ್ತುತ ಸಂಪರ್ಕವನ್ನು ಆಯ್ಕೆಮಾಡಿದ ಸಂಪರ್ಕದೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡುವುದೇ?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ಆಯ್ಕೆಮಾಡಿದ ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸುವುದಕ್ಕೆ ಬದಲಿಸುವುದೇ? ನೀವು ಇಲ್ಲಿಯವರೆಗೆ ನಮೂದಿಸಿದ ಮಾಹಿತಿಯನ್ನು ನಕಲು ಮಾಡಲಾಗುತ್ತದೆ."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"ನನ್ನ ಸಂಪರ್ಕಗಳಿಗೆ ನಕಲಿಸು"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"ನನ್ನ ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"ಡೈರೆಕ್ಟರಿ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"ಕಸ್ಟಮ್"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="menu_settings" msgid="377929915873428211">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="menu_help" msgid="1680178646764069976">"ಸಹಾಯ &amp; ಪ್ರತಿಕ್ರಿಯೆ"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ಫೋನ್ ಸಂಖ್ಯೆ"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"ಸಂಪರ್ಕಕ್ಕೆ ಸೇರಿಸು"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"ಮುಚ್ಚು"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"ವರ್ಷವನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"ಸಂಪರ್ಕ"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ಖಾತೆ ಸೇರಿಸು"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಿ"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"ಹೊಸ ಗುಂಪು ರಚಿಸಿ"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"ಹೊಸ ಗುಂಪು ರಚಿಸಿ"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> ಗುಂಪುಗಳು</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ಗುಂಪುಗಳು</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ಗುಂಪನ್ನು ಅಳಿಸುವುದೇ? (ಸಂಪರ್ಕಗಳನ್ನೇ ಅಳಿಸಲಾಗುವುದಿಲ್ಲ.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> ರಿಂದ ಜನರು</item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> ರಿಂದ ಜನರು</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ಜನರು</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ಜನರು</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"ಮತ್ತೊಬ್ಬರೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡುವ ಮೊದಲು ಸಂಪರ್ಕದ ಹೆಸರನ್ನು ಟೈಪ್‌ ಮಾಡಿ."</string>
-    <string name="copy_text" msgid="3257145021583508761">"ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ"</string>
-    <string name="set_default" msgid="4417505153468300351">"ಡೀಫಾಲ್ಟ್ ಹೊಂದಿಸಿ"</string>
-    <string name="clear_default" msgid="7193185801596678067">"ಡೀಫಾಲ್ಟ್‌ ತೆರವುಗೊಳಿಸಿ"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"ಪಠ್ಯವನ್ನು ನಕಲಿಸಲಾಗಿದೆ"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ನಿಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ತಿರಸ್ಕರಿಸುವುದೇ?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"ತ್ಯಜಿಸು"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"ನನ್ನ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸು"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"ವ್ಯಕ್ತಿಯ ಹೆಸರನ್ನು ಟೈಪ್‌ ಮಾಡಿ"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"ಗುಂಪಿನ ಹೆಸರು"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"ನನ್ನ ಸ್ಥಳೀಯ ಪ್ರೊಫೈಲ್"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"ನನ್ನ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ಪ್ರೊಫೈಲ್‌"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ಎಲ್ಲ ಸಂಪರ್ಕಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Google ಖಾತೆಯಲ್ಲಿ ಸಂಪರ್ಕಗಳ ಕಾರ್ಯ ಉತ್ತಮವಾಗಿರುತ್ತದೆ.\n\n• ಯಾವುದೇ ವೆಬ್ ಬ್ರೌಸರ್‌ನಿಂದ ಪ್ರವೇಶಿಸಿ.\n• ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಬ್ಯಾಕ್ ಅಪ್ ಮಾಡಿ."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"ನಿಮ್ಮ ಫೋನ್‌ ಅನ್ನು ಕಳೆದುಕೊಂಡರೂ ಸಹ ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಿ: ಆನ್‌‌ಲೈನ್‌ ಸೇವೆಯೊಂದಿಗೆ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಿ."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ಖಾತೆಯೊಂದನ್ನು ಸೇರಿಸು"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ನಿಮ್ಮ ಹೊಸ ಸಂಪರ್ಕವನ್ನು ಬ್ಯಾಕಪ್‌ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಸಂಪರ್ಕಗಳನ್ನು ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಬ್ಯಾಕಪ್‌ ಇರಿಸುವಂತಹ ಖಾತೆಯನ್ನು ಸೇರಿಸುವುದೇ?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ಹೊಸ ಸಂಪರ್ಕಗಳನ್ನು <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ಗೆ ಉಳಿಸಲಾಗುತ್ತದೆ."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ಹೊಸ ಸಂಪರ್ಕಗಳಿಗೆ ಡೀಫಾಲ್ಟ್ ಖಾತೆ ಆಯ್ಕೆಮಾಡಿ:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"ಹೊಸ ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸಿ"</string>
-    <string name="keep_local" msgid="1258761699192993322">"ಸ್ಥಳೀಯವಾಗಿರಿಸು"</string>
-    <string name="add_account" msgid="8201790677994503186">"ಖಾತೆ ಸೇರಿಸು"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"ಹೊಸ ಖಾತೆಯನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"ಡೇಟಾಬೇಸ್‌‌ ಫೈಲ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಿ"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ಹೊಸ ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸು"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ಇನ್ನಷ್ಟು ನೋಡಿ"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ಕಡಿಮೆ ನೋಡಿ"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"ಇತ್ತೀಚಿನದು"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"ಕುರಿತು"</string>
-    <string name="send_message" msgid="8938418965550543196">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ವೈಯಕ್ತಿಕ ಪ್ರತಿಯನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"ನಿನ್ನೆ"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"ನಾಳೆ"</string>
-    <string name="today" msgid="8041090779381781781">"ಇಂದು"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> ಕ್ಕೆ ಇಂದು"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> ಕ್ಕೆ ನಾಳೆ"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(ಶೀರ್ಷಿಕೆರಹಿತ ಈವೆಂಟ್)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"ಹೊಂದಿಸು"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"ಸಂಸ್ಥೆ"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"ಅಡ್ಡಹೆಸರು"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"ಟಿಪ್ಪಣಿ"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"ವೆಬ್‌ಸೈಟ್"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ಈವೆಂಟ್"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"ಸಂಬಂಧ"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"ಖಾತೆ"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"ಹೆಸರು"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ಇಮೇಲ್"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ಫೋನ್"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ಫೋಟೋ"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"ಸಂಪರ್ಕ ಸಂಪಾದಕವನ್ನು ವಿಸ್ತರಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"ಸಂಪರ್ಕ ಸಂಪಾದಕವನ್ನು ಕುಗ್ಗಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"ಸ್ಥಳಕ್ಕಾಗಿ ದಿಕ್ಕುಗಳು"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"ಇತ್ತೀಚಿನ sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ಪ್ರತಿಕ್ರಿಯಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ಒಳಬರುವ"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ಹೊರಹೋಗುವ"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ತಪ್ಪಿಸಿಕೊಂಡ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"ಇತ್ತೀಚಿನ ಕರೆ. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ಪುನಃ ಕರೆ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"ನೀವು: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"ಇಮೇಲ್ ಕ್ಷೇತ್ರ ಅಥವಾ ಫೋನ್ ಕ್ಷೇತ್ರದಲ್ಲಿ ವ್ಯಕ್ತಿಯ Hangouts ಗುರುತಿಸುವಿಕೆಯನ್ನು ನೀವು ನಮೂದಿಸಿದಾಗ Hangouts ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"ಇನ್ನಷ್ಟು ಫೀಲ್ಡ್‌ಗಳು"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ಫೋಟೋ ಬದಲಾಯಿಸು"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"ಸಂಪಾದಕವನ್ನು ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"ಇದಕ್ಕೆ ಉಳಿಸಲಾಗುತ್ತಿದೆ"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"ಪ್ರಸ್ತುತ <xliff:g id="ACCOUNT_NAME">%s</xliff:g> ಖಾತೆಗೆ ಉಳಿಸಲಾಗುತ್ತಿದೆ. ಬೇರೆ ಖಾತೆಯನ್ನು ಆಯ್ಕೆಮಾಡಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">ಲಿಂಕ್ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳು (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">ಲಿಂಕ್ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳು (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> ಲಿಂಕ್ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳು"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ಲಿಂಕ್ ಸಂಪರ್ಕಗಳು"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ರದ್ದುಮಾಡು"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಸಂಭವನೀಯ ನಕಲುಗಳು</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಸಂಭವನೀಯ ನಕಲುಗಳು</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಲಿಂಕ್ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳು</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಲಿಂಕ್ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳು</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ಈ ಸಂಪರ್ಕ"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ಸಂಭವನೀಯ ನಕಲಿಗಳು"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ಈ ಸಂಪರ್ಕಗಳು ಅದೇ ವ್ಯಕ್ತಿಯದ್ದಾಗಿರಬಹುದು. ನೀವು ಅವುಗಳನ್ನು ಏಕ ಸಂಪರ್ಕವಾಗಿ ಒಟ್ಟಿಗೆ ಲಿಂಕ್ ಮಾಡಬಹುದು."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"ಲಿಂಕ್ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳು"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"ನಿಮ್ಮ ಖಾತೆಗಳಿಂದ"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ಫೋಟೋ ತೆಗೆದುಕೊಳ್ಳಿ"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"ಎಲ್ಲ ಫೋಟೋಗಳು"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ಫೋಟೋ ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> ನಿಂದ"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> ಅಳಿಸು"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> ಅಳಿಸು"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="USER_NAME">%s </xliff:g><xliff:g id="ACCOUNT_TYPE">%s </xliff:g> ಅವರಿಂದ ಫೋಟೋ ಗುರುತಿಸಲಾಗಿಲ್ಲ"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="USER_NAME">%s </xliff:g><xliff:g id="ACCOUNT_TYPE">%s </xliff:g> ಅವರಿಂದ ಫೋಟೋ ಗುರುತಿಸಲಾಗಿದೆ"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"ಅಜ್ಞಾತ ಖಾತೆಯಿಂದ ಫೋಟೋವನ್ನು ಗುರುತಿಸಲಾಗಿಲ್ಲ"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"ಅಜ್ಞಾತ ಖಾತೆಯಿಂದ ಫೋಟೋವನ್ನು ಗುರುತಿಸಲಾಗಿದೆ"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"ಭಾಷೆಯ ಬದಲಾವಣೆಯನ್ನು ಪ್ರತಿಬಿಂಬಿಸಲು ಸಂಪರ್ಕ ಪಟ್ಟಿಯನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ.\n\nದಯವಿಟ್ಟು ಕಾಯಿರಿ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಬಂಧಿಸು"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"ಸಂ. ಸೇರಿಸಿ ಅಥವಾ ಸಂಪರ್ಕ ಹುಡುಕಿ"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧ ತೆಗೆಯುವುದೇ?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ನಿರ್ಬಂಧ ತೆಗೆ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧಿಸುವುದೇ?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ನಿರ್ಬಂಧಿಸು"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧ ತೆಗೆಯಲಾಗಿದೆ"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ಅಮಾನ್ಯವಾಗಿದೆ."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ ತಾತ್ಕಾಲಿಕ ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ನೀವು ಕಳೆದ 48 ಗಂಟೆಗಳಲ್ಲಿ ಈ ಫೋನ್‌ನಿಂದ ತುರ್ತು ಸೇವೆಗಳಿಗೆ ಸಂಪರ್ಕಿಸಿರುವ ಕಾರಣದಿಂದ ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಒಮ್ಮೆ 48 ಗಂಟೆಗಳ ಅವಧಿಯು ಮುಕ್ತಾಯಗೊಂಡ ನಂತರ ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದು."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ಆಮದು ಮಾಡಿ"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ 48 ಗಂಟೆಗಳವರೆಗೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"ತುರ್ತು ಕರೆಯನ್ನು ಮಾಡಿರುವ ಕಾರಣದಿಂದ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ರದ್ದುಮಾಡು"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ಈಗಾಗಲೇ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ಸಂಖ್ಯೆಯನ್ನು ಅನಿರ್ಬಂಧಿಸು"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕ ವಿವರಗಳು"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ಆಮದು ವಿಫಲವಾಗಿದೆ"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ಸಂಖ್ಯೆಗಳನ್ನು ಆಮದು ಮಾಡಿ"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ಆನ್ ಮಾಡು"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
new file mode 100644
index 0000000..0858ff9
--- /dev/null
+++ b/res/values-kn/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"ಸಂಪರ್ಕಗಳು"</string>
+    <string name="contactsList" msgid="8661624236494819731">"ಸಂಪರ್ಕಗಳು"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"ಸಂಪರ್ಕ"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"ನೇರ ಡಯಲ್"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"ನೇರ ಸಂದೇಶ"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"ಸಂಪರ್ಕ ಆಯ್ಕೆ ಮಾಡಿ"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"ಸಂಪರ್ಕಕ್ಕೆ ಸೇರಿಸು"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ಸಂಪರ್ಕ ಆಯ್ಕೆ ಮಾಡಿ"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
+    <string name="searchHint" msgid="8482945356247760701">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಿ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ಮೆಚ್ಚಿನವುಗಳಿಂದ ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ಮೆಚ್ಚಿನವುಗಳಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಲಾಗಿದೆ"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ಎಡಿಟ್"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ಅಳಿಸಿ"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ಫೋಟೋ ಬದಲಾಯಿಸಿ"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"ಶಾರ್ಟ್‌ಕಟ್ ರಚಿಸಿ"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"ಅನ್‌ಲಿಂಕ್‌"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"ಸಂಪರ್ಕಗಳನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"ಲೇಬಲ್‌ ಮರುಹೆಸರಿಸಿ"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"ಲೇಬಲ್ ಅಳಿಸಿ"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"ಸಂಪರ್ಕಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"ಸಂಪರ್ಕಗಳನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"ಲೇಬಲ್‌ನಿಂದ ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"ಲೇಬಲ್‌ ರಚಿಸಿ"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"ಬಹು ಸಂಪರ್ಕಗಳಲ್ಲಿನ ಈ ಸಂಪರ್ಕವನ್ನು ಅನ್‌ಲಿಂಕ್ ಮಾಡುವುದೇ?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ಅನ್‌ಲಿಂಕ್‌"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ನೀವು ಈಗಾಗಲೇ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲು ಮತ್ತು ಬಹು ಸಂಪರ್ಕಗಳಲ್ಲಿನ ಈ ಸಂಪರ್ಕವನ್ನು ಲಿಂಕ್ ರದ್ದುಮಾಡಲು ಬಯಸುವಿರಾ?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"ಉಳಿಸಿ ಮತ್ತು ಅನ್‌ಲಿಂಕ್‌ ಮಾಡಿ"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"ನೀವು ಈಗಾಗಲೇ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲು ಮತ್ತು ಆಯ್ಕೆ ಮಾಡಲಾದ ಸಂಪರ್ಕದ ಜೊತೆಗೆ ಲಿಂಕ್ ಮಾಡಲು ಬಯಸುವಿರಾ?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"ಉಳಿಸು ಮತ್ತು ಲಿಂಕ್‌ ಮಾಡು"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"ಲಿಂಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"ಅನ್‌ಲಿಂಕ್ ಮಾಡುತ್ತಿದೆ"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"ಲಿಂಕ್‌"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"ಲಿಂಕ್ ಮಾಡಲಾದ ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ"</string>
+    <string name="menu_save" msgid="1727844363591825909">"ಉಳಿಸು"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ಲಿಂಕ್ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ನೀವು <xliff:g id="NAME">%s</xliff:g> ಅವರೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ಬಯಸುವ ಸಂಪರ್ಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"ಸೂಚಿಸಲಾದ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ಎಲ್ಲಾ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ಸಂಪರ್ಕಗಳನ್ನು ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> ಅಳಿಸಲಾಗಿದೆ"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> ಮತ್ತು <xliff:g id="NAME_1">%2$s</xliff:g> ಅಳಿಸಲಾಗಿದೆ"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… ಅಳಿಸಲಾಗಿದೆ"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</item>
+      <item quantity="other">ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ಸಂಪರ್ಕಗಳು</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ಸಂಪರ್ಕಗಳು</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> ಸಂಪರ್ಕಗಳು · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> ಸಂಪರ್ಕಗಳು · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google ನಿಂದ"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g>ಖಾತೆಯಿಂದ"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ರಿಂಗ್‌ಟೋನ್‌‌"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"ಧ್ವನಿಮೇಲ್‌ಗೆ ರೂಟ್ ಮಾಡಿ"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ಧ್ವನಿಮೇಲ್‌ಗೆ ಅನ್‌ರೂಟ್ ಮಾಡಿ"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"ಈ ಸಂಪರ್ಕವು ಓದಲು-ಮಾತ್ರ ಆಗಿದೆ. ಇದನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ ಆದರೆ ನೀವು ಇದನ್ನು ಮರೆಮಾಡಬಹುದಾಗಿದೆ."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"ಸಂಪರ್ಕವನ್ನು ಮರೆಮಾಡಿ"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"ಈ ಸಂಪರ್ಕದಲ್ಲಿ ಓದಲು-ಮಾತ್ರ ಖಾತೆಗಳನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ, ಅಳಿಸಲಾಗುವುದಿಲ್ಲ."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸುವುದೇ?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ಆಯ್ಕೆ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸುವುದೇ?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ನಿಮ್ಮ ಓದಲು-ಮಾತ್ರ ಖಾತೆಗಳಿಂದ ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಅವುಗಳನ್ನು ಮರೆಮಾಡಬಹುದು."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ಬಹು ಖಾತೆಗಳಿಂದ ವಿವರಗಳನ್ನು ಹೊಂದಿರುವ ಸಂಪರ್ಕಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ಓದಲು-ಮಾತ್ರ ಖಾತೆಗಳಿಂದ ವಿವರಗಳನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ, ಅಳಿಸಲಾಗುವುದಿಲ್ಲ."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸುವುದರಿಂದ ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ವಿವರಗಳನ್ನು ಬಹು ಖಾತೆಗಳಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸುವುದೇ?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ಅಳಿಸಿ"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"ಸಂಪರ್ಕವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"ಸಂಪರ್ಕವನ್ನು ಮುಖಪುಟ ಪರದೆಗೆ ಸೇರಿಸಲಾಗಿದೆ."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ಅನ್ನು ಮುಖಪುಟ ಪರದೆಗೆ ಸೇರಿಸಲಾಗಿದೆ."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"ಸಾಧನದಲ್ಲಿ ಯಾವುದೇ ಚಿತ್ರಗಳು ಲಭ್ಯವಿಲ್ಲ."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ಸಂಪರ್ಕ ಫೋಟೋ"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ಕಸ್ಟಮ್ ಲೇಬಲ್ ಹೆಸರು"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ಫೋಟೋ ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="noContacts" msgid="2228592924476426108">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಪಟ್ಟಿಯು ಖಾಲಿಯಾಗಿದೆ"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ಈ ಲೇಬಲ್‌ ಹೊಂದಿರುವ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ಈ ಖಾತೆಯಲ್ಲಿ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಪಟ್ಟಿಯು ಖಾಲಿಯಾಗಿದೆ"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> ಉಳಿಸಲಾಗಿದೆ"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"ಸಂಪರ್ಕ‌ವನ್ನು ಉಳಿಸಲಾಗಿದೆ"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"ಸಂಪರ್ಕಗಳನ್ನು ಅನ್‌ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"ಸಂಪರ್ಕ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"ಸಂಪರ್ಕದ ಲಿಂಕ್ ರದ್ದು ಮಾಡಲಾಗಲಿಲ್ಲ"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"ಸಂಪರ್ಕವನ್ನು ಲಿಂಕ್ ಮಾಡಲಾಗಲಿಲ್ಲ"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"ಸಂಪರ್ಕವನ್ನು ಉಳಿಸುವಲ್ಲಿ ದೋಷ"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"ಸಂಪರ್ಕ ಫೋಟೋ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"ಲೇಬಲ್ ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"ಲೇಬಲ್ ಅಳಿಸಲಾಗಿದೆ"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"ಲೇಬಲ್ ರಚಿಸಲಾಗಿದೆ"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"ಲೇಬಲ್‌ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"ಲೇಬಲ್ ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"ಲೇಬಲ್‌ನಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"ಲೇಬಲ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"ಲೇಬಲ್ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ಆ ಲೇಬಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"ಕೆಲವು ಸಂಪರ್ಕಗಳು ಇಮೇಲ್‌ಗಳನ್ನು ಹೊಂದಿಲ್ಲ."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"ಕೆಲವು ಸಂಪರ್ಕಗಳು ಫೋನ್ ಸಂಖ್ಯೆಗಳನ್ನು ಹೊಂದಿಲ್ಲ."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ಇಮೇಲ್ ಕಳುಹಿಸಿ"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"ಸಂಪರ್ಕಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"ಕಳುಹಿಸಿ"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ಗೆ ಸಂಪರ್ಕಗಳನ್ನು ಸೇರಿಸುವುದೇ?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳ ಹೆಸರುಗಳು"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ಹಿಂದಿನ ಪರದೆಗೆ ಹಿಂತಿರುಗಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ಇಮೇಲ್ ಸೇರಿಸಿ"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ಈ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ ಕಂಡುಬಂದಿಲ್ಲ."</string>
+    <string name="menu_share" msgid="943789700636542260">"ಹಂಚಿಕೊಳ್ಳಿ"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"ಸೇರಿಸು"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">ಸಂಪರ್ಕಗಳನ್ನು ಈ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಿ</item>
+      <item quantity="other">ಸಂಪರ್ಕಗಳನ್ನು ಈ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಿ</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"ಖಾತೆ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"ಲೇಬಲ್‌ ರಚಿಸಿ"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"ಲೇಬಲ್‌ ಮರುಹೆಸರಿಸಿ"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ಲೇಬಲ್‌ ಹೆಸರು"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ಲೇಬಲ್‌ ಹೆಸರು"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ಧ್ವನಿ ಚಾಟ್"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ವೀಡಿಯೋ ಚಾಟ್"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ಸಂಪರ್ಕ"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ಖಾತೆ"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ಫೋಟೋ ತೆಗೆಯಿರಿ"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ಹೊಸ ಫೋಟೋ ತೆಗೆಯಿರಿ"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ಫೋಟೋ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ಹೊಸ ಫೋಟೋವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"ಹುಡುಕಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ದಿನಾಂಕ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ಲೇಬಲ್"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"ಹಿಂದೆ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"ಮುಚ್ಚು"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ಆಯ್ಕೆಮಾಡಿದ ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸುವುದಕ್ಕೆ ಬದಲಿಸುವುದೇ? ನೀವು ಇಲ್ಲಿಯವರೆಗೆ ನಮೂದಿಸಿದ ಮಾಹಿತಿಯನ್ನು ನಕಲು ಮಾಡಲಾಗುತ್ತದೆ."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ಡೈರೆಕ್ಟರಿ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="menu_help" msgid="1680178646764069976">"ಸಹಾಯ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ಫೋನ್ ಸಂಖ್ಯೆ"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"ಮುಚ್ಚು"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"ವರ್ಷವನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ಖಾತೆ ಸೇರಿಸಿ"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"ಆಮದು ಮಾಡಿ"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"ಹೊಸದನ್ನು ರಚಿಸಿ…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ಲೇಬಲ್ ಅಳಿಸುವುದೇ? (ಸಂಪರ್ಕಗಳು ತಾವಾಗಿ ಅಳಿಸಿ ಹೋಗುವುದಿಲ್ಲ.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"ಮತ್ತೊಬ್ಬರೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡುವ ಮೊದಲು ಸಂಪರ್ಕದ ಹೆಸರನ್ನು ಟೈಪ್‌ ಮಾಡಿ."</string>
+    <string name="copy_text" msgid="3257145021583508761">"ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ"</string>
+    <string name="set_default" msgid="4417505153468300351">"ಡೀಫಾಲ್ಟ್ ಹೊಂದಿಸಿ"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ಡಿಫಾಲ್ಟ್‌ ತೆರವುಗೊಳಿಸಿ"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"ಪಠ್ಯವನ್ನು ನಕಲಿಸಲಾಗಿದೆ"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"ಬದಲಾವಣೆಗಳನ್ನು ತ್ಯಜಿಸುವುದೇ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ತ್ಯಜಿಸು"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"ಕಸ್ಟಮೈಸೇಶನ್‌ಗಳನ್ನು ತ್ಯಜಿಸುವುದೇ?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"ಸಂಪರ್ಕಗಳನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ನನ್ನ ಸ್ಥಳೀಯ ಪ್ರೊಫೈಲ್"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ನನ್ನ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ಪ್ರೊಫೈಲ್‌"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Google ಗೆ ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಬ್ಯಾಕಪ್‌ ಮಾಡುವಂತಹ ಖಾತೆಯನ್ನು ಸೇರಿಸಲು ಒಂದು ನಿಮಿಷ ವ್ಯಯಿಸಿ."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ಹೊಸ ಸಂಪರ್ಕಗಳನ್ನು <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ಗೆ ಉಳಿಸಲಾಗುತ್ತದೆ."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ಹೊಸ ಸಂಪರ್ಕಗಳಿಗೆ ಡಿಫಾಲ್ಟ್ ಖಾತೆ ಆಯ್ಕೆಮಾಡಿ:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ಸಂಪರ್ಕವನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"ವೀಕ್ಷಣೆ ಮಾತ್ರ"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"ಎಡಿಟ್ ಮಾಡಲು ಸಂಪರ್ಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"ಲಿಂಕ್ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"ಸೇರಿಸಿ"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"ಅನ್‌ಲಿಂಕ್‌"</string>
+    <string name="add_account" msgid="8201790677994503186">"ಖಾತೆ ಸೇರಿಸಿ"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"ಹೊಸ ಖಾತೆಯನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ಡೇಟಾಬೇಸ್‌‌ ಫೈಲ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಿ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸಿ"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ಇನ್ನಷ್ಟು ನೋಡಿ"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ಕಡಿಮೆ ನೋಡಿ"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ಇತ್ತೀಚಿನದು"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"ಕುರಿತು"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"ವೈಯಕ್ತಿಕ ಪ್ರತಿಯನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ನಾಳೆ"</string>
+    <string name="today" msgid="8041090779381781781">"ಇಂದು"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> ಕ್ಕೆ ಇಂದು"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"<xliff:g id="TIME_INTERVAL">%s</xliff:g> ಕ್ಕೆ ನಾಳೆ"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ಶೀರ್ಷಿಕೆರಹಿತ ಈವೆಂಟ್)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"ಹೊಂದಿಸಿ"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ಸಂಸ್ಥೆ"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ಅಡ್ಡಹೆಸರು"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ಟಿಪ್ಪಣಿ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ವೆಬ್‌ಸೈಟ್"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ಈವೆಂಟ್"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ಸಂಬಂಧ"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"ಹೆಸರು"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ಇಮೇಲ್"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ಫೋನ್"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ಸ್ಥಳಕ್ಕಾಗಿ ದಿಕ್ಕುಗಳು"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"ಇತ್ತೀಚಿನ sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ಪ್ರತಿಕ್ರಿಯಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ಒಳಬರುವ"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ಹೊರಹೋಗುವ"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ತಪ್ಪಿಸಿಕೊಂಡ"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"ಇತ್ತೀಚಿನ ಕರೆ. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ಪುನಃ ಕರೆ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"ನೀವು: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"ಇನ್ನಷ್ಟು ಫೀಲ್ಡ್‌ಗಳು"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"ಸಂಪರ್ಕ ಫೋಟೋವನ್ನು ಬದಲಿಸಿ"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"ಸಂಪರ್ಕ ಫೋಟೋವನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"ಸಂಪರ್ಕ ಫೋಟೋ"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"ಸಂಪಾದಕವನ್ನು ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"ಇದಕ್ಕೆ ಉಳಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> ನಲ್ಲಿನ ಸಂಪರ್ಕದ ಮಾಹಿತಿಯು ಎಡಿಟ್ ಮಾಡಲು ಆಗುವುದಿಲ್ಲ"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ಲಿಂಕ್ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ಈ ಸಂಪರ್ಕ"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ಸಂಭವನೀಯ ನಕಲಿಗಳು"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ಈ ಸಂಪರ್ಕಗಳು ಅದೇ ವ್ಯಕ್ತಿಯದ್ದಾಗಿರಬಹುದು. ನೀವು ಅವುಗಳನ್ನು ಏಕ ಸಂಪರ್ಕವಾಗಿ ಒಟ್ಟಿಗೆ ಲಿಂಕ್ ಮಾಡಬಹುದು."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> ಅಳಿಸಿ"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> ಅಳಿಸಿ"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"ಸಲಹೆಗಳು"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"ಹೊಸತು"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ನ್ಯಾವಿಗೇಶನ್ ಡ್ರಾಯರ್ ತೆರೆಯಿರಿ"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ನ್ಯಾವಿಗೇಶನ್ ಡ್ರಾಯರ್ ಮುಚ್ಚಿ"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> ಲೇಬಲ್"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ಲೇಬಲ್‌ಗಳು"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"ಖಾತೆಗಳು"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"ನಿಮ್ಮ ಇತಿಹಾಸವನ್ನು ಒಟ್ಟಿಗೆ ವೀಕ್ಷಿಸಿ"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ಈವೆಂಟ್‌ಗಳು ಮತ್ತು ಸಂದೇಶಗಳು"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ಈವೆಂಟ್‌ಗಳು"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"ಸಂದೇಶಗಳು"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"ಸಲಹೆಗಳು"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"ನಿಮ್ಮ ಸಂರ್ಪಕಗಳನ್ನು ಸಂಘಟಿತವಾಗಿ ಮತ್ತು ಉಪಯುಕ್ತವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಿ"</string>
+    <string name="undo" msgid="1425165101664071422">"ರದ್ದುಗೊಳಿಸಿ"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_home" msgid="1990519474420545392">"ಮನೆಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"ಮೊಬೈಲ್‌‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_work" msgid="5328785911463744028">"ಕೆಲಸದ ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"ಕೆಲಸದ ಫ್ಯಾಕ್ಸ್‌‌‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"ಮನೆಯ ಫ್ಯಾಕ್ಸ್‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_pager" msgid="9003902812293983281">"ಪೇಜರ್‌‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_other" msgid="8563753966926932052">"ಕರೆಮಾಡಿ"</string>
+    <string name="call_callback" msgid="1910165691349426858">"ಕಾಲ್‌ಬ್ಯಾಕ್‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_car" msgid="3280537320306436445">"ಕಾರ್‌‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"ಕಂಪನಿಯ ಪ್ರಮುಖ ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_main" msgid="6082900571803441339">"ಮುಖ್ಯ ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ಫ್ಯಾಕ್ಸ್‌‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_radio" msgid="8296755876398357063">"ರೇಡಿಯೋಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ಟೆಲೆಕ್ಸ್‌‌‌ ಮೂಲಕ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"ಕೆಲಸದ ಮೊಬೈಲ್‌‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"ಕೆಲಸದ ಪೇಜರ್‌‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS ಕರೆ ಮಾಡಿ"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ಕರೆ ಮಾಡಿ)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ನಿವಾಸಕ್ಕೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"ಮೊಬೈಲ್‌‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_work" msgid="2269624156655267740">"ಕೆಲಸದ ಸಂಖ್ಯೆಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"ಕೆಲಸದ ಫ್ಯಾಕ್ಸ್‌‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"ಮನೆಯ ಫ್ಯಾಕ್ಸ್‌‌‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"ಪೇಜರ್‌‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_other" msgid="806127844607642331">"ಪಠ್ಯ"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"ಕಾಲ್‌ಬ್ಯಾಕ್‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_car" msgid="7444227058437359641">"ಕಾರ್‌ನ ಸಂಖ್ಯೆಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"ಕಂಪನಿಯ ಮುಖ್ಯ ಸಂಖ್ಯೆಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_main" msgid="8621625784504541679">"ಮುಖ್ಯ ಸಂಖ್ಯೆಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ಫ್ಯಾಕ್ಸ್‌‌‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ರೇಡಿಯೋ ಸಂಖ್ಯೆಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ಟೆಲೆಕ್ಸ್‌‌‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"ಕೆಲಸದದ ಮೊಬೈಲ್‌‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"ಕೆಲಸದ ಪೇಜರ್‌‌ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ಸಂದೇಶ ಕಳುಹಿಸಿ)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ವೀಡಿಯೊ ಕರೆ ಮಾಡು"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"ಪದೇಪದೇ ಸಂಪರ್ಕಿಸಿರುವವರನ್ನು ತೆರವುಗೊ.?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"ಸಂಪರ್ಕಗಳು ಮತ್ತು ಫೋನ್‌ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಪದೇ ಪದೇ ಸಂಪರ್ಕಪಡಿಸಿರುವ ಪಟ್ಟಿಯನ್ನು ನೀವು ತೆರವುಗೊಳಿಸುತ್ತೀರಿ ಮತ್ತು ಮೊದಲಿನಿಂದ ನಿಮ್ಮ ವಿಳಾಸ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ತಿಳಿಯಲು ಇಮೇಲ್‌ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಒತ್ತಾಯಿಸಿ."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"ಪದೇ ಪದೇ ಸಂಪರ್ಕಿಸಿರುವವರನ್ನು ತೆರವು…"</string>
+    <string name="status_available" msgid="5586870015822828392">"ಲಭ್ಯ"</string>
+    <string name="status_away" msgid="1838861100379804730">"ದೂರ"</string>
+    <string name="status_busy" msgid="9147992455450257136">"ಕಾರ್ಯನಿರತ"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"ಇತರೆ"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ಡೈರೆಕ್ಟರಿ"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"ಕೆಲಸದ ಡೈರೆಕ್ಟರಿ"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"ಎಲ್ಲಾ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> ಅವರಿಗೆ ತ್ವರಿತ ಸಂಪರ್ಕ"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(ಯಾವುದೇ ಹೆಸರಿಲ್ಲ)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"ಪದೇ ಪದೇ ಸಂಪರ್ಕಿಸಿರುವುದು"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ಫೋನ್‌ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ ಎಲ್ಲ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="account_phone" msgid="7128032778471187553">"ಸಾಧನ"</string>
+    <string name="account_sim" msgid="6519016427905087952">"ಸಿಮ್"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"ಹೆಸರು"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"ಅಡ್ಡಹೆಸರು"</string>
+    <string name="name_given" msgid="4280790853455320619">"ಮೊದಲ ಹೆಸರು"</string>
+    <string name="name_family" msgid="7466985689626017037">"ಕೊನೆಯ ಹೆಸರು"</string>
+    <string name="name_prefix" msgid="59756378548779822">"ಹೆಸರಿನ ಪೂರ್ವಪ್ರತ್ಯಯ"</string>
+    <string name="name_middle" msgid="8467433655992690326">"ಮಧ್ಯದ ಹೆಸರು"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"ಹೆಸರಿನ ಪ್ರತ್ಯಯ"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ಫೋನೆಟಿಕ್‌‌ ಹೆಸರು"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ಫೋನೆಟಿಕ್‌ ಮೊದಲ ಹೆಸರು"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ಫೋನೆಟಿಕ್‌‌ ಮಧ್ಯ ಹೆಸರು"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ಫೋನೆಟಿಕ್‌‌ ಕೊನೆಯ ಹೆಸರು"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ಫೋನ್"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ಇಮೇಲ್"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"ವಿಳಾಸ"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"ಸಂಘಟನೆ"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ಸಂಬಂಧ"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"ವಿಶೇಷ ದಿನಾಂಕ"</string>
+    <string name="sms" msgid="1756857139634224222">"ಪಠ್ಯ ಸಂದೇಶ"</string>
+    <string name="postal_address" msgid="8765560217149624536">"ವಿಳಾಸ"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"ಕಂಪನಿ"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"ಶೀರ್ಷಿಕೆ"</string>
+    <string name="label_notes" msgid="8337354953278341042">"ಟಿಪ್ಪಣಿಗಳು"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"ಕಸ್ಟಮ್"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ವೆಬ್‌ಸೈಟ್"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ಲೇಬಲ್‌ಗಳು"</string>
+    <string name="email_home" msgid="8573740658148184279">"ಮನೆಗೆ ಇಮೇಲ್‌ ಮಾಡಿ"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"ಮೊಬೈಲ್‌‌ಗೆ ಇಮೇಲ್‌ ಮಾಡಿ"</string>
+    <string name="email_work" msgid="2807430017302722689">"ಕೆಲಸದ ವಿಳಾಸಕ್ಕೆ ಇಮೇಲ್‌ ಮಾಡಿ"</string>
+    <string name="email_other" msgid="3454004077967657109">"ಇಮೇಲ್"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ಇಮೇಲ್‌ ಮಾಡಿ"</string>
+    <string name="email" msgid="5668400997660065897">"ಇಮೇಲ್"</string>
+    <string name="postal_street" msgid="8133143961580058972">"ಗಲ್ಲಿ"</string>
+    <string name="postal_city" msgid="6597491300084895548">"ನಗರ"</string>
+    <string name="postal_region" msgid="6045263193478437672">"ರಾಜ್ಯ"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ಪಿನ್ ಕೋಡ್"</string>
+    <string name="postal_country" msgid="7638264508416368690">"ದೇಶ"</string>
+    <string name="map_home" msgid="1243547733423343982">"ಮನೆಯ ವಿಳಾಸವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="map_work" msgid="1360474076921878088">"ಕೆಲಸದ ವಿಳಾಸವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="map_other" msgid="3817820803587012641">"ವಿಳಾಸವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ವಿಳಾಸವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM ಬಳಸಿಕೊಂಡು ಚಾಟ್‌ ಮಾಡಿ"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live ಬಳಸಿಕೊಂಡು ಚಾಟ್‌ ಮಾಡಿ"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo ಬಳಸಿಕೊಂಡು ಚಾಟ್‌ ಮಾಡಿ"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype ಬಳಸಿಕೊಂಡು ಚಾಟ್‌ ಮಾಡಿ"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ ಬಳಸಿಕೊಂಡು ಚಾಟ್‌ ಮಾಡಿ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk ಬಳಸಿಕೊಂಡು ಚಾಟ್‌ ಮಾಡಿ"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ ಬಳಸಿಕೊಂಡು ಚಾಟ್‌ ಮಾಡಿ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber ಬಳಸಿಕೊಂಡು ಚಾಟ್‌ ಮಾಡಿ"</string>
+    <string name="chat" msgid="9025361898797412245">"ಚಾಟ್"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ಅಳಿಸಿ"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"ಇನ್ನಷ್ಟು ಹೆಸರಿನ ಕ್ಷೇತ್ರಗಳನ್ನು ತೋರಿಸಿ"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"ಹೆಸರಿನ ಕ್ಷೇತ್ರಗಳನ್ನು ಸಂಕುಚಿಸಿ"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"ಇನ್ನಷ್ಟು ಫೋನೆಟಿಕ್ ಹೆಸರಿನ ಕ್ಷೇತ್ರಗಳನ್ನು ತೋರಿಸಿ"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ಫೋನೆಟಿಕ್ ಹೆಸರಿನ ಕ್ಷೇತ್ರಗಳನ್ನು ಸಂಕುಚಿಸಿ"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"ವಿಸ್ತರಿಸು"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"ಸಂಕುಚಿಸು"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"ವಿಸ್ತರಿಸಲಾಗಿದೆ"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"ಸಂಕುಚಿಸಲಾಗಿದೆ"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"ಎಲ್ಲಾ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ನಕ್ಷತ್ರ ಹಾಕಿರುವುದು"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"ಕಸ್ಟಮೈಸ್"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"ಸಂಪರ್ಕಿಸು"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"ಇತರ ಎಲ್ಲ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"ಎಲ್ಲಾ ಸಂಪರ್ಕಗಳು"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"ಸಿಂಕ್‌ ಗುಂಪನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"ಸಿಂಕ್‌ ಗುಂಪನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"ಇನ್ನಷ್ಟು ಗುಂಪುಗಳು…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"ಸಿಂಕ್‌ನಿಂದ \"<xliff:g id="GROUP">%s</xliff:g>\" ಅನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ ಸಿಂಕ್‌ನಿಂದ ಯಾವುದೇ ಗುಂಪು ಮಾಡದಿರುವ ಸಂಪರ್ಕಗಳನ್ನು ಸಹ ತೆಗೆದುಹಾಕುತ್ತದೆ."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳನ್ನು ಉಳಿಸಲಾಗುತ್ತಿದೆ..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"ಕಸ್ಟಮೈಸ್ ವೀಕ್ಷಣೆ"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"ಆಮದಾದ ಸಂಪರ್ಕಗಳನ್ನು ಇಲ್ಲಿ ಉಳಿಸಿ:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"ಸಿಮ್‌ ಕಾರ್ಡ್"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"ಸಿಮ್ <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d ಸಂಪರ್ಕಗಳು</item>
+      <item quantity="other">%1$d ಸಂಪರ್ಕಗಳು</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> ಸಂಪರ್ಕಗಳು • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> ಸಂಪರ್ಕಗಳು • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ಫೈಲ್‌"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"ಆಮದು ಮಾಡಲು ಏನೂ ಇಲ್ಲ"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard ನಿಂದ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದುಮಾಡುವುದೇ?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> ಆಮದು ಮಾಡುವುದನ್ನು ರದ್ದುಗೊಳಿಸುವುದೇ?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> ರಫ್ತು ಮಾಡುವುದನ್ನು ರದ್ದುಗೊಳಿಸುವುದೇ?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard ಆಮದು/ರಫ್ತು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"ಅಪರಿಚಿತ ದೋಷ."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"ರಫ್ತುದಾರರನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ಯಾವುದೇ ರಫ್ತುಮಾಡಬಹುದಾದ ಸಂಪರ್ಕವಿಲ್ಲ."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"ನೀವು ಅಗತ್ಯವಿರುವ ಅನುಮತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿರುವಿರಿ."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"ರಫ್ತು ಮಾಡುವ ಸಂದರ್ಭದಲ್ಲಿ ದೋಷವೊಂದು ಕಂಡುಬಂದಿದೆ: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O ದೋಷ"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"ಸಾಕಷ್ಟು ಮೆಮೊರಿ ಇಲ್ಲ. ಫೈಲ್‌ ತುಂಬಾ ದೊಡ್ಡದಾಗಿರಬಹುದು."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ಈ ಫಾರ್ಮ್ಯಾಟ್ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> ರಫ್ತು ಮುಗಿದಿದೆ."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"ಸಂಪರ್ಕಗಳ ರಫ್ತು ಮಾಡುವಿಕೆ ಮುಗಿದಿದೆ."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"ಸಂಪರ್ಕಗಳನ್ನು ರಪ್ತು ಮಾಡುವುದನ್ನು ಮುಕ್ತಾಯಗೊಳಿಸಲಾಗಿದೆ, ಸಂಪರ್ಕಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಅಧಿಸೂಚನೆ ಕ್ಲಿಕ್ ಮಾಡಿ."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"ಸಂಪರ್ಕಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> ರಫ್ತು ಮಾಡುವುದನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"ಸಂಪರ್ಕ ಡೇಟಾವನ್ನು ರಫ್ತುಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"ಸಂಪರ್ಕ ಡೇಟಾವನ್ನು ಆಮದು ಮಾಡಲಾಗುತ್ತಿದೆ."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ಡೇಟಾಬೇಸ್ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲಾಗಲಿಲ್ಲ."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"ಯಾವುದೇ ರಫ್ತುಮಾಡಬಹುದಾದ ಸಂಪರ್ಕಗಳು ಇಲ್ಲ."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard ಸಂಯೋಜಕ ಸರಿಯಾಗಿ ಪ್ರಾರಂಭವಾಗಿಲ್ಲ."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"ರಫ್ತು ಮಾಡಲಾಗುವುದಿಲ್ಲ"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"ಸಂಪರ್ಕ ಡೇಟಾವನ್ನು ರಫ್ತು ಮಾಡಲಾಗಿಲ್ಲ.\nಕಾರಣ: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> ಆಮದು ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard ಡೇಟಾವನ್ನು ಓದಲಾಗಲಿಲ್ಲ"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g> vCard ಆಮದು ಮುಕ್ತಾಯಗೊಂಡಿದೆ"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> ಆಮದು ರದ್ದುಪಡಿಸಲಾಗಿದೆ"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> ಅನ್ನು ಸ್ವಲ್ಪ ಸಮಯದಲ್ಲಿ ಆಮದು ಮಾಡಲಾಗುತ್ತದೆ."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ಫೈಲ್‌ ಅನ್ನು ಸ್ವಲ್ಪ ಸಮಯದಲ್ಲಿ ಆಮದು ಮಾಡಲಾಗುತ್ತದೆ."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard ಆಮದು ವಿನಂತಿಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ. ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"ಸಂಪರ್ಕಗಳನ್ನು ಶೀಘ್ರದಲ್ಲೇ ರಪ್ತು ಮಾಡಲಾಗುತ್ತದೆ."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard ರಫ್ತು ವಿನಂತಿಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ. ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"ಸಂಪರ್ಕ"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"ಸ್ಥಳೀಯ ತಾತ್ಕಾಲಿಕ ಸಂಗ್ರಹಣೆಗೆ vCard(ಗಳು) ಅನ್ನು ಸಂಗ್ರಹ ಮಾಡಲಾಗುತ್ತಿದೆ. ನಿಜವಾದ ಆಮದು ಶೀಘ್ರದಲ್ಲೇ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard ಆಮದು ಮಾಡಲಾಗಿಲ್ಲ."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC ಮೂಲಕ ಸ್ವೀಕರಿಸಲಾದ ಸಂಪರ್ಕ"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"ಸಂಗ್ರಹಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> ಆಮದು ಮಾಡಲಾಗುತ್ತಿದೆ: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf ಫೈಲ್‌ಗೆ ರಫ್ತು ಮಾಡಿ"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"ಈ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ಫೋನೆಟಿಕ್‌‌ ಹೆಸರು"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"ಯಾವಾಗಲೂ ತೋರಿಸಿ"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"ಖಾಲಿಯಿದ್ದಲ್ಲಿ ಮರೆಮಾಡಿ"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"ಮೊದಲ ಹೆಸರು"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"ಕೊನೆಯ ಹೆಸರು"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"ಹೆಸರಿನ ಫಾರ್ಮ್ಯಾಟ್‌"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ಮೊದಲ ಹೆಸರು ಮೊದಲು"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"ಕೊನೆಯ ಹೆಸರು ಮೊದಲು"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"ಖಾತೆಗಳು"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"ಹೊಸ ಸಂಪರ್ಕಗಳಿಗೆ ಡಿಫಾಲ್ಟ್‌ ಖಾತೆ"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"ನನ್ನ ಮಾಹಿತಿ"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಹೊಂದಿಸಿ"</string>
+    <string name="setting_about" msgid="7014388749752042863">"ಸಂಪರ್ಕಗಳ ಕುರಿತು"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"ಮೆಚ್ಚಿನ ಸಂಪರ್ಕಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಿ"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"ಎಲ್ಲ ಸಂಪರ್ಕಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಿ"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"ಸಂಪರ್ಕಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ವಿಫಲವಾಗಿದೆ."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"ಸಂಪರ್ಕಗಳನ್ನು ರಫ್ತು ಮಾಡಿ"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"ಇದರಿಂದ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಿ"</string>
+    <string name="share_error" msgid="948429331673358107">"ಈ ಸಂಪರ್ಕವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"ಹಂಚಿಕೊಳ್ಳಲು ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ಪ್ರದರ್ಶಿಸಲು ಸಂಪರ್ಕಗಳು"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ಪ್ರದರ್ಶಿಸಲು ಸಂಪರ್ಕಗಳು"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"ವೀಕ್ಷಣೆಯನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"ಉಳಿಸು"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"ಮೆಚ್ಚಿನವುಗಳು"</string>
+    <string name="menu_import" msgid="6107961135813836467">"ಆಮದು ಮಾಡಿ"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ರಫ್ತು ಮಾಡು"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"ನಿರ್ಬಂಧಿಸಲಾದ ಸಂಖ್ಯೆಗಳು"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> ಮೂಲಕ"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="SOURCE">%2$s</xliff:g> ಮೂಲಕ"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ಹುಡುಕಾಟವನ್ನು ನಿಲ್ಲಿಸಿ"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ಹುಡುಕಾಟವನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"ಖಾತೆ"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ಕರೆಗಳನ್ನು ಮಾಡಲು ಯಾವಾಗಲೂ ಇದನ್ನು ಬಳಸಿ"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"ಟಿಪ್ಪಣಿಯೊಂದಿಗೆ ಕರೆ"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"ಕರೆ ಕಳುಹಿಸಲು ಟಿಪ್ಪಣಿಯನ್ನು ಟೈಪ್ ಮಾಡಿ ..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ಕಳುಹಿಸು ಮತ್ತು ಕರೆಮಾಡು"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"ಬಿಲ್ಡ್ ಆವೃತ್ತಿ"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ತೆರೆದ ಮೂಲ ಪರವಾನಗಿಗಳು"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ಮುಕ್ತ ಮೂಲ ಸಾಫ್ಟ್‌ವೇರ್‌ಗಾಗಿ ಪರವಾನಗಿ ವಿವರಗಳು"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"ಗೌಪ್ಯತೆ ನೀತಿ"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"ಸೇವಾ ನಿಯಮಗಳು"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ತೆರೆದ ಮೂಲ ಪರವಾನಗಿಗಳು"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ಪರಿಶೀಲಿಸಲಾಗಿದೆ"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ಪರಿಶೀಲಿಸಲಾಗಿಲ್ಲ"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ವೀಡಿಯೊ ಕರೆ ಮಾಡಿ"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"ಅಳಿಸಿ"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"ಎಲಿಪ್ಸಿಸ್"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> ಸೆ"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> ನಿಮಿ <xliff:g id="SECONDS">%2$s</xliff:g> ಸೆ"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ಗಂ <xliff:g id="MINUTES_1">%2$s</xliff:g> ನಿಮಿಷ <xliff:g id="SECONDS">%3$s</xliff:g> ಸೆ"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ಈ ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"ಸಂಪರ್ಕವನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"ಆಮದು"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"ಸಂಪರ್ಕಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"ನಿಮ್ಮ ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಲ್ಲಿ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"ಸಂಪರ್ಕ ಈಗಾಗಲೇ ನಿಮ್ಮ ಪಟ್ಟಿಯಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಸಿಮ್ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲಾಗಿದೆ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಸಿಮ್ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲಾಗಿದೆ</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"ಸಿಮ್ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"ಸಿಮ್‌ನಿಂದ ಆಮದು ಮಾಡಿ"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"ಸ್ವಯಂಚಾಲಿತ ಸಿಂಕ್ ಆಫ್‌ ಆಗಿದೆ. ಆನ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"ವಜಾಗೊಳಿಸಿ"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"ಖಾತೆಯ ಸಿಂಕ್ ಆಫ್‌ ಆಗಿದೆ. ಆನ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"ಸ್ವಯಂ-ಸಿಂಕ್‌ ಆನ್ ಮಾಡುವುದೇ?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಖಾತೆಗಳಿಗೆ ನೀವು ಮಾಡುವ ಬದಲಾವಣೆಗಳು Google ಸಂಪರ್ಕಗಳಿಗೆ ಮಾತ್ರವಲ್ಲದೇ, ವೆಬ್ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನಗಳ ನಡುವೆ ನವೀಕೃತವಾಗಿ ಇರಿಸಲಾಗುತ್ತದೆ."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ಆನ್ ಮಾಡಿ"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"ಯಾವುದೇ ಸಂಪರ್ಕವಿಲ್ಲ"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"ಸಿಮ್"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"ಇನ್ನಷ್ಟು ತೋರಿಸಿ"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"ಸಿಮ್ ಕಾರ್ಡ್ ಆಮದು ಮುಕ್ತಾಯಗೊಂಡಿದೆ"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"ಆಮದು ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಸಂಪರ್ಕಗಳನ್ನು ಆಮದು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"ಸಿಮ್‌ ಆಮದು ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-ko/donottranslate_config.xml b/res/values-ko/donottranslate_config.xml
new file mode 100644
index 0000000..14cdd4d
--- /dev/null
+++ b/res/values-ko/donottranslate_config.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<resources>
+    <!-- If true, an option is shown in Display Options UI to choose a sort order -->
+    <bool name="config_sort_order_user_changeable">false</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_sort_order_primary">false</bool>
+
+    <!-- If true, an option is shown in Display Options UI to choose a name display order -->
+    <bool name="config_display_order_user_changeable">false</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_display_order_primary">false</bool>
+
+    <!-- If true, the order of name fields in the editor is primary (i.e. given name first) -->
+    <bool name="config_editor_field_order_primary">false</bool>
+</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 69da9a1..74c7fb0 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"주소록"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"주소록"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"연락처 보기"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"연락처 수정"</string>
     <string name="contactsList" msgid="8661624236494819731">"주소록"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"연락처 추가"</string>
     <string name="shortcutContact" msgid="749243779392912958">"연락처"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"바로 전화 걸기"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"바로 메시지 보내기"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"연락처 바로가기 선택"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"전화번호 선택"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"메시지를 보낼 번호 선택"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"연락처 선택"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"연락처에 추가"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"연락처 선택"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"선택"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"새 연락처 만들기"</string>
-    <string name="starredList" msgid="4817256136413959463">"중요주소록"</string>
-    <string name="frequentList" msgid="7154768136473953056">"자주 사용하는 연락처"</string>
-    <string name="strequentList" msgid="5640192862059373511">"즐겨찾기"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"연락처 세부정보"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"연락처 수정"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"연락처 만들기"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"그룹 수정"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"그룹 만들기"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"정보"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"업데이트"</string>
     <string name="searchHint" msgid="8482945356247760701">"주소록 검색"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"연락처 보기"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"즐겨찾기에 추가"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"즐겨찾기에서 삭제"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"즐겨찾기에서 삭제됨"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"수정"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"삭제"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"사진 변경"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"홈 화면에 만들기"</string>
-    <string name="menu_call" msgid="3992595586042260618">"연락처로 전화 걸기"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"연락처에 문자 보내기"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"바로가기 만들기"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"연결 해제"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"수정"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"삭제"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"연락처 추가"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"그룹 추가"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"연락처 삭제"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"라벨 이름 바꾸기"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"라벨 삭제"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"연락처 추가"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"연락처 선택"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"연락처 추가"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"라벨에서 삭제"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"라벨 만들기"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"이 연락처를 여러 연락처로 연결 해제하시겠습니까?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"연결 해제"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"이미 변경한 내용을 저장하고 이 연락처를 여러 연락처로 연결 해제하시겠습니까?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"저장 및 연결 해제"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"이미 변경한 내용을 저장하고 선택한 연락처와 연결하시겠습니까?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"저장 및 연결"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"연결 중"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"연결 해제 중"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"연결"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"연결된 연락처 보기"</string>
     <string name="menu_save" msgid="1727844363591825909">"저장"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"연락처 연결"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g>님과 연결하려는 연락처 선택:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"모든 연락처 표시"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"추천 연락처"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"모든 연락처"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> 연결됨"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"연락처가 연결되었습니다."</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g>님 삭제됨"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g>님과 <xliff:g id="NAME_1">%2$s</xliff:g>님 삭제됨"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>님, <xliff:g id="NAME_1">%2$s</xliff:g>님, <xliff:g id="NAME_2">%3$s</xliff:g>님… 삭제됨"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">연락처 삭제됨</item>
       <item quantity="one">연락처 삭제됨</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other">연락처 <xliff:g id="COUNT_1">%d</xliff:g>개</item>
+      <item quantity="one">연락처 <xliff:g id="COUNT_0">%d</xliff:g>개</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other">연락처 <xliff:g id="COUNT_2">%1$d</xliff:g>개 · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one">연락처 <xliff:g id="COUNT_0">%1$d</xliff:g>개 · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google에서 제공"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> 계정 연락처"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"벨소리 설정"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"음성사서함 자동 연결"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"읽기 전용 계정의 연락처는 숨길 수 있지만 삭제할 수 없습니다."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"숨기기"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"삭제할 연락처에 여러 계정의 세부정보가 들어 있습니다. 읽기 전용 계정의 세부정보는 표시되지 않을 뿐 삭제되는 것은 아닙니다."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"연결하려면 두 개 이상의 연락처를 선택해야 합니다."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"선택한 연락처를 연결하시겠습니까?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"연결"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"음성사서함으로 전달"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"음성사서함으로 전달 안함"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"이 연락처는 읽기 전용입니다. 삭제할 수는 없지만 숨길 수 있습니다."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"연락처 숨기기"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"이 연락처의 읽기 전용 계정은 숨겨지며 삭제되지 않습니다."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"이 연락처를 삭제하시겠습니까?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"선택한 연락처를 삭제하시겠습니까?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"읽기 전용 계정의 연락처는 숨길 수 있지만 삭제할 수 없습니다."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"이 연락처를 삭제하면 여러 계정의 세부정보가 삭제됩니다."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"이 연락처를 삭제하시겠습니까?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"삭제"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"변경사항 취소"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"연락처가 없습니다."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"연락처가 메인 스크린에 추가되었습니다."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g>님이 메인 스크린에 추가되었습니다."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"새 연락처 만들기"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"새 연락처 만들기"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"조직"</item>
-    <item msgid="7196592230748086755">"메모"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"태블릿에 사진이 없습니다."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"휴대전화에 사진이 없습니다."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"연락처가 홈 화면에 추가되었습니다."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g>님이 홈 화면에 추가되었습니다."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"기기에 사진이 없습니다."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"연락처 사진"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"라벨 이름 맞춤 설정"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"수신전화를 바로 음성사서함으로 보내기"</string>
     <string name="removePhoto" msgid="4898105274130284565">"사진 삭제"</string>
-    <string name="noContacts" msgid="4955659076981974652">"주소록이 없습니다."</string>
-    <string name="noGroups" msgid="8614664663561385253">"그룹 없음"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"그룹을 만들려면 계정이 필요합니다."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"이 그룹에 사람이 없습니다."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"사람을 추가하려면 그룹을 수정하세요."</string>
-    <string name="savingContact" msgid="4075751076741924939">"연락처 저장 중..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"연락처 목록이 비어 있음"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"이 라벨에 연락처 없음"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"이 계정에 연락처 없음"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"연락처 목록이 비어 있음"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> 저장됨"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"연락처가 저장되었습니다."</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"연락처 연결 해제됨"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"연락처 변경사항을 저장할 수 없습니다."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"연락처를 연결 해제하지 못했습니다."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"연락처를 연결할 수 없습니다."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"연락처를 저장하는 중에 오류가 발생했습니다."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"연락처 사진 변경사항을 저장하지 못했습니다."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"그룹이 저장되었습니다."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"그룹 변경사항을 저장할 수 없습니다."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">전화번호가 포함된 연락처 <xliff:g id="COUNT">%d</xliff:g>개</item>
-      <item quantity="one">전화번호가 포함된 연락처 1개</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"전화번호가 포함된 주소록이 없습니다."</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">연락처 <xliff:g id="COUNT">%d</xliff:g>개</item>
-      <item quantity="one">연락처 1개</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"주소록 없음"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">연락처 <xliff:g id="COUNT">%d</xliff:g>개</item>
-      <item quantity="one">연락처 1개</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"모두"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"즐겨찾기"</string>
-    <string name="callBack" msgid="5498224409038809224">"전화 걸기"</string>
-    <string name="callAgain" msgid="3197312117049874778">"다시 걸기"</string>
-    <string name="returnCall" msgid="8171961914203617813">"전화 걸기"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"연락처 변경사항을 저장할 수 없습니다."</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"연락처를 연결 해제하지 못했습니다."</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"연락처를 연결할 수 없습니다."</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"연락처를 저장하는 중에 오류가 발생했습니다."</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"연락처 사진 변경사항을 저장하지 못했습니다."</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"라벨을 로드하지 못함"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"라벨이 삭제되었습니다."</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"라벨 생성됨"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"라벨을 만들 수 없습니다."</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"라벨 업데이트됨"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"라벨에서 삭제됨"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"라벨에 추가됨"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"라벨 변경사항을 저장할 수 없습니다."</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"이미 존재하는 라벨입니다."</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"이메일이 없는 연락처가 있습니다."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"전화번호가 없는 연락처가 있습니다."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"이메일 보내기"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"메시지 보내기"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"연락처 선택"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"보내기"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"연락처 없음"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\'<xliff:g id="EMAIL">%s</xliff:g>\'을(를) 주소록에 추가하겠습니까?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"주소록 사진"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"더하기"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"연락처 <xliff:g id="CURRENT_NUMBER">%s</xliff:g>개(총 <xliff:g id="TOTAL_NUMBER">%s</xliff:g>개) 내보내는 중"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"연락처 명단"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"이 작업을 처리하는 앱을 찾을 수 없습니다."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"이전 화면으로 돌아가려면 클릭"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"전화번호 추가"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"이메일 추가"</string>
     <string name="missing_app" msgid="1466111003546611387">"이 작업을 처리하는 앱을 찾을 수 없습니다."</string>
     <string name="menu_share" msgid="943789700636542260">"공유"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"주소록에 추가"</string>
-    <string name="share_via" msgid="563121028023030093">"연락처 공유에 사용할 애플리케이션:"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"계정에서 그룹 만들기"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"추가"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">연락처 공유에 사용할 애플리케이션:</item>
+      <item quantity="one">연락처 공유에 사용할 애플리케이션:</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"계정 선택"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"라벨 만들기"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"라벨 이름 바꾸기"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"라벨 이름"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"라벨 이름"</string>
     <string name="audio_chat" msgid="2535716629358298691">"음성채팅"</string>
     <string name="video_chat" msgid="1872255818640336072">"영상 채팅"</string>
-    <string name="connections" msgid="8098440723172028350">"연결"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"연결 추가"</string>
-    <string name="recent" msgid="2659189233141493004">"날짜순"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"최근 업데이트"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> 연락처"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> 계정"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"이 앱에서 수정할 수 없습니다."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"이 기기에서 수정할 수 없습니다."</string>
     <string name="take_photo" msgid="7496128293167402354">"사진 찍기"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"새 사진 찍기"</string>
     <string name="pick_photo" msgid="2129509985223564942">"사진 선택"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"새 사진 선택"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"주소록을 업데이트하고 있습니다."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"검색 중…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"선택한 항목 표시"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"모두 표시"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"모두 선택"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"모두 선택취소"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"새로 추가"</string>
-    <string name="add_organization" msgid="7311893231158291197">"조직 추가"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"날짜"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"그룹 이름"</string>
-    <string name="change_photo" msgid="8530597935483526383">"변경"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"기본 사진"</string>
-    <string name="description_star" msgid="2605854427360036550">"즐겨찾기"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"연락처 수정"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"이 연락처와 선택한 연락처를 연결하시겠습니까?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"라벨"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"취소"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"뒤로"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"닫기"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"선택한 연락처를 수정하시겠습니까? 지금까지 입력하신 정보는 복사됩니다."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"내 주소록에 복사"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"내 주소록에 추가"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"디렉토리 <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"사용자 설정"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"설정"</string>
     <string name="menu_settings" msgid="377929915873428211">"설정"</string>
-    <string name="menu_help" msgid="1680178646764069976">"도움말 및 의견"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"표시 옵션"</string>
+    <string name="menu_help" msgid="1680178646764069976">"고객센터"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"전화번호"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"주소록에 추가"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"연락처에 추가"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"닫기"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g>(<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"연도 포함"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"연락처"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"로드 중…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"새 연락처 만들기"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"계정 추가"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"주소록 가져오기"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"새 그룹 만들기"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"새 그룹 만들기"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other">그룹 <xliff:g id="COUNT">%0$d</xliff:g>개</item>
-      <item quantity="one">그룹 1개</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\'<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\' 그룹을 삭제하시겠습니까? (연락처는 삭제되지 않음)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> 소속 <xliff:g id="COUNT_2">%1$d</xliff:g>명</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> 소속 <xliff:g id="COUNT_0">%1$d</xliff:g>명</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>명</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g>명</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"가져오기"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"새로 만들기…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\'<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\' 라벨을 삭제하시겠습니까?(연락처는 삭제되지 않음)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"다른 연락처와 연결하려면 연락처 이름을 입력하세요."</string>
     <string name="copy_text" msgid="3257145021583508761">"클립보드에 복사"</string>
     <string name="set_default" msgid="4417505153468300351">"기본으로 설정"</string>
     <string name="clear_default" msgid="7193185801596678067">"기본 설정 지우기"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"텍스트 복사됨"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"변경사항을 삭제하시겠습니까?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"삭제"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"내 프로필 설정"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"이름 입력"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"그룹 이름"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"변경사항을 삭제하시겠습니까?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"삭제"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"취소"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"맞춤설정을 취소하시겠습니까?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"연락처 검색"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"연락처 삭제"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"내 로컬 프로필"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"내 <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> 프로필"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"모든 연락처 표시"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"주소록은 Google 계정에서 사용할 때 더 효과적입니다.\n\n• 어떤 웹 브라우저에서든 액세스할 수 있습니다.\n• 주소록을 안전하게 백업할 수 있습니다."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"온라인 서비스와 동기화되므로 휴대전화를 잃어버려도 주소록을 안전하게 유지할 수 있습니다."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"계정 추가"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"새 연락처는 백업되지 않습니다. 온라인에 주소록을 백업할 계정을 추가하시겠습니까?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"잠시 시간을 내어 연락처를 Google에 백업할 계정을 추가하세요."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"새 연락처가 <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>에 저장됩니다."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"새 연락처에 대한 기본 계정 선택:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"새 연락처 추가"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"새 연락처 만들기"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"연락처 수정"</string>
-    <string name="keep_local" msgid="1258761699192993322">"오프라인 보관"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"보기 전용"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"수정할 연락처 선택"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"연결된 연락처"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"추가"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"연결 해제"</string>
     <string name="add_account" msgid="8201790677994503186">"계정 추가"</string>
     <string name="add_new_account" msgid="5748627740680940264">"새 계정 추가"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"데이터베이스 파일 내보내기"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"새 연락처 추가"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"새 연락처 만들기"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"더보기"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"간략히 보기"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"모두 보기"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"최근"</string>
     <string name="about_card_title" msgid="2920942314212825637">"정보"</string>
-    <string name="send_message" msgid="8938418965550543196">"메시지 보내기"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"개인 사본 작성 중..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"어제"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"개인 사본 작성 중..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"내일"</string>
     <string name="today" msgid="8041090779381781781">"오늘"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"오늘 <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"내일 <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="TIME_INTERVAL">%s</xliff:g>, <xliff:g id="DATE">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="TIME_INTERVAL">%2$s</xliff:g>, <xliff:g id="DATE">%1$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(제목 없는 일정)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"설정"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"웹사이트"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"일정"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"관계"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"계정"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"이름"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"이메일"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"전화"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"사진"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"연락처 편집기를 펼치려면 클릭하세요."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"연락처 편집기를 접으려면 클릭하세요."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"길찾기"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"최근 SMS 내역은 다음과 같습니다. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. 답장하려면 클릭하세요."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"최근 SMS 내역은 다음과 같습니다. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. 답장하려면 클릭하세요."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"수신"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"발신"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"부재중"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"최근 통화내역은 다음과 같습니다. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. 연락 온 번호로 다시 전화하려면 클릭하세요."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"최근 통화내역은 다음과 같습니다. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. 연락 온 번호로 다시 전화하려면 클릭하세요."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"내가 보낸 메시지: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"사용자의 행아웃 식별자를 이메일 입력란 또는 휴대전화 입력란에 입력하면 행아웃이 더 잘 작동합니다."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"입력란 더보기"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"사진 변경"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"편집기를 열지 못했습니다."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"다음에 저장"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"현재 <xliff:g id="ACCOUNT_NAME">%s</xliff:g>에 저장 중입니다. 다른 계정을 선택하려면 두 번 탭하세요."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">연결된 연락처(<xliff:g id="COUNT">%d</xliff:g>개)</item>
-      <item quantity="one">연결된 연락처</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"연결된 연락처 <xliff:g id="COUNT">%d</xliff:g>개"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g>(<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"입력란 더보기"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"연락처 사진 변경"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"연락처 사진 추가"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"연락처 사진"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"편집기를 열지 못했습니다."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"다음에 저장"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g>의 연락처 정보는 수정할 수 없습니다."</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"연락처 연결"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"취소"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other">중복된 것으로 보이는 연락처 <xliff:g id="COUNT">%d</xliff:g>개</item>
-      <item quantity="one">중복된 것으로 보이는 연락처 1개</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">연결된 연락처 <xliff:g id="COUNT">%d</xliff:g>개</item>
-      <item quantity="one">연결된 연락처 1개</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>개)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"이 연락처"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"중복된 것으로 보이는 연락처"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"이 연락처는 같은 사람일 수 있습니다. 이 연락처들을 하나의 연락처로 연결할 수 있습니다."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"연결된 연락처"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"내 계정의 프로필 사진"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"사진 찍기"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"모든 사진"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"사진 선택"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"저장된 계정: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> 삭제"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> 삭제"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> 삭제"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>의 사진 선택 안됨"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>의 사진 선택됨"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"알 수 없는 계정의 사진이 선택되지 않음"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"알 수 없는 계정의 사진이 선택됨"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"변경된 언어를 반영하도록 연락처 목록을 업데이트하는 중입니다.\n\n잠시 기다려 주세요."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"번호 추가"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"번호 차단"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"번호 추가 또는 연락처 검색"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>번을 차단 해제할까요?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"차단 해제"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>번을 차단할까요?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"차단"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> 차단됨"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> 차단 해제됨"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g>번은 잘못된 번호입니다."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"통화 차단 기능이 일시적으로 중지됨"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"지난 48시간 이내에 이 휴대전화를 사용해 응급 서비스에 연락했으므로 통화 차단 기능이 중지되었습니다. 48시간이 지나면 통화 차단 기능이 자동으로 다시 사용 설정됩니다."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"가져오기"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"개수 보기"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"번호 추가"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"통화 차단이 48시간 동안 중지됨"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"긴급 통화를 사용했기 때문에 중지되었습니다."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"실행취소"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g>번은 이미 차단되었습니다."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"번호 차단 해제"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>의 연락처 세부정보"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"가져오지 못했습니다."</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"번호 가져오기"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"사용"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"추천"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"New"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"탐색 창 열기"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"탐색 창 닫기"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> 라벨"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"라벨"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"계정"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"기록 함께 표시"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"일정 및 메시지"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"일정"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"메시지"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"추천"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"연락처를 정리하고 유용하게 사용할 수 있습니다."</string>
+    <string name="undo" msgid="1425165101664071422">"실행취소"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>에 전화 걸기"</string>
+    <string name="call_home" msgid="1990519474420545392">"집으로 전화걸기"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"휴대전화로 전화걸기"</string>
+    <string name="call_work" msgid="5328785911463744028">"직장으로 전화걸기"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"직장 팩스로 전화걸기"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"집 팩스로 전화걸기"</string>
+    <string name="call_pager" msgid="9003902812293983281">"호출기로 전화걸기"</string>
+    <string name="call_other" msgid="8563753966926932052">"전화걸기"</string>
+    <string name="call_callback" msgid="1910165691349426858">"콜백 번호로 전화 걸기"</string>
+    <string name="call_car" msgid="3280537320306436445">"카폰으로 전화걸기"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"회사로 전화걸기"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN으로 전화걸기"</string>
+    <string name="call_main" msgid="6082900571803441339">"기본 번호로 전화 걸기"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"팩스로 전화하기"</string>
+    <string name="call_radio" msgid="8296755876398357063">"무선통신으로 전화걸기"</string>
+    <string name="call_telex" msgid="2223170774548648114">"텔렉스 통화"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD 통화"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"직장 휴대전화로 전화걸기"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"직장 호출기로 전화 걸기"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>에 전화 걸기"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS로 전화걸기"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g>(전화)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>에 문자 메시지 보내기"</string>
+    <string name="sms_home" msgid="7524332261493162995">"집으로 문자 보내기"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"휴대전화로 문자 보내기"</string>
+    <string name="sms_work" msgid="2269624156655267740">"직장으로 문자 보내기"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"직장 팩스로 문자 보내기"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"집 팩스로 문자 보내기"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"호출기로 문자 보내기"</string>
+    <string name="sms_other" msgid="806127844607642331">"문자 보내기"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"콜백 번호로 문자 보내기"</string>
+    <string name="sms_car" msgid="7444227058437359641">"카폰으로 문자 보내기"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"회사 기본전화로 문자 보내기"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN에 문자 보내기"</string>
+    <string name="sms_main" msgid="8621625784504541679">"기본 번호로 문자 보내기"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"팩스로 문자 보내기"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"무선통신으로 문자 보내기"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"텔렉스로 문자 보내기"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD에 문자 보내기"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"직장 휴대전화로 문자 보내기"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"직장 호출기로 문자 보내기"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g>(으)로 문자 보내기"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS로 문자 보내기"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g>(메시지)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"화상 통화하기"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"자주 연락하는 사람들 목록을 삭제하시겠습니까?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"주소록 및 휴대전화 앱에서 자주 연락하는 사람의 목록을 삭제하고 이메일 앱이 주소록 환경설정을 처음부터 다시 반영하도록 합니다."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"자주 연락하는 사람들 목록을 삭제하는 중…"</string>
+    <string name="status_available" msgid="5586870015822828392">"대화 가능"</string>
+    <string name="status_away" msgid="1838861100379804730">"자리 비움"</string>
+    <string name="status_busy" msgid="9147992455450257136">"다른 용무 중"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"기타"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"디렉토리"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"직장 디렉토리"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"모든 연락처"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g>님의 빠른 주소록"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(이름 없음)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"자주 연락하는 사람들의 연락처"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"전화번호가 포함된 모든 연락처"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"직장 프로필 연락처"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"업데이트 보기"</string>
+    <string name="account_phone" msgid="7128032778471187553">"기기"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"이름"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"닉네임"</string>
+    <string name="name_given" msgid="4280790853455320619">"이름"</string>
+    <string name="name_family" msgid="7466985689626017037">"성"</string>
+    <string name="name_prefix" msgid="59756378548779822">"경칭"</string>
+    <string name="name_middle" msgid="8467433655992690326">"중간 이름"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"이름 접미어"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"이름(소리나는 대로)"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"이름(소리나는 대로)"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"중간 이름(소리나는 대로)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"성(소리나는 대로)"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"전화"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"이메일"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"주소"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"메신저"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"조직"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"관계"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"특별한 날짜"</string>
+    <string name="sms" msgid="1756857139634224222">"문자 메시지"</string>
+    <string name="postal_address" msgid="8765560217149624536">"주소"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"회사"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"직함"</string>
+    <string name="label_notes" msgid="8337354953278341042">"메모"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"맞춤"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"웹사이트"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"라벨"</string>
+    <string name="email_home" msgid="8573740658148184279">"집으로 이메일 보내기"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"모바일로 이메일 보내기"</string>
+    <string name="email_work" msgid="2807430017302722689">"직장으로 이메일 보내기"</string>
+    <string name="email_other" msgid="3454004077967657109">"이메일"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>에 이메일 보내기"</string>
+    <string name="email" msgid="5668400997660065897">"이메일"</string>
+    <string name="postal_street" msgid="8133143961580058972">"번지"</string>
+    <string name="postal_city" msgid="6597491300084895548">"시/군/구"</string>
+    <string name="postal_region" msgid="6045263193478437672">"시/도"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"우편번호"</string>
+    <string name="postal_country" msgid="7638264508416368690">"국가"</string>
+    <string name="map_home" msgid="1243547733423343982">"집 주소 보기"</string>
+    <string name="map_work" msgid="1360474076921878088">"직장 주소 보기"</string>
+    <string name="map_other" msgid="3817820803587012641">"주소 보기"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> 주소 보기"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM으로 채팅"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live로 채팅"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo로 채팅"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype로 채팅"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ로 채팅"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google 토크로 채팅"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ로 채팅"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber로 채팅"</string>
+    <string name="chat" msgid="9025361898797412245">"채팅"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"삭제"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"이름 입력란 더보기"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"이름 입력란 접기"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"이름(소리나는 대로) 입력란 더보기"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"이름(소리나는 대로) 입력란 접기"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"펼치기"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"접기"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"펼쳐짐"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"접힘"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"모든 연락처"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"별표"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"맞춤설정"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"연락처"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"다른 모든 주소록"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"모든 주소록"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"동기화 그룹 삭제"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"동기화 그룹 추가"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"그룹 더보기..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\'<xliff:g id="GROUP">%s</xliff:g>\'을(를) 동기화에서 제거하면 그룹화되지 않은 연락처도 동기화에서 제거됩니다."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"표시 옵션 저장 중...."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"맞춤설정 보기"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"가져온 주소록을 저장할 계정:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM 카드"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">연락처 %1$d개</item>
+      <item quantity="one">연락처 1개</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other">연락처 <xliff:g id="COUNT_2">^1</xliff:g>개 • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one">연락처 <xliff:g id="COUNT_0">^1</xliff:g>개 • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf 파일"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"가져올 항목이 없습니다."</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard에서 연락처를 가져오시겠습니까?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> 가져오기를 취소하시겠습니까?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> 내보내기를 취소하시겠습니까?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard 가져오기/내보내기를 취소하지 못했습니다."</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"알 수 없는 오류입니다."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\'<xliff:g id="FILE_NAME">%1$s</xliff:g>\'을(를) 열 수 없습니다(이유: <xliff:g id="EXACT_REASON">%2$s</xliff:g>)."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"내보내기를 시작하지 못했습니다(이유: \'<xliff:g id="EXACT_REASON">%s</xliff:g>\')."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"내보낼 수 있는 연락처가 없습니다."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"필수 권한을 사용 중지했습니다."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"내보내는 중에 오류가 발생했습니다(이유: \'<xliff:g id="EXACT_REASON">%s</xliff:g>\')."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O 오류"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"메모리가 부족합니다. 파일이 너무 크기 때문일 수 있습니다."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"지원되지 않는 형식입니다."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> 내보내기 완료됨"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"연락처 내보내기 완료"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"연락처 내보내기가 끝나면 알림을 클릭하여 연락처를 공유하세요."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"연락처를 공유하려면 탭하세요."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> 내보내기 취소"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"연락처 데이터 내보내기"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"연락처 데이터를 내보내는 중입니다."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"데이터베이스 정보를 가져오지 못했습니다."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"내보낼 수 있는 연락처가 없습니다."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard 작성기가 제대로 시작되지 않았습니다."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"내보내기 실패"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"주소록 데이터를 내보내지 못했습니다.\n(이유: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\')"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> 가져오는 중"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard 데이터를 읽지 못했습니다."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g> vCard 가져오기 완료"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> 가져오기 취소"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g>을(를) 곧 가져옵니다."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"파일을 곧 가져옵니다."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard 가져오기 요청이 거부되었습니다. 나중에 다시 시도해 주세요."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"곧 연락처를 내보냅니다."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard 내보내기 요청이 거부되었습니다. 나중에 다시 시도해 주세요."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"연락처"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard를 로컬 임시 저장공간에 캐시하는 중입니다. 곧 가져오기가 시작됩니다."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard를 가져오지 못했습니다."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC를 통해 받은 연락처"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"캐시"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> 가져오는 중: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".VCF 파일로 내보내기"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"정렬 기준"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"이름(소리 나는 대로)"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"항상 표시"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"비어 있는 경우 숨기기"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"이름"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"성"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"이름 형식"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"이름 먼저"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"성 먼저"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"계정"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"새 연락처에 대한 기본 계정"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"내 정보"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"프로필 설정"</string>
+    <string name="setting_about" msgid="7014388749752042863">"주소록 정보"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"자주 사용하는 연락처 공유"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"모든 연락처 공유"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"연락처를 공유할 수 없습니다."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"연락처 내보내기"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"연락처를 가져올 위치"</string>
+    <string name="share_error" msgid="948429331673358107">"연락처를 공유할 수 없습니다."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"공유할 연락처가 없습니다."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"표시할 연락처"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"표시할 연락처"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"보기 맞춤설정"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"저장"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"연락처 검색"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"즐겨찾기"</string>
+    <string name="menu_import" msgid="6107961135813836467">"가져오기"</string>
+    <string name="menu_export" msgid="2658783911863503902">"내보내기"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"차단된 번호"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"출처: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>(출처: <xliff:g id="SOURCE">%2$s</xliff:g>)"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"검색 중지"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"검색창 지우기"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"계정"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"통화에 항상 사용"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"메모가 포함된 통화"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"통화에 함께 전송할 메모를 입력하세요."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"보내기 및 통화"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"빌드 버전"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"오픈소스 라이선스"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"오픈소스 소프트웨어 라이선스 세부정보"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"개인정보처리방침"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"서비스 약관"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"오픈소스 라이선스"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"URL을 열지 못했습니다."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> 선택함"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> 선택 안함"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"화상 통화 걸기"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"삭제"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"생략 기호"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g>초"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g>분 <xliff:g id="SECONDS">%2$s</xliff:g>초"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g>시간 <xliff:g id="MINUTES_1">%2$s</xliff:g>분 <xliff:g id="SECONDS">%3$s</xliff:g>초"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"이 바로가기는 사용 중지되었습니다."</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"연락처가 삭제되었습니다."</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"가져오기"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"연락처 선택"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM 카드에 연락처가 없습니다."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"이미 목록에 있는 연락처입니다."</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">SIM 연락처 <xliff:g id="COUNT">%d</xliff:g>개를 가져옴</item>
+      <item quantity="one">SIM 연락처 1개를 가져옴</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM 연락처를 가져오지 못했습니다."</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM에서 가져오기"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"취소"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"자동 동기화가 사용 중지되어 있습니다. 사용 설정하려면 탭하세요."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"해제"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"계정 동기화가 사용 중지되어 있습니다. 사용 설정하려면 탭하세요."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"자동 동기화를 사용하시겠습니까?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Google 주소록뿐만 아니라 모든 앱과 계정의 변경사항이 웹 및 기기 간에 최신 상태로 유지됩니다."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"사용"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"연결되지 않음"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"더보기"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM 카드 가져오기 완료"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"가져오기 실패"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM 카드에서 연락처를 가져올 수 없습니다."</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM 가져오는 중"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
deleted file mode 100644
index 2503fd0..0000000
--- a/res/values-ky-rKG/strings.xml
+++ /dev/null
@@ -1,439 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Байланыштар"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Байланыштар"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Байланышты көрүү"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Байланышты түзөтүү"</string>
-    <!-- no translation found for contactsList (8661624236494819731) -->
-    <skip />
-    <!-- no translation found for shortcutContact (749243779392912958) -->
-    <skip />
-    <!-- no translation found for shortcutDialContact (746622101599186779) -->
-    <skip />
-    <!-- no translation found for shortcutMessageContact (2460337253595976198) -->
-    <skip />
-    <!-- no translation found for shortcutActivityTitle (6642877210643565436) -->
-    <skip />
-    <!-- no translation found for callShortcutActivityTitle (6065749861423648991) -->
-    <skip />
-    <!-- no translation found for messageShortcutActivityTitle (3084542316620335911) -->
-    <skip />
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Байланышка кошуу"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Байланыш тандоо"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Жаңы байланыш түзүү"</string>
-    <!-- no translation found for starredList (4817256136413959463) -->
-    <skip />
-    <!-- no translation found for frequentList (7154768136473953056) -->
-    <skip />
-    <!-- no translation found for strequentList (5640192862059373511) -->
-    <skip />
-    <!-- no translation found for viewContactTitle (7989394521836644384) -->
-    <skip />
-    <!-- no translation found for editContactDescription (2947202828256214947) -->
-    <skip />
-    <!-- no translation found for insertContactDescription (4709878105452681987) -->
-    <skip />
-    <!-- no translation found for editGroupDescription (6321161304201540561) -->
-    <skip />
-    <!-- no translation found for insertGroupDescription (5658512271662210139) -->
-    <skip />
-    <!-- no translation found for contactDetailAbout (5430408883907061400) -->
-    <skip />
-    <!-- no translation found for contactDetailUpdates (3780588624763446941) -->
-    <skip />
-    <!-- no translation found for searchHint (8482945356247760701) -->
-    <skip />
-    <!-- no translation found for menu_viewContact (2795575601596468581) -->
-    <skip />
-    <!-- no translation found for menu_addStar (2908478235715404876) -->
-    <skip />
-    <!-- no translation found for menu_removeStar (5844227078364227030) -->
-    <skip />
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Сүйүктүүлөрдөн чыгарылды"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Сүйүктүүлөргө кошулду"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Өзгөртүү"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Жок кылуу"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Сүрөт өзгөртүү"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Үй экранына жайгаштыруу"</string>
-    <!-- no translation found for menu_call (3992595586042260618) -->
-    <skip />
-    <!-- no translation found for menu_sendSMS (5535886767547006515) -->
-    <skip />
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Ажыратуу"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Өзгөртүү"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Жок кылуу"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Байланыш кошуу"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Топ кошуу"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Бул байланыш бир нече байланышка ажыратылсынбы?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Ажыратуу"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Сиз киргизген өзгөртүүлөрдү сактап, бул байланышты бир нече байланышка ажыраткыңыз келеби?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Сактоо жана ажыратуу"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Сиз киргизген өзгөртүүлөрдү сактап, тандалган байланышка бириктиргиңиз келеби?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Сактоо жана бириктирүү"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Шилтемелөө"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Сактоо"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Байланыштарды шилтемелөө"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> дегенге шилтемелегиңиз келген байланышты тандаңыз."</string>
-    <!-- no translation found for showAllContactsJoinItem (2189695051430392383) -->
-    <skip />
-    <!-- no translation found for separatorJoinAggregateSuggestions (2831414448851313345) -->
-    <skip />
-    <!-- no translation found for separatorJoinAggregateAll (7939932265026181043) -->
-    <skip />
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Байланыштар шилтемеленди"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Байланыштар жок кылынды</item>
-      <item quantity="one">Байланыш жок кылынды</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Рингтон орнотуу"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Үн почтасына бардык чалуулар"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Окуу үчүн гана арналган каттоо эсебиңизден байланыштарды жок кылуу мүмкүн эмес, бирок аларды жашырып койсо болот."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Жашыруу"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Жок кылына турган байланышта бир нече каттоо эсебинин чоо-жайы бар. Окуу үчүн гана арналган каттоо эсептеринин чоо-жайы жашырылып, жок кылынбайт."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Шилтемелөө үчүн кеминде эки байланыш тандашыңыз керек."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Тандалган байланыштар бириктирилсинби?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Бириктирүү"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Бул байланыш жок кылынсынбы?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Тандалган байланыштар жок кылынсынбы?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Окуу үчүн гана арналган каттоо эсебиңизден байланыштарды жок кылуу мүмкүн эмес, бирок аларды жашырып койсо болот."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Жок кылына турган байланыштарда бир нече каттоо эсебинин чоо-жайы бар. Окуу үчүн гана арналган каттоо эсептеринин чоо-жайы жашырылып, жок кылынбайт."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Бул байланыш жок кылынса, анын чоо-жайы бир нече каттоо эсебинен жок кылынат."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Бул байланыш жок кылынсынбы?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Жок кылуу"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Өзгөрүүлөрдү жарактан чыгаруу"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Мындай байланыш жок."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Байланыш башкы экранга кошулду."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> Башкы экранга кошулду."</string>
-    <!-- no translation found for pickerNewContactHeader (7750705279843568147) -->
-    <skip />
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Жаңы байланыш түзүү"</string>
-    <!-- no translation found for otherLabels:0 (8287841928119937597) -->
-    <!-- no translation found for otherLabels:1 (7196592230748086755) -->
-    <!-- no translation found for photoPickerNotFoundText (6247290728908599701) -->
-    <skip />
-    <!-- no translation found for photoPickerNotFoundText (431331662154342581) -->
-    <skip />
-    <!-- no translation found for attach_photo_dialog_title (5599827035558557169) -->
-    <skip />
-    <!-- no translation found for customLabelPickerTitle (1081475101983255212) -->
-    <skip />
-    <!-- no translation found for send_to_voicemail_checkbox (9001686764070676353) -->
-    <skip />
-    <!-- no translation found for removePhoto (4898105274130284565) -->
-    <skip />
-    <string name="noContacts" msgid="4955659076981974652">"Байланыштар жок"</string>
-    <!-- no translation found for noGroups (8614664663561385253) -->
-    <skip />
-    <string name="noAccounts" msgid="7768267764545265909">"Топторду түзүш үчүн эсеп керек."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Бу топто эч ким жок."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Бирөөнү кошуш үчүн топту өзгөртүңүз."</string>
-    <!-- no translation found for savingContact (4075751076741924939) -->
-    <skip />
-    <string name="contactSavedToast" msgid="9171862279493213075">"Байланыш сакталды"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Байланыштар ажыратылды"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Байланыштын өзгөрүүлөрү сакталган жок."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Байланыш ажыратылбай койду."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Байланыш шилтемеленбей койду."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Байланышты сактоодогу ката."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Байланыштын сүрөт өзгөрүүлөрү сакталган жок."</string>
-    <!-- no translation found for groupSavedToast (1168756874239833756) -->
-    <skip />
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Топтун өзгөртүүлөрү сакталган жок."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">телефон номерлери менен <xliff:g id="COUNT">%d</xliff:g> байланыш</item>
-      <item quantity="one">телефон номери менен 1 байланыш</item>
-    </plurals>
-    <!-- no translation found for listTotalPhoneContactsZero (6968813857632984319) -->
-    <skip />
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> табылды</item>
-      <item quantity="one">1 табылды</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Байланыштар жок"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> табылды</item>
-      <item quantity="one">1 табылды</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Бардыгы"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Сүйүктүүлөр"</string>
-    <!-- no translation found for callBack (5498224409038809224) -->
-    <skip />
-    <!-- no translation found for callAgain (3197312117049874778) -->
-    <skip />
-    <!-- no translation found for returnCall (8171961914203617813) -->
-    <skip />
-    <!-- no translation found for add_contact_dlg_message_fmt (7986472669444326576) -->
-    <skip />
-    <!-- no translation found for description_contact_photo (3387458082667894062) -->
-    <skip />
-    <!-- no translation found for description_plus_button (515164827856229880) -->
-    <skip />
-    <!-- no translation found for exporting_contact_list_progress (560522409559101193) -->
-    <skip />
-    <!-- no translation found for search_settings_description (2675223022992445813) -->
-    <skip />
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Бул ишти аткаруучу эч бир колдонмо табылган жок."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Мурунку экранга кайтуу үчүн чыкылдатыңыз"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Телефон номерин кошуу"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Электрондук почта дарегин кошуу"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Бул ишти аткаруучу эч бир колдонмо табылган жок."</string>
-    <!-- no translation found for menu_share (943789700636542260) -->
-    <skip />
-    <string name="menu_add_contact" msgid="3198704337220892684">"Байланыштарга кошуу"</string>
-    <!-- no translation found for share_via (563121028023030093) -->
-    <skip />
-    <!-- no translation found for dialog_new_group_account (2318032089273496830) -->
-    <skip />
-    <string name="audio_chat" msgid="2535716629358298691">"Үн чат"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
-    <string name="connections" msgid="8098440723172028350">"Байланыштар"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Байланыш кошуу"</string>
-    <string name="recent" msgid="2659189233141493004">"Акыркы"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Акыркы жаңыртуулар"</string>
-    <!-- no translation found for account_type_format (718948015590343010) -->
-    <skip />
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> каттоо эсеби"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Бул колдонмодон өзгөртүлбөйт."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Бул түзмөктөн өзгөртүлбөйт."</string>
-    <!-- no translation found for take_photo (7496128293167402354) -->
-    <skip />
-    <!-- no translation found for take_new_photo (7341354729436576304) -->
-    <skip />
-    <string name="pick_photo" msgid="2129509985223564942">"Сүрөт тандаңыз"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Жаңы сүрөт тандоо"</string>
-    <!-- no translation found for upgrade_in_progress (474511436863451061) -->
-    <skip />
-    <string name="search_results_searching" msgid="3984833028938569930">"Изделүүдө…"</string>
-    <!-- no translation found for menu_display_selected (6470001164297969034) -->
-    <skip />
-    <!-- no translation found for menu_display_all (8887488642609786198) -->
-    <skip />
-    <!-- no translation found for menu_select_all (621719255150713545) -->
-    <skip />
-    <!-- no translation found for menu_select_none (7093222469852132345) -->
-    <skip />
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Жаңысын кошуу"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Уюм кошуу"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Топтун аты"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Өзгөртүү"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Негизги сүрөт"</string>
-    <!-- no translation found for description_star (2605854427360036550) -->
-    <skip />
-    <!-- no translation found for edit_contact (7529281274005689512) -->
-    <skip />
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Учурдагы байланыш тандалган байланышка шилтемеленсинби?"</string>
-    <!-- no translation found for aggregation_suggestion_edit_dialog_message (6549585283910518095) -->
-    <skip />
-    <string name="menu_copyContact" msgid="1573960845106822639">"Менин Байланыштарыма көчүрүү"</string>
-    <!-- no translation found for add_to_my_contacts (1068274916793627723) -->
-    <skip />
-    <!-- no translation found for contact_directory_description (683398073603909119) -->
-    <skip />
-    <!-- no translation found for list_filter_custom (8910173055702057002) -->
-    <skip />
-    <!-- no translation found for activity_title_settings (5464130076132770781) -->
-    <skip />
-    <!-- no translation found for menu_settings (377929915873428211) -->
-    <!-- no translation found for menu_settings (377929915873428211) -->
-    <skip />
-    <string name="menu_help" msgid="1680178646764069976">"Жардам жана жооп пикир"</string>
-    <!-- no translation found for preference_displayOptions (1341720270148252393) -->
-    <skip />
-    <!-- no translation found for organization_company_and_title (6718207751363732025) -->
-    <skip />
-    <!-- no translation found for non_phone_caption (1541655052330027380) -->
-    <skip />
-    <!-- no translation found for non_phone_add_to_contacts (6590985286250471169) -->
-    <skip />
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Байланыштарга кошуу"</string>
-    <!-- no translation found for non_phone_close (7608506439725515667) -->
-    <skip />
-    <!-- no translation found for widget_name_and_phonetic (8739586586600099979) -->
-    <skip />
-    <string name="date_year_toggle" msgid="7122002148518724139">"Жылы көрсөтүлсүн"</string>
-    <!-- no translation found for social_widget_label (6378905543028924592) -->
-    <skip />
-    <string name="social_widget_loading" msgid="5327336597364074608">"Жүктөлүүдө…"</string>
-    <!-- no translation found for contacts_unavailable_create_contact (7014525713871959208) -->
-    <skip />
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Каттоо эсебин кошуу"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Байланыштарды импорттоо"</string>
-    <!-- no translation found for create_group_dialog_title (6874527142828424475) -->
-    <skip />
-    <string name="create_group_item_label" msgid="4411981763169654825">"Жаңы топ түзүү"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> топ</item>
-      <item quantity="one">1 топ</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" тобу өчүрүлсүнбү? (Байланыштардын өзү өчүрүлбөйт)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> ичинен <xliff:g id="COUNT_2">%1$d</xliff:g> киши</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> ичинен <xliff:g id="COUNT_0">%1$d</xliff:g> киши</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> киши</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> киши</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Башка байланышка шилтемелөөдөн мурун, байланыштын атын териңиз."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Алмашуу буферине көчүрүү"</string>
-    <string name="set_default" msgid="4417505153468300351">"Негизги кылуу"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Негизгини тазалоо"</string>
-    <!-- no translation found for toast_text_copied (5143776250008541719) -->
-    <skip />
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Өзгөртүүлөр жокко чыгарылсынбы?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Жокко чыгаруу"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Профайлымды тууралоо"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Кишинин атын киргизиңиз"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Топтун аты"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Менин жергиликтүү профайлым"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Менин <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайлым"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Бардык байланыштарды көрсөтүү"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Байланыштар колдонмосу Google Каттоо эсебинде жакшы иштейт.\n\n• Аны каалаган веб серепчиден колдонууга болот.\n• Байланыштарыңыздын камдык көчүрмөсү коопсуз жерде сакталат."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Телефонуңузду жоготсоңуз дагы, байланыштарыңызды жоготпоңуз: онлайн кызмат менен синхрондоңуз."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Эсеп кошуу"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Жаңы байланыш бэкапталган жок. Байланыштарды онлайн бэкаптаган эсеп кошолубу?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Жаңы байланыштар <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ичине сакталат."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Жаңы байланыштар үчүн демейки каттоо эсебин тандаңыз:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Жаңы байланыш кошуу"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Байланышты түзөтүү"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Жерлигиликтүү сактоо"</string>
-    <string name="add_account" msgid="8201790677994503186">"Эсеп кошуу"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Жаңы эсеп кошуу"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Берилиштер корлорунун файлдарын экспорттоо"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"жаңы байланыш кошуу"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Дагы көрүү"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Азыраак көрүү"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Бардыгын көрүү"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Акыркы"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Жөнүндө"</string>
-    <string name="send_message" msgid="8938418965550543196">"Билдирүү жөнөтүү"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Жеке көчүрмөнү алуу..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Кечээ"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Эртең"</string>
-    <string name="today" msgid="8041090779381781781">"Бүгүн"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Бүгүн саат <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Эртең саат <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Аталышы жок окуя)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Орнотуу"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Иштеген жери"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Ылакап аты"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Кыска жазуу"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Вебсайт"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Иш-чара"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Мамилелик катышы"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Каттоо эсеби"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Ысымы"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"Электрондук почта"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Сүрөт"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Байланыш түзөткүчүн жайып көрсөтүү үчүн чыкылдатыңыз."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Байланыш түзөткүчүн жыйыштыруу үчүн чыкылдатыңыз."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"жайгашуу ордуна багыттоолор"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"акыркы sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. жооп берүү үчүн чыкылдатыңыз"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"келүүчү"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"чыгуучу"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"жооп берилбей калган"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"акыркы чалуу. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. кайра чалуу үчүн чыкылдатыңыз"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Сиз: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Кимдир-бирөөнүн Hangouts аныктагычы электрондук почта же телефон талаасына киргизилгенде Hangouts жакшыраак иштейт."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Дагы талаалар"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Сүрөттү өзгөртүү"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Түзөткүч ачылбай калды."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Төмөнкүгө сакталууда"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Учурда <xliff:g id="ACCOUNT_NAME">%s</xliff:g> ичине сакталууда. Башка каттоо эсебин тандоо үчүн эки жолу таптаңыз."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Шилтемеленген байланыштар (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Шилтемеленген байланыш</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> байланыш шилтемеленген"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"БАЙЛАНЫШТАРДЫ ШИЛТЕМЕЛӨӨ"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ЖОККО ЧЫГАРУУ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Жупнуска кылса болот</item>
-      <item quantity="one">1 Жупнуска кылса болот</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> шилтемеленген байланыш</item>
-      <item quantity="one">1 шилтемеленген байланыш</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ушул байланыш"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Булар жупнуска болушу мүмкүн"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Бул байланыштар бир эле адам болушу мүмкүн. Аларды жалгыз байланыш кылып бириктирсеңиз болот."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Шилтемеленген байланыштар"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Каттоо эсептериңизден"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Сүрөткө тартуу"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Бардык сүрөттөр"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Сүрөт тандаңыз"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> дегенден"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> жок кылуу"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> жок кылуу"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> дегенден сүрөт белгиленген жк"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> дегенден сүрөт белгиленди"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Белгисиз каттоо эсебинен келген сүрөт тандалган жок"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Белгисиз каттоо эсебинен келген сүрөт тандалды"</string>
-    <!-- no translation found for locale_change_in_progress (1124266507671178413) -->
-    <skip />
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Номер кошуу"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Номерди бөгөттөө"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Номер кошуңуз же байлнш издңз"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгөттөн чыгарылсынбы?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"БӨГӨТТӨН ЧЫГАРУУ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгөттөлсүнбү?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"БӨГӨТТӨӨ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгөттөлдү"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгөттөн чыгарылды"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> - жараксыз."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Чалууну бөгөттөө убактылуу өчүрүлгөн"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Акыркы 48 саат ичинде бул телефондон өзгөчө кырдаал кызматына байланышкандыктан чалууну бөгөттөө өчүрүлдү. 48 сааттык мөөнөтү аяктагандан кийин ал автоматтык түрдө кайра иштетилет."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импорттоо"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Номерлерди көрүү"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Номер кошуу"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Чалууну бөгөттөө 48 саатка өчүрүлгөн"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Шашылыш чалуу аткарылгандыктан өчүрүлгөн."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"КАЙТАРУУ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> мурунтан эле бөгөттөлгөн."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Номерди бөгөттөн чыгаруу"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> байланыш маалыматтары"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импорттолбой калды"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Номерлерди импорттоо"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Күйгүзүү"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
new file mode 100644
index 0000000..a75c84b
--- /dev/null
+++ b/res/values-ky/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Байланыштар"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Байланыштар"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Байланыш кошуу"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Байланыш"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Түз чалуу"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Түз SMS"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Байланышты тандоо"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Байланышка кошуу"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Байланыш тандоо"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Тандоо"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Жаңы байланыш түзүү"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Байланыштарды издөө"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Сүйүктүүлөргө кошуу"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Сүйүктүүлөрдөн алып салуу"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Сүйүктүүлөрдөн чыгарылды"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Сүйүктүүлөргө кошулду"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Өзгөртүү"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Жок кылуу"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Сүрөттү өзгөртүү"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Шилтеме түзүү"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Ажыратуу"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Байланыштарды алып салуу"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Энбелгинин аталышын өзгөртүү"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Энбелгини жок кылуу"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Байланыш кошуу"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Байланыштарды тандоо"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Байланыштарды кошуу"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Энбелгиден алып салуу"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Энбелги түзүү"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Бул байланыш ажыратылсынбы?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Ажыратуу"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Сиз киргизген өзгөртүүлөрдү сактап, бул байланышты бир нече байланышка ажыраткыңыз келеби?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Сактоо жана ажыратуу"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Сиз киргизген өзгөртүүлөрдү сактап, тандалган байланышка бириктиргиңиз келеби?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Сактоо жана бириктирүү"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Байланыштар бириктирилүүдө"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Байланыштар ажыратылууда"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Байланыштыруу"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Бириктирилген байланыштарды көрүү"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Сактоо"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Байланыштрд бириктрүү"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> менен бириктириле турган байланышты тандаңыз."</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Сунушталган байланыштар"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Бардык байланыштар"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> байланыштырылды"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Байланыштар шилтемеленди"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> жок кылынды"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> жана <xliff:g id="NAME_1">%2$s</xliff:g> жок кылынды"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… жок кылынды"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Байланыштар жок кылынды</item>
+      <item quantity="one">Байланыш жок кылынды</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> байланыш</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> байланыш</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> байланыш · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> байланыш · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google каттоо эсебинен"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> каттоо эсбнен"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Шыңгыр коюу"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Үн почтасына которуу"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Үн почтасын өчүрүү"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Бул байланыш окуу үчүн гана арналган. Аны жок кылуу мүмкүн эмес, бирок аны жашырып койсо болот."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Байланышты жашыруу"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Бул байланыштагы окуу үчүн гана арналган каттоо эсептери жашырылат, бирок жок кылынбайт."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Бул байланыш жок кылынсынбы?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Тандалган байланыштар жок кылынсынбы?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Окуу үчүн гана арналган каттоо эсебиңизден байланыштарды жок кылуу мүмкүн эмес, бирок аларды жашырып койсо болот."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Жок кылына турган байланыштарда бир нече каттоо эсебинин чоо-жайы бар. Окуу үчүн гана арналган каттоо эсептеринин чоо-жайы жашырылып, жок кылынбайт."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Бул байланыш жок кылынса, анын бир нече каттоо эсебиндеги чоо-жайы өчүп калат."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Бул байланыш жок кылынсынбы?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Жок кылуу"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Мындай байланыш жок."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Байланыш башкы экранга кошулду."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> Башкы экранга кошулду."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Түзмөктө бир да сүрөт жок."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Байланыштын сүрөтү"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Ыңгайлаштырылган энбелгинин аталышы"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Сүрөттү алып салуу"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Байланыштар тизмеңиз бош"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Бул энбелги коюлган бир дагы байланыш жок"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Бул каттоо эсебинде эч кандай байланыш жок"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Байланыштар тизмеңиз бош"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> сакталды"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Байланыш сакталды"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Байланыштар ажыратылды"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Байланыштын өзгөрүүлөрү сакталган жок."</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Байланыш ажыратылбай койду."</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Байланыш шилтемеленбей койду."</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Байланышты сактоодогу ката."</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Байланыштын сүрөт өзгөрүүлөрү сакталган жок."</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Энбелги жүктөлгөн жок"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Энбелги жок кылынды"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Энбелги түзүлдү"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Энбелги түзүлгөн жок"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Энбелги жаңыртылды"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Энбелгиден алынып салынды"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Кошулду"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Энбелгинин өзгөрүүлөрүн сактай алган жок."</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Мындай энбелги бар"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Айрым байланыштардын электрондук почталары жок."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Айрым байланыштардын телефон номерлери жок."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Электрондук кат жөнөтүү"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Билдирүү жөнөтүү"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Байланыштарды тандоо"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Жөнөтүү"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Байланыштар жок"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Байланыштарга \"<xliff:g id="EMAIL">%s</xliff:g>\" кошосузбу?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Байланыштарыңыздын аттары"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Мурунку экранга кайтуу үчүн чыкылдатыңыз"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Телефон номерин кошуу"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Электрондук почта дарегин кошуу"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Бул ишти аткаруучу эч бир колдонмо табылган жок."</string>
+    <string name="menu_share" msgid="943789700636542260">"Бөлүшүү"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Байланыштарга кошуу"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Кошуу"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other"> байланышты бөлүшүү</item>
+      <item quantity="one"> байланышты бөлүшүү</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Каттоо эсебин тандоо"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Энбелги түзүү"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Энбелгинин аталышын өзгөртүү"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Энбелгинин аталышы"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Энбелгинин аталышы"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Үн чат"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> байланышы"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> каттоо эсеби"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Сүрөт тартуу"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Жаңы сүрөт тартуу"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Сүрөт тандаңыз"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Жаңы сүрөт тандоо"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Изделүүдө…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Энбелги"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Жок"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Артка"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"жабуу"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Тандалган байланышты түзөтүүгө өтөсүзбү? Буга чейин киргизилген маалыматтар көчүрүлөт."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> каталогу"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Жөндөөлөр"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Жөндөөлөр"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Жардам жана жооп пикир"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g> , <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Телефон номери"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Байланыштарга кошуу"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Жабуу"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Жылы көрсөтүлсүн"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Каттоо эсебин кошуу"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Импорттоо"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Жаңысын түзүү..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" энбелгиси өчүрүлсүнбү? (Байланыштардын өзү өчпөйт)."</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Башка байланышка шилтемелөөдөн мурун, байланыштын атын териңиз."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Алмашуу буферине көчүрүү"</string>
+    <string name="set_default" msgid="4417505153468300351">"Негизги кылуу"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Негизгини тазалоо"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"SMS көчүрүлдү"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Өзгөрүүлөр жарактан чыгарылсынбы?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Жарактан чыгаруу"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Баш тартуу"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Өзгөртүүлөр жокко чыгарылсынбы?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Байланыштардан издеп көрүңүз"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Байланыштарды алып салуу"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Менин жергиликтүү профайлым"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Менин <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайлым"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Байланыштарыңыздын камдык көчүрмөсүн Google\'га сактоо үчүн каттоо эсебин кошуңуз."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Жаңы байланыштар <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ичине сакталат."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Жаңы байланыштар үчүн демейки каттоо эсебин тандаңыз:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Жаңы байланыш түзүү"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Байланышты түзөтүү"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Жөн гана көрүү"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Түзөтүү үчүн байланышты тандаңыз"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Бириктирилген байланыштар"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Кошуу"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Ажыратуу"</string>
+    <string name="add_account" msgid="8201790677994503186">"Кошуу"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Жаңы эсеп кошуу"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Берилиштер корлорунун файлдарын экспорттоо"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Жаңы байланыш түзүү"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Дагы көрүү"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Азыраак көрүү"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Акыркы"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Байланыш жөнүндө"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Жеке көчүрмөсүн түзүү…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Эртең"</string>
+    <string name="today" msgid="8041090779381781781">"Бүгүн"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Бүгүн саат <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Эртең саат <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Аталышы жок окуя)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Коюу"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Иштеген жери"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Ылакап аты"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Кошумча маалымат"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Вебсайт"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Иш-чара"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Мага ким болот"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Ысымы"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Электрондук почта"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"жайгашуу ордуна багыттоолор"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"акыркы sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. жооп берүү үчүн чыкылдатыңыз"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"келүүчү"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"чыгуучу"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"жооп берилбей калган"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"акыркы чалуу. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. кайра чалуу үчүн чыкылдатыңыз"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Сиз: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Калган талааларды көрсөтүү"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Байланыштын сүрөтүн өзгөртүү"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Байланыштын сүрөтүн кошуу"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Байланыштын сүрөтү"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Түзөткүч ачылбай калды."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Төмөнкүгө сакталууда"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Байланыш маалыматын түзөтүүгө болбойт: <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"БАЙЛАНЫШТАРДЫ ШИЛТЕМЕЛӨӨ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ЖОК"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ушул байланыш"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Булар жупнуска болушу мүмкүн"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Бул байланыштар бир эле адам болушу мүмкүн. Аларды жалгыз байланыш кылып бириктирсеңиз болот."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> жок кылуу"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> жок кылуу"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Сунуштар"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Жаңы"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Чабыттоо суурмасын ачуу"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Чабыттоо суурмасын жабуу"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> энбелгиси"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Энбелгилер"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Каттоо эсептери"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Бириктирилген таржымалды көрүү"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Иш-чаралар жана билдирүүлөр"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Иш-чаралар"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Билдирүүлөр"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Сунуштар"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Байланыштар менен иштөө ыңгайлуу болушу үчүн аларды иреттеңиз"</string>
+    <string name="undo" msgid="1425165101664071422">"Кайтаруу"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> чалуу"</string>
+    <string name="call_home" msgid="1990519474420545392">"Үйгө чалуу"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Мобилдик түзмөккө чалуу"</string>
+    <string name="call_work" msgid="5328785911463744028">"Жумушка чалуу"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Жумуш факсына чалуу"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Үй факсына чалуу"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Пейджерге чалуу"</string>
+    <string name="call_other" msgid="8563753966926932052">"Чалуу"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Кайра чалуу номерине чалуу"</string>
+    <string name="call_car" msgid="3280537320306436445">"Автомобилдин номерине чалуу"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Компаниянын негизги номерине чалуу"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN телефонуна чалуу"</string>
+    <string name="call_main" msgid="6082900571803441339">"Негизги номерге чалуу"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Факска чалуу"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Радио телефонго чалуу"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Телекске чалуу"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD номерине чалуу"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Жумуштун мобилдик түзмөгүнө чалуу"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Жумуш пейджерине чалуу"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> чалуу"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS номерине чалуу"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Чалуу)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> номерине SMS жөнөтүү"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Үйдүн телефонуна SMS жөнөтүү"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Мобилдик телефонго SMS жөнөтүү"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Жумуш телефонуна SMS жөнөтүү"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Жумуш факсына SMS жөнөтүү"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Үй факсына SMS жөнөтүү"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Пейжерге SMS жөнөтүү"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS жөнөтүү"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Кайра чалуу номерине SMS жөнөтүү"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Автомобилдин телефон номерине SMS жөнөтүү"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Компаниянын негизги номерине SMS жөнөтүү"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN телефонуна SMS жөнөтүү"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Негизги телефонго SMS жөнөтүү"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Факска SMS жөнөтүү"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Радио телефонго SMS жөнөтүү"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Телекске SMS жөнөтүү"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD телефонго SMS жөнөтүү"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Жумуштун мобилдик телефонуна SMS жөнөтүү"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Жумуштун пейжерине SMS жөнөтүү"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> номерине SMS билдирүү жөнөтүү"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS телефонго SMS жөнөтүү"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Билдирүү жөнөтүү)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Видео чалуу"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Көп чалынгандар тизмеси тазалансынбы?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Байланыштар жана Телефон колдонмолорунан көп байланышкан адамдар тизмесин тазалап, даректүү жеке жөндөөлөр тууралуу билүү үчүн электрондук почта колдонмолорун иштетиңиз."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Көп чалынгандар тизмеси тазаланууда…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Жеткиликтүү"</string>
+    <string name="status_away" msgid="1838861100379804730">"Чыгып кетти"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Бош эмес"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Башка"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Каталог"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Жумуш профилиндеги байланыштар китепчеси"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Бардык байланыштар"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> үчүн тез байланышуу"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Аты жок)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Көп байланышып турган"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Телефон номерлери бар бардык байланыштар"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Жумуш профилиндеги байланыштар"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Жаңыртууларды көрүү"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Түзмөк"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM-карта"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Аты"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Ылакап аты"</string>
+    <string name="name_given" msgid="4280790853455320619">"Аты"</string>
+    <string name="name_family" msgid="7466985689626017037">"Фамилиясы"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Атынын префикси"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Атасынын аты"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Атынын суффикси"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Аты-жөнү (угулушу боюнча)"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Аты (угулушу боюнча)"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Атасынын аты (угулушу боюнча)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Фамилиясы (угулушу боюнча)"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Телефон"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Электрондук почта"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Почта дареги"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Уюм"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Мамиле"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Өзгөчө күн"</string>
+    <string name="sms" msgid="1756857139634224222">"SMS билдирүү жөнөтүү"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Почта дареги"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Компания"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Аталышы"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Эскертүүлөр"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Өздүк"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Вебсайт"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Энбелгилер"</string>
+    <string name="email_home" msgid="8573740658148184279">"Үйдүн электрондук почта дарегине билдирүү жөнөтүү"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Мобилдик түзмөккө электрондук почта билдирүүсүн жөнөтүү"</string>
+    <string name="email_work" msgid="2807430017302722689">"Жумуштун электрондук почтасына билдирүү жөнөтүү"</string>
+    <string name="email_other" msgid="3454004077967657109">"Электрондук почта"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> электрондук кат жөнөтүү"</string>
+    <string name="email" msgid="5668400997660065897">"Электрондук почта"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Көчөсү"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Шаары"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Штаты"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ZIP коду"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Өлкөсү"</string>
+    <string name="map_home" msgid="1243547733423343982">"Үй дарегин көрүү"</string>
+    <string name="map_work" msgid="1360474076921878088">"Жумуш дарегин көрүү"</string>
+    <string name="map_other" msgid="3817820803587012641">"Дарегин көрүү"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> дарегиин көрүү"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM аркылуу маектешүү"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live аркылуу маектешүү"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo аркылуу маектешүү"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype аркылуу маектешүү"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ аркылуу маектешүү"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk аркылуу маектешүү"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ аркылуу маектешүү"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber аркылуу маектешүү"</string>
+    <string name="chat" msgid="9025361898797412245">"Маек"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"жок кылуу"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Ысымдар жазылган талаалардан көбүрөөк көрсөтүү"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Адамдын аты-жөнү жазылган талааларды жыйыштыруу"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Ысымдардын транскрипциясы жазылган талаалардан көбүрөөк көрсөтүү"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Ысымдардын транскрипциясы жазылган талааларды жыйыштыруу"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Жайып көрсөтүү"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Жыйыштыруу"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Жайылып көрсөтүлдү"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Жыйыштырылды"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Бардык байланыштар"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Белгиленген байланыштар"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Ыңгайлаштыруу"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Байланыш"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Бардык башка байланыштар"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Бардык байланыштар"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Шайкештирүү тобун өчүрүү"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Шайкештирүү тобуна кошуу"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Дагы топтор…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\" тобун шайкештирүүдөн алып салуу топко кирбеген башка байланыштарды дагы шайкештирүүдөн чыгарып салат."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Көрсөтүү параметрлери сакталууда…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Ылайыкташтырылган көрүнүш"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Өткөрүлүп алынган байланыштар төмөнкүгө сакталсын:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-карта"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"<xliff:g id="SIM_NAME">%1$s</xliff:g> SIM-картасы"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d байланыш</item>
+      <item quantity="one">1 байланыш</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> байланыш • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> байланыш • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"VCF-файл"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Импорттоого эч нерсе жок"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard байланыштары импорттолсунбу?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> файлын импорттоо токтотулсунбу?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> файлын экспорттоо токтотулсунбу?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard файлдарын импорттоо/экспорттоо токтотулган жок."</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Белгисиз ката."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ачылбай жатат: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Экспорттоо башталбай жатат: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Экспортко жарактуу байланыш жок."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Керектүү уруксатты өчүрүп койгонсуз."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Экспорттоо учурунда ката кетти: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O катасы"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Эстутум жетишсиз. Файл өтө чоң окшойт."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Бул формат колдоого алынбайт."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> өткөрүлүп бүттү."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Байланыштар өткөрүлүп бүттү."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Байланыштар өткөрүлүп берилди. Байланыштар менен бөлүшүү үчүн эскертмени басыңыз."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Байланыштар менен бөлүшүү үчүн таптап коюңуз."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> файлын экспорттоо токтотулду."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Байланыштын чоо-жайы өткөрүлүп берилүүдө"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Байланыштын дайындары өткөрүлүп берилүүдө."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Дайындар базасынын маалыматтары алынбай койду."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Экспортко жарактуу байланыш жок."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard түзүүчү туура эмес иштеп баштады."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Экспорттой албады"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Байланыш маалыматтары өткөрүлүп берилген жок.\nСебеби: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> өткөрүлүп алынууда"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard файдарынын дайындарын окуу мүмкүн эмес"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g> vCard импорттолуп бүттү"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> файлын импорттоо токтотулду"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> бир аздан кийин өткөрүлүп алынат."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Файл бир аздан кийин өткөрүлүп алынат."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard файлдарынын өткөрүп берүү талабы четке кагылды. Кийинчерээк кайра аракет кылып көрүңүз."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Байланыштар жакында өткөрүлүп берилет."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard файлдарын өткөрүп берүү талабы четке кагылды. Кийинчерээк кайра аракет кылып көрүңүз."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"байланыш"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard файл(дар)ы жергиликтүү убактылуу сактагычка кэштелип жатат. Андан соң, өткөрүп алуу башталат."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard файлдары өткөрүлүп алынган жок."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC аркылуу"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кэштөө"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g> өткөрүп алынууда"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf файлына өткөрүп берүү"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Төмөнкү боюнча иргөө"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Фонетикалык аты"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Ар дайым көрсөтүлсүн"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Жок болсо жашыруу"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Аты"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Фамилиясы"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Атты жазуунун форматы"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Аты биринчи жазылсын"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Фамилиясы биринчи жазылсын"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Каттоо эсептер"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Жаңы байланыштар үчүн демейки каттоо эсеби"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Өзүм жөнүндө маалымат"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Профилди жөндөө"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Байланыштар жөнүндө"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Сүйүктүү байланыштарды бөлүшүү"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Бардык байланыштар менен бөлүшүү"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Байланыштар бөлүшүлбөй койду."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Байланыштарды өткөрүп берүү"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Байланыштарды импорттоо"</string>
+    <string name="share_error" msgid="948429331673358107">"Бул байланышты бөлүшүү мүмкүн эмес."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Бөлүшө турган байланыш жок."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Көрсөтүлүүчү байланыштар"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Көрсөтүлүүчү байланыштар"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Көрүнүштү ыңгайлаштыруу"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Сактоо"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Байланыштарды издеңиз"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Cүйүктүүлөр"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Өткөрүп алуу"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Өткөрүп берүү"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Бөгөттөлгөн номерлер"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> аркылуу"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="SOURCE">%2$s</xliff:g> аркылуу"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"издөөнү токтотуу"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Издөөнү тазалоо"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Каттоо эсеби"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Чалууларда ар дайым бул колдонулсун"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Кыска жазуу менен чалуу"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Чалуу менен жөнөтүлө турган кыска жазууну териңиз…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ЖӨНӨТҮҮ ЖАНА ЧАЛУУ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Куралма версиясы"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Баштапкы коду ачык программалардын уруксаттамалары"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Баштапкы коду ачык программалардын уруксаттамаларынын чоо-жайы"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Купуялык саясаты"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Тейлөө шарттары"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Баштапкы коду ачык программалардын уруксаттамалары"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"URL ачылбай койду."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> белгиленди"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> белгиленген жок"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Видео чалуу"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Жок кылуу"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Эллипс"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> мүн. <xliff:g id="SECONDS">%2$s</xliff:g> сек"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> с <xliff:g id="MINUTES_1">%2$s</xliff:g> мүн <xliff:g id="SECONDS">%3$s</xliff:g> сек"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Кыска жол өчүрүлдү"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Байланыш алынып салынган"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Өткөрүп алуу"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Байланыштарды тандоо"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM-картаңызда байланыштар жок."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Байланыш мурунтан эле тизмеңизде"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">SIM-картадан <xliff:g id="COUNT">%d</xliff:g> байланыш өткөрүлүп алынды</item>
+      <item quantity="one">SIM-картадан 1 байланыш өткөрүлүп алынды</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-картадагы байланыштар өткөрүлүп алынган жок"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM-картадан өткөрүп алуу"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Жокко чыгаруу"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Түзмөктүн авто шайкештештирүү функциясы өчүрүлгөн. Күйгүзүү үчүн тийип коюңуз."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Этибарга албоо"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Каттоо эсебинин шайкештештирүү функциясы өчүрүлгөн. Күйгүзүү үчүн тийип коюңуз."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Автосинхрондоштуруу күйгүзүлсүнбү?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Байланыштарыңызда гана эмес бардык колдонмолордо жана каттоо эсептеринде жасалган өзгөртүүлөр желе интерфейси менен башка түзмөктөрүңүздүн ортолорунда мезгил-мезгили менен жаңыртылып турат."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Күйгүзүү"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Байланыш жок"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-карта"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Дагы көрсөтүү"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM-картадан өткөрүп алуу аяктады"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Импорттолбой калды"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM-картадан байланыштар импорттолбой койду"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM-картадан өткөрүлүп алынууда"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index d975093..067f88c 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -14,8 +14,36 @@
      limitations under the License.
 -->
 <resources>
-    <dimen name="dialpad_digits_height">66dip</dimen>
-    <dimen name="dialpad_digits_text_size">28sp</dimen>
-    <dimen name="dialpad_digits_margin_bottom">50dip</dimen>
+    <!-- Copied from java/com/google/android/assets/launchscreens/res/values-land/dimens.xml -->
+    <!-- Adjusted higher to deal with the smaller total height we have to deal with on phones -->
+    <dimen name="launchscreens_product_logo_bottom">48dp</dimen>
+
     <dimen name="editor_type_label_width">120dip</dimen>
+
+    <!-- Top padding for the image for empty group view-->
+    <dimen name="empty_group_view_image_padding_top">0dp</dimen>
+
+    <!-- Height for the image for empty group and main view-->
+    <dimen name="empty_view_image_height">150dp</dimen>
+
+    <!-- Top padding for the text for empty group view-->
+    <dimen name="empty_group_view_text_padding_top">14dp</dimen>
+
+    <!-- Gap b/w image view and top of the screen in empty main view -->
+    <dimen name="empty_home_view_image_offset">151dp</dimen>
+
+    <!-- Top padding for the text for empty main view -->
+    <dimen name="empty_home_view_text_padding_top">16dp</dimen>
+
+    <!-- Extra margin above image in empty account view -->
+    <dimen name="empty_account_view_image_offset">0dp</dimen>
+
+    <!-- Margin offset b/w the image top and app bar bottom for no account empty view -->
+    <dimen name="contacts_no_account_empty_image_offset">151dp</dimen>
+
+    <!-- Width for the image for contacts no account empty view -->
+    <dimen name="contacts_no_account_empty_image_width">150dp</dimen>
+
+    <!-- Top padding for the text for no account empty view -->
+    <dimen name="contacts_no_account_empty_text_padding_top">16dp</dimen>
 </resources>
diff --git a/res/values-land/donottranslate_config.xml b/res/values-land/donottranslate_config.xml
deleted file mode 100644
index 462015a..0000000
--- a/res/values-land/donottranslate_config.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2011, 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.
-*/
--->
-
-<resources>
-    <bool name="config_show_group_action_in_action_bar">true</bool>
-</resources>
diff --git a/res/values-land/integers.xml b/res/values-land/integers.xml
index 08e1fe3..bc490bb 100644
--- a/res/values-land/integers.xml
+++ b/res/values-land/integers.xml
@@ -14,11 +14,15 @@
      limitations under the License.
 -->
 <resources>
-    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
-    <integer name="contact_tile_column_count_in_favorites">5</integer>
-
-    <integer name="contact_tile_column_count">4</integer>
-
     <!-- Number of lines the QuickContact title can have -->
     <integer name="quickcontact_title_lines">2</integer>
+
+    <!-- Top margin ratio for the image for empty group view -->
+    <integer name="empty_group_view_image_margin_divisor">12</integer>
+
+    <!-- Top margin ratio for the image for empty account view -->
+    <integer name="empty_account_view_image_margin_divisor">6</integer>
+
+    <!-- The number of characters in the snippet before we need to tokenize and ellipse. -->
+    <integer name="snippet_length_before_tokenize">60</integer>
 </resources>
diff --git a/res/values-land/styles.xml b/res/values-land/styles.xml
deleted file mode 100644
index 341bc1f..0000000
--- a/res/values-land/styles.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-<resources>
-    <style name="ConfirmAddDetailViewStyle">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">match_parent</item>
-    </style>
-
-    <style name="ConfirmAddDetailHeaderViewStyle">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">0dip</item>
-        <item name="android:layout_weight">1</item>
-    </style>
-
-</resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
deleted file mode 100644
index 5089d23..0000000
--- a/res/values-lo-rLA/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"ເບິ່ງລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"ແກ້ໄຂລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
-    <string name="contactsList" msgid="8661624236494819731">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"ໂທຫາໂດຍກົງ"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"ສົ່ງຂໍ້ຄວາມຫາໂດຍກົງ"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"ເລືອກທາງລັດລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"ເລືອກໝາຍເລກເພື່ອໂທ"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"ເລືອກເບີເພື່ອສົ່ງຂໍ້ຄວາມ"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"ເພີ່ມໃສ່​ລາຍຊື່​ຜູ່ຕິດຕໍ່"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ເລືອກລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
-    <string name="starredList" msgid="4817256136413959463">"ໝາຍດາວແລ້ວ"</string>
-    <string name="frequentList" msgid="7154768136473953056">"ເລື້ອຍໆ"</string>
-    <string name="strequentList" msgid="5640192862059373511">"ລາຍການທີ່ມັກ"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"ລາຍລະອຽດລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"ແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"ແກ້ໄຂກຸ່ມ"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"ສ້າງກຸ່ມ"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"ກ່ຽວ​ກັບ"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"ອັບເດດ"</string>
-    <string name="searchHint" msgid="8482945356247760701">"ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"ເພີ່ມເປັນລາຍການທີ່ມັກ"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"ລຶບອອກຈາກລາຍການທີ່ມັກ"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"​ລຶບ​ອອກ​ຈາກ​ລາຍ​ການ​ທີ່​ມັກ​ແລ້ວ"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"​ເພີ່ມ​ໃສ່​ລາຍ​ການ​ທີ່​ມັກ"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"ແກ້ໄຂ"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"ລຶບ"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ປ່ຽນຮູບ"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ວາງໃສ່ໜ້າຈໍຫຼັກ"</string>
-    <string name="menu_call" msgid="3992595586042260618">"ໂທຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"ສົ່ງຂໍ້ຄວາມຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"ບໍ່ລິ້ງ"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"ແກ້ໄຂ"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"ລຶບ"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"ເພີ່ມເປັນລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ເພີ່ມກຸ່ມ"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"ຖອນ​ລິ້ງລາຍຊື່ຕິດຕໍ່ນີ້ໄປ​ໃສ່ຫຼາຍລາຍຊື່ຕິດຕໍ່ບໍ?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ບໍ່ລິ້ງ"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ທ່ານ​ຢາກ​ຈະ​ບັນ​ທຶກ​ການ​ປ່ຽນ​ແປງ​ທີ່​ທ່ານ​ປ່ຽນ​ແປງ​ແລ້ວ ແລະ ຖອນລິ້ງ​​ລາຍ​ຊື່​ຕິດ​ຕໍ່ນີ້​ໄປ​ໃສ່​ຫຼາຍ​ລາຍ​ຊື່​ຕິດ​ຕໍ່ບໍ?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"ບັນ​ທຶກ ແລະ ຖອນ​ລິ້ງ"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"ທ່ານ​ຢາກ​ຈະ​ບັນ​ທຶກ​ການ​ປ່ຽນ​ແປງ​ທີ່​ທ່ານ​ປ່ຽນ​ແປງ​ແລ້ວ ແລະ ລິ້ງ​ກັບ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ທີ່​ເລືອກ​ໄວ້​ແລ້ວ​ບໍ?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"ບັນ​ທຶກ ແລະ ລິ້ງ"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"​ລິ້ງ"</string>
-    <string name="menu_save" msgid="1727844363591825909">"ບັນທຶກ"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ລິ້ງ​ລາຍ​ຊື່​​ຜູ້ຕິດ​ຕໍ່"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ທ່ານຕ້ອງການລິ້ງກັບ <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"ສະແດງລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ແນະນຳ"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ລິ້ງ​ແລ້ວ"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຖືກ​ລຶບ​ແລ້ວ</item>
-      <item quantity="one">ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຖືກ​ລຶບ​ແລ້ວ</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ຕັ້ງສຽງຣິງໂທນ"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ໂອນທຸກສາຍໄປຂໍ້ຄວາມສຽງ"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຈາກ​ບັນ​ຊີ​ອ່ານ​ເທົ່າ​ນັ້ນ​ບໍ່​ສາ​ມາດ​ລຶບ​ໄດ້, ແຕ່​ພວກ​ມັນ​ຖືກ​ເຊື່ອງ​ໄດ້."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"ເຊື່ອງ"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"ລາຍຊື່ຕິດ​ຕໍ່ທີ່​ຈະ​ຖືກ​ລຶບ​ມີລາຍ​ລ​ະ​ອຽດຈາກຫຼາຍບັນຊີ. ລາຍ​ລະ​ອຽດຈາກບັນຊີອ່ານເທົ່ານັ້ນ ຈະຖືກເຊື່ອງໄວ້, ບໍ່ຖືກລຶບອອກ."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"ທ່ານ​ຈຳ​ເປັນ​ຕ້ອງ​ມີ​ຢ່າງ​ໜ້ອຍ​ສອງ​ລາຍ​ຊື່​ເລືອກ​ໄວ້ ເພື່ອ​ດຳ​ເນີນລິ້ງ."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"ລິ້ງ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ທີ່​ເລືອກ​ໄວ້​ບໍ?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"​ລິ້ງ"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"ລຶບລາຍ​ຊື່​ຕິດ​ຕໍ່​ນີ້ບໍ?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ລຶບ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ທີ່​ເລືອກ​ໄວ້?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຈາກ​ບັນ​ຊີ​ອ່ານ​ເທົ່າ​ນັ້ນ​ບໍ່​ສາ​ມາດ​ລຶບ​ໄດ້, ແຕ່​ພວກ​ມັນ​ຖືກ​ເຊື່ອງ​ໄດ້."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ລາຍຊື່ຕິດ​ຕໍ່ທີ່​ຈະ​ຖືກ​ລຶບ​ມີ​ລາຍ​ລ​ະ​ອຽດຈາກຫຼາຍບັນຊີ. ລາຍ​ລະ​ອຽດຈາກບັນຊີອ່ານເທົ່ານັ້ນ ຈະຖືກເຊື່ອງໄວ້, ບໍ່ຖືກລຶບອອກ."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ການລຶບລາຍຊື່ຕິດຕໍ່ນີ້ຈະລຶບຂໍ້ມູນຈາກຫຼາຍບັນຊີ."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"ລຶບລາຍ​ຊື່​ຕິດ​ຕໍ່​ນີ້ບໍ?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"​ລຶບ"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"ຍົກເລີກການແກ້ໄຂ"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"ບໍ່ມີລາຍຊື່ຜູ່ຕິດຕໍ່."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"ເພີ່ມລາຍຊື່ຕິດຕໍ່ໃສ່ໜ້າຈໍຫຼັກແລ້ວ."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ເພີ່ມ​ໃສ່​ໜ້າ​ຈໍ​ຫຼັກ​ແລ້ວ."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"ອົງກອນ"</item>
-    <item msgid="7196592230748086755">"ໝາຍເຫດ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ບໍ່ມີຮູບໃນແທັບເລັດທີ່ສາມາດໃຊ້ໄດ້."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ບໍ່ມີຮູບທີ່ສາມາດໃຊ້ໄດ້ໃນໂທລະສັບ."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ຮູບລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ປ້າຍກຳກັບຊື່ກຳນົດເອງ"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ສົ່ງການໂທອອກໄປຫາຂໍ້ຄວາມສຽງໂດຍກົງ"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ລຶບຮູບພາບ"</string>
-    <string name="noContacts" msgid="4955659076981974652">"ບໍ່ມີລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="noGroups" msgid="8614664663561385253">"ບໍ່ມີກຸ່ມ."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"ເພື່ອສ້າງກຸ່ມ ທ່ານຈະຕ້ອງມີບັນຊີກ່ອນ."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ບໍ່ມີຄົນໃນກຸ່ມນີ້."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"ເພື່ອເພີ່ມລາຍຊື່, ກະລຸນາແກ້ໄຂກຸ່ມ."</string>
-    <string name="savingContact" msgid="4075751076741924939">"ກຳລັງບັນທຶກລາຍຊື່ຜູ່ຕິດຕໍ່..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"ບັນທຶກລາຍຊື່ຜູ່ຕິດຕໍ່ແລ້ວ"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"ຖອນ​ລິ້ງ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ແລ້ວ"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"ບໍ່ສາມາດບັນທຶກການແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່ໄດ້."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"ບໍ່​ສາ​ມາດ​ຖອນ​ລິ້ງ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ໄດ້."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"ບໍ່​ສາ​ມາດ​ລິ້ງ​ລາຍ​ຊື່​ຜູ້​ຕິດ​ຕໍ່​ໄດ້."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"ບັນ​ທຶກ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຂັດ​ຂ້ອງ."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"ບໍ່​ສາ​ມາດ​ບັນ​ທຶກ​ການ​ປ່ຽນ​ແປງ​ຮູບ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ໄດ້."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"ບັນທຶກກຸ່ມແລ້ວ."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ບໍ່ສາມາດບັນທຶກການແກ້ໄຂກຸ່ມໄດ້."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ລາຍຊື່ພ້ອມເບີໂທລະສັບ</item>
-      <item quantity="one">ລາຍຊື່ພ້ອມເບີໂທລະສັບ</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ບໍ່ມີລາຍຊື່ທີ່ມີເບີໂທລະສັບ"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ພົບແລ້ວ</item>
-      <item quantity="one">1 ພົບແລ້ວ</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"ບໍ່ມີລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ພົບແລ້ວ</item>
-      <item quantity="one">1 ພົບແລ້ວ</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"ທັງໝົດ"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"​ລາຍ​ການ​ທີ່​ມັກ"</string>
-    <string name="callBack" msgid="5498224409038809224">"ໂທກັບ"</string>
-    <string name="callAgain" msgid="3197312117049874778">"ໂທອີກເທື່ອນຶ່ງ"</string>
-    <string name="returnCall" msgid="8171961914203617813">"ໂທກັບ"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"ເພີ່ມ \"<xliff:g id="EMAIL">%s</xliff:g>\" ໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"ຮູບພາບລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"ບວກ"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"ລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="CURRENT_NUMBER">%s</xliff:g> ຈາກທັງໝົດ  <xliff:g id="TOTAL_NUMBER">%s</xliff:g> ລາຍຊື່"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"ຊື່ຂອງລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານ"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ບໍ່ພົບແອັບຯທີ່ໃຊ້ເພື່ອດຳເນີນການ."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ຄລິກ​ເພື່ອ​ກັບ​ໄປ​ທີ່​ໜ້າຈໍ​ກ່ອນ​ໜ້າ​ນີ້"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ເພີ່ມ​ເບີ​ໂທ​ລະ​ສັບ"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ເພີ່ມອີເມວ"</string>
-    <string name="missing_app" msgid="1466111003546611387">"ບໍ່ພົບແອັບຯທີ່ໃຊ້ເພື່ອດຳເນີນການ."</string>
-    <string name="menu_share" msgid="943789700636542260">"ແບ່ງປັນ"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"​ເພີ່ມ​ໃນ​ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່"</string>
-    <string name="share_via" msgid="563121028023030093">"ແບ່ງປັນລາຍຊື່ຜູ່ຕິດຕໍ່ຜ່ານທາງ"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"ສ້າງກຸ່ມພາຍໃຕ້ບັນຊີ"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"ການສົນທະນາດ້ວຍສຽງ"</string>
-    <string name="video_chat" msgid="1872255818640336072">"ການສົນທະນາດ້ວຍວິດີໂອ"</string>
-    <string name="connections" msgid="8098440723172028350">"ການເຊື່ອມຕໍ່"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"ເພີ່ມການເຊື່ອມຕໍ່"</string>
-    <string name="recent" msgid="2659189233141493004">"ເມື່ອບໍ່ດົນມານີ້"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"ອັບເດດເມື່ອໄວໆນີ້"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ບັນ​ຊີ"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ບໍ່ສາມາດແກ້ໄຂໄດ້ຈາກແອັບຯນີ້."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"ບໍ່ສາມາດແກ້ໄຂໄດ້ໃນອຸປະກອນນີ້."</string>
-    <string name="take_photo" msgid="7496128293167402354">"ຖ່າຍ​ຮູບ"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"ຖ່າຍຮູບໃໝ່"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ເລືອກ​ຮູບ"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"ເລືອກຮູບໃໝ່"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"ລາຍການລາຍຊື່ຜູ່ຕິດຕໍ່ກຳລັງຖືກອັບເດດ."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"ກຳລັງຊອກຫາ..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"ສະແດງສິ່ງທີ່ເລືອກ"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"ສະແດງທັງໝົດ"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"ເລືອກທັງໝົດ"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"ບໍ່ເລືອກທັງໝົດ"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"ເພີ່ມໃໝ່"</string>
-    <string name="add_organization" msgid="7311893231158291197">"ເພີ່ມອົງກອນ"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ວັນທີ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ຊື່ກຸ່ມ"</string>
-    <string name="change_photo" msgid="8530597935483526383">"ປ່ຽນແປງ"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"ຮູບ​ຖ່າຍ​ຕົ້ນ​ຕໍ"</string>
-    <string name="description_star" msgid="2605854427360036550">"ໝາຍດາວ"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"ແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"ລິ້ງລາຍຊື່ຜູ້ຕິດຕໍ່ປະ​ຈະ​ບັນກັບລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ເລືອກ​ໄວ້?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ສະລັບໄປທີ່ການແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ເລືອກ? ຂໍ້ມູນທີ່ທ່ານຂຽນມາຈະຖືກສຳເນົາໄວ້."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"ສຳເນົາໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງຂ້ອຍ"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງຂ້ອຍ"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"ໄດເຣັກທໍຣີ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"ກຳນົດເອງ"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"ການຕັ້ງຄ່າ"</string>
-    <string name="menu_settings" msgid="377929915873428211">"ການຕັ້ງຄ່າ"</string>
-    <string name="menu_help" msgid="1680178646764069976">"ຊ່ວຍ​ເຫຼືອ &amp; ຄຳ​ຕິ​ຊົມ"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ໂຕເລືອກການສະແດງຜົນ"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ເບີໂທລະສັບ"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"ປິດ"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"ລວມ​ປີ​ນຳ"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"ກຳລັງໂຫລດ..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"ສ້າງລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ເພີ່ມບັນຊີ"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"ນຳເຂົ້າລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"ສ້າງ​ກຸ່ມ​ໃໝ່"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"ສ້າງ​ກຸ່ມ​ໃໝ່"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ກຸ່ມ</item>
-      <item quantity="one">1 ກຸ່ມ</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"ລຶບກຸ່ມ \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (ລາຍຊື່ຜູ່ຕິດຕໍ່ຈະບໍ່ຖືກລຶບອອກ.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> ຄົນຈາກ <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ຄົນຈາກ <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ຄົນ</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ຄົນ</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"ພິມຊື່ຂອງລາຍຊື່ຜູ້ຕິດຕໍ່ກ່ອນການລິ້ງກັບລາຍຊື່ອື່ນ."</string>
-    <string name="copy_text" msgid="3257145021583508761">"ສຳເນົາໃສ່ຄລິບບອດ"</string>
-    <string name="set_default" msgid="4417505153468300351">"ຕັ້ງຄ່າເລີ່ມຕົ້ນ"</string>
-    <string name="clear_default" msgid="7193185801596678067">"ລຶບຄ່າເລີ່ມຕົ້ນ"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"ສຳເນົາຂໍ້ຄວາມແລ້ວ"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ຍົກເລີກການແກ້ໄຂຂອງທ່ານ?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"ລຶບ​ຖິ້​ມ"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"ຕັ້ງຄ່າໂປຣໄຟລ໌ຂອງຂ້ອຍ"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"ພິມຊື່ຄົນ"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"ຊື່ກຸ່ມ"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"ໂປຣໄຟລ໌ໃນອຸປະກອນຂອງຂ້ອຍ"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"ໂປຣໄຟລ໌ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ຂອງຂ້ອຍ"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ສະແດງລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດ"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"ລາຍຊື່ຜູ່ຕິດຕໍ່​ຈະ​ເຮັດ​ວຽກ​ໄດ້​ດີ​ຂຶ້ນ​ເມື່ອ​ໃຊ້​ຮ່ວມ​ກັບ​ບັນ​ຊີ Google.\n\n• ເຂົ້າ​ເຖິງ​ໄດ້​ຈາກ​ທຸກ​ໂປຣແກຣມ​ທ່ອງ​ເວັບ.\n• ສຳຮອງ​ຂໍ້ມູນ​ລາຍຊື່ຜູ່ຕິດຕໍ່​ຂອງ​ທ່ານ​ໄວ້​ຢ່າງ​ປອດ​ໄພ."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"ເກັບຮັກສາລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານໄວ້ຢ່າງປອດໄພ ເຖິງແມ່ນວ່າໂທລະສັບຂອງທ່ານຈະເສຍກໍຕາມ ດ້ວຍການຊິ້ງຂໍ້ມູນກັບບໍລິການອອນລາຍ."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ເພີ່ມບັນຊີ"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ລາຍຊື່ຜູ່ຕິດຕໍ່ໃໝ່ຂອງທ່ານຈະບໍ່ຖືກສຳຮອງຂໍ້ມູນ. ທ່ານຕ້ອງການເພີ່ມບັນຊີ ທີ່ສາມາດສຳຮອງຂໍ້ມູນອອນລາຍໄດ້ຫຼືບໍ່?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ໃໝ່​ຈະ​ຖືກ​ບັນ​ທຶກ​ໃສ່ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ເລືອກ​ບັນ​ຊີ​ເລີ່ມຕົ້ນ​ສຳ​ລັບ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ໃໝ່:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"​ເພີ່ມ​ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່​ໃໝ່"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
-    <string name="keep_local" msgid="1258761699192993322">"ຈັດເກັບໃນເຄື່ອງ"</string>
-    <string name="add_account" msgid="8201790677994503186">"ເພີ່ມບັນຊີ"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"ເພີ່ມບັນຊີໃໝ່"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"ສົ່ງອອກໄຟລ໌ຖານຂໍ້ມູນ"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ເພີ່ມ​ລາຍຊື່​ຜູ່​ຕິດຕໍ່"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"​ເບິ່ງ​ເພີ່ມ​ເຕີມ"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"​​ເບິ່ງ​ໜ້ອຍ​ລົງ"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ເບິ່ງ​ທັງ​ໝົດ"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"ບໍ່ດົນມານີ້"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"ກ່ຽວກັບ"</string>
-    <string name="send_message" msgid="8938418965550543196">"ສົ່ງຂໍ້ຄວາມ"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ກຳລັງ​ສ້າງ​ສຳເນົາ​ສ່ວນບຸກຄົນ..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"ມື້​ວານ​ນີ້"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"ມື້ອື່ນ"</string>
-    <string name="today" msgid="8041090779381781781">"ມື້ນີ້"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"ມື້ນີ້ໃນເວລາ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ມື້ອື່ນໃນເວລາ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(ນັດ​ໝາຍບໍ່​ມີ​ຊື່)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"ຕົກລົງ"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"ອົງກອນ"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"ຊື່ຫຼິ້ນ"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"ບັນທຶກ"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"ເວັບໄຊ"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ການນັດໝາຍ"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"ຄວາມສຳພັນ"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"ບັນຊີ"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"ຊື່"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ອີເມວ"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ໂທລະສັບ"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ຮູບພາບ"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"ຄ​ລິກ​ເພື່ອ​ຂະ​ຫຍາຍເຄື່ອງກວດ​ແກ້​ລາຍ​ຊື່​ຕິດ​ຕໍ່."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"ຄ​ລິກ​ເພື່ອ​ຫຍໍ້​ເຄື່ອງກວດ​ແກ້​ລາຍ​ຊື່​ຕິດ​ຕໍ່."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"​ເສັ້ນ​ທາງ​ໄປ​ຫາ​ສະ​ຖານ​ທີ່"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS ຫຼ້າ​ສຸດ. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ຄລິກ​ເພື່ອ​ຕອບ​ກັບ"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ສາຍ​ໂທ​ເຂົ້າ"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ສາຍ​ໂທ​ອອກ"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ບໍ່​ໄດ້​ຮັບ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"ການ​ໂທຫຼ້າ​ສຸດ. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ຄລິກ​ເພື່ອ​ໂທ​ກັບ"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"​ທ່ານ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts ເຮັດ​ວຽກ​ໄດ້​ດີ​ຂຶ້ນ ເມື່ອ​ທ່ານ​ປ້ອນ​ຕົວ​ລະ​ບຸ​ Hangouts ຂອງ​ບຸກ​ຄົນ​ໃສ່​ບ່ອນ​ໃສ່ອີເມວ ຫຼື​ບ່ອນ​ໃສ່​ໂທ​ລະ​ສັບ​ຂອງ​ທ່ານ."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"ເຂດໃສ່ຂໍ້ມູນເພີ່ມເຕີມ"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ປ່ຽນຮູບ"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"ເປີດ​ເຄື່ອງ​ຕັດ​ຕໍ່​ບໍ່​ສຳ​ເລັດ."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"ກຳ​ລັງ​ບັນ​ທຶກ​ໃສ່"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"ປະ​ຈຸ​ບັນ​ກຳ​ລັງ​ບັນ​ທຶກ​ໃສ່ <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. ແຕະ​ສອງ​ເທື່ອ​ ເພື່ອ​ເລືອກ​ບັນ​ຊີອື່ນ."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">ລາຍ​ຊື່​ຕິດ​ຕໍ່​ລິ້ງ​ແລ້ວ (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">ລາຍ​ຊື່​ຕິດ​ຕໍ່​ລິ້ງ​ແລ້ວ</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> ລາ​ຍ​ຊື່​ຕິດ​ຕໍ່​ລິ້ງ​ແລ້ວ"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ລິ້ງ​ລາຍ​ຊື່​ຕິດ​ຕໍ່"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ຍົກ​ເລີກ​"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ການ​ຊ້ຳ​ກັນ​ທີ່​ເປັນ​ໄປ​ໄດ້</item>
-      <item quantity="one">1 ການ​ຊ້ຳ​ກັນ​ທີ່​ເປັນ​ໄປ​ໄດ້</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ລາຍ​ຊື່​ຕິດ​ຕໍ່​ລິ້ງ​ແລ້ວ</item>
-      <item quantity="one">1 ລາຍ​ຊື່​ຕິດ​ຕໍ່​ລິ້ງ​ແລ້ວ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ນີ້"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ເປັນ​ໄປ​ໄດ້​ວ່າມີ​ການ​ຊ້ຳ​ກັນ"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ເຫຼົ່າ​ນີ້​ອາດ​ຈະ​ເປັນ​ຄົນ​ດຽວ​ກັນ. ທ່ານ​ສາ​ມາດ​ລິ້ງ​ພວກ​ມັນ​ເຂົ້າ​ກັນ​ເປັນ​ບັນ​ຊີ​ດຽວ​ໄດ້."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ລິ້ງ​ແລ້ວ"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"ຈາກ​ບັນ​ຊີ​ຂອງ​ທ່ານ"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ຖ່າຍ​ຮູບ"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"ຮູບທັງໝົດ"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ເລືອກ​ຮູບ"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"ຈາກ <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"ລຶບ <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"ລຶບ <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"ຮູບຖ່າຍ​ຈາກ <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>ບໍ່​ໄດ້​ຮັບ​ການກວດ"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"ຮູບຖ່າຍ​ຈາກ <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>ໄດ້​ຮັບ​ການກວດ​ແລ້ວ"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"ບໍ່ໄດ້ໝາຍເອົາຮູບຖ່າຍຈາກບັນຊີທີ່ບໍ່ຮູ້ຈັກແລ້ວ"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"ໝາຍເອົາຮູບຖ່າຍຈາກບັນຊີທີ່ບໍ່ຮູ້ຈັກແລ້ວ"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"ລາຍຊື່ຜູ່ຕິດຕໍ່ກຳລັງຖືກອັບເດດ ຕາມການປ່ຽນແປງຂອງພາສາ.\n\nກະລຸນາລໍຖ້າ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ເພີ່ມໝາຍເລກ"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"ບ​ລັອກ​ໝາຍ​ເລກ"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"ເພີ່ມ​ເບີ​ໂທ​ລະ​ສັບ ຫຼື ຊອກ​ຫາ​ລາຍ​ຊື່​ຕິດ​ຕໍ່"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"ປົດ​ບ​ລັອກ <xliff:g id="NUMBER">%1$s</xliff:g> ບ​ໍ?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"​ປົດ​ບລັອກ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"ບ​ລັອກ <xliff:g id="NUMBER">%1$s</xliff:g> ບໍ?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ບລັອກ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກບ​ລັອກໄວ້​ແລ້ວ"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກບ​ລັອກໄວ້​ແລ້ວ"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ບໍ່ຖືກຕ້ອງ."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ການບ​ລັອກ​ສາຍ​ໂທ​ປິດ​ຊົ່ວ​ຄາວ"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ການບ​ລັອກ​ສາຍ​ໂທ​ຖືກ​ປິດ​ໃຊ້​ງານ​ແລ້ວ ເພາະ​ວ່າ​ທ່ານ​ໄດ້​ຕິດ​ຕໍ່​ຫາ​ຝ່າຍ​ບໍ​ລິ​ການ​ສຸກ​ເສີນ​ຈາກ​ໂທ​ລະ​ສັບ​ນີ້​ພາຍ​ໃນ 48 ຊົ່ວ​ໂມງ​ສຸດ​ທ້າຍ. ມັນ​ຈະ​ຖືກ​ເປີດ​ໃຊ້​ງານ​ອີກ​ໂດຍ​ອັດ​ຕະ​ໂນ​ມັດ ເມື່ອ​ໝົດ​ໄລ​ຍະ 48 ຊົ່ວ​ໂມງ​ໄປ​ແລ້ວ."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ນໍາເຂົ້າ"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ເບິ່ງ​ຕົວ​ເລກ"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ເພີ່ມໝາຍເລກ"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ການບ​ລັອກ​ສາຍ​ໂທ​ຖືກ​ປິດ​ໃຊ້​ງານ​ແລ້ວ​ເປັນ​ເວ​ລາ 48 ຊົ່​ວ​ໂມງ"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"ປິດ​ໃຊ້​ງານ​ແລ້ວ ເພາະ​ວ່າ​ໄດ້​ມີ​ການ​ໂທ​ສຸກ​ເສີນ."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ບໍ່​ເຮັດ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກ​ບ​ລັອກ​ແລ້ວ."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ປົດ​ບ​ລັອກ​ໝາຍ​ເລກ"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"ລາຍລະອຽດ​ລາຍຊື່​ຜູ່ຕິດຕໍ່​ສຳລັບ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ນຳ​ເຂົ້າ​ລົ້ມ​ເຫລວ"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ນຳ​ຕົວ​ເລກ​ເຂົ້າ"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ເປີດ​"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
new file mode 100644
index 0000000..1962bd8
--- /dev/null
+++ b/res/values-lo/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"ລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="contactsList" msgid="8661624236494819731">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"ເພີ່ມລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"ໂທຫາໂດຍກົງ"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"ສົ່ງຂໍ້ຄວາມຫາໂດຍກົງ"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"ເພີ່ມໃສ່​ລາຍຊື່​ຜູ່ຕິດຕໍ່"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"ເລືອກ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ສ້າງລາຍຊື່ຜູ້ຕິດຕໍ່ໃໝ່"</string>
+    <string name="searchHint" msgid="8482945356247760701">"ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ເພີ່ມເປັນລາຍການທີ່ມັກ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ລຶບອອກຈາກລາຍການທີ່ມັກ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"​ລຶບ​ອອກ​ຈາກ​ລາຍ​ການ​ທີ່​ມັກ​ແລ້ວ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"​ເພີ່ມ​ໃສ່​ລາຍ​ການ​ທີ່​ມັກ"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ແກ້ໄຂ"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ລຶບ"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ປ່ຽນຮູບ"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"ສ້າງທາງລັດ"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"ບໍ່ລິ້ງ"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"ລຶບລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"ປ່ຽນຊື່ປ້າຍກຳກັບ"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"ລຶບປ້າຍກຳກັບ"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"ເພີ່ມເປັນລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"ເພີ່ມລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"ລຶບອອກຈາກປ້າຍກຳກັບ"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"ສ້າງປ້າຍກຳກັບ"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"ຖອນ​ລິ້ງລາຍຊື່ຕິດຕໍ່ນີ້ໄປ​ໃສ່ຫຼາຍລາຍຊື່ຕິດຕໍ່ບໍ?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ບໍ່ລິ້ງ"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ທ່ານ​ຢາກ​ຈະ​ບັນ​ທຶກ​ການ​ປ່ຽນ​ແປງ​ທີ່​ທ່ານ​ປ່ຽນ​ແປງ​ແລ້ວ ແລະ ຖອນລິ້ງ​​ລາຍ​ຊື່​ຕິດ​ຕໍ່ນີ້​ໄປ​ໃສ່​ຫຼາຍ​ລາຍ​ຊື່​ຕິດ​ຕໍ່ບໍ?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"ບັນ​ທຶກ ແລະ ຖອນ​ລິ້ງ"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"ທ່ານ​ຢາກ​ຈະ​ບັນ​ທຶກ​ການ​ປ່ຽນ​ແປງ​ທີ່​ທ່ານ​ປ່ຽນ​ແປງ​ແລ້ວ ແລະ ລິ້ງ​ກັບ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ທີ່​ເລືອກ​ໄວ້​ແລ້ວ​ບໍ?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"ບັນ​ທຶກ ແລະ ລິ້ງ"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"ກຳລັງເຊື່ອມໂຍງ"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"ກຳລັງຍົກເລືອກການເຊື່ອມໂຍງ"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"​ລິ້ງ"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"View linked contacts"</string>
+    <string name="menu_save" msgid="1727844363591825909">"ບັນທຶກ"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ລິ້ງ​ລາຍ​ຊື່​​ຜູ້ຕິດ​ຕໍ່"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ທ່ານຕ້ອງການລິ້ງກັບ <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"ລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ແນະນຳ"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ລາຍຊື່ຜູ້ຕິດຕໍ່ທັງໝົດ"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"ເຊື່ອມໂຍງ <xliff:g id="NAME">%s</xliff:g> ແລ້ວ"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ລິ້ງ​ແລ້ວ"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"ລຶບ <xliff:g id="NAME">%1$s</xliff:g> ອອກແລ້ວ"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"ລຶບ <xliff:g id="NAME_0">%1$s</xliff:g> ແລະ <xliff:g id="NAME_1">%2$s</xliff:g> ອອກແລ້ວ"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"ລຶບ <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... ອອກແລ້ວ"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">ລາຍຊື່ຜູ້ຕິດຕໍ່ຖືກລຶບອອກແລ້ວ</item>
+      <item quantity="one">ລາຍຊື່ຜູ້ຕິດຕໍ່ຖືກລຶບອອກແລ້ວ</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ລາຍ​ຊື່ຜູ້ຕິດຕໍ່</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ລາຍ​ຊື່ຜູ້ຕິດຕໍ່</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> ລາຍຊື່ຜູ້ຕິດຕໍ່ · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ລາຍຊື່ຜູ້ຕິດຕໍ່ · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"ຈາກ Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"ຈາກ <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ຕັ້ງສຽງຣິງໂທນ"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"ສົ່ງໄປຂໍ້ຄວາມສຽງ"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ເຊົາສົ່ງໄປຂໍ້ຄວາມສຽງ"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"This contact is read-only. It can\'t be deleted, but you can hide it."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"ເຊື່ອງລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Read-only accounts in this contact will be hidden, not deleted."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"ລຶບລາຍ​ຊື່​ຕິດ​ຕໍ່​ນີ້ບໍ?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ລຶບ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ທີ່​ເລືອກ​ໄວ້?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຈາກ​ບັນ​ຊີ​ອ່ານ​ເທົ່າ​ນັ້ນ​ບໍ່​ສາ​ມາດ​ລຶບ​ໄດ້, ແຕ່​ພວກ​ມັນ​ຖືກ​ເຊື່ອງ​ໄດ້."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ລາຍຊື່ຕິດ​ຕໍ່ທີ່​ຈະ​ຖືກ​ລຶບ​ມີ​ລາຍ​ລ​ະ​ອຽດຈາກຫຼາຍບັນຊີ. ລາຍ​ລະ​ອຽດຈາກບັນຊີອ່ານເທົ່ານັ້ນ ຈະຖືກເຊື່ອງໄວ້, ບໍ່ຖືກລຶບອອກ."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ການລຶບລາຍຊື່ຕິດຕໍ່ນີ້ຈະລຶບຂໍ້ມູນຈາກຫຼາຍບັນຊີ."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"ລຶບລາຍ​ຊື່​ຕິດ​ຕໍ່​ນີ້ບໍ?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"​ລຶບ"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"ເພີ່ມລາຍຊື່ຕິດຕໍ່ໃສ່ໜ້າຈໍຫຼັກແລ້ວ."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ເພີ່ມ​ໃສ່​ໜ້າ​ຈໍ​ຫຼັກ​ແລ້ວ."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"ບໍ່ມີຮູບໃນອຸປະກອນທີ່ສາມາດໃຊ້ໄດ້."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ຮູບລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ປ້າຍກຳກັບຊື່ກຳນົດເອງ"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ລຶບຮູບພາບ"</string>
+    <string name="noContacts" msgid="2228592924476426108">"ລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານຫວ່າງເປົ່າ"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ມີປ້າຍກຳກັບນີ້"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ໃນບັນຊີນີ້"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"ລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານຫວ່າງເປົ່າ"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"ບັນທຶກ <xliff:g id="DISPLAY_NAME">%s</xliff:g> ແລ້ວ"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"ບັນທຶກລາຍຊື່ຜູ່ຕິດຕໍ່ແລ້ວ"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"ຖອນ​ລິ້ງ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ແລ້ວ"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"ບໍ່ສາມາດບັນທຶກການແກ້ໄຂລາຍຊື່ຜູ້ຕິດຕໍ່ໄດ້"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"ບໍ່ສາມາດຍົກເລີກການລິ້ງລາຍຊື່ຜູ້ຕິດຕໍ່ໄດ້"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"ບໍ່ສາມາດລິ້ງລາຍຊື່ຜູ້ຕິດຕໍ່ໄດ້"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"ເກີດຄວາມຜິດພາດໃນການບັນທຶກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"ບໍ່ສາມາດບັນທຶກການປ່ຽນແປງຮູບລາຍຊື່ຜູ້ຕິດຕໍ່ໄດ້"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"ໂຫຼດປ້າຍກຳກັບບໍ່ສຳເລັດ"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"ລຶບປ້າຍກຳກັບແລ້ວ"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"ສ້າງປ້າຍກຳກັບແລ້ວ"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"ບໍ່ສາມາດສ້າງປ້າຍກຳກັບໄດ້"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"ອັບເດດປ້າຍກຳກັບແລ້ວ"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"ລຶບອອກຈາກປ້າຍກຳກັບແລ້ວ"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"ເພີ່ມໃສ່ປ້າຍກຳກັບແລ້ວ"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"ບໍ່ສາມາດບັນທຶກການປ່ຽນແປງປ້າຍກຳກັບໄດ້"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ມີປ້າຍກຳກັບນັ້ນຢູ່ກ່ອນແລ້ວ"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"ບາງລາຍຊື່ຜູ້ຕິດຕໍ່ບໍ່ມີອີເມວ."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"ບາງລາຍຊື່ຜູ້ຕິດຕໍ່ບໍ່ມີເບີໂທລະສັບ."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ສົ່ງອີເມວ"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"ສົ່ງຂໍ້ຄວາມ"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"ສົ່ງ"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"ເພີ່ມ \"<xliff:g id="EMAIL">%s</xliff:g>\" ໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ຊື່ຂອງລາຍຊື່ຜູ່ຕິດຕໍ່ຂອງທ່ານ"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ຄລິກ​ເພື່ອ​ກັບ​ໄປ​ທີ່​ໜ້າຈໍ​ກ່ອນ​ໜ້າ​ນີ້"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ເພີ່ມ​ເບີ​ໂທ​ລະ​ສັບ"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ເພີ່ມອີເມວ"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ບໍ່ພົບແອັບຯທີ່ໃຊ້ເພື່ອດຳເນີນການ."</string>
+    <string name="menu_share" msgid="943789700636542260">"ແບ່ງປັນ"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"ເພີ່ມໃສ່ລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"ເພີ່ມ"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">ແບ່ງປັນລາຍຊື່ຜູ້ຕິດຕໍ່ຜ່ານ</item>
+      <item quantity="one">ແບ່ງປັນລາຍຊື່ຜູ້ຕິດຕໍ່ຜ່ານ</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"ເລືອກບັນຊີ"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"ສ້າງປ້າຍກຳກັບ"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"ປ່ຽນຊື່ປ້າຍກຳກັບ"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ຊື່ປ້າຍກຳກັບ"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ຊື່ປ້າຍກຳກັບ"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ການສົນທະນາດ້ວຍສຽງ"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ການສົນທະນາດ້ວຍວິດີໂອ"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ບັນ​ຊີ"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ຖ່າຍ​ຮູບ"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ຖ່າຍຮູບໃໝ່"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ເລືອກ​ຮູບ"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ເລືອກຮູບໃໝ່"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"ກຳລັງຊອກຫາ..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ວັນທີ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ປ້າຍກຳກັບ"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"ຍົກເລີກ"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"ກັບຄືນ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"ປິດ"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ສະລັບໄປທີ່ການແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ເລືອກ? ຂໍ້ມູນທີ່ທ່ານຂຽນມາຈະຖືກສຳເນົາໄວ້."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ໄດເຣັກທໍຣີ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ການຕັ້ງຄ່າ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ການຕັ້ງຄ່າ"</string>
+    <string name="menu_help" msgid="1680178646764069976">"ຊ່ວຍ​ເຫຼືອ ແລະ ຄຳ​ຕິ​ຊົມ"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ເບີໂທລະສັບ"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"ປິດ"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"ລວມ​ປີ​ນຳ"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ເພີ່ມບັນຊີ"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"ນຳເຂົ້າ"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"ສ້າງໃໝ່…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"ລຶບປ້າຍກຳກັບ \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ອອກບໍ? (ລາຍຊື່ຜູ້ຕິດຕໍ່ຈະບໍ່ຖືກລຶບອອກ.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"ພິມຊື່ຂອງລາຍຊື່ຜູ້ຕິດຕໍ່ກ່ອນການລິ້ງກັບລາຍຊື່ອື່ນ."</string>
+    <string name="copy_text" msgid="3257145021583508761">"ສຳເນົາໃສ່ຄລິບບອດ"</string>
+    <string name="set_default" msgid="4417505153468300351">"ຕັ້ງຄ່າເລີ່ມຕົ້ນ"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ລຶບຄ່າເລີ່ມຕົ້ນ"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"ສຳເນົາຂໍ້ຄວາມແລ້ວ"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"ຍົກເລີກການແກ້ໄຂບໍ່?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ຍົກເລີກ"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"ຍົກເລີກ"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"ປິດການປັບແຕ່ງບໍ?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"ຊອກຫາລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"ລຶບລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ໂປຣໄຟລ໌ໃນອຸປະກອນຂອງຂ້ອຍ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ໂປຣໄຟລ໌ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ຂອງຂ້ອຍ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"ໃຊ້ເວລາເລັກນ້ອຍເພື່ອເພີ່ມບັນຊີທີ່ຈະໃຊ້ສຳຮອງຂໍ້ມູນລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານໄປໃສ່ Google."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ໃໝ່​ຈະ​ຖືກ​ບັນ​ທຶກ​ໃສ່ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ເລືອກ​ບັນ​ຊີ​ເລີ່ມຕົ້ນ​ສຳ​ລັບ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ໃໝ່:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"ສ້າງລາຍຊື່ຜູ້ຕິດຕໍ່ໃໝ່"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"ເບິ່ງຢ່າງດຽວ"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່ເພື່ອແກ້ໄຂ"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"ລາຍຊື່ຕິດຕໍ່ທີ່ລິ້ງແລ້ວ"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"ເພີ່ມ"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"ບໍ່ລິ້ງ"</string>
+    <string name="add_account" msgid="8201790677994503186">"ເພີ່ມບັນຊີ"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"ເພີ່ມບັນຊີໃໝ່"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ສົ່ງອອກໄຟລ໌ຖານຂໍ້ມູນ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"ສ້າງລາຍຊື່ຜູ້ຕິດຕໍ່ໃໝ່"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"​ເບິ່ງ​ເພີ່ມ​ເຕີມ"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"​​ເບິ່ງ​ໜ້ອຍ​ລົງ"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ບໍ່ດົນມານີ້"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"ກ່ຽວກັບ"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"ກຳລັງສ້າງສຳເນົາສ່ວນໂຕ..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ມື້ອື່ນ"</string>
+    <string name="today" msgid="8041090779381781781">"ມື້ນີ້"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ມື້ນີ້ໃນເວລາ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ມື້ອື່ນໃນເວລາ <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ນັດ​ໝາຍບໍ່​ມີ​ຊື່)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"ຕົກລົງ"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ອົງກອນ"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ຊື່ຫຼິ້ນ"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ບັນທຶກ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ເວັບໄຊ"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ເຫດການ"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ຄວາມສຳພັນ"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"ຊື່"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ອີເມວ"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ໂທລະສັບ"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"​ເສັ້ນ​ທາງ​ໄປ​ຫາ​ສະ​ຖານ​ທີ່"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS ຫຼ້າ​ສຸດ. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ຄລິກ​ເພື່ອ​ຕອບ​ກັບ"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ສາຍ​ໂທ​ເຂົ້າ"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ສາຍ​ໂທ​ອອກ"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ບໍ່​ໄດ້​ຮັບ"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"ການ​ໂທຫຼ້າ​ສຸດ. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ຄລິກ​ເພື່ອ​ໂທ​ກັບ"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"​ທ່ານ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"ຊ່ອງຂໍ້ມູນເພີ່ມເຕີມ"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"ປ່ຽນລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"ເພີ່ມລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"ຮູບລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"ເປີດຕົວຕັດຕໍ່ບໍ່ສຳເລັດ."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"ກຳລັງບັນທຶກໃສ່"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"ຂໍ້ມູນລາຍຊື່ຜູ້ຕິດຕໍ່ຈາກ <xliff:g id="ACCOUNT">%s</xliff:g> ແມ່ນບໍ່ສາມາດແກ້ໄຂໄດ້"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ລິ້ງ​ລາຍ​ຊື່​ຕິດ​ຕໍ່"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ຍົກ​ເລີກ​"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ນີ້"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ເປັນ​ໄປ​ໄດ້​ວ່າມີ​ການ​ຊ້ຳ​ກັນ"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ລາຍ​ຊື່​ຕິດ​ຕໍ່​ເຫຼົ່າ​ນີ້​ອາດ​ຈະ​ເປັນ​ຄົນ​ດຽວ​ກັນ. ທ່ານ​ສາ​ມາດ​ລິ້ງ​ພວກ​ມັນ​ເຂົ້າ​ກັນ​ເປັນ​ບັນ​ຊີ​ດຽວ​ໄດ້."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"ລຶບ <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"ລຶບ <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"ຄຳແນະນຳ"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"ໃໝ່"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ເປີດແຖບການນຳທາງ"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ປິດແຖບການນຳທາງ"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"ປ້າຍກຳກັບ <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ປ້າຍກຳກັບ"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"ບັນຊີ"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"ເບິ່ງປະຫວັດຂອງທ່ານພ້ອມກັນ"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ນັດໝາຍ ແລະ ຂໍ້ຄວາມ"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ນັດໝາຍ"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"ຂໍ້ຄວາມ"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"ຄຳແນະນຳ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"ຈັດລະບຽບລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານ ແລະ ເຮັດໃຫ້ມີປະໂຫຍດ"</string>
+    <string name="undo" msgid="1425165101664071422">"ຍົກເລີກ"</string>
+    <string name="call_custom" msgid="6385303130912713318">"ໂທຫາ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"ໂທຫາເບີບ້ານ"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"ໂທຫາເບີມືຖື"</string>
+    <string name="call_work" msgid="5328785911463744028">"ໂທ​ຫາ​ເບີບ່ອນເຮັດ​ວຽກ"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"ໂທຫາເບີແຟັກບ່ອນເຮັດວຽກ"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"ໂທຫາເບີແຟັກບ້ານ"</string>
+    <string name="call_pager" msgid="9003902812293983281">"ໂທຫາເບີ pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"ໂທ"</string>
+    <string name="call_callback" msgid="1910165691349426858">"ໂທຫາເບີໂທກັບ"</string>
+    <string name="call_car" msgid="3280537320306436445">"ໂທຫາເບີລົດ"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"ໂທຫາເບີຫຼັກຂອງບໍລິສັດ"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ໂທ​ຫາເບີ ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"ໂທຫາເບີຫຼັກ"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ໂທຫາເບີແຟັກ"</string>
+    <string name="call_radio" msgid="8296755876398357063">"ໂທຫາເບີວິທະຍຸ"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ໂທຫາເບີ telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"ໂທຫາເບີ TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"ໂທຫາເບີມືຖືບ່ອນເຮັດວຽກ"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"ໂທຫາ pager ບ່ອນເຮັດວຽກ"</string>
+    <string name="call_assistant" msgid="670941612175068337">"ໂທຫາ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"ໂທ​ຫາເບີ MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ໂທ)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"ສົ່ງຂໍ້ຄວາມຫາ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ສົ່ງຂໍ້ຄວາມຫາເບີບ້ານ"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"ສົ່ງຂໍ້ຄວາມຫາເບີມືຖື"</string>
+    <string name="sms_work" msgid="2269624156655267740">"ສົ່ງຂໍ້ຄວາມຫາເບີບ່ອນເຮັດວຽກ"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"ສົ່ງຂໍ້ຄວາມຫາເບີແຟັກບ່ອນເຮັດວຽກ"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"ສົ່ງຂໍ້ຄວາມຫາເບີແຟັກບ້ານ"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"ສົ່ງຂໍ້ຄວາມຫາ pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"ສົ່ງຂໍ້ຄວາມ"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"ສົ່ງຂໍ້ຄວາມຫາເບີໂທກັບ"</string>
+    <string name="sms_car" msgid="7444227058437359641">"ສົ່ງຂໍ້ຄວາມຫາເບີລົດ"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"ສົ່ງຂໍ້ຄວາມຫາເບີໂທຫຼັກຂອງບໍລິສັດ"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ສົ່ງຂໍ້ຄວາມຫາເບີ ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"ສົ່ງຂໍ້ຄວາມຫາເບີຫຼັກ"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ສົ່ງຂໍ້ຄວາມຫາແຟັກ"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ສົ່ງຂໍ້ຄວາມຫາເບີວິທະຍຸ"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ສົ່ງຂໍ້ຄວາມຫາ telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"ສົ່ງຂໍ້ຄວາມຫາ TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"ສົ່ງຂໍ້ຄວາມຫາເບີມືຖືບ່ອນເຮັດວຽກ"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"ສົ່ງຂໍ້ຄວາມຫາເບີ pager ບ່ອນເຮັດວຽກ"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"ສົ່ງຂໍ້ຄວາມຫາ <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"ສົ່ງຂໍ້ຄວາມ MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ສົ່ງຂໍ້ຄວາມ)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ໂທອອກດ້ວຍວິດີໂອ"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"ລຶບລາຍຊື່ທີ່ຕິດຕໍ່ຫາເລື້ອຍໆ?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"ທ່ານຈະລຶບຂໍ້ມູນລາຍຊື່ທີ່ຕິດຕໍ່ຫາເລື້ອຍໆຢູ່ໃນແອັບລາຍຊື່ ແລະ ໂທລະສັບ ພ້ອມທັງບັງຄັບໃຫ້ແອັບອີເມວເລີ່ມຮຽນຮູ້ຄ່າກຳນົດທີ່ຢູ່ຂອງທ່ານໃໝ່ຕັ້ງແຕ່ຕົ້ນ."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"ກຳລັງລຶບລາຍຊື່ທີ່ຕິດຕໍ່ຫາເລື້ອຍໆ"</string>
+    <string name="status_available" msgid="5586870015822828392">"ສາມາດໃຊ້ໄດ້"</string>
+    <string name="status_away" msgid="1838861100379804730">"ບໍ່ຢູ່"</string>
+    <string name="status_busy" msgid="9147992455450257136">"ບໍ່ຫວ່າງ"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"ອື່ນໆ"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ໄດເຣັກທໍຣີ"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"ໄດເຣັກທໍຣີບ່ອນເຮັດວຽກ"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"ລາຍຊື່ຜູ້ຕິດຕໍ່ທັງໝົດ"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"ຂໍ້ມູນຕິດຕໍ່ດ່ວນສຳລັບ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(ບໍ່ມີຊື່)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"ລາຍຊື່ທີ່ຕິດຕໍ່ເລື້ອຍໆ"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທັງໝົດທີ່ມີເບີໂທລະສັບ"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"ລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"ເບິ່ງອັບເດດ"</string>
+    <string name="account_phone" msgid="7128032778471187553">"ອຸປະກອນ"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"ຊື່"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"ຊື່ຫຼິ້ນ"</string>
+    <string name="name_given" msgid="4280790853455320619">"ຊື່"</string>
+    <string name="name_family" msgid="7466985689626017037">"ນາມສະກຸນ"</string>
+    <string name="name_prefix" msgid="59756378548779822">"ຄຳນຳໜ້າຊື່"</string>
+    <string name="name_middle" msgid="8467433655992690326">"ຊື່ຮອງ"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"ຄຳນຳຫຼັງຊື່"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ການອ່ານອອກສຽງຊື່"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ການອອກສຽງຊື່"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ການອອກສຽງຊື່ກາງ"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ການອອກສຽງນາມສະກຸນ"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Phone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ອີເມວ"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"ທີ່ຢູ່"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"ອົງກອນ"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ຄວາມສຳພັນ"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"ວັນທີພິເສດ"</string>
+    <string name="sms" msgid="1756857139634224222">"ຂໍ້ຄວາມ"</string>
+    <string name="postal_address" msgid="8765560217149624536">"ທີ່ຢູ່"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"ບໍລິສັດ"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"ຊື່"</string>
+    <string name="label_notes" msgid="8337354953278341042">"ໝາຍເຫດ"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"ກຳນົດເອງ"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ເວັບໄຊ"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ປ້າຍກຳກັບ"</string>
+    <string name="email_home" msgid="8573740658148184279">"ສົ່ງອີເມວຫາທີ່ຢູ່ເຮືອນ"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"ສົ່ງອີເມວຫາມືຖື"</string>
+    <string name="email_work" msgid="2807430017302722689">"ສົ່ງອີເມວຫາທີ່ຢູ່ບ່ອນເຮັດວຽກ"</string>
+    <string name="email_other" msgid="3454004077967657109">"ອີເມວ"</string>
+    <string name="email_custom" msgid="5536404237099078802">"ສົ່ງອີເມວຫາ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"ອີເມວ"</string>
+    <string name="postal_street" msgid="8133143961580058972">"ຖະໜົນ"</string>
+    <string name="postal_city" msgid="6597491300084895548">"ເມືອງ"</string>
+    <string name="postal_region" msgid="6045263193478437672">"ລັດ"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ລະຫັດ ZIP"</string>
+    <string name="postal_country" msgid="7638264508416368690">"ປະເທດ"</string>
+    <string name="map_home" msgid="1243547733423343982">"ເບິ່ງທີ່ຢູ່ເຮືອນ"</string>
+    <string name="map_work" msgid="1360474076921878088">"ເບິ່ງທີ່ຢູ່ບ່ອນເຮັດວຽກ"</string>
+    <string name="map_other" msgid="3817820803587012641">"ເບິ່ງທີ່ຢູ່"</string>
+    <string name="map_custom" msgid="8761800628069473526">"ເບິ່ງທີ່ຢູ່ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"ສົນທະນາໂດຍໃຊ້ AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"ສົນທະນາໂດຍໃຊ້ Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"ສົນທະນາໂດຍໃຊ້ Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"ສົນທະນາໂດຍໃຊ້ Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"ສົນທະນາໂດຍໃຊ້ QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"ສົນທະນາໂດຍໃຊ້ Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ສົນທະນາໂດຍໃຊ້ ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"ສົນທະນາໂດຍໃຊ້ Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"ສົນທະນາ"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ລຶບ"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"ສະແດງຊ່ອງຊື່ເພີ່ມເຕີມ"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"ຫຍໍ້ຊ່ອງຂໍ້ມູນຊື່"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"ສະແດງຊ່ອງຊື່ແບບອ່ານອອກສຽງເພີ່ມເຕີມ"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ຫຍໍ້ຊ່ອງຂໍ້ມູນການອອກສຽງຊື່"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"ຂະຫຍາຍ"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"ຫຍໍ້ລົງ"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"ຂະຫຍາຍແລ້ວ"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"ຫຍໍ້ແລ້ວ"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"ລາຍຊື່ຜູ້ຕິດຕໍ່ທັງໝົດ"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ຕິດດາວແລ້ວ"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"ປັບແຕ່ງ"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"ລາຍຊື່ຜູ່ຕິດຕໍ່ອື່ນໆທັງໝົດ"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"ລາຍຊື່ຜູ້ຕິດຕໍ່ທັງໝົດ"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"ລຶບກຸ່ມຊິ້ງຂໍ້ມູນ"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"ເພີ່ມກຸ່ມຊິ້ງຂໍ້ມູນ"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"ກຸ່ມເພີ່ມເຕີມ..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"ການລຶບກຸ່ມ \"<xliff:g id="GROUP">%s</xliff:g>\" ອອກຈາກການຊິ້ງຂໍ້ມູນ ຈະເປັນການລຶບລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ບໍ່ໄດ້ຢູ່ໃນກຸ່ມ ອອກຈາກການຊິ້ງຂໍ້ມູນນຳ."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ກຳລັງບັນທຶກໂຕເລືອກການສະແດງຜົນ..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"ມຸມມອງແບບປັບແຕ່ງ"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"ບັນທຶກລາຍຊື່ຕິດຕໍ່ນຳເຂົ້າແລ້ວໃສ່:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"ຊິມກາດ"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"ຊິມ <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d ລາຍຊື່ຜູ້ຕິດຕໍ່</item>
+      <item quantity="one">1 ລາຍຊື່ຜູ້ຕິດຕໍ່</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> ລາຍຊື່ຜູ້ຕິດຕໍ່ • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> ລາຍຊື່ຜູ້ຕິດຕໍ່ • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"ໄຟລ໌ .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"ບໍ່ມີຫຍັງໃຫ້ນຳເຂົ້າ"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"ນຳເຂົ້າລາຍຊື່ຜູ້ຕິດຕໍ່ຈາກ vCard ບໍ?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"ຍົກເລີກການນຳເຂົ້າ <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"ຍົກເລີກການສົ່ງອອກ <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"ບໍ່ສາມາດຍົກເລີກການ ນຳເຂົ້າ/ສົ່ງອອກ vCard ໄດ້"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"ຄວາມຜິດພາດທີ່ບໍ່ຮູ້ເຫດຜົນ."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"ບໍ່ສາມາດເປີດ \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ໄດ້: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"ບໍ່ສາມາດເລີ່ມໂປຣແກຣມສົ່ງອອກໄດ້: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ບໍ່ມີລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ສາມາດສົ່ງອອກໄດ້."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"ທ່ານປິດການນຳໃຊ້ສິດອະນຸຍາດທີ່ຈຳເປັນໄວ້ແລ້ວ."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"ເກີດຄວາມຜິດພາດໃນລະຫວ່າງການສົ່ງອອກ: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O ຜິດພາດ"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"ໜ່ວຍຄວາມຈຳບໍ່ພໍ. ເປັນໄປໄດ້ວ່າໄຟລ໌ອາດໃຫຍ່ເກີນໄປ."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ບໍ່ຮອງຮັບຮູບແບບທີ່ເລືອກ."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"ການສົ່ງອອກ <xliff:g id="FILENAME">%s</xliff:g> ສິ້ນສຸດແລ້ວ."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"ສຳເລັດການສົ່ງອອກລາຍຊື່ອແລ້ວ."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"ເມື່ອສຳເລັດການສົ່ງອອກລາຍຊື່ຜູ້ຕິດຕໍ່ແລ້ວ, ໃຫ້ຄລິກການແຈ້ງເຕືອນເພື່ອແບ່ງປັນລາຍຊື່ຜູ້ຕິດຕໍ່."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"ແຕະເພື່ອແບ່ງປັນລາຍຊື່ຜູ້ຕິດຕໍ່."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"ການສົ່ງອອກ <xliff:g id="FILENAME">%s</xliff:g> ຖືກຍົກເລີກແລ້ວ."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"ກຳລັງສົ່ງອອກຂໍ້ມູນລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"ຂໍ້ມູນລາຍຊື່ຜູ້ຕິດຕໍ່ກຳລັງຖືກສົ່ງອອກ."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ບໍ່ສາມາດດຶງຂໍ້ມູນຂອງຖານຂໍ້ມູນ."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ສາມາດສົ່ງອອກໄດ້."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"ໂປຣແກຣມຂຽນ vCard ຖືກເລີ່ມຢ່າງບໍ່ຖືກຕ້ອງ."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"ບໍ່​ສາ​ມາດ​ສົ່ງ​ອອກໄດ້"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"ບໍ່ໄດ້ສົ່ງຂໍ້ມູນລາຍຊື່ຜູ່ຕິດຕໍ່ອອກເທື່ອ.\nເຫດຜົນ: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"ກຳລັງນຳເຂົ້າ <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"ບໍ່ສາມາດອ່ານຂໍ້ມູນ vCard ໄດ້"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"ສິ້ນສຸດການນຳເຂົ້າໄຟລ໌ vCard <xliff:g id="FILENAME">%s</xliff:g> ແລ້ວ"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"ການນຳເຂົ້າ <xliff:g id="FILENAME">%s</xliff:g> ຖືກຍົກເລີກແລ້ວ"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> ຈະຖືກນຳເຂົ້າໄວໆນີ້."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ໄຟລ໌ຈະຖືກນຳເຂົ້າໃນໄວໆນີ້."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"ຄຳຂໍການນຳເຂົ້າ vCard ຖືກປະຕິເສດ. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"ລາຍຊື່ຜູ້ຕິດຕໍ່ຈະຖືກສົ່ງອອກໃນໄວໆນີ້."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"ຄຳຂໍການສົ່ງ vCard ອອກ ຖືກປະຕິເສດ. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"ກຳລັງເກັບຂໍ້ມູນ vCard ໃສ່ບ່ອນຈັດເກັບຂໍ້ມູນຊົ່ວຄາວໃນອຸປະກອນ. ການນຳເຂົ້າຈະເລີ່ມຂຶ້ນໃນໄວໆນີ້."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"ບໍ່ສາມາດນຳເຂົ້າ vCard ໄດ້."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ໄດ້ຮັບຜ່ານ NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"ກຳລັງເກັບຂໍ້ມູນ"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"ກຳລັງນຳເຂົ້າ <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"ສົ່ງອອກຫາໄຟລ໌ .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"ຮຽງລຳດັບຕາມ"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ການອ່ານອອກສຽງຊື່"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"ສະແດງທຸກເທື່ອ"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Hide if empty"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"ຊື່"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"ນາມສະກຸນ"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"ຮູບແບບຊື່"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ຊື່ກ່ອນ"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"ນາມສະກຸນກ່ອນ"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"ບັນຊີ"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"ບັນຊີເລີ່ມຕົ້ນສຳລັບລາຍຊື່ຕິດຕໍ່ໃໝ່"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"ຂໍ້ມູນຂອງຂ້ອຍ"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"ຕັ້ງຄ່າໂປຣໄຟລ໌ຂອງທ່ານ"</string>
+    <string name="setting_about" msgid="7014388749752042863">"ກ່ຽວກັບລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"ແບ່ງປັນລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ມັກ"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"ແບ່ງປັນທຸກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"ແບ່ງປັນລາຍຊື່ຜູ້ຕິດຕໍ່ບໍ່ສຳເລັດ."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"ສົ່ງອອກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"ນຳເຂົ້າລາຍຊື່ຜູ້ຕິດຕໍ່ຈາກ"</string>
+    <string name="share_error" msgid="948429331673358107">"ບໍ່ສາມາດແບ່ງປັນລາຍຊື່ຜູ່ຕິດຕໍ່ນີ້ໄດ້"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ຈະແບ່ງປັນ."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ລາຍຊື່ຜູ້ຕິດຕໍ່ເພື່ອສະແດງ"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ລາຍຊື່ຜູ່ຕິດຕໍ່ທີ່ຈະສະແດງ"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"ປັບແຕ່ງມຸມມອງ"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"ບັນທຶກ"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"ຊອກຫາລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"ລາຍການທີ່ມັກ"</string>
+    <string name="menu_import" msgid="6107961135813836467">"ນຳເຂົ້າ"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ສົ່ງອອກ"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"ເບີໂທທີ່ບລັອກໄວ້"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"ຜ່ານ <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> ຜ່ານ <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ຢຸດການຊອກຫາ"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ລຶບ​ການ​ຊອກ​ຫາ"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"ບັນຊີ"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ໃຊ້ຊິມນີ້ເພື່ອການໂທທຸກເທື່ອ"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"ໂທດ້ວຍບັນທຶກ"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"ພິມບັນທຶກເພື່ອສົ່ງດ້ວຍການໂທ..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ສົ່ງ ແລະ ໂທ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"ເວີຊັນສ້າງ"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ໃບອະນຸຍາດໂອເພນຊອດ"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ລາຍລະອຽດໃບອະນຸຍາດໂອເພນຊອດ"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"ຂໍ້ກຳນົດບໍລິການ"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ໃບອະນຸຍາດໂອເພນຊອດ"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"ເປີດ URL ລົ້ມເຫລວ."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"ໝາຍ <xliff:g id="ACCOUNT_INFO">%s</xliff:g> ແລ້ວ"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"ບໍ່ໝາຍ <xliff:g id="ACCOUNT_INFO">%s</xliff:g> ແລ້ວ"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ໂທວິດີໂອ"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"ລຶບ"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"ເຄື່ອງໝາຍສາມຈໍ້າ"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> ວິ"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> ນທ <xliff:g id="SECONDS">%2$s</xliff:g> ວິ"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ຊມ <xliff:g id="MINUTES_1">%2$s</xliff:g> ນທ <xliff:g id="SECONDS">%3$s</xliff:g> ວິ"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ທາງລັດນີ້ຖືກປິດການນຳໃຊ້ແລ້ວ"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"ລຶບລາຍຊື່ຜູ້ຕິດຕໍ່ອອກແລ້ວ"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"ນຳເຂົ້າ"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"ບໍ່ມີລາຍຊື່ຜູ່ຕິດຕໍ່ໃນຊິມກາດຂອງທ່ານ."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"ມີລາຍຊື່ຜູ້ຕິດຕໍ່ໃນລາຍຊື່ຂອງທ່ານຢູ່ກ່ອນແລ້ວ"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">ນຳເຂົ້າ <xliff:g id="COUNT">%d</xliff:g> ລາຍຊື່ຜູ້ຕິດຕໍ່ຊິມແລ້ວ</item>
+      <item quantity="one">ນຳເຂົ້າ 1 ລາຍຊື່ຜູ້ຕິດຕໍ່ຊິມແລ້ວ</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"ນຳເຂົ້າລາຍຊື່ຜູ້ຕິດຕໍ່ຈາກຊິມກາດບໍ່ສຳເລັດ"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"ນຳເຂົ້າມາຈາກ SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"ຍົກເລີກ"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"ການຊິ້ງຂໍ້ມູນອັດຕະໂນມັດຖືກປິດໄວ້. ແຕະເພື່ອເປີດໃຊ້."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"ປິດໄວ້"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"ການຊິ້ງຂໍ້ມູນອັດຕະໂນມັດຖືກປິດໄວ້. ແຕະເພື່ອເປີດໃຊ້."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Turn on auto-sync?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Changes you make to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ເປີດໃຊ້"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"ບໍ່ມີການເຊື່ອມຕໍ່"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"ຊິມ"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"ສະແດງເພີ່ມເຕີມ"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"ນຳເຂົ້າ SIM ສຳເລັດແລ້ວ"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"ນຳເຂົ້າບໍ່ສຳເລັດ"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"ບໍ່ສາມາດນຳເຂົ້າລາຍຊື່ຜູ້ຕິດຕໍ່ຈາກຊິມກາດໄດ້"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"ກຳລັງນຳເຂົ້າຈາກ SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 4d58129..37087ab 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontaktai"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontaktai"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Žiūrėti kontaktą"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Redaguoti kontaktą"</string>
     <string name="contactsList" msgid="8661624236494819731">"Adresinė"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Pridėti kontaktą"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Adresatas"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Tiesioginis numerio rinkimas"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Tiesioginis pranešimas"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Pasirinkti adresato nuorodą"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Pasirinkite numerį, kuriuo skambinsite"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Pasirinkti numerį, kuriuo bus siunčiamas pranešimas"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Pasirinkti kontaktą"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Pridėti prie kontakto"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Pasirinkti kontaktą"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Pasirinkti"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Kurti naują kontaktą"</string>
-    <string name="starredList" msgid="4817256136413959463">"Pažymėta žvaigždute"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Dažnai naudojami"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Mėgstamiausi"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Išsami adresato informacija"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Redaguoti adresatą"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Sukurti adresatą"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Redaguoti grupę"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Kurti grupę"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Apie"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Naujiniai"</string>
     <string name="searchHint" msgid="8482945356247760701">"Ieškoti adresatų"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Žiūrėti adresatą"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Pridėti prie adresyno"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Pašalinti iš adresyno"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Pašalinta iš mėgstamiausių"</string>
@@ -49,42 +35,62 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Redaguoti"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Ištrinti"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Keisti nuotrauką"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Padėti pagrindiniame ekrane"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Skambinti adresatui"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Siųsti pranešimą adresatui"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Sukurti spartųjį klavišą"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Atsieti"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Redaguoti"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Ištrinti"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Pridėti kontaktą"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Pridėti grupę"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Pašalinti kontaktus"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Pervardyti etiketę"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Ištrinti etiketę"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Pridėti kontaktą"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Pasirinkti kontaktus"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Pridėti kontaktų"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Pašalinti iš etiketės grupės"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Sukurti etiketę"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Atsieti šį kontaktą suskaidant į kelis kontaktus?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Atsieti"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Ar norite išsaugoti jau atliktus pakeitimus ir atsieti šį kontaktą suskaidydami į kelis kontaktus?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Išsaugoti ir atsieti"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Ar norite išsaugoti jau atliktus pakeitimus ir susieti su pasirinktu kontaktu?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Išsaugoti ir susieti"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Susiejama"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Atsiejama"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Susieti"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Žr. susietus kontaktus"</string>
     <string name="menu_save" msgid="1727844363591825909">"Išsaugoti"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontaktų susiejimas"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Pasirinkite kontaktą, kurį norite susieti su <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Rodyti visus adresatus"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Siūlomi adresatai"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Visi adresatai"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Visi kontaktai"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> susietas (-a)"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktai susieti"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> ištrintas (-a)"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> ir <xliff:g id="NAME_1">%2$s</xliff:g> ištrinti"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… ištrinti"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">kontaktas ištrintas</item>
       <item quantity="few">kontaktai ištrinti</item>
       <item quantity="many">kontakto ištrinta</item>
       <item quantity="other">kontaktų ištrinta</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> kontaktas</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontaktai</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> kontakto</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontaktų</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktas   <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktai   <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakto   <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktų   <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Iš „Google“"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Iš <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Nustat. sk. toną"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Visi skamb. į balso paštą"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Negalima ištrinti kontaktų iš tik skaitomų paskyrų, bet juos galima paslėpti."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Slėpti"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Norimam ištrinti kontaktui priskirta kelių paskyrų informacija. Tik skaitomų paskyrų informacija bus paslėpta, bet neištrinta."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Reikia pasirinkti bent du kontaktus, kad būtų galima atlikti susiejimo veiksmą."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Susieti pasirinktus kontaktus?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Susieti"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Nukreipti į balso paštą"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Panaik. nukreip. į balso paštą"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Šis kontaktas yra tik skaitomas. Jo negalima ištrinti, bet jį galima paslėpti."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Slėpti kontaktą"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Šiam kontaktui priskirtos tik skaitomos paskyros bus paslėptos, bet neištrintos."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Ištrinti šį kontaktą?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Ištrinti pasirinktus kontaktus?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Negalima ištrinti kontaktų iš tik skaitomų paskyrų, bet juos galima paslėpti."</string>
@@ -92,189 +98,126 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Ištrynus šį kontaktą, bus ištrinta kelių paskyrų informacija."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Ištrinti šį kontaktą?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Ištrinti"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Atmesti pakeitimus"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontaktas neegzistuoja."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontaktas pridėtas prie pagrindinio ekrano."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> pridėtas (-a) prie pagrindinio ekrano."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Kurti naują kontaktą"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Kurti naują kontaktą"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizacija"</item>
-    <item msgid="7196592230748086755">"Pastaba"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Jokie paveikslėliai nepasiekiami naudojant planšetinį kompiuterį."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Telefone nėra galimų paveikslėlių."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Įrenginyje nėra jokių paveikslėlių."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakto nuotrauka"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Tinkintas etiketės pavadinimas"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Skambinti tiesiogiai į balso paštą"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Pašalinti nuotrauką"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Kontaktų nėra"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nėra grupių."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Jums reikia paskyros, kad galėtumėte kurti grupes."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Šioje grupėje nėra žmonių."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Jei norite jų pridėti, redaguokite grupę."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Išsaugomas adresatas..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Kontaktų sąrašas tuščias"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nėra kontaktų su šia etikete"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Šioje paskyroje nėra jokių kontaktų"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Kontaktų sąrašas tuščias"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> išsaugotas (-a)"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontaktas išsaugotas"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktai atsieti"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Nepavyko išsaugoti kontakto pakeitimų."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Nepavyko atsieti kontakto."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Nepavyko susieti kontakto."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Išsaugant kontaktą įvyko klaida."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Nepavyko išsaugoti kontakto nuotraukos pakeitimų."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupė išsaugota."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Nepavyko išsaugoti grupės pakeitimų."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontaktas su telefonų numeriais</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontaktai su telefonų numeriais</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> kontakto su telefonų numeriais</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktų su telefonų numeriais</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nėra kontaktų su telefonų numeriais"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one">Rastas <xliff:g id="COUNT">%d</xliff:g> kontaktas</item>
-      <item quantity="few">Rasti <xliff:g id="COUNT">%d</xliff:g> kontaktai</item>
-      <item quantity="many">Rasta <xliff:g id="COUNT">%d</xliff:g> kontakto</item>
-      <item quantity="other">Rasta <xliff:g id="COUNT">%d</xliff:g> kontaktų</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Nepavyko išsaugoti kontakto pakeitimų"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Nepavyko atsieti kontakto"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Nepavyko susieti kontakto"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Išsaugant kontaktą įvyko klaida"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Nepavyko išsaugoti kontakto nuotraukos pakeitimų"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Nepavyko įkelti etiketės"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiketė ištrinta"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiketė sukurta"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Nepavyko sukurti etiketės"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiketė atnaujinta"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Pašalinta iš etiketės"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Pridėta prie etiketės"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Nepavyko išsaugoti etiketės pakeitimų"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ši etiketė jau yra"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Kai kurie kontaktai neturi el. pašto adresų."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Kai kurie kontaktai neturi telefonų numerių."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Siųsti el. laišką"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Siųsti pranešimą"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Kontaktų pasirinkimas"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Siųsti"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Kontaktų nėra"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one">Rastas <xliff:g id="COUNT">%d</xliff:g> kontaktas</item>
-      <item quantity="few">Rasti <xliff:g id="COUNT">%d</xliff:g> kontaktai</item>
-      <item quantity="many">Rasta <xliff:g id="COUNT">%d</xliff:g> kontakto</item>
-      <item quantity="other">Rasta <xliff:g id="COUNT">%d</xliff:g> kontaktų</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Visi"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Mėgstamiausi"</string>
-    <string name="callBack" msgid="5498224409038809224">"Perskambinti"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Skambinti dar kartą"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Grįžtamasis skambutis"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Pridėti „<xliff:g id="EMAIL">%s</xliff:g>“ prie adresatų?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"adresato nuotrauka"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plius"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> iš <xliff:g id="TOTAL_NUMBER">%s</xliff:g> adresatų"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Kontaktų vardai"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nerasta jokių programų šiam veiksmui apdoroti."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Spustelėkite, kad grįžtumėte į ankstesnį ekraną"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Pridėti telefono numerį"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Pridėti el. pašto adresą"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nerasta jokių programų šiam veiksmui apdoroti."</string>
     <string name="menu_share" msgid="943789700636542260">"Bendrinti"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Pridėti prie kontaktų"</string>
-    <string name="share_via" msgid="563121028023030093">"Bendrinti kontaktą naudojant"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Kurti grupę paskyroje"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Pridėti"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Bendrinti kontaktus naudojant</item>
+      <item quantity="few">Bendrinti kontaktus naudojant</item>
+      <item quantity="many">Bendrinti kontaktus naudojant</item>
+      <item quantity="other">Bendrinti kontaktus naudojant</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Paskyros pasirinkimas"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Etiketės sukūrimas"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Etiketės pervardijimas"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etiketės pavadinimas"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Etiketės pavad."</string>
     <string name="audio_chat" msgid="2535716629358298691">"Balso pokalbis"</string>
     <string name="video_chat" msgid="1872255818640336072">"Vaizdo pokalbis"</string>
-    <string name="connections" msgid="8098440723172028350">"Ryšiai"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Pridėti ryšį"</string>
-    <string name="recent" msgid="2659189233141493004">"Naujausi"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Vėliausi naujiniai"</string>
     <string name="account_type_format" msgid="718948015590343010">"„<xliff:g id="SOURCE">%1$s</xliff:g>“ kontaktas"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"„<xliff:g id="SOURCE">%1$s</xliff:g>“ paskyra"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Iš šios programos redaguoti negalima."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Negalima redaguoti šiame įrenginyje."</string>
     <string name="take_photo" msgid="7496128293167402354">"Fotografuoti"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Iš naujo fotografuoti"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Pasirinkti nuotrauką"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Pasirinkti naują nuotrauką"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Atnaujinamas kontaktų sąrašas."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Ieškoma…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Rodyti pasirinktus"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Rodyti visus"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Pasirinkti visus"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Atšaukti visų pasirinkimą"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Pridėti naują"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Pridėti organizaciją"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Grupės pavad."</string>
-    <string name="change_photo" msgid="8530597935483526383">"Pakeisti"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Pagrindinė nuotrauka"</string>
-    <string name="description_star" msgid="2605854427360036550">"įtraukti į adresyną"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Redaguoti kontaktą"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Susieti dabartinį kontaktą su pasirinktu?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiketė"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Atšaukti"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Atgal"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"uždaryti"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Perjungti į pasirinkto kontakto redagavimą? Iki šiol įvesta informacija bus nukopijuota."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopijuoti į „Mano kontaktus“"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Pridėti prie „Mano kontaktų“"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"„<xliff:g id="TYPE">%1$s</xliff:g>“ katalogas"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Priskirtas"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Nustatymai"</string>
     <string name="menu_settings" msgid="377929915873428211">"Nustatymai"</string>
     <string name="menu_help" msgid="1680178646764069976">"Pagalba ir atsiliepimai"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Pateikties parinktys"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"„<xliff:g id="COMPANY_0">%2$s</xliff:g>“, „<xliff:g id="COMPANY_1">%1$s</xliff:g>“"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefono numeris"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Pridėti prie kontaktų"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Pridėti prie kontakto"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Uždaryti"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Įtraukti metus"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontaktas"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Įkeliama..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Sukurti naują kontaktą"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Pridėti paskyrą"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importuoti kontaktus"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Sukurti naują grupę"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Sukurti naują grupę"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> grupė</item>
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> grupės</item>
-      <item quantity="many"><xliff:g id="COUNT">%0$d</xliff:g> grupės</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupių</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Ištrinti grupę „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Kontaktai nebus ištrinti.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> žmogus iš <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> žmonės iš <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> žmogaus iš <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> žmonių iš <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> žmogus</item>
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> žmonės</item>
-      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> žmogaus</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> žmonių</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importuoti"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Sukurti naują..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Ištrinti etiketę „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Kontaktai nebus ištrinti.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Įveskite kontakto vardą prieš susiedami jį su kitu kontaktu."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopijuoti į iškarpinę"</string>
     <string name="set_default" msgid="4417505153468300351">"Nustatyti numatytuosius nustatymus"</string>
     <string name="clear_default" msgid="7193185801596678067">"Išvalyti numatytuosius nustatymus"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Tekstas nukopijuotas"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Atmesti pakeitimus?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Atmesti"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Nustatyti mano profilį"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Įveskite asmens vardą ir (arba) pavardę"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Grupės pavadinimas"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Atmesti pakeitimus?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Atmesti"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Atšaukti"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Atmesti tinkinimo veiksmus?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Ieškokite kontaktų"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Pašalinti kontaktus"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mano vietos profilis"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mano „<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>“ profilis"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Pateikiami visi kontaktai"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktai veikia geriau naudojant „Google“ paskyrą.\n\n• Pasiekite naudodami bet kurią žiniatinklio naršyklę.\n• Saugiai kurkite atsargines kontaktų kopijas."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Užtikrinkite kontaktų saugumą net praradę telefoną: sinchronizuokite su internetine paslauga."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Pridėti paskyrą"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Naujo kontakto atsarginė kopija nebus sukurta. Pridėti paskyrą, kuri sukuria atsargines kontaktų kopijas internete?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Skirkite šiek tiek laiko ir pridėkite paskyrą, kurią naudojant bus kuriama atsarginė kontaktų kopija sistemoje „Google“."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nauji kontaktai bus išsaugoti paskyroje <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Pasirinkite numatytąją naujų kontaktų paskyrą:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Pridėti naują kont."</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Sukurti naują kontaktą"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Redaguoti kontaktą"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Išsaug. kaip vietinį"</string>
-    <string name="add_account" msgid="8201790677994503186">"Pridėkite paskyrą"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Tik peržiūrėti"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Pasirinkite norimą redaguoti kontaktą"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Susieti kontaktai"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Pridėti"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Atsieti"</string>
+    <string name="add_account" msgid="8201790677994503186">"Pridėti paskyrą"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Pridėkite naują paskyrą"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Eksportuoti duomenų failus"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"pridėti naują kontaktą"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Sukurti naują kontaktą"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Žr. daugiau"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Žr. mažiau"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Žr. viską"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Naujausios"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Naujausi"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Apie"</string>
-    <string name="send_message" msgid="8938418965550543196">"Siųsti pranešimą"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Kuriama asmeninė kopija..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Vakar"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Kuriama asmeninė kopija..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Rytoj"</string>
     <string name="today" msgid="8041090779381781781">"Šiandien"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Šiandien, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Rytoj, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Įvykis be pavadinimo)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Nustatyti"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"TP"</string>
@@ -284,104 +227,321 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Svetainė"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Įvykis"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Ryšys"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Paskyra"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Pavadinimas"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Vardas"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"El. paštas"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefonas"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Nuotrauka"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Spustelėkite, kad išskleistumėte kontaktų redagavimo priemonę."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Spustelėkite, kad sutrauktumėte kontaktų redagavimo priemonę."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"nuorodos į vietovę"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Neseniai atsiuntė SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Spustelėkite, kad atsakytumėte."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Neseniai atsiuntė SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Spustelėkite, kad atsakytumėte."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"gaunamieji"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"siunčiamieji"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"praleistieji"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Neseniai skambino. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Spustelėkite, kad atskambintumėte."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Neseniai skambino. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Spustelėkite, kad atskambintumėte."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Jūs: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"„Hangout“ veikia geriau įvedus asmens „Hangout“ identifikatorių el. pašto ar telefono numerio lauke."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Daugiau laukų"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Keisti nuotrauką"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Nepavyko atidaryti redagavimo priemonės."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Išsaugoma į"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Šiuo metu išsaugoma <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dukart palieskite, kad pasirinktumėte kitą paskyrą."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Susieti kontaktai (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">Susieti kontaktai (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">Susieti kontaktai (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Susieti kontaktai (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Susietų kontaktų: <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Daugiau laukų"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Pakeisti kontakto nuotrauką"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Pridėti kontakto nuotrauką"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontakto nuotrauka"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Nepavyko atidaryti redagavimo priemonės."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Išsaugoma"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontakto informacijos iš <xliff:g id="ACCOUNT">%s</xliff:g> redaguoti negalima"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"SUSIETI KONTAKTUS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ATŠAUKTI"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> galima tiksli kopija</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> galimos tikslios kopijos</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> galimos tikslios kopijos</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> galimų tikslių kopijų</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> susietas kontaktas</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> susieti kontaktai</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> susieto kontakto</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> susietų kontaktų</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g> <xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Šis kontaktas"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Galimos tikslios kopijos"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Šie kontaktai gali būti tas pats asmuo. Galite juos susieti kaip vieną kontaktą."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Susieti kontaktai"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Iš jūsų paskyrų"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Fotografuoti"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Visos nuotraukos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Pasirinkti nuotrauką"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Iš <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Ištrinti <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Ištrinti <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Ištrinti <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Nuotrauka iš <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> nepažymėta"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Nuotrauka iš <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> pažymėta"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Nepažymėta nuotrauka iš nežinomos paskyros"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Pažymėta nuotrauka iš nežinomos paskyros"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Adresatų sąrašas atnaujinamas, kad būtų pakeista kalba.\n\nPalaukite..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Pridėti numerį"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokuoti numerį"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Prid. nr. arba iešk. kontaktų"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Panaikinti numerio <xliff:g id="NUMBER">%1$s</xliff:g> blokavimą?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"PANAIKINTI BLOKAVIMĄ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokuoti numerį <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKUOTI"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> užblokuotas"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Panaikintas <xliff:g id="NUMBER">%1$s</xliff:g> blokavimas"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> yra netinkamas numeris."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Skamb. blokavimo funkcija laikinai išj."</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Skambučių blokavimo funkcija buvo išjungta, nes iš šio telefono buvote susisiekę su pagalbos tarnybomis per pastarąsias 48 val. Ši funkcija bus automatiškai įgalinta iš naujo, kai 48 val. laikotarpis pasibaigs."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importuoti"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Žr. skaičius"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Pridėti numerį"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Skambučių blokavimas išjungtas 48 val."</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Išjungta, nes skambinta pagalbos numeriu."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ANULIUOTI"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> jau užblokuotas."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Panaikinti numerio blokavimą"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Išsami kontaktinė informacija: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importuoti nepavyko"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importuoti numerius"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Įjungti"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Pasiūlymai"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Naujiena"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Atidaryti naršymo skydelį"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Uždaryti naršymo skydelį"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiketė „<xliff:g id="LABEL_NAME">%s</xliff:g>“"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiketės"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Paskyros"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Peržiūrėkite istoriją kartu"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Įvykiai ir pranešimai"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Įvykiai"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Pranešimai"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Pasiūlymai"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Turėkite tvarkingus ir naudingus kontaktus"</string>
+    <string name="undo" msgid="1425165101664071422">"Anuliuoti"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Skambinti numeriu <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Skambinti į namų telefoną"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Skambinti į mobilųjį telefoną"</string>
+    <string name="call_work" msgid="5328785911463744028">"Skambinti į darbo telefoną"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Skambinti į darbo faksą"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Skambinti į namų faksą"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Skambinti į pranešimų gaviklį"</string>
+    <string name="call_other" msgid="8563753966926932052">"Skambinti"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Skambinti atgalinio skambinimo būdu"</string>
+    <string name="call_car" msgid="3280537320306436445">"Skambinti automobilio telefono numeriu"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Skambinti į pagrindinį įmonės telefoną"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Skambinti ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Skambinti į pagrindinį telefoną"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Skambinti fakso numeriu"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Skambinti radijo telefono numeriu"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Skambinti telekso numeriu"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Skambinti TTY / TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Skambinti darbo mobiliuoju telefonu"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Skambinti į darbo pranešimų gaviklį"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Skambinti numeriu <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Skambinti MMS telefono numeriu"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (skambutis)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Siųsti žinutę numeriu <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Siųsti teksto pranešimą į namų telefoną"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Siųsti teksto pranešimą į mobilųjį telefoną"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Siųsti pranešimą į darbo telefoną"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Siųsti pranešimą į darbo faksą"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Siųsti pranešimą į namų faksą"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Siųsti pranešimą į pranešimų gaviklį"</string>
+    <string name="sms_other" msgid="806127844607642331">"Tekstas"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Siųsti pranešimą atgalinio skambinimo numeriu"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Siųsti teksto pranešimą į automobilio telefoną"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Siųsti pranešimą pagrindiniu įmonės telefono numeriu"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Siųsti pranešimą ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Siųsti SMS į pagrindinį telefoną"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Siųsti teksto pranešimą į faksą"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Siųsti teksto pranešimą radijo telefono numeriu"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Siųsti pranešimą telekso numeriu"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Siųsti pranešimą TTY / TDD numeriu"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Siųsti pranešimą į darbo mobilųjį telefoną"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Siųsti pranešimą į darbo teksto pranešimų gaviklį"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Siųsti teksto pranešimą <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Siųsti MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (pranešimas)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Atlikti vaizdo skambutį"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Išvalyti dažniaus. naud. kontaktus?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Išvalysite dažniausių kontaktų sąrašą Kontaktų ir Telefono programose, o el. pašto programoms reikės iš naujo gauti adresavimo nuostatas."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Valomi dažniaus. naud. kontaktai…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Pasiekiamas"</string>
+    <string name="status_away" msgid="1838861100379804730">"Pasišalinęs"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Užsiėmęs"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Kita"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Katalogas"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Darbo katalogas"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Visi kontaktai"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Spartusis <xliff:g id="NAME">%1$s</xliff:g> kontaktas"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Nėra pavadinimo)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Dažnai susisiekiama"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Visi kontaktai su telefonų numeriais"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Darbo profilio kontaktai"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Žiūrėti naujinius"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Įrenginys"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Pavadinimas"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Slapyvardis"</string>
+    <string name="name_given" msgid="4280790853455320619">"Vardas"</string>
+    <string name="name_family" msgid="7466985689626017037">"Pavardė"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Priešvardis"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Antras vardas"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Povardis"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetinis vardas"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Vardo fonetinė forma"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetinis antrasis vardas"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Pavardės fonetinė forma"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefonas"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"El. paštas"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresas"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"TP"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacija"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Ryšys"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Speciali data"</string>
+    <string name="sms" msgid="1756857139634224222">"Teksto pranešimas"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresas"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Įmonė"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Pareigos"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Pastabos"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Tinkintas"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Svetainė"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiketės"</string>
+    <string name="email_home" msgid="8573740658148184279">"Namų el. paštas"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Siųsti el. laišką mobiliuoju el. pašto adresu"</string>
+    <string name="email_work" msgid="2807430017302722689">"Siųsti el. laišką į darbo el. paštą"</string>
+    <string name="email_other" msgid="3454004077967657109">"El. paštas"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Siųsti el. laišką adresu <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Siųsti el. paštu"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Gatvė"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Miestas"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Būsena"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Pašto kodas"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Šalis"</string>
+    <string name="map_home" msgid="1243547733423343982">"Žiūrėti namų adresą"</string>
+    <string name="map_work" msgid="1360474076921878088">"Žiūrėti darbo adresą"</string>
+    <string name="map_other" msgid="3817820803587012641">"Žiūrėti adresą"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Peržiūrėti <xliff:g id="CUSTOM_LABEL">%s</xliff:g> adresą"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Kalbėti naudojant AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Kalbėti naudojant „Windows Live“"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Kalbėti naudojant „Yahoo“"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Kalbėti naudojant „Skype“"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Kalbėti naudojant QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Kalbėti naudojant „Google“ pokalbius"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Kalbėti naudojant ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Kalbėti naudojant „Jabber“"</string>
+    <string name="chat" msgid="9025361898797412245">"Kalbėti"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ištrinti"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Rodyti daugiau vardų laukų"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Sutraukti vardų laukus"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Rodyti daugiau fonetinių vardų laukų"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Sutraukti fonetinių vardų laukus"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Išskleisti"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Sutraukti"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Išskleista"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Sutraukta"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Visi kontaktai"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Pažymėta žvaigždute"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Tinkinti"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontaktas"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Visi kiti kontaktai"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Visi kontaktai"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Pašalinti sinchronizuojamą grupę"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Pridėti sinchronizuotą grupę"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Daugiau grupių..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Iš sinchronizavimo pašalinus „<xliff:g id="GROUP">%s</xliff:g>“, bus pašalinti ir nesugrupuoti kontaktai."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Išsaugomos pateikties parinktys..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Tinkintas rodinys"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Importuotus kontaktus išsaugoti paskyroje:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM kortelė"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM kortelė „<xliff:g id="SIM_NAME">%1$s</xliff:g>“"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d kontaktas</item>
+      <item quantity="few">%1$d kontaktai</item>
+      <item quantity="many">%1$d kontakto</item>
+      <item quantity="other">%1$d kontaktų</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> kontaktas • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontaktai • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> kontakto • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontaktų • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf failas"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nėra nieko, ką būtų galima importuoti"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importuoti kontaktus iš „vCard“?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Atšaukti <xliff:g id="FILENAME">%s</xliff:g> importavimą?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Atšaukti <xliff:g id="FILENAME">%s</xliff:g> eksportavimą?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Nepavyko atš. „vCard“ imp. / eksp."</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Nežinoma klaida."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nepavyko atidaryti „<xliff:g id="FILE_NAME">%1$s</xliff:g>“: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nepavyko inicijuoti eksportavimo priemonės: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nėra eksportuojamo kontakto."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Išjungėte būtiną leidimą."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Eksportuojant įvyko klaida: „<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Įvesties / išvesties klaida"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nepakanka atminties. Gali būti, kad failas per didelis."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formatas nepalaikomas."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Baigta eksportuoti „<xliff:g id="FILENAME">%s</xliff:g>“."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Baigta eksportuoti kontaktus."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontaktai baigti eksportuoti. Spustelėkite pranešimą ir bendrinkite kontaktus."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Palieskite, kad bendrintumėte kontaktus."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> eksportavimas atšauktas."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Eksportuojami adresatų duomenys"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontaktų duomenys eksportuojami."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nepavyko gauti duomenų bazės informacijos."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nėra jokių eksportuotinų kontaktų."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"El. vizitinių kortelių rengyklė nebuvo tinkamai paleista."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Nepavyko eksportuoti"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontakto duomenys nebuvo eksportuoti.\nPriežastis: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importuojama <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nepavyko nuskaityti „vCard“ duomenų"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Baigtas „<xliff:g id="FILENAME">%s</xliff:g>“ el. vizitinės kortelės importavimas"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Atšauktas <xliff:g id="FILENAME">%s</xliff:g> importavimas"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> bus netrukus importuotas."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Failas bus netrukus importuotas."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"El. vizitinės kortelės importavimo užklausa atmesta. Bandykite vėliau."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Netrukus kontaktai bus eksportuoti."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"El. vizitinės kortelės eksportavimo užklausa buvo atmesta. Bandykite vėliau."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontaktas"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"El. vizitinė (-ės) kortelė (-ės) padedama (-os) į vietinę laikinąją atmintinę. Netrukus bus pradėtas tikrasis importavimas."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Nepavyko importuoti el. vizit. kortelės."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Gauta per ALR"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Dedama į talpyklą…"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importuojama <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Eksportuoti į .vcf failą"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Rūšiuoti pagal"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Vardo fonetinė forma"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Visada rodyti"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Slėpti, jei lauk. tuščias"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Vardas"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Pavardė"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Vardo formatas"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Pirmiausia vardas"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Pirmiausia pavardė"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Paskyros"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Numatytoji naujų kontaktų paskyra"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mano informacija"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Nustatykite profilį"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Apie Kontaktus"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Bendrinti mėgstamiausius kontaktus"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Bendrinti visus kontaktus"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Nepavyko bendrinti kontaktų."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Eksportuoti kontaktus"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Kontaktų formos importavimas"</string>
+    <string name="share_error" msgid="948429331673358107">"Šio kontakto negalima bendrinti."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nėra bendrintinų kontaktų."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Pateiktini kontaktai"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Pateiktini kontaktai"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Rodinio tinkinimas"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Išsaugoti"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Ieškokite kontaktų"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Adresynas"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importuoti"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksportuoti"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Užblokuoti numeriai"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"naudojant „<xliff:g id="SOURCE">%1$s</xliff:g>“"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> naudojant „<xliff:g id="SOURCE">%2$s</xliff:g>“"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"sustabdyti paiešką"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Išvalyti paiešką"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Paskyra"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Visada naudoti tai skambučiams"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Skambutis su užrašu"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Įveskite užrašą, kurį norite išsiųsti skambindami..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SIŲSTI IR SKAMBINTI"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versija"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Atvirojo šaltinio licencijos"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Išsami atvirojo šaltinio programinės įrangos licencijos informacija"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Privatumo politika"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Paslaugų teikimo sąlygos"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Atvirojo šaltinio licencijos"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Nepavyko atidaryti URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> pažymėta"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> nepažymėta"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Atlikti vaizdo skambutį"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Ištrinti"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Daugtaškis"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min. <xliff:g id="SECONDS">%2$s</xliff:g> sek."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> val. <xliff:g id="MINUTES_1">%2$s</xliff:g> min. <xliff:g id="SECONDS">%3$s</xliff:g> sek."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Šis spartusis klavišas išjungtas"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontaktas pašalintas"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importuoti"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Pasirinkti kontaktus"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM kortelėje nėra jokių kontaktų"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontaktas jau yra jūsų kontaktų sąraše"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">Importuotas <xliff:g id="COUNT">%d</xliff:g> SIM kortelės kontaktas</item>
+      <item quantity="few">Importuoti <xliff:g id="COUNT">%d</xliff:g> SIM kortelės kontaktai</item>
+      <item quantity="many">Importuota <xliff:g id="COUNT">%d</xliff:g> SIM kortelės kontakto</item>
+      <item quantity="other">Importuota <xliff:g id="COUNT">%d</xliff:g> SIM kortelės kontaktų</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Nepavyko importuoti SIM kortelės kontaktų"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importuoti iš SIM kortelės"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Atšaukti"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatinis sinchronizavimas išjungtas. Jei norite įjungti, palieskite."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Atsisakyti"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Paskyros sinchronizavimas išjungtas. Jei norite įjungti, palieskite."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Įjungti automatinį sinchronizavimą?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Pakeitimai, kuriuos atliksite visose programose ir paskyrose (ne tik „Google“ kontaktuose), bus atnaujinami žiniatinklyje ir jūsų įrenginiuose."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Įjungti"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Nėra ryšio"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM kort."</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Rodyti daugiau"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM kortelės kontaktai importuoti"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Nepavyko importuoti"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nepavyko importuoti kontaktų iš SIM kortelės"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importuojami SIM kortelės kontaktai"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 0496c10..77ff461 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontaktpersonas"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontaktpersonas"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Kontaktpersonas datu skatīšana"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Kontaktpersonas datu rediģēšana"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontaktpersonas"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Pievienot kontaktpersonu"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontaktpersona"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Tiešais zvans"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Tiešais ziņojums"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Izvēlieties kontaktpersonas saīsni"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Izvēlieties numuru, uz kuru zvanīt"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Izvēlieties numuru, uz kuru sūtīt īsziņu"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Kontaktpersonas izvēle"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Pievienot kontaktpersonai"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontaktpersonas izvēle"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Radiet jaunu kontaktpersonu"</string>
-    <string name="starredList" msgid="4817256136413959463">"Atzīmēti ar zvaigznīti"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Bieži"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Izlase"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Informācija par kontaktpersonu"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Rediģēt kontaktpersonu"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Izveidot kontaktpersonu"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Rediģēt grupu"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Izveidot grupu"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Par"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Atjaunināj."</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Atlasīt"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Izveidojiet jaunu kontaktpersonu"</string>
     <string name="searchHint" msgid="8482945356247760701">"Meklēt kontaktpersonas"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Skatīt kontaktpersonu"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Pievienot izlasei"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Noņemt no izlases"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Noņemts no izlases"</string>
@@ -49,41 +35,59 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Rediģēt"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Dzēst"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Mainīt fotoattēlu"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Novietot sākuma ekrānā"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Zvanīt kontaktpersonai"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Sūtīt īsziņu kontaktpersonai"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Izveidot saīsni"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Atsaistīt"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Rediģēt"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Dzēst"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Pievienot kontaktpersonu"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Pievienot grupu"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Noņemt kontaktpersonas"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Pārdēvēt iezīmi"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Dzēst iezīmi"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Pievienot kontaktpersonu"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Atlasīt kontaktpersonas"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Pievienot kontaktpersonas"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Noņemt no iezīmes"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Izveidot iezīmi"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Vai atsaistīt šo kontaktpersonu un sadalīt vairākās kontaktpersonās?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Atsaistīt"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Vai vēlaties saglabāt veiktās izmaiņas, atsaistīt šo kontaktpersonu un sadalīt vairākās kontaktpersonās?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Saglabāt un atsaistīt"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Vai vēlaties saglabāt veiktās izmaiņas un saistīt ar atlasīto kontaktpersonu?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Saglabāt un saistīt"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Notiek piesaistīšana"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Notiek atsaistīšana"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Saistīt"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Skatīt saistītās kontaktpers."</string>
     <string name="menu_save" msgid="1727844363591825909">"Saglabāt"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"KONTAKTPERSONU SAISTĪŠANA"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontaktu saistīšana"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Izvēlieties kontaktpersonu, kuru vēlaties saistīt ar vārdu <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Rādīt visas kontaktpersonas"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Ieteiktās kontaktpersonas"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Visas kontaktpersonas"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ir saistīts"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktpersonas tika saistītas."</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g>: dzēsts"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> un <xliff:g id="NAME_1">%2$s</xliff:g>: dzēsti"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Dzēstās kontaktpersonas: <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="zero">Kontaktpersonas ir izdzēstas</item>
       <item quantity="one">Kontaktpersonas ir izdzēstas</item>
       <item quantity="other">Kontaktpersonas ir izdzēstas</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="zero"><xliff:g id="COUNT_1">%d</xliff:g> kontaktpersonas</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> kontaktpersona</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontaktpersonas</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="zero"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktpersonas (<xliff:g id="ACCOUNT_3">%2$s</xliff:g>)</item>
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktpersona (<xliff:g id="ACCOUNT_3">%2$s</xliff:g>)</item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktpersonas (<xliff:g id="ACCOUNT_3">%2$s</xliff:g>)</item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"No Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"No konta <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Iestatīt zv. signālu"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Visi zvani uz balss pastu"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontaktpersonas no tikai lasāmiem kontiem nevar dzēst, taču tās var paslēpt."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Paslēpt"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Dzēšamajā kontaktpersonā ir ietverta informācija no vairākiem kontiem. Informācija no tikai lasāmiem kontiem tiks paslēpta, nevis izdzēsta."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Lai veiktu saistīšanu, ir jāatlasa vismaz divas kontaktpersonas."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Vai saistīt atlasītās kontaktpersonas?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Saistīt"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Maršrutēt uz balss pastu"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Atcelt maršrutēšanu"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Šī kontaktpersona ir tikai lasāma. To nevar dzēst, bet var paslēpt."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Slēpt kontaktpersonu"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Šīs kontaktpersonas tikai lasāmie konti tiks paslēpti, nevis dzēsti."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Vai dzēst šo kontaktpersonu?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Vai dzēst atlasītās kontaktpersonas?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontaktpersonas no tikai lasāmiem kontiem nevar dzēst, taču tās var paslēpt."</string>
@@ -91,183 +95,125 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Dzēšot šo kontaktpersonu, tiks dzēsta informācija no vairākiem kontiem."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Vai dzēst šo kontaktpersonu?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Dzēst"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Atmest izmaiņas"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Šāda kontaktpersona nepastāv."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontaktpersona ir pievienota sākuma ekrānam."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontaktpersona <xliff:g id="NAME">%s</xliff:g> ir pievienota sākuma ekrānam."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Izveidot jaunu kontaktpersonu"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Izveidot jaunu kontaktpersonu"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizācija"</item>
-    <item msgid="7196592230748086755">"Piezīme"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Planšetdatorā nav pieejams neviens attēls."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Tālrunī nav pieejams neviens attēls."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Ierīcē nav pieejams neviens attēls."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontaktpersonas fotoattēls"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Pielāgots iezīmes nosaukums"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Pāradresēt zvanus tieši uz balss pastu"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Noņemt fotoattēlu"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nav kontaktpersonu"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nav grupu."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Lai izveidotu grupas, ir nepieciešams konts."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Šajā grupā nav personu."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Lai pievienotu personas, rediģējiet grupu."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Notiek kontaktpersonas saglabāšana…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Jūsu kontaktpersonu saraksts ir tukšs."</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nav nevienas kontaktpersonas ar šo iezīmi."</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Šajā kontā nav nevienas kontaktpersonas."</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Jūsu kontaktpersonu saraksts ir tukšs."</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Kontaktpersona <xliff:g id="DISPLAY_NAME">%s</xliff:g> saglabāta"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontaktpersona ir saglabāta."</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktpersonas ir atsaistītas"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Nevarēja saglabāt kontaktpersonas datu izmaiņas."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Nevarēja atsaistīt kontaktpersonu."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Nevarēja saistīt kontaktpersonu."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Saglabājot kontaktpersonu, radās kļūda."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Nevarēja saglabāt kontaktpersonas fotoattēla izmaiņas."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupa ir saglabāta."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Nevarēja saglabāt grupas izmaiņas."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> kontaktpersonas ar tālruņa numuriem</item>
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> kontaktpersona ar tālruņa numuriem</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktpersonas ar tālruņa numuriem</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nav nevienas kontaktpersonas ar tālruņa numuru"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="zero">Atrastas <xliff:g id="COUNT">%d</xliff:g> kontaktpersonas</item>
-      <item quantity="one">Atrasta <xliff:g id="COUNT">%d</xliff:g> kontaktpersona</item>
-      <item quantity="other">Atrastas <xliff:g id="COUNT">%d</xliff:g> kontaktpersonas</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Nevarēja saglabāt kontaktpersonas datu izmaiņas."</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Nevarēja atsaistīt kontaktpersonu."</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Nevarēja saistīt kontaktpersonu."</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Saglabājot kontaktpersonu, radās kļūda."</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Nevarēja saglabāt kontaktpersonas fotoattēla izmaiņas."</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Neizdevās ielādēt iezīmi"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Iezīme izdzēsta"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Iezīme izveidota"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Nevar izveidot iezīmi"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Iezīme atjaunināta"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Noņemtas no iezīmes"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Pievienota iezīmei"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Nevarēja saglabāt iezīmes izmaiņas."</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Attiecīgā iezīme jau pastāv."</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Dažām kontaktpersonām nav norādīta e-pasta adrese."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Dažām kontaktpersonām nav norādīts tālruņa numurs."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Sūtīt e-pasta ziņojumu"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Sūtīt ziņojumu"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Kontaktpersonu izvēle"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Sūtīt"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nav kontaktpersonu"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="zero">Atrastas <xliff:g id="COUNT">%d</xliff:g> kontaktpersonas</item>
-      <item quantity="one">Atrasta <xliff:g id="COUNT">%d</xliff:g> kontaktpersona</item>
-      <item quantity="other">Atrastas <xliff:g id="COUNT">%d</xliff:g> kontaktpersonas</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Visas"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Izlase"</string>
-    <string name="callBack" msgid="5498224409038809224">"Atzvanīt"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Zvanīt vēlreiz"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Atzvanīt"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Vai pievienot “<xliff:g id="EMAIL">%s</xliff:g>” kontaktpersonām?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kontaktpersonas fotoattēls"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"pluss"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> no <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktpersonas(-ām)"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Kontaktpersonu vārdi"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Netika atrasta neviena lietotne šīs darbības veikšanai."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Noklikšķiniet, lai atgrieztos iepriekšējā ekrānā."</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Pievienojiet tālruņa numuru"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Pievienojiet e-pasta adresi"</string>
     <string name="missing_app" msgid="1466111003546611387">"Netika atrasta neviena lietotne šīs darbības veikšanai."</string>
     <string name="menu_share" msgid="943789700636542260">"Kopīgot"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Pievienot kontaktpersonām"</string>
-    <string name="share_via" msgid="563121028023030093">"Kopīgot kontaktpersonu, izmantojot"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Izveidot grupu šajā kontā:"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Pievienot"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="zero">Kontaktpersonu kopīgošana, izmantojot</item>
+      <item quantity="one">Kontaktpersonu kopīgošana, izmantojot</item>
+      <item quantity="other">Kontaktpersonu kopīgošana, izmantojot</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Konta izvēle"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Iezīmes izveide"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Iezīmes pārdēvēšana"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Iezīmes nosaukums"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nosaukums"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Balss tērzēšana"</string>
     <string name="video_chat" msgid="1872255818640336072">"Video tērzēšana"</string>
-    <string name="connections" msgid="8098440723172028350">"Savienojumi"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Pievienot savienojumu"</string>
-    <string name="recent" msgid="2659189233141493004">"Jaunākās"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Nesen veiktie atj."</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontaktpersona"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> konts"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Nevar rediģēt šajā lietotnē."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Nevar rediģēt šajā ierīcē."</string>
     <string name="take_photo" msgid="7496128293167402354">"Uzņemt fotoattēlu"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Uzņemt jaunu fotoattēlu"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Izvēlēties fotoattēlu"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Atlasīt jaunu fotoattēlu"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktpersonu saraksts tiek atjaunināts."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Notiek meklēšana..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Rādīt atlasi"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Rādīt visus"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Atlasīt visas"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Noņemt atlasi visam"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Pievienot jaunu"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Pievienot organizāciju"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datums"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Grupas nosaukums"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Mainīt"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Galvenais foto"</string>
-    <string name="description_star" msgid="2605854427360036550">"izlase"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Kontaktpersonu rediģēšana"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vai saistīt pašreizējo saturu ar atlasīto kontaktpersonu?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Iezīme"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Atcelt"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Atpakaļ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"aizvērt"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Vai pāriet uz atlasītās kontaktpersonas rediģēšanu? Līdz šim ievadītā informācija tiks kopēta."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopēt uz manām kontaktpersonām"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Pievienot mapē Manas kontaktpersonas"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Katalogs <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Pielāgotas"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Iestatījumi"</string>
     <string name="menu_settings" msgid="377929915873428211">"Iestatījumi"</string>
     <string name="menu_help" msgid="1680178646764069976">"Palīdzība un atsauksmes"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Attēlošanas opcijas"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Tālruņa numurs"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Piev. kontaktpersonām"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Pievienot kontaktpersonai"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Aizvērt"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Iekļaut gadu"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontaktpersona"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Notiek ielāde..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Izveidot jaunu kontaktpersonu"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Pievienot kontu"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importēt kontaktpersonas"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Jaunas grupas izveide"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Izveidot jaunu grupu"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="zero"><xliff:g id="COUNT">%0$d</xliff:g> grupu</item>
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> grupa</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupas</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Vai dzēst grupu <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Kontaktpersonas netiks dzēstas.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="zero"><xliff:g id="COUNT_2">%1$d</xliff:g> personu grupā <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> persona grupā <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> personas grupā <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="zero"><xliff:g id="COUNT_1">%1$d</xliff:g> personu</item>
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> persona</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> personas</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importēt"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Izveidot jaunu…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Vai dzēst iezīmi “<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”? (Kontaktpersonas netiks dzēstas.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Ievadiet kontaktpersonas vārdu, pirms saistāt to ar citu kontaktpersonu."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopēt starpliktuvē"</string>
     <string name="set_default" msgid="4417505153468300351">"Iestatīt kā noklusējumu"</string>
     <string name="clear_default" msgid="7193185801596678067">"Notīrīt noklusējuma iestatījumus"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Teksts ir nokopēts"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Vai atmest veiktās izmaiņas?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Atmest"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> — <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Iestatīt savu profilu"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Rakstiet personas vārdu."</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Grupas nosaukums"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Vai atmest izmaiņas?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Atmest"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Atcelt"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Vai atmest pielāgojumus?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Meklēt kontaktpersonas"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Kontaktpersonu noņemšana"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mans vietējais profils"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mans <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profils"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Tiek attēlotas visas kontaktpersonas"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Lietotne “Kontaktpersonas” darbosies labāk, izmantojot Google kontu.\n\n• Piekļuve no jebkuras tīmekļa pārlūkprogrammas. \n• Droša kontaktpersonu informācijas dublēšana."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Nodrošinieties pret kontaktpersonu zudumu pat tālruņa nozaudēšanas gadījumā — sinhronizējiet informāciju ar tiešsaistes pakalpojumu."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Konta pievienošana"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Jaunā kontaktinformācija netiks dublēta. Vai pievienot kontu, kurā tiek tiešsaistē dublēta kontaktinformācija?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Veltiet brīdi laika, lai pievienotu kontu un savas kontaktpersonas dublētu ar Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Jaunas kontaktpersonas tiks saglabātas kontā <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Izvēlieties noklusējuma kontu, kurā saglabāt jaunās kontaktpersonas:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Pievienošana"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Jauna kontaktpersona"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Rediģēšana"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Saglabāt vietēji"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Tikai skatīšana"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Rediģējamās kontaktpersonas izvēle"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Saistītās kontaktpersonas"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Pievienot"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Atsaistīt"</string>
     <string name="add_account" msgid="8201790677994503186">"Pievienot kontu"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Pievienot jaunu kontu"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Eksportēt datu bāzes failus"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"pievienot jaunu kontaktpersonu"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Izveidot jaunu kontaktpersonu"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Skatīt vairāk"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Skatīt mazāk"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Skatīt visu"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Nesenie"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Par"</string>
-    <string name="send_message" msgid="8938418965550543196">"Sūtīt ziņojumu"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Notiek personīgās kopijas izveide…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Vakar"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Notiek personīgā eksemplāra izveide..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Rīt"</string>
     <string name="today" msgid="8041090779381781781">"Šodien"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Šodien plkst. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Rīt plkst. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Pasākums bez nosaukuma)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Iestatīt"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Tūlītējā ziņojumapmaiņa"</string>
@@ -277,100 +223,318 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Vietne"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Pasākums"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Saistība"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Konts"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nosaukums"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-pasta adrese"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Tālrunis"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotoattēls"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Noklikšķiniet, lai izvērstu kontaktpersonu redaktoru."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Noklikšķiniet, lai sakļautu kontaktpersonu redaktoru."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"norādes uz atrašanās vietu"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Nesen saņemta īsziņa. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Noklikšķiniet, lai atbildētu."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Nesen saņemta īsziņa. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Noklikšķiniet, lai atbildētu."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ienākošs"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"izejošs"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"neatbildēts"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Nesen saņemts zvans. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Noklikšķiniet, lai atzvanītu."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Nesen saņemts zvans. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Noklikšķiniet, lai atzvanītu."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Jūs: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Funkcija Hangouts darbojas precīzāk, ja e-pasta vai tālruņa laukā ievadāt personas Hangouts identifikatoru."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Vairāk lauku"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Mainīt fotoattēlu"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Neizdevās atvērt redaktoru."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Tiks saglabāts šajā kontā:"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Pašlaik notiek saglabāšana kontā <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Veiciet dubultskārienu, lai izvēlētos citu kontu."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="zero">Saistītas kontaktpersonas (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Saistītas kontaktpersonas (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Saistītas kontaktpersonas (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> saistītas kontaktpersonas"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Vairāk lauku"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Mainīt kontaktpersonas fotoattēlu"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Pievienot kontaktpersonas fotoattēlu"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontaktpersonas fotoattēls"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Neizdevās atvērt redaktoru."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Tiks saglabāts šajā kontā:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Konta <xliff:g id="ACCOUNT">%s</xliff:g> kontaktinformāciju nevar rediģēt"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"SAISTĪT KONTAKTPERSONAS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ATCELT"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> iespējami dublikāti</item>
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> iespējams dublikāts</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> iespējami dublikāti</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="zero"><xliff:g id="COUNT">%d</xliff:g> saistītu kontaktpersonu</item>
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> saistīta kontaktpersona</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saistītas kontaktpersonas</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="zero">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Šī kontaktpersona"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Iespējamie dublikāti"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Iespējams, šīs kontaktpersonas ir viena un tā pati persona. Varat tās apvienot vienā kontaktpersonā."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Saistītās kontaktpersonas"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"No jūsu kontiem"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Uzņemt fotoattēlu"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Visi fotoattēli"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Fotoattēla izvēle"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"No: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Dzēst: <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Dzēst: <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Dzēst: <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotoattēls no <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> nav atlasīts."</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Fotoattēls no <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> ir atlasīts."</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Nav atzīmēts fotoattēls no nezināma konta"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Atzīmēts fotoattēls no nezināma konta"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kontaktpersonu saraksts tiek atjaunināts, lai atainotu valodas maiņu.\n\nLūdzu, uzgaidiet..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Pievienot numuru"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloķēt numuru"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Pievienojiet numuru vai meklējiet kontaktpersonas"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vai atbloķēt numuru <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ATBLOĶĒT"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vai bloķēt numuru <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOĶĒT"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> bloķēts"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> atbloķēts"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> nav derīgs."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Zvanu bloķēšana ir īslaicīgi izslēgta"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Zvanu bloķēšana ir atspējota, jo pēdējo 48 stundu laikā jūs sazinājāties ar ārkārtas palīdzības dienestiem, izmantojot šo tālruni. Zvanu bloķēšana tiks automātiski iespējota, tiklīdz beigsies 48 stundu periods."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importēt"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Skatīt numurus"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Pievienot numuru"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Zvanu bloķēšana atspējota uz 48 stundām"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Zvanu bloķēšana atspējota, jo tika veikts ārkārtas zvans."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ATSAUKT"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> jau ir bloķēts."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Atbloķēt numuru"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Kontaktpersonas informācija: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importēšana neizdevās"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importēt numurus"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Ieslēgt"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Ieteikumi"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Jauns"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Atvērt navigācijas atvilktni"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Aizvērt navigācijas atvilktni"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Iezīme “<xliff:g id="LABEL_NAME">%s</xliff:g>”"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Iezīmes"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Konti"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Skatīt visu jūsu vēsturi"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Pasākumi un ziņojumi"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Pasākumi"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Ziņojumi"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Ieteikumi"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Kārtojiet kontaktpersonas un nodrošiniet to noderīgumu"</string>
+    <string name="undo" msgid="1425165101664071422">"Atsaukt"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Zvanīt: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Zvanīt uz mājas numuru"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Zvanīt uz mobilo tālruni"</string>
+    <string name="call_work" msgid="5328785911463744028">"Zvanīt uz darba numuru"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Zvanīt uz darba faksa numuru"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Zvanīt uz mājas faksa numuru"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Zvanīt uz peidžeru"</string>
+    <string name="call_other" msgid="8563753966926932052">"Zvanīt"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Zvanīt uz atzvana numuru"</string>
+    <string name="call_car" msgid="3280537320306436445">"Zvanīt uz automobili"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Zvanīt uz uzņēmuma galveno tālruņa numuru"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Zvanīt uz ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Zvanīt uz galveno tālruņa numuru"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Zvanīt uz faksu"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Zvanīt uz radioierīci"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Zvanīt uz teleksu"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Zvanīt uz teletaipu/surdotālruni"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Zvanīt uz darba mobilo tālruni"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Zvanīt uz darba peidžeru"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Zvanīt: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Zvanīt uz multiziņas numuru"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (zvanīt)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Sūtīt īsziņu: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Sūtīt īsziņu uz mājas tālruņa numuru"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Sūtīt īsziņu uz mobilo tālruni"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Sūtīt īsziņu uz darba numuru"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Sūtīt īsziņu uz darba faksa numuru"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Sūtīt īsziņu uz mājas faksa numuru"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Sūtīt īsziņu uz peidžeru"</string>
+    <string name="sms_other" msgid="806127844607642331">"Sūtīt īsziņu"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Sūtīt īsziņu uz atzvana numuru"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Sūtīt īsziņu uz automobiļa numuru"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Sūtīt īsziņu uz uzņēmuma galveno tālruņa numuru"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Sūtīt īsziņu uz ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Sūtīt īsziņu uz galveno tālruņa numuru"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Sūtīt īsziņu uz faksu"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Sūtīt īsziņu uz radioierīci"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Sūtīt īsziņu uz teleksa numuru"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Sūtīt īsziņu uz teletaipu/surdotālruni"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Sūtīt īsziņu uz darba mobilo tālruni"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Sūtīt īsziņu uz darba peidžeru"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Sūtīt īsziņu: <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Sūtīt multiziņu"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (sūtīt īsziņu)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Veikt videozvanu"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Vai dzēst bieži lietotos kontaktus?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Tiks dzēsts bieži lietoto kontaktpersonu saraksts lietotnēs Kontaktpersonas un Tālrunis, un e-pasta lietotnēs no jauna tiks sākta adrešu preferenču saglabāšana."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Bieži lietoto kontaktu dzēšana..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Pieejama"</string>
+    <string name="status_away" msgid="1838861100379804730">"Prombūtnē"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Aizņemts"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Cits"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Katalogs"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Darba katalogs"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Visas kontaktpersonas"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Ātrā saziņa ar kontaktpersonu <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(nav vārda)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Bieža saziņa"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Visas kontaktpersonas ar tālruņa numuriem"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontaktpersonas darba profilā"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Skatīt atjaunināj."</string>
+    <string name="account_phone" msgid="7128032778471187553">"Ierīce"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Vārds"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Segvārds"</string>
+    <string name="name_given" msgid="4280790853455320619">"Vārds"</string>
+    <string name="name_family" msgid="7466985689626017037">"Uzvārds"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Uzruna"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Otrais vārds"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Uzruna"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Vārda izruna"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Vārda izruna"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Otrā vārda izruna"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Uzvārda izruna"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Tālrunis"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-pasts"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adrese"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Tūlītējā ziņojumapmaiņa"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizācija"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Saistība"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Īpašs datums"</string>
+    <string name="sms" msgid="1756857139634224222">"Īsziņa"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adrese"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Uzņēmums"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Nosaukums"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Piezīmes"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Pielāgota"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Vietne"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Iezīmes"</string>
+    <string name="email_home" msgid="8573740658148184279">"Sūtīt e-pasta ziņojumu uz privāto adresi"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Sūtīt e-pasta ziņojumu uz mobilo tālruni"</string>
+    <string name="email_work" msgid="2807430017302722689">"Sūtīt e-pasta ziņojumu uz darba adresi"</string>
+    <string name="email_other" msgid="3454004077967657109">"Sūtīt e-pasta ziņojumu"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Sūtīt e-pasta ziņojumu: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Sūtīt e-pasta ziņojumu"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Iela"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Pilsēta"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Štats"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Pasta indekss"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Valsts"</string>
+    <string name="map_home" msgid="1243547733423343982">"Skatīt mājas adresi"</string>
+    <string name="map_work" msgid="1360474076921878088">"Skatīt darba adresi"</string>
+    <string name="map_other" msgid="3817820803587012641">"Skatīt adresi"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Skatīt adresi: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Tērzēt, izmantojot AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Tērzēt, izmantojot Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Tērzēt, izmantojot Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Tērzēt, izmantojot Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Tērzēt, izmantojot QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Tērzēt, izmantojot Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Tērzēt, izmantojot ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Tērzēt, izmantojot Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Tērzēt"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"dzēst"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Rādīt vairāk vārdu lauku"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Sakļaut nosaukumu laukus"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Rādīt vairāk vārdu izrunas lauku"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Sakļaut vārda izrunas laukus"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Izvērst"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Sakļaut"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Izvērsts"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Sakļauts"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Visas kontaktpersonas"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Atzīmēts ar zvaigznīti"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Pielāgot"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontaktpersona"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Citas kontaktpersonas"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Visas kontaktpersonas"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Noņemt sinhronizējamo grupu"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Pievienot sinhronizējamu grupu"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Vairāk grupu..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Pārtraucot grupas <xliff:g id="GROUP">%s</xliff:g> sinhronizāciju, tiks pārtraukta arī visu negrupēto kontaktpersonu sinhronizācija."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Notiek attēlojuma opciju saglabāšana..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Pielāgots skatījums"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Saglabāt importētās kontaktpersonas šeit:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM karte"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM karte <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="zero">%1$d kontaktpersonu</item>
+      <item quantity="one">%1$d kontaktpersona</item>
+      <item quantity="other">%1$d kontaktpersonas</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="zero"><xliff:g id="COUNT_2">^1</xliff:g> kontaktpersonu • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> kontaktpersona • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontaktpersonas • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf fails"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nav vienumu importēšanai"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Vai importēt kontaktpersonas no vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Vai atcelt faila <xliff:g id="FILENAME">%s</xliff:g> importēšanu?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Vai atcelt faila <xliff:g id="FILENAME">%s</xliff:g> eksportēšanu?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Nevarēja atcelt vCard f. import./eksp."</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Nezināma kļūda."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nevarēja atvērt failu <xliff:g id="FILE_NAME">%1$s</xliff:g>: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nevarēja startēt eksportētāju: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nav nevienas eksportējamas kontaktpersonas."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Jūs esat atspējojis obligātu atļauju."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Eksportēšanas laikā radās kļūda: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Ievades/izvades kļūda."</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Atmiņā nepietiek vietas. Iespējams, fails ir pārāk liels."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Šāds formāts netiek atbalstīts."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Faila <xliff:g id="FILENAME">%s</xliff:g> eksportēšana pabeigta"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Kontaktpersonu eksportēšana ir pabeigta."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontaktpersonu eksportēšana ir pabeigta. Lai kopīgotu kontaktpersonas, noklikšķiniet uz paziņojuma."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Pieskarieties, lai kopīgotu kontaktpersonas."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Faila <xliff:g id="FILENAME">%s</xliff:g> eksportēšana atcelta"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kontaktpersonu datu eksportēšana"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontaktpersonu dati tiek eksportēti."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nevarēja iegūt informāciju no datu bāzes."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nav eksportējamu kontaktpersonu."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Netika pareizi startēts vCard veidotājs."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Nevarēja eksportēt"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontaktpersonas dati netika eksportēti.\nIemesls: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Notiek imp.: <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nevarēja nolasīt vCard datus."</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard faila <xliff:g id="FILENAME">%s</xliff:g> importēšana ir pabeigta"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Faila <xliff:g id="FILENAME">%s</xliff:g> importēšana atcelta"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Fails <xliff:g id="FILENAME">%s</xliff:g> tiks drīzumā importēts."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Fails drīzumā tiks importēts."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Tika noraidīts vCard faila importēšanas pieprasījums. Vēlāk mēģiniet vēlreiz."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontaktpersonas drīz tiks eksportētas."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Tika noraidīts vCard faila eksportēšanas pieprasījums. Vēlāk mēģiniet vēlreiz."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontaktpersona"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Notiek vCard failu saglabāšana vietējā pagaidu atmiņā. Importēšana tiks sākta pēc neilga brīža."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Nevarēja importēt vCard datus."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"No NFC saņ. kontaktinf."</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Notiek saglabāšana kešatmiņā"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importē <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> no <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Eksportēt .vcf failā"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Kārtot pēc:"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Vārda un uzvārda izruna"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Vienmēr rādīt"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Paslēpt tukšu lauku"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Vārds"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Uzvārds"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Vārda formāts"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Vispirms rādīt vārdu"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Vispirms rādīt uzvārdu"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Konti"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Noklusējuma konts jaunām kontaktpersonām"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mana informācija"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Iestatiet savu profilu"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Par lietotni Kontaktpersonas"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Kopīgot izlases kontaktpersonas"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Kopīgot visas kontaktpersonas"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Neizdevās kopīgot kontaktpersonas."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Kontaktpersonu eksportēšana"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Kontaktpersonu importēšana no:"</string>
+    <string name="share_error" msgid="948429331673358107">"Šo kontaktpersonu nevar kopīgot."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nav nevienas kopīgojamas kontaktpersonas."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Attēlojamās kontaktpersonas"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Attēlojamās kontaktpers."</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Skata pielāgošana"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Saglabāt"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Meklēt kontaktpersonas"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Izlase"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importēt"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksportēt"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Bloķētie numuri"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"izmantojot <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>, izmantojot <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"pārtraukt meklēšanu"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Notīrīt meklēšanas lauku"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Konts"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Vienmēr izmantot zvaniem"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Zvanīt ar piezīmi"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Ievadiet piezīmi, ko nosūtīt ar zvanu…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SŪTĪT un ZVANĪT"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> no <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versija"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Atklātā pirmkoda licences"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Licences informācija par atklātā pirmkoda programmatūru"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Konfidencialitātes politika"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Pakalpojumu sniegšanas noteikumi"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Atklātā pirmkoda licences"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Neizdevās atvērt URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> atzīmēts"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> nav atzīmēts"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Sākt videozvanu"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Dzēst"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Daudzpunkte"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Šī saīsne ir atspējota."</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontaktpersona tika noņemta."</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importēt"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Atlasiet kontaktpersonas"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM kartē nav nevienas kontaktpersonas."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontaktpersona jau ir jūsu sarakstā"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="zero">Importētas <xliff:g id="COUNT">%d</xliff:g> SIM kartes kontaktpersonas</item>
+      <item quantity="one">Importēta <xliff:g id="COUNT">%d</xliff:g> SIM kartes kontaktpersona</item>
+      <item quantity="other">Importētas <xliff:g id="COUNT">%d</xliff:g> SIM kartes kontaktpersonas</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Neizdevās importēt SIM kartes kontaktpersonas."</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importēt no SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Atcelt"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automātiskā sinhronizācija ir izslēgta. Pieskarieties, lai to ieslēgtu."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Nerādīt"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Konta sinhronizācija ir izslēgta. Pieskarieties, lai to ieslēgtu."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Vai ieslēgt automātisko sinhronizāciju?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Tīmeklī un jūsu ierīcēs tiks sinhronizētas visās lietotnēs un kontos veiktās izmaiņas, ne tikai Google kontaktpersonu izmaiņas."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Ieslēgt"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Nav savienojuma"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Rādīt vairāk"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM kartes importēšana pabeigta"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Importēšana neizdevās"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nevarēja importēt kontaktpersonas no SIM kartes."</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Notiek SIM kartes importēšana"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
deleted file mode 100644
index f9a8584..0000000
--- a/res/values-mk-rMK/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Контакти"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Контакти"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Прикажи го контактот"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Уреди го контактот"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Директно бирање"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Директна порака"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Избери кратенка за контакт"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Изберете број да се јавите"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Избери број да испратиш порака"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Додајте на контакт"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Одбери контакт"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Создај нов контакт"</string>
-    <string name="starredList" msgid="4817256136413959463">"Со ѕвезда"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Често"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Омилени"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Детали на контактот"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Уреди контакт"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Создај контакт"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Уреди група"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Создај група"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"За"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Ажурирања"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Пребарај контакти"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Прикажи контакт"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Додај во омилени"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Отстрани од омилени"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Отстрането од омилени"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Додадено во омилени"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Уреди"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Избриши"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Промени фотографија"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Постави на почетниот екран"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Повикај контакт"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Испрати текстуална порака на контакт"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Раздели"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Уреди"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Избриши"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Додај контакт"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Додај група"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Да се раздели контактот на повеќе контакти?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Раздели"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Дали сакате да ги зачувате измените што веќе ги направивте и да го разделите контактот на повеќе контакти?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Зачувај и раздели"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Дали сакате да ги зачувате измените што веќе ги направивте и да ги поврзете со избраниот контакт?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Зачувај и поврзи"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Поврзи"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Зачувај"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Поврзи контакти"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Изберете го контактот што сакате да го поврзете со <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Прикажи ги сите контакти"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Препорачани контакти"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Сите контакти"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Контактите се поврзани"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">Контактот е избришан</item>
-      <item quantity="other">Контактите се избришани</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Подеси мелодија"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Сите повици кон говорна пошта"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Контактите од сметките само за читање не може да се избришат, но може да се скријат."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Сокриј"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Контактот што ќе се избрише содржи детали од повеќе сметки. Деталите од сметките само за читање ќе се скријат, но нема да се избришат."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Ви требаат најмалку два избрани контакти за да се изврши поврзување."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Да се поврзат избраните контакти?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Поврзи"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Да се избрише овој контакт?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Да се избришат избраните контакти?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Контактите од сметките само за читање не може да се избришат, но може да се скријат."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Контактите што ќе се избришат содржат детали од повеќе сметки. Деталите од сметките само за читање ќе се скријат, но нема да се избришат."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Со бришење на овој контакт ќе се избришат детали од повеќе сметки."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Да се избрише овој контакт?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Избриши"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Отфрли ги промените"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Контактот не постои."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Контактот е додаден на Почетен екран."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Контактот <xliff:g id="NAME">%s</xliff:g> е додаден на Почетен екран."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Создај нов контакт"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Создај нов контакт"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Организација"</item>
-    <item msgid="7196592230748086755">"Забелешка"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Не се достапни слики на таблетот."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Не се достапни слики на телефонот."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Фотографија за контакт"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Приспособи име на етикета"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Испрати повици директно на говорна пошта"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Отстрани фотографија"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Нема контакти"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Нема групи."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"За да создадете групи ви треба сметка."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Нема луѓе во оваа група."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"За да додадете неколку, уредете ја групата."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Контактот се зачувува..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Контактот е зачуван"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Контактите се раздвоени"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Не можеа да се зачуваат промените на контактот."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Не може да се прекине врската со контактот."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Не можеше да се поврзе контактот."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Грешка при зачувување на контактот."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Не можеше да се зачуваат промените на фотографијата на контактот."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Групата е зачувана."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Не можеа да се зачуваат промените на групата."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> контакт со телефонски број</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> контакти со телефонски броеви</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Нема контакти со телефонски броеви"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> пронајден</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> пронајдени</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Нема контакти"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> пронајден</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> пронајдени</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Сите"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Омилени"</string>
-    <string name="callBack" msgid="5498224409038809224">"Повикај назад"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Повикај повторно"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Врати повик"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Додај „<xliff:g id="EMAIL">%s</xliff:g>“ во контакти?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"фотографија за контакт"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"плус"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> од <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контакти"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Имиња на вашите контакти"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Не е пронајдена апликација да се справи со ова дејство."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Кликнете за да се вратите на претходниот екран"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Додајте телефонски број"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Додајте е-пошта"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Не е пронајдена апликација да се справи со ова дејство."</string>
-    <string name="menu_share" msgid="943789700636542260">"Сподели"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Додај во контакти"</string>
-    <string name="share_via" msgid="563121028023030093">"Сподели контакт преку"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Создај група под сметка"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Гласовен разговор"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Видео разговор"</string>
-    <string name="connections" msgid="8098440723172028350">"Врски"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Додај врска"</string>
-    <string name="recent" msgid="2659189233141493004">"Скорешни"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Скорешни ажурирања"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> контакт"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"Сметка на <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Не се уредува од оваа апликација."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Не може да се уреди на овој уред."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Фотографирај"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Направи нова фотографија"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Избери фотографија"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Избери нова фотографија"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Списокот со контакти се ажурира."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Се пребарува..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Прикажи ги избраните"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Прикажи ги сите"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Избери ги сите"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Поништи избор на сѐ"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Додај нов запис"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Додај организација"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Датум"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Име на група"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Промени"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Пр. фотографија"</string>
-    <string name="description_star" msgid="2605854427360036550">"омилено"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Уреди контакт"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Да се поврзе тековниот контакт со избраниот контакт?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Да се префрли на уредување на избраниот контакт? Информациите што ги внесовте досега ќе бидат копирани."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Копирај во Мои контакти"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Додај во Мои контакти"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Адресар <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Прилагодено"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Поставки"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Поставки"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Помош и повратни информации"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Опции за екран"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Телефонски број"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Додај во контакти"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Додај во контакт"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Затвори"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Вклучи година"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Контакт"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Се вчитува..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Создај нов контакт"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Додај сметка"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Увези контакти"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Создај нова група"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Создај нова група"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> група</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> групи</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Избриши ја групата „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Контактите нема да се избришат.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> лице од <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> лица од <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> лице</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> лица</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Впишете го името на контактот пред да го поврзете со друг."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Копирај во клип-табла"</string>
-    <string name="set_default" msgid="4417505153468300351">"Подеси стандарден метод"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Исчисти стандарден метод"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Текстот е копиран"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Отфрли ги своите промени?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Отфрли"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Подеси мој профил"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Впиши име на лице"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Име на групата"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Мој локален профил"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Мој профил на <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Прикажување на сите контакти"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Апликацијата Контакти работи подобро со сметка на Google.\n\n• Пристапете од кој било прелистувач.\n• Направете резервна копија од контактите безбедно."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Чувајте ги вашите контакти безбедни дури и ако го изгубите вашиот телефон: синхронизирајте се со онлајн услуга."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Додај сметка"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Нема да се направи резервна копија на вашиот нов контакт. Додадете сметка што прави резервна копија на контакти онлајн?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Новите контакти ќе се зачуваат на <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Изберете стандардна сметка за новите контакти:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Додај нов контакт"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Уреди контакт"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Задржи локално"</string>
-    <string name="add_account" msgid="8201790677994503186">"Додај сметка"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Додај нова сметка"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Извези датотеки од база на податоци"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"додај нов контакт"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Погледни повеќе"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Погледни помалку"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Погледни ги сите"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Неодамнешни"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"За"</string>
-    <string name="send_message" msgid="8938418965550543196">"Испрати порака"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Се создава лична копија..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Вчера"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Утре"</string>
-    <string name="today" msgid="8041090779381781781">"Денес"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Денес во <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Утре во <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Неименуван настан)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Постави"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Организација"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Прекар"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Белешка"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Веб-локација"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Настан"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Врска"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Сметка"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Име"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"E-пошта"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Фотографија"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Кликнете за да го проширите уредникот за контакти."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Кликнете за да го соберете уредникот за контакти."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"насоки до локација"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"неодамнешна СМС-порака. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. кликни за да одговориш"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"дојдовен"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"појдовен"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"пропуштен"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"неодамнешен повик. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. кликни за да повикаш назад"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Вие: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts работат подобро кога во полето за е-пошта или за телефон ќе го внесете идентификаторот на Hangouts за лицето."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Повеќе полиња"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Промени фотографија"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Не успеа да го отвори уредникот."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Се зачувува на"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Моментално се зачувува на <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Допрете двапати за да изберете друга сметка."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Поврзан контакт (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Поврзани контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> поврзани контакти"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ПОВРЗИ КОНТАКТИ"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ОТКАЖИ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> можен дупликат</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> можни дупликати</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> поврзан контакт</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> поврзани контакти</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Овој контакт"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Можни дупликати"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Овие контакти можеби се на истото лице. Може да ги споите во еден контакт."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Поврзани контакти"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Од вашите сметки"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Фотографирај"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Сите фотографии"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Избери фотографија"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Од <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Избриши <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Избриши <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Фотографијата од <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>не е избрана"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Фотографијата од <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>е избрана"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Не е избрана фотографија од непозната сметка"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Избрана е фотографија од непозната сметка"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Списокот со контакти се ажурира за да ја одрази промената на јазикот.\n\nПочекајте..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Додај број"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Блокирај го бројот"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Додајте број или побарајте контакти"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Деблокирај го <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ДЕБЛОКИРАЈ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Блокирај го <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"БЛОКИРАЈ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> е блокиран"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> е деблокиран"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> не е важечки."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокирањето повик е привремено исклучено"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокирањето повици е исклучено бидејќи ја контактиравте службата за итни случаи од телефонов во изминатите 48 часа. Повторно ќе се овозможи автоматски откако ќе истече периодот од 48 часа."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Увези"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Прикажи броеви"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Додај број"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокирањето на повикот е оневозможено 48 часа"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Оневозможено е затоа што беше направен итен повик."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ВРАТИ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> веќе е блокиран."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Деблокирај го бројот"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Детали за контакт за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Увоз не успеа"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Увези броеви"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"За да ги пребарувате контактите, вклучете ги дозволите за контакти."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Вклучи"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
new file mode 100644
index 0000000..2c11e2e
--- /dev/null
+++ b/res/values-mk/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Контакти"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Додајте контакт"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Директно бирање"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Директна порака"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Избирање контакт"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Додајте на контакт"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Одбери контакт"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Изберете"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Создај нов контакт"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Пребарај контакти"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Додај во омилени"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Отстрани од омилени"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Отстрането од омилени"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Додадено во омилени"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Уреди"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Избриши"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Промени фотографија"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Создај кратенка"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Раздели"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Отстрани контакти"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Преименувај ја етикетата"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Избриши ја етикетата"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Додај контакт"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Избери контакти"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Додај контакти"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Отстрани од етикетата"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Создај етикета"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Да се раздели контактот на повеќе контакти?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Раздели"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Дали сакате да ги зачувате измените што веќе ги направивте и да го разделите контактот на повеќе контакти?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Зачувај и раздели"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Дали сакате да ги зачувате измените што веќе ги направивте и да ги поврзете со избраниот контакт?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Зачувај и поврзи"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Се поврзуваат"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Се раздвојуваат"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Поврзи"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Прикажи поврзани контакти"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Зачувај"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Поврзи контакти"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Изберете го контактот што сакате да го поврзете со <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Препорачани контакти"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Сите контакти"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> е поврзан"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Контактите се поврзани"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> е избришан"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> и <xliff:g id="NAME_1">%2$s</xliff:g> се избришани"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… се избришани"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">Контактот е избришан</item>
+      <item quantity="other">Контактите се избришани</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> контакт</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> контакти</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> контакт · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> контакти · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Од Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Од <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Постави мелодија"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Пренасочување на говорна пошта"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ненасочување на говорна пошта"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Контактов е само за читање. Не може да се избрише, но може да се сокрие."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Сокријте контакт"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Сметките само за читање во контактов ќе се сокријат, но нема да се избришат."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Да се избрише овој контакт?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Да се избришат избраните контакти?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Контактите од сметките само за читање не може да се избришат, но може да се скријат."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Контактите што ќе се избришат содржат детали од повеќе сметки. Деталите од сметките само за читање ќе се скријат, но нема да се избришат."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Со бришење на овој контакт ќе се избришат детали од повеќе сметки."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Да се избрише овој контакт?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Избриши"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Контактот не постои."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Контактот е додаден на Почетен екран."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Контактот <xliff:g id="NAME">%s</xliff:g> е додаден на Почетен екран."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Не се достапни слики на уредот."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Фотографија за контакт"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Приспособи име на етикета"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Отстрани фотографија"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Списокот со контакти е празен"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Нема контакти со етикетава"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Нема контакти во сметкава"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Списокот со контакти е празен"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> е зачуван"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Контактот е зачуван"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Контактите се раздвоени"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Не можеше да се зачуваат промените на контактот"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Не можеше да се прекине врската со контактот"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Не можеше да се поврзе контактот"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Грешка при зачувување на контактот"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Не можеше да се зачуваат промените на фотографијата на контактот"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Етикетата не успеа да се вчита"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Етикетата е избришана"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Етикетата е создадена"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Етикетата не може да се создаде"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Етикетата е ажурирана"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Отстрането од етикетата"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Додадено на етикетата"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Не можеше да се зачуваат промените на етикетата"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Етикетата веќе постои"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Некои од контактите немаат е-пошта."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Некои од контактите немаат телефонски број."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Испратете е-пошта"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Испратете порака"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Изберете контакти"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Испрати"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Нема контакти"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Додај „<xliff:g id="EMAIL">%s</xliff:g>“ во контакти?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Имиња на вашите контакти"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Кликнете за да се вратите на претходниот екран"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Додајте телефонски број"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Додајте е-пошта"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Не е пронајдена апликација да се справи со ова дејство."</string>
+    <string name="menu_share" msgid="943789700636542260">"Сподели"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Додај во контакти"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Додај"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Споделете контакт преку</item>
+      <item quantity="other">Споделете контакти преку</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Изберете сметка"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Создајте етикета"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Преименувајте ја етикетата"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Име на етикетата"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Име на етикета"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Гласовен разговор"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Видео разговор"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> контакт"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"Сметка на <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Фотографирај"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Направи нова фотографија"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Избери фотографија"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Избери нова фотографија"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Се пребарува..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Датум"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Етикета"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Откажи"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Назад"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"затвори"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Да се префрли на уредување на избраниот контакт? Информациите што ги внесовте досега ќе бидат копирани."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Адресар <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Поставки"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Поставки"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Помош и повратни информации"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Телефонски број"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Додај во контакти"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Затвори"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Вклучи година"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Додај сметка"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Увези"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Создајте нова…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Да се избрише етикетата „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Контактите нема да се избришат.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Впишете го името на контактот пред да го поврзете со друг."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Копирај во клип-табла"</string>
+    <string name="set_default" msgid="4417505153468300351">"Постави стандарден метод"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Исчисти стандарден метод"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Текстот е копиран"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Да се отфрлат промените?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Отфрли"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Откажи"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Да се отфрлат приспособувањата?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Пребарајте контакти"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Отстрани контакти"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Мој локален профил"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Мој профил на <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Одвојте малку време за додавање сметка за бекап на вашите контакти на Google."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Новите контакти ќе се зачуваат на <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Изберете стандардна сметка за новите контакти:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Создај нов контакт"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Уреди контакт"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Само приказ"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Изберете контакт за уредување"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Поврзани контакти"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Додајте"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Прекинете врска"</string>
+    <string name="add_account" msgid="8201790677994503186">"Додај сметка"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Додај нова сметка"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Извези датотеки од база на податоци"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Создај нов контакт"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Погледни повеќе"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Погледни помалку"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Неодамнешни"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"За"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Се создава лична копија..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Утре"</string>
+    <string name="today" msgid="8041090779381781781">"Денес"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Денес во <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Утре во <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Неименуван настан)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Постави"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Организација"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Прекар"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Белешка"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Вебсајт"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Настан"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Врска"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Име"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"E-пошта"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"насоки до локација"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"неодамнешна SMS-порака. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. кликни за да одговориш"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"дојдовен"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"појдовен"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"пропуштен"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"неодамнешен повик. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. кликни за да повикаш назад"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Вие: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Повеќе полиња"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Променете фотографија за контакт"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Додајте фотографија за контакт"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Фотографија за контакт"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Не успеа да го отвори уредникот."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Се зачувува на"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Инфо. за контакт од <xliff:g id="ACCOUNT">%s</xliff:g> не може да се уредуваат"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ПОВРЗИ КОНТАКТИ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ОТКАЖИ"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Овој контакт"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Можни дупликати"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Овие контакти можеби се на истото лице. Може да ги споите во еден контакт."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Избриши <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Избриши <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Предлози"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Ново"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Отворете фиока за навигација"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Затворете фиока за навигација"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Етикета <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Етикети"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Сметки"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Видете ја заедничката историја"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Настани и пораки"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Настани"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Пораки"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Предлози"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Чувајте ги контактите организирани и корисни"</string>
+    <string name="undo" msgid="1425165101664071422">"Вратете"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Повикајте <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Повикајте домашен број"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Повикајте мобилен"</string>
+    <string name="call_work" msgid="5328785911463744028">"Повикајте службен број"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Повикајте факс на работа"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Повикајте факс дома"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Повикајте пејџер"</string>
+    <string name="call_other" msgid="8563753966926932052">"Повикајте"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Воспоставете повратен повик"</string>
+    <string name="call_car" msgid="3280537320306436445">"Повикајте автомобил"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Повикајте главен број во компанија"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Повикајте ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Повикајте главен број"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Повикајте факс"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Повикајте радио"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Повикајте телекс"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Повикајте TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Повикајте службен мобилен"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Повикајте службен пејџер"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Повикајте <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Повикајте MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Повик)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Испратете SMS на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Испратете SMS дома"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Испратете SMS на мобилен"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Испратете SMS на работа"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Испратете SMS на факс на работа"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Испратете SMS на факс дома"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Испратете SMS на пејџер"</string>
+    <string name="sms_other" msgid="806127844607642331">"Испратете SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Испратете SMS за повратен повик"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Испратете SMS за автомобил"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Испратете SMS на главен број во компанија"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Испратете SMS на ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Испратете SMS на главен број"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Испратете SMS на факс"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Испратете SMS на радио"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Испратете SMS на телекс"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Испратете SMS на TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Испратете SMS на службен мобилен"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Испратете SMS на службен пејџер"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Испратете SMS на <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Испратете SMS на MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Порака)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Оствари видеоповик"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Да се исчистат често контактираните?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Ќе го исчистите списокот на често контактирани лица во апликациите „Контакти“ и „Телефон“ и ќе ги принудите апликациите за е-пошта одново да ги дознаат вашите претпочитани поставки за обраќање."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Се чистат често контактираните…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Достапен"</string>
+    <string name="status_away" msgid="1838861100379804730">"Отсутен"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Зафатен"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Друго"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Адресар"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Работен адресар"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Сите контакти"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Брз контакт за <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Без име)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Често контактирани"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Сите контакти со телефонски броеви"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Контакти на службениот профил"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Прикажи ажурирања"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Уред"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Име"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Прекар"</string>
+    <string name="name_given" msgid="4280790853455320619">"Име"</string>
+    <string name="name_family" msgid="7466985689626017037">"Презиме"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Претставка на име"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Татково име"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Наставка на име"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Фонетско име"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Фонетско име"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Фонетско татково име"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Фонетско презиме"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Телефон"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-пошта"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Адреса"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Организација"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Врска"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Посебен датум"</string>
+    <string name="sms" msgid="1756857139634224222">"Текстуална порака"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Адреса"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Компанија"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Наслов"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Белешки"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Приспособено"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Веб-сајт"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Етикети"</string>
+    <string name="email_home" msgid="8573740658148184279">"Домашна е-пошта"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Мобилна е-пошта"</string>
+    <string name="email_work" msgid="2807430017302722689">"Службена е-пошта"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-пошта"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Испратете е-пошта на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-пошта"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Улица"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Град"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Држава"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Поштенски број"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Земја"</string>
+    <string name="map_home" msgid="1243547733423343982">"Прикажи домашна адреса"</string>
+    <string name="map_work" msgid="1360474076921878088">"Прикажи службена адреса"</string>
+    <string name="map_other" msgid="3817820803587012641">"Прикажи адреса"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Прикажи ја адресата на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Разговор на AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Разговор на Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Разговор на Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Разговор на Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Разговор на QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Разговор на Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Разговор на ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Разговор на Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Разговор"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"избриши"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Прикажи повеќе полиња за име"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Собери ги полињата за име"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Прикажи повеќе полиња за фонетско име"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Собери ги полињата за фонетско име"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Прошири"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Собери"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Проширени"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Собрани"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Сите контакти"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Со ѕвезда"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Приспособи"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Контакт"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Сите други контакти"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Сите контакти"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Отстрани синхронизирана група"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Додај синхронизирана група"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Повеќе групи…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Со отстранувањето на „<xliff:g id="GROUP">%s</xliff:g>“ од синхронизирање, ќе се отстранат и сите негрупирани контакти од синхронизирање."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Се зачувуваат опциите на екранот…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Приспособен приказ"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Зачувајте ги увезените контакти на:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-картичка"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d контакт</item>
+      <item quantity="other">%1$d контакти</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> контакт • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> контакти • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf датотека"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Нема ништо за увезување"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Да се увезат контакти од vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Да се откаже увозот на <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Да се откаже извозот на <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Не може да се откаже увоз/извоз на vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Непозната грешка."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"„<xliff:g id="FILE_NAME">%1$s</xliff:g>“ не можеше да се отвори: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Не можеше да се вклучи извозникот: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Нема контакт на кој може да се изврши извоз."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Оневозможивте потребна дозвола."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Настанаи грешка при извоз: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O грешка"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Нема доволно меморија. Датотеката е можеби премногу голема."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Форматот не е поддржан."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Заврши извозот на <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Извозот на контакти заврши."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Извозот на контакти заврши. Кликнете на известувањето за споделување контакти."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Допрете за споделување контакти."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Извозот на <xliff:g id="FILENAME">%s</xliff:g> е откажан."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Се врши извоз на податоци за контакт"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Во моментов се врши извоз на податоците за контакт."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Не можеше да добие информации за базата на податоци."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Нема контакти за извезување."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Композиторот на vCard не започна правилно."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Не е можен извоз"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Извозот на податоците за контакт не се изврши.\nПричина: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Се врши увоз на <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Не можеше да прочита податоци од vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Заврши увозот на vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Увезувањето на <xliff:g id="FILENAME">%s</xliff:g> е откажано"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Ќе се изврши увоз на <xliff:g id="FILENAME">%s</xliff:g> наскоро."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Ќе се изврши увоз на датотеката наскоро."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Барањето за увоз на vCard беше одбиено. Обидете се повторно подоцна."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Наскоро ќе се изврши извоз на контактите."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Барањето за извоз на vCard беше одбиено. Обидете се повторно подоцна."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"контакт"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Се кешираат vCard(s) во локалната привремена меморија. Реалниот увоз ќе започне наскоро."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Не можеше да се изврши увоз на vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Контакт од NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кеширање"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Се врши увоз на <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Извези во датотеката .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Подредете по"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Фонетско име"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Секогаш прикажувај"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Сокриј ако е празно"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Име"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Презиме"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Формат на име"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Прво името"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Прво презимето"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Сметки"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Стандардна сметка за новите контакти"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Мои информации"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Поставете го профилот"</string>
+    <string name="setting_about" msgid="7014388749752042863">"За „Контакти“"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Споделете омилени контакти"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Споделете ги сите контакти"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Споделувањето на контактите не успеа."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Извоз на контакти"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Увезете контакти од"</string>
+    <string name="share_error" msgid="948429331673358107">"Контактов не може да се сподели."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Нема контакти за споделување."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Контакти за прикажување"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Контакти за прикажување"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Приспособување на приказ"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Зачувај"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Пребарајте контакти"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Омилени"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Изврши увоз"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Изврши извоз"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Блокирани броеви"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"од <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"на <xliff:g id="DATE">%1$s</xliff:g> од <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"сопри пребарување"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Исчисти го полето за пребарување"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Сметка"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Секогаш користи го ова за повици"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Повикајте со белешка"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Напишете белешка за да ја испратите со повикот…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ИСПРАТИ И ПОВИКАЈ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Верзија"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Лиценци за софтвер со отворен код"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Детали за лиценцата за софтвер со отворен код"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Политика за приватност"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Услови на користење"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Лиценци за софтвер со отворен код"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Линкот не успеа да се отвори."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> е штиклирано"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> не е штиклирано"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Воспостави видеоповик"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Избриши"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Три точки"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> мин. <xliff:g id="SECONDS">%2$s</xliff:g> сек."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> час <xliff:g id="MINUTES_1">%2$s</xliff:g> мин. <xliff:g id="SECONDS">%3$s</xliff:g> сек."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Кратенкава е оневозможена"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Контактот е отстранет"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Увези"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Изберете контакти"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Нема контакти на вашата SIM-картичка"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Контактот веќе постои во списокот."</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">Увезен е <xliff:g id="COUNT">%d</xliff:g> контакт од SIM</item>
+      <item quantity="other">Увезени се <xliff:g id="COUNT">%d</xliff:g> контакти од SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Не успеа увезувањето контакти од SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Увоз од SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Откажи"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Автоматското синхронизирање е исклучено. Допрете за да го вклучите."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Отфрлете"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Автоматското синхронизирање е исклучено. Допрете за да го вклучите."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Да се вклучи автоматско синхронизирање?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Промените што ги правите на сите апликации и сметки, не само на „Контакти на Google“, ќе се ажурираат и на интернет и на вашите уреди."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Вклучете"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Нема мрежа"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Прикажи повеќе"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Увезувањето на SIM-картичката заврши"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Увезувањето не успеа"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Не можеше да се увезат контакти од SIM-картичката"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Се увезува SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
deleted file mode 100644
index 2f684f0..0000000
--- a/res/values-ml-rIN/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"വിലാസങ്ങൾ"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"വിലാസങ്ങൾ"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"കോൺടാക്റ്റ് കാണുക"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"കോൺടാ‌ക്‌റ്റ് എഡിറ്റുചെയ്യുക"</string>
-    <string name="contactsList" msgid="8661624236494819731">"വിലാസങ്ങൾ"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"കോൺടാക്റ്റ്"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"നേരിട്ടുള്ള ഡയൽ"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"സന്ദേശങ്ങൾ നേരിട്ട്"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"ഒരു കോൺടാക്റ്റ് കുറുക്കുവഴി തിരഞ്ഞെടുക്കുക"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"വിളിക്കാൻ ഒരു നമ്പർ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"സന്ദേശമയയ്‌ക്കാൻ ഒരു നമ്പർ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"കോണ്‍‌ടാക്റ്റിലേക്ക് ചേര്‍ക്കുക"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ഒരു കോൺടാക്റ്റ് തിരഞ്ഞെടുക്കുക"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"പുതിയകോൺടാക്റ്റ് സൃഷ്‌ടിക്കൂ"</string>
-    <string name="starredList" msgid="4817256136413959463">"നക്ഷത്രമിട്ടവ"</string>
-    <string name="frequentList" msgid="7154768136473953056">"പതിവായി കോൺടാക്റ്റുചെയ്യുന്നവർ"</string>
-    <string name="strequentList" msgid="5640192862059373511">"പ്രിയപ്പെട്ടവർ"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"കോൺടാക്റ്റ് വിശദാംശങ്ങൾ"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"കോൺടാ‌ക്‌റ്റ് തിരുത്തുക"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"കോൺടാക്റ്റ് സൃഷ്‌ടിക്കുക"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"ഗ്രൂപ്പ് എഡിറ്റുചെയ്യുക"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"ഗ്രൂപ്പ് സൃഷ്ടിക്കുക"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"ആമുഖം"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"അപ്‌ഡേറ്റുകൾ"</string>
-    <string name="searchHint" msgid="8482945356247760701">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"കോൺടാക്റ്റ് കാണുക"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"പ്രിയപ്പെട്ടവയിലേക്ക് ചേർക്കുക"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"പ്രിയപ്പെട്ടവയിൽ നിന്നും നീക്കംചെയ്യുക"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"പ്രിയപ്പെട്ടവയിൽ നിന്നും നീക്കംചെയ്‌തു"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"പ്രിയപ്പെട്ടവയിലേക്ക് ചേർത്തു"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"എഡിറ്റുചെയ്യുക"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"ഇല്ലാതാക്കുക"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ഫോട്ടോ മാറ്റുക"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ഹോം സ്‌ക്രീനിൽ സ്ഥാപിക്കുക"</string>
-    <string name="menu_call" msgid="3992595586042260618">"കോൺടാക്റ്റിനെ വിളിക്കുക"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"കോൺടാക്റ്റിന് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"അൺലിങ്കുചെയ്യുക"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"എഡിറ്റുചെയ്യുക"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"ഇല്ലാതാക്കുക"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"കോണ്‍‌ടാക്റ്റ് ചേര്‍‌ക്കുക"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ഗ്രൂപ്പ് ചേർക്കുക"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"ഈ കോൺടാക്റ്റ് ഒന്നിലധികം കോൺടാക്റ്റുകളായി അൺലിങ്കുചെയ്യണോ?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"അൺലിങ്കുചെയ്യുക"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"നിങ്ങൾ ഇതിനകം വരുത്തിയിട്ടുള്ള മാറ്റങ്ങൾ സംരക്ഷിക്കാനും ഒന്നിലധികം കോൺടാക്റ്റുകളായി ഈ കോൺടാക്റ്റ് അൺലിങ്കുചെയ്യാനും താൽപ്പര്യപ്പെടുന്നുണ്ടോ?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"സംരക്ഷിച്ച് അൺലിങ്കുചെയ്യുക"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"നിങ്ങൾ ഇതിനകം വരുത്തിയിട്ടുള്ള മാറ്റങ്ങൾ സംരക്ഷിക്കാനും തിരഞ്ഞെടുത്ത കോൺടാക്റ്റുമായി ലിങ്കുചെയ്യാനും താൽപ്പര്യപ്പെടുന്നുണ്ടോ?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"സംരക്ഷിച്ച് ലിങ്കുചെയ്യുക"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"ലിങ്ക്"</string>
-    <string name="menu_save" msgid="1727844363591825909">"സംരക്ഷിക്കുക"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"കോൺടാക്റ്റുകൾ ലിങ്കുചെയ്യുക"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> എന്നയാളുമായി ലിങ്കുചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന കോൺടാക്റ്റ് തിരഞ്ഞെടുക്കുക:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"എല്ലാ കോൺടാക്റ്റുകളും കാണിക്കുക"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"നിര്‍ദ്ദേശിച്ച കോണ്‍ടാക്റ്റുകള്‍"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"എല്ലാ കോൺടാക്റ്റുകളും"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ലിങ്കുചെയ്ത കോൺടാക്റ്റുകൾ"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">കോൺടാക്റ്റുകൾ ഇല്ലാതാക്കി</item>
-      <item quantity="one">കോൺടാക്റ്റ് ഇല്ലാതാക്കി</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"റിംഗ്‌ടോൺ സജ്ജമാക്കുക"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"എല്ലാം വോയ്‌സ്‌മെയിലിലേക്ക്"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"നിങ്ങളുടെ വായന-മാത്രമായ അക്കൗണ്ടുകളിൽ നിന്നുള്ള കോൺടാക്റ്റുകൾ ഇല്ലാതാക്കാൻ കഴിയില്ല, എന്നാൽ അവയെ മറയ്ക്കാവുന്നതാണ്."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"മറയ്ക്കുക"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"ഇല്ലാതാക്കേണ്ട കോൺടാക്റ്റിൽ ഒന്നിലധികം അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിശദാംശങ്ങൾ അടങ്ങിയിരിക്കുന്നു. വായന-മാത്രമായ അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിശദാംശങ്ങൾ മറയ്‌ക്കുമെങ്കിലും, അവ ഇല്ലാതാക്കില്ല."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"ലിങ്കുചെയ്യുന്നതിന് രണ്ട് കോൺടാക്‌റ്റുകളെങ്കിലും തിരഞ്ഞെടുക്കണം."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"തിരഞ്ഞെടുത്ത കോൺടാക്റ്റുകൾ ലിങ്കുചെയ്യണോ?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"ലിങ്കുചെയ്യുക"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"ഈ കോൺടാക്റ്റ് ഇല്ലാതാക്കണോ?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"തിരഞ്ഞെടുത്ത കോൺടാക്‌റ്റുകൾ ഇല്ലാതാക്കണോ?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"നിങ്ങളുടെ വായന-മാത്രമായ അക്കൗണ്ടുകളിൽ നിന്നുള്ള കോൺടാക്റ്റുകൾ ഇല്ലാതാക്കാൻ കഴിയില്ല, എന്നാൽ അവയെ മറയ്ക്കാവുന്നതാണ്."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ഇല്ലാതാക്കേണ്ട കോൺടാക്റ്റുകളിൽ ഒന്നിലധികം അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിശദാംശങ്ങൾ അടങ്ങിയിരിക്കുന്നു. വായന-മാത്രമായ അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിശദാംശങ്ങൾ മറയ്‌ക്കുമെങ്കിലും, അവ ഇല്ലാതാക്കില്ല."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ഈ കോൺടാക്റ്റ് ഇല്ലാതാക്കുന്നത്, ഒന്നിലധികം അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിശദാംശങ്ങൾ ഇല്ലാതാക്കും."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"ഈ കോൺടാക്റ്റ് ഇല്ലാതാക്കണോ?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ഇല്ലാതാക്കുക"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"മാറ്റങ്ങള്‍‌ നിരാകരിക്കുക"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"കോൺടാക്റ്റ് നിലവിലില്ല."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"ഹോം സ്ക്രീനിലേക്ക് കോൺടാക്റ്റ് ചേർത്തു."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"ഹോം സ്ക്രീനിലേക്ക് <xliff:g id="NAME">%s</xliff:g> ചേർത്തു."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"പുതിയകോൺടാക്റ്റ് സൃഷ്‌ടിക്കൂ"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"പുതിയകോൺടാക്റ്റ് സൃഷ്‌ടിക്കൂ"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"ഓര്‍ഗനൈസേഷന്‍"</item>
-    <item msgid="7196592230748086755">"കുറിപ്പ്"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ടാബ്‌ലെറ്റിൽ ചിത്രങ്ങളൊന്നും ലഭ്യമല്ല."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ഫോണിൽ ചിത്രങ്ങളൊന്നും ലഭ്യമല്ല."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"കോൺടാക്‌‌റ്റിന്റെ ഫോട്ടോ"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ഇഷ്‌ടാനുസൃത ലേബൽ പേര്"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"കോളുകൾ നേരിട്ട് വോയ്‌സ്‌മെയിലിലേക്ക് അയയ്‌ക്കുക"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ഫോട്ടോ നീക്കംചെയ്യുക"</string>
-    <string name="noContacts" msgid="4955659076981974652">"കോൺടാക്റ്റുകളൊന്നുമില്ല"</string>
-    <string name="noGroups" msgid="8614664663561385253">"ഗ്രൂപ്പുകൾ ഒന്നുമില്ല."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"ഗ്രൂപ്പുകൾ സൃഷ്‌ടിക്കാൻ നിങ്ങൾക്ക് ഒരു അക്കൗണ്ട് ആവശ്യമാണ്."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ഈ ഗ്രൂപ്പിൽ ആരുമില്ല."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"കുറച്ചുപേരെ ചേർക്കാൻ ഗ്രൂപ്പ് എഡിറ്റുചെയ്യുക."</string>
-    <string name="savingContact" msgid="4075751076741924939">"കോൺടാക്റ്റ് സംരക്ഷിക്കുന്നു…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"കോൺടാക്റ്റ് സംരക്ഷിച്ചു"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"കോൺടാക്റ്റുകൾ അൺലിങ്കുചെയ്തു"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"കോൺടാക്റ്റ് മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"കോൺടാക്റ്റ് അൺലിങ്കുചെയ്യാനായില്ല."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"കോൺടാക്റ്റ് ലിങ്കുചെയ്യാൻ കഴിഞ്ഞില്ല."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"കോൺടാക്റ്റ് സംരക്ഷിക്കുന്നതില്‍ പിശക്"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"കോൺടാക്റ്റ് ഫോട്ടോ മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"ഗ്രൂപ്പ് സംരക്ഷിച്ചു."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ഗ്രൂപ്പ് മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">ഫോൺ നമ്പറുള്ള <xliff:g id="COUNT">%d</xliff:g> കോൺടാക്‌റ്റുകൾ</item>
-      <item quantity="one">ഫോൺ നമ്പറുള്ള ഒരു കോൺടാക്റ്റ്</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ഫോൺ നമ്പറുകളോട് കൂടിയ കോൺടാക്റ്റുകളൊന്നുമില്ല"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> എണ്ണം കണ്ടെത്തി</item>
-      <item quantity="one">ഒന്ന് കണ്ടെത്തി</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"കോൺടാക്റ്റുകളൊന്നുമില്ല"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> എണ്ണം കണ്ടെത്തി</item>
-      <item quantity="one">ഒന്ന് കണ്ടെത്തി</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"എല്ലാം"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"പ്രിയപ്പെട്ടവ"</string>
-    <string name="callBack" msgid="5498224409038809224">"തിരിച്ചുവിളിക്കുക"</string>
-    <string name="callAgain" msgid="3197312117049874778">"വീണ്ടും വിളിക്കുക"</string>
-    <string name="returnCall" msgid="8171961914203617813">"കോളിലേക്ക് മടങ്ങുക"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"കോൺടാക്റ്റുകളിലേക്ക് \"<xliff:g id="EMAIL">%s</xliff:g>\" ചേർക്കണോ?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"കോൺടാക്‌‌റ്റിന്റെ ഫോട്ടോ"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"പ്ലസ്"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%s</xliff:g> കോൺടാക്റ്റുകൾ"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"നിങ്ങളുടെ കോൺടാക്റ്റുകളുടെ പേരുകൾ"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ഈ പ്രവർത്തനം കൈകാര്യം ചെയ്യാൻ അപ്ലിക്കേഷനുകളൊന്നും കണ്ടെത്തിയില്ല."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"മുമ്പത്തെ സ്‌ക്രീനിലേക്ക് മടങ്ങാൻ ക്ലിക്കുചെയ്യുക"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ഫോണ്‍ നമ്പര്‍ ചേര്‍ക്കുക"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ഇമെയില്‍‌ ചേര്‍‌ക്കുക"</string>
-    <string name="missing_app" msgid="1466111003546611387">"ഈ പ്രവർത്തനം കൈകാര്യം ചെയ്യാൻ അപ്ലിക്കേഷനുകളൊന്നും കണ്ടെത്തിയില്ല."</string>
-    <string name="menu_share" msgid="943789700636542260">"പങ്കിടുക"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"കോൺടാക്‌റ്റുകളിൽ ചേർക്കുക"</string>
-    <string name="share_via" msgid="563121028023030093">"ഇതുവഴി കോൺടാക്റ്റുകൾ പങ്കിടുക"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"അക്കൗണ്ടിന് കീഴിൽ ഗ്രൂപ്പ് സൃഷ്‌ടിക്കുക"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"വോയ്സ് ചാറ്റ്"</string>
-    <string name="video_chat" msgid="1872255818640336072">"വീഡിയോ ചാറ്റ്"</string>
-    <string name="connections" msgid="8098440723172028350">"കണക്ഷനുകൾ"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"കണക്ഷൻ ചേർക്കുക"</string>
-    <string name="recent" msgid="2659189233141493004">"പുതിയത്"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"പുതിയ അപ്‌ഡേറ്റുകൾ"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> കോൺടാക്റ്റ്"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> അക്കൗണ്ട്"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ഈ അപ്ലിക്കേഷനിൽ നിന്നും എഡിറ്റുചെയ്യാനാകില്ല."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"ഈ ഉപകരണത്തിൽ എഡിറ്റുചെയ്യാനാകില്ല."</string>
-    <string name="take_photo" msgid="7496128293167402354">"ഫോട്ടോ എടുക്കുക"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"പുതിയ ഫോട്ടോ എടുക്കുക"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ഫോട്ടോ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"പുതിയ ഫോട്ടോ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"കോൺടാക്റ്റ് ലിസ്റ്റ് അപ്‌ഡേറ്റുചെയ്യുന്നു."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"തിരയുന്നു…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"തിരഞ്ഞെടുത്തവ കാണിക്കുക"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"എല്ലാം കാണിക്കുക"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"എല്ലാം തിരഞ്ഞെടുക്കുക"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"തിരഞ്ഞെടുത്തത് എല്ലാം മാറ്റുക"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"പുതിയത് ചേർക്കുക"</string>
-    <string name="add_organization" msgid="7311893231158291197">"ഓർഗനൈസേഷൻ ചേർക്കുക"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"തീയതി"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ഗ്രൂപ്പിന്റെ പേര്"</string>
-    <string name="change_photo" msgid="8530597935483526383">"മാറ്റുക"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"പ്രാഥമിക ഫോട്ടോ"</string>
-    <string name="description_star" msgid="2605854427360036550">"പ്രിയപ്പെട്ടതാക്കുക"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"കോൺടാ‌ക്‌റ്റ് തിരുത്തുക"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"തിരഞ്ഞെടുത്ത കോൺടാക്റ്റുമായി നിലവിലെ കോൺടാക്റ്റ് ലിങ്കുചെയ്യണോ?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"തിരഞ്ഞെടുത്ത കോൺടാക്റ്റ് എഡിറ്റുചെയ്യുന്നതിലേക്ക് മാറണോ? ഇതുവരെ നിങ്ങൾ നൽകിയ വിവരങ്ങൾ പകർത്തപ്പെടും."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"എന്റെ കോൺടാക്റ്റുകളിലേക്ക് പകർത്തുക"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"എന്റെ കോൺടാക്റ്റുകളിൽ ചേർക്കുക"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"ഡയറക്‌ടറി <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"ഇഷ്‌ടാനുസൃതം"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"ക്രമീകരണങ്ങൾ"</string>
-    <string name="menu_settings" msgid="377929915873428211">"ക്രമീകരണങ്ങൾ"</string>
-    <string name="menu_help" msgid="1680178646764069976">"സഹായവും ഫീഡ്‌ബാക്കും"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ഡിസ്‌പ്ലേ ഓപ്‌ഷനുകൾ"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ഫോൺ നമ്പർ"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"കോൺടാക്റ്റുകളിൽ ചേർക്കുക"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"കോണ്‍‌ടാക്റ്റിലേക്ക് ചേര്‍ക്കുക"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"അടയ്‌ക്കുക"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"വർഷം ഉൾപ്പെടുത്തുക"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"കോൺടാക്റ്റ്"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"ലോഡുചെയ്യുന്നു..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"പുതിയകോൺടാക്റ്റ് സൃഷ്‌ടിക്കൂ"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"അക്കൗണ്ട് ചേർക്കുക"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"കോൺടാക്റ്റുകൾ ഇമ്പോർട്ടുചെയ്യുക"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"പുതുഗ്രൂപ്പ് സൃഷ്‌ടിക്കൂ"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"പുതുഗ്രൂപ്പ് സൃഷ്‌ടിക്കൂ"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ഗ്രൂപ്പുകൾ</item>
-      <item quantity="one">ഒരു ഗ്രൂപ്പ്</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" എന്ന ഗ്രൂപ്പ് ഇല്ലാതാക്കണോ? (കോൺടാക്റ്റുകൾ സ്വയം ഇല്ലാതാകില്ല.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള <xliff:g id="COUNT_2">%1$d</xliff:g> പേർ</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള <xliff:g id="COUNT_0">%1$d</xliff:g> ആൾ</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> പേർ</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ആൾ</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"മറ്റൊരു കോൺടാക്റ്റുമായി ലിങ്കുചെയ്യുന്നതിന് മുമ്പ് കോൺടാക്റ്റിന്റെ പേര് ടൈപ്പുചെയ്യുക."</string>
-    <string name="copy_text" msgid="3257145021583508761">"ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക"</string>
-    <string name="set_default" msgid="4417505153468300351">"സ്ഥിരമായി സജ്ജമാക്കുക"</string>
-    <string name="clear_default" msgid="7193185801596678067">"സ്ഥിരമായത് മായ്‌ക്കുക"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"വാചകം പകർത്തി"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"നിങ്ങളുടെ മാറ്റങ്ങൾ നിരസിക്കണോ?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"തള്ളിക്കളയുക"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"പ്രൊഫൈൽ സജ്ജമാക്കൂ"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"വ്യക്തിയുടെ പേര് ടൈപ്പുചെയ്യുക"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"ഗ്രൂപ്പിന്റെ പേര്"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"എന്റെ പ്രാദേശിക പ്രൊഫൈൽ"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"എന്റെ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> പ്രൊഫൈൽ"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"എല്ലാ കോൺടാക്റ്റുകളും പ്രദർശിപ്പിക്കുന്നു"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"ഒരു Google അക്കൗണ്ടുള്ള കോൺടാക്‌റ്റുകൾക്ക് മികച്ച രീതിയിൽ പ്രവർത്തിക്കാനാകും.\n\n• ഏത് ബ്രൗസറിൽ നിന്നും ആക്‌സസ്സുചെയ്യുക.\n• നിങ്ങളുടെ കോൺടാക്റ്റുകൾ സുരക്ഷിതമായി ബാക്കപ്പുചെയ്യുക."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"നിങ്ങൾക്ക് ഫോൺ നഷ്‌ടമാകുകയാണെങ്കിൽപ്പോലും നിങ്ങളുടെ കോൺടാക്റ്റുകൾ സുരക്ഷിതമായി സൂക്ഷിക്കുക: ഒരു ഓൺലൈൻ സേവനവുമായി സമന്വയിപ്പിക്കുക."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ഒരു അക്കൗണ്ട് ചേർക്കുക"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"നിങ്ങളുടെ പുതിയ കോൺടാക്റ്റ് ബാക്കപ്പുചെയ്യില്ല. കോൺടാക്റ്റുകളെ ഓൺലൈനിൽ ബാക്കപ്പുചെയ്യുന്ന ഒരു അക്കൗണ്ട് ചേർക്കണോ?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"പുതിയ കോൺടാക്റ്റുകൾ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> എന്ന അക്കൗണ്ടിലേക്ക് സംരക്ഷിക്കപ്പെടും."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"പുതിയ കോൺടാക്റ്റുകൾക്ക് ഒരു ഡിഫോൾട്ട് അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"പുതിയവ ചേർക്കൂ"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"എഡിറ്റുചെയ്യുക"</string>
-    <string name="keep_local" msgid="1258761699192993322">"പ്രാദേശികമായി സൂക്ഷിക്കുക"</string>
-    <string name="add_account" msgid="8201790677994503186">"അക്കൗണ്ട് ചേർക്കുക"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"പുതിയ അക്കൗണ്ട് ചേർക്കുക"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"ഡാറ്റാബേസ് ഫയലുകൾ എക്‌സ്‌പോർട്ടുചെയ്യുക"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"പുതിയവ ചേർക്കൂ"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"കൂടുതല്‍ കാണുക"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"കുറച്ച് കാണുക"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"എല്ലാം കാണുക"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"പുതിയത്"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"ആമുഖം"</string>
-    <string name="send_message" msgid="8938418965550543196">"സന്ദേശം അയയ്ക്കുക"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ഒരു വ്യക്തിഗത പകർപ്പ് സൃഷ്‌ടിക്കുന്നു…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"ഇന്നലെ"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"നാളെ"</string>
-    <string name="today" msgid="8041090779381781781">"ഇന്ന്"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"ഇന്ന് <xliff:g id="TIME_INTERVAL">%s</xliff:g> മണിയ്‌ക്ക്"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"നാളെ <xliff:g id="TIME_INTERVAL">%s</xliff:g> മണിയ്‌ക്ക്"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(ശീർഷകമില്ലാത്ത ഇവന്റ്)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"സജ്ജമാക്കുക"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"ഓര്‍ഗനൈസേഷന്‍"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"വിളിപ്പേര്"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"കുറിപ്പ്"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"വെബ്‌സൈറ്റ്"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ഇവന്‍റ്"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"ബന്ധം"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"അക്കൗണ്ട്"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"പേര്"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ഇമെയിൽ"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ഫോണ്‍"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ഫോട്ടോ"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"കോൺടാക്‌റ്റ് എഡിറ്റർ വിപുലീകരിക്കാൻ ക്ലിക്കുചെയ്യുക."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"കോൺടാക്‌റ്റ് എഡിറ്റർ ചുരുക്കാൻ ക്ലിക്കുചെയ്യുക."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"ലൊക്കേഷനിലേക്കുള്ള വഴികൾ"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"പുതിയ sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. മറുപടി നൽകാൻ ക്ലിക്കുചെയ്യുക"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ഇൻകമിംഗ്"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ഔട്ട്‌ഗോയിംഗ്"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"മിസ്‌ഡ് കോളുകൾ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"പുതിയ കോൾ. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. തിരികെ വിളിക്കാൻ ക്ലിക്കുചെയ്യുക"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"നിങ്ങൾ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"ഇമെയിൽ ഫീൽഡിലോ ഫോൺ ഫീൽഡിലോ വ്യക്തിയുടെ Hangouts ഐഡന്റിഫയർ നൽകുമ്പോൾ, Hangouts മികച്ചതായി പ്രവർത്തിക്കുന്നു."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"കൂടുതൽ ഫീൽഡുകൾ"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ഫോട്ടോ മാറ്റുക"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"എഡിറ്റർ തുറക്കുന്നത് പരാജയപ്പെട്ടു."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"ഇതിലേക്ക് സംരക്ഷിക്കുന്നു"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"നിലവിൽ <xliff:g id="ACCOUNT_NAME">%s</xliff:g> എന്ന അക്കൗണ്ടിലേക്ക് സംരക്ഷിക്കുന്നു. മറ്റൊരു അക്കൗണ്ടിലേക്ക് സംരക്ഷിക്കാൻ രണ്ടുതവണ ടാപ്പുചെയ്യുക."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">ലിങ്കുചെയ്ത കോൺടാക്റ്റുകൾ (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">ലിങ്കുചെയ്ത കോൺടാക്റ്റ്</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"ലിങ്കുചെയ്ത <xliff:g id="COUNT">%d</xliff:g> കോൺടാക്റ്റുകൾ"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"കോൺടാക്റ്റുകൾ ലിങ്കുചെയ്യുക"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"റദ്ദാക്കുക"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other">സാധ്യതയുള്ള <xliff:g id="COUNT">%d</xliff:g> ഡ്യൂപ്ലിക്കേറ്റുകൾ</item>
-      <item quantity="one">സാധ്യതയുള്ള ഒരു ഡ്യൂപ്ലിക്കേറ്റ്</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">ലിങ്കുചെയ്ത <xliff:g id="COUNT">%d</xliff:g> കോൺടാക്റ്റുകൾ</item>
-      <item quantity="one">ലിങ്കുചെയ്ത ഒരു കോൺടാക്റ്റ്</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ഈ കോൺടാക്റ്റ്"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"സാധ്യതയുള്ള ഡ്യൂപ്ലിക്കേറ്റുകൾ"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ഈ കോൺടാക്റ്റുകൾ, ഒരേ വ്യക്തി ആയേക്കാം, ഒരൊറ്റ കോൺടാക്റ്റായി നിങ്ങൾക്കിവ ലിങ്കുചെയ്യാവുന്നതാണ്."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"ലിങ്കുചെയ്ത കോൺടാക്റ്റുകൾ"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"നിങ്ങളുടെ അക്കൗണ്ടുകളിൽ നിന്നും"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ഒരു ഫോട്ടോ എടുക്കുക"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"എല്ലാ ഫോട്ടോകളും"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ഫോട്ടോ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> എന്നതിൽ നിന്ന്"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> ഇല്ലാതാക്കുക"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> ഇല്ലാതാക്കുക"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> എന്നതിൽ നിന്നുള്ള ഫോട്ടോ ചെക്കുചെയ്തില്ല"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> എന്നതിൽ നിന്നുള്ള ഫോട്ടോ ചെക്കുചെയ്തു"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"തിരിച്ചറിയാനാകാത്ത അക്കൗണ്ടിൽ നിന്നുള്ള ഫോട്ടോ തിരഞ്ഞെടുത്തിട്ടില്ല"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"തിരിച്ചറിയാനാകാത്ത അക്കൗണ്ടിൽ നിന്നുള്ള ഫോട്ടോ തിരഞ്ഞെടുത്തു"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"ഭാഷാ മാറ്റം പ്രതിഫലിപ്പിക്കുന്നതിന് കോൺടാക്റ്റ് ലിസ്റ്റ് അപ്‌ഡേറ്റ് ചെയ്തുകൊണ്ടിരിക്കുന്നു.\n\nകാക്കുക..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"നമ്പർ ചേർക്കുക"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"നമ്പർ ബ്ലോക്കുചെയ്യുക"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"നമ്പർ ചേർക്കുക അല്ലെങ്കിൽ കോൺടാക്റ്റുകൾ തിരയുക"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> അൺബ്ലോക്കുചെയ്യണോ?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"അൺബ്ലോക്കുചെയ്യുക"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്യണോ?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ബ്ലോക്കുചെയ്യുക"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്തു"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> അൺബ്ലോക്കുചെയ്തു"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> അസാധുവാണ്."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"കോൾ ബ്ലോക്കുചെയ്യൽ താൽക്കാലികമായി ഓഫാണ്"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"കഴിഞ്ഞ 48 മണിക്കൂറിനുള്ളിൽ നിങ്ങൾ ഈ ഫോണിൽ നിന്ന് അടിയന്തിര സേവനങ്ങളുമായി ബന്ധപ്പെട്ടതിനാൽ കോൾ ബ്ലോക്കുചെയ്യൽ പ്രവർത്തനരഹിതമാക്കി. 48 മണിക്കൂർ സമയപരിധി കഴിഞ്ഞയുടൻ ഇത് സ്വയമേവ പ്രവർത്തനക്ഷമമാക്കപ്പെടും."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ഇമ്പോർട്ടുചെയ്യുക"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"നമ്പറുകൾ കാണുക"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"നമ്പർ ചേർക്കുക"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"48 മണിക്കൂർ നേരത്തേക്ക് കോൾ ബ്ലോക്കുചെയ്യൽ പ്രവർത്തനരഹിതമാക്കി"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"എമർജൻസി കോൾ നടത്തിയതിനാൽ പ്രവർത്തനരഹിതമാക്കി."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"പഴയപടിയാക്കുക"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"ഇതിനകം തന്നെ <xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്തിരിക്കുന്നു"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"നമ്പർ അൺബ്ലോക്കുചെയ്യുക"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> എന്നതിന്റെ കോൺ‌ടാക്റ്റ് വിശദാംശങ്ങൾ"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ഇമ്പോർട്ടുചെയ്യൽ പരാജയപ്പെട്ടു"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"നമ്പറുകൾ ഇമ്പോർട്ടുചെയ്യുക"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ഓണാക്കുക"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
new file mode 100644
index 0000000..19f8418
--- /dev/null
+++ b/res/values-ml/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"വിലാസങ്ങൾ"</string>
+    <string name="contactsList" msgid="8661624236494819731">"വിലാസങ്ങൾ"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"കോൺടാക്റ്റ് ചേർക്കുക"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"കോൺടാക്റ്റ്"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"നേരിട്ടുള്ള ഡയൽ"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"സന്ദേശങ്ങൾ നേരിട്ട്"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"കോൺടാക്‌റ്റ് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"കോണ്‍‌ടാക്റ്റിലേക്ക് ചേര്‍ക്കുക"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"കോൺടാക്റ്റ് തിരഞ്ഞെടുക്കൂ"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"തിരഞ്ഞെടുക്കുക"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"പുതിയകോൺടാക്റ്റ് സൃഷ്‌ടിക്കൂ"</string>
+    <string name="searchHint" msgid="8482945356247760701">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"പ്രിയപ്പെട്ടവയിലേക്ക് ചേർക്കുക"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"പ്രിയപ്പെട്ടവയിൽ നിന്നും നീക്കംചെയ്യുക"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"പ്രിയപ്പെട്ടവയിൽ നിന്നും നീക്കംചെയ്‌തു"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"പ്രിയപ്പെട്ടവയിലേക്ക് ചേർത്തു"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"എഡിറ്റുചെയ്യുക"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ഇല്ലാതാക്കുക"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ഫോട്ടോ മാറ്റുക"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"കുറുക്കുവഴി സൃഷ്‌ടിക്കുക"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"അൺലിങ്കുചെയ്യുക"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"കോൺടാക്‌റ്റുകൾ നീക്കംചെയ്യൂ"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"ലേബലിന്റെ പേരുമാറ്റുക"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"ലേബല്‍ ഇല്ലാതാക്കുക"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"കോൺടാക്റ്റ് ചേർക്കുക"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"കോണ്‍‌ടാക്റ്റുകൾ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"കോൺടാക്റ്റുകൾ ചേർക്കുക"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"ലേബ‌ലിൽ നിന്ന് നീക്കംചെയ്യുക"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"ലേബല്‍ സൃഷ്ടിക്കുക"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"ഈ കോൺടാക്റ്റ് ഒന്നിലധികം കോൺടാക്റ്റുകളായി അൺലിങ്കുചെയ്യണോ?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"അൺലിങ്കുചെയ്യുക"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"നിങ്ങൾ ഇതിനകം വരുത്തിയിട്ടുള്ള മാറ്റങ്ങൾ സംരക്ഷിക്കാനും ഒന്നിലധികം കോൺടാക്റ്റുകളായി ഈ കോൺടാക്റ്റ് അൺലിങ്കുചെയ്യാനും താൽപ്പര്യപ്പെടുന്നുണ്ടോ?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"സംരക്ഷിച്ച് അൺലിങ്കുചെയ്യുക"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"നിങ്ങൾ ഇതിനകം വരുത്തിയിട്ടുള്ള മാറ്റങ്ങൾ സംരക്ഷിക്കാനും തിരഞ്ഞെടുത്ത കോൺടാക്റ്റുമായി ലിങ്കുചെയ്യാനും താൽപ്പര്യപ്പെടുന്നുണ്ടോ?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"സംരക്ഷിച്ച് ലിങ്കുചെയ്യുക"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"ലിങ്കുചെയ്യുന്നു"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"അൺലിങ്കുചെയ്യുന്നു"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"ലിങ്ക്"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"ലിങ്കുചെയ്‌ത കോൺടാക്‌റ്റുകൾ കാണുക"</string>
+    <string name="menu_save" msgid="1727844363591825909">"സംരക്ഷിക്കുക"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"കോണ്ടാക്റ്റുകൾ ലിങ്കുചെയ്യൂ"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> എന്നയാളുമായി ലിങ്കുചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന കോൺടാക്റ്റ് തിരഞ്ഞെടുക്കുക:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"നിര്‍ദ്ദേശിക്കുന്ന കോണ്‍ടാക്റ്റുകള്‍"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"എല്ലാ കോൺടാക്റ്റുകളും"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ലിങ്കുചെയ്‌തു"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ലിങ്കുചെയ്ത കോൺടാക്റ്റുകൾ"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> എന്ന കോൺടാക്റ്റിനെ ഇല്ലാതാക്കി"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g>,<xliff:g id="NAME_1">%2$s</xliff:g> എന്നീ കോൺടാക്റ്റുകളെ ഇല്ലാതാക്കി"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g> എന്നീ കോൺടാക്റ്റുകളെ ഇല്ലാതാക്കി…"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">കോൺടാക്റ്റുകൾ ഇല്ലാതാക്കി</item>
+      <item quantity="one">കോൺടാക്റ്റ് ഇല്ലാതാക്കി</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> കോൺടാക്റ്റുകൾ</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> കോൺടാക്റ്റ്</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> കോൺടാക്‌റ്റുകൾ · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> കോൺടാക്‌റ്റ് · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google-ൽ നിന്നുള്ളവ"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> അക്കൗണ്ടിൽ നിന്നുള്ളവ"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"റിംഗ്‌ടോൺ സജ്ജമാക്കുക"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"വോയ്‌സ്‌മെയിലിൽ റൂട്ടുചെയ്യുക"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"വോയ്‌സ്‌മെയിലിൽ അൺറൂട്ടുചെയ്യൂ"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"ഈ കോൺടാക്‌റ്റ്‌ വായിക്കാൻ മാത്രമുള്ളതാണ്‌. അത് ഇല്ലാതാക്കാനാവില്ല, എന്നാൽ മറയ്‌ക്കാനാവും."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"കോൺടാക്‌‌റ്റ്‌ മറയ്‌ക്കുക"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"ഈ കോൺടാക്‌റ്റിലെ വായിക്കാൻ മാത്രമുള്ള അക്കൗണ്ടുകൾ മറയ്‌ക്കുന്നതാണ്‌, എന്നാൽ അവ ഇല്ലാതാക്കില്ല."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"ഈ കോൺടാക്റ്റ് ഇല്ലാതാക്കണോ?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"തിരഞ്ഞെടുത്ത കോൺടാക്‌റ്റുകൾ ഇല്ലാതാക്കണോ?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"നിങ്ങളുടെ വായന-മാത്രമായ അക്കൗണ്ടുകളിൽ നിന്നുള്ള കോൺടാക്റ്റുകൾ ഇല്ലാതാക്കാൻ കഴിയില്ല, എന്നാൽ അവയെ മറയ്ക്കാവുന്നതാണ്."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ഇല്ലാതാക്കേണ്ട കോൺടാക്റ്റുകളിൽ ഒന്നിലധികം അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിശദാംശങ്ങൾ അടങ്ങിയിരിക്കുന്നു. വായന-മാത്രമായ അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിശദാംശങ്ങൾ മറയ്‌ക്കുമെങ്കിലും, അവ ഇല്ലാതാക്കില്ല."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ഈ കോൺടാക്റ്റ് ഇല്ലാതാക്കുന്നതുവഴി ഒന്നിലധികം അക്കൗണ്ടുകളിൽ നിന്നുള്ള വിശദാംശങ്ങൾ ഇല്ലാതാക്കപ്പെടും."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"ഈ കോൺടാക്റ്റ് ഇല്ലാതാക്കണോ?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ഇല്ലാതാക്കുക"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"കോൺടാക്റ്റ് നിലവിലില്ല."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"ഹോം സ്ക്രീനിലേക്ക് കോൺടാക്റ്റ് ചേർത്തു."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"ഹോം സ്ക്രീനിലേക്ക് <xliff:g id="NAME">%s</xliff:g> ചേർത്തു."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"ഉപകരണത്തിൽ ചിത്രങ്ങളൊന്നും ലഭ്യമല്ല."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"കോൺടാക്‌‌റ്റിന്റെ ഫോട്ടോ"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ഇഷ്‌ടാനുസൃത ലേബൽ പേര്"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ഫോട്ടോ നീക്കംചെയ്യുക"</string>
+    <string name="noContacts" msgid="2228592924476426108">"നിങ്ങളുടെ കോൺടാക്‌റ്റ് ലിസ്‌റ്റ് ശൂന്യമാണ്"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ഈ ലേബലുള്ള കോൺടാക്‌റ്റുകളൊന്നുമില്ല"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ഈ അക്കൗണ്ടിൽ കോൺടാക്‌റ്റുകളൊന്നുമില്ല"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"നിങ്ങളുടെ കോൺടാക്‌റ്റ് ലിസ്‌റ്റ് ശൂന്യമാണ്"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> സംരക്ഷിച്ചു"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"കോൺടാക്റ്റ് സംരക്ഷിച്ചു"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"കോൺടാക്റ്റുകൾ അൺലിങ്കുചെയ്തു"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"കോൺടാക്റ്റ് മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"കോൺടാക്റ്റ് അൺലിങ്കുചെയ്യാനായില്ല"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"കോൺടാക്റ്റ് ലിങ്കുചെയ്യാനായില്ല"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"കോൺടാക്റ്റ് സംരക്ഷിക്കുന്നതില്‍ പിശക്"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"കോൺടാക്റ്റ് ഫോട്ടോയിലെ മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"ലേബൽ ലോഡുചെയ്യുന്നത് പരാജയപ്പെട്ടു"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"ലേബൽ ഇല്ലാതാക്കി"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"ലേബൽ സൃഷ്‌ടിച്ചു"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"ലേബൽ സൃഷ്‌ടിക്കാൻ കഴിയുന്നില്ല"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"ലേബൽ അപ്ഡേറ്റുചെയ്‌തു"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"ലേബലിൽ നിന്ന് നീക്കംചെയ്‌തു"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"ലേബലിൽ ചേർത്തു"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"ലേബൽ മാറ്റങ്ങൾ സംരക്ഷിക്കാനായില്ല"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ആ ലേബൽ നിലവിലുണ്ട്"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"ചില കോൺടാക്റ്റുകൾക്ക് ഇമെയിലുകൾ ഇല്ല."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"ചില കോൺടാക്റ്റുകൾക്ക് ഫോൺ നമ്പറുകൾ ഇല്ല."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ഇമെയില്‍ അയയ്ക്കുക"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"സന്ദേശം അയയ്‌ക്കുക"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"അയയ്‌ക്കുക"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"കോൺടാക്റ്റുകളൊന്നുമില്ല"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"കോൺടാക്റ്റുകളിലേക്ക് \"<xliff:g id="EMAIL">%s</xliff:g>\" ചേർക്കണോ?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"നിങ്ങളുടെ കോൺടാക്റ്റുകളുടെ പേരുകൾ"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"മുമ്പത്തെ സ്‌ക്രീനിലേക്ക് മടങ്ങാൻ ക്ലിക്കുചെയ്യുക"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ഫോണ്‍ നമ്പര്‍ ചേര്‍ക്കുക"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ഇമെയില്‍‌ ചേര്‍‌ക്കുക"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ഈ പ്രവർത്തനം കൈകാര്യം ചെയ്യാൻ അപ്ലിക്കേഷനുകളൊന്നും കണ്ടെത്തിയില്ല."</string>
+    <string name="menu_share" msgid="943789700636542260">"പങ്കിടുക"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"കോൺടാക്‌റ്റുകളിൽ ചേർക്കുക"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"ചേർക്കുക"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">ഇതുവഴി കോൺടാക്‌റ്റുകൾ പങ്കിടുക</item>
+      <item quantity="one">ഇതുവഴി കോൺടാക്‌റ്റ് പങ്കിടുക</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"ലേബല്‍ സൃഷ്ടിക്കുക"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"ലേബലിന്റെ പേരുമാറ്റുക"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ലേബല്‍ പേര്"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ലേബല്‍ പേര്"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"വോയ്സ് ചാറ്റ്"</string>
+    <string name="video_chat" msgid="1872255818640336072">"വീഡിയോ ചാറ്റ്"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> കോൺടാക്റ്റ്"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> അക്കൗണ്ട്"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ഫോട്ടോ എടുക്കുക"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"പുതിയ ഫോട്ടോ എടുക്കുക"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ഫോട്ടോ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"പുതിയ ഫോട്ടോ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"തിരയുന്നു…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"തീയതി"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ലേബൽ"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"റദ്ദാക്കുക"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"മടങ്ങുക"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"അടയ്‌ക്കുക"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"തിരഞ്ഞെടുത്ത കോൺടാക്റ്റ് എഡിറ്റുചെയ്യുന്നതിലേക്ക് മാറണോ? ഇതുവരെ നിങ്ങൾ നൽകിയ വിവരങ്ങൾ പകർത്തപ്പെടും."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ഡയറക്‌ടറി <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ക്രമീകരണം"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ക്രമീകരണം"</string>
+    <string name="menu_help" msgid="1680178646764069976">"സഹായവും ഫീഡ്‌ബാക്കും"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ഫോൺ നമ്പർ"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"കോൺടാക്റ്റുകളിൽ ചേർക്കുക"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"അടയ്‌ക്കുക"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"വർഷം ഉൾപ്പെടുത്തുക"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"അക്കൗണ്ട് ചേർക്കുക"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"ഇമ്പോർട്ടുചെയ്യുക"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"പുതിയത് സൃഷ്‌ടിക്കുക…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ലേബൽ ഇല്ലാതാക്കണോ? (കോൺടാക്റ്റുകൾ സ്വയം ഇല്ലാതാക്കപ്പെടില്ല.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"മറ്റൊരു കോൺടാക്റ്റുമായി ലിങ്കുചെയ്യുന്നതിന് മുമ്പ് കോൺടാക്റ്റിന്റെ പേര് ടൈപ്പുചെയ്യുക."</string>
+    <string name="copy_text" msgid="3257145021583508761">"ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക"</string>
+    <string name="set_default" msgid="4417505153468300351">"സ്ഥിരമായി സജ്ജമാക്കുക"</string>
+    <string name="clear_default" msgid="7193185801596678067">"സ്ഥിരമായത് മായ്‌ക്കുക"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"വാചകം പകർത്തി"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"മാറ്റങ്ങൾ നിരസിക്കണോ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"നിരസിക്കുക"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"റദ്ദാക്കൂ"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"ഇഷ്‌ടാനുസൃതമാക്കലുകൾ നിരസിക്കണോ?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"കോൺടാക്‌റ്റുകൾ നീക്കംചെയ്യൂ"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"എന്റെ പ്രാദേശിക പ്രൊഫൈൽ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"എന്റെ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> പ്രൊഫൈൽ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"കുറച്ചുസമയമെടുത്ത് ഒരു അക്കൗണ്ട് ചേർക്കുക, അത് Google-ൽ നിങ്ങളുടെ കോൺടാക്‌റ്റുകളുടെ ബായ്‌ക്കപ്പെടുക്കുന്നതിനിടയാക്കും."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"പുതിയ കോൺടാക്റ്റുകൾ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> എന്ന അക്കൗണ്ടിലേക്ക് സംരക്ഷിക്കപ്പെടും."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"പുതിയ കോൺടാക്റ്റുകൾക്ക് ഒരു ഡിഫോൾട്ട് അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"പുതിയകോൺടാക്റ്റ് സൃഷ്‌ടിക്കൂ"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"എഡിറ്റുചെയ്യുക"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"കാഴ്‌ച മാത്രം"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"എഡിറ്റുചെയ്യാനുള്ള കോൺടാക്‌റ്റ്‌ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"ലിങ്കുചെയ്ത കോൺടാക്റ്റുകൾ"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"ചേർക്കുക"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"അൺലിങ്കുചെയ്യുക"</string>
+    <string name="add_account" msgid="8201790677994503186">"അക്കൗണ്ട് ചേർക്കുക"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"പുതിയ അക്കൗണ്ട് ചേർക്കുക"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ഡാറ്റാബേസ് ഫയലുകൾ എക്‌സ്‌പോർട്ടുചെയ്യുക"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"പുതിയകോൺടാക്റ്റ് സൃഷ്‌ടിക്കൂ"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"കൂടുതൽ‍ കാണുക"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"കുറച്ച് കാണുക"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"പുതിയത്"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"ആമുഖം"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"ഒരു വ്യക്തിഗത പകർപ്പ് സൃഷ്‌ടിക്കുന്നു…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"നാളെ"</string>
+    <string name="today" msgid="8041090779381781781">"ഇന്ന്"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ഇന്ന് <xliff:g id="TIME_INTERVAL">%s</xliff:g> മണിയ്‌ക്ക്"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"നാളെ <xliff:g id="TIME_INTERVAL">%s</xliff:g> മണിയ്‌ക്ക്"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ശീർഷകമില്ലാത്ത ഇവന്റ്)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"സജ്ജമാക്കുക"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ഓര്‍ഗനൈസേഷന്‍"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"വിളിപ്പേര്"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"കുറിപ്പ്"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"വെബ്‌സൈറ്റ്"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ഇവന്‍റ്"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ബന്ധം"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"പേര്"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ഇമെയിൽ"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ഫോണ്‍"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ലൊക്കേഷനിലേക്കുള്ള വഴികൾ"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"പുതിയ sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. മറുപടി നൽകാൻ ക്ലിക്കുചെയ്യുക"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ഇൻകമിംഗ്"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ഔട്ട്‌ഗോയിംഗ്"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"മിസ്‌ഡ് കോളുകൾ"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"പുതിയ കോൾ. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. തിരികെ വിളിക്കാൻ ക്ലിക്കുചെയ്യുക"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"നിങ്ങൾ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"കൂടുതൽ ഫീൽഡുകൾ"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"കോൺടാക്‌റ്റ് ഫോട്ടോ മാറ്റുക"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"കോൺടാക്‌റ്റ് ഫോട്ടോ ചേർക്കുക"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"കോൺടാക്‌‌റ്റിന്റെ ഫോട്ടോ"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"എഡിറ്റർ തുറക്കുന്നത് പരാജയപ്പെട്ടു."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"ഇതിലേക്ക് സംരക്ഷിക്കുന്നു"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> എന്നതിലുള്ള കോൺടാക്‌റ്റ്‌ എഡിറ്റുചെയ്യാനാവില്ല"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"കോണ്ടാക്റ്റുകൾ ലിങ്കുചെയ്യൂ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"റദ്ദാക്കുക"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ഈ കോൺടാക്റ്റ്"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"സാധ്യതയുള്ള ഡ്യൂപ്ലിക്കേറ്റുകൾ"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ഈ കോൺടാക്റ്റുകൾ, ഒരേ വ്യക്തി ആയേക്കാം, ഒരൊറ്റ കോൺടാക്റ്റായി നിങ്ങൾക്കിവ ലിങ്കുചെയ്യാവുന്നതാണ്."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> ഇല്ലാതാക്കുക"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> ഇല്ലാതാക്കുക"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"നിര്‍ദ്ദേശങ്ങള്‍"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"പുതിയത്"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"നാവിഗേഷൻ ഡ്രോയർ തുറക്കുക"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"നാവിഗേഷൻ ഡ്രോയർ അടയ്‌ക്കുക"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> ലേബൽ"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ലേബലുകൾ"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"അക്കൗണ്ടുകൾ"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"ചരിത്രം ഒന്നിച്ചുകാണൂ"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ഇവന്റുകളും സന്ദേശങ്ങളും"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ഇവന്റുകൾ"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"സന്ദേശങ്ങള്‍‌"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"നിര്‍ദ്ദേശങ്ങള്‍"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"നിങ്ങളുടെ കോൺടാക്‌റ്റുകൾ ചിട്ടപ്പെടുത്തി, ഉപയോഗപ്രദമായ രീതിയിൽ സൂക്ഷിക്കുക"</string>
+    <string name="undo" msgid="1425165101664071422">"പഴയപടിയാക്കുക"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> എന്ന നമ്പറിൽ വിളിക്കുക"</string>
+    <string name="call_home" msgid="1990519474420545392">"വീട്ടിലെ ഫോണിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"മൊബൈലിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_work" msgid="5328785911463744028">"ഔദ്യോഗിക ഫോണിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"ഔദ്യോഗിക ഫാക്‌സിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"വീട്ടിലെ ഫാക്‌സിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_pager" msgid="9003902812293983281">"പേജറിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_other" msgid="8563753966926932052">"വിളിക്കുക"</string>
+    <string name="call_callback" msgid="1910165691349426858">"കോൾബാക്ക് നമ്പറിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_car" msgid="3280537320306436445">"കാർ നമ്പറിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"കമ്പനിയിലെ പ്രധാന ഫോണിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN-ലേക്ക് വിളിക്കുക"</string>
+    <string name="call_main" msgid="6082900571803441339">"പ്രധാന ഫോണിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ഫാക്‌സിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_radio" msgid="8296755876398357063">"റേഡിയോയിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ടെലക്‌സിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD-യിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"ഔദ്യോഗിക മൊബൈലിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"ഔദ്യോഗിക പേജറിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> എന്ന നമ്പറിൽ വിളിക്കുക"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS ഫോണിലേക്ക് വിളിക്കുക"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (വിളിക്കുക)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> എന്ന നമ്പറിലേക്ക് സന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_home" msgid="7524332261493162995">"വീട്ടിലെ ഫോണിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"മൊബൈലിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_work" msgid="2269624156655267740">"ഔദ്യോഗിക ഫോണിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"ഔദ്യോഗിക ഫാക്‌സിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"വീട്ടിലെ ഫാക്‌സിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"പേജറിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_other" msgid="806127844607642331">"വാചകസന്ദേശം"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"കോൾബാക്ക് ഫോണിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_car" msgid="7444227058437359641">"കാർ ഫോണിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"കമ്പനി പ്രധാന ഫോണിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN-ലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_main" msgid="8621625784504541679">"പ്രധാന ഫോണിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ഫാക്‌സിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"റേഡിയോയിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ടെലക്‌സിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD എന്നതിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"ഔദ്യോഗിക മൊബൈലിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"ഔദ്യോഗിക പേജറിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> എന്നതിലേക്ക് വാചക സന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS നമ്പറിലേക്ക് വാചകസന്ദേശമയയ്‌ക്കുക"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (സന്ദേശം)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"വീഡിയോ കോൾ ചെയ്യുക"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"പതിവായി കോൺടാക്റ്റുചെയ്യുന്നവരെ മായ്‌ക്കണോ?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"നിങ്ങൾ കോൺടാക്‌റ്റുകളുടെയും ഫോണിന്റെയും അപ്ലിക്കേഷനുകളിലെ പതിവായി കോൺടാക്റ്റുചെയ്യുന്നവരുടെ ലിസ്റ്റ് മായ്‌ക്കുകയും സ്‌ക്രാച്ചിൽ നിന്നും ബന്ധപ്പെടൽ മുൻഗണനകൾ അറിയാൻ ഇമെയിൽ അപ്ലിക്കേഷനുകളെ പ്രേരിപ്പിക്കുകയും ചെയ്യും."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"പതിവായി കോൺടാക്റ്റുചെയ്യുന്നവരെ മായ്‌ക്കുന്നു…"</string>
+    <string name="status_available" msgid="5586870015822828392">"ലഭ്യം"</string>
+    <string name="status_away" msgid="1838861100379804730">"ലഭ്യമല്ല"</string>
+    <string name="status_busy" msgid="9147992455450257136">"തിരക്കിൽ"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"മറ്റുള്ളവ"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ഡയറക്‌ടറി"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"ഔദ്യോഗിക ഡയറക്‌ടറി"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"എല്ലാ കോൺടാക്റ്റുകളും"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> എന്നയാളുടെ ദ്രുത കോൺടാക്റ്റ്"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(പേരില്ല)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"പതിവായി കോൺടാക്റ്റുചെയ്യുന്നവർ"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ഫോൺ നമ്പറുകളുള്ള എല്ലാ കോൺടാക്റ്റുകളും"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"ഔദ്യോഗിക പ്രൊഫൈൽ കോൺടാക്റ്റുകൾ"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"അപ്‌ഡേറ്റുകള്‍ കാണുക"</string>
+    <string name="account_phone" msgid="7128032778471187553">"ഉപകരണം"</string>
+    <string name="account_sim" msgid="6519016427905087952">"സിം"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"പേര്"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"വിളിപ്പേര്"</string>
+    <string name="name_given" msgid="4280790853455320619">"ഫസ്റ്റ് നെയിം"</string>
+    <string name="name_family" msgid="7466985689626017037">"ലാസ്റ്റ് നെയിം"</string>
+    <string name="name_prefix" msgid="59756378548779822">"പേരിന്റെ പ്രിഫിക്‌സ്"</string>
+    <string name="name_middle" msgid="8467433655992690326">"മിഡിൽ നെയിം"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"പേരിന്റെ സഫിക്‌സ്"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ഉച്ചാരണപ്രകാരമുള്ള പേര്"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ഫസ്റ്റ് നെയിം"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ഉച്ചാരണപ്രകാരമുള്ള മിഡിൽ നെയിം"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"പേരിന്റെ അവസാന ഭാഗം"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ഫോണ്‍"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ഇമെയില്‍"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"വിലാസം"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"ഓര്‍ഗനൈസേഷന്‍"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ബന്ധം"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"പ്രത്യേക തീയതി"</string>
+    <string name="sms" msgid="1756857139634224222">"വാചക സന്ദേശം"</string>
+    <string name="postal_address" msgid="8765560217149624536">"വിലാസം"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"കമ്പനി"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"ശീർഷകം"</string>
+    <string name="label_notes" msgid="8337354953278341042">"കുറിപ്പുകള്‍"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"ഇഷ്‌ടാനുസൃതം"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"വെബ്‌സൈറ്റ്"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ലേബലുകൾ"</string>
+    <string name="email_home" msgid="8573740658148184279">"വീട്ടിലെ ഇമെയിൽ"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"മൊബൈൽ ഇമെയിൽ"</string>
+    <string name="email_work" msgid="2807430017302722689">"ഔദ്യോഗിക ഇമെയിൽ"</string>
+    <string name="email_other" msgid="3454004077967657109">"ഇമെയില്‍"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> എന്നതിലേക്ക് ഇമെയിൽ അയയ്‌ക്കുക"</string>
+    <string name="email" msgid="5668400997660065897">"ഇമെയില്‍"</string>
+    <string name="postal_street" msgid="8133143961580058972">"സ്ട്രീറ്റ്"</string>
+    <string name="postal_city" msgid="6597491300084895548">"നഗരം"</string>
+    <string name="postal_region" msgid="6045263193478437672">"സംസ്ഥാനം"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"തപാൽ കോഡ്"</string>
+    <string name="postal_country" msgid="7638264508416368690">"രാജ്യം"</string>
+    <string name="map_home" msgid="1243547733423343982">"വീട്ടുവിലാസം കാണുക"</string>
+    <string name="map_work" msgid="1360474076921878088">"ഔദ്യോഗിക വിലാസം കാണുക"</string>
+    <string name="map_other" msgid="3817820803587012641">"വിലാസം കാണുക"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> വിലാസം കാണുക"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM ഉപയോഗിച്ച് ചാറ്റുചെയ്യുക"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live ഉപയോഗിച്ച് ചാറ്റുചെയ്യുക"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo ഉപയോഗിച്ച് ചാറ്റുചെയ്യുക"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype ഉപയോഗിച്ച് ചാറ്റുചെയ്യുക"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ ഉപയോഗിച്ച് ചാറ്റുചെയ്യുക"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk ഉപയോഗിച്ച് ചാറ്റുചെയ്യുക"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ ഉപയോഗിച്ച് ചാറ്റുചെയ്യുക"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber ഉപയോഗിച്ച് ചാറ്റുചെയ്യുക"</string>
+    <string name="chat" msgid="9025361898797412245">"ചാറ്റുചെയ്യുക"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ഇല്ലാതാക്കുക"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"പേരിന്റെ കൂടുതൽ ഫീൽഡുകൾ കാണിക്കുക"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"പേരിന്റെ ഫീൽഡുകൾ ചുരുക്കുക"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"ഉച്ചാരണപ്രകാരമുള്ള പേരിന്റെ കൂടുതൽ ഫീൽഡുകൾ കാണിക്കുക"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ഫൊണറ്റിക് പേരിന്റെ ഫീൽഡുകൾ ചുരുക്കുക"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"വികസിപ്പിക്കുക"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"ചുരുക്കുക"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"വികസിപ്പിച്ചു"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"ചുരുക്കി"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"എല്ലാ കോൺടാക്റ്റുകളും"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"നക്ഷത്രമിട്ടവ"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"ഇഷ്‌ടാനുസൃതമാക്കുക"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"കോൺടാക്റ്റ്"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"മറ്റെല്ലാ കോൺടാക്റ്റുകളും"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"എല്ലാ കോൺടാക്റ്റുകളും"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"സമന്വയ ഗ്രൂപ്പ് നീക്കംചെയ്യുക"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"സമന്വയ ഗ്രൂപ്പ് ചേർക്കുക"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"കൂടുതൽ ഗ്രൂപ്പുകൾ…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"സമന്വയത്തിൽ നിന്നും \"<xliff:g id="GROUP">%s</xliff:g>\" നീക്കംചെയ്യുന്നത്, സമന്വയത്തിൽ നിന്നും ഗ്രൂപ്പുചെയ്യാത്ത എല്ലാ കോൺടാക്റ്റുകളേയും നീക്കംചെയ്യുന്നതിനിടയാക്കും."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ഡിസ്‌പ്ലേ ഓപ്‌ഷനുകൾ സംരക്ഷിക്കുന്നു…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"ഇഷ്‌ടാനുസൃത കാഴ്‌ച"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"ഇമ്പോർട്ടുചെയ്ത കോൺടാക്റ്റുകൾ ഇനിപ്പറയുന്നതിലേക്ക് സംരക്ഷിക്കുക:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"സിം കാർഡ്‌"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"സിം, <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%d കോൺടാക്‌റ്റുകൾ</item>
+      <item quantity="one">ഒരു കോൺടാക്‌റ്റ്</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> കോൺടാക്‌റ്റുകൾ • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> കോൺടാക്‌റ്റ്‌ • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ഫയൽ"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"ഇമ്പോർട്ടുചെയ്യാനൊന്നുമില്ല"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard-ൽ നിന്ന്‌ കോൺടാക്‌റ്റുകൾ ഇമ്പോർട്ടുചെയ്യണോ?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> എന്നത് ഇമ്പോർട്ടുചെയ്യുന്നത് റദ്ദാക്കണോ?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> എന്നത് എക്‌സ്‌പോർട്ടുചെയ്യുന്നത് റദ്ദാക്കണോ?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard ഇമ്പോർട്ടുചെയ്യൽ/എക്‌സ്‌പോർട്ടുചെയ്യൽ റദ്ദാക്കാനായില്ല"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"അജ്ഞാത പിശക്."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" തുറക്കാനായില്ല: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"എക്‌സ്‌പോർട്ടർ ആരംഭിക്കാനായില്ല: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"എക്‌സ്‌പോർട്ടുചെയ്യാനാകുന്ന കോൺടാക്റ്റ് ഒന്നുമില്ല."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"ആവശ്യമായ ഒരു അനുമതി നിങ്ങൾ പ്രവർത്തനരഹിതമാക്കി."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"എക്‌സ്‌പോർട്ടുചെയ്യുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O പിശക്"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"ആവശ്യമായ മെമ്മറിയില്ല. ഫയൽ വളരെ വലുതായിരിക്കാം."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ഫോർമാറ്റിനെ പിന്തുണയ്‌ക്കില്ല."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> എക്‌സ്‌പോർട്ടുചെയ്യൽ പൂർത്തിയായി."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"കോൺടാക്റ്റുകൾ എക്‌സ്‌പോർട്ടുചെയ്യൽ പൂർത്തിയായി."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"കോൺടാക്റ്റുകൾ എക്‌സ്‌പോർട്ടുചെയ്യൽ പൂർത്തിയായി, കോൺടാക്റ്റുകൾ പങ്കിടുന്നതിന് അറിയിപ്പിൽ ക്ലിക്കുചെയ്യുക."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"കോൺടാക്റ്റുകൾ പങ്കിടാൻ ടാപ്പുചെയ്യുക."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> എക്‌സ്‌പോർട്ടുചെയ്യൽ റദ്ദാക്കി."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"കോൺടാക്റ്റ് ഡാറ്റ എക്‌സ്‌പോർട്ടുചെയ്യുന്നു"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"കോൺടാക്റ്റ് ഡാറ്റ എക്സ്പോർട്ടുചെയ്യുകയാണ്."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ഡാറ്റാബേസ് വിവരം നേടാനായില്ല."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"എക്‌സ്‌പോർട്ടുചെയ്യാനാകുന്ന കോൺടാക്റ്റുകളൊന്നുമില്ല."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard കമ്പോസർ ശരിയായി ആരംഭിച്ചില്ല."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"എക്‌സ്‌പോർട്ടുചെയ്യാനായില്ല"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"കോൺടാക്റ്റ് ഡാറ്റ എക്‌സ്‌പോർട്ടുചെയ്‌തില്ല.\nകാരണം: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> എന്നയാളെ ഇമ്പോർട്ടുചെയ്യുന്നു"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard ഡാറ്റ വായിക്കാനായില്ല"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> ഇമ്പോർട്ടുചെയ്യൽ പൂർത്തിയായി"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> ഇമ്പോർട്ടുചെയ്യൽ റദ്ദാക്കി"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> എന്നത് ഉടൻ ഇമ്പോർട്ടുചെയ്യും."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ഫയൽ ഉടൻ ഇമ്പോർട്ടുചെയ്യും."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard ഇമ്പോർട്ടുചെയ്യൽ അഭ്യർത്ഥന നിരസിച്ചു. പിന്നീട് വീണ്ടും ശ്രമിക്കുക."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"കോൺടാക്റ്റുകൾ താമസിയാതെ എക്സ്പോർട്ടുചെയ്യും."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard എക്‌സ്‌പോർട്ടുചെയ്യൽ അഭ്യർത്ഥന നിരസിച്ചു. പിന്നീട് വീണ്ടും ശ്രമിക്കുക."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"കോൺടാക്റ്റ്"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"പ്രാദേശിക താൽക്കാലിക സംഭരണത്തിലേക്ക് vCard (vCard-കൾ) കാഷെ ചെയ്യുന്നു. യഥാർത്ഥ ഇമ്പോർട്ടുചെയ്യൽ ഉടൻ ആരംഭിക്കും."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard ഇമ്പോർട്ടുചെയ്യാനായില്ല."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC മുഖേന ലഭിച്ച കോൺടാക്റ്റ്"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"കാഷെ ചെയ്യൽ"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> ഇമ്പോർട്ടുചെയ്യുന്നു: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf ഫയലിലേക്ക് എക്സ്പോർട്ട് ചെയ്യൂ"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"ഇപ്രകാരം അടുക്കുക"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ഉച്ചാരണപ്രകാരമുള്ള പേര്"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"എപ്പോഴും പ്രദര്‍ശിപ്പിക്കുക"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"ശൂന്യമാണെങ്കിൽ മറയ്‌ക്കുക"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"ഫസ്റ്റ് നെയിം"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"ലാസ്റ്റ് നെയിം"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"പേരിന്റെ ഫോർമാറ്റ്"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ഫസ്റ്റ് നെയിം ആദ്യം"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"ലാസ്റ്റ് നെയിം ആദ്യം"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"അക്കൗണ്ടുകൾ"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"പുതിയകോൺടാക്റ്റുകൾക്കുള്ള ഡിഫോൾട്ട് അക്കൗണ്ട്"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"എന്റെ വിവരം"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"നിങ്ങളുടെ പ്രൊഫൈൽ സജ്ജമാക്കുക"</string>
+    <string name="setting_about" msgid="7014388749752042863">"കോണ്‍ടാക്റ്റുകളെ കുറിച്ച്"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"പ്രിയപ്പെട്ട കോൺടാക്റ്റുകൾ പങ്കിടുക"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"എല്ലാ കോൺടാക്റ്റുകളും പങ്കിടുക"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"കോൺടാക്റ്റുകൾ പങ്കിടുന്നത് പരാജയം."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"കോൺടാക്റ്റുകൾ എക്‌സ്‌പോർട്ടുചെയ്യുക"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"ഇതിൽ നിന്ന്‌ കോൺടാക്‌റ്റ് ഇമ്പോർട്ടുചെയ്യൂ"</string>
+    <string name="share_error" msgid="948429331673358107">"ഈ കോൺടാക്റ്റ് പങ്കിടാനാകില്ല."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"പങ്കിടാൻ കോൺടാക്റ്റുകളൊന്നും ഇല്ല."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ദൃശ്യമാക്കേണ്ട കോൺടാക്റ്റുകൾ"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ദൃശ്യമാക്കേണ്ട കോൺടാക്റ്റുകൾ"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"കാഴ്‌ച ഇഷ്‌ടാനുസൃതമാക്കുക"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"സംരക്ഷിക്കുക"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"പ്രിയപ്പെട്ടവ"</string>
+    <string name="menu_import" msgid="6107961135813836467">"ഇമ്പോർട്ടുചെയ്യുക"</string>
+    <string name="menu_export" msgid="2658783911863503902">"എക്‌സ്‌പോർട്ട് ചെയ്യുക"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> വഴി"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> വഴി <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"തിരയൽ നിർത്തുക"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"തിരയൽ മായ്ക്കുക"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"അക്കൗണ്ട്"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ഇത് എല്ലായ്‌പ്പോഴും കോളുകൾക്കായി ഉപയോഗിക്കുക"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"കുറിപ്പിനൊപ്പം വിളിക്കുക"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"കോളിനൊപ്പം അയയ്‌ക്കാൻ ഒരു കുറിപ്പ് ടൈപ്പുചെയ്യുക..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"അയയ്ക്കുക, വിളിക്കുക"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"ബിൽഡ് പതിപ്പ്"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ഓപ്പൺ സോഴ്‌സ് ലൈസൻസുകൾ"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ഓപ്പൺ സോഴ്‌സ് സോഫ്റ്റ്‌വെയറിനായുള്ള ലൈസൻസ് വിശദാംശങ്ങൾ"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"സ്വകാര്യതാ നയം"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"സേവന നിബന്ധനകൾ"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ഓപ്പൺ സോഴ്‌സ് ലൈസൻസുകൾ"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url തുറക്കാനായില്ല."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ചെക്കുചെയ്തു"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ചെക്കുചെയ്തില്ല"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"വീഡിയോ കോൾ ചെയ്യുക"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"ഇല്ലാതാക്കുക"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"എല്ലിപ്‌സിസ്"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> സെ."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> മി <xliff:g id="SECONDS">%2$s</xliff:g> സെ"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> മണിക്കൂർ <xliff:g id="MINUTES_1">%2$s</xliff:g> മിനിറ്റ് <xliff:g id="SECONDS">%3$s</xliff:g> സെക്കൻഡ്"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ഈ കുറുക്കുവഴി പ്രവർത്തനരഹിതമാക്കി"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"കോൺടാക്‌റ്റ് നീക്കംചെയ്‌തു"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"ഇമ്പോർട്ടുചെയ്യുക"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"കോണ്‍‌ടാക്റ്റുകൾ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"നിങ്ങളുടെ സിം കാർഡിൽ കോൺടാക്‌റ്റുകളില്ല"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"കോൺടാക്‌റ്റ്‌ നിലവിൽ നിങ്ങളുടെ ലിസ്‌റ്റിലുണ്ട്‌"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> സിം കോൺടാക്‌റ്റുകൾ ഇമ്പോർട്ടുചെയ്‌തു</item>
+      <item quantity="one">ഒരു സിം കോൺടാക്‌റ്റ് ഇമ്പോർട്ടുചെയ്‌തു</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"സിം കോൺടാക്‌റ്റുകൾ ഇമ്പോർട്ടുചെയ്യാനായില്ല"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"സിം കാർഡിൽ നിന്ന്‌ ഇമ്പോർട്ടുചെയ്യുക"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"റദ്ദാക്കുക"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"സ്വയ സമന്വയം ഓഫാണ്. ഓണാക്കാൻ ടാപ്പുചെയ്യുക."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"നിരസിക്കുക"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"അക്കൗണ്ട് സമന്വയം ഓഫാണ്. ഓണാക്കാൻ ടാപ്പുചെയ്യുക."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"സ്വയ സമന്വയം ഓണാക്കണോ?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Google കോൺടാക്‌റ്റുകളിൽ മാത്രമല്ല, എല്ലാ ആപ്‌സുകളിലും അക്കൗണ്ടുകളിലും വരുത്തുന്ന മാറ്റങ്ങളെ വെബിലും നിങ്ങളുടെ ഉപകരണങ്ങളിലും അപ്‌റ്റു‌ഡേറ്റായി നിലനിർത്തും."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ഓൺ ചെയ്യുക"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"കണക്ഷനൊന്നുമില്ല"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"സിം"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"കൂടുതൽ കാണിക്കൂ"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"സിം കാർഡ് ഇമ്പോർട്ടുചെയ്‌തു"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"ഇമ്പോർട്ടുചെയ്യൽ പരാജയപ്പെട്ടു"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"സിം കാർഡിൽ നിന്ന്‌ കോൺടാക്‌റ്റുകൾ ഇമ്പോർട്ടുചെയ്യാനായില്ല"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"സിം കോൺടാക്റ്റുകൾ ഇമ്പോർട്ടുചെയ്യുന്നു"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
deleted file mode 100644
index efe4b5b..0000000
--- a/res/values-mn-rMN/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Харилцагчид"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Харилцагчид"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Харилцагчийн хаягийг харах"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Харилцагчийн хаягийг засварлах"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Харилцагчид"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Харилцагч"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Шууд залгах"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Шууд зурвас"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Харилцагчийн товчилборыг сонгоно уу"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Залгах дугаарыг сонгоно уу"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Зурвас илгээх дугаарыг сонгох"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Харилцагчид нэмэх"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Харилцагч сонгоно уу"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Шинэ харилцагч үүсгэх"</string>
-    <string name="starredList" msgid="4817256136413959463">"Одтой"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Байнга"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Дуртай"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Харилцагчийн мэдээлэл"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Харилцагч засварлах"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Харилцагч үүсгэх"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Бүлгэм засварлах"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Бүлгэм үүсгэх"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Тухай"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Шинэчлэлтүүд"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Харилцагчдаас хайх"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Харилцагчийг харах"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Таалагдсан руу нэмэх"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Дуртайгаас хасах"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Дуртайгаас хасах"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Дуртайд нэмэх"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Засах"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Устгах"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Зураг солих"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Үндсэн дэлгэц дээр байршуулах"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Харилцагч руу залгах"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Харилцагч руу зурвас илгээх"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Холбоосыг салгах"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Засах"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Устгах"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Харилцагч нэмэх"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Бүлгэм нэмэх"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Энэ харилцагчийн хаягийг олон харилцагч болгон салгах уу?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Салгах"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Та энэ харилцагчийн жагсаалтыг салгаад, олон харилцагч болгосон өөрчлөлтийг хадгалах уу?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Хадгалаад холбоосыг салгах"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Та хийсэн өөрчлөлтөө хадгалж, сонгосон харилцагчтай холбох уу?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Хадгалаад холбох"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Холбох"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Хадгалах"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Харилцагчийн жагсаалтыг холбох"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> харилцагчтай холбохыг хүсэж буй харилцагчийг сонгоно уу:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Бүх харилцагчдыг харуулах"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Санал болгосон харилцагчид"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Бүх харилцагчид"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Холбосон харилцагчид"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Харилцагчийг устгасан</item>
-      <item quantity="one">Харилцагчийг устгасан</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Хонхны ая суулгах"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Бүх дуудлагыг дуут шуудан руу"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Таны зөвхөн унших боломжтой бүртгэлийн харилцагчийг устгах боломжгүй, харин нуух боломжтой."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Нуух"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Энэхүү устгах гэж байгаа харилцагчийн хаяг нь хэд хэдэн бүртгэлийн дэлгэрэнгүй мэдээллийг агуулсан байна. Зөвхөн унших боломжтой бүртгэлийн мэдээллийг нууж болно, харин устгах боломжгүй."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Холбохын тулд та доод тал нь хоёр харилцагч сонгох ёстой."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Сонгосон харилцагчийг холбох уу?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Холбох"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Энэ харилцагчийн хаягийг устгах уу?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Сонгосон харилцагч хаягийг устгах уу?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Зөвхөн унших боломжтой бүртгэлийн харилцагчийг устгах боломжгүй, харин нуух боломжтой."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Энэ харилцагчийн хаягт хэд хэдэн бүртгэлийн мэдээллийг агуулсан учир устгах боломжгүй.Зөвхөн унших боломжтой бүртгэлийг нуух боломжтой ч, устгах боломжгүй."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Энэ харилцагчийг устгаснаар хэд хэдэн бүртгэлийн мэдээллийг устгах болно."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Энэ харилцагчийг устгах уу?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Устгах"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Өөрчлөлтүүдийг цуцлах"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Харилцагч байхгүй байна."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Харилцагчийг нүүр хуудсанд нэмсэн."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g>-г нүүр хуудсанд нэмсэн."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Шинэ харилцагч үүсгэх"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Шинэ харилцагч үүсгэх"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Байгууллага"</item>
-    <item msgid="7196592230748086755">"Тэмдэглэл"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Таблетэнд зураг байхгүй байна."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Утсанд зураг байхгүй байна."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Харилцагчийн зураг"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Захиалгат шошгын нэр"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Дуут шуудан руу шууд дуудлага хийх"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Зургийг арилгах"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Харилцагч байхгүй"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Бүлгэм байхгүй байна."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Бүлгэм үүсгэхийн тулд танд акаунт хэрэгтэй."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Энэ бүлгэмд хүн алга."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Нэмэхийн тулд бүлгэмд өөрчлөлт оруулна уу."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Харилцагчийг хадгалж байна…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Харилцагчийг хадгалсан"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Харилцагчийг салгасан"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Харилцагчийн өөрчлөлтүүдийг хадгалж чадсангүй."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Харилцагчийг салгаж чадсангүй."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Харилцагчийг холбож чадсангүй."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Харилцагчийн хаягийг хадгалахад алдаа гарлаа."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Харилцагчийн зургийн өөрчлөлтийг хадгалж чадсангүй."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Бүлгэм хадгалагдлаа."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Бүлгэмийн өөрчлөлтүүдийг хадгалж чадсангүй."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">Утасны дугаар бүхий <xliff:g id="COUNT">%d</xliff:g> хаяг байна</item>
-      <item quantity="one">Утасны дугаар бүхий 1 хаяг байна</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Утасны дугаартай харилцагч байхгүй"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> олдсон байна</item>
-      <item quantity="one">1 олдсон байна</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Харилцагч байхгүй"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> олдсон байна</item>
-      <item quantity="one">1 олсон байна</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Бүгд"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Дуртай"</string>
-    <string name="callBack" msgid="5498224409038809224">"Буцааж залгах"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Дахин залгана уу"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Буцааж залгах"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\"-г харилцагчдад нэмэх үү?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"харилцагчийн зураг"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"нэмэх"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"нийт <xliff:g id="TOTAL_NUMBER">%s</xliff:g> харилцагчдын <xliff:g id="CURRENT_NUMBER">%s</xliff:g>"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Таны харилцагчдын нэрс"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Тус үйлдлийг гүйцэтгэх апп олдсонгүй."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Өмнөх дэлгэц рүү буцахын тулд товших"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Утасны дугаар нэмэх"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Имэйл нэмэх"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Тус үйлдлийг гүйцэтгэх апп олдсонгүй."</string>
-    <string name="menu_share" msgid="943789700636542260">"Хуваалцах"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Харилцагчдад нэмэх"</string>
-    <string name="share_via" msgid="563121028023030093">"Харилцагчийг дараахаар хуваалцах"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Акаунт дотор бүлгэм үүсгэх"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Дуут чат"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
-    <string name="connections" msgid="8098440723172028350">"Холболтууд"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Холболт нэмэх"</string>
-    <string name="recent" msgid="2659189233141493004">"Саяхны"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Саяхны шинэчлэлтүүд"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> харилцагч"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> бүртгэл"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Тус апп-с засварлах боломжгүй."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Энэ төхөөрөмж дээр засах боломжгүй."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Зураг авах"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Шинэ зураг авах"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Зураг сонгох"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Шинэ зураг сонгох"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Харилцагчдын жагсаалтыг шинэчилж байна."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Хайж байна..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Сонгоснуудыг харуулах"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Бүгдийг харуулах"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Бүгдийг сонгох"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Бүх сонголтыг цуцлах"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Шинийг нэмэх"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Байгууллага нэмэх"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Огноо"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Бүлгэмийн нэр"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Солих"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Ерөнхий зураг"</string>
-    <string name="description_star" msgid="2605854427360036550">"дуртай"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Харилцагчийг засварлах"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Энэ харилцагчийг сонгосон харилцагчтай холбох уу?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Сонгосон харилцагчийг засварлах руу шилжих үү? Таны оруулсан мэдээллүүд хуулагдах болно."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Миний Харилцагчид руу хуулах"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Миний харилцагчдад нэмэх"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Директор <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Тохируулсан"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Тохиргоо"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Тохиргоо"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Тусламж &amp; санал хүсэлт"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Харуулах сонголтууд"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Утасны дугаар"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Харилцагчдад нэмэх"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Харилцагчид нэмэх"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Хаах"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Жил оруулах"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Харилцагч"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Ачаалж байна..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Шинэ акаунт үүсгэх"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Бүртгэл нэмэх"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Харилцагчид импорт хийх"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Шинэ бүлгэм үүсгэх"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Шинэ бүлгэм үүсгэх"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> бүлэг</item>
-      <item quantity="one">1 бүлэг</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" бүлгэмийг устгах уу? (Доторх харилцагчид нь устахгүй.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other">  <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>-с <xliff:g id="COUNT_2">%1$d</xliff:g> хүн</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> -с <xliff:g id="COUNT_0">%1$d</xliff:g>  хүн</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> хүн</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> хүн</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Өөр харилцагчийн жагсаалттай холбохын тулд харилцагчийн нэрийг бичнэ үү."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Түр санах ойд хуулах"</string>
-    <string name="set_default" msgid="4417505153468300351">"Үндсэн болгох"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Үндсэнээс хасах"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Текст хуулагдав"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Өөрчлөлтүүдээ цуцлах уу?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Устгах"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Миний профайлийн тохиргоо"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Хүний нэрийг бичнэ үү"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Бүлгэмийн Нэр"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Миний дотоод профайл"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Миний <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайл"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Бүх харилцагчийг харуулж байна"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Харилцагчид нь Google акаунттай сайн тохирдог.\n\n• Дурын веб хөтчөөс хандах боломжтой.\n• Өөрийн харилцагчдыг найдвартай нөөшлөнө."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Утсаа гээсэн ч харилцагчдаа найдвартай хадгалаарай: онлайн үйлчилгээгээр синк хийгээрэй."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Акаунт нэмэх"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Таны шинэ харилцагч нөөцлөгдөхгүй. Харилцагчдыг онлайнаар нөөцөлдөг акаунтыг нэмэх үү?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Шинэ харилцагчийн хаягийг <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>-д хадгална."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Шинэ харилцагчид өгөгдмөл бүртгэл сонгох:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Шинэ харилцагч нэмэх"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Харилцагчийг засварлах"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Төхөөрөмжид хадгалах"</string>
-    <string name="add_account" msgid="8201790677994503186">"Акаунт нэмэх"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Шинэ акаунт нэмэх"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Өгөгдлийн сангийн файлуудыг экспорт хийх"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"шинэ харилцагч нэмэх"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Дэлгэрэнгүй үзэх"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Цөөнийг харах"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Бүгдийг харах"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Саяхны"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Тухай"</string>
-    <string name="send_message" msgid="8938418965550543196">"Зурвас илгээх"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Хувийн хуулбар үүсгэж байна..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Өчигдөр"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Маргааш"</string>
-    <string name="today" msgid="8041090779381781781">"Өнөөдөр"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Өнөөдөр <xliff:g id="TIME_INTERVAL">%s</xliff:g>-д"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Маргааш <xliff:g id="TIME_INTERVAL">%s</xliff:g>-д"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Гарчиггүй үйл явдал)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Тохируулах"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Байгууллага"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Хоч"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Тэмдэглэл"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Вебсайт"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Үйл явдал"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Хамаарал"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Акаунт"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Нэр"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"Имэйл"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Утас"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Зураг"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Харилцагчдын засварлагчийг дэлгэхийг хүсвэл дарна уу."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Харилцагчдын засварлагчийг буулгахыг хүсвэл дарна уу."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"байршил руу очих чиглэл"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"саяхны sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. хариу бичихийн тулд товшино уу"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ирж байгаа"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"гарах"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"аваагүй"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"саяхны дуудлага. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. буцааж залгахын тулд товшино уу"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Та: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts апликейшн нь таныг найзуудынхаа мэдээллийг харилцагчийн и-мэйл эсвэл гар утасны талбарт оруулбал илүү сайн ажилладаг."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Нэмэлт талбар"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Зураг солих"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Засварлагчийг нээж чадсангүй."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Дараахад хадгалж байна"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Одоогоор <xliff:g id="ACCOUNT_NAME">%s</xliff:g>-д хадгалж байна. Өөр бүртгэл сонгохын тулд хоёр товшино уу."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Холбосон харилцагч (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Холбосон харилцагч</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> холбосон харилцагч"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ХАРИЛЦАГЧДЫГ ХОЛБОХ"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ЦУЦЛАХ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> боломжит хуулбар</item>
-      <item quantity="one">1 боломжит хуулбар</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> холбогдсон харилцагч</item>
-      <item quantity="one">1 холбогдсон харилцагч</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Энэ харилцагч"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Боломжит хуулбар"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Эдгээр харилцагчийн хаяг нь ижил хүн байж болзошгүй. Та нэг харилцагчийн хаяг болгон холбох боломжтой."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Холбосон харилцагчид"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Таны бүртгэлээс"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Зураг авах"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Бүх зураг"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Зураг сонгох"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Илгээгч: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>-г устгах"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>-г устгах"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>-н зургийг сонгоогүй"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>-н зургийг сонгосон"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Үл мэдэгдэх бүртгэлийн зургийг сонгоогүй"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Үл мэдэгдэх бүртгэлийн зургийг сонгосон"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Хэлний өөрчлөлтийг тусгахын тулд харилцагчдын жагсаалтыг шинэчилж байна.\n\nТүр хүлээнэ үү..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Дугаар нэмэх"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Дугаар блоклох"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Дугаар нэмэх болон харилцагч хайх"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>-г блокоос гаргах уу?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"БЛОКООС ГАРГАХ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>-г блоклох уу?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"БЛОКЛОХ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g>-г блоклосон"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g>-г блокоос гаргасан"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> хүчингүй байна."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Дуудлага блоклох тохиргоог түр хугацаагаар унтраасан"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Та сүүлийн 48 цагийн дотор энэ утсаар тусламжийн дуудлага хийсэн тул дуудлага блоклох тохиргоог идэвхгүй болгосон. Энэ тохиргоо нь 48 цагийн хугацаа дуусахад автоматаар идэвхэжнэ."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортлох"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Дугаар харах"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Дугаар нэмэх"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Дуудлага блоклохыг 48 цагийн турш идэвхгүй болгосон."</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Яаралтай дуудлага хийсэн тул идэвхгүй болгосон."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"БУЦААХ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g>-г аль хэдийн блоклосон байна."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Дугаар блокноос гаргах"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-н харилцагчийн мэдээлэл"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импортолж чадсангүй"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Импортын тоо"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Идэвхжүүлэх"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
new file mode 100644
index 0000000..c5e6c19
--- /dev/null
+++ b/res/values-mn/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Харилцагчид"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Харилцагчид"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Харилцагч нэмэх"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Харилцагч"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Шууд залгах"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Шууд зурвас"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Харилцагч сонгох"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Харилцагчид нэмэх"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Харилцагч сонгоно уу"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Сонгох"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Шинэ харилцагч үүсгэх"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Харилцагчдаас хайх"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Таалагдсан руу нэмэх"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Дуртайгаас хасах"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Дуртайгаас хасах"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Дуртайд нэмэх"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Засах"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Устгах"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Зураг солих"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Товчлол үүсгэх"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Холбоосыг салгах"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Харилцагчдыг арилгах"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Шошгын нэрийг өөрчлөх"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Шошго устгах"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Харилцагч нэмэх"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Харилцагчдыг сонгох"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Харилцагч нэмэх"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Шошгоос хасах"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Шошго үүсгэх"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Энэ харилцагчийн хаягийг олон харилцагч болгон салгах уу?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Салгах"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Та энэ харилцагчийн жагсаалтыг салгаад, олон харилцагч болгосон өөрчлөлтийг хадгалах уу?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Хадгалаад холбоосыг салгах"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Та хийсэн өөрчлөлтөө хадгалж, сонгосон харилцагчтай холбох уу?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Хадгалаад холбох"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Холбож байна"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Салгаж байна"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Холбох"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Холбогдсон харилцагчдыг харах"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Хадгалах"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Харилцагчийн жагсаалтыг холбох"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> харилцагчтай холбохыг хүсэж буй харилцагчийг сонгоно уу:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Санал болгосон харилцагчид"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Бүх харилцагчид"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g>-г холбосон"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Холбосон харилцагчид"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g>-г устгасан"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>-г устгасан"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... устгасан"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Харилцагчийг устгасан</item>
+      <item quantity="one">Харилцагчийг устгасан</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> харилцагч</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> харилцагч</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> харилцагч · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> харилцагч · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google-с"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g>-с"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Хонхны ая суулгах"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Дуут шуудан руу илгээх"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Дуут шуудан руу илгээхгүй"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Энэ харилцагч зөвхөн унших боломжтой. Та үүнийг устгах боломжгүй ч нууцлах боломжтой."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Харилцагчийг нуух"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Энэ харилцагч доторх зөвхөн уншиж болох бүртгэлүүдийг устгахгүйгээр нууцлах болно."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Энэ харилцагчийн хаягийг устгах уу?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Сонгосон харилцагч хаягийг устгах уу?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Зөвхөн унших боломжтой бүртгэлийн харилцагчийг устгах боломжгүй, харин нуух боломжтой."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Энэ харилцагчийн хаягт хэд хэдэн бүртгэлийн мэдээллийг агуулсан учир устгах боломжгүй.Зөвхөн унших боломжтой бүртгэлийг нуух боломжтой ч, устгах боломжгүй."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Энэ харилцагчийг устгаснаар хэд хэдэн бүртгэлийн мэдээллийг устгах болно."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Энэ харилцагчийг устгах уу?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Устгах"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Харилцагч байхгүй байна."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Харилцагчийг нүүр хуудсанд нэмсэн."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g>-г нүүр хуудсанд нэмсэн."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Төхөөрөмжинд зураг байхгүй байна."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Харилцагчийн зураг"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Захиалгат шошгын нэр"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Зургийг арилгах"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Таны харилцагчдын жагсаалт хоосон байна"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Ийм шошготой харилцагч байхгүй"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Энэ бүртгэлд харилцагч байхгүй байна"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Таны харилцагчдын жагсаалт хоосон байна"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> хадгалагдсан"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Харилцагчийг хадгалсан"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Харилцагчийг салгасан"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Харилцагчийн өөрчлөлтүүдийг хадгалж чадсангүй"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Харилцагчийг салгаж чадсангүй"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Харилцагчийг холбож чадсангүй"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Харилцагчийг хадгалахад алдаа гарсан"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Харилцагчийн зургийн өөрчлөлтийг хадгалж чадсангүй"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Шошгыг ачаалж чадсангүй"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Шошгыг устгасан"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Шошго үүсгэсэн"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Шошго үүсгэх боломжгүй"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Шошгыг шинэчилсэн"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Шошгоос хассан"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Шошгонд нэмсэн"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Шошгын өөрчлөлтийг хадгалж чадсангүй"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Энэ шошго байна"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Зарим харилцагчид имэйл хаяггүй байна."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Зарим харилцагчид утасны дугааргүй байна."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Имэйл илгээх"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Зурвас илгээх"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Харилцагчдыг сонгоно уу"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Илгээх"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Харилцагч байхгүй"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\"-г харилцагчдад нэмэх үү?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Таны харилцагчдын нэрс"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Өмнөх дэлгэц рүү буцахын тулд товших"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Утасны дугаар нэмэх"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Имэйл нэмэх"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Тус үйлдлийг гүйцэтгэх апп олдсонгүй."</string>
+    <string name="menu_share" msgid="943789700636542260">"Хуваалцах"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Харилцагчдад нэмэх"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Нэмэх"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other"> Харилцагчийг хуваалцах</item>
+      <item quantity="one">Харилцагчийг хуваалцах</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Бүртгэл сонгох"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Шошго үүсгэх"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Шошгын нэрийг өөрчлөх"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Шошгын нэр"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Шошгын нэр"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Дуут чат"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Видео чат"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> харилцагч"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> бүртгэл"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Зураг авах"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Шинэ зураг авах"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Зураг сонгох"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Шинэ зураг сонгох"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Хайж байна..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Огноо"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Шошго"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Цуцлах"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Буцах"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"хаах"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Сонгосон харилцагчийг засварлах руу шилжих үү? Таны оруулсан мэдээллүүд хуулагдах болно."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Директор <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Тохиргоо"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Тохиргоо"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Тусламж, санал хүсэлт"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Утасны дугаар"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Харилцагчдад нэмэх"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Хаах"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Жил оруулах"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Бүртгэл нэмэх"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Импортлох"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Шинийг үүсгэх..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" шошгыг устгах уу? (Харилцагчид нь устахгүй.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Өөр харилцагчийн жагсаалттай холбохын тулд харилцагчийн нэрийг бичнэ үү."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Түр санах ойд хуулах"</string>
+    <string name="set_default" msgid="4417505153468300351">"Үндсэн болгох"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Үндсэнээс хасах"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Текст хуулагдав"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Өөрчлөлтийг цуцлах уу?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Устгах"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Цуцлах"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Тохируулгыг устгах уу?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Харилцагчдаас хайх"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Харилцагчдыг арилгах"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Миний дотоод профайл"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Миний <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профайл"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Өөрийн харилцагчдыг Google дээр нөөцлөхийн тулд бүртгэл нэмэхэд нэг минут зарцуулна уу."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Шинэ харилцагчийн хаягийг <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>-д хадгална."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Шинэ харилцагчид өгөгдмөл бүртгэл сонгох:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Шинэ харилцагч үүсгэх"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Харилцагчийг засварлах"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Зөвхөн харах"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Засварлах харилцагчийг сонгоно уу"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Холбогдсон харилцагчид"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Нэмэх"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Холбоосыг салгах"</string>
+    <string name="add_account" msgid="8201790677994503186">"Бүртгэл нэмэх"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Шинэ бүртгэл нэмэх"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Өгөгдлийн сангийн файлуудыг экспорт хийх"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Шинэ харилцагч үүсгэх"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Дэлгэрэнгүй үзэх"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Цөөнийг харах"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Саяхны"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Тухай"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Хувийн хуулбар үүсгэж байна…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Маргааш"</string>
+    <string name="today" msgid="8041090779381781781">"Өнөөдөр"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Өнөөдөр <xliff:g id="TIME_INTERVAL">%s</xliff:g>-д"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Маргааш <xliff:g id="TIME_INTERVAL">%s</xliff:g>-д"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Гарчиггүй үйл явдал)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Тохируулах"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Байгууллага"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Хоч"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Тэмдэглэл"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Вэбсайт"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Үйл явдал"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Хамаарал"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Нэр"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Имэйл"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Утас"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"байршил руу очих чиглэл"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"саяхны sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. хариу бичихийн тулд товшино уу"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ирж байгаа"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"гарах"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"аваагүй"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"саяхны дуудлага. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. буцааж залгахын тулд товшино уу"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Та: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Нэмэлт талбар"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Харилцагчийн зургийг өөрчлөх"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Харилцагчийн зураг нэмэх"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Харилцагчийн зураг"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Засварлагчийг нээж чадсангүй."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Хадгалж байна"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g>-н харилцагчийн мэдээллийг засварлах боломжгүй"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ХАРИЛЦАГЧДЫГ ХОЛБОХ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ЦУЦЛАХ"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Энэ харилцагч"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Боломжит хуулбар"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Эдгээр харилцагчийн хаяг нь ижил хүн байж болзошгүй. Та нэг харилцагчийн хаяг болгон холбох боломжтой."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>-г устгах"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>-г устгах"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Санал болголт"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Шинэ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Навигацын шургуулгыг нээх"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Навигацын шургуулгыг хаах"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> шошго"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Шошго"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Бүртгэл"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Өөрийн түүхийг хамтад нь харна уу"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Арга хэмжээ болон зурвасууд"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Үйл явдал"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Зурвас"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Санал болголт"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Харилцагчдаа цэгцтэй, хэрэгцээтэй байдлаар хадгалаарай"</string>
+    <string name="undo" msgid="1425165101664071422">"Буцаах"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> руу залгах"</string>
+    <string name="call_home" msgid="1990519474420545392">"Гэрийн утас руу залгах"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Гар утас руу залгах"</string>
+    <string name="call_work" msgid="5328785911463744028">"Ажил руу залгах"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Ажлын факс руу залгах"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Гэрийн факс руу залгах"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Пейжер рүү залгах"</string>
+    <string name="call_other" msgid="8563753966926932052">"Залгах"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Дуудлага хүлээж авахаар залгах"</string>
+    <string name="call_car" msgid="3280537320306436445">"Машин руу залгах"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Компанийн үндсэн дугаар руу залгах"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN руу залгах"</string>
+    <string name="call_main" msgid="6082900571803441339">"Үндсэн дугаар руу залгах"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Факс руу залгах"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Радио руу залгах"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Телекс рүү залгах"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD рүү залгах"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Ажлын гар утас руу залгах"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Ажлын пейжер рүү залгах"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> руу залгах"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS рүү залгах"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Залгах)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> руу мессеж бичих"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Гэрийн утас руу зурвас илгээх"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Гар утас руу зурвас илгээх"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Ажил руу зурвас илгээх"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Ажлын факс руу зурвас илгээх"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Гэрийн факс руу зурвас илгээх"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Пейжер рүү зурвас илгээх"</string>
+    <string name="sms_other" msgid="806127844607642331">"Зурвас илгээх"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Дуудлага авах зурвас илгээх"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Машин руу зурвас илгээх"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Компанийн үндсэн дугаар руу зурвас илгээх"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN рүү зурвас илгээх"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Үндсэн дугаар руу зурвас илгээх"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Факс руу зурвас илгээх"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Радио руу зурвас илгээх"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Телекс рүү зурвас илгээх"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD рүү зурвас илгээх"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Ажлын гар утас руу зурвас илгээх"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Ажлын пейжэр рүү зурвас илгээх"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> руу зурвас бичих"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS руу зурвас илгээх"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Зурвас)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Видео дуудлага хийх"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Байнга холбоо барьдаг харилцагчдын жагсаалтыг устгах уу?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Та Харилцагч болон Утас апп-ууд дахь байнга холбоо барьсан харилцагчдын жагсаалтыг устгаж, ингэснээрээ имэйл апп-уудыг таны имэйл хаяглах хандлагыг бүр эхнээс нь суралцахад хүргэнэ."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Байнга холбоо барьдаг харилцагчдын жагсаалтыг устгаж байна…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Холбогдсон"</string>
+    <string name="status_away" msgid="1838861100379804730">"Холдсон"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Завгүй"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Бусад"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Директор"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Ажлын лавлагаа"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Бүх харилцагчид"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g>-тай шууд холбогдох"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Нэр байхгүй)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Байнга холбоо барьдаг"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Утасны дугаартай бүх харилцагчид"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Ажлын профайлын харилцагч"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Шинэчлэлтүүдийг харах"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Төхөөрөмж"</string>
+    <string name="account_sim" msgid="6519016427905087952">"СИМ"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Нэр"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Хоч"</string>
+    <string name="name_given" msgid="4280790853455320619">"Өөрийн нэр"</string>
+    <string name="name_family" msgid="7466985689626017037">"Овог"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Нэрний урьдитгал"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Дундах нэр"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Нэрний дагавар"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Авианы нэр"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Өөрийн нэрний дуудлага"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Дундах авианы нэр"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Овгийн дуудлага"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Утас"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Имэйл"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Хаяг"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Байгууллага"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Хамаарал"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Баярт өдөр"</string>
+    <string name="sms" msgid="1756857139634224222">"Зурвас"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Хаяг"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Компани"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Гарчиг"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Тэмдэглэл"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Тусгай"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Вэбсайт"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Шошгууд"</string>
+    <string name="email_home" msgid="8573740658148184279">"Гэрийн имэйл рүү"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Гар утас руу имэйлдэх"</string>
+    <string name="email_work" msgid="2807430017302722689">"Ажлын имэйл рүү"</string>
+    <string name="email_other" msgid="3454004077967657109">"Имэйл"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> руу имэйлдэх"</string>
+    <string name="email" msgid="5668400997660065897">"Имэйл"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Гудамж"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Хот"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Муж улс"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Зип код"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Улс"</string>
+    <string name="map_home" msgid="1243547733423343982">"Гэрийн хаяг харах"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ажлын хаяг харах"</string>
+    <string name="map_other" msgid="3817820803587012641">"Хаяг харах"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> хаяг харах"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM ашиглан чатлах"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live ашиглан чатлах"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo ашиглан чатлах"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype ашиглан чатлах"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ ашиглан чатлах"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk ашиглан чатлах"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ ашиглан чатлах"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber ашиглан чатлах"</string>
+    <string name="chat" msgid="9025361898797412245">"Чат"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"устгах"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Бусад нэрийн талбаруудыг харуулах"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Нэрийн талбарыг хумих"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Бусад галиглах нэрийн талбаруудыг харуулах"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Галиглах нэрийн талбарыг хумих"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Дэлгэх"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Хумих"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Дэлгэсэн"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Хумисан"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Бүх харилцагчид"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Одтой"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Тохируулах"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Харилцагч"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Бусад бүх харилцагчид"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Бүх харилцагчид"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Синк бүлгэмийг арилгах"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Синк бүлгэм нэмэх"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Өөр бүлгэмүүд…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\"-г синкээс хассанаар бүлгэмээс хасагдсан бүх харилцагчдыг мөн синкээс хасах болно."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Харуулах тохиргоог хадгалж байна…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Тусгай харагдац"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Импортолсон харилцагчийн хаягийг хадгалах:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM карт"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d харилцагч</item>
+      <item quantity="one">1 харилцагч</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> харилцагч • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> харилцагч • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf файл"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Импорт хийх зүйл байхгүй"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard-с харилцагчдыг импорт хийх үү?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g>-г импорт хийхийг цуцлах уу?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g>-г экспорт хийхийг цуцлах уу?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard импорт/экспорт хийхийг цуцлаж чадсангүй"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Тодорхойгүй алдаа."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\"-г нээж чадсангүй: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Экспорт хийгчийг эхлүүлж чадсангүй: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Экспорт хийж болох харилцагч байхгүй."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Та шаардлагатай зөвшөөрлийг идэвхгүй болгосон байна."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Экспорт хийх явцад алдаа гарсан: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O алдаа"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Санах ой хүрэхгүй байна. Файл хэт том байж магадгүй."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Формат нь дэмжигдэхгүй байна."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g>-г экспорт хийж дууссан."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Харилцагчдыг экспортолж дууслаа."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Харилцагчдыг экспортолж дууссан. Харилцагчдыг хуваалцахын тулд мэдэгдлийг дарна уу."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Харилцагчдыг хуваалцахын тулд дарна уу."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g>-г экспорт хийхийг цуцлав."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Харилцагчийн өгөгдлийг экспорт хийж байна"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Харилцагчийн датаг экспортолсон."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Өгөгдлийн сангийн мэдээллийг авч чадсангүй"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Экспортлох харилцагчид байхгүй байна."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard бичигч зохих ёсоор эхэлсэнгүй."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Экспорт хийж чадсангүй"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Харилцагчийн өгөгдлийг экспорт хийгээгүй.\nШалтгаан: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g>-г импорт хийж байна"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard өгөгдлийг уншиж чадсангүй"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> -г импорт хийж дуусав"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g>-г импорт хийхийг цуцлав"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g>-г удахгүй импорт хийх болно."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Файлыг удахгүй импорт хийх болно."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard импорт хийх хүсэлтийг зөвшөөрсөнгүй. Дараа дахин оролдоно уу."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Харилцагчдыг удахгүй экспортлох болно."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard экспорт хийх хүсэлтийг зөвшөөрсөнгүй. Дараа дахин оролдоно уу."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"харилцагч"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard-г дотоод түр санд кеш хийж байна. Удахгүй бодитоор импорт хийж эхлэх болно."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard-г импорт хийж чадсангүй."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC-р хүлээн авсан харилцагч"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кеш хийж байна"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Импорт хийж байна <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf файл болгож экспортлох"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Эрэмбэлэх"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Авианы нэр"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Байнга харуулах"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Хоосон бол нуух"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Өөрийн нэр"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Овог"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Нэрний формат"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Нэрийг эхэнд нь"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Овгийг эхэнд нь"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Бүртгэл"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Шинэ харилцагчийн өгөгдмөл бүртгэл"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Миний мэдээлэл"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Өөрийн профайлыг тохируулна уу"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Харилцагчдын тухай"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Дуртай харилцагчдаа хуваалцах"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Бүх харилцагчдыг хуваалцах"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Харилцагчдыг хуваалцаж чадсангүй."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Харилцагчдыг экспортлох"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Харилцагчдыг импорт хийх"</string>
+    <string name="share_error" msgid="948429331673358107">"Энэ харилцагчийг хуваалцах боломжгүй."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Хуваалцах харилцагчид байхгүй байна."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Харуулах харилцагчид"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Харуулах харилцагчид"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Харагдацыг тааруулах"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Хадгалах"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Харилцагч хайх"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Таалагддаг"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Импортлох"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Экспортлох"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Блоклосон дугаар"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g>-р"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="SOURCE">%2$s</xliff:g>-р"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"хайлтыг зогсоох"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Хайлтыг цэвэрлэх"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Бүртгэл"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Дуудлагад байнга үүнийг ашиглах"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Тэмдэглэл бүхий дуудлага хийх"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Дуудлагаар илгээх тэмдэглэл бичнэ үү..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ИЛГЭЭХ &amp; ЗАЛГАХ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Боловсруулсан хувилбар"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Нээлттэй эхийн лиценз"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Нээлттэй эхийн програм хангамжийн лицензийн мэдээлэл"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Нууцлалын бодлого"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Үйлчилгээний нөхцөл"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Нээлттэй эхийн лиценз"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"URL-г нээж чадсангүй."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g>-г шалгасан"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g>-г шалгаагүй"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Видео дуудлага хийх"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Устгах"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Эллипс"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> мин <xliff:g id="SECONDS">%2$s</xliff:g> сек"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> цаг <xliff:g id="MINUTES_1">%2$s</xliff:g> мин <xliff:g id="SECONDS">%3$s</xliff:g> сек"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Энэ товчилборыг идэвхгүй болгосон"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Харилцагчийг хассан"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Импортлох"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Харилцагчдыг сонгох"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Таны SIM картанд харилцагчид байхгүй байна"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Харилцагч аль хэдийн таны жагсаалтанд байна"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-н харилцагчдыг импорт хийсэн</item>
+      <item quantity="one">1 SIM-н харилцагчийг импорт хийсэн</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM-н харилцагчдыг импортолж чадсангүй"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM-с импорт хийх"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Цуцлах"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Автомат синк идэвхгүй байна. Идэвхжүүлэх бол товшино уу."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Хаах"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Автомат синк идэвхгүй байна. Идэвхжүүлэх бол товшино уу."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Автомат синкийг асаах уу?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Google Харилцагч төдийгүй бүх апп болон бүртгэлд таны оруулсан өөрчлөлтийг вэб болон таны бусад төхөөрөмжүүд хооронд шинэчилж байх болно."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Идэвхжүүлэх"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Холболт байхгүй"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Дэлгэрэнгүй үзэх"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM картыг импорт хийж дууссан"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Импортолж чадсангүй"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM картнаас харилцагчдыг импортолж чадсангүй"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM-г импорт хийж байна"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
deleted file mode 100644
index 303bf7a..0000000
--- a/res/values-mr-rIN/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"संपर्क"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"संपर्क"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"संपर्क पहा"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"संपर्क संपादित करा"</string>
-    <string name="contactsList" msgid="8661624236494819731">"संपर्क"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"संपर्क"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"थेट डायल करा"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"थेट संदेश"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"संपर्क शॉर्टकट निवडा"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"कॉल करण्यासाठी एक नंबर निवडा"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"संदेश करण्यासाठी नंबर निवडा"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"संपर्कामध्ये जोडा"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"संपर्क निवडा"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"नवीन संपर्क तयार करा"</string>
-    <string name="starredList" msgid="4817256136413959463">"तारांकित"</string>
-    <string name="frequentList" msgid="7154768136473953056">"वारंवार"</string>
-    <string name="strequentList" msgid="5640192862059373511">"आवडते"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"संपर्क तपशील"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"संपर्क संपादित करा"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"संपर्क तयार करा"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"गट संपादित करा"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"गट तयार करा"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"विषयी"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"अद्यतने"</string>
-    <string name="searchHint" msgid="8482945356247760701">"संपर्क शोधा"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"संपर्क पहा"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"आवडीमध्ये जोडा"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"आवडी मधून काढा"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"आवडींमधून काढले"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"आवडींमध्ये जोडले"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"संपादित करा"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"हटवा"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"फोटो बदला"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"मुख्‍य स्क्रीन वर ठेवा"</string>
-    <string name="menu_call" msgid="3992595586042260618">"संपर्कास कॉल करा"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"संपर्कास मजकूर पाठवा"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"दुवा रद्द करा"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"संपादित करा"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"हटवा"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"संपर्क जोडा"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"गट जोडा"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"एकाधिक संपर्कांमध्‍ये या संपर्काचा दुवा रद्द करायचा?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"दुवा रद्द करा"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"आपण आधीपासून केलेले बदल आपण जतन करू आणि एकाधिक संपर्कांमध्‍ये या संपर्काचा दुवा रद्द करू इच्छिता?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"जतन करा आणि दुवा रद्द करा"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"आपण आधीपासून केलेले बदल आपण जतन करू आणि निवडलेल्या संपर्काशी दुवा जोडू इच्छिता?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"जतन करा आणि दुवा जोडा"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"दुवा"</string>
-    <string name="menu_save" msgid="1727844363591825909">"जतन करा"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"संपर्कांचा दुवा जोडा"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"आपण <xliff:g id="NAME">%s</xliff:g> सह ज्या संपर्काचा दुवा जोडू इच्छिता तो निवडा:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"सर्व संपर्क दर्शवा"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"सूचित संपर्क"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"सर्व संपर्क"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"संपर्कांचा दुवा साधला"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">संपर्क हटविला</item>
-      <item quantity="other">संपर्क हटविले</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"रिंगटोन सेट करा"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"व्हॉइसमेलवरील सर्व कॉल"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"आपल्‍या केवळ-वाचनीय खात्यांमधील संपर्क हटविले जाऊ शकत नाहीत परंतु ते लपविले जाऊ शकतात."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"लपवा"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"जो संपर्क हटवायचा आहे त्यामध्‍ये एकाधिक खात्यांमधील तपशील आहेत. केवळ-वाचनीय खात्यांमधील तपशील लपविले जातील, हटविले जाणार नाहीत."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"दुवा साधण्‍यासाठी आपण कमीतकमी दोन संपर्क निवडलेले असणे आवश्‍यक आहे."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"निवडलेल्या संपर्कांचा दुवा जोडायचा?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"दुवा"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"हा संपर्क हटवायचा?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"निवडलेले संपर्क हटवायचे?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"आपल्‍या केवळ-वाचनीय खात्यांमधील संपर्क हटविले जाऊ शकत नाहीत परंतु ते लपविले जाऊ शकतात."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"जे संपर्क हटवायचे आहेत त्यामध्‍ये एकाधिक खात्यांमधील तपशील आहेत. केवळ-वाचनीय खात्यांमधील तपशील लपविले जातील, हटविले जाणार नाहीत."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"हा संपर्क हटविल्याने एकाधिक खात्‍यांमधून तपशील हटविले जातील."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"हा संपर्क हटवायचा?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"हटवा"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"बदल टाकून द्या"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"संपर्क अस्तित्वात नाही."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"संपर्क मुख्‍यपृष्‍ठावर जोडला."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ना मुख्‍यपृष्‍ठावर जोडले."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"नवीन संपर्क तयार करा"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"नवीन संपर्क तयार करा"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"संस्था"</item>
-    <item msgid="7196592230748086755">"टीप"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"टॅब्‍लेटवर कोणतीही चित्रे उपलब्ध नाहीत."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"फोनवर कोणतीही चित्रे उपलब्ध नाहीत."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"संपर्क फोटो"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"लेबल नाव सानुकूलित करा"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"कॉल थेट व्हॉइसमेलवर पाठवा"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"फोटो काढा"</string>
-    <string name="noContacts" msgid="4955659076981974652">"कोणतेही संपर्क नाहीत"</string>
-    <string name="noGroups" msgid="8614664663561385253">"कोणतेही गट नाहीत."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"गट तयार करण्‍यासाठी आपल्‍याला खात्‍याची आवश्‍यकता अाहे."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"या गटात कोणतेही लोक नाहीत."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"काही जोडण्‍यासाठी, गट संपादित करा."</string>
-    <string name="savingContact" msgid="4075751076741924939">"संपर्क जतन करीत आहे..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"संपर्क जतन केला"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"संपर्कांचा दुवा रद्द केला"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"संपर्क बदल जतन करू शकलो नाही."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"संपर्काचा दुवा रद्द करणे शक्य झाले नाही."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"संपर्काचा दुवा जोडणे शक्य झाले नाही."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"संपर्क जतन करताना त्रुटी."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"संपर्क फोटो बदल जतन करणे शक्य झाले नाही."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"गट जतन केला."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"गट बदल जतन करू शकलो नाही."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one">फोन नंबरसह <xliff:g id="COUNT">%d</xliff:g> संपर्क</item>
-      <item quantity="other">फोन नंबरसह <xliff:g id="COUNT">%d</xliff:g> संपर्क</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"फोन नंबरसह कोणतेही संपर्क नाहीत"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> आढळला</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> आढळले</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"कोणतेही संपर्क नाहीत"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> आढळला</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> आढळले</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"सर्व"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"मनपसंत"</string>
-    <string name="callBack" msgid="5498224409038809224">"पुन्हा कॉल करा"</string>
-    <string name="callAgain" msgid="3197312117049874778">"पुन्हा कॉल करा"</string>
-    <string name="returnCall" msgid="8171961914203617813">"उलट कॉल करा"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"संपर्कांमध्ये \"<xliff:g id="EMAIL">%s</xliff:g>\" जोडायचे?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"संपर्क फोटो"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"अधिक"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> पैकी <xliff:g id="CURRENT_NUMBER">%s</xliff:g> संपर्क"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"आपल्या संपर्कांची नावे"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ही क्रिया हाताळण्यासाठी कोणताही अ‍ॅप आढळला नाही."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"पूर्वीच्या स्क्रीनवर परत येण्यासाठी क्लिक करा"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"फोन नंबर जोडा"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ईमेल जोडा"</string>
-    <string name="missing_app" msgid="1466111003546611387">"ही क्रिया हाताळण्यासाठी कोणताही अ‍ॅप आढळला नाही."</string>
-    <string name="menu_share" msgid="943789700636542260">"सामायिक करा"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"संपर्कांमध्ये जोडा"</string>
-    <string name="share_via" msgid="563121028023030093">"द्वारे संपर्क सामायिक करा"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"खात्याअंतर्गत गट तयार करा"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"व्हॉइस चॅट"</string>
-    <string name="video_chat" msgid="1872255818640336072">"व्हिडिओ चॅट"</string>
-    <string name="connections" msgid="8098440723172028350">"कनेक्शन"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"कनेक्शन जोडा"</string>
-    <string name="recent" msgid="2659189233141493004">"अलीकडील"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"अलीकडील अद्यतने"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> संपर्क"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> खाते"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"या अ‍ॅप वरून संपादन करण्‍यायोग्‍य नाही."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"या डिव्हाइसवर संपादन करण्‍यायोग्‍य नाही."</string>
-    <string name="take_photo" msgid="7496128293167402354">"फोटो घ्‍या"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"नवीन फोटो घ्या"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"फोटो निवडा"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"नवीन फोटो निवडा"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"संपर्क सूची अद्यतनित केली जात आहे."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"शोधत आहे..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"निवडलेले दर्शवा"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"सर्व दर्शवा"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"सर्व निवडा"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"सर्व निवड रद्द करा"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"नवीन जोडा"</string>
-    <string name="add_organization" msgid="7311893231158291197">"संस्‍था जोडा"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"तारीख"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"गट नाव"</string>
-    <string name="change_photo" msgid="8530597935483526383">"बदला"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"प्राथमिक फोटो"</string>
-    <string name="description_star" msgid="2605854427360036550">"आवडते"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"संपर्क संपादित करा"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"वर्तमान संपर्काचा निवडलेल्‍या संपर्कासह दुवा जोडायचा?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"निवडलेले संपर्क संपादित करण्‍यावर स्‍विच करायचे? आपण आत्तापर्यंत प्रविष्‍ट केलेली माहिती कॉपी केली जाईल."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"माझे संपर्क वर कॉपी करा"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"माझे संपर्क मध्ये जोडा"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"निर्देशिका <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"सानुकूल"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"सेटिंग्ज"</string>
-    <string name="menu_settings" msgid="377929915873428211">"सेटिंग्ज"</string>
-    <string name="menu_help" msgid="1680178646764069976">"मदत आणि अभिप्राय"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"पर्याय प्रदर्शित करा"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"फोन नंबर"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"संपर्कांमध्ये जोडा"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"संपर्कामध्ये जोडा"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"बंद करा"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"वर्ष समाविष्‍ट करा"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"संपर्क"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"लोड करीत आहे..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"नवीन संपर्क तयार करा"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"खाते जोडा"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"संपर्क आयात करा"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"नवीन गट तयार करा"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"नवीन गट तयार करा"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> गट</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> गट</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" गट हटवायचा? (संपर्क आपणहून हटविले जाणार नाहीत.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"> <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> मधील <xliff:g id="COUNT_2">%1$d</xliff:g> व्यक्ती</item>
-      <item quantity="other"> <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> मधील <xliff:g id="COUNT_2">%1$d</xliff:g> लोक</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> व्‍यक्‍ती</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> लोक</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"दुसर्‍यासह दुवा जोडण्‍याआधी संपर्क नाव टाइप करा."</string>
-    <string name="copy_text" msgid="3257145021583508761">"क्लिपबोर्डवर कॉपी करा"</string>
-    <string name="set_default" msgid="4417505153468300351">"डीफॉल्ट म्हणून सेट करा"</string>
-    <string name="clear_default" msgid="7193185801596678067">"डीफॉल्ट साफ करा"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"मजकूर कॉपी केला"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"आपले बदल टाकून द्यायचे?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"टाकून द्या"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"माझे प्रोफाईल सेट करा"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"व्‍यक्तीचे नाव टाईप करा"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"गटाचे नाव"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"माझे स्थानिक प्रोफाइल"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"माझे <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> प्रोफाईल"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"सर्व संपर्क प्रदर्शित करीत आहे"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"संपर्क Google खात्‍यासह अधिक चांगले कार्य करतात.\n\n• कोणत्‍याही वेब ब्राउझर वरून प्रवेश करा.\n• आपल्‍या संपर्कांचा सुरक्षितपणे बॅक अप घ्‍या."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"आपण आपला फोन गमावला तरीही आपले संपर्क सुरक्षित ठेवा: ऑनलाइन सेवेसह संकालित करा."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"खाते जोडा"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"आपल्‍या नवीन संपर्काचा बॅकअप घेतला जाणार नाही. संपर्कांचे ऑनलाइन बॅकअप घेणारे खाते जोडायचे?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"नवीन संपर्क <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> वर जतन केले जातील."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"नवीन संपर्कांसाठी एक डीफॉल्ट खाते निवडा:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"नवीन संपर्क जोडा"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"संपर्क संपादित करा"</string>
-    <string name="keep_local" msgid="1258761699192993322">"स्थानिक ठेवा"</string>
-    <string name="add_account" msgid="8201790677994503186">"खाते जोडा"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"नवीन खाते जोडा"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"डेटाबेस फाईल निर्यात करा"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"नवीन संपर्क जोडा"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"अधिक पहा"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कमी पहा"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"सर्व पहा"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"अलीकडील"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"विषयी"</string>
-    <string name="send_message" msgid="8938418965550543196">"संदेश पाठवा"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"वैयक्तिक प्रत तयार करीत आहे..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"काल"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"उद्या"</string>
-    <string name="today" msgid="8041090779381781781">"आज"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"आज <xliff:g id="TIME_INTERVAL">%s</xliff:g> वाजता"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"उद्या <xliff:g id="TIME_INTERVAL">%s</xliff:g> वाजता"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(अशीर्षकांकित इव्‍हेंट)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"सेट करा"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"संस्था"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"टोपणनाव"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"टीप"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"वेबसाइट"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"इव्‍हेंट"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"संबंध"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"खाते"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"नाव"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ईमेल करा"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"फोन"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"फोटो"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"संपर्क संपादक विस्तृत करण्‍यासाठी क्लिक करा."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"संपर्क संपादक संकुचित करण्‍यासाठी क्लिक करा."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"स्थानाचे दिशानिर्देश"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"अलीकडील एसएमएस. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. प्रतिसाद देण्यासाठी क्लिक करा"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"येणारे"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"केले जाणारे"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"सुटलेले"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"अलीकडील कॉल. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. परत कॉल करण्यासाठी क्लिक करा"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"आपण: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"आपण ईमेल फिल्डमध्ये किंवा फोन फिल्डमध्ये एखाद्या व्यक्तीचे Hangouts अभिज्ञापक प्रविष्ट करता तेव्हा Hangouts उत्कृष्ट कार्य करते."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"आणखी फील्ड"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"फोटो बदला"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"संपादक उघडण्यात अयशस्वी."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"यावर जतन करीत आहे"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"सध्या <xliff:g id="ACCOUNT_NAME">%s</xliff:g> मध्ये जतन करीत आहे. भिन्न खाते निवडण्यासाठी दोनदा टॅप करा."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">दुवा जोडलेला संपर्क (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">दुवा जोडलेले संपर्क (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> दुवा जोडलेले संपर्क"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"संपर्कांचा दुवा साधा"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"रद्द करा"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> संभाव्य डुप्लिकेट</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> संभाव्य डुप्लिकेट</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> दुवा साधलेला संपर्क</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> दुवा साधलेले संपर्क</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"हा संपर्क"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"संभाव्य डुप्लिकेट"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"हे संपर्क म्हणजे कदाचित एकच व्यक्ती असू शकते. आपण त्या सर्वांना एकल दुवा म्हणून एकत्र जोडू शकता."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"दुवा साधलेले संपर्क"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"आपल्‍या खात्यांमधून"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"एक फोटो घ्या"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"सर्व फोटो"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"फोटो निवडा"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> कडील"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> हटवा"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> हटवा"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>कडील फोटो चेक केला नाही"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>कडील फोटो चेक केला"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"अज्ञात खात्यामधील फोटो चेक केला नाही"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"अज्ञात खात्यामधील फोटो चेक केला"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"भाषेचे बदल प्रतिबिंबित करण्यासाठी संपर्क सूची अद्यतनित केली जात आहे. \n\nकृपया प्रतीक्षा करा..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"नंबर जोडा"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"नंबर अवरोधित करा"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"नंबर जोडा किंवा संपर्क शोधा"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> ला अनावरोधित करायचे?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"अनावरोधित करा"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> अवरोधित करायचा?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"अवरोधित करा"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> अवरोधित केला"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> अनावरोधित केला"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> अवैध आहे."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"कॉल अवरोधित करणे तात्पुरते बंद"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"आपण मागील 48 तासात या फोनवरून आणीबाणी सेवांशी संपर्क साधला असल्याने कॉल अवरोधित करणे अक्षम केले गेले आहे. एकदा 48 तासांचा कालावधी कालबाह्य झाला की ते स्वयंचलितपणे पुन्हा सक्षम केले जाईल."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात करा"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नंबर पहा"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"नंबर जोडा"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"कॉल अवरोधित करणे 48 तासांसाठी अक्षम केले"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"एक आणीबाणीचा कॉल केल्‍याने अक्षम केले."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"पूर्ववत करा"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> आधीच अवरोधित केलेला आहे."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नंबर अनावरोधित करा"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> साठी संपर्क तपशील"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात अयशस्वी झाले"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"नंबर अायात करा"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"आपले संपर्क शोधण्‍यासाठी, संपर्क परवानग्या चालू करा."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"चालू करा"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
new file mode 100644
index 0000000..8ea3a60
--- /dev/null
+++ b/res/values-mr/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"संपर्क"</string>
+    <string name="contactsList" msgid="8661624236494819731">"संपर्क"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"संपर्क जोडा"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"संपर्क"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"थेट डायल करा"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"थेट संदेश"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"संपर्क निवडा"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"संपर्कामध्ये जोडा"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"संपर्क निवडा"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"निवडा"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"नवीन संपर्क तयार करा"</string>
+    <string name="searchHint" msgid="8482945356247760701">"संपर्क शोधा"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"आवडीमध्ये जोडा"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"आवडी मधून काढा"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"आवडींमधून काढले"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"आवडींमध्ये जोडले"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"संपादित करा"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"हटवा"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"फोटो बदला"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"शॉर्टकट तयार करा"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"दुवा रद्द करा"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"संपर्क काढा"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"लेबल पुनर्नामित करा"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"लेबल हटवा"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"संपर्क जोडा"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"संपर्क निवडा"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"संपर्क जोडा"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"लेबलवरून काढा"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"लेबल तयार करा"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"एकाधिक संपर्कांमध्‍ये या संपर्काचा दुवा रद्द करायचा?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"दुवा रद्द करा"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"आपण आधीपासून केलेले बदल आपण जतन करू आणि एकाधिक संपर्कांमध्‍ये या संपर्काचा दुवा रद्द करू इच्छिता?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"जतन करा आणि दुवा रद्द करा"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"आपण आधीपासून केलेले बदल आपण जतन करू आणि निवडलेल्या संपर्काशी दुवा जोडू इच्छिता?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"जतन करा आणि दुवा जोडा"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"दुवा साधत आहे"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"दुवा रद्द करत आहे"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"दुवा साधा"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"दुवा जोडलेले संपर्क"</string>
+    <string name="menu_save" msgid="1727844363591825909">"जतन करा"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"संपर्कांचा दुवा साधा"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"आपण <xliff:g id="NAME">%s</xliff:g> सह ज्या संपर्काचा दुवा जोडू इच्छिता तो निवडा:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"सूचित संपर्क"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"सर्व संपर्क"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> चा दुवा जोडला"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"संपर्कांचा दुवा साधला"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> हटविले"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> आणि <xliff:g id="NAME_1">%2$s</xliff:g> हटविले"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... हटविले"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">संपर्क हटविला</item>
+      <item quantity="other">संपर्क हटविले</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> संपर्क</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> संपर्क</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> संपर्क · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> संपर्क · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google वरील"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> मधील"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"रिंगटोन सेट करा"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"व्हॉइसमेल मार्गस्थ करा"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"व्हॉइसमेलवर मार्गस्थ रद्द करा"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"हा संपर्क केवळ-वाचनीय आहे, तो हटवणे शक्य नाही, परंतु आपण तो लपवू शकता."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"संपर्क लपवा"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"या संंपर्कावरील केवळ-वाचनीय खाती लपविली जातील, हटविली जाणार नाहीत."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"हा संपर्क हटवायचा?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"निवडलेले संपर्क हटवायचे?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"आपल्‍या केवळ-वाचनीय खात्यांमधील संपर्क हटविले जाऊ शकत नाहीत परंतु ते लपविले जाऊ शकतात."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"जे संपर्क हटवायचे आहेत त्यामध्‍ये एकाधिक खात्यांमधील तपशील आहेत. केवळ-वाचनीय खात्यांमधील तपशील लपविले जातील, हटविले जाणार नाहीत."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"हा संपर्क हटविल्याने एकाधिक खात्‍यांमधून तपशील हटविले जातील."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"हा संपर्क हटवायचा?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"हटवा"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"संपर्क अस्तित्वात नाही."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"संपर्क मुख्‍यपृष्‍ठावर जोडला."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ना मुख्‍यपृष्‍ठावर जोडले."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"डिव्हाइसवर कोणतीही चित्रे उपलब्ध नाहीत."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"संपर्क फोटो"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"लेबल नाव सानुकूलित करा"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"फोटो काढा"</string>
+    <string name="noContacts" msgid="2228592924476426108">"आपली संपर्क सूची रिक्त आहे"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"या लेबलसह कोणतेही संपर्क नाहीत"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"या खात्यामध्ये कोणतेही संपर्क नाहीत"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"आपली संपर्क सूची रिक्त आहे"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> जतन केले"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"संपर्क जतन केला"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"संपर्कांचा दुवा रद्द केला"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"संपर्क बदल जतन करणे शक्य झाले नाही"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"संपर्काचा दुवा रद्द करणे शक्य झाले नाही"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"संपर्काचा दुवा जोडणे शक्य झाले नाही"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"संपर्क जतन करताना त्रुटी"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"संपर्क फोटो बदल जतन करणे शक्य झाले नाही"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"लेबल लोड करण्यात अयशस्वी झाले"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"लेबल हटविले"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"लेबल तयार केले"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"लेबल तयार करू शकत नाही"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"लेबल अद्यतनित केले"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"लेबल मधून काढले"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"लेबलमध्ये जोडले"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"लेबल बदल जतन करणे शक्य झाले नाही"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ते लेबल आधीपासून अस्तित्वात आहे"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"काही संपर्कांमध्ये ईमेल नाहीत."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"काही संपर्कांमध्ये फोन नंबर नाहीत."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ईमेल पाठवा"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"संदेश पाठवा"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"संपर्क निवडा"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"पाठवा"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"कोणतेही संपर्क नाहीत"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"संपर्कांमध्ये \"<xliff:g id="EMAIL">%s</xliff:g>\" जोडायचे?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"आपल्या संपर्कांची नावे"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"पूर्वीच्या स्क्रीनवर परत येण्यासाठी क्लिक करा"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"फोन नंबर जोडा"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ईमेल जोडा"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ही क्रिया हाताळण्यासाठी कोणताही अ‍ॅप आढळला नाही."</string>
+    <string name="menu_share" msgid="943789700636542260">"सामायिक करा"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"संपर्कांमध्ये जोडा"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"जोडा"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">संपर्क याद्वारे सामायिक करा</item>
+      <item quantity="other">संपर्क याद्वारे सामायिक करा</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"खाते निवडा"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"लेबल बनवा"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"लेबल पुनर्नामित करा"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"लेबल नाव"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"लेबल नाव"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"व्हॉइस चॅट"</string>
+    <string name="video_chat" msgid="1872255818640336072">"व्हिडिओ चॅट"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> संपर्क"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> खाते"</string>
+    <string name="take_photo" msgid="7496128293167402354">"फोटो घ्‍या"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"नवीन फोटो घ्या"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"फोटो निवडा"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"नवीन फोटो निवडा"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"शोधत आहे..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"तारीख"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"लेबल"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"रद्द करा"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"परत"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"बंद करा"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"निवडलेले संपर्क संपादित करण्‍यावर स्‍विच करायचे? आपण आत्तापर्यंत प्रविष्‍ट केलेली माहिती कॉपी केली जाईल."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"निर्देशिका <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"सेटिंग्ज"</string>
+    <string name="menu_settings" msgid="377929915873428211">"सेटिंग्ज"</string>
+    <string name="menu_help" msgid="1680178646764069976">"मदत आणि अभिप्राय"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"फोन नंबर"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"संपर्कांमध्ये जोडा"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"बंद करा"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"वर्ष समाविष्‍ट करा"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"खाते जोडा"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"आयात करा"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"नवीन तयार करा…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" लेबल हटवायचे? (संपर्क आपणहून हटविले जाणार नाहीत.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"दुसर्‍यासह दुवा जोडण्‍याआधी संपर्क नाव टाइप करा."</string>
+    <string name="copy_text" msgid="3257145021583508761">"क्लिपबोर्डवर कॉपी करा"</string>
+    <string name="set_default" msgid="4417505153468300351">"डीफॉल्ट म्हणून सेट करा"</string>
+    <string name="clear_default" msgid="7193185801596678067">"डीफॉल्ट साफ करा"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"मजकूर कॉपी केला"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"बदल टाकून द्यायचे?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"टाकून द्या"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"रद्द करा"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"सानुकूलीकरणेे टाकूून द्यायची?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"संपर्क शोधा"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"संपर्क काढा"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"माझे स्थानिक प्रोफाइल"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"माझे <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> प्रोफाईल"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Google वर आपल्या संपर्कांचा बॅक अप घेणारे खाते जोडण्‍यासाठी एक मिनिट घ्या."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"नवीन संपर्क <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> वर जतन केले जातील."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"नवीन संपर्कांसाठी एक डीफॉल्ट खाते निवडा:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"नवीन संपर्क तयार करा"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"संपर्क संपादित करा"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"केवळ दर्शनीय"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"संपादित करण्यासाठी संपर्क निवडा"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"दुवा साधलेले संपर्क"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"जोडा"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"दुवा रद्द करा"</string>
+    <string name="add_account" msgid="8201790677994503186">"खाते जोडा"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"नवीन खाते जोडा"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"डेटाबेस फाईल निर्यात करा"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"नवीन संपर्क तयार करा"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"अधिक पहा"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कमी पहा"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"अलीकडील"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"विषयी"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"वैयक्तिक प्रत तयार करीत आहे..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"उद्या"</string>
+    <string name="today" msgid="8041090779381781781">"आज"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"आज <xliff:g id="TIME_INTERVAL">%s</xliff:g> वाजता"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"उद्या <xliff:g id="TIME_INTERVAL">%s</xliff:g> वाजता"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(अशीर्षकांकित इव्‍हेंट)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"सेट करा"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"संस्था"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"टोपणनाव"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"टीप"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"वेबसाइट"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"इव्‍हेंट"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"संबंध"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"नाव"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ईमेल करा"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"फोन"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"स्थानाचे दिशानिर्देश"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"अलीकडील एसएमएस. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. प्रतिसाद देण्यासाठी क्लिक करा"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"येणारे"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"केले जाणारे"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"सुटलेले"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"अलीकडील कॉल. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. परत कॉल करण्यासाठी क्लिक करा"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"आपण: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"आणखी फील्ड"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"संपर्क फोटो बदला"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"संपर्क फोटो जोडा"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"संपर्क फोटो"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"संपादक उघडण्यात अयशस्वी."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"यावर जतन करीत आहे"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> वरील संपर्क माहिती संपादनयोग्य नाही"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"संपर्कांचा दुवा साधा"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"रद्द करा"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"हा संपर्क"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"संभाव्य डुप्लिकेट"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"हे संपर्क म्हणजे कदाचित एकच व्यक्ती असू शकते. आपण त्या सर्वांना एकल दुवा म्हणून एकत्र जोडू शकता."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> हटवा"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> हटवा"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"सूचना"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"नवीन"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"नेव्हिगेशन ड्रॉवर उघडा"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"नेव्हिगेशन ड्रॉवर बंद करा"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> लेबल"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"लेबले"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"खाती"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"येथे आपला इतिहास एकत्र पहा"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"इव्हेंट आणि संदेश"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"इव्हेंट"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"संदेश"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"सूचना"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"आपले संपर्क व्यवस्थापित आणि उपयुक्त ठेवा"</string>
+    <string name="undo" msgid="1425165101664071422">"पूर्ववत करा"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ला कॉल करा"</string>
+    <string name="call_home" msgid="1990519474420545392">"निवासस्‍थानी कॉल करा"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"मोबाईलवर कॉल करा"</string>
+    <string name="call_work" msgid="5328785911463744028">"कार्यस्‍थानी कॉल करा"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"कार्यस्‍थानी फॅक्‍स वर कॉल करा"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"निवास फॅक्‍स वर कॉल करा"</string>
+    <string name="call_pager" msgid="9003902812293983281">"पेजर वर कॉल करा"</string>
+    <string name="call_other" msgid="8563753966926932052">"कॉल करा"</string>
+    <string name="call_callback" msgid="1910165691349426858">"कॉलबॅकवर कॉल करा"</string>
+    <string name="call_car" msgid="3280537320306436445">"कारला कॉल करा"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"कंपनी मुख्‍य ला कॉल करा"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN कॉल करा"</string>
+    <string name="call_main" msgid="6082900571803441339">"मुख्य वर कॉल करा"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"फॅक्स वर कॉल करा"</string>
+    <string name="call_radio" msgid="8296755876398357063">"रेडिओ वर कॉल करा"</string>
+    <string name="call_telex" msgid="2223170774548648114">"टेलेक्स वर कॉल करा"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD वर कॉल कर"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"कार्यस्‍थानी मोबाईलवर कॉल करा"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"कार्यस्‍थानी पेजरवर कॉल करा"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ला कॉल करा"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS वर कॉल करा"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (कॉल करा)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> वर मजकूर पाठवा"</string>
+    <string name="sms_home" msgid="7524332261493162995">"निवासस्थानी मजकूर पाठवा"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"मोबाईलवर मजकूर पाठवा"</string>
+    <string name="sms_work" msgid="2269624156655267740">"कार्यस्थानी मजकूर पाठवा"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"कार्य फॅक्सवर मजकूर पाठवा"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"निवासस्थान फॅक्सवर मजकूर पाठवा"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"पेजरवर मजकूर पाठवा"</string>
+    <string name="sms_other" msgid="806127844607642331">"मजकूर"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"कॉलबॅक वर मजकूर पाठवा"</string>
+    <string name="sms_car" msgid="7444227058437359641">"कार वर मजकूर पाठवा"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"कंपनी मुख्य वर मजकूर पाठवा"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN वर मजकूर पाठवा"</string>
+    <string name="sms_main" msgid="8621625784504541679">"मुख्य वर मजकूर पाठवा"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"फॅक्सवर मजकूर पाठवा"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"रेडिओवर मजकूर पाठवा"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"टेलेक्सवर मजकूर पाठवा"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD वर मजकूर पाठवा"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"कार्य मोबाईलवर मजकूर पाठवा"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"कार्य पेजरवर मजकूर पाठवा"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> मजकूर पाठवा"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS वर मजकूर पाठवा"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (संदेश)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"व्‍हिडिओ कॉल करा"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"वारंवार सपर्क साधलेले साफ करायचे?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"आपण संपर्क आणि फोन अ‍ॅप्‍स मधील वारंवार संपर्क साधलेली सूची साफ कराल आणि ईमेल अ‍ॅप्‍सना सुरवातीपासून आपली पत्ता प्राधान्‍ये जाणून घेण्‍याची सक्ती कराल."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"वारंवार सपर्क साधलेले साफ करीत आहे..."</string>
+    <string name="status_available" msgid="5586870015822828392">"उपलब्ध"</string>
+    <string name="status_away" msgid="1838861100379804730">"दूर आहे"</string>
+    <string name="status_busy" msgid="9147992455450257136">"व्यस्त"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"अन्य"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"निर्देशिका"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"कार्य निर्देशिका"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"सर्व संपर्क"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> साठी द्रुत संपर्क"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(नाव नाही)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"वारंवार संपर्क केलेले"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"फोन नंबरसह सर्व संपर्क"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"कार्य प्रोफाईल संपर्क"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"अद्यतने पहा"</string>
+    <string name="account_phone" msgid="7128032778471187553">"डिव्हाइस"</string>
+    <string name="account_sim" msgid="6519016427905087952">"सिम"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"नाव"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"टोपणनाव"</string>
+    <string name="name_given" msgid="4280790853455320619">"नाव"</string>
+    <string name="name_family" msgid="7466985689626017037">"आडनाव"</string>
+    <string name="name_prefix" msgid="59756378548779822">"नाव प्रत्यय"</string>
+    <string name="name_middle" msgid="8467433655992690326">"मधले नाव"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"नाव"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ध्वन्यात्मक नाव"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ध्वन्यात्मक नाव"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ध्वन्यात्मक मधले नाव"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ध्वन्यात्मक आडनाव"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"फोन"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ईमेल"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"पत्ता"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"संस्था"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"नातेसंबंध"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"विशिष्ट तारीख"</string>
+    <string name="sms" msgid="1756857139634224222">"मजकूर संदेश"</string>
+    <string name="postal_address" msgid="8765560217149624536">"पत्ता"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"कंपनी"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"शीर्षक"</string>
+    <string name="label_notes" msgid="8337354953278341042">"टिपा"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"सानुकूल"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"वेबसाइट"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"लेबले"</string>
+    <string name="email_home" msgid="8573740658148184279">"निवासस्‍थानी ईमेल करा"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"मोबाईलवर ईमेल करा"</string>
+    <string name="email_work" msgid="2807430017302722689">"कार्यस्‍थानावर ईमेल करा"</string>
+    <string name="email_other" msgid="3454004077967657109">"ईमेल"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> वर ईमेल करा"</string>
+    <string name="email" msgid="5668400997660065897">"ईमेल"</string>
+    <string name="postal_street" msgid="8133143961580058972">"मार्ग"</string>
+    <string name="postal_city" msgid="6597491300084895548">"शहर"</string>
+    <string name="postal_region" msgid="6045263193478437672">"राज्य"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"पिनकोड"</string>
+    <string name="postal_country" msgid="7638264508416368690">"देश"</string>
+    <string name="map_home" msgid="1243547733423343982">"निवास पत्ता पहा"</string>
+    <string name="map_work" msgid="1360474076921878088">"कार्य पत्ता पहा"</string>
+    <string name="map_other" msgid="3817820803587012641">"पत्ता पहा"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> पत्ता पहा"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM चा वापर करून चॅट करा"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live चा वापर करून चॅट करा"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo चा वापर करून चॅट करा"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype चा वापर करून चॅट करा"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ चा वापर करून चॅट करा"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk चा वापर करून चॅट करा"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ चा वापर करून चॅट करा"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber चा वापर करून चॅट करा"</string>
+    <string name="chat" msgid="9025361898797412245">"चॅट करा"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"हटवा"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"अधिक नाव फील्ड दर्शवा"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"नाव फील्ड संकुचित करा"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"अधिक ध्वन्यात्मक नाव फील्ड दर्शवा"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ध्वन्यात्मक नाव फील्ड संकुचित करा"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"विस्तृत करा"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"संकुचित करा"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"विस्तृत केले"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"संकुचित केले"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"सर्व संपर्क"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"तारांकित"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"सानुकूलिकरण करा"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"संपर्क"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"इतर सर्व संपर्क"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"सर्व संपर्क"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"संकालन समूह काढून टाका"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"संकालन गट जोडा"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"अधिक गट..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"संकालन करा मधून \"<xliff:g id="GROUP">%s</xliff:g>\" हटविल्‍याने संकालन करा मधून कोणत्‍याही गटबद्ध न केलेल्‍या संपर्कांना देखील हटवेल."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"प्रदर्शन पर्याय जतन करत आहे…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"सानुकूलित दृश्य"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"आयात केलेले संपर्क यावर जतन करा:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"सिम कार्ड"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"सिम <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d संपर्क</item>
+      <item quantity="other">%1$d संपर्क</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> संपर्क • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> संपर्क • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf फाईल"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"आयात करण्यासाठी काहीही नाही"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard मधून संपर्क आयात करायचे?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> चे आयात रद्द करायचे?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> चे निर्यात रद्द करायचे?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard आयात/निर्यात रद्द करू शकल नाही"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"अज्ञात त्रुटी."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" उघडू शकलो नाही: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"निर्यातकर्ता प्रारंभ करू शकला नाही: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"कोणताही निर्यात करण्‍यायोग्‍य संपर्क नाही."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"आपण आवश्‍यक असलेली एक परवानगी अक्षम केली आहे."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"निर्यात दरम्‍यान त्रुटी आलीt: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O त्रुटी"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"पुरेशी मेमरी नाही. फाईल कदाचित खूप मोठी असू शकते."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"स्वरूपन समर्थित नाही."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> निर्यात करणे समाप्त झाले."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"संपर्क आयात करणे समाप्त झाले"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"संपर्क निर्यात करणे समाप्त झाले, संपर्क सामायिक करण्यासाठी सूचनेवर क्लिक करा."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"संपर्क सामायिक करण्यासाठी टॅप करा."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> निर्यात करणे रद्द केले."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"संपर्क डेटा निर्यात करीत आहे"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"संपर्क डेटा निर्यात केला जात आहे."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"डेटाबेस माहिती मिळवू शकलो नाही."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"कोणतेही निर्यात करण्यायोग्य संपर्क नाहीत."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard रचनाकाराने योग्‍यरित्‍या प्रारंभ केला नाही."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"निर्यात करू शकलो नाही"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"संपर्क डेटा निर्यात केला नाही.\nकारण: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> आयात करीत आहे"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard डेटा वाचू शकलो नाही"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> आयात करणे समाप्त झाले"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> आयात करणे रद्द झाले"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> लवकरच आयात केली जाईल."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"फाईल लवकरच आयात केली जाईल."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard आयात विनंती नाकारली. नंतर पुन्हा प्रयत्न करा."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"संपर्क लवकरच निर्यात केले जातील."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard निर्यात विनंती नाकारली. नंतर पुन्हा प्रयत्न करा."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"संपर्क"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"स्‍थानिक तात्‍पुरत्‍या संचयनावर vCard(s) कॅश   करीत आहे. वास्‍तविक आयात लवकरच प्रारंभ होईल."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard आयात करू शकलो नाही."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC वर संपर्क प्राप्त केला"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"कॅश   करीत आहे"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"आयात करत आहे <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf फाईलवर निर्यात करा"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"नुसार क्रमवारी लावा"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ध्वन्यात्मक नाव"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"नेहमी दर्शवा"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"रिक्त असल्यास लपवा"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"नाव"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"आडनाव"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"नाव स्वरूपन"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"नाव प्रथम"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"आडनाव प्रथम"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"खाती"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"नवीन संपर्कांसाठी डीफॉल्ट खाते"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"माझी माहिती"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"आपले प्रोफाईल सेट करा"</string>
+    <string name="setting_about" msgid="7014388749752042863">"संपर्कांबद्दल"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"आवडते संपर्क सामायिक करा"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"सर्व संपर्क सामायिक करा"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"संपर्क सामायिक करण्यात अयशस्वी झाले."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"संपर्क निर्यात करा"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"यावरून संपर्क आयात करा"</string>
+    <string name="share_error" msgid="948429331673358107">"हा संपर्क सामायिक केला जाऊ शकत नाही."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"सामायिक करण्यासाठी कोणतेही संपर्क नाहीत."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"प्रदर्शित करण्यासाठी संपर्क"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"प्रदर्शित करण्यासाठी संपर्क"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"दृश्य सानुकूल करा"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"जतन करा"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"संपर्क शोधा"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"आवडते"</string>
+    <string name="menu_import" msgid="6107961135813836467">"आयात करा"</string>
+    <string name="menu_export" msgid="2658783911863503902">"निर्यात"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"अवरोधित केलेले नंबर"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> द्वारे"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> द्वारे <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"शोध थांबवा"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"शोध साफ करा"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"खाते"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"कॉलसाठी हे नेहमी वापरा"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"टीपसह कॉल करा"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"कॉलसह पाठविण्‍यासाठी एक टीप टाइप करा..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"पाठवा आणि कॉल करा"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"बिल्ड आवृत्ती"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"मुक्त स्रोत परवाने"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"मुक्त स्त्रोत सॉफ्टवेअरसाठी परवाना तपशील"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"गोपनीयता धोरण"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"सेवा अटी"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"मुक्त स्रोत परवाने"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url उघडण्यात अयशस्वी झाले."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> चेक केले"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> चेक केले नाही"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"व्हिडिओ कॉल करा"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"हटवा"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"पदलोप"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> मि. <xliff:g id="SECONDS">%2$s</xliff:g>सेकंद"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ता. <xliff:g id="MINUTES_1">%2$s</xliff:g> मि. <xliff:g id="SECONDS">%3$s</xliff:g> सेकंद"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"हा शॉर्टकट अक्षम केला गेला आहे"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"संपर्क काढला होता"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"आयात करा"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"संपर्क निवडा"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"आपल्‍या सिम कार्डवर कोणतेही संपर्क नाहीत"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"संपर्क आधीपासून आपल्या सूचीमध्ये विद्यमान आहे"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> सिम संपर्क आयात केला</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सिम संपर्क आयात केले</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"सिम संपर्क आयात करण्यात अयशस्वी"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"सिम वरून आयात करा"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"रद्द करा"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"स्वयं-संकालन बंद आहे. चालू करण्यासाठी टॅप करा."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"डिसमिस करा"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"स्वयं-संकालन बंद आहे. चालू करण्यासाठी टॅप करा."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"स्वयं-संकालन चालू करायचे?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"फक्त संपर्कांमध्ये नाही, तर आपण सर्व अॅप्स आणि खात्यांमध्ये करता ते बदल, वेब आणि आपल्या अन्य डिव्हाइसेस दरम्यान अद्यतनित ठेवले जातील."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"चालू करा"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"कोणतेही कनेक्शन नाही"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"सिम"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"अधिक दर्शवा"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"सिम कार्ड आयात करणे समाप्त झाले"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"आयात अयशस्वी झाले"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"सिम कार्ड वरून संपर्क आयात करणेे शक्य झाले नाही"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"सिम आयात करीत आहे"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
deleted file mode 100644
index 7391810..0000000
--- a/res/values-ms-rMY/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Kenalan"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kenalan"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Lihat Kenalan"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Edit Kenalan"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Kenalan"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Kenalan"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Dail terus"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mesej langsung"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Pilih pintasan kenalan"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Pilih nombor untuk memanggil"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Pilih nombor untuk menghantar mesej"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Tambahkan pada kenalan"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Pilih kenalan"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Buat kenalan baharu"</string>
-    <string name="starredList" msgid="4817256136413959463">"Dibintangkan"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Kerap"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Kegemaran"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Butiran kenalan"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Edit kenalan"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Wujudkan kenalan"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Edit kumpulan"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Buat kumpulan"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Perihal"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Kemas kini"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Cari dalam kenalan"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Papar kenalan"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Tambah ke kegemaran"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Alih keluar daripada kegemaran"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Dialih keluar daripada kegemaran"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Ditambah ke kegemaran"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Edit"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Padam"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Tukar foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Letakkan pada skrin Utama"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Panggil kenalan"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"SMS kepada kenalan"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Nyahpaut"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Edit"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Padam"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Tambah Kenalan"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Tambah Kumpulan"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Nyahpaut kenalan ini menjadi beberapa kenalan?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Nyahpaut"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Adakah anda ingin menyimpan perubahan yang telah dibuat dan menyahpaut kenalan ini menjadi beberapa kenalan?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Simpan dan nyahpaut"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Adakah anda ingin menyimpan perubahan yang telah dibuat dan memaut kenalan yang dipilih?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Simpan dan paut"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Pautkan"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Simpan"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Paut kenalan"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Pilih kenalan yang anda mahu pautkan dengan <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Tunjukkan semua kenalan"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Kenalan cadangan"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Semua kenalan"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kenalan dipaut"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Kenalan dipadamkan</item>
-      <item quantity="one">Kenalan dipadamkan</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Tetapkan nada dering"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Semua panggilan ke mel suara"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kenalan daripada akaun baca sahaja tidak boleh dipadamkan tetapi boleh disembunyikan."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Sembunyikan"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kenalan yang hendak dipadamkan mempunyai butiran daripada berbilang akaun. Butiran daripada akaun baca sahaja akan disembunyikan, bukan dipadamkan."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Anda perlu memilih sekurang-kurangnya dua kenalan untuk melakukan pautan."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Paut kenalan dipilih?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Pautkan"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Padam kenalan ini?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Padam kenalan yang dipilih?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kenalan daripada akaun baca sahaja tidak boleh dipadamkan tetapi boleh disembunyikan."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kenalan yang hendak dipadamkan mempunyai butiran daripada berbilang akaun. Butiran daripada akaun baca sahaja akan disembunyikan, bukan dipadamkan."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Memadamkan kenalan ini akan memadamkan butiran daripada berbilang akaun."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Padam kenalan ini?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Padam"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Buang perubahan"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Kenalan tidak wujud."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kenalan ditambahkan pada Skrin utama."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ditambahkan pada Skrin utama."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Buat kenalan baharu"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Buat kenalan baharu"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisasi"</item>
-    <item msgid="7196592230748086755">"Nota"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Tiada gambar yang tersedia pada tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Tidak ada gambar yang tersedia pada telefon."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto kenalan"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nama label peribadi"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Hantar panggilan terus ke peti suara"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Alih keluar foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Tiada kenalan"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Tiada kumpulan."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Anda memerlukan akaun untuk membuat kumpulan."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Tiada orang dalam kumpulan ini."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Untuk menambah beberapa orang, edit kumpulan itu."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Simpan kenalan..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Kenalan disimpan."</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kenalan dinyahpaut"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Tidak dapat menyimpan perubahan kenalan."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Tidak dapat menyahpaut kenalan."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Tidak dapat memaut kenalan."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Ralat semasa menyimpan kenalan."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Tidak dapat menyimpan perubahan foto kenalan."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Kumpulan sudah disimpan."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Tidak dapat menyimpan perubahan kumpulan."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kenalan dengan nombor telefon</item>
-      <item quantity="one">1 kenalan dengan nombor telefon</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Tiada kenalan dengan nombor telefon"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ditemui</item>
-      <item quantity="one">1 ditemui</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Tiada kenalan"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ditemui</item>
-      <item quantity="one">1 ditemui</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Semua"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Kegemaran"</string>
-    <string name="callBack" msgid="5498224409038809224">"Panggil balik"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Panggil semula"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Balas panggilan"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Tambah \"<xliff:g id="EMAIL">%s</xliff:g>\" kepada kenalan?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto kenalan"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"tambah"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> daripada <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kenalan"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Nama kenalan anda"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Tiada aplikasi ditemui untuk mengendalikan tindakan ini."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik untuk kembali ke skrin sebelumnya"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Tambah nombor telefon"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Tambah e-mel"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Tiada apl ditemui untuk mengendalikan tindakan ini."</string>
-    <string name="menu_share" msgid="943789700636542260">"Kongsi"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Tambahkan pada kenalan"</string>
-    <string name="share_via" msgid="563121028023030093">"Kongsi kenalan melalui"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Buat kumpulan di bawah akaun"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Sembang suara"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Sembang video"</string>
-    <string name="connections" msgid="8098440723172028350">"Sambungan"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Tambah sambungan"</string>
-    <string name="recent" msgid="2659189233141493004">"Terbaru"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Kemas kini terbaru"</string>
-    <string name="account_type_format" msgid="718948015590343010">"Kenalan <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"Akaun <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Tidak boleh diedit dari aplikasi ini."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Tidak boleh diedit pada peranti ini."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Ambil foto"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Ambil foto baru"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Pilih foto"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Pilih foto baharu"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Senarai kenalan sedang dikemas kini."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Mencari..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Tunjukkan pilihan"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Tunjukkan semua"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Pilih semua"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Nyahpilih semua"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Tambah baru"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Tambah organisasi"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarikh"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nama kumpulan"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Tukar"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto utama"</string>
-    <string name="description_star" msgid="2605854427360036550">"kegemaran"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Edit kenalan"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Pautkan kenalan semasa dengan kenalan pilihan?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Bertukar kepada mengedit kenalan pilihan? Maklumat yang anda masukkan setakat ini akan disalin."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Salin ke Kenalan Saya"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Tambahkan pada Kenalan Saya"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Direktori <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Peribadi"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Tetapan"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Tetapan"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Bantuan &amp; maklum balas"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Pilihan paparan"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Nombor telefon"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Tambah ke kenalan"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Tambah ke kenalan"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Tutup"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Termasuk tahun"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kenalan"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Memuatkan…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Buat kenalan baharu"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Tambahkan akaun"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Import kenalan"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Buat kumpulan baru"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Buat kumpulan baharu"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> kumpulan</item>
-      <item quantity="one">1 kumpulan</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Padamkan kumpulan \" <xliff:g id="GROUP_LABEL">%1$s</xliff:g> \"? (Kenalan itu sendiri tidak akan dipadamkan.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> orang daripada <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> orang daripada <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> orang</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> orang</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Taipkan nama kenalan sebelum memautkan dengan yang lain."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Salin ke papan keratan"</string>
-    <string name="set_default" msgid="4417505153468300351">"Tetapkan lalai"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Kosongkan lalai"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Teks disalin"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Buang perubahan anda?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Buang"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Sediakan profil saya"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Taip nama orang"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nama kumpulan"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Profil setempat saya"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> saya"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Memaparkan semua kenalan"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kenalan berfungsi lebih baik dengan Akaun Google.\n\n• Akses dari mana-mana penyemak imbas web.\n• Buat sandaran untuk kenalan anda secara selamat."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Pastikan kenalan anda selamat walaupun jika anda kehilangan telefon anda: segerakkan dengan perkhidmatan dalam talian."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Tambah akaun"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Kenalan baharu anda tidak akan dibuat sandaran. Tambahkan akaun yang membuat sandaran kenalan dalam talian?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Kenalan baharu akan disimpan ke <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Pilih akaun lalai untuk kenalan baharu:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Tambah kenalan baru"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edit kenalan"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Simpan setempat"</string>
-    <string name="add_account" msgid="8201790677994503186">"Tambah akaun"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Tambah akaun baharu"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Eksport fail pangkalan data"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"tambah kenalan baharu"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Lihat lagi"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Lihat kurang"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Lihat semua"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Terbaharu"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Mengenai"</string>
-    <string name="send_message" msgid="8938418965550543196">"Hantar mesej"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Membuat salinan peribadi..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Semalam"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Esok"</string>
-    <string name="today" msgid="8041090779381781781">"Hari ini"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Hari ini pada <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Esok pada <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Acara tidak bertajuk)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Tetapkan"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Organisasi"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Nama panggilan"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Tapak web"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Acara"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Hubungan"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Akaun"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Nama"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"E-mel"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Klik untuk kembangkan editor kenalan."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Klik untuk runtuhkan editor kenalan."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"arah ke lokasi"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms terbaharu. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klik untuk membalas"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"masuk"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"keluar"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"tidak dijawab"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"panggilan terbaharu. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klik untuk memanggil balik"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Anda: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts berfungsi lebih baik apabila anda memasukkan pengecam Hangouts individu itu ke dalam medan e-mel atau telefon."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Lagi medan"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Tukar foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Gagal membuka editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Menyimpan ke"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Pada masa ini menyimpan ke <xliff:g id="ACCOUNT_NAME">%s</xliff:g> . Ketik dua kali untuk memilih akaun yang lain."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Kenalan dipaut (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Kenalan dipaut</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> kenalan dipaut"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"PAUT KENALAN"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"BATAL"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Pendua berkemungkinan</item>
-      <item quantity="one">1 Pendua berkemungkinan</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kenalan dipaut</item>
-      <item quantity="one">1 kenalan dipaut</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Kenalan ini"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Pendua berkemungkinan"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Kenalan ini mungkin orang yang sama. Anda boleh memautnya bersama sebagai satu kenalan."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Kenalan yang dipaut"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Daripada akaun anda"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Ambil foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Semua foto"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Pilih foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Daripada <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Padamkan <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Padamkan <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto daripada <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>tidak ditandai"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto daripada <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>ditandai"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto daripada akaun yang tidak diketahui tidak ditandai"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto daripada akaun yang tidak diketahui ditandai"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Senarai kenalan sedang dikemas kini untuk menggambarkan penukaran bahasa.\n\nSila tunggu..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Tambah nombor"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Sekat nombor"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Tambahkn no. atau cari kenalan"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Nyahsekat <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"NYAHSEKAT"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Sekat <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"SEKAT"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> disekat"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> dinyahsekat"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> tidak sah."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Sekatan panggilan dimatikan sementara"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Sekatan panggilan telah dilumpuhkan kerana anda menghubungi perkhidmatan kecemasan daripada telefon ini dalam masa 48 jam yang lalu. Ciri ini akan didayakan semula secara automatik apabila tempoh 48 jam berakhir."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Lihat nombor"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Tambah nombor"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Sekatan panggilan dilumpuhkan selama 48 jam"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Dilumpuhkan kerana panggilan kecemasan telah dibuat."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"BUAT ASAL"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah disekat."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Nyahsekat nombor"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Butiran hubungan untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Pengimportan gagal"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Import nombor"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Untuk mencari kenalan anda, hidupkan kebenaran Kenalan."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Hidupkan"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
new file mode 100644
index 0000000..0e11dd9
--- /dev/null
+++ b/res/values-ms/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Kenalan"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Kenalan"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Tambah kenalan"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Kenalan"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Dail terus"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mesej langsung"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Pilih kenalan"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Tambahkan pada kenalan"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Pilih kenalan"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Pilih"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Buat kenalan baharu"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Cari dalam kenalan"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Tambah ke kegemaran"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Alih keluar daripada kegemaran"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Dialih keluar daripada kegemaran"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Ditambah ke kegemaran"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Edit"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Padam"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Tukar foto"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Buat pintasan"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Nyahpaut"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Alih keluar kenalan"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Namakan semula label"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Padamkan label"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Tambahkan kenalan"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Pilih kenalan"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Tambahkan kenalan"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Alih keluar daripada label"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Buat label"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Nyahpaut kenalan ini menjadi beberapa kenalan?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Nyahpaut"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Adakah anda ingin menyimpan perubahan yang telah dibuat dan menyahpaut kenalan ini menjadi beberapa kenalan?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Simpan dan nyahpaut"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Adakah anda ingin menyimpan perubahan yang telah dibuat dan memaut kenalan yang dipilih?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Simpan dan paut"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Memaut"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Menyahpaut"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Pautkan"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Lihat kenalan yang dipautkan"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Simpan"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Paut kenalan"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Pilih kenalan yang anda mahu pautkan dengan <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Kenalan cadangan"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Semua kenalan"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> dipaut"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kenalan dipaut"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> dipadamkan"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> dan <xliff:g id="NAME_1">%2$s</xliff:g> dipadamkan"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… dipadamkan"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Kenalan dipadamkan</item>
+      <item quantity="one">Kenalan dipadamkan</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kenalan</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kenalan</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kenalan · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kenalan · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Daripada Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Daripada <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Tetapkan nada dering"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Halakan ke mel suara"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Nyahhalakan ke mel suara"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Kenalan ini bersifat baca sahaja. Kenalan ini tidak boleh dipadamkan, tetapi anda boleh menyembunyikannya."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Sembunyikan Kenalan"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Akaun baca sahaja dalam kenalan ini akan disembunyikan, bukan dipadamkan."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Padam kenalan ini?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Padam kenalan yang dipilih?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kenalan daripada akaun baca sahaja tidak boleh dipadamkan tetapi boleh disembunyikan."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kenalan yang hendak dipadamkan mempunyai butiran daripada berbilang akaun. Butiran daripada akaun baca sahaja akan disembunyikan, bukan dipadamkan."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Memadamkan kenalan ini akan memadamkan butiran daripada berbilang akaun."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Padam kenalan ini?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Padam"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Kenalan tidak wujud."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kenalan ditambahkan pada Skrin utama."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ditambahkan pada Skrin utama."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Tiada gambar tersedia pada peranti."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto kenalan"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nama label peribadi"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Alih keluar foto"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Senarai kenalan anda kosong"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Tiada kenalan dengan label ini"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Tiada kenalan dalam akaun ini"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Senarai kenalan anda kosong"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> disimpan"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Kenalan disimpan."</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kenalan dinyahpaut"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Tidak dapat menyimpan perubahan kenalan"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Tidak dapat menyahpaut kenalan"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Tidak dapat memaut kenalan"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Ralat menyimpan kenalan"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Tidak dapat menyimpan perubahan foto kenalan"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Gagal memuatkan label"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Label dipadamkan"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Label dibuat"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Tidak dapat membuat label"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Label dikemaskinikan"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Dialih keluar daripada label"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Ditambahkan pada label"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Tidak dapat menyimpan perubahan label"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Label itu sudah wujud"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Sesetengah kenalan tiada e-mel."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Sesetengah kenalan tiada nombor telefon."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Hantar e-mel"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Hantar mesej"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Pilih Kenalan"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Hantar"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Tiada kenalan"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Tambah \"<xliff:g id="EMAIL">%s</xliff:g>\" kepada kenalan?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Nama kenalan anda"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik untuk kembali ke skrin sebelumnya"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Tambah nombor telefon"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Tambah e-mel"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Tiada apl ditemui untuk mengendalikan tindakan ini."</string>
+    <string name="menu_share" msgid="943789700636542260">"Kongsi"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Tambahkan pada kenalan"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Tambah"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Kongsi kenalan melalui</item>
+      <item quantity="one">Kongsi kenalan melalui</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Pilih akaun"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Buat label"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Namakan semula label"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nama label"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nama label"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Sembang suara"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Sembang video"</string>
+    <string name="account_type_format" msgid="718948015590343010">"Kenalan <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"Akaun <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Ambil foto"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Ambil foto baru"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Pilih foto"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Pilih foto baharu"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Mencari..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarikh"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Label"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Batal"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Kembali"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"tutup"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Bertukar kepada mengedit kenalan pilihan? Maklumat yang anda masukkan setakat ini akan disalin."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Direktori <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Tetapan"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Tetapan"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Bantuan &amp; maklum balas"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Nombor telefon"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Tambah ke kenalan"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Tutup"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Termasuk tahun"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Tambahkan akaun"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Import"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Buat baharu…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Padamkan label \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kenalan itu sendiri tidak akan dipadamkan.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Taipkan nama kenalan sebelum memautkan dengan yang lain."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Salin ke papan keratan"</string>
+    <string name="set_default" msgid="4417505153468300351">"Tetapkan lalai"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Kosongkan lalai"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Teks disalin"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Buang perubahan?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Buang"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Batal"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Buang penyesuaian?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Cari dalam kenalan"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Alih keluar kenalan"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Profil setempat saya"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> saya"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Luangkan sedikit masa untuk menambah akaun yang akan menyandarkan kenalan anda ke Google."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Kenalan baharu akan disimpan ke <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Pilih akaun lalai untuk kenalan baharu:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Buat kenalan baharu"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edit kenalan"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Lihat sahaja"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Pilih kenalan untuk diedit"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Kenalan dipautkan"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Tambah"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Nyahpaut"</string>
+    <string name="add_account" msgid="8201790677994503186">"Tambah akaun"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Tambah akaun baharu"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Eksport fail pangkalan data"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Buat kenalan baharu"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Lihat lagi"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Lihat kurang"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Terbaharu"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Mengenai"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Membuat salinan peribadi..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Esok"</string>
+    <string name="today" msgid="8041090779381781781">"Hari ini"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Hari ini pada <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Esok pada <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Acara tidak bertajuk)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Tetapkan"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organisasi"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Nama panggilan"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Nota"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Tapak web"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Acara"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Hubungan"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Nama"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"E-mel"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"arah ke lokasi"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms terbaharu. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik untuk membalas"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"masuk"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"keluar"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"tidak dijawab"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"panggilan terbaharu. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik untuk memanggil balik"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Anda: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Lebih banyak medan"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Tukar foto kenalan"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Tambahkan foto kenalan"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto kenalan"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Gagal membuka editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Menyimpan ke"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Maklumat kenalan daripada <xliff:g id="ACCOUNT">%s</xliff:g> tidak boleh diedit"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"PAUT KENALAN"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"BATAL"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Kenalan ini"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Pendua berkemungkinan"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Kenalan ini mungkin orang yang sama. Anda boleh memautnya bersama sebagai satu kenalan."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Padamkan <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Padamkan <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Cadangan"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Baharu"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Buka laci navigasi"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Tutup laci navigasi"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Label <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Label"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Akaun"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Lihat sejarah anda bersama-sama"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Acara dan mesej"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Acara"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mesej"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Cadangan"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Pastikan kenalan anda tersusun dan berguna"</string>
+    <string name="undo" msgid="1425165101664071422">"Buat asal"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Panggil <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Panggil nombor rumah"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Panggil nombor mudah alih"</string>
+    <string name="call_work" msgid="5328785911463744028">"Panggil tempat kerja"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Panggil faks tempat kerja"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Panggil faks rumah"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Panggil alat kelui"</string>
+    <string name="call_other" msgid="8563753966926932052">"Panggil"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Panggil nombor panggil balik"</string>
+    <string name="call_car" msgid="3280537320306436445">"Panggil kereta"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Panggil nombor utama syarikat"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Panggil ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Panggil nombor utama"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Panggil faks"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Panggil radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Panggil telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Panggil TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Panggil telefon mudah alih tempat kerja"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Panggil alat kelui tempat kerja"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Panggil <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Panggil MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Panggil)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Hantar teks kepada <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS ke rumah"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS ke telefon mudah alih"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS tempat kerja"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS faks tempat kerja"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS ke faks rumah"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS alat kelui"</string>
+    <string name="sms_other" msgid="806127844607642331">"Teks"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS ke nombor panggil balik"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS ke kereta"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS nombor utama syarikat"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS ke ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS ke nombor utama"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Faks teks"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS ke radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS ke teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS ke TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS ke telefon mudah alih tempat kerja"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS alat kelui tempat kerja"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"SMS ke <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"SMS kepada MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Hantar mesej)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Buat panggilan video"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Padam bersih senarai kerap dihubungi?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Anda akan mengosongkan senarai yang kerap dihubungi dalam apl Kenalan dan Telefon serta memaksa apl e-mel untuk mempelajari pilihan alamat anda dari awal."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Memadam bersih senarai kerap dihubungi..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Ada"</string>
+    <string name="status_away" msgid="1838861100379804730">"Tiada"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Sibuk"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Lain-lain"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Direktori"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Direktori kerja"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Semua kenalan"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Kenalan cepat untuk <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Tiada nama)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Kerap dihubungi"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Semua kenalan dengan nombor telefon"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kenalan profil kerja"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Lihat kemas kini"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Peranti"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nama"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Nama panggilan"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nama pertama"</string>
+    <string name="name_family" msgid="7466985689626017037">"Nama keluarga"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Awalan nama"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Nama tengah"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Akhiran nama"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nama fonetik"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nama pertama fonetik"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Nama tengah fonetik"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Nama keluarga fonetik"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mel"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Alamat"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisasi"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Hubungan"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Tarikh khas"</string>
+    <string name="sms" msgid="1756857139634224222">"Mesej teks"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Alamat"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Syarikat"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Tajuk"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Nota"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Tersuai"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Tapak web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Label"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mel rumah"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-mel telefon mudah alih"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mel tempat kerja"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-mel"</string>
+    <string name="email_custom" msgid="5536404237099078802">"E-mel <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-mel"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Jalan"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Bandar"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Negeri"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Poskod"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Negara"</string>
+    <string name="map_home" msgid="1243547733423343982">"Lihat alamat rumah"</string>
+    <string name="map_work" msgid="1360474076921878088">"Lihat alamat tempat kerja"</string>
+    <string name="map_other" msgid="3817820803587012641">"Lihat alamat"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Lihat alamat <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Sembang menggunakan AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Sembang menggunakan Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Sembang menggunakan Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Sembang menggunakan Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Sembang menggunakan QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Sembang menggunakan Bual Google"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Sembang menggunakan ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Sembang menggunakan Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Sembang"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"padam"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Tunjukkan lagi medan nama"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Runtuhkan medan nama"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Tunjukkan lagi medan nama fonetik"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Runtuhkan medan nama fonetik"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Kembangkan"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Runtuhkan"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Dikembangkan"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Diruntuhkan"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Semua kenalan"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Dibintangkan"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Sesuaikan"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kenalan"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Semua kenalan lain"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Semua kenalan"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Alih keluar kumpulan penyegerakan"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Tambah kumpulan segerak"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Lagi kumpulan..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Mengalih keluar \"<xliff:g id="GROUP">%s</xliff:g>\" daripada penyegerakan juga akan turut mengalih keluar sebarang kenalan tanpa kumpulan dari penyegerakan."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Menyimpan pilihan paparan..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Paparan yang disesuaikan"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Simpan kenalan yang diimport ke:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Kad SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kenalan</item>
+      <item quantity="one">1 kenalan</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kenalan • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kenalan • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Fail .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Tiada apa-apa untuk diimport"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Import kenalan daripada vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Batalkan pengimportan <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Batalkan pengeksportan <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Tidak dapat membatalkan import/eksport vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Ralat tidak diketahui."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Tidak dapat membuka \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Tidak boleh memulakan pengeksport: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Tiada kenalan yang boleh dieksport."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Anda telah melumpuhkan kebenaran yang diperlukan."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Ralat berlaku semasa pengeksportan: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Ralat I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Tidak cukup memori. Fail itu mungkin terlalu besar."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format tidak disokong."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Selesai mengeksport <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Selesai mengeksport kenalan."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Selesai mengeksport kenalan, klik pemberitahuan untuk berkongsi kenalan."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Ketik untuk berkongsi kenalan."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Pengeksportan <xliff:g id="FILENAME">%s</xliff:g> dibatalkan."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Mengeksport data kenalan"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Data kenalan sedang dieksport."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Tidak boleh mendapatkan maklumat pangkalan data."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Tiada kenalan yang boleh dieksport."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Komposer vCard tidak bermula dengan betul."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Tidak boleh mengeksport"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Data kenalan tidak dieksport.\nAlasan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Mengimport <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Tidak dapat membaca data vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Selesai mengimport vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Pengimportan <xliff:g id="FILENAME">%s</xliff:g> dibatalkan"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> akan diimport sebentar lagi."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Fail akan diimport sebentar lagi."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Permintaan import vCard telah ditolak. Cuba lagi nanti."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kenalan akan dieksport sebentar lagi."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Permintaan eksport vCard telah ditolak. Cuba lagi nanti."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kenalan"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Membuat cache vCard ke storan sementara tempatan. Pengimportan sebenar akan bermula tidak lama lagi."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Tidak dapat mengimport vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Knln melalui NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Mengcache..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Mengimport <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Eksport ke fail .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Isih mengikut"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nama fonetik"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Sentiasa tunjukkan"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Sembunyikan jika kosong"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nama pertama"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Nama keluarga"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format nama"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Nama pertama dahulu"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Nama keluarga dahulu"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Akaun"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Akaun lalai untuk kenalan baharu"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Maklumat saya"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Sediakan profil anda"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Perihal Kenalan"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Kongsi kenalan kegemaran"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Kongsi semua kenalan"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Gagal berkongsi kenalan."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Eksport kenalan"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Import kenalan daripada"</string>
+    <string name="share_error" msgid="948429331673358107">"Kenalan ini tidak boleh dikongsi."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Tiada kenalan untuk dikongsi."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kenalan untuk dipaparkan"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kenalan untuk dipaparkan"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Sesuaikan paparan"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Simpan"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Cari kenalan"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Kegemaran"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Import"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksport"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Nombor yang disekat"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"melalui <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> melalui <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"berhenti mencari"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Kosongkan carian"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Akaun"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Sentiasa gunakan ini utk panggilan"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Panggilan dengan nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Taip nota untuk dihantar dengan panggilan…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"HANTAR &amp; PANGGIL"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versi binaan"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Lesen sumber terbuka"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Butiran lesen untuk perisian sumber terbuka"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Dasar privasi"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Syarat perkhidmatan"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Lesen sumber terbuka"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Gagal membuka url."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> disemak"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> tidak disemak"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Buat panggilan video"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Padam"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Elipsis"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> saat"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> saat"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> jam <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> saat"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Pintasan ini telah dilumpuhkan"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kenalan telah dialih keluar"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Import"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Pilih kenalan"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Tiada kenalan pada kad SIM anda"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kenalan sudah wujud dalam senarai anda"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kenalan SIM diimport</item>
+      <item quantity="one">1 kenalan SIM diimport</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Gagal mengimport kenalan SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Import daripada SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Batal"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Auto segerak dimatikan. Ketik untuk menghidupkannya."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ketepikan"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Penyegerakan akaun dimatikan. Ketik untuk menghidupkannya."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Hidupkan autosegerak?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Perubahan yang anda buat kepada semua apl dan akaun, bukan hanya Kenalan Google, akan dikemas kini antara web dengan peranti anda."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Hidupkan"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Tiada sambungan"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Tunjukkan lagi"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Selesai mengimport kad SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Pengimportan gagal"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Tidak dapat mengimport kenalan daripada kad SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Mengimport SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
deleted file mode 100644
index 5c105bf..0000000
--- a/res/values-my-rMM/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"အဆက်အသွယ်များ"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"အဆက်အသွယ်များ"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"အဆက်အသွယ်ကို ကြည့်ပါ"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"အဆက်အသွယ်ကို တည်းဖြတ်ပါ"</string>
-    <string name="contactsList" msgid="8661624236494819731">"အဆက်အသွယ်များ"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"အဆက်အသွယ်"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"တိုက်ရိုက်ခေါ်ဆိုခြင်း"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"တိုက်ရိုက်စာပို့ခြင်း"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"လိပ်စာအတိုကောက် တစ်ခုရွေးပါ"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"ခေါ်ဆိုရန် နံပါတ်တစ်ခုရွေးပါ"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"စာတိုပို့ရန် နံပါတ်တစ်ခုရွေးပါ"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"လိပ်စာသို့ထည့်ပါ"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"လိပ်စာတစ်ခုရွေးပါ"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"အဆက်အသွယ် အသစ် ဖန်တီးရန်"</string>
-    <string name="starredList" msgid="4817256136413959463">"စတားပေးထားသော အရာ"</string>
-    <string name="frequentList" msgid="7154768136473953056">"မကြာခဏ"</string>
-    <string name="strequentList" msgid="5640192862059373511">"အနှစ်သက်ဆုံးများ"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"အဆက်အသွယ် အသေးစိတ်"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"အဆက်အသွယ်အား ပြင်ရန်"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"အဆက်အသွယ်တစ်ခု ပြုလုပ်ရန်"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"အုပ်စုအားပြင်ရန်"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"အုပ်စုသစ်ပြုလုပ်ရန်"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"အကြောင်း"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"အဆင့်မြှင့်မှု"</string>
-    <string name="searchHint" msgid="8482945356247760701">"အဆက်အသွယ်များရှာပါ"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"အဆက်အသွယ်အား ကြည့်ရန်"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"အနှစ်သက်ဆုံးများထဲ ထည့်ပါ"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"အနှစ်သက်ဆုံးများမှ ထုတ်ပါ"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"အကြိုက်ဆုံးများထဲမှ ထုတ်လိုက်ပါပြီ"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"အကြိုက်ဆုံးများ ထဲကို ထည့်ပြီး"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"ပြင်ဆင်ရန်"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"ဖျက်ရန်"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ဓာတ်ပုံ ပြောင်းလဲ"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ပင်မစာမျက်နှာတွင် တင်ထားပါ"</string>
-    <string name="menu_call" msgid="3992595586042260618">"အဆက်အသွယ်ကို ခေါ်ပါ"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"အဆက်အသွယ်ကို စာတိုပို့ရန်"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"လင့်ခ် ဖြုတ်ရန်"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"ပြင်ဆင်ရန်"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"ဖျက်ရန်"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"လိပ်စာထပ်ထည့်ပါ"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"အုပ်စု ထပ်ထည့်ပါ"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"ဤအဆက်အသွယ်အား ချိတ်ဆက်ထားမှုကို ဖျက်လျက် အဆက်အသွယ် အများအပြားအဖြစ် ခွဲပစ်ရမလား။"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ချိတ်ဆက်မှုဖြုတ်ပါ"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"သင် ပြုလုပ်ခဲ့သည့် အပြောင်းအလဲများကို သိမ်းဆည်းလျက် ဤအဆက်အသွယ်အား ချိတ်ဆက်ထားမှုကို ဖျက်လိုက်ကာ အဆက်အသွယ် အများအပြားအဖြစ် ခွဲပစ်ရမလား။"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"သိမ်းဆည်းလျက် ချိတ်ဆက်မှုဖြုတ်လိုက်ပါ"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"သင် ပြုလုပ်ခဲ့သည့် အပြောင်းအလဲများကို သိမ်းဆည်းလျက် ရွေးထားသည့် အဆက်အသွယ်များနှင့် ချိတ်ဆက်ပေးလိုပါသလား။"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"သိမ်းထားလျက် ချိတ်ဆက်ပေးပါ"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"လင့်ခ်"</string>
-    <string name="menu_save" msgid="1727844363591825909">"သိမ်းဆည်းရန်"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"အဆက်အသွယ်များကို ကွင်းဆက်ချိတ်ပါ"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> နှင့်ကွင်းဆက်ချိတ်လိုသည့် အဆက်အသွယ်ကိုရွေးပါ −"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"အဆက်အသွယ်များအားလုံးအားပြပါ"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"အကြုံပြုလိုသော အဆက်အသွယ်များ"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"လိပ်စာများအားလုံး"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ကွင်းဆက်ထားသည့် အဆက်အသွယ်များ"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other"> အဆက်အသွယ် ဖျက်ခဲ့သည်</item>
-      <item quantity="one"> အဆက်အသွယ် ဖျက်ခဲ့သည်</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ဖုန်းမြည်သံသတ်မှတ်ရန်"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ဖုန်းအားလုံးအသံစာပို့စနစ်သို့"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"ဖတ်ရန် သက်သက် အကောင့်များကို ဖျက်မရနိုင်သော်လည်း ဝှက်ထားနိုင်ပါသည်။"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"ဝှက်ထားပါ"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"ဖျက်မည့် အဆက်အသွယ်ထဲတွင် အကောင့်အများအပြားမှ အချက်အလက်များ ပါဝင်ပါသည်။ ဖတ်ရန်သက်သက် အကောင့်များမှ အချက်အလက်များကို ဝှက်ထားမှာဖြစ်ပြီး ဖျက်ပစ်မည် မဟုတ်ပါ"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"လင့်ခ်တစ်ခုကို ဖန်တီးရန် ရွေးထားသည့် အဆက်အသွယ် အနည်းဆုံး နှစ်ခု လိုအပ်သည်။"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"ရွေးထားသည့် အဆက်အသွယ်များကို ချိတ်ဆက်ပေးရမလား။"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"လင့်"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"ဤအဆက်အသွယ်ကို ဖျက်မလား။"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ရွေးထားသော အဆက်အသွယ်များကို ဖျက်မလား။"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ဖတ်ရန် သက်သက် အကောင့်များကို ဖျက်မရနိုင်သော်လည်း ဝှက်ထားနိုင်ပါသည်။"</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ဖျက်ခံရမည့် အဆက်အသွယ်များထဲတွင် အကောင့် အများအပြားဆိုင်ရာ အသေးစိတ်များ ပါရှိနေသည်။ ဖတ်ရန် သက်သက် အကောင့်များထံမှ အသေးစိတ်များကို ဝှက်ထားမည်၊ ဖျက်ခံရမည် မဟုတ်ပါ။"</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ဤအဆက်အသွယ်ကို ဖျက်လိုက်လျှင် အကောင့် အများအပြားထဲက အသေးစိတ်များကိုပါ ဖျက်ပစ်မည်။"</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"ဤအဆက်အသွယ်ကို ဖျက်မလား။"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ဖျက်ပါ"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"အပြောင်းအလဲများ စွန့်ပစ်ရန်"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"လိပ်စာ မရှိပါ"</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"အဆက်အသွယ်ကို ပင်မ မျက်နှာပြင်သို့ ထည့်လိုက်ပြီ။"</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ကို ပင်မ မျက်နှာပြင်သို့ ထည့်ပေးလိုက်ပြီ။"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"အဆက်အသွယ်သစ်တစ်ခု ပြုလုပ်ရန်"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"အဆက်အသွယ်သစ်တစ်ခု ပြုလုပ်ရန်"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"အဖွဲ့အစည်း"</item>
-    <item msgid="7196592230748086755">"မှတ်စု"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"တက်ဘလက်ထဲတွင် ပုံများ မရှိပါ"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ဖုန်းထဲတွင် ပုံများ မရှိပါ"</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"လိပ်စာရဲ့ဓာတ်ပုံ"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"စိတ်ကြိုက် လေဘယ်လ်နာမည်"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ဖုန်းများအား အသံစာပို့စနစ်သို့ ပို့လိုက်ပါ"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ပုံအားဖယ်ရှားပါ"</string>
-    <string name="noContacts" msgid="4955659076981974652">"အဆက်အသွယ်များမရှိပါ"</string>
-    <string name="noGroups" msgid="8614664663561385253">"အုပ်စုများမရှိပါ"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"အုပ်စုများ ပြုလုပ်ရန် အကောင့်တစ်ခု လိုအပ်ပါသည်"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ဒီအုပ်စုထဲမှာ လူတစ်ယောက်မှမရှိပါ"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"တချို့ကိုထည့်ရန်, အုပ်စုကိုပြင်ပါ"</string>
-    <string name="savingContact" msgid="4075751076741924939">"အဆက်အသွယ်အား သိမ်းဆည်းနေစဉ်…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"အဆက်အသွယ်အား သိမ်းဆည်းပြီးပါပြီ"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"အဆက်အသွယ်များကို ကွင်းဆက်ဖြုတ်လိုက်ပြီ"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"လိပ်စာပြောင်းလဲမှုအား သိမ်းဆည်းလို့မရပါ"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"အဆက်အသွယ်ကို လင့်ခ်ဖြုတ်၍မရပါ"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"အဆက်အသွယ်ကို ကွင်းဆက်ချိတ်၍မရပါ။"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"အဆက်အသွယ် သိမ်းဆည်းရာတွင် ပြဿနာရှိနေသည်။"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"အဆက်အသွယ်၏ ဓာတ်ပုံပြောင်းလဲမှု သိမ်းဆည်းနိုင်ခြင်းမရှိပါ။"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"အုပ်စုသိမ်းဆည်ပြီးပါပြီ"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"အုပ်စုအတွက် ထပ်ပြင်မှုများဟာ သိမ်းဆည်းလို့မရပါ"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">ဖုန်းနံပါတ်များပါသောအဆက်အသွယ်<xliff:g id="COUNT">%d</xliff:g>ခု</item>
-      <item quantity="one">ဖုန်းနံပါတ်ပါသောအဆက်အသွယ်1ခု</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ဖုန်းနံပါတ်ပါသော လိပ်စာများမရှိပါ"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ခု တွေ့ရှိသည်</item>
-      <item quantity="one">1ခု တွေ့ရှိသည်</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"အဆက်အသွယ်များမရှိ"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ခုတွေ့ရှိသည်</item>
-      <item quantity="one">1ခု တွေ့ရှိသည်</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"အားလုံး"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"အကြိုက်ဆုံး"</string>
-    <string name="callBack" msgid="5498224409038809224">"ပြန်ခေါ်ပါ"</string>
-    <string name="callAgain" msgid="3197312117049874778">"ပြန်လည်ခေါ်ဆိုရန်"</string>
-    <string name="returnCall" msgid="8171961914203617813">"ဖုန်းပြန်ခေါ်ရန်"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ကို လိပ်စာထဲ ထည့်မလား?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"လိပ်စာမှ ဓာတ်ပုံ"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"အပေါင်း"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> ၏ <xliff:g id="TOTAL_NUMBER">%s</xliff:g> လိပ်စာ"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"အဆက်အသွယ်များ၏နာမည်များ"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ဤလုပ်ဆောင်ချက်ကို ပြုလုပ်ပေးမည့် အပလီကေးရှင်း မရှိပါ။"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ယခင် မျက်နှာပြင်သို့ ပြန်ရန် ကလစ်ပါ"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ဖုန်း နံပါတ် ထည့်ရန်"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"အီးမေးလ် ထည့်ရန်"</string>
-    <string name="missing_app" msgid="1466111003546611387">"ဤလုပ်ဆောင်ချက်ကို ပြုလုပ်မည့် အပလီကေးရှင်း မရှိပါ။"</string>
-    <string name="menu_share" msgid="943789700636542260">"မျှဝေခြင်း"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"အဆက်အသွယ်များ ထဲသို့ ထည့်ရန်"</string>
-    <string name="share_via" msgid="563121028023030093">"မှ အဆယ်အသွယ်အား မျှဝေခြင်း"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"အကောင့်အောက်မှာ အုပ်စုပြုလုပ်ပါ"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"အသံဖြင့် ချက်တင်း"</string>
-    <string name="video_chat" msgid="1872255818640336072">"ဗီဒီယိုဖြင့်စကားပြောခြင်း"</string>
-    <string name="connections" msgid="8098440723172028350">"အဆက်အသွယ်များ"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"လူမှုဆက်သွယ်မှုထည့်ရန်"</string>
-    <string name="recent" msgid="2659189233141493004">"လတ်တလော"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"လတ်တလောအဆင့်မြင့်ခြင်းများ"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> လိပ်စာ"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> အကောင့်"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ဤအပ်ပလီကေးရှင်းမှ ပြင်ခွင့်မရှိပါ"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"ဒီစက်ပေါ်မှာ ပြင်လို့ မရနိုင်ပါ"</string>
-    <string name="take_photo" msgid="7496128293167402354">"ဓာတ်ပုံရိုက်ရန်"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"ဓာတ်ပုံအသစ်ရိုက်ပါ"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ပုံရွေးရန်"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"ပုံသစ်ရွေးရန်"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"အဆက်အသွယ်စာရင်းအား ပြုပြင်နေစဉ်"</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"ရှာဖွေနေသည်…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"ရွေးချယ်ထားသည်ကိုပြပါ"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"အားလုံးကို ပြသရန်"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"အားလုံးရွေးရန်"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"အားလုံးရွေးထားမှု ဖျက်ပါ"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"အသစ်ထည့်ရန်"</string>
-    <string name="add_organization" msgid="7311893231158291197">"အဖွဲ့အစည်းထည့်ရန်"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ရက်စွဲ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"အုပ်စုနာမည်"</string>
-    <string name="change_photo" msgid="8530597935483526383">"ပြောင်းရန်"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"အဓိက ဓာတ်ပုံ"</string>
-    <string name="description_star" msgid="2605854427360036550">"အနှစ်သက်ဆုံး"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"အဆက်အသွယ်အားပြင်ရန်"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"လက်ရှိအဆက်အသွယ်ကို ရွေးချယ်ထားသည့်အဆက်အသွယ်နှင့် ကွင်းဆက်ချိတ်မလား။"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ရွေးထားသော လိပ်စာအား ပြင်ဆင်ခြင်းသို့ပြောင်းမလား? သင် အခုထိ ရိုက်ထားသော စာများအားလုံး ကူးယူပြီးဖြစ်ပါလိမ့်မည်"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"ကျွန်ုပ်၏လိပ်စာများထဲ ထည့်ပါ"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"ကျွန်ုပ်၏လိပ်စာများထဲ ထည့်ပါ"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"အကန့် <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"မိမိစိတ်ကြိုက်"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"အပြင်အဆင်များ"</string>
-    <string name="menu_settings" msgid="377929915873428211">"အပြင်အဆင်များ"</string>
-    <string name="menu_help" msgid="1680178646764069976">"အကူအညီ &amp;amp၊ တုံ့ပြန်ချက်"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ပြသမှုအတွက်ရွေးစရာများ"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ဖုန်းနံပါတ်"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"လိပ်စာများထဲသို့ ထည့်ပါ"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"လိပ်စာသို့ထည့်ပါ"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"ပိတ်ရန်"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"နှစ်ကို ထည့်ရန်"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"အဆက်အသွယ်"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"ဖွင့်နေစဉ်…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"အဆက်အသွယ်သစ်တစ်ခု ပြုလုပ်ပါ"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"အကောင့် ထည့်ရန်"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"အဆက်အသွယ်များ တင်သွင်းပါ"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"အုပ်စုသစ်ပြုလုပ်ရန်"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"အုပ်စုအသစ်ပြုလုပ်ရန်"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other">အုပ်စု <xliff:g id="COUNT">%0$d</xliff:g>စု</item>
-      <item quantity="one">အုပ်စု 1စု</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" အုပ်စုကို ဖျက်ပစ်ပါမလား? (လိပ်စာများ ကိုယ်တိုင်တော့ ပျက်သွားမည်မဟုတ်ပါ)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> မှ လူ<xliff:g id="COUNT_2">%1$d</xliff:g> ယောက်</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> မှ လူ<xliff:g id="COUNT_0">%1$d</xliff:g> ယောက်</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other">လူ <xliff:g id="COUNT_1">%1$d</xliff:g> ယောက်</item>
-      <item quantity="one">လူ <xliff:g id="COUNT_0">%1$d</xliff:g> ယောက်</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"အခြားတစ်ခုနှင့် ကွင်းဆက်မချိတ်မီ အဆက်အသွယ်အမည်ကိုရိုက်ပါ။"</string>
-    <string name="copy_text" msgid="3257145021583508761">"ခဏကူးယူထားပါ"</string>
-    <string name="set_default" msgid="4417505153468300351">"ပုံသေအဖြစ် သတ်မှတ်ခြင်း"</string>
-    <string name="clear_default" msgid="7193185801596678067">"မူရင်းများကို ရှင်းလင်းခြင်း"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"စာသားကူးယူပြီး"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ပြင်မှုများအား စွန့်ပစ်မလား"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"စွန့်ပစ်ပါ"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"မိမိကိုယ်ရေးအကောင့်အား ပြုလုပ်ရန်"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"လူနာမည်ရိုက်ထည့်ပါ"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"အုပ်စု၏နာမည်"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"မိမိ၏ဖုန်းမှပရိုဖိုင်လ်"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"ကျွန်ုပ်၏ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ကိုယ်ရေးအကောင့်"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"အဆက်အသွယ်အားလုံးအားပြနေစဉ်"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"အဆက်အသွယ်များ၏ အလုပ်မှာ Google အကောင့်နှင့် ပိုအဆင်ပြေသည်။\n\n• မည်သည့် ဝက်ဘ် ဘရောင်ဇာဖြင့် မဆို ချဉ်းကပ်ပါ။\n• သင်၏ အဆက်အသွယ်များကို စိတ်ချရစွာ ဘက်အာပ် လုပ်ထားပါ။"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"အွန်လိုင်း ဝန်ဆောင်မှုဖြင့် ထပ်တူကျအောင် ပြုလုပ်ထားခြင်းအားဖြင့် ဖုန်းပျောက်သွားသည့်တိုင်အောင် အဆက်အသွယ်များအား လုံခြုံစွာ သိမ်းထားနိုင်ပါသည်"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"အကောင့် ထပ်ဖြည့်ပါ"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"သင့် အဆက်အသွယ်အသစ်ကို အရံသိမ်းဆည်းထားခြင်း မရှိပါ။ အဆယ်အသွယ်များကို အွန်လိုင်းပေါ်မှာ အရံသိမ်းဆည်းပေးရန် အကောင့်သစ် ထပ်ထည့်ချင်ပါသလား"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"အဆက်အသွယ် အသစ်ကို <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> တွင်သိမ်းလိုက်ပါမည်။"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"အဆက်အသွယ် အသစ်များအတွက် မူရင်းအကောင့်ကို ရွေးပါ။"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"အဆက်အသွယ်သစ် ထည့်မည်"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"အဆက်အသွယ်အားပြင်ရန်"</string>
-    <string name="keep_local" msgid="1258761699192993322">"ဖုန်းထဲတွင်သာသိမ်းပါ"</string>
-    <string name="add_account" msgid="8201790677994503186">"အကောင့်ထပ်ထည့်ရန်"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"အကောင့်အသစ်ထည့်ပါ"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"ဒေ့ဘာဘေ့စ်ဖိုင်များကို အပြင်သို့ထုတ်ပါ"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"အဆက်အသွယ် အသစ်ကို ထည့်ရန်"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ပိုပြီး ကြည့်ရန်"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"လျှော့ပြီး ကြည့်ရန်"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"အားလုံးကို ကြည့်ရန်"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"မကြာမီတုန်းက"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"အကြောင်း"</string>
-    <string name="send_message" msgid="8938418965550543196">"စာတို ပို့ရန်"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ကိုယ်ပိုင် ကော်ပီကို ဖန်တီးနေ..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"မနေ့က"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"နက်ဖြန်"</string>
-    <string name="today" msgid="8041090779381781781">"ယနေ့"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"ယနေ့ <xliff:g id="TIME_INTERVAL">%s</xliff:g> တွင်"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"နက်ဖြန်<xliff:g id="TIME_INTERVAL">%s</xliff:g>တွင်"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(ခေါင်းစဉ်မဲ့ ဖြစ်ရပ်)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"လက်ခံရန်"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"အဖွဲ့အစည်း"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"နာမည်ပြောင်"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"မှတ်ချက်"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"ဝက်ဘ်ဆိုက်"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ဖြစ်ရပ်"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"တော်စပ်ပုံ"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"အကောင့်"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"အမည်"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"အီးမေးလ်"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ဖုန်း"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ဓာတ်ပုံ"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"အဆက်အသွယ် အယ်ဒီတာအား ချဲ့ရန် ကလစ်နှိပ်ပါ။"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"အဆက်အသွယ် အယ်ဒီတာအား ခေါက်ချရန် ကလစ်နှိပ်ပါ။"</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"တည်နေရာများသို့ လမ်းညွှန်ချက်"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"မကြာမီက စာတို။ <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. တုံ့ပြန်ရန် ကလစ်ပါ"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"အဝင်"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"အထွက်"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"လွတ်သွား"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"မကြာမီက ခေါ်ဆိုမှု။ <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ပြန်ခေါ်ရန် ကလစ်ပါ"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"သင်: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"အီးမေးအကွက် သို့မဟုတ် ဖုန်းနံပါတ် အကွက်တွင် တစ်ခြားသူ၏ Hangouts  အမှတ်သညာအား သင်ရိုက်ထည့်သည့်အခါ Hangouts ပိုမိုလွယ်ကူကောင်းမွန်စွာ အလုပ်လုပ်သည်။"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"နောက်ထပ် အကွက်များ"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ဓာတ်ပုံ ပြောင်းလဲ"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"တည်းဖြတ်သူကို ဖွင့်ခြင်းမအောင်မြင်ပါ။"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"သိမ်းဆည်းရန်နေရာ"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"လောလောဆယ်မှာ <xliff:g id="ACCOUNT_NAME">%s</xliff:g>သို့ သိမ်းဆည်းနေသည်။ အခြားအကောင့်ကို ရွေးရန် နှစ်ကြိမ် တို့ပါ။"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">ကွင်းဆက်ချိတ်ထားသည့်အကောင့် (<xliff:g id="COUNT">%d</xliff:g>) ခု</item>
-      <item quantity="one"> ကွင်းဆက်ချိတ်ထားသည့် အဆက်အသွယ်</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"ကွင်းဆက်ချိတ်ထားသည့် အကောင့် <xliff:g id="COUNT">%d</xliff:g> ခု"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"အဆက်အသွယ်များ ချိတ်ဆက်ပါ"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ပယ်ဖျက်ပါ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other">ဖြစ်နိုင်သည့် မိတ္တုပွား <xliff:g id="COUNT">%d</xliff:g> ခု</item>
-      <item quantity="one">ဖြစ်နိုင်သည့် မိတ္တုပွား ၁ ခု</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">ချိတ်ဆက်ထားသည့် အဆက်အသွယ် <xliff:g id="COUNT">%d</xliff:g> ခု</item>
-      <item quantity="one">ချိတ်ဆက်ထားသည့် အဆွက်အသွယ် ၁ ခု</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ဤအဆက်အသွယ်"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ဖြစ်နိုင်သည့် မိတ္တုပွားများ"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ယင်းအဆက်အသွယ်များ လူတစ်ဦးတည်း ဖြစ်နိုင်ပါသည်။ ၎င်းတို့ကို တစ်ခုတည်းသော အဆက်အသွယ် အဖြစ် ချိတ်ဆက်ပေးနိုင်ပါသည်။"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"ကွင်းဆက် အဆက်အသွယ်များ"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"သင့်အကောင့်များမှ"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ဓာတ်ပုံရိုက်ရန်"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"ဓာတ်ပုံများအားလုံး"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ဓာတ်ပုံ ရွေးပါ"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> မှ"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> ကိုဖျက်ပါ"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> ကိုဖျက်ပါ"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>ထံမှ ဓာတ်ပုံကို မစစ်ကြည့်ရသေးပါ"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>ထံမှ ဓာတ်ပုံကို စစ်ကြည့်ပြီးပြီ"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"အမည်မသိအကောင့်မှ ဓာတ်ပုံဓာတ်ပုံ မစစ်ဆေးရသေးပါ"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"အမည်မသိအကောင့်မှ ဓာတ်ပုံ စစ်ဆေးပြီးပါပြီ"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"ဆက်သွယ်ရန် စာရင်းကို ဘာသာစကားဆိုင်ရာ အပြောင်းအလဲအား ထင်ဟပ်ပေးရန် အပ်ဒိတ် လုပ်ပေးနေပါသည်။ \n\nခဏစောင့်ပါ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"နံပါတ် ထည့်သွင်းပါ"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"နံပါတ်ကို ပိတ်ဆို့ရန်"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"နံပါတ်ပေါင်းထည့်ပါ သို့မဟုတ် အဆက်အသွယ်များ ရှာဖွေပါ"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> အား ပိတ်ဆို့မှု ဖယ်ရှားလိုက်ရမလား။"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ပိတ်ဆို့ခြင်းမှ ဖယ်ရှားပါ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>ကို ပိတ်ဆို့မလား။"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ပိတ်ဆို့ပါ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ကိုပိတ်ဆို့လိုက်ပါပြီ"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ကိုပိတ်ဆို့ခြင်းမှ ဖယ်ရှားလိုက်ပါပြီ"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> သည်တရားမဝင်ပါ။"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ခေါ်ဆိုမှုပိတ်ဆို့ခြင်း ယာယီပိတ်ထားသည်"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"သင်သည် လွန်ခဲ့သည့် ၄၈ နာရီအတွင်း ဤဖုန်းဖြင့် အရေးပေါ်ဌာနကိုဖုန်း ခေါ်ဆိုခဲ့သောကြောင့် ခေါ်ဆိုမှုပိတ်ဆို့ခြင်းကို ဖြုတ်ထားသည်။ ၄၈ နာရီကျော်လွန်သည်နှင့် ၎င်းကိုအလိုအလျောက် ပြန်ဖွင့်ပေးပါမည်။"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"တင်သွင်းရန်"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"နံပါတ်များကို ကြည့်ရန်"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"နံပါတ် ထည့်သွင်းပါ"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ခေါ်ဆိုမှုပိတ်ဆို့ခြင်းကို ၄၈ နာရီပိတ်ထားသည်"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"အရေးပေါ်ခေါ်ဆိုမှု ပြုလုပ်ခဲ့သည့်အတွက် ပိတ်ထားပါသည်။"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"နောက်ပြန်လုပ်ပါ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> အားပိတ်ဆို့ထားပြီးပါပြီ။"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"နံပါတ်ကို ဖွင့်မည်"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ရဲ့ အဆက်အသွယ် အသေးစိတ်"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"တင်သွင်းမှု မအောင်မြင်ပါ"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"နံပါတ်များ သွင်းရန်"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ဖွင့်ထားရန်"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
new file mode 100644
index 0000000..3d612cd
--- /dev/null
+++ b/res/values-my/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"အဆက်အသွယ်များ"</string>
+    <string name="contactsList" msgid="8661624236494819731">"အဆက်အသွယ်များ"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"အဆက်အသွယ် ထည့်ရန်"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"အဆက်အသွယ်"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"တိုက်ရိုက်ခေါ်ဆိုခြင်း"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"တိုက်ရိုက်စာပို့ခြင်း"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"အဆက်အသွယ်ကို ရွေးချယ်ပါ"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"လိပ်စာသို့ထည့်ပါ"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"လိပ်စာတစ်ခုရွေးပါ"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"ရွေးရန်"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"အဆက်အသွယ် အသစ် ဖန်တီးရန်"</string>
+    <string name="searchHint" msgid="8482945356247760701">"အဆက်အသွယ်များရှာပါ"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"အနှစ်သက်ဆုံးများထဲ ထည့်ပါ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"အနှစ်သက်ဆုံးများမှ ထုတ်ပါ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"အကြိုက်ဆုံးများထဲမှ ထုတ်လိုက်ပါပြီ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"အကြိုက်ဆုံးများ ထဲကို ထည့်ပြီး"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ပြင်ဆင်ရန်"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ဖျက်ရန်"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ဓာတ်ပုံပြောင်းရန်"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"ဖြတ်လမ်းလင့်ခ် ပြုလုပ်ရန်"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"လင့်ခ် ဖြုတ်ရန်"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"အဆက်အသွယ်များ ဖယ်ရှားရန်"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"အညွှန်းအမည်ပြောင်းပါ"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"အညွှန်းကိုဖျက်ပါ"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"အဆက်အသွယ်ထည့်ပါ"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"အဆက်အသွယ်များရွေးရန်"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"အဆက်အသွယ်များထည့်ရန်"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"အညွှန်းမှဖယ်ရှားပါ"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"အညွှန်း ဖန်တီးရန်"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"ဤအဆက်အသွယ်အား ချိတ်ဆက်ထားမှုကို ဖျက်လျက် အဆက်အသွယ် အများအပြားအဖြစ် ခွဲပစ်ရမလား။"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ချိတ်ဆက်မှုဖြုတ်ပါ"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"သင် ပြုလုပ်ခဲ့သည့် အပြောင်းအလဲများကို သိမ်းဆည်းလျက် ဤအဆက်အသွယ်အား ချိတ်ဆက်ထားမှုကို ဖျက်လိုက်ကာ အဆက်အသွယ် အများအပြားအဖြစ် ခွဲပစ်ရမလား။"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"သိမ်းဆည်းလျက် ချိတ်ဆက်မှုဖြုတ်လိုက်ပါ"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"သင် ပြုလုပ်ခဲ့သည့် အပြောင်းအလဲများကို သိမ်းဆည်းလျက် ရွေးထားသည့် အဆက်အသွယ်များနှင့် ချိတ်ဆက်ပေးလိုပါသလား။"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"သိမ်းထားလျက် ချိတ်ဆက်ပေးပါ"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"လင့်ခ်ချိတ်နေသည်"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"လင့်ခ်ဖြုတ်နေသည်"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"လင့်ခ်"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"လင့်ခ်အဆက်အသွယ်များ ကြည့်ရန်"</string>
+    <string name="menu_save" msgid="1727844363591825909">"သိမ်းဆည်းရန်"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"အဆက်အသွယ်များ ချိတ်ဆက်ရန်"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> နှင့်ချိတ်လိုသည့် အဆက်အသွယ်ကို ရွေးပါ −"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"အကြုံပြုလိုသော အဆက်အသွယ်များ"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"လိပ်စာများအားလုံး"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ကို လင့်ခ်ချိတ်လိုက်ပါပြီ"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ကွင်းဆက်ထားသည့် အဆက်အသွယ်များ"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> ကို ဖျက်ပြီး"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> နှင့် <xliff:g id="NAME_1">%2$s</xliff:g> တို့ကို ဖျက်ပြီး"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… ဖျက်လိုက်ပါပြီ"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other"> အဆက်အသွယ်ကို ဖျက်လိုက်သည်</item>
+      <item quantity="one"> အဆက်အသွယ်ကို ဖျက်လိုက်သည်</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other">အဆက်အသွယ် <xliff:g id="COUNT_1">%d</xliff:g> ခု</item>
+      <item quantity="one">အဆက်အသွယ် <xliff:g id="COUNT_0">%d</xliff:g> ခု</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other">အဆက်အသွယ် <xliff:g id="COUNT_2">%1$d</xliff:g> ခု · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one">အဆက်အသွယ် <xliff:g id="COUNT_0">%1$d</xliff:g> ခု · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google မှ"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> မှ"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ဖုန်းမြည်သံသတ်မှတ်ရန်"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"အသံမေးလ်သို့ ပို့ရန်"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"အသံမေးလ်သို့ မပို့ရန်"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"ဤအဆက်အသွယ်မှာ ဖတ်ရန်သီးသန့်ဖြစ်ပါသည်။ ၎င်းကို မဖျက်နိုင်သော်လည်း ဖျောက်ထားနိုင်ပါသည်။"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"အဆက်အသွယ် ဖျောက်ထားရန်"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"ဤအဆက်အသွယ်ရှိ ဖတ်ရန်သီးသန့်အကောင့်များကို ဖျောက်ထားမည်ဖြစ်ပြီး မဖျက်ပစ်ပါ။"</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"ဤအဆက်အသွယ်ကို ဖျက်မလား။"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ရွေးထားသော အဆက်အသွယ်များကို ဖျက်မလား။"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ဖတ်ရန် သက်သက် အကောင့်များကို ဖျက်မရနိုင်သော်လည်း ဝှက်ထားနိုင်ပါသည်။"</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ဖျက်ခံရမည့် အဆက်အသွယ်များထဲတွင် အကောင့် အများအပြားဆိုင်ရာ အသေးစိတ်များ ပါရှိနေသည်။ ဖတ်ရန် သက်သက် အကောင့်များထံမှ အသေးစိတ်များကို ဝှက်ထားမည်၊ ဖျက်ခံရမည် မဟုတ်ပါ။"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ဤအဆက်အသွယ်ကို ဖျက်လိုက်လျှင် အကောင့် အများအပြားထဲရှိ ဆက်နွယ်အချက်အလက်များကိုပါ ဖျက်ပါမည်။"</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"ဤအဆက်အသွယ်ကို ဖျက်မလား။"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ဖျက်ရန်"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"လိပ်စာ မရှိပါ"</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"အဆက်အသွယ်ကို ပင်မ မျက်နှာပြင်သို့ ထည့်လိုက်ပြီ။"</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ကို ပင်မ မျက်နှာပြင်သို့ ထည့်ပေးလိုက်ပြီ။"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"ဤကိရိယာတွင် ပုံများမရှိပါ။"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"လိပ်စာရဲ့ဓာတ်ပုံ"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"စိတ်ကြိုက် အညွှန်းအမည်"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ပုံကို ဖယ်ရှားပါ"</string>
+    <string name="noContacts" msgid="2228592924476426108">"သင့်အဆက်အသွယ်များစာရင်းတွင် မည်သူမျှမရှိပါ"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ဤအညွှန်းဖြင့်အဆက်အသွယ်များ မရှိပါ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ဤအကောင့်တွင် အဆက်အသွယ်များ မရှိပါ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"သင့်အဆက်အသွယ်များစာရင်းတွင် မည်သူမျှမရှိပါ"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> ကို သိမ်းဆည်းလိုက်ပါပြီ"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"အဆက်အသွယ်အား သိမ်းဆည်းပြီးပါပြီ"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"အဆက်အသွယ်များကို လင့်ခ်ဖြုတ်လိုက်ပြီ"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"အဆက်အသွယ်ပြောင်းလဲမှုများကို သိမ်းဆည်း၍မရပါ"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"အဆက်အသွယ်ကို လင့်ခ်ဖြုတ်၍မရပါ"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"အဆက်အသွယ်ကို လင့်ခ်ချိတ်ဆက်၍မရပါ"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"အဆက်အသွယ်သိမ်းဆည်းရာတွင် အမှားအယွင်းရှိပါသည်"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"အဆက်အသွယ်ဓာတ်ပုံပြောင်းလဲမှုများကို သိမ်းဆည်း၍မရပါ"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"အညွှန်းဖော်ပြ၍မရပါ"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"အညွှန်းဖျက်ပြီးပါပြီ"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"အညွှန်းဖန်တီးပြီးပါပြီ"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"အညွှန်းဖန်တီး၍ မရပါ"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"အညွှန်းကို အပ်ဒိတ်လုပ်ပြီးပါပြီ"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"အညွှန်းမှ ဖယ်ရှားပြီးပါပြီ"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"အညွှန်းသို့ ထည့်ထားပါသည်"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"အညွှန်းပြောင်းလဲမှုများကို သိမ်းဆည်း၍မရပါ"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ထိုအညွှန်းမှာ ရှိပြီးသားဖြစ်ပါသည်"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"အချို့အဆက်အသွယ်များတွင် အီးမေးလ်မရှိကြပါ။"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"အချို့အဆက်အသွယ်များတွင် ဖုန်းနံပါတ်မရှိကြပါ။"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"အီးမေးလ် ပို့ရန်"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"မက်ဆေ့ဂျ် ပို့ရန်"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"အဆက်အသွယ်များ ရွေးရန်"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"ပို့ရန်"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"အဆက်အသွယ်များမရှိ"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ကို လိပ်စာထဲ ထည့်မလား?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"အဆက်အသွယ်များ၏နာမည်များ"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ယခင် မျက်နှာပြင်သို့ ပြန်ရန် ကလစ်ပါ"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ဖုန်းနံပါတ် ထည့်ရန်"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"အီးမေးလ် ထည့်ရန်"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ဤလုပ်ဆောင်ချက်ကို ပြုလုပ်မည့် အက်ပ်မရှိပါ။"</string>
+    <string name="menu_share" msgid="943789700636542260">"မျှဝေခြင်း"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"အဆက်အသွယ်များ ထဲသို့ ထည့်ရန်"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"ထည့်ရန်"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">ဤအက်ပ်မှတစ်ဆင့် အဆက်အသွယ်များကို မျှဝေပါ</item>
+      <item quantity="one">ဤအက်ပ်မှတစ်ဆင့် အဆက်အသွယ်ကို မျှဝေပါ</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"အကောင့်ရွေးပါ"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"အညွှန်းဖန်တီးပါ"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"အညွှန်းအမည်ပြောင်းပါ"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"အညွှန်းအမည်"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"အညွှန်းအမည်"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"အသံဖြင့် ချက်တင်း"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ဗီဒီယိုဖြင့်စကားပြောခြင်း"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> လိပ်စာ"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> အကောင့်"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ဓာတ်ပုံရိုက်ရန်"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ဓာတ်ပုံအသစ်ရိုက်ပါ"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ပုံရွေးရန်"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ပုံသစ်ရွေးရန်"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"ရှာဖွေနေသည်…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ရက်စွဲ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"အညွှန်း"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"မလုပ်တော့"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"နောက်သို့"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"ပိတ်ရန်"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ရွေးထားသော လိပ်စာအား ပြင်ဆင်ခြင်းသို့ပြောင်းမလား? သင် အခုထိ ရိုက်ထားသော စာများအားလုံး ကူးယူပြီးဖြစ်ပါလိမ့်မည်"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"အကန့် <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"အပြင်အဆင်များ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"အပြင်အဆင်များ"</string>
+    <string name="menu_help" msgid="1680178646764069976">"အကူအညီနှင့် အကြံပြုချက်"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ဖုန်းနံပါတ်"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"လိပ်စာများထဲသို့ ထည့်ပါ"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"ပိတ်ရန်"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"နှစ်ကို ထည့်ရန်"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"အကောင့်ထည့်ရန်"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"တင်သွင်းရန်"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"အသစ်ဖန်တီးပါ…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" အညွှန်းကို ဖျက်ပစ်မလား။ (အဆက်အသွယ်များအနေဖြင့် ပျက်သွားမည်မဟုတ်ပါ။)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"အခြားတစ်ခုနှင့် ကွင်းဆက်မချိတ်မီ အဆက်အသွယ်အမည်ကိုရိုက်ပါ။"</string>
+    <string name="copy_text" msgid="3257145021583508761">"ခဏကူးယူထားပါ"</string>
+    <string name="set_default" msgid="4417505153468300351">"ပုံသေအဖြစ် သတ်မှတ်ခြင်း"</string>
+    <string name="clear_default" msgid="7193185801596678067">"မူရင်းများကို ရှင်းလင်းခြင်း"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"စာသားကူးယူပြီး"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"ပြင်ဆင်မှုများကို ဖယ်ပစ်မလား။"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ဖယ်ပစ်ရန်"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"မလုပ်တော့"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"စိတ်ကြိုက်ပြုလုပ်ခြင်းများကို ဖယ်ပစ်မလား။"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"အဆက်အသွယ်များရှာပါ"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"အဆက်အသွယ်များ ဖယ်ရှားရန်"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"မိမိ၏ဖုန်းမှပရိုဖိုင်လ်"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ကျွန်ုပ်၏ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ကိုယ်ရေးအကောင့်"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Google သို့ သင့်အဆက်အသွယ်များကို မိတ္တူကူးယူပေးမည့် အကောင့်တစ်ခုထည့်ရန် တစ်မိနစ်လောက် အချိန်ပေးလိုက်ပါ။"</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"အဆက်အသွယ် အသစ်ကို <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> တွင်သိမ်းလိုက်ပါမည်။"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"အဆက်အသွယ် အသစ်များအတွက် မူရင်းအကောင့်ကို ရွေးပါ။"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"အဆက်အသွယ်အသစ် လုပ်ပါ"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"အဆက်အသွယ်အားပြင်ရန်"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"ကြည့်ရန်အတွက်သာ"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"ပြင်ဆင်လိုသည့် အဆက်အသွယ်ကို ရွေးချယ်ပါ"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"လင့်ခ်ချိတ်ထားသောအဆက်အသွယ်များ"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"ထည့်ရန်"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"လင့်ခ်ဖြုတ်ရန်"</string>
+    <string name="add_account" msgid="8201790677994503186">"အကောင့်ထည့်ရန်"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"အကောင့်အသစ်ထည့်ပါ"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ဒေ့ဘာဘေ့စ်ဖိုင်များကို အပြင်သို့ထုတ်ပါ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"အဆက်အသွယ်အသစ် ပြုလုပ်ရန်"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ပိုပြီး ကြည့်ရန်"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"လျှော့ပြီး ကြည့်ရန်"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"မကြာမီက"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"အကြောင်း"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"မိမိအတွက် ကိုယ်ပိုင်ကော်ပီ ပြုလုပ်နေစဉ်…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"နက်ဖြန်"</string>
+    <string name="today" msgid="8041090779381781781">"ယနေ့"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ယနေ့ <xliff:g id="TIME_INTERVAL">%s</xliff:g> တွင်"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"နက်ဖြန်<xliff:g id="TIME_INTERVAL">%s</xliff:g>တွင်"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ခေါင်းစဉ်မဲ့ ဖြစ်ရပ်)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"လက်ခံရန်"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"အဖွဲ့အစည်း"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"နာမည်ပြောင်"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"မှတ်ချက်"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ဝဘ်ဆိုက်"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ဖြစ်ရပ်"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"တော်စပ်ပုံ"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"အမည်"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"အီးမေးလ်"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ဖုန်း"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"တည်နေရာများသို့ လမ်းညွှန်ချက်"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"မကြာမီက စာတို။ <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. တုံ့ပြန်ရန် ကလစ်ပါ"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"အဝင်"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"အထွက်"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"လွတ်သွား"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"မကြာမီက ခေါ်ဆိုမှု။ <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ပြန်ခေါ်ရန် ကလစ်ပါ"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"သင်: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"နောက်ထပ်အကွက်များ"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"အဆက်အသွယ်ဓာတ်ပုံ ပြောင်းရန်"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"အဆက်အသွယ်ဓာတ်ပုံ ထည့်ရန်"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"အဆက်အသွယ်ဓာတ်ပုံ"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"အယ်ဒီတာကို ဖွင့်၍မရပါ။"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"အောက်ပါသို့ သိမ်းနေပါသည်"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> ထံမှအဆက်အသွယ်ကို ပြင်ဆင်၍မရပါ"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"အဆက်အသွယ်များ ချိတ်ဆက်ပါ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"မလုပ်တော့"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ဤအဆက်အသွယ်"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ဖြစ်နိုင်သည့် မိတ္တုပွားများ"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ယင်းအဆက်အသွယ်များ လူတစ်ဦးတည်း ဖြစ်နိုင်ပါသည်။ ၎င်းတို့ကို တစ်ခုတည်းသော အဆက်အသွယ် အဖြစ် ချိတ်ဆက်ပေးနိုင်ပါသည်။"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> ကိုဖျက်ပါ"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> ကိုဖျက်ပါ"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"အကြံပြုချက်များ"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"အသစ်"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"လမ်းညွှန်ချက်အကွက်ကို ဖွင့်ပါ"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"လမ်းညွှန်ချက်အကွက်ကို ပိတ်ပါ"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> လေဘယ်လ်"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"အညွှန်းများ"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"အကောင့်များ"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"သင့်မှတ်တမ်းကို အတူတကွ ကြည့်လိုက်ပါ"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"အစီအစဉ်များနှင့် မက်ဆေ့ဂျ်များ"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"အစီအစဥ်များ"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"မက်ဆေ့ဂျ်များ"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"အကြံပြုချက်များ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"သင်၏အဆက်အသွယ်များကို စနစ်တကျနှင့် အသုံးဝင်စွာ ထားလိုက်ပါ"</string>
+    <string name="undo" msgid="1425165101664071422">"တစ်ဆင့်နောက်ပြန်ရန်"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ထံ ဖုန်းခေါ်ရန်"</string>
+    <string name="call_home" msgid="1990519474420545392">"အိမ်ဖုန်းနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"မိုဘိုင်းနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_work" msgid="5328785911463744028">"အလုပ်နံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"အလုပ်ဖက်စ်နံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"အိမ်ဖက်စ်နံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_pager" msgid="9003902812293983281">"ပေဂျာနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_other" msgid="8563753966926932052">"ခေါ်ရန်"</string>
+    <string name="call_callback" msgid="1910165691349426858">"ပြန်ခေါ်ရန်နံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_car" msgid="3280537320306436445">"ကားဖုန်းနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"ကုမ္ပဏီပင်မနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN ကို ခေါ်ရန်"</string>
+    <string name="call_main" msgid="6082900571803441339">"ပင်မနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ဖက်စ်နံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_radio" msgid="8296755876398357063">"ရေဒီယိုဖုန်းနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_telex" msgid="2223170774548648114">"တဲလက်ဇ်နံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD ကို ခေါ်ရန်"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"အလုပ်မိုဘိုင်းနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"အလုပ်ပေဂျာနံပါတ်ကို ခေါ်ရန်"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ထံ ဖုန်းခေါ်ရန်"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS ကို ခေါ်ရန်"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ခေါ်ရန်)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ထံ စာပို့ရန်"</string>
+    <string name="sms_home" msgid="7524332261493162995">"အိမ်ဖုန်းနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"မိုဘိုင်းနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_work" msgid="2269624156655267740">"အလုပ်ဖုန်းနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"အလုပ်ဖက်စ်နံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"အိမ်ဖက်စ်နံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"ပေဂျာနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_other" msgid="806127844607642331">"စာပို့ရန်"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"ပြန်ခေါ်ရန်နံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_car" msgid="7444227058437359641">"ကားဖုန်းနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"ကုမ္ပဏီပင်မနံပါတ်ကို စာပို့ပါ"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN နံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_main" msgid="8621625784504541679">"ပင်မနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ဖက်စ်နံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ရေဒီယိုနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"တဲလက်စ်နံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD နံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"အလုပ်မိုဘိုင်းနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"အလုပ်ပေဂျာနံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> သို့ စာပို့ရန်"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS နံပါတ်သို့ စာပို့ရန်"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (မက်ဆေ့ဂျ်ပို့ရန်)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ဗီဒီယိုခေါ်ဆိုမှု ပြုလုပ်ရန်"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"မကြာခဏဆက်သွယ်လေ့ရှိသူများစာရင်းကို ရှင်းမလား။"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"အဆက်အသွယ်များနှင့် ဖုန်းအက်ပ်များရှိ မကြာခဏဆက်သွယ်လေ့ရှိသူများစာရင်းကို ရှင်းပစ်မည်ဖြစ်ပြီး အီးမေးလ်အက်ပ်များအား သင်၏ဦးစားပေးလိပ်မူခြင်းများကို အစမှပြန်၍မှတ်သားလေ့လာစေပါမည်။"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"မကြာခဏဆက်သွယ်လေ့ရှိသူများစာရင်းကို ရှင်းနေသည်…"</string>
+    <string name="status_available" msgid="5586870015822828392">"အားနေသည်"</string>
+    <string name="status_away" msgid="1838861100379804730">"အဝေးရောက်နေသည်"</string>
+    <string name="status_busy" msgid="9147992455450257136">"အလုပ်များနေသည်"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"အခြား"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"လမ်းညွှန်"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"အလုပ်လမ်းညွှန်"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"အဆက်အသွယ်အားလုံး"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> အတွက် အမြန်အဆက်အသွယ်"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(အမည်မရှိ)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"မကြာခဏဆက်သွယ်လေ့ရှိသူများ"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ဖုန်းနံပါတ်ပါအဆက်အသွယ်အားလုံး"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"အလုပ်ပရိုဖိုင်အဆက်အသွယ်များ"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"အပ်ဒိတ်များ ကြည့်ရန်"</string>
+    <string name="account_phone" msgid="7128032778471187553">"ကိရိယာ"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"အမည်"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"အမည်ပြောင်"</string>
+    <string name="name_given" msgid="4280790853455320619">"ရှေ့အမည်"</string>
+    <string name="name_family" msgid="7466985689626017037">"နောက်အမည်"</string>
+    <string name="name_prefix" msgid="59756378548779822">"အမည်ရှေ့ဆက်"</string>
+    <string name="name_middle" msgid="8467433655992690326">"အလယ်အမည်"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"အမည်နောက်ဆက်"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"အသံထွက်အမည်"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"အသံထွက်ရှေ့အမည်"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"အသံထွက်အလယ်အမည်"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"အသံထွက်နောက်အမည်"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ဖုန်း"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"အီးမေးလ်"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"လိပ်စာ"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"အဖွဲ့အစည်း"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ပတ်သက်မှု"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"အထူးနေ့"</string>
+    <string name="sms" msgid="1756857139634224222">"စာသားမက်ဆေ့ဂျ်"</string>
+    <string name="postal_address" msgid="8765560217149624536">"လိပ်စာ"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"ကုမ္ပဏီ"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"ခေါင်းစဉ်"</string>
+    <string name="label_notes" msgid="8337354953278341042">"မှတ်စုများ"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"စိတ်ကြိုက်"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ဝဘ်ဆိုဒ်"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"အညွှန်းများ"</string>
+    <string name="email_home" msgid="8573740658148184279">"အိမ်အီးမေးလ်သို့ ပို့ရန်"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"မိုဘိုင်းအီးမေးလ်သို့ ပို့ရန်"</string>
+    <string name="email_work" msgid="2807430017302722689">"အလုပ်အီးမေးလ်သို့ ပို့ရန်"</string>
+    <string name="email_other" msgid="3454004077967657109">"အီးမေးလ်ပို့ရန်"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ထံ အီးမေးလ်ပို့ရန်"</string>
+    <string name="email" msgid="5668400997660065897">"အီးမေးလ်"</string>
+    <string name="postal_street" msgid="8133143961580058972">"လမ်း"</string>
+    <string name="postal_city" msgid="6597491300084895548">"မြို့"</string>
+    <string name="postal_region" msgid="6045263193478437672">"ပြည်နယ်"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"စာပို့သင်္ကေတ"</string>
+    <string name="postal_country" msgid="7638264508416368690">"နိုင်ငံ"</string>
+    <string name="map_home" msgid="1243547733423343982">"အိမ်လိပ်စာကြည့်ရန်"</string>
+    <string name="map_work" msgid="1360474076921878088">"အလုပ်လိပ်စာကြည့်ရန်"</string>
+    <string name="map_other" msgid="3817820803587012641">"လိပ်စာကြည့်ရန်"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> လိပ်စာ ကြည့်ရန်"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM သုံး၍ ချတ်လုပ်ရန်"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live သုံး၍ ချတ်လုပ်ရန်"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo သုံး၍ ချတ်လုပ်ရန်"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype သုံး၍ ချတ်လုပ်ရန်"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ သုံး၍ ချတ်လုပ်ရန်"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk သုံး၍ ချတ်လုပ်ရန်"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ သုံး၍ ချတ်လုပ်ရန်"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber သုံး၍ ချတ်လုပ်ရန်"</string>
+    <string name="chat" msgid="9025361898797412245">"ချတ်လုပ်ရန်"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ဖျက်ရန်"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"အမည်အကွက်များကို ပိုပြရန်"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"အမည်အကွက်များ ချုံ့ပြရန်"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"အသံထွက်အမည်အကွက်များကို ပိုပြရန်"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"အသံထွက်အမည်အကွက်များ ချုံ့ပြရန်"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"ချဲ့ကြည့်ရန်"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"ချုံ့ပြရန်"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"ချဲ့ထားသည်"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"ချုံ့ထားသည်"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"အဆက်အသွယ်အားလုံး"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ကြယ်ပွင့်ပြထားသော"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"စိတ်ကြိုက်ကြည့်ရန်"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"အဆက်အသွယ်"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"အခြားအဆက်အသွယ်အားလုံး"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"အဆက်အသွယ်အားလုံး"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"ပြိုင်တူညှိခြင်းအဖွဲ့ကို ဖယ်ရှားရန်"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"ပြိုင်တူညှိခြင်းအဖွဲ့ထည့်ရန်"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"နောက်ထပ်အဖွဲ့များ…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"ပြိုင်တူညှိခြင်းမှ \"<xliff:g id="GROUP">%s</xliff:g>\" ကို ဖယ်ခြင်းက အဖွဲ့ဖွဲ့မထားသောအဆက်အသွယ်များကိုပါ ပြိုင်တူညှိခြင်းမှ ဖယ်ရှားပါလိမ့်မည်။"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ပြသရေးရွေးစရာများကို သိမ်းနေသည်…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"စိတ်ကြိုက်ကြည့်ရှုမှု"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"တင်သွင်းထားသောအဆက်အသွယ်များကို သိမ်းရမည့်အကောင့် -"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"ဆင်းမ်ကဒ်"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"<xliff:g id="SIM_NAME">%1$s</xliff:g> ဆင်းမ်ကဒ်"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">အဆက်အသွယ် %1$d ခု</item>
+      <item quantity="one">အဆက်အသွယ် ၁ ခု</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other">အဆက်အသွယ် <xliff:g id="COUNT_2">^1</xliff:g> ခု • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one">အဆက်အသွယ် <xliff:g id="COUNT_0">^1</xliff:g> ခု • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ဖိုင်"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"တင်သွင်းစရာ မရှိပါ"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"လိပ်စာကဒ်မှ အဆက်အသွယ်များကို တင်သွင်းမလား။"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> တင်သွင်းခြင်းကို မလုပ်တော့ဘူးလား။"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> တင်ပို့ခြင်းကို မလုပ်တော့ဘူးလား။"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"လိပ်စာကဒ် တင်သွင်း/ပို့ခြင်း ဖျက်မရပါ"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"မသိရသောအမှားအယွင်း"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ကို ဖွင့်၍မရပါ - <xliff:g id="EXACT_REASON">%2$s</xliff:g>။"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"တင်ပို့ရေးစတင်၍ မရပါ - \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"။"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"တင်ပို့နိုင်သောအဆက်အသွယ် မရှိပါ။"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"လိုအပ်သောခွင့်ပြုချက်ကို သင်ပိတ်ထားသည်။"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"တင်ပို့နေစဉ် အမှားအယွင်းတစ်ခု ဖြစ်သွားပါသည် - \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"။"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O အမှား"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"သိုလှောင်ရန်နေရာ မလုံလောက်ပါ။ ဖိုင်အလွန်ကြီးနေနိုင်ပါသည်။"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ဤဖော်မက်ကို ပံ့ပိုးမထားပါ။"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> တင်ပို့ပြီးပါပြီ။"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"အဆက်အသွယ်များ တင်ပို့ပြီးပါပြီ။"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"အဆက်အသွယ်များ တင်ပို့ပြီးပါပြီ၊ အဆက်အသွယ်များမျှဝေရန် အကြောင်းကြားချက်ကို နှိပ်ပါ။"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"အဆက်အသွယ်များမျှဝေရန် နှိပ်ပါ။"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> တင်ပို့ခြင်း ပယ်ဖျက်လိုက်သည်။"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"အဆက်အသွယ်ဒေတာကို တင်ပို့နေသည်"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"အဆက်အသွယ်ဒေတာကို တင်ပို့နေသည်။"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ဒေတာဘေ့စ်အချက်အလက်များ မရယူနိုင်ပါ။"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"တင်ပို့နိုင်သောအဆက်အသွယ်များ မရှိပါ။"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"လိပ်စာကဒ်ပြုလုပ်ရေး မှန်ကန်စွာမစတင်နိုင်ပါ။"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"တင်ပို့၍မရပါ"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"အဆက်အသွယ်ဒေတာကို တင်ပို့၍မရပါ။\nအကြောင်းမှာ - \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> တင်သွင်းနေသည်"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"လိပ်စာကဒ်ဒေတာ ဖတ်၍မရပါ"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g> လိပ်စာကဒ်တင်သွင်းပြီးပါပြီ"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> တင်သွင်းခြင်း ပယ်ဖျက်လိုက်သည်"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> ကို မကြာမီ တင်သွင်းပါမည်။"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ဖိုင်ကို မကြာမီ တင်သွင်းပါမည်။"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"လိပ်စာကဒ်တင်သွင်းခြင်းတောင်းဆိုမှုကို ငြင်းပယ်လိုက်သည်။ နောက်မှ ထပ်စမ်းကြည့်ပါ။"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"အဆက်အသွယ်များကို မကြာမီ တင်ပို့သွားပါမည်။"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"လိပ်စာကဒ်တင်ပို့ခြင်းတောင်းဆိုမှုကို ငြင်းပယ်လိုက်သည်။ နောက်မှ ထပ်စမ်းကြည့်ပါ။"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"အဆက်အသွယ်"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"လိပ်စာကဒ်(များ)ကို စက်တွင်းယာယီသိုလှောင်ရေးတွင် သိမ်းနေပါသည်။ အမှန်တကယ်တင်သွင်းခြင်း မကြာမီစပါမည်။"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"လိပ်စာကဒ်ကို တင်သွင်း၍မရပါ။"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC မှ အဆက်အသွယ်ရရှိပါသည်။"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"ယာယီသိမ်းနေသည်"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"တင်သွင်းနေသည် <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> - <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf ဖိုင်သို့ တင်ပို့ရန်"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"အောက်ပါအတိုင်းစီရန်"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"အမည် အသံထွက်"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"အမြဲပြရန်"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"ဗလာဖြစ်နေလျှင် ဝှက်ရန်"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"ရှေ့အမည်"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"နောက်အမည်"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"အမည်ဖော်မက်"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ရှေ့အမည်ဖြင့်စ၍"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"နောက်အမည်ဖြင့်စ၍"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"အကောင့်များ"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"အဆက်အသွယ်အသစ်များအတွက် မူရင်းအကောင့်"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"ကျွန်ုပ်၏အချက်အလက်"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"သင့်ပရိုဖိုင်ပြင်ဆင်ရန်"</string>
+    <string name="setting_about" msgid="7014388749752042863">"အဆက်အသွယ်များအကြောင်း"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"အကြိုက်ဆုံးအဆက်အသွယ်များကို မျှဝေရန်"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"အဆက်အသွယ်အားလုံးမျှဝေရန်"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"အဆက်အသွယ်များ မျှဝေ၍မရပါ။"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"အဆက်အသွယ်များ တင်ပို့ပါ"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"အောက်ပါထံမှ အဆက်အသွယ်များ တင်သွင်းပါ"</string>
+    <string name="share_error" msgid="948429331673358107">"ဤအဆက်အသွယ်ကို မျှဝေ၍မရပါ။"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"မျှဝေရန်အဆက်အသွယ် မရှိပါ။"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ပြရန်အဆက်အသွယ်များ"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ပြသပေးရန်အဆက်အသွယ်များ"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"မြင်ကွင်းကို စိတ်ကြိုက်ပြုလုပ်ပါ"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"သိမ်းရန်"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"အဆက်အသွယ်များရှာပါ"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"အကြိုက်ဆုံးများ"</string>
+    <string name="menu_import" msgid="6107961135813836467">"တင်သွင်းရန်"</string>
+    <string name="menu_export" msgid="2658783911863503902">"တင်ပို့ရန်"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"ပိတ်ဆို့ထားသည့် နံပါတ်များ"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> မှတဆင့်"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="SOURCE">%2$s</xliff:g> မှတဆင့်"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ရှာဖွေမှုရပ်ရန်"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ရှာဖွေမှုကို ရှင်းပါ"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"အကောင့်"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ခေါ်ဆိုမှုများအတွက် ဤအရာကို အမြဲသုံးရန်"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"မှတ်စုတစ်ခုဖြင့် ခေါ်ဆိုရန်"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"ခေါ်ဆိုမှုနှင့်အတူပို့ရန် မှတ်စုတစ်ခု ရေးပါ…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SEND &amp; CALL"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"တည်ဆောက်မှုဗားရှင်း"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"အခမဲ့ရင်းမြစ်လိုင်စင်များ"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"အခမဲ့ရင်းမြစ်ဆော့ဖ်ဝဲအတွက် လိုင်စင်အသေးစိတ်များ"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"ပုဂ္ဂိုလ်ရေးဆိုင်ရာမူဝါဒ"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"ဝန်ဆောင်မှုဆိုင်ရာစည်းမျဉ်းများ"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"အခမဲ့ရင်းမြစ်လိုင်စင်များ"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url ကို ဖွင့်၍မရပါ။"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ကို စစ်ဆေးပြီးပါပြီ"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ကို မစစ်ဆေးရသေးပါ"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ဗီဒီယိုခေါ်ဆိုမှု ပြုလုပ်ရန်"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"ဖျက်ရန်"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"အစက်သုံးစက်"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> မိနစ် <xliff:g id="SECONDS">%2$s</xliff:g> စက္ကန့်"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> နာရီ <xliff:g id="MINUTES_1">%2$s</xliff:g> မိနစ် <xliff:g id="SECONDS">%3$s</xliff:g> စက္ကန့်"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ဤဖြတ်လမ်းလင့်ခ်ကို ပိတ်ထားပါသည်"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"အဆက်အသွယ်ကို ဖယ်ရှားခဲ့ပါသည်"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"တင်သွင်းရန်"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"အဆက်အသွယ်များကို ရွေးပါ"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"ဆင်းမ်ကဒ်ထဲတွင် လိပ်စာ မရှိပါ"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"အဆက်အသွယ်က သင့်စာရင်းတွင် ရှိနှင့်နေပါပြီ"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">ဆင်းမ်အဆက်အသွယ် <xliff:g id="COUNT">%d</xliff:g> ခုကို တင်သွင်းပြီးပါပြီ</item>
+      <item quantity="one">ဆင်းမ်အဆက်အသွယ် ၁ ခုကို တင်သွင်းပြီးပါပြီ</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"ဆင်းမ်အဆက်အသွယ်များကို တင်သွင်း၍မရပါ"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"ဆင်းမ်ကဒ်မှ တင်သွင်းပါ"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"မလုပ်တော့"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"အလိုအလျောက်စင့်ခ်လုပ်ခြင်းကို ပိတ်ထားသည်။ ဖွင့်ရန်အတွက် တို့ပါ။"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"ပယ်ရန်"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"အကောင့်စင့်ခ်လုပ်ခြင်းကို ပိတ်ထားသည်။ ဖွင့်ရန်အတွက် တို့ပါ။"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"အလိုအလျောက်စင့်ခ်လုပ်ခြင်းကို ဖွင့်မလား။"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Google အဆက်အသွယ်များသာမက အက်ပ်နှင့် အကောင့်အားလုံးတွင် သင်ပြုလုပ်သော အပြောင်းအလဲများကို ဝဘ်နှင့် သင့်ကိရိယာများအကြား အချိန်နှင့်တပြေးညီ မွမ်းမံပေးသွားပါမည်။"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ဖွင့်ရန်"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"ချိတ်ဆက်မှုမရှိပါ"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"ဆင်းမ်ကဒ်"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"နောက်ထပ်ပြရန်"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"ဆင်းမ်ကဒ်ကို တင်သွင်းပြီးပါပြီ"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"တင်သွင်း၍မရပါ"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"ဆင်းမ်ကဒ်မှ အဆက်အသွယ်များကို တင်သွင်း၍မရပါ"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"ဆင်းမ်ကဒ်ကို တင်သွင်းနေသည်"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 30fcb4c..7d64b4b 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -17,72 +17,74 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakter"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakter"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Se kontakten"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Endre kontakten"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Legg til kontakt"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Ring"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Send melding"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Velg en kontaktsnarvei"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Velg et nummer å ringe"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Velg et nummer å sende melding til"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Velg en kontakt"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Legg til kontakt"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Velg en kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Velg"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Opprett ny kontakt"</string>
-    <string name="starredList" msgid="4817256136413959463">"Med stjerne"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Mest brukt"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoritter"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Egenskaper for kontakt"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Rediger kontakt"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Opprett kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Rediger gruppe"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Opprett gruppe"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Info"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Oppdat."</string>
     <string name="searchHint" msgid="8482945356247760701">"Søk i kontakter"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Se på kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Legg til som favoritt"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Fjern fra favoritter"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Fjernet fra favoritter"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"Lagt til i favoritter"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Rediger"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Slett"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Endre bilde"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Plassér på startsiden"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Ring kontakt"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Send SMS til kontakt"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Bytt bilde"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Lag snarvei"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Del opp"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Rediger"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Slett"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Legg til kontakt"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Legg til gruppe"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Fjern kontakter"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Endre navn på etiketten"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Slett etiketten"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Legg til som kontakt"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Velg kontakter"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Legg til kontakter"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Fjern fra etiketten"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Lag en etikett"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Vil du dele denne kontakten opp i flere kontakter?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Del opp"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Vil du lagre endringene du allerede har gjort, og dele opp denne kontakten i flere kontakter?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Lagre og del opp"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Vil du lagre endringene du allerede har gjort og knytte sammen med den valgte kontakten?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Lagre og knytt sammen"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Sammenknytt"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Knytter sammen"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Fjerner tilknytning"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Knytt sammen"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Se sammenknyttede kontakter"</string>
     <string name="menu_save" msgid="1727844363591825909">"Lagre"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Knytt sammen kontakter"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Velg kontakten du vil knytte sammen med <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Vis alle kontakter"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Forslag"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Alle kontakter"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ble linket"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktene er sammenknyttet"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> er slettet"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> og <xliff:g id="NAME_1">%2$s</xliff:g> er slettet"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g> … er slettet"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Kontakter er slettet</item>
       <item quantity="one">Kontakten er slettet</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakter</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakter · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Fra Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Fra <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Angi ringetone"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Alle samtaler til talepost"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakter fra skrivebeskyttede kontoer kan ikke slettes, men de kan skjules."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Skjul"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakten du vil slette, inneholder informasjon fra flere kontoer. Informasjon fra skrivebeskyttede kontoer kan bare skjules, ikke slettes."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Du må velge minst to kontakter for å utføre en sammenknytting."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Vil du knytte sammen de valgte kontaktene?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Knytt sammen"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Videresend til telefonsvarer"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ikke videresend til telefonsvarer"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Denne kontaken kan bare vises. Kontakten kan ikke slettes, men du kan skjule den."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Skjul kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Kontoer som bare kan vises blir skjult, men slettes ikke."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Vil du slette denne kontakten?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Vil du slette de valgte kontaktene?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakter fra skrivebeskyttede kontoer kan ikke slettes, men de kan skjules."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Hvis du sletter denne kontakten, sletter du informasjon fra flere kontoer."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Vil du slette denne kontakten?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Slett"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Forkast endringene"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakten finnes ikke."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakten er lagt til på startskjermen."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> er lagt til på startskjermen."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Opprett ny kontakt"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Opprett ny kontakt"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisasjon"</item>
-    <item msgid="7196592230748086755">"Notat"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Ingen bilder er tilgjengelige på nettbrettet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Det er ingen bilder på telefonen."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Ingen bilder er tilgjengelige på enheten."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontaktbilde"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Egendefinert etikett"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Send anrop direkte til telefonsvarer."</string>
     <string name="removePhoto" msgid="4898105274130284565">"Fjern bilde"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Ingen kontakter"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Ingen grupper."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Du må ha en konto for å opprette grupper."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Det er ingen personer i denne gruppen."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Rediger gruppen for å legge til noen."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Lagrer kontakt…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Kontaktlisten din er tom"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Ingen kontakter har denne etiketten"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Ingen kontakter i denne kontoen"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Kontaktlisten din er tom"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> er lagret"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt er lagret"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Tilknytningen mellom kontaktene er fjernet"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kunne ikke lagre kontaktendringene."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Kunne ikke fjerne tilknytningen for kontakten."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kunne ikke knytte sammen kontakten."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Feil ved lagring av kontakt."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Kunne ikke lagre endringene av kontaktbildene."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Gruppe er lagret."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Kunne ikke lagre gruppeendringer."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakter med telefonnumre</item>
-      <item quantity="one">1 kontakt med telefonnummer</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ingen kontakter med telefonnummer"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> er funnet</item>
-      <item quantity="one">1 er funnet</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Kunne ikke lagre kontaktendringene"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Kunne ikke fjerne tilknytningen for kontakten"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kunne ikke tilknytte kontakten"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Feil ved lagring av kontakt"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Kunne ikke lagre endringene av kontaktbildene"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Kunne ikke laste inn etiketten"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiketten er slettet"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiketten ble opprettet"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Kan ikke opprette etiketten"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiketten ble oppdatert"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Fjernet fra etiketten"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Lagt til i etiketten"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Kunne ikke lagre etikettendringene"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Denne etiketten finnes allerede"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Noen av kontaktene mangler e-postadresse."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Noen av kontaktene mangler telefonnummer."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Send e-post"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Send melding"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Velg kontakter"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Send"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Ingen kontakter"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> er funnet</item>
-      <item quantity="one">1 er funnet</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Alle"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritter"</string>
-    <string name="callBack" msgid="5498224409038809224">"Ring tilbake"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Ring på nytt"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Ring tilbake"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Legg til «<xliff:g id="EMAIL">%s</xliff:g>» som kontakt?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kontaktbilde"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plussknapp"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> av <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakter"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Navn på kontakter"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Det ble ikke funnet noen app som kan håndtere denne handlingen."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klikk for å gå tilbake til den forrige skjermen"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Legg til telefonnummer"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Legg til e-post"</string>
     <string name="missing_app" msgid="1466111003546611387">"Kunne ikke finne noen app som kan håndtere denne handlingen."</string>
     <string name="menu_share" msgid="943789700636542260">"Del"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Legg til i kontakter"</string>
-    <string name="share_via" msgid="563121028023030093">"Del kontakten via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Opprett gruppe under konto"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Legg til"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Del kontaktene via</item>
+      <item quantity="one">Del kontakten via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Velg konto"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Opprett en etikett"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Endre navn på etiketten"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etikettnavn"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Etikettnavn"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Taleprat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videonettprat"</string>
-    <string name="connections" msgid="8098440723172028350">"Tilknytninger"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Legg til tilknytning"</string>
-    <string name="recent" msgid="2659189233141493004">"Nylige"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Nylige oppdateringer"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-kontakt"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-konto"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Kan ikke redigeres fra denne appen."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Kan ikke redigeres på denne enheten."</string>
     <string name="take_photo" msgid="7496128293167402354">"Ta bilde"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ta nytt bilde"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Velg et bilde"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Velg et nytt bilde"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktlisten er under oppdatering."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Søker …"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Vis valgte"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Vis alle"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Marker alle"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Fjern alle markeringer"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Legg til ny"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Legg til organisasjon"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dato"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Gruppenavn"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Endre"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Hovedbilde"</string>
-    <string name="description_star" msgid="2605854427360036550">"favoritt"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Rediger kontakt"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vil du knytte sammen gjeldende kontakt med den valgte kontakten?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etikett"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Avbryt"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Tilbake"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"lukk"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Bytt til redigering av gjeldende kontakt? Informasjonen du har lagt til så langt blir kopiert."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiér til mine kontakter"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Legg til i Mine kontakter"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Katalog <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Egendefinert"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Innstillinger"</string>
     <string name="menu_settings" msgid="377929915873428211">"Innstillinger"</string>
     <string name="menu_help" msgid="1680178646764069976">"Hjelp og tilbakemelding"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Vis grupper"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Legg til i kontakter"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Legg til kontakt"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Lukk"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Legg til år"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Laster inn …"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Opprett en ny kontakt"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Legg til konto"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importer kontakter"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Opprett ny gruppe"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Opprett en ny gruppe"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupper</item>
-      <item quantity="one">1 gruppe</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Vil du slette gruppen <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Selve kontaktene blir ikke slettet.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> personer fra <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person fra <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> personer</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importér"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Opprett ny…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Vil du slette etiketten «<xliff:g id="GROUP_LABEL">%1$s</xliff:g>»? (Selve kontaktene blir ikke slettet.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Skriv inn navnet på kontakten før du knytter vedkommende sammen med en annen."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopier til utklippstavlen"</string>
     <string name="set_default" msgid="4417505153468300351">"Angi som standard"</string>
     <string name="clear_default" msgid="7193185801596678067">"Fjern som standard"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Tekst kopiert"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Vil du forkaste endringene?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Forkast"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Konfigurer profilen"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Tast inn personens navn"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Gruppens navn"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Vil du forkaste endringene?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Forkast"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Avbryt"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Vil du forkaste tilpasningene?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Søk etter kontakter"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Fjern kontakter"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Min lokale profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Min profil for <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Viser alle kontakter"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakter fungerer bedre med en Google-konto.\n\n• Tilgang fra hvilken som helst nettleser.\n• Sikkerhetskopiér kontaktene dine på en trygg måte."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Hold kontaktene dine trygge selv om du mister telefonen: synkroniser med en nettbasert tjeneste."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Legg til en konto"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Den nye kontakten din blir ikke sikkerhetskopiert. Vil du legge til en konto som sikkerhetskopierer kontakter på nettet?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Bruk noen minutter på å opprette en konto som sikkerhetskopierer kontaktene dine til Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nye kontakter blir lagret i <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Velg en standardkonto for nye kontakter."</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Legg til ny kontakt"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Opprett ny kontakt"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Rediger"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Behold lokalt"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Kun visning"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Velg kontakten du vil endre"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Sammenknyttede kontakter"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Legg til"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Del opp"</string>
     <string name="add_account" msgid="8201790677994503186">"Legg til konto"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Legg til ny konto"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Eksporter databasefilene"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"legg til ny kontakt"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Opprett ny kontakt"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Se mer"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Se mindre"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Se alle"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Nylige"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Info"</string>
-    <string name="send_message" msgid="8938418965550543196">"Send melding"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Oppretter personlig kopi …"</string>
-    <string name="yesterday" msgid="6840858548955018569">"I går"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Oppretter personlig kopi …"</string>
     <string name="tomorrow" msgid="6241969467795308581">"I morgen"</string>
     <string name="today" msgid="8041090779381781781">"I dag"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"I dag kl. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"I morgen kl.<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Aktivitet uten navn)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Angi"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Nettprat"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Nettsted"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Aktivitet"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Tilknytning"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Konto"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Navn"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-post"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Klikk for å utvide redigeringsvinduet for kontakter"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Klikk for å skjule redigeringsvinduet for kontakter"</string>
     <string name="content_description_directions" msgid="2686791825798189335">"veibeskrivelse til posisjon"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"nylig tekstmelding. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klikk for å svare"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"nylig tekstmelding. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klikk for å svare"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"innkommende"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"utgående"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"tapte"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"nylig oppringning. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klikk for å ringe tilbake"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"nylig oppringning. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klikk for å ringe tilbake"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Du: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts fungerer bedre når du går inn i personenes Hangouts-identifikatorer i e-postfeltet eller telefonfeltet."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Flere felt"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Endre bilde"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Kunne ikke åpne redigeringsvinduet."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Lagres i"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Lagrer på <xliff:g id="ACCOUNT_NAME">%s</xliff:g> for øyeblikket. Dobbelttrykk for å velge en annen konto."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Sammenknyttede kontakter (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Sammenknyttet kontakt</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> sammenknyttede kontakter"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Flere felt"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Endre kontaktbilde"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Legg til kontaktbilde"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontaktbilde"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Kunne ikke åpne redigeringsvinduet."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Lagres i"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontaktinformasjonen fra <xliff:g id="ACCOUNT">%s</xliff:g> kan ikke endres"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"KNYTT SAMMEN KONTAKTER"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"AVBRYT"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mulige duplikater</item>
-      <item quantity="one">1 mulig duplikat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sammenknyttede kontakter</item>
-      <item quantity="one">1 sammenknyttet kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Denne kontakten"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mulige duplikater"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Disse kontaktene kan være den samme personen. Du kan knytte dem sammen til én enkelt kontakt."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Sammenknyttede kontakter"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Fra kontoene dine"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Ta et bilde"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Alle bildene"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Velg bilde"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Fra <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Slett <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Slett <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Slett <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Bilde fra <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> er ikke markert"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Bilde fra <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> er markert"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Det er ikke merket av for noe bilde fra en ukjent konto"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Det er merket av for et bilde fra en ukjent konto"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kontaktlisten er oppdatert med nytt språk.\n\nVent litt ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Legg til nummer"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokkér nummeret"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Legg til nummer eller søk etter kontakter"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vil du oppheve blokkeringen av <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"OPPHEV BLOKKERINGEN"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vil du blokkere <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKKÉR"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> er blokkert"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Blokkeringen av <xliff:g id="NUMBER">%1$s</xliff:g> er opphevet"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> er ugyldig."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokkering av anrop er midlertidig slått av"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Blokkering av anrop er slått av fordi du kontaktet nødtjenester fra denne telefonen i løpet av de siste 48 timene. Funksjonen blir automatisk slått på igjen når perioden på 48 timer er utløpt."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importér"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Se numre"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Legg til nummer"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Anropsblokkering er slått av i 48 timer"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Slått av fordi du foretok et nødanrop."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ANGRE"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Opphev blokkeringen av nummeret"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Kontaktinformasjon for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importeringen mislyktes"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importér numre"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Slå på"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Forslag"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nye"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Åpne uttrekksmenyen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Lukk uttrekksmenyen"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g>-etikett"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiketter"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Kontoer"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Se felles aktiviteter og meldinger"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Aktiviteter og meldinger"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Aktiviteter"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Meldinger"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Forslag"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Hold kontaktene dine organisert, slik at de alltid er nyttige"</string>
+    <string name="undo" msgid="1425165101664071422">"Angre"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Ring <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Ring (privat)"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Ring mobil"</string>
+    <string name="call_work" msgid="5328785911463744028">"Ring (arbeid)"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Anrop faks (arbeid)"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Anrop faks (privat)"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Ring personsøker"</string>
+    <string name="call_other" msgid="8563753966926932052">"Ring"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Ring tilbakering"</string>
+    <string name="call_car" msgid="3280537320306436445">"Ring (bil)"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Ring firma (sentralbord)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Ring ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Ring hovednummer"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Ring til faksnummer"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Ring (radio)"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Ring teleks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Ring teksttelefon"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Ring arbeidsmobil"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Ring arbeidspersonsøker"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Ring <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Ring MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ring)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Send tekstmelding til <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Send SMS (privat)"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Send SMS (mobil)"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Send SMS (arbeid)"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Send SMS til faks (arbeid)"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Send SMS til faks (privat)"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Send SMS (personsøker)"</string>
+    <string name="sms_other" msgid="806127844607642331">"Send tekstmelding"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Send SMS til tilbakeringer"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Send SMS (bil)"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Send SMS til firma (sentralbord)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Send SMS til ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Send SMS til hovednummer"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Send tekstmelding til faksnummer"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Send SMS (radio)"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Send SMS til teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Send SMS til teksttelefon"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Send SMS til arbeidsmobil"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Send SMS til arbeidspersonsøker"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Send SMS til <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Send MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (send en melding)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Start en videosamtale"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Fjerne ofte kontaktede personer?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Du fjerner listen over ofte kontaktede personer i Kontakter- og Telefon-appene, og tvinger e-postappene til å lære seg adresseinnstillingene dine på nytt."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Fjerner ofte kontaktede personer"</string>
+    <string name="status_available" msgid="5586870015822828392">"Tilgjengelig"</string>
+    <string name="status_away" msgid="1838861100379804730">"Borte"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Opptatt"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Andre"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Katalog"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Jobbkatalog"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Alle kontakter"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Hurtigkontakt for <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Uten navn)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Ofte kontaktet"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Alle kontakter med telefonnumre"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Jobbprofilkontakter"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Se oppdateringer"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Enhet"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM-kort"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Navn"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Kallenavn"</string>
+    <string name="name_given" msgid="4280790853455320619">"Fornavn"</string>
+    <string name="name_family" msgid="7466985689626017037">"Etternavn"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Første del av navn"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Mellomnavn"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Navnesuffiks"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetisk navn"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetisk fornavn"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetisk mellomnavn"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetisk etternavn"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-post"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresse"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Lynmeldinger"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisering"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relasjon"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Spesialdato"</string>
+    <string name="sms" msgid="1756857139634224222">"Tekstmelding"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresse"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Firma"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Tittel"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notater"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Spesialtilpasset"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Nettsted"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiketter"</string>
+    <string name="email_home" msgid="8573740658148184279">"Send e-post (privat)"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Skriv e-post (mobil)"</string>
+    <string name="email_work" msgid="2807430017302722689">"Send e-post (arbeid)"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-post"</string>
+    <string name="email_custom" msgid="5536404237099078802">"E-post <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-post"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Gate"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Poststed"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Poststed"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postnummer"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Land"</string>
+    <string name="map_home" msgid="1243547733423343982">"Vis privat adresse"</string>
+    <string name="map_work" msgid="1360474076921878088">"Vis jobbadresse"</string>
+    <string name="map_other" msgid="3817820803587012641">"Vis adresse"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Se <xliff:g id="CUSTOM_LABEL">%s</xliff:g>-adressen"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Nettprat med AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Nettprat med Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Nettprat med Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Nettprat med Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Nettprat med QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Nettprat med Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Nettprat med ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Nettprat med Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Nettprat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"slett"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Vis flere navnefelt"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Skjul navnefelt"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Vis flere fonetiske navnefelt"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Skjul fonetiske navnefelt"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Vis"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Skjul"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Utvidet"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Skjult"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Alle kontakter"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Stjernemerket"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Tilpass"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Alle andre kontakter"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Alle kontaktene"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Fjern synkronisert gruppe"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Legg til synkronisert gruppe"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Flere grupper…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Hvis du fjerner «<xliff:g id="GROUP">%s</xliff:g>» fra synkroniseringen, fjernes også alle ugrupperte kontakter fra synkroniseringen."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Lagrer viste grupper…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Tilpasset visning"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Lagre importerte kontakter i:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-kort"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kontakter</item>
+      <item quantity="one">1 kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakter • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"VCF-fil"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Ingenting å importere"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Vil du importere kontakter fra vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Vil du avbryte importen av <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Vil du avbryte eksporten av <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Kunne ikke kansellere imp./eksp. av vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Ukjent feil."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Kan ikke åpne «<xliff:g id="FILE_NAME">%1$s</xliff:g>»: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Kunne ikke starte eksporteringen: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Du har ikke noen kontakt som kan eksporteres."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Du har slått av en nødvendig tillatelse."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Det oppsto en feil under eksporteringen: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Inn-/ut-feil"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Ikke nok minne. Det er mulig at filen er for stor."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formatet støttes ikke."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Eksportering av <xliff:g id="FILENAME">%s</xliff:g> er fullført."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Eksportering av kontaktene er fullført."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontaktdataene er eksportert. Klikk på varselet for å dele kontaktene."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Trykk for å dele kontaktene."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Eksportering av <xliff:g id="FILENAME">%s</xliff:g> ble avbrutt."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Eksporterer kontaktdata"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontaktdataene eksporteres."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Kunne ikke hente databaseinformasjon."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Ingen kontakter kan eksporteres."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard-oppretteren startet ikke som den skulle."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Eksport mislyktes"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontaktdataene ble ikke eksportert.\nGrunn: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importerer <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Kunne ikke lese vCard-data"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Import av vCard-filen <xliff:g id="FILENAME">%s</xliff:g> er fullført"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importeringen av <xliff:g id="FILENAME">%s</xliff:g> ble avbrutt"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> vil importeres snart."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Filen importeres snart."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Forespørselen om vCard-import ble avvist. Prøv på nytt senere."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontaktene eksporteres snart."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Forespørselen om eksport av vCard ble avvist. Prøv på nytt senere."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Bufrer vCard for import til lokal, midlertidig lagring. Selve importen starter snart."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Kunne ikke importere vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt mottatt per NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Bufrer"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importerer <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Eksportér til .vcf-fil"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortér etter"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetisk navn"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Vis alltid"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Skjul hvis feltet er tomt"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Fornavn"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Etternavn"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Navneformat"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Fornavnet først"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Etternavnet først"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Kontoer"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Standardkonto for nye kontakter"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Min informasjon"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Definer profilen din"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Om Kontakter"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Del favorittkontaktene"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Del alle kontaktene"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kunne ikke dele kontaktene."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Eksporter kontakter"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importér kontakter fra"</string>
+    <string name="share_error" msgid="948429331673358107">"Denne kontakten kan ikke deles."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Det finnes ingen kontakter å dele."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakter i visning"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakter i visning"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Tilpass visningen"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Lagre"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Søk i kontakter"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritter"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importér"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksportér"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokkerte telefonnumre"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"avslutt søket"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Slett søk"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Konto"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Bruk alltid dette for samtaler"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Ring med et notat"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Skriv et notat å sende med anropet …"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SEND OG RING"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Delversjon"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Lisenser for åpen kildekode"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Lisensdetaljer for programvare med åpen kildekode"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Personvern"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Vilkår"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Lisenser for åpen kildekode"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Kunne ikke åpne nettadressen."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Det er merket av for <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Det er ikke merket av for <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Start et videoanrop"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Slett"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipse"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> sek"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> t <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> sek"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Denne snarveien er slått av"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakten ble fjernet"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importér"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Velg kontakter"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Du har ingen kontakter på SIM-kortet ditt"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakten er allerede i listen din"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-kontakter ble importert</item>
+      <item quantity="one">Én SIM-kontakt ble importert</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kunne ikke importere SIM-kontakter"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importér fra SIM-kort"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Avbryt"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatisk synkronisering er slått av. Trykk for å slå det på."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Fjern"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Synkronisering av kontoer er slått av. Trykk for å slå det på."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Vil du slå på automatisk synkronisering?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Endringer du gjør i alle apper og kontoer, ikke bare Google-kontakter, oppdateres på nett mellom enhetene dine."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Slå på"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Ingen tilkobling"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-kort"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Vis mer"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importen fra SIM-kortet er ferdig"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Importeringen mislyktes"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kunne ikke importére kontakter fra SIM-kortet"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importerer fra SIM-kortet"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
deleted file mode 100644
index 270eecb..0000000
--- a/res/values-ne-rNP/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"सम्पर्कहरू"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"सम्पर्कहरू"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"सम्पर्क हेर्नुहोस्"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"सम्पर्क सम्पादन गर्नुहोस्"</string>
-    <string name="contactsList" msgid="8661624236494819731">"सम्पर्क"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"ठेगाना"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"सिधा डायल गर्नुहोस्"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"सिधा सन्देश"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"सम्पर्क सर्टकट छान्नुहोस्"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"कल गर्नका लागि एउटा नम्बर छान्नुहोस्"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"सन्देश पठाउनका लागि एउटा नम्बर छान्नुहोस्"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"सम्पर्कमा थप्नुहोस्"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"एउटा सम्पर्क छान्नुहोस्"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"नयाँ सम्पर्क सिर्जना गर्नुहोस्"</string>
-    <string name="starredList" msgid="4817256136413959463">"ताराङ्कित"</string>
-    <string name="frequentList" msgid="7154768136473953056">"कहिले कहीँ"</string>
-    <string name="strequentList" msgid="5640192862059373511">"मनपर्नेहरू"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"विवरणहरूलाई सम्पर्क गर्नुहोस्"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"सम्पर्क सम्पादन गर्नुहोस्"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"ठेगाना बनाउनुहोस्"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"समूह सम्पादन गर्नुहोस्"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"समूह सिर्जना गर्नुहोस्"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"बारेमा"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"अद्यावधिकहरू"</string>
-    <string name="searchHint" msgid="8482945356247760701">"सम्पर्कहरू खोज्नुहोस्"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"सम्पर्क हेर्नुहोस्"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"मनपर्नेहरूमा थप्नुहोस्"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"मनपर्नेहरूबाट हटाउनुहोस्"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"मनपर्नेहरूबाट हटाइयो"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"मनपर्नेमा थपियो"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"सम्पादन गर्नुहोस्"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"मेट्नुहोस्"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"तस्बिर परिवर्तन गर्नुहोस्"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"होम स्क्रिनमा राख्नुहोस्"</string>
-    <string name="menu_call" msgid="3992595586042260618">"सम्पर्कलाई कल गर्नुहोस्"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"पाठ सम्पर्क"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"अनलिंक"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"सम्पादन गर्नुहोस्"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"मेट्नुहोस्"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"सम्पर्क थप्नुहोस्"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"समूह थप्नुहोस्"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"यस सम्पर्क बहु सम्पर्कमा अनलिंक गर्न चाहनुहुन्छ?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"अनलिकं गर्नुहोस्"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"तपाईँले पहिल्यै गरेका परिवर्तनहरू सुरक्षित गर्न र यस सम्पर्क बहु सम्पर्कहरूमा अनलिंक गर्न चाहनुहुन्छ?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"सुरक्षित गरी अनलिकं गर्नुहोस्"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"तपाईँले पहिलेनै गरिएका परिवर्तनहरूलाई तपाईँले चयन गरेका सम्पर्क ठेगाना सँग सुरक्षित गरी लिंक गर्न चाहनुहुन्छ?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"सुरक्षित गर्नुहोस् र लिंक गर्नुहोस्"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"लिंक"</string>
-    <string name="menu_save" msgid="1727844363591825909">"सुरक्षित गर्नुहोस्"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"सम्पर्क ठेगानाहरू लिंक गर्नुहोस्"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"तपाईँले <xliff:g id="NAME">%s</xliff:g> मा लिंक हुन चाहनु भएको सम्पर्क ठेगाना चयन गर्नुहोस्:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"सबै सम्पर्कहरू देखाउनुहोस्"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"सुझाव गरिएका सम्पर्कहरू"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"सबै सम्पर्कहरू"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"सम्पर्क ठेगानाहरू लिंक गरियो"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">सम्पर्क ठेगानाहरू मेटिए</item>
-      <item quantity="one"> सम्पर्क ठेगाना मेटियो</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"रिङ्टोन मिलाउनुहोस्"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"भ्वाइसमेलमा सम्पूर्ण कल"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"तपाईँको पढ्ने-मात्र मिल्ने खाताहरूबाट सम्पर्क मेटाउन सकिँदैन, तर तिनीहरूलाई लुकाउन सकिन्छ।"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"लुकाउनुहोस्"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"मेटाउनु पर्ने सम्पर्कको विवरण बहु खाताहरूबाट छन्। पढ्ने-मात्र मिल्ने खाताहरूबाट विवरणहरू लुकाइनेछन्, मेटाइने छैनन्।"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"तपाईँले लिंक गर्नको लागि कम्तीमा दुई सम्पर्क ठेगानाहरू चयन गर्न आवश्यक छ।"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"चयन गरिएका सम्पर्क ठेगानाहरू लिंक गर्ने हो?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"लिंक"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"यो सम्पर्क मेटाउने हो?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"चयन गरिएका सम्पर्क ठेगानाहरू मेटाउने हो?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"तपाईँका पढ्ने-मात्र मिल्ने खाताहरूबाट सम्पर्क ठेगानाहरू मेटाउन सकिँदैन, तर तिनीहरूलाई लुकाउन सकिन्छ।"</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"मेटाउनु पर्ने सम्पर्क ठेगानाको बहु खाताहरूमा विवरणहरू छन्। पढ्न-मात्र मिल्ने खाताहरूबाट विवरणहरू लुकाइनेछन्, मेटाइनेछैनन्।"</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"यो सम्पर्क ठेगाना हटाउँदा बहु खाताहरूबाट विवरणहरू मेटाइनेछन्।"</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"यो सम्पर्क ठेगाना मेटाउने हो?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"मेटाउनुहोस्"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"परिवर्तनहरू रद्द गर्नुहोस्"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"सम्पर्क उपलब्ध छैन।"</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"सम्पर्क गृह स्क्रिनमा थपियो।"</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> गृह स्क्रिनमा थपियो।"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"नयाँ सम्पर्क सिर्जना गर्नुहोस्"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"नयाँ सम्पर्क सिर्जना गर्नुहोस्"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"संगठन"</item>
-    <item msgid="7196592230748086755">"नोट"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ट्याब्लेटमा कुनै पनि तस्वीरहरू उपलव्ध छैनन्।"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"कुनै पनि चित्रहरू फोनमा उपलब्ध छैनन्।"</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"सम्पर्क फोटो"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"कस्टम लेबल नाम"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"कलहरू सिधै भ्वाइसमेलमा पठाउनुहोस्"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"फोटो मेट्नुहोस्"</string>
-    <string name="noContacts" msgid="4955659076981974652">"कुनै सम्पर्कहरू छैन।"</string>
-    <string name="noGroups" msgid="8614664663561385253">"कुनै समूहहरू छैनन्।"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"समूह बनाउनका लागि एउटा खाताको आवश्यक्ता हुन्छ।"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"यो समूहमा कोही छैन।"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"केही थपनका लागि, समुह सम्पादन गर्नुहोस्।"</string>
-    <string name="savingContact" msgid="4075751076741924939">"सम्पर्क बचत गर्दै..."</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"सम्पर्क बचत गरियो।"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"सम्पर्क ठेगानाहरू अनलिंक गरियो"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"सम्पर्क परिवर्तनहरू सुरक्षित गर्न सकेन।"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"सम्पर्क अनलिंक गर्न सकेन।"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"सम्पर्क ठेगाना लिंक गर्न सकिएन।"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"सम्पर्क सुरक्षित गर्दा त्रूटि।"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"सम्पर्क तस्बिर परिवर्तनहरू सुरक्षित गर्न सकिएन।"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"समूह बचत गरियो।"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"समूह परिवर्तनहरू बचत गर्न सकेन।"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>सम्पर्कहरू फोन नम्बर सहित</item>
-      <item quantity="one">फोन नम्बर सहित 1 सम्पर्क</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"फोन नम्बर भएका कुनै सम्पर्कहरू छैनन्"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> फेला पर्‍यो</item>
-      <item quantity="one">१ फेला पर्‍यो</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"कुनै सम्पर्कहरू छैनन्।"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> फेला पर्‍यो</item>
-      <item quantity="one">1 फेला पर्‍यो</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"सबै"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"मनपर्ने"</string>
-    <string name="callBack" msgid="5498224409038809224">"कल फर्काउने"</string>
-    <string name="callAgain" msgid="3197312117049874778">"फेरि कल गर्नुहोस्"</string>
-    <string name="returnCall" msgid="8171961914203617813">"कल फर्काउनुहोस्"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" लाई सम्पर्कमा थप्ने?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"फोटो सम्पर्क गर्नुहोस्"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"जोड"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g>को <xliff:g id="TOTAL_NUMBER">%s</xliff:g> सम्पर्क"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"तपाईँका सम्पर्कहरूका नामहरू"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"यो कार्य सम्हाल्न कुनै पनि अनुप्रयोग पाइएन।"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"अघिल्लो पर्दामा फर्कनको लागि क्लिक गर्नुहोस्"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"फोन नम्बर थप्नुहोस्"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"इमेल थप्नुहोस्"</string>
-    <string name="missing_app" msgid="1466111003546611387">"यो कार्य सम्हाल्न कुनै पनि अनुप्रयोग पाइएन।"</string>
-    <string name="menu_share" msgid="943789700636542260">"साझेदारी गर्नुहोस्"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"सम्पर्कहरूमा थप्नुहोस्"</string>
-    <string name="share_via" msgid="563121028023030093">"मार्फत सम्पर्क ‍साझेदारी गर्नुहोस्"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"खाता अन्तर्गत समूह बनाउनुहोस्"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"भ्वाइस च्याट"</string>
-    <string name="video_chat" msgid="1872255818640336072">"भिडियो च्याट"</string>
-    <string name="connections" msgid="8098440723172028350">"जडानहरू"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"जडान थप्नुहोस्"</string>
-    <string name="recent" msgid="2659189233141493004">"हालैको"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"हालसालैका अद्यावधिकहरू"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> सम्पर्क"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> खाता"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"यो अनुप्रयोगबाट सम्पादन गर्न नमिल्ने।"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"यस उपकरणमा सम्पादनयोग्य छैन।"</string>
-    <string name="take_photo" msgid="7496128293167402354">"तस्वीर लिनुहोस्"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"नयाँ फोटो खिच्नुहोस्"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"फोटो छान्नुहोस्"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"नयाँ तस्बिर चयन गर्नुहोस्"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"सम्पर्क सूची अद्यावधिक हुदै छ।"</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"खोजी कार्य गर्दै..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"चयनित देखाउनुहोस्"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"सबै देखाउनुहोस्"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"सबैलाई चयन गर्नुहोस्"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"सबैलाई अचयन गर्नुहोस्"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"नयाँ खाता थप्नुहोस्"</string>
-    <string name="add_organization" msgid="7311893231158291197">"संगठन थप्नुहोस्"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"मिति"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"समूह नाम"</string>
-    <string name="change_photo" msgid="8530597935483526383">"परिवर्तन गर्नुहोस्"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"प्राथमिक तस्बिर"</string>
-    <string name="description_star" msgid="2605854427360036550">"मनपर्ने"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"सम्पर्क सम्पादन गर्नुहोस्"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"हालको सम्पर्क ठेगानालाई चयन गरिएको सम्पर्क ठेगानासँग लिंक गर्ने हो?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"चयनित सम्पर्कको सम्पादन गर्नका लागि स्विच गर्ने हो? तपाईँले अहिलेसम्म प्रविष्टि गरिएका जानकारीहरू प्रतिलिप हुने छन्।"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"मेरा सम्पर्कहरूमा प्रतिलिपि गर्नुहोस्"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"मेरो सम्पर्कहरूमा थप्नुहोस्"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"निर्देशिका<xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"अनुकूलन"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"सेटिङहरू"</string>
-    <string name="menu_settings" msgid="377929915873428211">"सेटिङहरू"</string>
-    <string name="menu_help" msgid="1680178646764069976">"मद्दत &amp; प्रतिक्रिया"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"विकल्पहरू प्रदर्शन गर्नुहोस्"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g> , <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"फोन नम्बर"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"सम्पर्कहरूमा जोड्नुहोस्"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"सम्पर्कमा थप्नुहोस्"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"बन्द गर्नुहोस्"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> ( <xliff:g id="PHONETIC_NAME">%2$s</xliff:g> )"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"वर्ष सामेल गर्नुहोस्"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"ठेगाना"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"लोड हुँदै..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"एउटा नयाँ सम्पर्क बनाउनुहोस्"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"खाता थप्नुहोस्"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"सम्पर्क आयात गर्नुहोस्"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"नयाँ समूह बनाउनुहोस्"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"नयाँ समूह बनाउनुहोस्"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> समूहहरू</item>
-      <item quantity="one">1 समूह</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" समूह हटाउने हो? (सम्पर्कहरू आफैँ हट्दैनन्।)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> व्यक्तिहरू <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> बाट</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> व्यक्ति <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> बाट</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> व्यक्तिहरु</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> व्यक्ति</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"अर्कोसँग लिंक हुनुअघि सम्पर्क नाम टाइप गर्नुहोस्।"</string>
-    <string name="copy_text" msgid="3257145021583508761">"क्लिपबोर्डमा प्रतिलिपि गर्नुहोस्"</string>
-    <string name="set_default" msgid="4417505153468300351">"पूर्वनिर्धारित मिलाउनुहोस्"</string>
-    <string name="clear_default" msgid="7193185801596678067">"पूर्वनिर्धारित हटाउनुहोस्"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"पाठको प्रतिलिपि  गरियो"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"तपाईँका परिवर्तनहरू रद्द गर्ने?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"खारेज गर्नुहोस्"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"मेरो प्रोफाइल मिलाउनुहोस्"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"व्यक्तिको नाम टाइप गर्नुहोस्"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"समूहको नाम"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"मेरो स्थानीय प्रोफाइल"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"मेरो <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> प्रोफाइल"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"सबै सम्पर्कहरू प्रदर्शन गरिदै"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Google खाता साथमा सम्पर्कले राम्रो काम गर्छ।\n\n• कुनै पनि वेब ब्राउजरबाट पहुँच गर्न सकिन्छ।\n• तपाईँका सम्पर्कहरू सुरक्षित रूपमा जगेडा गर्नुहोस्।"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"तपाईँले फोन नै हराउनु भएको अवस्थामा पनि आफ्ना सम्पर्कहरूलाई सुरक्षित राख्नुहोस्: कुनै अनलाइन सेवासँग सिन्क्रोनाइज गर्नुहोस्।"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"एउटा खाता थप्नुहोस्"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"तपाईँको नयाँ सम्पर्क अद्यावधि गरिने छैन। अनलाइन अद्यावधिक गर्ने एउटा खाता थप्ने हो?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"नयाँ सम्पर्कहरू <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> मा सुरक्षित गरिनेछन्।"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"नयाँ सम्पर्क ठेगानाहरूका लागि पूर्वनिर्धारित खाता छान्‍नुहोस्:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"नयाँ सम्पर्क थप्ने"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"सम्पर्क सम्पादन"</string>
-    <string name="keep_local" msgid="1258761699192993322">"स्थानीय राख्नुहोस्"</string>
-    <string name="add_account" msgid="8201790677994503186">"खाता थप गर्नुहोस्"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"नयाँ खाता थप्नुहोस्"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"डेटाबेस फाइलहरू निर्यात गर्नुहोस्"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"नयाँ सम्पर्क थप्नुहोस्"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"थप हेर्नुहोस्"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कम हेर्नुहोस्"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"सबै हेर्नुहोस्"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"हालैको"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"बारेमा"</string>
-    <string name="send_message" msgid="8938418965550543196">"सन्देश पठाउनुहोस्"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"व्यक्तिगत प्रतिलिपि बनाउँदै..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"हिजो"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"भोली"</string>
-    <string name="today" msgid="8041090779381781781">"आज"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"<xliff:g id="TIME_INTERVAL">%s</xliff:g>मा आज"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"<xliff:g id="TIME_INTERVAL">%s</xliff:g>मा भोली"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(शीर्षकविहीन घटना)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"सेट गर्नुहोस्"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"संगठन"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"उपनाम"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"टिप्पणी"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"वेबसाइट"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"घटना"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"सम्बन्ध"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"खाता"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"नाम"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"इमेल"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"फोन"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"फोटो"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"सम्पर्क सम्पादक विस्तार गर्न क्लिक गर्नुहोस्।"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"सम्पर्क सम्पादक समाप्त गर्न क्लिक गर्नुहोस्।"</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"स्थानको लागि निर्देशनहरू"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"हालैको एसएमएस। <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. प्रतिक्रियाको लागि क्लिक गर्नुहोस्"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"आगमन"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"बहिर्गमन"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"छुटेको"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"हालैको कल। <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. कल फिर्ता गर्न क्लिक गर्नुहोस्"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"तपाईँ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"तपाईंले इमेल क्षेत्र वा फोन क्षेत्रमा व्यक्तिको Hangouts परिचायक प्रविष्ट गर्नु हुँदा Hangouts राम्रो काम गर्दछ।"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"थप क्षेत्रहरू"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"तस्बिर परिवर्तन गर्नुहोस्"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"सम्पादक खोल्न असफल भयो।"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"यसमा सुरक्षित गर्दै"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> मा हाल सुरक्षित गर्दै। भिन्‍न खाता परिवर्तन गर्न डबल ट्याप गर्नुहोस्।"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">लिंक गरिएका सम्पर्क ठेगानाहरू (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">लिंक गरिएको सम्पर्क ठेगाना</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> लिंक गरिएका सम्पर्क ठेगानाहरू"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> ( <xliff:g id="PHONETIC_NAME">%s</xliff:g> )"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"सम्पर्क ठेगानाहरू लिंक गर्नुहोस्"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"रद्द गर्नुहोस्"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> सम्भावित दोहोरिएका प्रतिलिपिहरू</item>
-      <item quantity="one">१ सम्भावित दोहोरिएको प्रतिलिपि</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> लिंक गरिएका सम्पर्क ठेगानाहरू</item>
-      <item quantity="one">१ लिंक गरिएको सम्पर्क ठेगाना</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"यो सम्पर्क ठेगाना"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"सम्भावित दोहोरिएका प्रतिलिपिहरू"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"यी सम्पर्कहरू एउटै व्यक्तिको हुन सक्छ। तपाईँले एउटै सम्पर्कको रूपमा तिनीहरूलाई सँगै लिंक गर्न सक्नुहुन्छ।"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"लिंक गरिएका सम्पर्क ठेगानाहरू"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"तपाईंका खाताहरूबाट"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"तस्बिर खिच्नुहोस्"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"सबै तस्बिरहरू"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"तस्बिर छान्‍नुहोस्"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> बाट"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> मेट्नुहोस्"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> मेट्नुहोस्"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> बाट तस्बिर जाँच गरिएको छैन"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> बाट तस्बिर जाँच गरियो"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"अज्ञात खाताको तस्बिर जाँच गरिएन"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"अज्ञात खाताको तस्बिर जाँच गरियो"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"भाषा परिवर्तन प्रतिविम्ब गराउन सम्पर्क सूची अद्यावधिक भइरहेको छ। \n \n कृपया प्रतीक्षा गर्नुहोस्..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"नम्बर थप्नुहोस्"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"नम्बरलाई निषेध गर्नुहोस्"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"नम्बर थप्नुहोस् वा सम्पर्कहरू खोज्नुहोस्"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> माथिको रोक हटाउने हो?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"रोक हटाउनुहोस्"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> माथि रोक लगाउने हो?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"रोक्नुहोस्"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> रोकियो"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> रोकियो"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> अमान्य छ।"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"कल अवरुद्ध अस्थायी रुपमा निष्क्रिय"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"कल अवरुद्ध अस्थायी रुपमा असक्षम गरिएको छ किनभने तपाईँले अन्तिम ४८ घण्टा भित्र यस फोनबाट आपत्कालीन सेवाहरू सम्पर्क गर्नुभयो। एकपटक ४८ घण्टा अवधि समाप्त भएपछि यो स्वचालित रूपले पुनः सक्रिय हुनेछ।"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात गर्नुहोस्"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नम्बरहरू हेर्नुहोस्"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"नम्बर थप्नुहोस्"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"४८ घण्टाको लागि कल निषेध असक्षम गरियो"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"आपत्कालीन कल गरिएको हुनाले असक्षम गरियो।"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"अनडू गर्नुहोस्"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> पहिले नै रोकिएको छ।"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नम्बरमाथिको रोक हटाउनुहोस्"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को लागि सम्पर्क विवरणहरू"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात असफल भयो"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"नम्बरहरू आयात गर्नुहोस्"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"सक्रिय पार्नुहोस्"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
new file mode 100644
index 0000000..462832e
--- /dev/null
+++ b/res/values-ne/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"सम्पर्कहरू"</string>
+    <string name="contactsList" msgid="8661624236494819731">"सम्पर्क"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"सम्पर्क थप्नुहोस्"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"ठेगाना"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"सीधा डायल गर्नुहोस्"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"सीधा सन्देश"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"सम्पर्क छनौट गर्नुहोस्"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"सम्पर्कमा थप्नुहोस्"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"एउटा सम्पर्क छान्नुहोस्"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"चयन गर्नुहोस्"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"नयाँ सम्पर्क सिर्जना गर्नुहोस्"</string>
+    <string name="searchHint" msgid="8482945356247760701">"सम्पर्कहरू खोज्नुहोस्"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"मनपर्नेहरूमा थप्नुहोस्"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"मनपर्नेहरूबाट हटाउनुहोस्"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"मनपर्नेहरूबाट हटाइयो"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"मनपर्नेमा थपियो"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"सम्पादन गर्नुहोस्"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"मेट्नुहोस्"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"तस्बिर परिवर्तन गर्नुहोस्"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"सर्टकट सिर्जना गर्नुहोस्"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"अनलिंक"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"सम्पर्कहरू हटाउनुहोस्"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"लेबलको पुन:नामाकरण गर्नुहोस्"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"लेबल मेटाउनुहोस"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"सम्पर्क थप्नुहोस्"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"सम्पर्कहरू चयन गर्नुहोस्"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"सम्पर्कहरू थप्नुहोस्"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"लेबलबाट हटाउनुहोस्"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"लेबल सिर्जना गर्नुहोस्"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"यस सम्पर्कलाई बहु सम्पर्कमा अनलिंक गर्न चाहनुहुन्छ?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"अनलिकं गर्नुहोस्"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"तपाईँले पहिल्यै गरेका परिवर्तनहरू सुरक्षित गर्न र यस सम्पर्कलाई बहु सम्पर्कहरूमा अनलिंक गर्न चाहनुहुन्छ?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"सुरक्षित गरी अनलिकं गर्नुहोस्"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"तपाईँले पहिलेनै गरिएका परिवर्तनहरूलाई तपाईँले चयन गरेका सम्पर्क ठेगाना सँग सुरक्षित गरी लिंक गर्न चाहनुहुन्छ?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"सुरक्षित गर्नुहोस् र लिंक गर्नुहोस्"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"लिङ्क गर्दै"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"अनलिङ्क गर्दै"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"लिंक"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"लिंक गरिएका सम्पर्कहरू हेर्ने"</string>
+    <string name="menu_save" msgid="1727844363591825909">"सुरक्षित गर्नुहोस्"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"सम्पर्क ठेगानाहरू लिंक गर्नुहोस्"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"तपाईँले <xliff:g id="NAME">%s</xliff:g> मा लिंक हुन चाहनु भएको सम्पर्क ठेगाना चयन गर्नुहोस्:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"सुझाव गरिएका सम्पर्कहरू"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"सबै सम्पर्कहरू"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> लिङ्क गरियो"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"सम्पर्क ठेगानाहरू लिंक गरियो"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> मेटाइयो"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> र <xliff:g id="NAME_1">%2$s</xliff:g> मेटाइयो"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… मेटाइयो"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">सम्पर्क ठेगानाहरू मेटिए</item>
+      <item quantity="one"> सम्पर्क ठेगाना मेटियो</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> सम्पर्कहरू</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> सम्पर्क</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> सम्पर्कहरू · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> सम्पर्क · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google बाट"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> बाट"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"रिङ्टोन मिलाउनुहोस्"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"भ्वाइस मेलमा पठाउनुहोस्"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"भ्वाइस मेलमा नपठाउनुहोस्"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"यो सम्पर्क पढ्न-मात्र मिल्ने खालको हो। यसलाई मेटाउन सकिँदैन तर तपाईंले यसलाई लुकाउन सक्नुहुन्छ।"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"सम्पर्क लुकाउनुहोस्"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"यस सम्पर्कमा रहेका पढ्न-मात्र मिल्ने खाताहरूलाई लुकाइनेछ, मेटाइने छैन।"</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"यो सम्पर्क मेटाउने हो?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"चयन गरिएका सम्पर्क ठेगानाहरू मेटाउने हो?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"तपाईँका पढ्ने-मात्र मिल्ने खाताहरूबाट सम्पर्क ठेगानाहरू मेटाउन सकिँदैन, तर तिनीहरूलाई लुकाउन सकिन्छ।"</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"मेटाउनु पर्ने सम्पर्क ठेगानाको बहु खाताहरूमा विवरणहरू छन्। पढ्न-मात्र मिल्ने खाताहरूबाट विवरणहरू लुकाइनेछन्, मेटाइनेछैनन्।"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"यो सम्पर्क ठेगाना हटाउँदा बहु खाताहरूबाट विवरणहरू मेटाइनेछन्।"</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"यो सम्पर्क ठेगाना मेटाउने हो?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"मेटाउनुहोस्"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"सम्पर्क उपलब्ध छैन।"</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"सम्पर्क गृह स्क्रिनमा थपियो।"</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> गृह स्क्रिनमा थपियो।"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"यन्त्रमा कुनै पनि तस्बिरहरू उपलब्ध छैनन्।"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"सम्पर्क तस्बिर"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"आफू अनुकूल पारिएको लेबलको नाम"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"तस्बिर मेट्नुहोस्"</string>
+    <string name="noContacts" msgid="2228592924476426108">"तपाईंको सम्पर्क ठेगानाहरूको सूची खाली छ"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"यो लेबल अन्तर्गत कुनै सम्पर्कहरू छैनन्"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"यस खातामा कुनै सम्पर्क ठेगानाहरू छैनन्"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"तपाईंको सम्पर्क ठेगानाहरूको सूची खाली छ"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> सुरक्षित गरियो"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"सम्पर्क बचत गरियो।"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"सम्पर्क ठेगानाहरू अनलिंक गरियो"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"सम्पर्कमा गरिएका परिवर्तनहरू सुरक्षित गर्न सकिएन"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"सम्पर्कलाई अनलिंक गर्न सकिएन"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"सम्पर्क ठेगानामा लिंक गर्न सकिएन"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"सम्पर्क सुरक्षित गर्दा त्रुटि भयो"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"सम्पर्क सम्बन्धी तस्बिरमा गरिएका परिवर्तनहरू सुरक्षित गर्न सकिएन"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"लेबल लोड गर्न सकिएन"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"लेबल मेटाइयो"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"लेबल सिर्जना गरियो"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"लेबल सिर्जना गर्न सकिँदैन"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"लेबललाई अद्यावधिक गरियो"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"लेबलबाट हटाइयो"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"लेबलमा थपियो"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"लेबलमा गरिएका परिवर्तनहरूलाई सुरक्षित गर्न सकिएन"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"उक्त लेबल पहिले नै अवस्थित छ"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"केही सम्पर्कहरूका इमेल ठेगाना छैनन्"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"केही सम्पर्कहरूका फोन नम्बर छैनन्"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"इमेल पठाउनुहोस्"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"सन्देश पठाउनुहोस्"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"सम्पर्कहरू छान्नुहोस्"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"पठाउनुहोस्"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"कुनै सम्पर्कहरू छैनन्।"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" लाई सम्पर्कमा थप्ने?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"तपाईँका सम्पर्कहरूका नामहरू"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"अघिल्लो पर्दामा फर्कनको लागि क्लिक गर्नुहोस्"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"फोन नम्बर थप्नुहोस्"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"इमेल थप्नुहोस्"</string>
+    <string name="missing_app" msgid="1466111003546611387">"यो कार्य सम्हाल्न कुनै पनि अनुप्रयोग पाइएन।"</string>
+    <string name="menu_share" msgid="943789700636542260">"साझेदारी गर्नुहोस्"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"सम्पर्कहरूमा थप्नुहोस्"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"थप्नुहोस्"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">यस मार्फत सम्पर्कहरू ‍साझेदारी गर्नुहोस्</item>
+      <item quantity="one">यस मार्फत सम्पर्क ‍साझेदारी गर्नुहोस्</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"खाता छान्नुहोस्"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"लेबल सिर्जना गर्नुहोस्"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"लेबलको पुन:नामाकरण गर्नुहोस्"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"लेबलको नाम"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"लेबलको नाम"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"भ्वाइस च्याट"</string>
+    <string name="video_chat" msgid="1872255818640336072">"भिडियो च्याट"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> सम्पर्क"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> खाता"</string>
+    <string name="take_photo" msgid="7496128293167402354">"तस्बिर लिनुहोस्"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"नयाँ तस्बिर खिच्नुहोस्"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"तस्बिर छान्नुहोस्"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"नयाँ तस्बिर चयन गर्नुहोस्"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"खोजी कार्य गर्दै..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"मिति"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"लेबल"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"रद्द गर्नुहोस्"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"पछाडि"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"बन्द गर्नुहोस्"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"चयनित सम्पर्कको सम्पादन गर्नका लागि स्विच गर्ने हो? तपाईँले अहिलेसम्म प्रविष्टि गरिएका जानकारीहरू प्रतिलिप हुने छन्।"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"निर्देशिका<xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"सेटिङहरू"</string>
+    <string name="menu_settings" msgid="377929915873428211">"सेटिङहरू"</string>
+    <string name="menu_help" msgid="1680178646764069976">"मद्दत &amp; प्रतिक्रिया"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g> , <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"फोन नम्बर"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"सम्पर्कहरूमा जोड्नुहोस्"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"बन्द गर्नुहोस्"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"वर्ष सामेल गर्नुहोस्"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"खाता थप्नुहोस्"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"आयात गर्नुहोस्"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"नयाँ लेबल सिर्जना गर्नुहोस्..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" लेबललाई हटाउने हो? (सम्पर्कहरू मेटिने छैनन्।)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"अर्कोसँग लिंक हुनुअघि सम्पर्क नाम टाइप गर्नुहोस्।"</string>
+    <string name="copy_text" msgid="3257145021583508761">"क्लिपबोर्डमा प्रतिलिपि गर्नुहोस्"</string>
+    <string name="set_default" msgid="4417505153468300351">"पूर्वनिर्धारित मिलाउनुहोस्"</string>
+    <string name="clear_default" msgid="7193185801596678067">"पूर्वनिर्धारित हटाउनुहोस्"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"पाठको प्रतिलिपि  गरियो"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"परिवर्तनहरू खारेज गर्ने हो?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"खारेज गर्नुहोस्"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"रद्द गर्नुहोस्"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"आफू अनुकूल पारिएका कुरालाई खारेज गर्ने हो?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"सम्पर्कहरू खोज्नुहोस्"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"सम्पर्कहरू हटाउनुहोस्"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"मेरो स्थानीय प्रोफाइल"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"मेरो <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> प्रोफाइल"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"एक मिनेट जति लगाएर एउटा खाता थप्नुहोस् जसले तपाईंका सम्पर्कहरूलाई Google मा ब्याक अप गर्ने छ।"</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"नयाँ सम्पर्कहरू <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> मा सुरक्षित गरिनेछन्।"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"नयाँ सम्पर्क ठेगानाहरूका लागि पूर्वनिर्धारित खाता छान्‍नुहोस्:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"नयाँ सम्पर्क बनाउने"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"सम्पर्क सम्पादन"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"अवलोकन मात्र"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"सम्पादन गर्न सम्पर्क छान्नुहोस्"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"लिंक गरिएका सम्पर्कहरू"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"थप्नुहोस्"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"अनलिंक गर्ने"</string>
+    <string name="add_account" msgid="8201790677994503186">"खाता थप्नुहोस्"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"नयाँ खाता थप्नुहोस्"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"डेटाबेस फाइलहरू निर्यात गर्नुहोस्"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"नयाँ सम्पर्क सिर्जना गर्नुहोस्"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"थप हेर्नुहोस्"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कम हेर्नुहोस्"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"हालैको"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"बारेमा"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"एउटा व्यक्तिगत प्रतिलिपि बनाउँदै..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"भोलि"</string>
+    <string name="today" msgid="8041090779381781781">"आज"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"<xliff:g id="TIME_INTERVAL">%s</xliff:g>मा आज"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"<xliff:g id="TIME_INTERVAL">%s</xliff:g>मा भोलि"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(शीर्षकविहीन घटना)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"सेट गर्नुहोस्"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"संगठन"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"उपनाम"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"टिप्पणी"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"वेबसाइट"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"घटना"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"सम्बन्ध"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"नाम"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"इमेल"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"फोन"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"स्थानको लागि निर्देशनहरू"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"हालैको SMS। <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. प्रतिक्रियाको लागि क्लिक गर्नुहोस्"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"आगमन"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"बहिर्गमन"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"छुटेको"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"हालैको कल। <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. कल फिर्ता गर्न क्लिक गर्नुहोस्"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"तपाईं: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"थप क्षेत्रहरू"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"सम्पर्कको तस्बिर बदल्नुहोस्"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"सम्पर्कको तस्बिर थप्नुहोस्"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"सम्पर्कको तस्बिर"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"सम्पादक खोल्न सकिएन।"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"यसमा सुरक्षित गरिँदै"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> को सम्पर्क सम्बन्धी जानकारी सम्पादन गर्न मिल्दैन"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"सम्पर्क ठेगानाहरू लिंक गर्नुहोस्"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"रद्द गर्नुहोस्"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"यो सम्पर्क ठेगाना"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"सम्भावित प्रतिलिपिहरू"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"यी सम्पर्कहरू एउटै व्यक्तिको हुन सक्छ। तपाईँले एउटै सम्पर्कको रूपमा तिनीहरूलाई सँगै लिंक गर्न सक्नुहुन्छ।"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> मेट्नुहोस्"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> मेट्नुहोस्"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"सुझावहरू"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"नयाँ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"नेभिगेसन ड्रअर खोल्नुहोस्"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"नेभिगेसन ड्रअर बन्द गर्नुहोस्"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> लेबल"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"लेबलहरू"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"खाताहरू"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"आफ्नो इतिहास संयुक्त रूपमा हेर्नुहोस्"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"कार्यक्रम र सन्देशहरू"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"घटनाक्रमहरू"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"सन्देशहरू"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"सुझावहरू"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"अाफ्ना सम्पर्कहरूलाई व्यवस्थित र उपयोगी बनाइराख्नुहोस्"</string>
+    <string name="undo" msgid="1425165101664071422">"अनडू गर्नुहोस्"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> मा कल गर्नुहोस्"</string>
+    <string name="call_home" msgid="1990519474420545392">"घरमा कल गर्नुहोस्"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"मोबाइलमा कल गर्नुहोस्"</string>
+    <string name="call_work" msgid="5328785911463744028">"काममा कल गर्नुहोस्"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"काम गर्ने ठाँउको फ्याक्समा कल गर्नुहोस्"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"घरको फ्याक्समा कल गर्नुहोस्"</string>
+    <string name="call_pager" msgid="9003902812293983281">"पेजर कल गर्नुहोस्"</string>
+    <string name="call_other" msgid="8563753966926932052">"कल गर्नुहोस्"</string>
+    <string name="call_callback" msgid="1910165691349426858">"कलब्याकलाई कल गर्नुहोस्"</string>
+    <string name="call_car" msgid="3280537320306436445">"कार कल गर्नुहोस्"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"कम्पनीको मुख्यलाई कल गर्नुहोस्"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDNमा कल गर्नुहोस्"</string>
+    <string name="call_main" msgid="6082900571803441339">"मुख्य कल गर्नुहोस्"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"फ्याक्स कल गर्नुहोस्"</string>
+    <string name="call_radio" msgid="8296755876398357063">"रेडियोमा कल गर्नुहोस्"</string>
+    <string name="call_telex" msgid="2223170774548648114">"टेलेक्स कल गर्नुहोस्"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD कल गर्नुहोस्"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"कामको मोबाइलमा कल गर्नुहोस्"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"कामको पेजरमा कल गर्नुहोस्"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> मा कल गर्नुहोस्"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS कल"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (कल गर्नुहोस्)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> मा पाठ सन्देश पठाउनुहोस्"</string>
+    <string name="sms_home" msgid="7524332261493162995">"पाठ गृह"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"पाठ मोबाइल"</string>
+    <string name="sms_work" msgid="2269624156655267740">"पाठ काम"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"पाठलाई काममा फ्याक्स गर्नुहोस्"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"पाठलाई घर फ्याक्स गर्नुहोस्"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"पाठ सन्देश पेजरमा"</string>
+    <string name="sms_other" msgid="806127844607642331">"पाठ"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"पाठ कलब्याक"</string>
+    <string name="sms_car" msgid="7444227058437359641">"पाठ कार"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"कार्पायलय मूख्यमा पाठ सन्देश"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"पाठ ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"पाठ मूल"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"पाठ फ्याक्स"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"पाठ रेडियो"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"पाठ टेलेक्स"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"पाठ TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"पाठ काम मोबाइल"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"पाठ कार्य पेजर"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"पाठ <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"पाठ MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (सन्देश पठाउनुहोस्)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"भिडियो कल बनाउनुहोस्"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"प्रायः सम्पर्क गरिएकाहरूलाई हटाउने हो?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"तपाईंले सम्पर्कहरू र फोन अनुप्रयोगहरूमा बारम्बार सम्पर्क गरेको सूची खाली गर्नुहुनेछ र स्क्रयाचबाट तपाईंको ठेगाना प्राथमिकताहरू सिक्नको लागि इमेल अनुप्रयोगहरूलाई दबाब दिनुहुनेछ।"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"प्रायः सम्पर्क गरिएकाहरूलाई हटाउँदै...."</string>
+    <string name="status_available" msgid="5586870015822828392">"उपलब्ध"</string>
+    <string name="status_away" msgid="1838861100379804730">"टाढा"</string>
+    <string name="status_busy" msgid="9147992455450257136">"व्यस्त"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"अन्य"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"निर्देशिका"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"कार्यको निर्देशिका"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"सबै सम्पर्कहरू"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g>का लागि छिटो सम्पर्क"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(नाम छैन)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"लगातार सम्पर्क गरिएको"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"फोन नम्बर भएका सबै सम्पर्कहरू"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"कार्य प्रोफाइलका सम्पर्कहरू"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"अद्यावधिकहरू हेर्नुहोस्"</string>
+    <string name="account_phone" msgid="7128032778471187553">"यन्त्र"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"नाम"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"उपनाम"</string>
+    <string name="name_given" msgid="4280790853455320619">"पहिलो नाम"</string>
+    <string name="name_family" msgid="7466985689626017037">"थर"</string>
+    <string name="name_prefix" msgid="59756378548779822">"नाम उपसर्ग"</string>
+    <string name="name_middle" msgid="8467433655992690326">"बिचको नाम"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"नाम प्रत्यय"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"फोनेटिक नाम"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ध्वनितात्त्विक नाम"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"बीचको फोनेटिक नाम"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"फोनेटिक थर"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"फोन"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"इमेल"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"ठेगाना"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"संगठन"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"सम्बन्ध"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"विशेष मिति"</string>
+    <string name="sms" msgid="1756857139634224222">"पाठ सन्देश"</string>
+    <string name="postal_address" msgid="8765560217149624536">"ठेगाना"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"कम्पनी"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"शीर्षक"</string>
+    <string name="label_notes" msgid="8337354953278341042">"टिप्पणीहरू"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"आफू अनुकूल"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"वेबसाइट"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"लेबलहरू"</string>
+    <string name="email_home" msgid="8573740658148184279">"इमेल घर"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"इमेल मोबाइल"</string>
+    <string name="email_work" msgid="2807430017302722689">"कार्यालय इमेल"</string>
+    <string name="email_other" msgid="3454004077967657109">"इमेल"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> मा इमेल पठाउनुहोस्"</string>
+    <string name="email" msgid="5668400997660065897">"इमेल"</string>
+    <string name="postal_street" msgid="8133143961580058972">"सडक"</string>
+    <string name="postal_city" msgid="6597491300084895548">"शहर"</string>
+    <string name="postal_region" msgid="6045263193478437672">"स्थिति"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ZIP कोड"</string>
+    <string name="postal_country" msgid="7638264508416368690">"देश"</string>
+    <string name="map_home" msgid="1243547733423343982">"घरको ठेगाना हेर्नुहोस्"</string>
+    <string name="map_work" msgid="1360474076921878088">"काम गर्ने ठाउँको ठेगाना हेर्नुहोस्"</string>
+    <string name="map_other" msgid="3817820803587012641">"ठेगाना हेर्नुहोस्"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ठेगाना हेर्नुहोस्"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM को प्रयोग गरेर च्याट गर्नुहोस्"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"विन्डोज लाइभ प्रयोग गरेर च्याट गर्नुहोस्"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"याहुको प्रयोग गरेर च्याट गर्नुहोस्"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"स्काइपको प्रयोग गरेर च्याट गर्नुहोस्"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ को प्रयोग गरेर च्याट गर्नुहोस्"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google टकको प्रयोग गरेर च्याट गर्नुहोस्"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ को प्रयोग गरेर च्याट गर्नुहोस्"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"ज्याबरको  प्रयोग गरेर च्याट गर्नुहोस्"</string>
+    <string name="chat" msgid="9025361898797412245">"कुराकानी"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"मेटाउनुहोस्"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"नामका थप क्षेत्रहरू देखाउनुहोस्"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"नामका क्षेत्रहरू संक्षिप्त गर्नुहोस्"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"ध्वनितात्त्विक नामका थप क्षेत्रहरू देखाउनुहोस्"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ध्वनितात्त्विक नामका क्षेत्रहरू विस्तृत गर्नुहोस्"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"विस्तृत गर्नुहोस्"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"संक्षिप्त गर्नुहोस्"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"विस्तृत गरियो"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"संक्षिप्त गरियो"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"सबै सम्पर्कहरू"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ताराङ्कित"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"आफू अनुकूल बनाउनुहोस्"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"ठेगाना"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"अन्य सबै सम्पर्कहरू"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"सबै सम्पर्कहरू"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"सिंक समूह हटाउनुहोस्"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"सिंक समूह थप्नुहोस्"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"अधिक समूहहरू"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\" <xliff:g id="GROUP">%s</xliff:g> \" लाई सिङ्कबाट हटाउनाले समूहमा नरहेका सम्पर्कहरूलाई पनि हटाउने छ।"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"प्रदर्शन विकल्पहरू बचत‍ गर्दै ..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"आफू अनुकूल पारिएको दृश्य"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"आयातीत सम्पर्कहरू निम्नमा सुरक्षित गर्नुहोस्:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM कार्ड"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d सम्पर्कहरू</item>
+      <item quantity="one">१ सम्पर्क</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> सम्पर्कहरू • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> सम्पर्क • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf फाइल"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"आयात गर्न केही छैन"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard बाट सम्पर्कहरू पुनर्स्थापना गर्नुहोस्?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g>को आयात रद्द गर्ने?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g>को निर्यात रद्द गर्ने?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard आयात/निर्यात रद्द गर्न सकिएन"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"अज्ञात त्रुटि।"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"खोल्न सकेन \" <xliff:g id="FILE_NAME">%1$s</xliff:g> : \" <xliff:g id="EXACT_REASON">%2$s</xliff:g> ।"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"निर्यातकर्ता: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\" सुरु गर्न सकेन्।"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"कुनै निर्यात गर्न मिल्ने सम्पर्क छैन।"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"तपाईँले आवश्यक अनुमति असक्षम पार्नुभएको छ।"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"\"<xliff:g id="EXACT_REASON">%s</xliff:g>\": निर्यात गर्ने क्रममा त्रुटि भयो।"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O त्रुटि"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"मेमोरी प्रयाप्त छैन। फाइल धेरै ठूलो हुन सक्छ।"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ढाँचा समर्थित छैन।"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> निर्यात कार्य सकियो।"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"सम्पर्क ठेगानाहरूलाई निर्यात गर्ने काम सकियो।"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"सम्पर्कहरूलाई निर्यात गर्ने काम सकियो, सम्पर्कहरूलाई साझेदारी गर्न सूचनामा क्लिक गर्नुहोस्।"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"सम्पर्कहरूलाई आदान-प्रदान गर्न ट्याप गर्नुहोस्।"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"निर्यात <xliff:g id="FILENAME">%s</xliff:g> रद्द गरियो।"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"सम्पर्क डेटा निर्यात हुँदै"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"सम्पर्क सम्बन्धी डेटा निर्यात भइरहेको छ।"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"डेटाबेस जानकारी प्राप्त गर्न सकेन।"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"निर्यात गर्न मिल्ने सम्पर्कहरू छैनन्।"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard कम्पोजर राम्ररी सुर भएन।"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"निर्यात गर्न सकेन"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"सम्पर्क डेटा निर्यात गर्न सकिएन \n कारण: \" <xliff:g id="FAIL_REASON">%s</xliff:g> \""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g>आयात गर्दै"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"VCard डेटा पढ्न सकेन"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> आयात कार्य सकियो"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g>आयात रद्द गरियो"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> शीघ्र आयात गरिने छ।"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"फाइल छिट्टै आयात गरिने छ।"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard निर्यात अनुरोध अस्वीकार गरिएको छ । कृपया पछि पर्यास गर्नुहोस्"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"सम्पर्कहरूलाई चॉंडै निर्यात गरिने छ।"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard निर्यात अनुरोध अस्वीकार गरियो। पछि पुनःप्रयास गर्नुहोस्।"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"सम्पर्क"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard(s) लाई स्थानीय अस्थायी भण्डारणमा क्यास गर्दै। वास्तविक आयात छिट्टै सुरु हुन्छ।"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"VCard आयात गर्न सकेन।"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFCमा सम्पर्क प्राप्त गरियो"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"केसिङ"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"आयात गर्दै <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> / <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> : <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf फाइलमा निर्यात गर्ने"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"यस आधारमा क्रमबद्ध गर्नुहोस्"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ध्वनितात्त्विक नाम"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"सधैँ देखाउनुहोस्"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"खाली छ भने लुकाउनुहोस्"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"पहिलो नाम"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"थर"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"नामको ढाँचा"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"नाम पहिले"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"थर पहिले"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"खाताहरू"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"नयाँ सम्पर्कहरूका लागि पूर्वनिर्धारित खाता"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"मेरा बारेमा जानकारी"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"आफ्नो प्रोफाइल सेट अप गर्नुहोस्"</string>
+    <string name="setting_about" msgid="7014388749752042863">"सम्पर्कहरूका बारेमा"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"मनपर्ने सम्पर्कहरू आदान-प्रदान गर्नुहोस्"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"सबै सम्पर्क आदान-प्रदान गर्ने"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"सम्पर्कहरू आदान-प्रदान गर्न सकिएन।"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"सम्पर्क ठेगानाहरू निर्यात गर्नुहोस्"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"निम्नबाट सम्पर्कहरू आयात गर्नुहोस्"</string>
+    <string name="share_error" msgid="948429331673358107">"यो सम्पर्क साझेदारी गर्न मिल्दैन।"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"आदान-प्रदान गर्न कुनै सम्पर्क ठेगानाहरू छैनन्।"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"प्रदर्शन गर्नका लागि सम्पर्क"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"प्रदर्शन गर्नका लागि सम्पर्क"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"दृश्यलाई आफू अनुकूल पार्नुहोस्"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"सुरक्षित गर्ने"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"सम्पर्क ठेगानाहरू खोज्नुहोस्"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"मनपर्ने"</string>
+    <string name="menu_import" msgid="6107961135813836467">"आयात गर्नुहोस्"</string>
+    <string name="menu_export" msgid="2658783911863503902">"निर्यात गर्नुहोस्"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"रोक लगाइएका नम्बरहरू"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g>मार्फत"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> मार्फत <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"खोजी गर्न रोक्नुहोस्"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"खोजी सफा गर्नुहोस्"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"खाता"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"कल गर्न सधैं यसको प्रयोग गर्नुहोस्"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"एउटा टिपोटसहित कल गर्नुहोस्"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"कलसँग पठाउन एउटा टिपोट टाइप गर्नुहोस्…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"पठाउनुहोस् र कल गर्नुहोस्"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"बिल्ड संस्करण"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"खुला स्रोतका इजाजतपत्रहरू"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"खुला स्रोतको सफ्टवेयरका लागि इजाजतपत्रका विवरणहरू"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"गोपनीयता नीति"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"सेवा सर्तहरू"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"खुला स्रोतका इजाजतपत्रहरू"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url खोल्न सकिएन।"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> जाँच गरियो"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> जाँच गरिएन"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"भिडियो कल गर्नुहोस्"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"मेट्नुहोस्"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"पदलोपचिन्ह"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> सेकेन्ड"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> मिनेट <xliff:g id="SECONDS">%2$s</xliff:g> सेकेन्ड"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> घन्टा <xliff:g id="MINUTES_1">%2$s</xliff:g> मिनेट <xliff:g id="SECONDS">%3$s</xliff:g> सेेकेन्ड"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"यो सर्टकटलाई असक्षम पारिएको छ"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"सम्पर्क हटाइएको थियो"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"आयात गर्नुहोस्"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"सम्पर्कहरू चयन गर्नुहोस्"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"तपाईँको SIM कार्डमा कुनै पनि सम्पर्कहरू छैनन्।"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"तपाईंको सूचीमा सम्पर्क पहिले नै विद्यमान छ"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">SIM को <xliff:g id="COUNT">%d</xliff:g> सम्पर्कहरू आयात गरिए</item>
+      <item quantity="one">SIM को १ सम्पर्क आयात गरियो</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM को सम्पर्कहरू आयात गर्न सकिएन"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM बाट आयात गर्नुहोस्"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"रद्द गर्नुहोस्"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"स्वत:सिङ्क गर्ने सेवा निष्क्रिय छ। सक्रिय गर्न ट्याप गर्नुहोस्।"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"खारेज गर्नुहोस्"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"खाता सिङ्क गर्ने सेवा निष्क्रिय छ। सक्रिय पार्न ट्याप गर्नुहोस्।"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"स्वत: सिंक सेवा सक्रिय गर्ने हो?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"तपाईंले Google सम्पर्कहरूमा मात्र नभई, सबै अनुप्रयोग र खाताहरूमा गरेका परिवर्तनहरू वेब र तपाईंका अन्य यन्त्रहरूका बीचमा अद्यावधिक हुने छन्।"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"खोल्नुहोस्"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"जडान छैन"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"थप देखाउनुहोस्"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM कार्ड आयात गर्ने काम सम्पन्न भयो"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"आयात गर्न सकिएन"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM कार्डबाट सम्पर्कहरू आयात गर्न सकिएन"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM आयात गरिँदै"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index a3abeb5..c97fb6e 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contacten"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contacten"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Contact bekijken"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Contact bewerken"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contacten"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Contact toevoegen"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacten"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direct bellen"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direct bericht"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Kies een contactsnelkoppeling"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Kies een nummer om te bellen"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Kies een nummer voor bericht"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Contact kiezen"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Aan contact toevoegen"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Een contact kiezen"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Selecteren"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Nieuw contact maken"</string>
-    <string name="starredList" msgid="4817256136413959463">"Met ster"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Vaak"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favorieten"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Details van contact"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Contact bewerken"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Contact maken"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Groep bewerken"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Groep maken"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Over"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Updates"</string>
     <string name="searchHint" msgid="8482945356247760701">"Contacten zoeken"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Contact weergeven"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Toevoegen aan favorieten"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Uit favorieten verwijderen"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Verwijderd uit favorieten"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Bewerken"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Verwijderen"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Foto wijzigen"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Op startscherm plaatsen"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Contact bellen"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Sms\'en naar contact"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Loskoppelen"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Bewerken"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Verwijderen"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Contact toevoegen"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Groep toevoegen"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Snelkoppeling maken"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Link verwijderen"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Contacten verwijderen"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Label hernoemen"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Label verwijderen"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Contact toevoegen"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Contacten selecteren"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Contacten toevoegen"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Verwijderen uit label"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Label maken"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Dit contact loskoppelen tot meerdere contacten?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Loskoppelen"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Wil je de aangebrachte wijzigingen opslaan en dit contact loskoppelen tot meerdere contacten?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Opslaan en loskoppelen"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Wil je de aangebrachte wijzigingen opslaan en linken met het geselecteerde contact?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Opslaan en linken"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Linken"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Link verwijderen"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Koppelen"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Gelinkte contacten bekijken"</string>
     <string name="menu_save" msgid="1727844363591825909">"Opslaan"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Contacten linken"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Kies het contact dat je wilt linken met <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Alle contacten weergeven"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Mogelijke contacten"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Alle contacten"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> gelinkt"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contacten gekoppeld"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> verwijderd"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> en <xliff:g id="NAME_1">%2$s</xliff:g> verwijderd"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… verwijderd"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Contacten verwijderd</item>
       <item quantity="one">Contact verwijderd</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contacten</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contact</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contacten · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contact · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Van Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Van <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Beltoon instellen"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Alle oproepen naar voicemail"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Contacten uit alleen-lezen accounts kunnen niet worden verwijderd, maar kunnen wel worden verborgen."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Verbergen"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Het contact dat je verwijdert, bevat gegevens uit meerdere accounts. Gegevens uit alleen-lezen accounts worden verborgen, maar niet verwijderd."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Je moet minimaal twee contacten selecteren om te kunnen koppelen."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Geselecteerde contacten linken?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Linken"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Doorsturen naar voicemail"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Niet doorsturen naar voicemail"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Dit contact is alleen-lezen. Het kan niet worden verwijderd, maar je kunt het wel verbergen."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Contact verbergen"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Gegevens van dit contact uit alleen-lezen accounts worden verborgen, niet verwijderd."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Dit contact verwijderen?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Geselecteerde contacten verwijderen?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Contacten uit alleen-lezen accounts kunnen niet worden verwijderd, maar kunnen wel worden verborgen."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Als je dit contact verwijdert, worden gegevens van meerdere accounts verwijderd."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Dit contact verwijderen?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Verwijderen"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Wijzigingen niet opslaan"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Het contact bestaat niet."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contact is toegevoegd aan het startscherm."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> is toegevoegd aan het startscherm."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Nieuw contact maken"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Nieuw contact maken"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisatie"</item>
-    <item msgid="7196592230748086755">"Opmerking"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Er zijn geen foto\'s beschikbaar op de tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Er zijn geen foto\'s beschikbaar op de telefoon."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Er zijn geen foto\'s beschikbaar op het apparaat."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Contactfoto"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Aangepaste labelnaam"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Oproepen rechtstreeks naar voicemail verzenden"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Foto verwijderen"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Geen contacten"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Geen groepen."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Je hebt een account nodig om groepen te maken."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Geen personen in deze groep."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Bewerk de groep om leden toe te voegen."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Contact opslaan..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Je contactenlijst is leeg"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Geen contacten met dit label"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Geen contacten in dit account"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Je contactenlijst is leeg"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> opgeslagen"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contact opgeslagen"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contacten losgekoppeld"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kan wijzigingen in contact niet opslaan."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Kan contact niet loskoppelen."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kan contact niet linken."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Fout bij opslaan van contact."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Kan wijzigingen in contactfoto niet opslaan."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Groep opgeslagen."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Kan wijzigingen in groep niet opslaan."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacten met telefoonnummers</item>
-      <item quantity="one">1 contact met telefoonnummer</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Geen contacten met telefoonnummers"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> gevonden</item>
-      <item quantity="one">1 gevonden</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Kan wijzigingen in contact niet opslaan"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Kan link voor contact niet verwijderen"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kan contact niet linken"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Fout bij opslaan van contact"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Kan wijzigingen in contactfoto niet opslaan"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Kan label niet laden"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Label verwijderd"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Label gemaakt"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Kan label niet maken"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Label geüpdatet"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Verwijderd uit label"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Toegevoegd aan label"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Kan labelwijzigingen niet opslaan"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Dat label bestaat al"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Sommige contacten hebben geen e-mailadres."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Sommige contacten hebben geen telefoonnummer."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"E-mail verzenden"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Bericht verzenden"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Contacten kiezen"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Verzenden"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Geen contacten"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> gevonden</item>
-      <item quantity="one">1 gevonden</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Alle"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favorieten"</string>
-    <string name="callBack" msgid="5498224409038809224">"Terugbellen"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Opnieuw bellen"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Terugbellen"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Voeg \"<xliff:g id="EMAIL">%s</xliff:g>\" toe aan contactpersonen?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"contactfoto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> van <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contacten"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Namen van je contacten"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Er is geen app gevonden om deze actie uit te voeren."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klik om terug te keren naar het vorige scherm"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefoonnummer toevoegen"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"E-mailadres toevoegen"</string>
     <string name="missing_app" msgid="1466111003546611387">"Er is geen app gevonden om deze actie uit te voeren."</string>
     <string name="menu_share" msgid="943789700636542260">"Delen"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Toevoegen aan contacten"</string>
-    <string name="share_via" msgid="563121028023030093">"Contact delen via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Groep in account maken"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Toevoegen"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Contacten delen via</item>
+      <item quantity="one">Contact delen via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Account kiezen"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Label maken"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Label hernoemen"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Labelnaam"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Labelnaam"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Voicechat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videochat"</string>
-    <string name="connections" msgid="8098440723172028350">"Connecties"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Connectie toevoegen"</string>
-    <string name="recent" msgid="2659189233141493004">"Recent"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Recente updates"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-contact"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-account"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Kan niet worden bewerkt vanuit deze app."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Kan niet worden bewerkt op dit apparaat."</string>
     <string name="take_photo" msgid="7496128293167402354">"Foto maken"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Nieuwe foto nemen"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Foto kiezen"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Nieuwe foto selecteren"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Lijst met contactpersonen wordt bijgewerkt."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Zoeken..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Selectie weergeven"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Alles weergeven"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Alles selecteren"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Selectie ongedaan maken"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Nieuw toevoegen"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Organisatie toevoegen"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Groepsnaam"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Wijzigen"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primaire foto"</string>
-    <string name="description_star" msgid="2605854427360036550">"favoriet"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Contact bewerken"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Wil je het huidige contact linken met het geselecteerde contact?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Labelen"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Annuleren"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Terug"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"sluiten"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Wil je overschakelen naar het bewerken van het geselecteerde contact? Gegevens die je tot nu toe hebt ingevoerd, worden gekopieerd."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiëren naar mijn contacten"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Toevoegen aan Mijn contacten"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directory <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Aangepast"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Instellingen"</string>
     <string name="menu_settings" msgid="377929915873428211">"Instellingen"</string>
     <string name="menu_help" msgid="1680178646764069976">"Help en feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Weergaveopties"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefoonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Toevoegen aan contacten"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Aan contact toevoegen"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Sluiten"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Inclusief jaar"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contacten"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Laden..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Een nieuw contact maken"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Account toevoegen"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Contacten importeren"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Nieuwe groep maken"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Nieuwe groep maken"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> groepen</item>
-      <item quantity="one">1 groep</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"De groep \'<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\' verwijderen? (De contacten zelf worden niet verwijderd.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> mensen uit <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoon uit <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> mensen</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoon</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importeren"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Nieuwe maken…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Het label <xliff:g id="GROUP_LABEL">%1$s</xliff:g> verwijderen? (Contacten zelf worden niet verwijderd.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Geef een contactnaam op voordat je dit contact linkt met een ander contact."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopiëren naar klembord"</string>
     <string name="set_default" msgid="4417505153468300351">"Standaard instellen"</string>
     <string name="clear_default" msgid="7193185801596678067">"Standaardwaarden wissen"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Tekst gekopieerd"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Wijzigingen weggooien?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Verwijderen"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Mijn profiel instellen"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Typ de naam van de persoon"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Naam van de groep"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Wijzigingen annuleren?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Weggooien"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Annuleren"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Wijzigingen opslaan?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Contacten zoeken"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Contacten verwijderen"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mijn lokale profiel"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mijn <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-profiel"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Alle contacten worden weergegeven"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Contacten werkt beter met een Google-account.\n\n• Toegang via elke webbrowser.\n• Veilig een back-up van je contacten maken."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Zorg dat je contacten veilig zijn, zelfs wanneer je je telefoon verliest: synchroniseer met een online service."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Account toevoegen"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Er wordt geen back-up van je nieuwe contact gemaakt. Een account toevoegen waarmee online een back-up van contacten wordt gemaakt?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Voeg snel een account toe om een back-up van je contacten te maken op Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nieuwe contacten worden opgeslagen in <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Kies een standaardaccount voor nieuwe contacten"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Contact toevoegen"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Nieuw contact maken"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Contact bewerken"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Lokaal opslaan"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Alleen weergeven"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Contact kiezen om te bewerken"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Gelinkte contacten"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Toevoegen"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Verwijder link"</string>
     <string name="add_account" msgid="8201790677994503186">"Account toevoegen"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Nieuw account toevoegen"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Databasebestanden exporteren"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"nieuw contact toevoegen"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Nieuw contact maken"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Meer weergeven"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Minder weergeven"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Alles weergeven"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recent"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Over"</string>
-    <string name="send_message" msgid="8938418965550543196">"Bericht verzenden"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Een persoonlijke kopie maken..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Gisteren"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Een persoonlijke kopie maken..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Morgen"</string>
     <string name="today" msgid="8041090779381781781">"Vandaag"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Vandaag om <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Morgen om <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Naamloze afspraak)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Instellen"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Chat"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Website"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Evenement"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relatie"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Account"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Naam"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefoon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Klik om contacteditor uit te vouwen."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Klik om contacteditor samen te vouwen."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"routebeschrijving naar locatie"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"recente sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klik om te reageren"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"recente sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik om te reageren"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"binnenkomend"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"uitgaand"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"gemist"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"recente oproep. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. klik om terug te bellen"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"recente oproep. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik om terug te bellen"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Jij: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts werkt beter wanneer je de Hangouts-ID van de betreffende persoon in het veld \'E-mail\' of \'Telefoon\' opgeeft."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Meer velden"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Foto wijzigen"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Kan editor niet openen."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Opslaan in"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Wordt momenteel opgeslagen in <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Dubbeltik om een ander account te kiezen."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Gelinkte contacten (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Gelinkt contact</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> gelinkte contacten"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Meer velden"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Contactfoto wijzigen"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Contactfoto toevoegen"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Contactfoto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Kan editor niet openen."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Opslaan in"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Contactgegevens van <xliff:g id="ACCOUNT">%s</xliff:g> kunnen niet worden bewerkt"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"CONTACTEN LINKEN"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANNULEREN"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mogelijke duplicaten</item>
-      <item quantity="one">1 mogelijk duplicaat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> gelinkte contacten</item>
-      <item quantity="one">1 gelinkt contact</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Dit contact"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mogelijke duplicaten"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Deze contacten zijn mogelijk dezelfde persoon. Je kunt ze linken tot één contact."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Gekoppelde contacten"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Vanuit je accounts"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Een foto maken"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Alle foto\'s"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Foto kiezen"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Van <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> verwijderen"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> verwijderen"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> verwijderen"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto van <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> niet aangevinkt"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto van <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> aangevinkt"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto uit onbekend account niet aangevinkt"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto uit onbekend account aangevinkt"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Lijst met contacten wordt bijgewerkt om de gewijzigde taal te weerspiegelen.\n\nEen ogenblik geduld..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Nummer toevoegen"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Nummer blokkeren"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Voeg nummer toe of zoek contacten"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Blokkering van <xliff:g id="NUMBER">%1$s</xliff:g> opheffen?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"BLOKKERING OPHEFFEN"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> blokkeren?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKKEREN"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> geblokkeerd"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Blokkering van <xliff:g id="NUMBER">%1$s</xliff:g> opgeheven"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is ongeldig."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Oproepblokkering tijdelijk uitgeschakeld"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Oproepblokkering is uitgeschakeld omdat je in de afgelopen 48 uur contact met de noodhulpdiensten hebt opgenomen via deze telefoon. De functie wordt automatisch weer ingeschakeld nadat de periode van 48 uur is verstreken."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importeren"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Nummers bekijken"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Nummer toevoegen"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Oproepblokkering is 48 uur uitgeschakeld"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Uitgeschakeld omdat een noodoproep is geplaatst."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ONGEDAAN MAKEN"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is al geblokkeerd."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Blokkeren van nummer opheffen"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Contactgegevens voor <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importeren mislukt"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Nummers importeren"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Als je naar contacten wilt zoeken, schakel je de contacttoestemming in."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Inschakelen"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Suggesties"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nieuw"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Zijmenu openen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zijmenu sluiten"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Label <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Labels"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Accounts"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Je gezamenlijke geschiedenis bekijken"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Afspraken en berichten"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Afspraken"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Berichten"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Suggesties"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Organiseer je contacten op een overzichtelijke en nuttige manier"</string>
+    <string name="undo" msgid="1425165101664071422">"Ongedaan maken"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> bellen"</string>
+    <string name="call_home" msgid="1990519474420545392">"Bellen naar huis"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Bellen naar mobiel"</string>
+    <string name="call_work" msgid="5328785911463744028">"Bellen naar werk"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Bellen naar fax werk"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Bellen naar huisfax"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Bellen naar pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Bellen"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Bellen naar terugbelnummer"</string>
+    <string name="call_car" msgid="3280537320306436445">"Bellen naar autotelefoon"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Bellen naar hoofdkantoor"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Bellen naar ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Bellen naar algemeen nummer"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Fax bellen"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Bellen naar radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Telex bellen"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Tekststelefoon bellen"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Bellen naar mobiel werk"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Bellen naar pager werk"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> bellen"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Bellen via MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (bellen)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> sms\'en"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Sms\'en naar huis"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Sms\'en naar mobiel"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Sms\'en naar werk"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Sms\'en naar fax werk"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Sms\'en naar huisfax"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Sms\'en naar pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Sms\'en"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Sms\'en naar terugbelnummer"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Sms\'en naar autotelefoon"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Sms\'en naar hoofdkantoor"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Sms\'en naar ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Sms\'en naar algemeen nummer"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Fax sms\'en"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Sms\'en naar radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Sms\'en naar telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Sms\'en naar teksttelefoon"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Sms\'en naar mobiel werk"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Sms\'en naar werkpager"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Sms\'en naar <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Sms\'en via MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (sms\'en)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Videogesprek starten"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Lijst met regelmatige contacten wissen?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Je wist de lijst met contacten waarmee je regelmatig contact opneemt in de apps Contacten en Telefoon, en e-mailapps moeten je voorkeursadressen weer opnieuw leren."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Regelmatige contacten wissen..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Beschikbaar"</string>
+    <string name="status_away" msgid="1838861100379804730">"Afwezig"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Bezet"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Overig"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directory"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Zakelijke contactenlijst"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Alle contacten"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Snelcontact voor <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Geen naam)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Regelmatig contact"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Alle contacten met telefoonnummers"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contacten uit werkprofiel"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Updates bekijken"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Apparaat"</string>
+    <string name="account_sim" msgid="6519016427905087952">"Simkaart"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Naam"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Bijnaam"</string>
+    <string name="name_given" msgid="4280790853455320619">"Voornaam"</string>
+    <string name="name_family" msgid="7466985689626017037">"Achternaam"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Voorvoegsel"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Tweede voornaam"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Achtervoegsel van naam"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetische naam"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetische voornaam"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetische tweede voornaam"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetische achternaam"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefoon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mailadres"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adres"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Chat"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisatie"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relatie"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Speciale datum"</string>
+    <string name="sms" msgid="1756857139634224222">"Sms"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adres"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Bedrijf"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titel"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Opmerkingen"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Aangepast"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Website"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Labels"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mailen naar huis"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-mailen naar mobiel"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mailen naar werk"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> e-mailen"</string>
+    <string name="email" msgid="5668400997660065897">"E-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Straat"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Plaats"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Staat"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postcode"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Land"</string>
+    <string name="map_home" msgid="1243547733423343982">"Thuisadres weergeven"</string>
+    <string name="map_work" msgid="1360474076921878088">"Werkadres weergeven"</string>
+    <string name="map_other" msgid="3817820803587012641">"Adres weergeven"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Adres voor <xliff:g id="CUSTOM_LABEL">%s</xliff:g> bekijken"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chatten via AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chatten via Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chatten via Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chatten via Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chatten via QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chatten via Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chatten via ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chatten via Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"verwijderen"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Meer naamvelden weergeven"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Naamvelden samenvouwen"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Meer fonetische naamvelden weergeven"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Fonetische naamvelden samenvouwen"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Uitvouwen"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Samenvouwen"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Uitgevouwen"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Samengevouwen"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Alle contacten"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Met ster"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Aanpassen"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contacten"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Alle andere contacten"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Alle contacten"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Synchronisatiegroep verwijderen"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Synchronisatiegroep toevoegen"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Meer groepen…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Als je \'<xliff:g id="GROUP">%s</xliff:g>\' verwijdert uit de synchronisatie, worden ook contacten die niet bij een groep horen uit de synchronisatie verwijderd."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Weergaveopties opslaan..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Aangepaste weergave"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Geïmporteerde contacten opslaan in:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Simkaart"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"Simkaart <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contacten</item>
+      <item quantity="one">1 contact</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contacten • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contact • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"VCF-bestand"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Niets te importeren"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Contacten importeren van vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Import van <xliff:g id="FILENAME">%s</xliff:g> annuleren?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Export van <xliff:g id="FILENAME">%s</xliff:g> annuleren?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Kan vCard-import/export niet annuleren"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Onbekende fout."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Kan \'<xliff:g id="FILE_NAME">%1$s</xliff:g>\' niet openen: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Kan het exportprogramma niet starten: \'<xliff:g id="EXACT_REASON">%s</xliff:g>\'."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Er is geen contact dat kan worden geëxporteerd."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Je hebt een vereist recht uitgeschakeld."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Er is een fout opgetreden tijdens het exporteren: \'<xliff:g id="EXACT_REASON">%s</xliff:g>\'."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O-fout"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Onvoldoende geheugen. Het bestand is mogelijk te groot."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"De indeling wordt niet ondersteund."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Exporteren van <xliff:g id="FILENAME">%s</xliff:g> voltooid."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Contacten geëxporteerd."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"De contacten zijn geëxporteerd. Klik op de melding om contacten te delen."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Tik om contacten te delen."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exporteren van <xliff:g id="FILENAME">%s</xliff:g> geannuleerd."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Contactgegevens exporteren"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Contactgegevens worden geëxporteerd."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Kan databasegegevens niet ophalen."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Er zijn geen contacten die kunnen worden geëxporteerd."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"De vCard-editor is niet correct gestart."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Kan niet exporteren"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"De contactgegevens zijn niet geëxporteerd.\nReden: \'<xliff:g id="FAIL_REASON">%s</xliff:g>\'"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> importeren"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Kan vCard-gegevens niet lezen"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Importeren van vCard <xliff:g id="FILENAME">%s</xliff:g> voltooid"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importeren van <xliff:g id="FILENAME">%s</xliff:g> geannuleerd"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> wordt binnenkort geïmporteerd."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Het bestand wordt binnenkort geïmporteerd."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Verzoek voor vCard-import is geweigerd. Probeer het later opnieuw."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Contacten worden binnenkort geëxporteerd."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Verzoek voor vCard-export is geweigerd. Probeer het later opnieuw."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contact"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Bezig met opslaan van vCard(s) in de lokale tijdelijke opslag. Het daadwerkelijke importeren begint binnenkort."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Kan vCard niet importeren."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contact via NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"In cachegeheugen opslaan"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importeren <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exporteren naar VCF"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sorteren op"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetische naam"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Altijd weergeven"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Verbergen indien leeg"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Voornaam"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Achternaam"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Naamindeling"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Voornaam eerst"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Achternaam eerst"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Accounts"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Standaardaccount voor nieuwe contacten"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mijn info"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Je profiel instellen"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Over Contacten"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Favoriete contacten delen"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Alle contacten delen"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kan contacten niet delen."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Contacten exporteren"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Contacten importeren vanuit"</string>
+    <string name="share_error" msgid="948429331673358107">"Dit contact kan niet worden gedeeld."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Er zijn geen contacten om te delen."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Zichtbare contacten"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Zichtbare contacten"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Weergave aanpassen"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Opslaan"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Contacten zoeken"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoriet"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importeren"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exporteren"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Geblokkeerde nummers"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"stoppen met zoeken"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Zoekopdracht wissen"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Account"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Altijd gebruiken voor oproepen"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Oproep met een notitie"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Typ een notitie om te verzenden met de oproep…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"VERZENDEN EN BELLEN"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Buildversie"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Open-sourcelicenties"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Licentiedetails voor open-sourcesoftware"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Privacybeleid"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Servicevoorwaarden"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Open-sourcelicenties"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Kan de URL niet openen."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> geselecteerd"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> niet geselecteerd"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Videogesprek starten"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Verwijderen"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Weglatingsteken"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> sec"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> u <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> sec"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Deze snelkoppeling is uitgeschakeld"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Contact is verwijderd"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importeren"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Contacten selecteren"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Geen contacten op je simkaart"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Contact staat al in je lijst"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contacten op simkaart geïmporteerd</item>
+      <item quantity="one">1 contact op simkaart geïmporteerd</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kan contacten op simkaart niet importeren"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importeren van simkaart"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Annuleren"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatisch synchroniseren is uitgeschakeld. Tik om in te schakelen."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Sluiten"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Accountsynchronisatie is uitgeschakeld. Tik om in te schakelen."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Automatisch synchroniseren inschakelen?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Wijzigingen die je aanbrengt in alle apps en accounts, niet alleen in Google Contacten, worden gesynchroniseerd tussen internet en je apparaten."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Inschakelen"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Geen verbinding"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"Simkaart"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Meer weergeven"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importeren van simkaart voltooid"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Importeren mislukt"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kan geen contacten importeren van de simkaart"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Sim importeren"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
deleted file mode 100644
index 3a6df1d..0000000
--- a/res/values-pa-rIN/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"ਸੰਪਰਕ"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"ਸੰਪਰਕ"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"ਸੰਪਰਕ ਦੇਖੋ"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"ਸੰਪਰਕ ਬਣਾਓ"</string>
-    <string name="contactsList" msgid="8661624236494819731">"ਸੰਪਰਕ"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"ਸੰਪਰਕ"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"ਸਿੱਧਾ ਡਾਇਲ ਕਰੋ"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"ਸਿੱਧਾ ਸੁਨੇਹਾ"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"ਇੱਕ ਸੰਪਰਕ ਸ਼ੌਰਟਕਟ ਚੁਣੋ"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"ਕਾਲ ਕਰਨ ਲਈ ਇੱਕ ਨੰਬਰ ਚੁਣੋ"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"ਸੁਨੇਹੇ ਲਈ ਇੱਕ ਨੰਬਰ ਚੁਣੋ"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"ਸੰਪਰਕ ਵਿੱਚ ਜੋੜੋ"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ਇੱਕ ਸੰਪਰਕ ਚੁਣੋ"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ਨਵਾਂ ਸੰਪਰਕ ਬਣਾਓ"</string>
-    <string name="starredList" msgid="4817256136413959463">"ਸਟਾਰ ਵਾਲੇ"</string>
-    <string name="frequentList" msgid="7154768136473953056">"ਅਕਸਰ"</string>
-    <string name="strequentList" msgid="5640192862059373511">"ਮਨਪਸੰਦ"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"ਸੰਪਰਕ ਵੇਰਵੇ"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"ਸੰਪਰਕ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"ਸੰਪਰਕ ਬਣਾਓ"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"ਸਮੂਹ ਦਾ ਸੰਪਾਦਨ ਕਰੋ"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"ਸਮੂਹ ਬਣਾਓ"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"ਇਸਦੇ ਬਾਰੇ"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"ਅਪਡੇਟਸ"</string>
-    <string name="searchHint" msgid="8482945356247760701">"ਸੰਪਰਕ ਖੋਜੋ"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"ਸੰਪਰਕ ਦੇਖੋ"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"ਮਨਪਸੰਦ ਵਿੱਚ ਜੋੜੋ"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"ਮਨਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ਮਨਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਇਆ ਗਿਆ"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ਮਨਪਸੰਦ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"ਸੰਪਾਦਿਤ ਕਰੋ"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"ਮਿਟਾਓ"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ਫੋਟੋ ਬਦਲੋ"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ਹੋਮ ਸਕ੍ਰੀਨ ਤੇ ਰੱਖੋ"</string>
-    <string name="menu_call" msgid="3992595586042260618">"ਸੰਪਰਕ ਨੂੰ ਕਾਲ ਕਰੋ"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"ਟੈਕਸਟ ਸੰਪਰਕ"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"ਅਨਲਿੰਕ ਕਰੋ"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"ਸੰਪਾਦਿਤ ਕਰੋ"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"ਮਿਟਾਓ"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"ਸੰਪਰਕ ਜੋੜੋ"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"ਸਮੂਹ ਜੋੜੋ"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"ਕੀ ਇਸ ਸੰਪਰਕ ਨੂੰ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਸੰਪਰਕਾਂ ਵਿੱਚ ਅਨਲਿੰਕ ਕਰਨਾ ਹੈ?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ਅਨਲਿੰਕ ਕਰੋ"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ਕੀ ਤੁਸੀਂ ਤੁਹਾਡੇ ਵੱਲੋਂ ਪਹਿਲਾਂ ਤੋਂ ਕੀਤੇ ਬਦਲਾਵਾਂ ਨੂੰ ਸਹੇਜਣਾ ਅਤੇ ਇਸ ਸੰਪਰਕ ਨੂੰ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਸੰਪਰਕਾਂ ਵਿੱਚ ਅਨਲਿੰਕ ਕਰਨਾ ਚਾਹੋਗੇ?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"ਸਹੇਜੋ ਅਤੇ ਅਨਲਿੰਕ ਕਰੋ"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"ਕੀ ਤੁਸੀਂ ਤੁਹਾਡੇ ਵੱਲੋਂ ਪਹਿਲਾਂ ਤੋਂ ਕੀਤੇ ਬਦਲਾਵਾਂ ਨੂੰ ਸਹੇਜਣਾ ਅਤੇ ਚੁੁਣੇ ਗਏ ਸੰਪਰਕ ਨਾਲ ਲਿੰਕ ਕਰਨਾ ਚਾਹੋਗੇ?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"ਸਹੇਜੋੋ ਅਤੇ ਲਿੰਕ ਕਰੋ"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"ਲਿੰਕ"</string>
-    <string name="menu_save" msgid="1727844363591825909">"ਸੁਰੱਖਿਅਤ ਕਰੋ"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ਸੰਪਰਕ ਲਿੰਕ ਕਰੋ"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> ਨਾਲ ਲਿੰਕ ਕਰਨ ਲਈ ਸੰਪਰਕ ਚੁਣੋ:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"ਸਾਰੇ ਸੰਪਰਕ ਦਿਖਾਓ"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"ਸੁਝਾਏ ਗਏ ਸੰਪਰਕ"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ਸਾਰੇ ਸੰਪਰਕ"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ਸੰਪਰਕ ਲਿੰਕ ਕੀਤੇ ਗਏ"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one"> ਸੰਪਰਕ ਹਟਾਏ</item>
-      <item quantity="other"> ਸੰਪਰਕ ਹਟਾਏ</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ਰਿੰਗਟੋਨ ਸੈਟ ਕਰੋ"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"ਵੌਇਸਮੇਲ ਵਿੱਚ ਸਾਰੀਆਂ ਕਾਲਾਂ"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"ਤੁਹਾਡੇ ਰੀਡ-ਓਨਲੀ ਖਾਤਿਆਂ ਤੋਂ ਸੰਪਰਕ ਹਟਾਏ ਨਹੀਂ ਜਾ ਸਕਦੇ ਹਨ, ਪਰ ਇਹਨਾਂ ਨੂੰ ਲੁਕਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"ਲੁਕਾਓ"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"ਇਸ ਹਟਾਏ ਜਾਣ ਵਾਲੇ ਸੰਪਰਕ ਕੋਲ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਖਾਤਿਆਂ  ਦੇ ਵੇਰਵੇ ਹਨ। ਰੀਡ-ਓਨਲੀ ਖਾਤਿਆਂ ਦੇ ਵੇਰਵੇ ਮਿਟਾਏ ਨਹੀਂ, ਲੁਕਾਏ ਜਾਣਗੇ।"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"ਤੁਹਾਨੂੰ ਇੱਕ ਲਿੰਕ ਪਰਫੌਰਮ ਕਰਨ ਲਈ ਘੱਟੋ-ਘੱਟ ਦੋ ਸੰਪਰਕ ਚੁਣਨ ਦੀ ਲੋੜ ਹੈ।"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"ਕੀ ਚੁਣੇ ਗਏ ਸੰਪਰਕਾਂ ਨੂੰ ਲਿੰਕ ਕਰਨਾ ਹੈ?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"ਲਿੰਕ ਕਰੋ"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"ਕੀ ਇਸ ਸੰਪਰਕ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ਕੀ ਚੁਣੇ ਸੰਪਰਕ ਹਟਾਉਣੇ ਹਨ?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ਤੁਹਾਡੇ ਰੀਡ-ਓਨਲੀ ਖਾਤਿਆਂ ਤੋਂ ਸੰਪਰਕ ਹਟਾਏ ਨਹੀਂ ਜਾ ਸਕਦੇ ਹਨ, ਪਰ ਇਹਨਾਂ ਨੂੰ ਲੁਕਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ਇਹਨਾਂ ਹਟਾਏ ਜਾਣ ਵਾਲੇ ਸੰਪਰਕਾਂ ਕੋਲ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਖਾਤਿਆਂ ਦੇ ਵੇਰਵੇ ਹਨ। ਰੀਡ-ਓਨਲੀ ਖਾਤਿਆਂ ਦੇ ਵੇਰਵੇ ਮਿਟਾਏ ਨਹੀਂ, ਲੁਕਾਏ ਜਾ ਸਕਦੇ ਹਨ।"</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ਇਸ ਸੰਪਰਕ ਨੂੰ ਹਟਾਉਣਾ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਖਾਤਿਆਂ ਤੋਂ ਵੇਰਵੇ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"ਕੀ ਇਸ ਸੰਪਰਕ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ਹਟਾਓ"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"ਬਦਲਾਵਾਂ ਬਰਖਾਸਤ ਕਰੋ"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"ਸੰਪਰਕ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।"</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"ਸੰਪਰਕ ਮੁੱਖ ਸਕ੍ਰੀਨ \'ਤੇ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ।"</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ਮੁੱਖ ਸਕ੍ਰੀਨ \'ਤੇ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ।"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"ਨਵਾਂ ਸੰਪਰਕ ਬਣਾਓ"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"ਨਵਾਂ ਸੰਪਰਕ ਬਣਾਓ"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"ਕੰਪਨੀ"</item>
-    <item msgid="7196592230748086755">"ਸੂਚਨਾ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ਟੈਬਲੇਟ ਤੇ ਕੋਈ ਤਸਵੀਰਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ।"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ਫੋਨ ਤੇ ਕੋਈ ਤਸਵੀਰਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ।"</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ਸੰਪਰਕ ਫੋਟੋ"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ਕਸਟਮ ਲੇਬਲ ਨਾਮ"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ਸਿੱਧੇ ਵੌਇਸਮੇਲ ਵਿੱਚ ਕਾਲਾਂ ਭੇਜੋ"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ਫੋਟੋ ਹਟਾਓ"</string>
-    <string name="noContacts" msgid="4955659076981974652">"ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ"</string>
-    <string name="noGroups" msgid="8614664663561385253">"ਕੋਈ ਸਮੂਹ ਨਹੀਂ।"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"ਸਮੂਹ ਬਣਾਉਣ ਲਈ ਤੁਹਾਨੂੰ ਇੱਕ ਖਾਤਾ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੈ।"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ਇਸ ਸਮੂਹ ਵਿੱਚ ਕੋਈ ਲੋਕ ਨਹੀਂ।"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"ਕੁਝ ਸ਼ਾਮਲ ਕਰਨ ਲਈ, ਸਮੂਹ ਸੰਪਾਦਿਤ ਕਰੋ।"</string>
-    <string name="savingContact" msgid="4075751076741924939">"ਸੰਪਰਕ ਸੁਰੱਖਿਅਤ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"ਸੰਪਰਕ ਸਹੇਜਿਆ"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"ਸੰਪਰਕ ਅਨਲਿੰਕ ਕੀਤੇ"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"ਸੰਪਰਕ ਬਦਲਾਵਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"ਸੰਪਰਕ ਅਣਲਿੰਕ ਨਹੀਂ ਕਰ ਸਕਿਆ"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"ਸੰਪਰਕ ਲਿੰਕ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"ਸੰਪਰਕ ਸਹੇਜਣ ਦੌਰਾਨ ਗਲਤੀ।"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"ਸੰਪਰਕ ਫੋਟੋ ਦੇ ਪਰਿਵਰਤਨਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"ਸਮੂਹ ਸੁਰੱਖਿਅਤ ਕੀਤਾ।"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ਸਮੂਹ ਬਦਲਾਵਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਫੋਨ ਨੰਬਰਾਂ ਵਾਲੇ ਸੰਪਰਕ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਫੋਨ ਨੰਬਰਾਂ ਵਾਲੇ ਸੰਪਰਕ</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ਫੋਨ ਨੰਬਰਾਂ ਵਾਲੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਮਿਲਿਆ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਮਿਲਿਆ</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਮਿਲਿਆ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਮਿਲਿਆ</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"ਸਾਰੇ"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"ਮਨਪਸੰਦ"</string>
-    <string name="callBack" msgid="5498224409038809224">"ਕਾਲ ਬੈਕ ਕਰੋ"</string>
-    <string name="callAgain" msgid="3197312117049874778">"ਦੁਬਾਰਾ ਕਾਲ ਕਰੋ"</string>
-    <string name="returnCall" msgid="8171961914203617813">"ਕਾਲ ਤੇ ਵਾਪਸ ਜਾਓ"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"ਕੀ \"<xliff:g id="EMAIL">%s</xliff:g>\" ਨੂੰ ਸੰਪਰਕਾਂ ਵਿੱਚ ਜੋੜਨਾ ਹੈ?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"ਸੰਪਰਕ ਫੋਟੋ"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"ਪਲਸ"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> ਸੰਪਰਕਾਂ ਵਿੱਚੋਂ <xliff:g id="CURRENT_NUMBER">%s</xliff:g>"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਦੇ ਨਾਮ"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ਇਸ ਕਿਰਿਆ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੋਈ ਐਪ ਨਹੀਂ ਮਿਲਿਆ।"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ਪਿਛਲੀ ਸਕ੍ਰੀਨ ਤੇ ਵਾਪਸ ਜਾਣ ਲਈ ਕਲਿਕ ਕਰੋ"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ਫੋਨ ਨੰਬਰ ਜੋੜੋ"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ਈਮੇਲ ਜੋੜੋ"</string>
-    <string name="missing_app" msgid="1466111003546611387">"ਇਸ ਕਿਰਿਆ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੋਈ ਐਪ ਨਹੀਂ ਮਿਲਿਆ।"</string>
-    <string name="menu_share" msgid="943789700636542260">"ਸ਼ੇਅਰ ਕਰੋ"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"ਸੰਪਰਕਾਂ ਵਿੱਚ ਜੋੜੋ"</string>
-    <string name="share_via" msgid="563121028023030093">"ਇਸ ਰਾਹੀਂ ਸੰਪਰਕ ਸ਼ੇਅਰ ਕਰੋ"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"ਖਾਤੇ ਦੇ ਅਧੀਨ ਸਮੂਹ ਬਣਾਓ"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"ਵੌਇਸ ਚੈਟ"</string>
-    <string name="video_chat" msgid="1872255818640336072">"ਵੀਡੀਓ ਚੈਟ"</string>
-    <string name="connections" msgid="8098440723172028350">"ਕਨੈਕਸ਼ਨ"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"ਕਨੈਕਸ਼ਨ ਜੋੜੋ"</string>
-    <string name="recent" msgid="2659189233141493004">"ਹਾਲੀਆ"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"ਹਾਲੀਆ ਅਪਡੇਟਾਂ"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ਸੰਪਰਕ"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ਖਾਤਾ"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ਇਸ ਐਪ ਤੋਂ ਸੰਪਾਦਨਯੋਗ ਨਹੀਂ।"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"ਇਸ ਡਿਵਾਈਸ ਤੇ ਸੰਪਾਦਨਯੋਗ ਨਹੀਂ।"</string>
-    <string name="take_photo" msgid="7496128293167402354">"ਫੋਟੋ ਲਓ"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"ਨਵੀਂ ਫੋਟੋ ਲਓ"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ਫੋਟੋ ਚੁਣੋ"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"ਨਵੀਂ ਫੋਟੋ ਚੁਣੋ"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"ਸੰਪਰਕ ਸੂਚੀ ਅਪਡੇਟ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।"</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"ਖੋਜ ਰਿਹਾ ਹੈ..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"ਚੁਣਿਆ ਗਿਆ ਦਿਖਾਓ"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"ਸਾਰੇ ਦਿਖਾਓ"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"ਸਾਰੇ ਚੁਣੋ"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"ਸਾਰਿਆਂ ਨੂੰ ਅਚੋਣਵਾਂ ਕਰੋ"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"ਨਵਾਂ ਜੋੜੋ"</string>
-    <string name="add_organization" msgid="7311893231158291197">"ਕੰਪਨੀ ਜੋੜੋ"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ਮਿਤੀ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ਸਮੂਹ ਨਾਮ"</string>
-    <string name="change_photo" msgid="8530597935483526383">"ਬਦਲੋ"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"ਪ੍ਰਾਈਮਰੀ ਫੋਟੋ"</string>
-    <string name="description_star" msgid="2605854427360036550">"ਮਨਪਸੰਦ"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"ਸੰਪਰਕ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"ਕੀ ਚੁਣੇ ਗਏ ਸੰਪਰਕ ਨਾਲ ਮੌਜੂਦਾ ਸੰਪਰਕ ਲਿੰਕ ਕਰਨਾ ਹੈ?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ਕੀ ਚੁਣੇ ਗਏ ਸੰਪਰਕ ਨੂੰ ਸੰਪਾਦਿਤ ਕਰਨ ਲਈ ਸਵਿਚ ਕਰਨਾ ਹੈ? ਹੁਣ ਤੱਕ ਤੁਸੀਂ ਜੋ ਜਾਣਕਾਰੀ ਦਰਜ ਕੀਤੀ, ੁਹ ਕਾਪੀ ਕੀਤੀ ਜਾਏਗੀ।"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"ਮੇਰੇ ਸੰਪਰਕਾਂ ਵਿੱਚ ਕਾਪੀ ਕਰੋ"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"ਮੇਰੇ ਸੰਪਰਕਾਂ ਵਿੱਚ ਜੋੜੋ"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"ਡਾਇਰੈਕਟਰੀ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"ਕਸਟਮ"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"ਸੈਟਿੰਗਾਂ"</string>
-    <string name="menu_settings" msgid="377929915873428211">"ਸੈਟਿੰਗਾਂ"</string>
-    <string name="menu_help" msgid="1680178646764069976">"ਸਹਾਇਤਾ ਅਤੇ ਫੀਡਬੈਕ"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ਡਿਸਪਲੇ ਚੋਣਾਂ"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ਫੋਨ ਨੰਬਰ"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"ਸੰਪਰਕਾਂ ਵਿੱਚ ਜੋੜੋ"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"ਸੰਪਰਕ ਵਿੱਚ ਜੋੜੋ"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"ਬੰਦ ਕਰੋ"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"ਸਾਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"ਸੰਪਰਕ"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"ਇੱਕ ਨਵਾਂ ਸੰਪਰਕ ਬਣਾਓ"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ਖਾਤਾ ਜੋੜੋ"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"ਸੰਪਰਕ ਆਯਾਤ ਕਰੋ"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"ਨਵਾਂ ਸਮੂਹ ਬਣਾਓ"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"ਨਵਾਂ ਸਮੂਹ ਬਣਾਓ"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> ਸਮੂਹ</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ਸਮੂਹ</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"ਕੀ ਸਮੂਹ \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ਮਿਟਾਉਣਾ ਹੈ? (ਸੰਪਰਕ ਆਪਣੇ ਆਪ ਨਹੀਂ ਮਿਟਾਏ ਜਾਣਗੇ।)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> ਤੋਂ <xliff:g id="COUNT_2">%1$d</xliff:g> ਲੋਕ</item>
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> ਤੋਂ <xliff:g id="COUNT_2">%1$d</xliff:g> ਲੋਕ</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ਲੋਕ</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ਲੋਕ</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"ਹੋਰ ਨਾਲ ਲਿੰਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸੰਪਰਕ ਨਾਮ ਟਾਈਪ ਕਰੋ।"</string>
-    <string name="copy_text" msgid="3257145021583508761">"ਕਲਿਪਬੋਰਡ ਤੇ ਕਾਪੀ ਕਰੋ"</string>
-    <string name="set_default" msgid="4417505153468300351">"ਡਿਫੌਲਟ ਸੈਟ ਕਰੋ"</string>
-    <string name="clear_default" msgid="7193185801596678067">"ਡਿਫੌਲਟ ਹਟਾਓ"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"ਟੈਕਸਟ ਕਾਪੀ ਕੀਤਾ"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ਕੀ ਬਦਲਾਵ ਬਰਖਾਸਤ ਕਰਨੇ ਹਨ?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"ਰੱਦ ਕਰੋ"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"ਮੇਰੀ ਪ੍ਰੋਫਾਈਲ ਸੈਟ ਅਪ ਕਰੋ"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"ਵਿਅਕਤੀ ਦਾ ਨਾਮ ਟਾਈਪ ਕਰੋ"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"ਸਮੂਹ ਦਾ ਨਾਮ"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"ਮੇਰੀ ਸਥਾਨਕ ਪ੍ਰੋਫਾਈਲ"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"ਮੇਰੀ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ਪ੍ਰੋਫਾਈਲ"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"ਸਾਰੇ ਸੰਪਰਕ ਡਿਸਪਲੇ ਕਰ ਰਿਹਾ ਹੈ"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"ਸੰਪਰਕ Google ਖਾਤੇ ਨਾਲ ਵਧੀਆ ਕੰਮ ਕਰਦੇ ਹਨ।\n\n• ਕਿਸੇ ਵੀ ਵੈਬ ਬ੍ਰਾਊਜ਼ਰ ਤੋਂ ਇਸ ਤੱਕ ਪਹੁੰਚੋ\n• ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੂਪ ਨਾਲ ਬੈਕ ਅਪ ਕਰੋ"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"ਆਪਣੇ ਫੋਨ ਦੇ ਸੰਪਰਕਾਂ ਨੂੰ ਤਦ ਵੀ ਸੁਰੱਖਿਅਤ ਰੱਖੋ ਭਾਵੇਂ ਤੁਹਾਡਾ ਫੋਨ ਗੁਆਚ ਜਾਏ: ਇੱਕ ਔਨਲਾਈਨ ਸੇਵਾ ਨਾਲ ਸਿੰਕ੍ਰੋਨਾਈਜ਼ ਕਰੋ।"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ਇੱਕ ਖਾਤਾ ਜੋੜੋ"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ਤੁਹਾਡਾ ਨਵਾਂ ਸੰਪਰਕ ਬੈਕ ਅਪ ਨਹੀਂ ਕੀਤਾ ਜਾਏਗਾ। ਕੀ ਇੱਕ ਅਜਿਹਾ ਖਾਤਾ ਜੋੜਨਾ ਹੈ ਜੋ ਸੰਪਰਕਾਂ ਨੂੰ ਔਨਲਾਈਨ ਬੈਕ ਅਪ ਕਰਦਾ ਹੈ?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ਨਵੇਂ ਸੰਪਰਕ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੇ ਜਾਣਗੇ।"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ਨਵੇਂ ਸੰਪਰਕਾਂ ਲਈ ਇੱਕ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਖਾਤਾ ਚੁਣੋ:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"ਨਵਾਂ ਸੰਪਰਕ ਜੋੜੋ"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ਸੰਪਰਕ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
-    <string name="keep_local" msgid="1258761699192993322">"ਸਥਾਨਕ ਰੱਖੋ"</string>
-    <string name="add_account" msgid="8201790677994503186">"ਖਾਤਾ ਜੋੜੋ"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"ਨਵਾਂ ਖਾਤਾ ਜੋੜੋ"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"ਡਾਟਾਬੇਸ ਫਾਈਲਾਂ ਨਿਰਯਾਤ ਕਰੋ"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ਨਵਾਂ ਸੰਪਰਕ ਜੋੜੋ"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ਹੋਰ ਦੇਖੋ"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ਘੱਟ ਦੇਖੋ"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ਸਭ ਦੇਖੋ"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"ਹਾਲੀਆ"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"ਇਸਦੇ ਬਾਰੇ"</string>
-    <string name="send_message" msgid="8938418965550543196">"ਸੁਨੇਹਾ ਭੇਜੋ"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ਇੱਕ ਨਿੱਜੀ ਕਾਪੀ ਬਣਾ ਰਿਹਾ ਹੈ..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"ਕੱਲ੍ਹ"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"ਕੱਲ੍ਹ ਨੂੰ"</string>
-    <string name="today" msgid="8041090779381781781">"ਅੱਜ"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"ਅੱਜ <xliff:g id="TIME_INTERVAL">%s</xliff:g> ਵਜੇ"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ਕੱਲ੍ਹ ਨੂੰ <xliff:g id="TIME_INTERVAL">%s</xliff:g> ਵਜੇ"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(ਨਾਮ ਰਹਿਤ ਇਵੈਂਟ)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"ਸੈਟ ਕਰੋ"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"ਕੰਪਨੀ"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"ਉਪਨਾਮ"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"ਸੂਚਨਾ"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"ਵੈਬਸਾਈਟ"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ਇਵੈਂਟ"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"ਰਿਸ਼ਤਾ"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"ਖਾਤਾ"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"ਨਾਮ"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ਈਮੇਲ"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ਫੋਨ"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ਫੋਟੋ"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"ਸੰਪਰਕ ਸੰਪਾਦਕ ਦਾ ਵਿਸਤਾਰ ਕਰਨ ਲਈ ਕਲਿਕ ਕਰੋ।"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"ਸੰਪਰਕ ਸੰਪਾਦਕ ਨਸ਼ਟ ਕਰਨ ਲਈ ਕਲਿਕ ਕਰੋ।"</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਲਈ ਨਿਰਦੇਸ਼"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"ਹਾਲੀਆ sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>। <xliff:g id="PHONE_NUMBER">%s</xliff:g>। <xliff:g id="DATE">%s</xliff:g>। ਜਵਾਬ ਦੇਣ ਲਈ ਕਲਿਕ ਕਰੋ"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ਇਨਕਮਿੰਗ"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ਆਊਟਗੋਇੰਗ"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ਮਿਸਡ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"ਹਾਲੀਆ ਕਾਲ। <xliff:g id="CALL_TYPE">%s</xliff:g>। <xliff:g id="PHONE_NUMBER">%s</xliff:g>। <xliff:g id="DATE">%s</xliff:g>। ਕਾਲ ਬੈਕ ਕਰਨ ਲਈ ਕਲਿਕ ਕਰੋ।"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"ਤੁਸੀਂ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"ਜਦੋਂ ਤੁਸੀਂ ਈਮੇਲ ਖੇਤਰ ਜਾਂ ਫੋਨ ਖੇਤਰ ਵਿੱਚ ਵਿਅਕਤੀ ਦਾ ਹੈਂਗਆਊਟਸ ਆਈਡੈਂਟੀਫਾਇਰ ਦਰਜ ਕਰਦੇ ਹੋ ਤਾਂ ਹੈਂਗਆਊਟਸ ਬਿਹਤਰ ਕੰਮ ਕਰਦਾ ਹੈ।"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"ਹੋਰ ਖੇਤਰ"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ਫੋਟੋ ਬਦਲੋ"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"ਸੰਪਾਦਕ ਨੂੰ ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ।"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"ਨੂੰ ਸਹੇਜ ਰਿਹਾ ਹੈ"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"ਮੌਜੂਦਾ ਤੌਰ \'ਤੇ <xliff:g id="ACCOUNT_NAME">%s</xliff:g> ਵਿੱਚ ਰੱਖਿਅਤ ਕਰ ਰਿਹਾ ਹੈ। ਇੱਕ ਵੱਖਰਾ ਖਾਤਾ ਚੁਣਨ ਲਈ ਦੋ ਵਾਰ ਟੈਪ ਕਰੋ।"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one"> ਲਿੰਕ ਕੀਤੇ ਗਏ ਸੰਪਰਕ ( <xliff:g id="COUNT">%d</xliff:g> )</item>
-      <item quantity="other"> ਲਿੰਕ ਕੀਤੇ ਗਏ ਸੰਪਰਕ ( <xliff:g id="COUNT">%d</xliff:g> )</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> ਲਿੰਕ ਕੀਤੇ ਸੰਪਰਕ"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ਸੰਪਰਕ ਲਿੰਕ ਕਰੋ"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ਰੱਦ ਕਰੋ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਸੰਭਵ ਡੁਪਲੀਕੇਟ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਸੰਭਵ ਡੁਪਲੀਕੇਟ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਲਿੰਕ ਕੀਤੇ ਸੰਪਰਕ</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਲਿੰਕ ਕੀਤੇ ਸੰਪਰਕ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ਇਹ ਸੰਪਰਕ"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ਸੰਭਵ ਡੁਪਲੀਕੇਟ"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ਇਹ ਸੰਪਰਕ ਇਕੋ ਵਿਅਕਤੀ ਦੇ ਹੋ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਇੱਕ ਇੱਕਲੇ ਸੰਪਰਕ ਵੱਜੋਂ ਲਿੰਕ ਕਰ ਸਕਦੇ ਹੋ।"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"ਲਿੰਕ ਕੀਤੇ ਗਏ ਸੰਪਰਕ"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"ਤੁਹਾਡੇ ਖਾਤਿਆਂ ਤੋਂ"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ਇੱਕ ਫੋਟੋ ਲਓ"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"ਸਾਰੀਆਂ ਫੋਟੋਆਂ"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ਫੋਟੋ ਚੁਣੋ"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> ਵੱਲੋਂ"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> ਹਟਾਓ"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> ਹਟਾਓ"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> ਵੱਲੋਂ ਫੋਟੋ ਨਹੀਂ ਜਾਂਚੀ ਗਈ"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> ਵਲੋਂ ਫੋਟੋ ਜਾਂਚੀ ਗਈ"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"ਅਗਿਆਤ ਖਾਤੇ ਦੀ ਫੋਟੋ ਨਹੀਂ ਜਾਂਚੀ ਗਈ"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"ਅਗਿਆਤ ਖਾਤੇ ਦੀ ਫੋਟੋ ਜਾਂਚੀ ਗਈ"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"ਭਾਸ਼ਾ ਵਿੱਚ ਕੀਤੀ ਤਬਦੀਲੀ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਸੰਪਰਕ ਸੂਚੀ ਅੱਪਡੇਟ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।\n\nਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ਨੰਬਰ ਜੋੜੋ"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"ਨੰਬਰ ਨੂੰ ਬਲੌਕ ਕਰੋ"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"ਨੰਬਰ ਜੋੜੋ ਜਾਂ ਸੰਪਰਕ ਖੋਜੋ"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"ਕੀ <xliff:g id="NUMBER">%1$s</xliff:g> ਅਨਲੌਕ ਕਰਨਾ ਹੈ?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ਅਨਬਲੌਕ ਕਰੋ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"ਕੀ <xliff:g id="NUMBER">%1$s</xliff:g> ਬਲੌਕ ਕਰਨਾ ਹੈ?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ਬਲੌਕ ਕਰੋ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ਬਲੌਕ ਕੀਤਾ"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ਅਨਬਲੌਕ ਕੀਤਾ"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ਅਪ੍ਰਮਾਣਿਕ ਹੈ।"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ਕਾਲ ਬਲੌਕਿੰਗ ਆਰਜ਼ੀ ਤੌਰ ਤੇ ਬੰਦ ਹੈ"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ਕਾਲ ਬਲੌਕਿੰਗ ਅਸਮਰੱਥ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ ਕਿਉਂਕਿ ਤੁਸੀਂ ਇਸ ਫੋਨ ਦੁਆਰਾ ਪਿਛਲੇ 48 ਘੰਟਿਆਂ ਤੋਂ ਐਮਰਜੈਂਸੀ ਸੇਵਾਵਾਂ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਹੋਇਆ ਹੈ। ਇਹ 48 ਘੰਟਿਆਂ ਦਾ ਸਮਾਂ ਪੂਰਾ ਹੋਣ ਤੇੋਂ ਬਾਅਦ ਆਟੋਮੈਟਿਕਲੀ ਮੁੜ-ਸਮਰੱਥ ਹੋ ਜਾਵੇਗੀ।"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ਆਯਾਤ ਕਰੋ"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ਨੰਬਰ ਵਿਖਾਓ"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"ਨੰਬਰ ਜੋੜੋ"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ਕਾਲ ਬਲੋੌਕਿੰਗ 48 ਘੰਟਿਆਂ ਲਈ ਅਯੋਗ ਕੀਤੀ ਗਈ"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"ਆਯੋਗ ਕੀਤਾ ਕਿਉਂਕਿ ਇੱਕ ਸੰਕਟ ਕਾਲ ਕੀਤੀ ਗਈ ਸੀ।"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ਪਹਿਲਾਂ ਵਰਗਾ ਕਰੋ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ਪਹਿਲਾਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ਨੰਬਰ ਨੂੰ ਅਨਬਲੌਕ ਕਰੋ"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਲਈ ਸੰਪਰਕ ਵੇਰਵੇ"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ਆਯਾਤ ਅਸਫਲ ਹੋਇਆ"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ਆਯਾਤ ਨੰਬਰ"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ਚਾਲੂ ਕਰੋ"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
new file mode 100644
index 0000000..788a6c3
--- /dev/null
+++ b/res/values-pa/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"ਸੰਪਰਕ"</string>
+    <string name="contactsList" msgid="8661624236494819731">"ਸੰਪਰਕ"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"ਸੰਪਰਕ"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"ਸਿੱਧਾ ਡਾਇਲ ਕਰੋ"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"ਸਿੱਧਾ ਸੁਨੇਹਾ"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"ਸੰਪਰਕ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ਇੱਕ ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"ਚੁਣੋ"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"ਨਵਾਂ ਸੰਪਰਕ ਬਣਾਓ"</string>
+    <string name="searchHint" msgid="8482945356247760701">"ਸੰਪਰਕ ਖੋਜੋ"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ਮਨਪਸੰਦ ਵਿੱਚ ਜੋੜੋ"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ਮਨਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ਮਨਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਇਆ ਗਿਆ"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ਮਨਪਸੰਦ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ਸੰਪਾਦਿਤ ਕਰੋ"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"ਮਿਟਾਓ"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ਫ਼ੋਟੋ ਬਦਲੋ"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"ਸ਼ਾਰਟਕੱਟ ਬਣਾਓ"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"ਅਣਲਿੰਕ ਕਰੋ"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"ਸੰਪਰਕ ਹਟਾਓ"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"ਲੇਬਲ ਦਾ ਨਾਮ ਬਦਲੋ"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"ਲੇਬਲ ਮਿਟਾਓ"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"ਲੇਬਲ ਤੋਂ ਹਟਾਓ"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"ਲੇਬਲ ਬਣਾਓ"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"ਕੀ ਇਸ ਸੰਪਰਕ ਨੂੰ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਸੰਪਰਕਾਂ ਵਿੱਚ ਅਣਲਿੰਕ ਕਰਨਾ ਹੈ?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ਅਣਲਿੰਕ ਕਰੋ"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ਕੀ ਤੁਸੀਂ ਤੁਹਾਡੇ ਵੱਲੋਂ ਪਹਿਲਾਂ ਤੋਂ ਕੀਤੇ ਬਦਲਾਵਾਂ ਨੂੰ ਰੱਖਿਅਤ ਕਰਨਾ ਅਤੇ ਇਸ ਸੰਪਰਕ ਨੂੰ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਸੰਪਰਕਾਂ ਵਿੱਚ ਅਣਲਿੰਕ ਕਰਨਾ ਚਾਹੋਗੇ?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"ਰੱਖਿਅਤ ਅਤੇ ਅਣਲਿੰਕ ਕਰੋ"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"ਕੀ ਤੁਸੀਂ ਤੁਹਾਡੇ ਵੱਲੋਂ ਪਹਿਲਾਂ ਤੋਂ ਕੀਤੇ ਬਦਲਾਵਾਂ ਨੂੰ ਸਹੇਜਣਾ ਅਤੇ ਚੁੁਣੇ ਗਏ ਸੰਪਰਕ ਨਾਲ ਲਿੰਕ ਕਰਨਾ ਚਾਹੋਗੇ?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"ਸਹੇਜੋੋ ਅਤੇ ਲਿੰਕ ਕਰੋ"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"ਲਿੰਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"ਅਣਲਿੰਕ ਹੋ ਰਿਹਾ ਹੈ"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"ਲਿੰਕ"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"ਲਿੰਕ ਕੀਤੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖੋ"</string>
+    <string name="menu_save" msgid="1727844363591825909">"ਰੱਖਿਅਤ ਕਰੋ"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ਸੰਪਰਕ ਲਿੰਕ ਕਰੋ"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> ਨਾਲ ਲਿੰਕ ਕਰਨ ਲਈ ਸੰਪਰਕ ਚੁਣੋ:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"ਸੁਝਾਏ ਗਏ ਸੰਪਰਕ"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"ਸਾਰੇ ਸੰਪਰਕ"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ਲਿੰਕ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"ਸੰਪਰਕ ਲਿੰਕ ਕੀਤੇ ਗਏ"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਮਿਟਾਇਆ ਗਿਆ"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> ਅਤੇ <xliff:g id="NAME_1">%2$s</xliff:g> ਨੂੰ ਮਿਟਾਇਆ ਗਿਆ"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… ਨੂੰ ਮਿਟਾਇਆ ਗਿਆ"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one"> ਸੰਪਰਕ ਹਟਾਏ</item>
+      <item quantity="other"> ਸੰਪਰਕ ਹਟਾਏ</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ਸੰਪਰਕ</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ਸੰਪਰਕ</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> ਸੰਪਰਕ · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> ਸੰਪਰਕ · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google ਤੋਂ"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> ਤੋਂ"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ਰਿੰਗਟੋਨ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"ਵੌਇਸਮੇਲ ਵੱਲ ਰੂਟ ਕਰੋ"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ਵੌਇਸਮੇਲ ਵੱਲ ਰੂਟ ਕਰਨਾ ਹਟਾਓ"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"ਇਹ ਸੰਪਰਕ ਸਿਰਫ਼-ਪੜ੍ਹਨਯੋਗ ਹੈ। ਇਸ ਨੂੰ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ, ਪਰ ਤੁਸੀਂ ਇਸ ਨੂੰ ਲੁਕਾ ਸਕਦੇ ਹੋ।"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"ਸੰਪਰਕ ਲੁਕਾਓ"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"ਇਸ ਸੰਪਰਕ ਵਿਚਲੇ ਸਿਰਫ਼-ਪੜ੍ਹਨਯੋਗ ਖਾਤੇ ਲੁਕਾਏ ਜਾਣਗੇ, ਪਰ ਮਿਟਾਏ ਨਹੀਂ ਜਾਣਗੇ।"</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"ਕੀ ਇਸ ਸੰਪਰਕ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ਕੀ ਚੁਣੇ ਸੰਪਰਕ ਹਟਾਉਣੇ ਹਨ?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ਤੁਹਾਡੇ ਰੀਡ-ਓਨਲੀ ਖਾਤਿਆਂ ਤੋਂ ਸੰਪਰਕ ਹਟਾਏ ਨਹੀਂ ਜਾ ਸਕਦੇ ਹਨ, ਪਰ ਇਹਨਾਂ ਨੂੰ ਲੁਕਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"ਇਹਨਾਂ ਹਟਾਏ ਜਾਣ ਵਾਲੇ ਸੰਪਰਕਾਂ ਕੋਲ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਖਾਤਿਆਂ ਦੇ ਵੇਰਵੇ ਹਨ। ਰੀਡ-ਓਨਲੀ ਖਾਤਿਆਂ ਦੇ ਵੇਰਵੇ ਮਿਟਾਏ ਨਹੀਂ, ਲੁਕਾਏ ਜਾ ਸਕਦੇ ਹਨ।"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ਇਸ ਸੰਪਰਕ ਨੂੰ ਹਟਾਉਣਾ ਇੱਕ ਤੋਂ ਜ਼ਿਆਦਾ ਖਾਤਿਆਂ ਤੋਂ ਵੇਰਵੇ ਮਿਟਾ ਦੇਵੇਗਾ।"</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"ਕੀ ਇਸ ਸੰਪਰਕ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ਹਟਾਓ"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"ਸੰਪਰਕ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।"</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"ਸੰਪਰਕ ਮੁੱਖ ਸਕ੍ਰੀਨ \'ਤੇ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ।"</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ਮੁੱਖ ਸਕ੍ਰੀਨ \'ਤੇ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ।"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"ਡੀਵਾਈਸ \'ਤੇ ਕੋਈ ਤਸਵੀਰਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ।"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ਸੰਪਰਕ ਫ਼ੋਟੋ"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"ਵਿਸ਼ੇਸ਼=ਵਿਉਂਤਬੱਧ ਲੇਬਲ ਨਾਮ"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ਫ਼ੋਟੋ ਹਟਾਓ"</string>
+    <string name="noContacts" msgid="2228592924476426108">"ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਦੀ ਸੂਚੀ ਖਾਲੀ ਹੈ"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ਇਸ ਲੇਬਲ ਨਾਲ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ਇਸ ਖਾਤੇ ਵਿੱਚ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਦੀ ਸੂਚੀ ਖਾਲੀ ਹੈ"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> ਨੂੰ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"ਸੰਪਰਕ ਸਹੇਜਿਆ"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"ਸੰਪਰਕ ਅਣਲਿੰਕ ਕੀਤੇ"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"ਸੰਪਰਕ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨੂੰ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"ਸੰਪਰਕ ਅਣਲਿੰਕ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"ਸੰਪਰਕ ਨੂੰ ਲਿੰਕ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"ਸੰਪਰਕ ਰੱਖਿਅਤ ਕਰਨ ਦੌਰਾਨ ਗੜਬੜ"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"ਸੰਪਰਕ ਦੀ ਫ਼ੋਟੋ ਦੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"ਲੇਬਲ ਲੋਡ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"ਲੇਬਲ ਮਿਟਾਇਆ ਗਿਆ"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"ਲੇਬਲ ਬਣਾਇਆ ਗਿਆ"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"ਲੇਬਲ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"ਲੇਬਲ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"ਲੇਬਲ ਤੋਂ ਹਟਾਏ ਗਏ"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"ਲੇਬਲ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"ਲੇਬਲ ਤਬਦੀਲੀਆਂ ਨੂੰ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ਇਹ ਲੇਬਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"ਕੁਝ ਸੰਪਰਕਾਂ ਨਾਲ ਈਮੇਲਾਂ ਨਹੀਂ ਹਨ।"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"ਕੁਝ ਸੰਪਰਕਾਂ ਨਾਲ ਫ਼ੋਨ ਨੰਬਰ ਨਹੀਂ ਹਨ।"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ਈਮੇਲ ਭੇਜੋ"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"ਸੰਪਰਕਾਂ ਨੂੰ ਚੁਣੋ"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"ਭੇਜੋ"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"ਕੀ \"<xliff:g id="EMAIL">%s</xliff:g>\" ਨੂੰ ਸੰਪਰਕਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਹੈ?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਦੇ ਨਾਮ"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ਪਿਛਲੀ ਸਕ੍ਰੀਨ ਤੇ ਵਾਪਸ ਜਾਣ ਲਈ ਕਲਿਕ ਕਰੋ"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ਫ਼ੋਨ ਨੰਬਰ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ਈਮੇਲ ਜੋੜੋ"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ਇਸ ਕਿਰਿਆ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੋਈ ਐਪ ਨਹੀਂ ਮਿਲਿਆ।"</string>
+    <string name="menu_share" msgid="943789700636542260">"ਸਾਂਝਾ ਕਰੋ"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"ਸੰਪਰਕਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">ਇਸ ਰਾਹੀਂ ਸੰਪਰਕ ਸਾਂਝੇ ਕਰੋ</item>
+      <item quantity="other">ਇਸ ਰਾਹੀਂ ਸੰਪਰਕ ਸਾਂਝੇ ਕਰੋ</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"ਖਾਤਾ ਚੁਣੋ"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"ਲੇਬਲ ਬਣਾਓ"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"ਲੇਬਲ ਦਾ ਨਾਮ ਬਦਲੋ"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ਲੇਬਲ ਨਾਮ"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ਲੇਬਲ ਨਾਮ"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"ਵੌਇਸ ਚੈਟ"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ਵੀਡੀਓ ਚੈਟ"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> ਸੰਪਰਕ"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ਖਾਤਾ"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ਫ਼ੋਟੋ ਲਓ"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"ਨਵੀਂ ਫ਼ੋਟੋ ਲਓ"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ਫ਼ੋਟੋ ਚੁਣੋ"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"ਨਵੀਂ ਫ਼ੋਟੋ ਚੁਣੋ"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"ਖੋਜ ਰਿਹਾ ਹੈ..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"ਮਿਤੀ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ਲੇਬਲ ਕਰੋ"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"ਰੱਦ ਕਰੋ"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"ਪਿੱਛੇ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"ਬੰਦ ਕਰੋ"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ਕੀ ਚੁਣੇ ਗਏ ਸੰਪਰਕ ਨੂੰ ਸੰਪਾਦਿਤ ਕਰਨ ਲਈ ਸਵਿਚ ਕਰਨਾ ਹੈ? ਹੁਣ ਤੱਕ ਤੁਸੀਂ ਜੋ ਜਾਣਕਾਰੀ ਦਰਜ ਕੀਤੀ, ੁਹ ਕਾਪੀ ਕੀਤੀ ਜਾਏਗੀ।"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ਡਾਇਰੈਕਟਰੀ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ਸੈਟਿੰਗਾਂ"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ਸੈਟਿੰਗਾਂ"</string>
+    <string name="menu_help" msgid="1680178646764069976">"ਸਹਾਇਤਾ ਅਤੇ ਪ੍ਰਤੀਕਰਮ"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ਫ਼ੋਨ ਨੰਬਰ"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"ਸੰਪਰਕਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"ਬੰਦ ਕਰੋ"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"ਸਾਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ਖਾਤਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"ਆਯਾਤ ਕਰੋ"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"ਨਵਾਂ ਬਣਾਓ…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"ਕੀ ਲੇਬਲ \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ਮਿਟਾਉਣਾ ਹੈ? (\'ਸੰਪਰਕ ਆਪਣੇ ਆਪ ਨਹੀਂ ਮਿਟਾਏ ਜਾਣਗੇ।)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"ਹੋਰ ਨਾਲ ਲਿੰਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸੰਪਰਕ ਨਾਮ ਟਾਈਪ ਕਰੋ।"</string>
+    <string name="copy_text" msgid="3257145021583508761">"ਕਲਿਪਬੋਰਡ ਤੇ ਕਾਪੀ ਕਰੋ"</string>
+    <string name="set_default" msgid="4417505153468300351">"ਡਿਫੌਲਟ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ਡਿਫੌਲਟ ਹਟਾਓ"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"ਟੈਕਸਟ ਕਾਪੀ ਕੀਤਾ"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"ਕੀ ਤਬਦੀਲੀਆਂ ਖਾਰਜ ਕਰਨੀਆਂ ਹਨ?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ਛੱਡੋ"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"ਰੱਦ ਕਰੋ"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"ਕੀ ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧਾਂ ਨੂੰ ਖਾਰਜ ਕਰਨਾ ਹੈ?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"ਸੰਪਰਕ ਖੋਜੋ"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"ਸੰਪਰਕ ਹਟਾਓ"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"ਮੇਰੀ ਸਥਾਨਕ ਪ੍ਰੋਫਾਈਲ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"ਮੇਰੀ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ਪ੍ਰੋਫਾਈਲ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"ਕਿਸੇ ਉਸ ਖਾਤੇ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਵਿੱਚ ਕੁਝ ਸਮਾਂ ਲਗਾਓ ਜੋ Google \'ਤੇ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਦਾ ਬੈਕਅੱਪ ਲਵੇਗਾ।"</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"ਨਵੇਂ ਸੰਪਰਕ <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੇ ਜਾਣਗੇ।"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"ਨਵੇਂ ਸੰਪਰਕਾਂ ਲਈ ਇੱਕ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਖਾਤਾ ਚੁਣੋ:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"ਨਵਾਂ ਸੰਪਰਕ ਬਣਾਓ"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ਸੰਪਰਕ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"ਸਿਰਫ਼ ਦੇਖਣ ਲਈ"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"ਸੰਪਾਦਿਤ ਕਰਨ ਲਈ ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"ਲਿੰਕ ਕੀਤੇ ਗਏ ਸੰਪਰਕ"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"ਅਣਲਿੰਕ ਕਰੋ"</string>
+    <string name="add_account" msgid="8201790677994503186">"ਖਾਤਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"ਨਵਾਂ ਖਾਤਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ਡਾਟਾਬੇਸ ਫਾਈਲਾਂ ਨਿਰਯਾਤ ਕਰੋ"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"ਨਵਾਂ ਸੰਪਰਕ ਬਣਾਓ"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ਹੋਰ ਦੇਖੋ"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ਘੱਟ ਦੇਖੋ"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ਹਾਲੀਆ"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"ਇਸਦੇ ਬਾਰੇ"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"ਇੱਕ ਨਿੱਜੀ ਕਾਪੀ ਬਣਾ ਰਿਹਾ ਹੈ..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"ਕੱਲ੍ਹ ਨੂੰ"</string>
+    <string name="today" msgid="8041090779381781781">"ਅੱਜ"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ਅੱਜ <xliff:g id="TIME_INTERVAL">%s</xliff:g> ਵਜੇ"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"ਕੱਲ੍ਹ ਨੂੰ <xliff:g id="TIME_INTERVAL">%s</xliff:g> ਵਜੇ"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(ਨਾਮ ਰਹਿਤ ਇਵੈਂਟ)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"ਸੈੱਟ ਕਰੋ"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"ਕੰਪਨੀ"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"ਉਪਨਾਮ"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"ਸੂਚਨਾ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ਵੈੱਬਸਾਈਟ"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ਵਰਤਾਰਾ"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"ਰਿਸ਼ਤਾ"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"ਨਾਮ"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ਈਮੇਲ"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ਫੋਨ"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਲਈ ਨਿਰਦੇਸ਼"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"ਹਾਲੀਆ sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>। <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>। <xliff:g id="DATE">%3$s</xliff:g>। ਜਵਾਬ ਦੇਣ ਲਈ ਕਲਿਕ ਕਰੋ"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ਇਨਕਮਿੰਗ"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"ਆਊਟਗੋਇੰਗ"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ਮਿਸਡ"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"ਹਾਲੀਆ ਕਾਲ। <xliff:g id="CALL_TYPE">%1$s</xliff:g>। <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>। <xliff:g id="DATE">%3$s</xliff:g>। ਕਾਲ ਬੈਕ ਕਰਨ ਲਈ ਕਲਿਕ ਕਰੋ।"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"ਤੁਸੀਂ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"ਹੋਰ ਖੇਤਰ"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"ਸੰਪਰਕ ਫ਼ੋਟੋ ਬਦਲੋ"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"ਸੰਪਰਕ ਫ਼ੋਟੋ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"ਸੰਪਰਕ ਫ਼ੋਟੋ"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"ਸੰਪਾਦਕ ਖੋਲ੍ਹਣਾ ਅਸਫਲ ਰਿਹਾ।"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"ਇਸ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> ਤੋਂ ਪ੍ਰਾਪਤ ਸੰਪਰਕ ਜਾਣਕਾਰੀ ਸੰਪਾਦਿਤ ਕਰਨਯੋਗ ਨਹੀਂ ਹੈ"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ਸੰਪਰਕ ਲਿੰਕ ਕਰੋ"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ਰੱਦ ਕਰੋ"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ਇਹ ਸੰਪਰਕ"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ਸੰਭਵ ਡੁਪਲੀਕੇਟ"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ਇਹ ਸੰਪਰਕ ਇਕੋ ਵਿਅਕਤੀ ਦੇ ਹੋ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਇੱਕ ਇੱਕਲੇ ਸੰਪਰਕ ਵੱਜੋਂ ਲਿੰਕ ਕਰ ਸਕਦੇ ਹੋ।"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> ਹਟਾਓ"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> ਹਟਾਓ"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"ਸੁਝਾਅ"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"ਨਵਾਂ"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"ਆਵਾਗੌਣ ਦਰਾਜ਼ ਖੋਲ੍ਹੋ"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ਆਵਾਗੌਣ ਦਰਾਜ਼ ਬੰਦ ਕਰੋ"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> ਲੇਬਲ"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ਲੇਬਲ"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"ਖਾਤੇ"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"ਆਪਣਾ ਇਤਿਹਾਸ ਇਕੱਠੇ ਤੌਰ \'ਤੇ ਵੇਖੋ"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ਵਰਤਾਰੇ ਅਤੇ ਸੁਨੇਹੇ"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ਵਰਤਾਰੇ"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"ਸੁਨੇਹੇ"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"ਸੁਝਾਅ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਅਤੇ ਲਾਭਕਾਰੀ ਰੱਖੋ"</string>
+    <string name="undo" msgid="1425165101664071422">"ਅਣਕੀਤਾ ਕਰੋ"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_home" msgid="1990519474420545392">"ਘਰ ਦੇ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"ਮੋਬਾਈਲ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_work" msgid="5328785911463744028">"ਕਾਰਜ-ਸਥਾਨ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"ਦਫ਼ਤਰ ਦੇ ਫੈਕਸ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"ਘਰ ਦੇ ਫੈਕਸ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_pager" msgid="9003902812293983281">"ਪੇਜ਼ਰ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_other" msgid="8563753966926932052">"ਕਾਲ ਕਰੋ"</string>
+    <string name="call_callback" msgid="1910165691349426858">"ਕਾਲਬੈਕ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_car" msgid="3280537320306436445">"ਕਾਰ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"ਕੰਪਨੀ ਦੇ ਮੁੱਖ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_main" msgid="6082900571803441339">"ਮੁੱਖ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ਫੈਕਸ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_radio" msgid="8296755876398357063">"ਰੇਡੀਓ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ਟੈਲੈਕਸ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"ਕਾਰਜ-ਸਥਾਨ ਮੋਬਾਈਲ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"ਕਾਰਜ-ਸਥਾਨ ਪੇਜ਼ਰ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ਕਾਲ ਕਰੋ)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ਨੂੰ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ਘਰ ਦੇ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"ਮੋਬਾਈਲ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_work" msgid="2269624156655267740">"ਕਾਰਜ-ਸਥਾਨ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"ਕਾਰਜ-ਸਥਾਨ ਦੇ ਫੈਕਸ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"ਘਰ ਦੇ ਫੈਕਸ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"ਪੇਜ਼ਰ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_other" msgid="806127844607642331">"ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"ਕਾਲਬੈਕ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_car" msgid="7444227058437359641">"ਕਾਰ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"ਕੰਪਨੀ ਦੇ ਮੁੱਖ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_main" msgid="8621625784504541679">"ਮੁੱਖ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ਫੈਕਸ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ਰੇਡੀਓ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ਟੈਲੈਕਸ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"ਕਾਰਜ-ਸਥਾਨ ਮੋਬਾਈਲ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"ਕਾਰਜ-ਸਥਾਨ ਪੇਜ਼ਰ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ਸੁਨੇਹਾ ਭੇਜੋ)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ਵੀਡੀਓ ਕਾਲ ਕਰੋ"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"ਅਕਸਰ ਸੰਪਰਕ ਕੀਤੇ ਹਟਾਉਣੇ ਹਨ?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"ਤੁਸੀਂ ਸੰਪਰਕਾਂ ਅਤੇ ਫ਼ੋਨ ਐਪਾਂ ਵਿੱਚ ਅਕਸਰ ਸੰਪਰਕ ਕੀਤੀ ਸੂਚੀ ਸਾਫ਼ ਕਰੋਂਗੇ ਅਤੇ ਸਕ੍ਰੈਚ ਦੇ ਨਾਲ ਤੁਹਾਡੀਆਂ ਪਤਾ ਤਰਜੀਹਾਂ ਨੂੰ ਜਾਣਨ ਲਈ ਈਮੇਲ ਐਪਾਂ \'ਤੇ ਜ਼ੋਰ ਪਾਓਗੇ।"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"ਅਕਸਰ ਸੰਪਰਕ ਕੀਤੇ ਹਟਾਏ ਜਾ ਰਹੇ ਹਨ..."</string>
+    <string name="status_available" msgid="5586870015822828392">"ਉਪਲਬਧ"</string>
+    <string name="status_away" msgid="1838861100379804730">"ਦੂਰ"</string>
+    <string name="status_busy" msgid="9147992455450257136">"ਰੁਝੇਵੇਂ ਵਿੱਚ"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"ਹੋਰ"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ਡਾਇਰੈਕਟਰੀ"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"ਕਾਰਜ-ਸਥਾਨ ਡਾਇਰੈਕਟਰੀ"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"ਸਾਰੇ ਸੰਪਰਕ"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> ਲਈ ਤਤਕਾਲ ਸੰਪਰਕ"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(ਕੋਈ ਨਾਮ ਨਹੀਂ)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"ਅਕਸਰ ਸੰਪਰਕ ਕੀਤੇ ਗਏ"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ਫ਼ੋਨ ਨੰਬਰਾਂ ਵਾਲੇ ਸਾਰੇ ਸੰਪਰਕ"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"ਕਾਰਜ-ਸਥਾਨ ਪ੍ਰੋਫਾਈਲ ਸੰਪਰਕ"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"ਅੱਪਡੇਟ ਵੇਖੋ"</string>
+    <string name="account_phone" msgid="7128032778471187553">"ਡੀਵਾਈਸ"</string>
+    <string name="account_sim" msgid="6519016427905087952">"ਸਿਮ"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"ਨਾਮ"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"ਉਪਨਾਮ"</string>
+    <string name="name_given" msgid="4280790853455320619">"ਨਾਮ ਦਾ ਪਹਿਲਾ ਭਾਗ"</string>
+    <string name="name_family" msgid="7466985689626017037">"ਨਾਮ ਦਾ ਆਖਰੀ ਭਾਗ"</string>
+    <string name="name_prefix" msgid="59756378548779822">"ਨਾਮ ਅਗੇਤਰ"</string>
+    <string name="name_middle" msgid="8467433655992690326">"ਨਾਮ ਦਾ ਵਿਚਕਾਰਲਾ ਭਾਗ"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"ਨਾਮ ਪਿਛੇਤਰ"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ਫੋਨੈਟਿਕ ਨਾਮ"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ਫੋਨੈਟਿਕ ਨਾਮ ਦਾ ਪਹਿਲਾ ਭਾਗ"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ਫੋਨੈਟਿਕ ਨਾਮ ਦਾ ਵਿਚਾਰਕਲਾ ਭਾਗ"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ਫੋਨੈਟਿਕ ਨਾਮ ਦਾ ਆਖਰੀ ਭਾਗ"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ਫ਼ੋਨ ਨੰਬਰ"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ਈਮੇਲ ਕਰੋ"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"ਪਤਾ"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"ਸੰਗਠਨ"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ਸਬੰਧ"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"ਵਿਸ਼ੇਸ਼ ਮਿਤੀ"</string>
+    <string name="sms" msgid="1756857139634224222">"ਲਿਖਤ ਸੁਨੇਹਾ"</string>
+    <string name="postal_address" msgid="8765560217149624536">"ਪਤਾ"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"ਕੰਪਨੀ"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"ਸਿਰਲੇਖ"</string>
+    <string name="label_notes" msgid="8337354953278341042">"ਨੋਟ-ਕਥਨ"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ਵੈੱਬਸਾਈਟ"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ਲੇਬਲ"</string>
+    <string name="email_home" msgid="8573740658148184279">"ਘਰ ਈਮੇਲ ਕਰੋ"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"ਮੋਬਾਈਲ \'ਤੇ ਈਮੇਲ ਕਰੋ"</string>
+    <string name="email_work" msgid="2807430017302722689">"ਕਾਰਜ-ਸਥਾਨ \'ਤੇ ਈਮੇਲ ਕਰੋ"</string>
+    <string name="email_other" msgid="3454004077967657109">"ਈਮੇਲ ਕਰੋ"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ਨੂੰ ਈਮੇਲ ਕਰੋ"</string>
+    <string name="email" msgid="5668400997660065897">"ਈਮੇਲ ਕਰੋ"</string>
+    <string name="postal_street" msgid="8133143961580058972">"ਗਲੀ"</string>
+    <string name="postal_city" msgid="6597491300084895548">"ਸ਼ਹਿਰ"</string>
+    <string name="postal_region" msgid="6045263193478437672">"ਰਾਜ"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ਜ਼ਿਪ ਕੋਡ"</string>
+    <string name="postal_country" msgid="7638264508416368690">"ਦੇਸ਼"</string>
+    <string name="map_home" msgid="1243547733423343982">"ਘਰ ਦਾ ਪਤਾ ਵੇਖੋ"</string>
+    <string name="map_work" msgid="1360474076921878088">"ਕਾਰਜ-ਸਥਾਨ ਦਾ ਪਤਾ ਵੇਖੋ"</string>
+    <string name="map_other" msgid="3817820803587012641">"ਪਤਾ ਵੇਖੋ"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ਪਤਾ ਵੇਖੋ"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM ਵਰਤਦੇ ਹੋਏ ਚੈਟ ਕਰੋ"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live ਵਰਤਦੇ ਹੋਏ ਚੈਟ ਕਰੋ"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo ਵਰਤਦੇ ਹੋਏ ਚੈਟ ਕਰੋ"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype ਵਰਤਦੇ ਹੋਏ ਚੈਟ ਕਰੋ"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ ਵਰਤਦੇ ਹੋਏ ਚੈਟ ਕਰੋ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk ਵਰਤਦੇ ਹੋਏ ਚੈਟ ਕਰੋ"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ ਵਰਤਦੇ ਹੋਏ ਚੈਟ ਕਰੋ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber ਵਰਤਦੇ ਹੋਏ ਚੈਟ ਕਰੋ"</string>
+    <string name="chat" msgid="9025361898797412245">"ਚੈਟ"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ਮਿਟਾਓ"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"ਹੋਰ ਨਾਮ ਖੇਤਰ ਵਿਖਾਓ"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"ਨਾਮ ਖੇਤਰਾਂ ਨੂੰ ਸੁੰਗੇੜੋ"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"ਹੋਰ ਧੁਨੀਆਤਮਿਕ ਨਾਮ ਖੇਤਰ ਵਿਖਾਓ"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ਫ਼ੋਨੈਟਿਕ ਨਾਮ ਖੇਤਰਾਂ ਨੂੰ ਸੁੰਗੇੜੋ"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"ਵਿਸਤਾਰ ਕਰੋ"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"ਸੁੰਗੇੜੋ"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"ਵਿਸਤਾਰ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"ਸੁੰਗੇੜਿਆ ਗਿਆ"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"ਸਾਰੇ ਸੰਪਰਕ"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ਸਿਤਾਰਾਯੁਕਤ"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਕਰੋ"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"ਸੰਪਰਕ"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"ਹੋਰ ਸਾਰੇ ਸੰਪਰਕ"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"ਸਾਰੇ ਸੰਪਰਕ"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"ਸਮਕਾਲੀਕਰਨ ਸਮੂਹ ਹਟਾਓ"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"ਸਮਕਾਲੀਕਰਨ ਸਮੂਹ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"ਹੋਰ ਸਮੂਹ…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"ਸਮਕਾਲੀਕਰਨ ਵਿੱਚੋਂ \"<xliff:g id="GROUP">%s</xliff:g>\" ਨੂੰ ਹਟਾਉਣ ਨਾਲ ਸਮਕਾਲੀਕਰਨ ਤੋਂ ਕੋਈ ਵੀ ਅਣ-ਸਮੂਹਬੱਧ ਕੀਤੇ ਸੰਪਰਕ ਵੀ ਹਟ ਜਾਣਗੇ।"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ਡਿਸਪਲੇ ਵਿਕਲਪਾਂ ਨੂੰ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਕੀਤਾ ਦ੍ਰਿਸ਼"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"ਆਯਾਤ ਕੀਤੇ ਸੰਪਰਕਾਂ ਨੂੰ ਇਸ ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM ਕਾਰਡ"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d ਸੰਪਰਕ</item>
+      <item quantity="other">%1$d ਸੰਪਰਕ</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> ਸੰਪਰਕ • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> ਸੰਪਰਕ • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ਫ਼ਾਈਲ"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"ਆਯਾਤ ਕਰਨ ਲਈ ਕੁਝ ਨਹੀਂ"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"ਕੀ vCard ਤੋਂ ਸੰਪਰਕ ਆਯਾਤ ਕਰਨੇ ਹਨ?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"ਕੀ <xliff:g id="FILENAME">%s</xliff:g> ਦਾ ਆਯਾਤ ਰੱਦ ਕਰਨਾ ਹੈ?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"ਕੀ <xliff:g id="FILENAME">%s</xliff:g> ਦਾ ਨਿਰਯਾਤ ਰੱਦ ਕਰਨਾ ਹੈ?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard ਆਯਾਤ/ਨਿਰਯਾਤ ਰੱਦ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"ਅਗਿਆਤ ਗੜਬੜ।"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: <xliff:g id="EXACT_REASON">%2$s</xliff:g>।"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"ਨਿਰਯਾਤਕ ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"।"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ਕੋਈ ਵੀ ਨਿਰਯਾਤ ਕਰਨ ਯੋਗ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"ਤੁਸੀਂ ਇੱਕ ਲੋੜੀਂਦੀ ਇਜਾਜ਼ਤ ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਹੈ।"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"ਨਿਰਯਾਤ ਕਰਨ ਦੌਰਾਨ ਇੱਕ ਗੜਬੜ ਹੋਈ: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"।"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O ਗੜਬੜ"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"ਲੋੜੀਂਦੀ ਮੈਮੋਰੀ ਨਹੀਂ ਹੈ। ਸ਼ਾਇਦ ਫ਼ਾਈਲ ਬਹੁਤ ਹੀ ਵੱਡੀ ਹੋ ਸਕਦੀ ਹੈ।"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ਵੰਨਗੀ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ।"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> ਨੂੰ ਨਿਰਯਾਤ ਕਰਨਾ ਪੂਰਾ ਹੋਇਆ।"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"ਸੰਪਰਕਾਂ ਨੂੰ ਨਿਰਯਾਤ ਕਰਨਾ ਮੁਕੰਮਲ ਹੋਇਆ।"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"ਸੰਪਰਕਾਂ ਨੂੰ ਨਿਰਯਾਤ ਕਰਨਾ ਮੁਕੰਮਲ ਹੋਇਆ, ਸੰਪਰਕਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਲਈ ਸੂਚਨਾ \'ਤੇ ਕਲਿੱਕ ਕਰੋ।"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"ਸੰਪਰਕਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> ਨੂੰ ਨਿਰਯਾਤ ਕਰਨਾ ਰੱਦ ਕੀਤਾ ਗਿਆ।"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"ਸੰਪਰਕ ਡੈਟਾ ਨਿਰਯਾਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"ਸੰਪਰਕ ਡੈਟੇ ਨੂੰ ਨਿਰਯਾਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ਡੈਟਾਬੇਸ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"ਨਿਰਯਾਤ ਕਰਨ ਯੋਗ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard ਕੰਪੋਜ਼ਰ ਸਹੀ ਢੰਗ ਨਾਲ ਚਾਲੂ ਨਹੀਂ ਹੋਇਆ।"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"ਨਿਰਯਾਤ ਨਹੀਂ ਹੋ ਸਕਿਆ"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"ਸੰਪਰਕ ਡੈਟਾ ਨਿਰਯਾਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ।\nਕਾਰਨ: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> ਆਯਾਤ ਹੋ ਰਿਹਾ ਹੈ"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard ਡੈਟਾ ਪੜ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> ਨੂੰ ਆਯਾਤ ਕਰਨਾ ਮੁਕੰਮਲ ਹੋਇਆ"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> ਨੂੰ ਆਯਾਤ ਕਰਨਾ ਰੱਦ ਕੀਤਾ ਗਿਆ।"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> ਨੂੰ ਥੋੜ੍ਹੀ ਦੇਰ ਵਿੱਚ ਆਯਾਤ ਕੀਤਾ ਜਾਵੇਗਾ।"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ਫ਼ਾਈਲ ਥੋੜ੍ਹੀ ਦੇਰ ਵਿੱਚ ਆਯਾਤ ਕੀਤੀ ਜਾਵੇਗੀ।"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard ਆਯਾਤ ਬੇਨਤੀ ਅਸਵੀਕਾਰ ਕੀਤੀ ਗਈ ਸੀ। ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"ਸੰਪਰਕਾਂ ਨੂੰ ਜਲਦ ਹੀ ਨਿਰਯਾਤ ਕੀਤਾ ਜਾਵੇਗਾ।"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard ਨਿਰਯਾਤ ਬੇਨਤੀ ਅਸਵੀਕਾਰ ਕੀਤੀ ਗਈ ਸੀ। ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"ਸੰਪਰਕ"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"ਸਥਾਨਕ ਅਸਥਾਈ ਸਟੋਰੇਜ ਲਈ vCard(s) ਨੂੰ ਕੈਸ਼ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ। ਅਸਲ ਆਯਾਤ ਜਲਦ ਹੀ ਚਾਲੂ ਹੋਵੇਗਾ।"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard ਆਯਾਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"ਸੰਪਰਕ NFC \'ਤੇ ਪ੍ਰਾਪਤ ਹੋਇਆ"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"ਕੈਸ਼ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> ਆਯਾਤ ਹੋ ਰਿਹਾ ਹੈ: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf ਫ਼ਾਈਲ ਵਿੱਚ ਨਿਰਯਾਤ ਕਰੋ"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"ਇਸ ਮੁਤਾਬਕ ਛਾਂਟੋ"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ਧੁਨੀਆਤਮਿਕ ਨਾਮ"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"ਹਮੇਸ਼ਾ ਵਿਖਾਓ"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"ਲੁਕਾਓ ਜੇਕਰ ਖਾਲੀ ਹੈ"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"ਨਾਮ ਦਾ ਪਹਿਲਾ ਭਾਗ"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"ਨਾਮ ਦਾ ਆਖਰੀ ਭਾਗ"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"ਨਾਮ ਦੀ ਵੰਨਗੀ"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ਨਾਮ ਦਾ ਪਹਿਲਾ ਭਾਗ ਪਹਿਲਾਂ"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"ਨਾਮ ਦਾ ਆਖਰੀ ਭਾਗ ਪਹਿਲਾਂ"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"ਖਾਤੇ"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"ਨਵੇਂ ਸੰਪਰਕਾਂ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਖਾਤਾ"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"ਮੇਰੀ ਜਾਣਕਾਰੀ"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"ਆਪਣਾ ਪ੍ਰੋਫਾਈਲ ਸਥਾਪਤ ਕਰੋ"</string>
+    <string name="setting_about" msgid="7014388749752042863">"ਸੰਪਰਕਾਂ ਬਾਰੇ"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"ਮਨਪਸੰਦ ਸੰਪਰਕਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰੋ"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"ਸਾਰੇ ਸੰਪਰਕ ਸਾਂਝੇ ਕਰੋ"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"ਸੰਪਰਕ ਸਾਂਝੇ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"ਸੰਪਰਕ ਨਿਰਯਾਤ ਕਰੋ"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"ਇਸ ਤੋਂ ਸੰਪਰਕ ਆਯਾਤ ਕਰੋ"</string>
+    <string name="share_error" msgid="948429331673358107">"ਇਸ ਸੰਪਰਕ ਨੂੰ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"ਸਾਂਝਾ ਕਰਨ ਲਈ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਸੰਪਰਕ"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਸੰਪਰਕ"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"ਦ੍ਰਿਸ਼ ਨੂੰ ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਕਰੋ"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"ਰੱਖਿਅਤ ਕਰੋ"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"ਸੰਪਰਕ ਖੋਜੋ"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"ਮਨਪਸੰਦ"</string>
+    <string name="menu_import" msgid="6107961135813836467">"ਆਯਾਤ ਕਰੋ"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ਨਿਰਯਾਤ ਕਰੋ"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"ਬਲੌਕ ਕੀਤੇ ਨੰਬਰ"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> ਦੇ ਰਾਹੀਂ"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> ਦੇ ਰਾਹੀਂ <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ਖੋਜ ਕਰਨਾ ਬੰਦ ਕਰੋ"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ਖੋਜ ਹਟਾਓ"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"ਖਾਤਾ"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ਕਾਲਾਂ ਲਈ ਹਮੇਸ਼ਾ ਇਹ ਵਰਤੋ"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"ਕਿਸੇ ਨੋਟ-ਕਥਨ ਦੇ ਨਾਲ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"ਕਾਲ ਦੇ ਨਾਲ ਭੇਜਣ ਲਈ ਕੋਈ ਨੋਟ-ਕਥਨ ਟਾਈਪ ਕਰੋ..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ਭੇਜੋ ਅਤੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"ਬਿਲਡ ਰੂਪ"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ਖੁੱਲ੍ਹਾ ਸਰੋਤ ਲਾਇਸੰਸ"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ਓਪਨ ਸੋਰਸ ਸਾਫਟਵੇਅਰ ਲਈ ਲਾਇਸੰਸ ਵੇਰਵੇ"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"ਪਰਦੇਦਾਰੀ ਨੀਤੀ"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"ਸੇਵਾ ਦੀਆਂ ਮਦਾਂ"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ਖੁੱਲ੍ਹਾ ਸਰੋਤ ਲਾਇਸੰਸ"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url ਖੋਲ੍ਹਣਾ ਅਸਫਲ ਰਿਹਾ।"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ਨੂੰ ਨਿਸ਼ਾਨਬੱਧ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ਨੂੰ ਨਿਸ਼ਾਨਬੱਧ ਨਹੀਂ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ਵੀਡੀਓ ਕਾਲ ਕਰੋ"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"ਮਿਟਾਓ"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"ਪਦ-ਲੋਪ ਚਿੰਨ੍ਹ"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> ਮਿੰਟ <xliff:g id="SECONDS">%2$s</xliff:g> ਸਕਿੰਟ"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ਘੰਟੇ <xliff:g id="MINUTES_1">%2$s</xliff:g> ਮਿੰਟ <xliff:g id="SECONDS">%3$s</xliff:g> ਸਕਿੰਟ"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ਇਹ ਸ਼ਾਰਟਕੱਟ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"ਸੰਪਰਕ ਹਟਾਇਆ ਗਿਆ ਸੀ"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"ਆਯਾਤ ਕਰੋ"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"ਤੁਹਾਡੇ SIM ਕਾਰਡ \'ਤੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"ਸੰਪਰਕ ਪਹਿਲਾਂ ਹੀ ਤੁਹਾਡੀ ਸੂਚੀ ਵਿੱਚ ਮੌਜੂਦ ਹੈ"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> SIM ਸੰਪਰਕ ਆਯਾਤ ਕੀਤੇ ਗਏ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM ਸੰਪਰਕ ਆਯਾਤ ਕੀਤੇ ਗਏ</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM ਸੰਪਰਕਾਂ ਨੂੰ ਆਯਾਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM ਤੋਂ ਆਯਾਤ ਕਰੋ"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"ਰੱਦ ਕਰੋ"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"ਸਵੈ-ਸਮਕਾਲੀਕਰਨ ਬੰਦ ਹੈ। ਚਾਲੂ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"ਖਾਰਜ ਕਰੋ"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"ਖਾਤਾ ਸਮਕਾਲੀਕਰਨ ਬੰਦ ਹੈ। ਚਾਲੂ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"ਕੀ ਸਵੈ-ਸਮਕਾਲੀਕਰਨ ਚਾਲੂ ਕਰਨਾ ਹੈ?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"ਨਾ ਸਿਰਫ਼ Google ਸੰਪਰਕਾਂ ਲਈ, ਬਲਕਿ ਸਾਰੀਆਂ ਐਪਾਂ ਅਤੇ ਖਾਤਿਆਂ ਲਈ ਕੀਤੀਆਂ ਗਈਆਂ ਤੁਹਾਡੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਵੈੱਬ ਅਤੇ ਤੁਹਾਡੀਆਂ ਡੀਵਾਈਸਾਂ ਵਿਚਕਾਰ ਅੱਪ ਟੂ ਡੇਟ ਰੱਖਿਆ ਜਾਵੇਗਾ।"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ਚਾਲੂ ਕਰੋ"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"ਕੋਈ ਕਨੈਕਸ਼ਨ ਨਹੀਂ"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"ਹੋਰ ਦਿਖਾਓ"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"ਸਿਮ ਕਾਰਡ ਆਯਾਤ ਕਰਨਾ ਮੁਕੰਮਲ ਹੋਇਆ"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"ਆਯਾਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM ਕਾਰਡ ਤੋਂ ਸੰਪਰਕ ਆਯਾਤ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕੇ"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"ਸਿਮ ਆਯਾਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 45e460a..da8506a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakty"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakty"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Wyświetl kontakt"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Edytuj kontakt"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Dodaj kontakt"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Telefon do osoby"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"SMS do osoby"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Wybierz skrót kontaktu"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Wybierz numer, aby nawiązać połączenie"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Wybierz numer, aby wysłać wiadomość"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Wybierz kontakt"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Dodaj do kontaktu"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Wybierz kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Wybierz"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Utwórz nowy kontakt"</string>
-    <string name="starredList" msgid="4817256136413959463">"Oznaczony gwiazdką"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Częste"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Ulubione"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Informacje kontaktowe"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Edytuj kontakt"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Utwórz kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Edytuj grupę"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Utwórz grupę"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Informacje"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Aktualizacje"</string>
     <string name="searchHint" msgid="8482945356247760701">"Przeszukuj kontakty"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Wyświetl kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Dodaj do ulubionych"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Usuń z ulubionych"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Usunięto z ulubionych"</string>
@@ -49,42 +35,62 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Edytuj"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Usuń"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Zmień zdjęcie"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Umieść na ekranie głównym"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Zadzwoń do kontaktu"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Wyślij tekst do kontaktu"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Utwórz skrót"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Rozłącz"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Edytuj"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Usuń"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Dodaj kontakt"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Dodaj grupę"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Usuń kontakty"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Zmień nazwę etykiety"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Usuń etykietę"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Dodaj kontakt"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Wybierz kontakty"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Dodaj kontakty"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Usuń z etykiety"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Utwórz etykietę"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Rozłączyć ten kontakt na wiele kontaktów?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Rozłącz"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Czy chcesz zapisać dotychczasowe zmiany i rozłączyć ten kontakt na wiele kontaktów?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Zapisz i rozłącz"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Czy chcesz zapisać dotychczasowe zmiany i połączyć z wybranym kontaktem?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Zapisz i połącz"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Łączę"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Rozłączam"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Połącz"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Wyświetl połączone kontakty"</string>
     <string name="menu_save" msgid="1727844363591825909">"Zapisz"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Połącz kontakty"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Wybierz kontakt, który chcesz połączyć z: <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Pokaż wszystkie kontakty"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Sugerowane kontakty"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Wszystkie kontakty"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> – połączono"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakty zostały połączone"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> usunięty"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Kontakty <xliff:g id="NAME_0">%1$s</xliff:g> i <xliff:g id="NAME_1">%2$s</xliff:g> usunięte"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Kontakty <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… usunięte"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="few">Kontakty zostały usunięte</item>
       <item quantity="many">Kontakty zostały usunięte</item>
       <item quantity="other">Kontakty zostały usunięte</item>
       <item quantity="one">Kontakt został usunięty</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontakty</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> kontaktów</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontaktu</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakty · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktów · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Od Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Od: <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Ustaw dzwonek"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Łącz na pocztę głosową"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontaktów z kont tylko do odczytu nie można usunąć, ale można je ukryć."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ukryj"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakt wybrany do usunięcia zawiera informacje pochodzące z wielu kont. Informacje z kont tylko do odczytu nie zostaną skasowane, ale ukryte."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Do połączenia potrzebne są co najmniej dwa kontakty."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Połączyć wybrane kontakty?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Połącz"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Kieruj do poczty głosowej"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Nie kieruj do poczty głosowej"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ten kontakt jest tylko do odczytu. Nie możesz go usunąć, ale możesz go ukryć."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ukryj kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Dane o tym kontakcie pochodzące z kont tylko do odczytu zostaną ukryte, a nie usunięte."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Usunąć ten kontakt?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Usunąć wybrane kontakty?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontaktów z kont tylko do odczytu nie można usunąć, ale można je ukryć."</string>
@@ -92,189 +98,126 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Usunięcie tego kontaktu spowoduje usunięcie informacji z wielu kont."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Usunąć ten kontakt?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Usuń"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Odrzuć zmiany"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt nie istnieje."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt został dodany do ekranu głównego."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> został dodany do ekranu głównego."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Utwórz nowy kontakt"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Utwórz nowy kontakt"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizacja"</item>
-    <item msgid="7196592230748086755">"Notatka"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Brak zdjęć dostępnych w tablecie."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"W telefonie brak dostępnych zdjęć."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Brak zdjęć na urządzeniu."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Zdjęcie kontaktu"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nazwa etykiety niestandardowej"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Przekieruj połączenia bezpośrednio na pocztę głosową"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Usuń zdjęcie"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Brak kontaktów"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Brak grup."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Do tworzenia grup niezbędne jest konto."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Brak osób w grupie"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Aby dodać członków, zmodyfikuj grupę."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Trwa zapisywanie kontaktu..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Twoja lista kontaktów jest pusta"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Brak kontaktów z tą etykietą"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Na tym koncie nie ma żadnych kontaktów"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Twoja lista kontaktów jest pusta"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Kontakt <xliff:g id="DISPLAY_NAME">%s</xliff:g> został zapisany"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt został zapisany"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontakty zostały odłączone"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Nie można zapisać zmian kontaktu."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Nie udało się odłączyć kontaktu."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Nie udało się połączyć kontaktu."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Błąd podczas zapisywania kontaktu."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Nie udało się zapisać zmian wprowadzonych w zdjęciu kontaktu."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupa została zapisana."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Nie można zapisać zmian grupy."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakty z numerami telefonu</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> kontaktów z numerami telefonu</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktu z numerami telefonu</item>
-      <item quantity="one">1 kontakt z numerem telefonu</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Brak kontaktów z numerami telefonów"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> znalezione</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> znalezionych</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> znalezionego</item>
-      <item quantity="one">1 znaleziony</item>
-    </plurals>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontakty zostały rozłączone"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Nie udało się zapisać zmian kontaktu"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Nie udało się odłączyć kontaktu"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Nie udało się połączyć kontaktu"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Podczas zapisywania kontaktu wystąpił błąd"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Nie udało się zapisać zmian zdjęcia kontaktu"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Nie udało się załadować etykiety"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etykieta usunięta"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etykieta została utworzona"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Nie można utworzyć etykiety"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etykieta została zaktualizowana"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Usunięty z etykiety"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodano do etykiety"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Nie udało się zapisać zmian etykiety"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ta etykieta już istnieje"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Niektóre kontakty nie mają adresów e-mail."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Niektóre kontakty nie mają numerów telefonów."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Wyślij e-maila"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Wyślij wiadomość"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Wybierz kontakty"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Wyślij"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Brak kontaktów"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> znalezione</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> znalezionych</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> znalezionego</item>
-      <item quantity="one">1 znaleziony</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Wszystkie"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Ulubione"</string>
-    <string name="callBack" msgid="5498224409038809224">"Oddzwoń"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Zadzwoń ponownie"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Połączenie zwrotne"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Czy dodać adres „<xliff:g id="EMAIL">%s</xliff:g>” do kontaktów?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"zdjęcie kontaktu"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"Kontakt <xliff:g id="CURRENT_NUMBER">%s</xliff:g> z <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Imiona i nazwiska oraz nazwy w Twoich kontaktach"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nie znaleziono aplikacji do obsługi tego działania."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknij, by wrócić do poprzedniego ekranu"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodaj numer telefonu"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Dodaj adres e-mail"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nie znaleziono aplikacji do obsługi tego działania."</string>
     <string name="menu_share" msgid="943789700636542260">"Udostępnij"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Dodaj do kontaktów"</string>
-    <string name="share_via" msgid="563121028023030093">"Udostępnij kontakt przez:"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Utwórz grupę na koncie"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Dodaj"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="few">Udostępnij kontakty przez:</item>
+      <item quantity="many">Udostępnij kontakty przez:</item>
+      <item quantity="other">Udostępnij kontakty przez:</item>
+      <item quantity="one">Udostępnij kontakt przez:</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Wybierz konto"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Utwórz etykietę"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Zmiana nazwy etykiety"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nazwa etykiety"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nazwa etykiety"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Czat głosowy"</string>
     <string name="video_chat" msgid="1872255818640336072">"Czat wideo"</string>
-    <string name="connections" msgid="8098440723172028350">"Połączenia"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Dodaj połączenie"</string>
-    <string name="recent" msgid="2659189233141493004">"Najnowsze"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Ostatnie aktualizacje"</string>
     <string name="account_type_format" msgid="718948015590343010">"Kontakt <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Konto <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Nie można edytować w tej aplikacji."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Nie można edytować na tym urządzeniu."</string>
     <string name="take_photo" msgid="7496128293167402354">"Zrób zdjęcie"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Zrób nowe zdjęcie"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Wybierz zdjęcie"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Wybierz nowe zdjęcie"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Lista kontaktów jest aktualizowana."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Wyszukiwanie…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Pokaż wybrane"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Pokaż wszystkie"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Wybierz wszystko"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Anuluj wybór wszystkich"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Dodaj nowy"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Dodaj organizację"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nazwa grupy"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Zmień"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Główne zdjęcie"</string>
-    <string name="description_star" msgid="2605854427360036550">"ulubione"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Edytuj kontakt"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Połączyć bieżący kontakt z wybranym?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Dodaj etykietę"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Anuluj"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Wstecz"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zamknij"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Czy chcesz edytować wybrany kontakt? Wprowadzone dotąd informacje zostaną skopiowane."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiuj do moich kontaktów"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Dodaj do moich kontaktów"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Katalog <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Niestandardowy"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Ustawienia"</string>
     <string name="menu_settings" msgid="377929915873428211">"Ustawienia"</string>
     <string name="menu_help" msgid="1680178646764069976">"Pomoc i opinie"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opcje wyświetlania"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Numer telefonu"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Dodaj do kontaktów"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Dodaj do kontaktu"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Zamknij"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Dodaj rok"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Wczytywanie…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Utwórz nowy kontakt"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodaj konto"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importuj kontakty"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Utwórz nową grupę"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Utwórz nową grupę"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> grupy</item>
-      <item quantity="many"><xliff:g id="COUNT">%0$d</xliff:g> grup</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupy</item>
-      <item quantity="one">1 grupa</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Usunąć grupę „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”? (Same kontakty nie zostaną usunięte)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> osoby z: <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> osób z: <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> osoby z: <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> osoba z: <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> osoby</item>
-      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> osób</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> osoby</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> osoba</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importuj"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Utwórz nową…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Usunąć etykietę „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”? Kontakty nie zostaną usunięte."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Zanim połączysz ten kontakt z innym, wpisz imię i nazwisko."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopiuj do schowka"</string>
     <string name="set_default" msgid="4417505153468300351">"Ustaw jako wartość domyślną"</string>
     <string name="clear_default" msgid="7193185801596678067">"Wyczyść wartość domyślną"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Tekst skopiowany"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Odrzucić zmiany?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Odrzuć"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Skonfiguruj profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Wpisz imię osoby"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nazwa grupy"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Odrzucić zmiany?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Odrzuć"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Anuluj"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Odrzucić zmiany?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Szukaj kontaktów"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Usuń kontakty"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Mój profil lokalny"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Mój profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Wyświetlanie wszystkich kontaktów"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakty działają lepiej, kiedy masz konto Google.\n\n• Dostęp w dowolnej przeglądarce internetowej.\n• Bezpieczne tworzenie kopii zapasowych kontaktów."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Zapewnij bezpieczeństwo swoich kontaktów nawet w przypadku utraty telefonu: włącz synchronizację z usługą online."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodaj konto"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Kopia zapasowa nowego kontaktu nie zostanie utworzona. Dodać konto, na którym kopie zapasowe kontaktów będą tworzone online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Poświęć chwilę, aby dodać konto, dzięki któremu kopie zapasowe kontaktów zostaną zapisane w Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nowe kontakty zostaną zapisane na koncie <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Wybierz domyślne konto dla nowych kontaktów:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Dodaj nowy kontakt"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Utwórz nowy kontakt"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Edytuj kontakt"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Przechowuj lokalnie"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Tylko wyświetlanie"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Wybierz kontakt, który chcesz edytować"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Połączone kontakty"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Dodaj"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Rozłącz"</string>
     <string name="add_account" msgid="8201790677994503186">"Dodaj konto"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Dodaj nowe konto"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Eksportuj pliki bazy danych"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"dodaj nowy kontakt"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Utwórz nowy kontakt"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Pokaż więcej"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Pokaż mniej"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Pokaż wszystkie"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Ostatnie"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Informacje"</string>
-    <string name="send_message" msgid="8938418965550543196">"Wyślij wiadomość"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Kopiuję do osobistych..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Wczoraj"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Tworzenie kopii osobistej…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Jutro"</string>
     <string name="today" msgid="8041090779381781781">"Dzisiaj"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Dzisiaj: <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Jutro: <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Wydarzenie bez nazwy)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Ustaw"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Komunikator"</string>
@@ -284,104 +227,321 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Strona internetowa"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Wydarzenie"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relacja"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Konto"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Imię i nazwisko"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Zdjęcie"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliknij, by rozwinąć edytor kontaktów."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknij, by zwinąć edytor kontaktów."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"trasa do lokalizacji"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"ostatni SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknij, by odpowiedzieć"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"ostatni SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknij, by odpowiedzieć"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"przychodzące"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"wychodzące"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"nieodebrane"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"ostatnie połączenie. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknij, by oddzwonić"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"ostatnie połączenie. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknij, by oddzwonić"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Ty: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"W przypadku Hangouts lepiej wpisać identyfikator danej osoby w polu adresu e-mail lub telefonu."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Więcej pól"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Zmień zdjęcie"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Nie udało się otworzyć edytora."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Zapisz na koncie"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Obecnie zapisujesz na koncie <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Kliknij dwukrotnie, by wybrać inne."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="few">Kontakty połączone (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">Kontakty połączone (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Kontakty połączone (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Kontakt połączony</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Połączone kontakty: <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Więcej pól"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Zmień zdjęcie kontaktu"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Dodaj zdjęcie kontaktu"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Zdjęcie kontaktu"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Nie udało się otworzyć edytora."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Zapisz na koncie"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontaktów z konta <xliff:g id="ACCOUNT">%s</xliff:g> nie można edytować"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"POŁĄCZ KONTAKTY"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANULUJ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> możliwe duplikaty</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> możliwych duplikatów</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> możliwego duplikatu</item>
-      <item quantity="one">1 możliwy duplikat</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> połączone kontakty</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> połączonych kontaktów</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> połączonego kontaktu</item>
-      <item quantity="one">1 połączony kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ten kontakt"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Możliwe duplikaty"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Te kontakty mogą dotyczyć tej samej osoby. Możesz je połączyć w jeden kontakt."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Połączone kontakty"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Z Twoich kont"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Zrób zdjęcie"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Wszystkie zdjęcia"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Wybierz zdjęcie"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Z konta <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Usuń <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Usuń <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Usuń <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Zdjęcie z konta <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> – niezaznaczone"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Zdjęcie z konta <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> – zaznaczone"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Nie wybrano zdjęcia z nieznanego konta"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Wybrano zdjęcie z nieznanego konta"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Lista kontaktów jest aktualizowana, aby odzwierciedlić zmianę języka.\n\nCzekaj..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj numer"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Zablokuj numer"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Dodaj numer lub wyszukaj kontakty"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Odblokować numer <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ODBLOKUJ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Zablokować numer <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ZABLOKUJ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> zablokowany"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> odblokowany"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Numer <xliff:g id="NUMBER">%1$s</xliff:g> jest nieprawidłowy."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokada połączeń tymczasowo wyłączona"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Blokada połączeń została wyłączona, ponieważ w ciągu ostatnich 48 godzin dzwoniono z tego telefonu na numer alarmowy. Blokada zostanie automatycznie przywrócona po upływie 48 godzin."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importuj"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Pokaż numery"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj numer"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokada połączeń została wyłączona na 48 godzin"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Wyłączona, ponieważ wykonano połączenie alarmowe."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"COFNIJ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Numer <xliff:g id="NUMBER">%1$s</xliff:g> jest już zablokowany."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Odblokuj numer"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Szczegóły kontaktu: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Nie udało się zaimportować"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Zaimportuj numery"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Aby wyszukać kontakty, włącz uprawnienia Kontakty."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Włącz"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Sugestie"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nowe"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Otwórz panel nawigacji"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zamknij panel nawigacji"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etykieta <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etykiety"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Konta"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Zobacz swoją pełną historię"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Wydarzenia i wiadomości"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Wydarzenia"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Wiadomości"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Sugestie"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Dbaj o uporządkowanie i użyteczność kontaktów"</string>
+    <string name="undo" msgid="1425165101664071422">"Cofnij"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Zadzwoń do: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Połącz – domowy"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Połącz – komórka"</string>
+    <string name="call_work" msgid="5328785911463744028">"Połącz – służbowy"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Połącz – faks służbowy"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Połącz – faks domowy"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Połącz – pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Zadzwoń"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Zadzwoń – połączenie zwrotne"</string>
+    <string name="call_car" msgid="3280537320306436445">"Połącz – samochód"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Połącz – firmowy główny"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Zadzwoń – ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Zadzwoń pod nr główny"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Zadzwoń – faks"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Połącz – radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Połącz – teleks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Zadzwoń – TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Połącz – służbowa komórka"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Połącz – pager służbowy"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Zadzwoń do: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Połącz – MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (zadzwoń)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Wyślij SMS-a do: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Tekst – domowy"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS – komórka"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Tekst – służbowy"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Tekst – faks służbowy"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Tekst – faks domowy"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Tekst – pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS – numer zwrotny"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Tekst – samochód"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Tekst – firmowy główny"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS – ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS – nr główny"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"SMS – faks"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Tekst – radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS – teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS – TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS – służbowa komórka"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS – pager służbowy"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"SMS – <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Tekst – wiadomość MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (wyślij wiadomość)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Rozpocznij rozmowę wideo"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Wyczyścić częste kontakty?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Wyczyścisz listę częstych kontaktów w aplikacjach Kontakty i Telefon. Aplikacje pocztowe będą musiały od nowa poznać Twoje preferencje adresowe."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Czyszczę częste kontakty…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Dostępny"</string>
+    <string name="status_away" msgid="1838861100379804730">"Nieobecny"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Zajęty"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Inne"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Katalog"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Katalog służbowy"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Wszystkie kontakty"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Szybki kontakt: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Bez nazwy)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Częste kontakty"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Wszystkie kontakty z numerami telefonów"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontakty w profilu do pracy"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Pokaż aktualizacje"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Urządzenie"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nazwa"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Pseudonim"</string>
+    <string name="name_given" msgid="4280790853455320619">"Imię"</string>
+    <string name="name_family" msgid="7466985689626017037">"Nazwisko"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Przedrostek nazwiska"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Drugie imię"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Przyrostek nazwiska"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nazwa (fonetycznie)"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Imię (fonetycznie)"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Drugie imię (fonetycznie)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Nazwisko (fonetycznie)"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adres"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Komunikatory"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacja"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relacja"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Szczególna data"</string>
+    <string name="sms" msgid="1756857139634224222">"SMS"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adres"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Firma"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Stanowisko"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notatki"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Niestandardowe"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"Adres SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Adres witryny"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etykiety"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mail – domowy"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-mail – komórka"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mail – służbowy"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Wyślij e-maila do: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Miasto"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Województwo"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Kod pocztowy"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Kraj"</string>
+    <string name="map_home" msgid="1243547733423343982">"Wyświetl adres domowy"</string>
+    <string name="map_work" msgid="1360474076921878088">"Wyświetl adres służbowy"</string>
+    <string name="map_other" msgid="3817820803587012641">"Wyświetl adres"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Wyświetl adres: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Czat w AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Czat w Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Czat w Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Czat w Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Czat w QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Czat w Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Czat w ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Czat w Jabberze"</string>
+    <string name="chat" msgid="9025361898797412245">"Czat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"usuń"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Pokaż więcej pól nazw"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Zwiń pola imion i nazwisk"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Pokaż więcej pól nazw zapisanych fonetycznie"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Zwiń pola imion i nazw zapisanych fonetycznie"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Rozwiń"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Zwiń"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Rozwinięto"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Zwinięto"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Wszystkie kontakty"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Oznaczone gwiazdką"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Dostosuj"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Wszystkie inne kontakty"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Wszystkie kontakty"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Usuń grupę synchronizacji"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Dodaj grupę synchronizacji"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Więcej grup..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Usunięcie grupy „<xliff:g id="GROUP">%s</xliff:g>” z ustawień synchronizacji spowoduje również usunięcie wszelkich rozgrupowanych kontaktów z tych ustawień."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Trwa zapisywanie opcji wyświetlania..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Widok niestandardowy"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Zapisz zaimportowane kontakty na koncie:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Karta SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="few">%1$d kontakty</item>
+      <item quantity="many">%1$d kontaktów</item>
+      <item quantity="other">%1$d kontaktu</item>
+      <item quantity="one">1 kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontakty • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> kontaktów • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontaktu • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Plik .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nic do zaimportowania"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Zaimportować kontakty z pliku vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Anulować import: <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Anulować eksport: <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Nie można anulować importu/eksportu vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Nieznany błąd."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nie można otworzyć pliku „<xliff:g id="FILE_NAME">%1$s</xliff:g>”: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nie można uruchomić programu eksportującego: „<xliff:g id="EXACT_REASON">%s</xliff:g>”."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Brak kontaktów, które można wyeksportować."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Wymagane uprawnienia zostały wyłączone"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Wystąpił błąd podczas eksportowania: „<xliff:g id="EXACT_REASON">%s</xliff:g>”."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Błąd wejścia/wyjścia"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Za mało pamięci. Plik może być zbyt duży."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Format nie jest obsługiwany."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Zakończono eksportowanie pliku <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Eksportowanie kontaktów zostało zakończone."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontakty zostały wyeksportowane. Aby je udostępnić, kliknij powiadomienie."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Kliknij, by udostępnić kontakty."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Anulowano eksportowanie pliku <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Eksportowanie danych kontaktowych"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Eksportuję dane kontaktów."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nie można pobrać informacji z bazy danych."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Brak kontaktów do wyeksportowania."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Obiekt tworzenia danych vCard nie został uruchomiony poprawnie."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Eksport nieudany"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Dane kontaktów nie zostały wyeksportowane.\nPrzyczyna: „<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importowanie <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nie można odczytać danych vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Zakończono importowanie pliku vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Anulowano importowanie pliku <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Plik <xliff:g id="FILENAME">%s</xliff:g> zostanie za chwilę zaimportowany."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Plik zostanie za chwilę zaimportowany."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Żądanie importu danych vCard zostało odrzucone. Spróbuj ponownie później."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakty zostaną wyeksportowane wkrótce."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Żądanie eksportu danych vCard zostało odrzucone. Spróbuj ponownie później."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Trwa buforowanie plików vCard w lokalnym obszarze tymczasowym. Właściwy import rozpocznie się za chwilę."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Nie można zaimportować pliku vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Odebrane przez NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Buforowanie"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importowanie <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Eksportuj do pliku .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortuj według"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nazwa (fonetycznie)"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Zawsze pokazuj"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ukryj, jeśli puste"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Imię"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Nazwisko"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format imienia i nazwiska"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Najpierw imię"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Najpierw nazwisko"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Konta"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Domyślne konto dla nowych kontaktów"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"O mnie"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Wypełnij swój profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Informacje o Kontaktach"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Udostępnij ulubione kontakty"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Udostępnij wszystkie kontakty"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Nie udało się udostępnić kontaktów."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Eksportuj kontakty"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importuj kontakty z"</string>
+    <string name="share_error" msgid="948429331673358107">"Tego kontaktu nie można udostępniać."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Brak kontaktów do udostępnienia."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakty do wyświetlenia"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakty do wyświetlenia"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Dostosuj widok"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Zapisz"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Wyszukaj kontakty"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Ulubione"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importuj"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksportuj"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Zablokowane numery"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"przez: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>, przez: <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"zatrzymaj wyszukiwanie"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Wyczyść wyszukiwanie"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Konto"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Zawsze używaj do połączeń"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Połącz i wyślij notatkę"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Wpisz notatkę, którą chcesz wysłać razem z połączeniem…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"WYŚLIJ I POŁĄCZ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Wersja kompilacji"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licencje open source"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Szczegóły licencji na oprogramowanie open source"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Polityka prywatności"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Warunki korzystania z usługi"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licencje open source"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Nie udało się otworzyć URL-a."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> zaznaczone"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> niezaznaczone"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Rozpocznij rozmowę wideo"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Usuń"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Wielokropek"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> godz. <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ten skrót został wyłączony"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt został usunięty"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importuj"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Wybierz kontakty"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Brak kontaktów na karcie SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt znajduje się już na Twojej liście"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="few">Zaimportowano <xliff:g id="COUNT">%d</xliff:g> kontakty z karty SIM</item>
+      <item quantity="many">Zaimportowano <xliff:g id="COUNT">%d</xliff:g> kontaktów z karty SIM</item>
+      <item quantity="other">Zaimportowano <xliff:g id="COUNT">%d</xliff:g> kontaktu z karty SIM</item>
+      <item quantity="one">Zaimportowano 1 kontakt z karty SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Nie udało się zaimportować kontaktów z karty SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importuj z karty SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Anuluj"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatyczna synchronizacja jest wyłączona. Kliknij, by ją włączyć."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Odrzuć"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Synchronizacja konta jest wyłączona. Kliknij, by ją włączyć."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Włączyć autosynchronizację?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Zmiany, które wprowadzisz we wszystkich aplikacjach i na wszystkich kontach (nie tylko w Kontaktach Google), będą synchronizowane między wersją w internecie a Twoimi urządzeniami."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Włącz"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Brak połączenia"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Pokaż więcej"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Zaimportowano kontakty z karty SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Nie udało się zaimportować"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nie udało się zaimportować kontaktów z karty SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importuję kontakty z karty SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 1fb6ca3..ce6ee65 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contatos"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contatos"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Ver contato"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Editar contato"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatos"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Adicionar contato"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contato"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Discagem direta"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Mensagem direta"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Escolha o atalho para um contato"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Escolha um número a ser chamado"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Escolha um número para enviar uma mensagem"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Escolher contato"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Adicionar a contato"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Escolha um contato"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Selecionar"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Criar novo contato"</string>
-    <string name="starredList" msgid="4817256136413959463">"Com estrela"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frequente"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoritos"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detalhes do contato"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Editar contato"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Criar contato"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Criar grupo"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Sobre"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Atualização"</string>
     <string name="searchHint" msgid="8482945356247760701">"Pesquisar contatos"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Ver contato"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Adicionar aos favoritos"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Remover dos favoritos"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Removido dos favoritos"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Excluir"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Alterar foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Colocar na tela inicial"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Ligar para contato"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Enviar SMS/MMS para o contato"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Criar atalho"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Desvincular"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Editar"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Excluir"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Adicionar contato"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Adicionar grupo"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Remover contatos"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Renomear marcador"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Excluir marcador"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Adicionar contato"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Selecionar contatos"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Adicionar contatos"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Remover do marcador"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Criar marcador"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Desvincular este contato em vários contatos?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Desvincular"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Gostaria de salvar as alterações já feitas e desvincular este contato em vários contatos?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Salvar e desvincular"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Gostaria de salvar as alterações já efetuadas e vincular com o contato selecionado?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Salvar e vincular"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Vinculando"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Desvinculando"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Vincular"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Ver contatos vinculados"</string>
     <string name="menu_save" msgid="1727844363591825909">"Salvar"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Vincular contatos"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Selecione o contato que você deseja vincular com <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostrar todos os contatos"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contatos sugeridos"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos os contatos"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Nome vinculado: <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contatos vinculados"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> excluído"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> e <xliff:g id="NAME_1">%2$s</xliff:g> excluídos"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... excluídos"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Contatos excluídos</item>
       <item quantity="other">Contatos excluídos</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> contato</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contatos</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> contato: <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contatos: <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Do Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Da conta <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Definir toque"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Todas as cham. p/ correio voz"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Não é possível excluir contatos de contas somente leitura, mas eles podem ser ocultados."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ocultar"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"O contato a ser excluído tem detalhes de várias contas. Os detalhes de contas somente leitura serão ocultados, não excluídos."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Selecione pelo menos dois contatos para realizar uma vinculação."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Vincular contatos selecionados?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Vincular"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Rotear para correio de voz"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Cancelar roteam. correio voz"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Este contato é somente leitura. Não é possível excluí-lo, mas você pode ocultá-lo."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ocultar contato"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"As contas somente leitura neste contato não serão excluídas, ficarão ocultas."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Excluir este contato?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Excluir contatos selecionados?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Não é possível excluir contatos de contas somente leitura, mas eles podem ser ocultados."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"A exclusão deste contato excluirá detalhes de várias contas."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Excluir este contato?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Excluir"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Descartar alterações"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"O contato não existe."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contato adicionado à tela inicial."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Contato <xliff:g id="NAME">%s</xliff:g> adicionado à tela inicial."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Criar novo contato"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Criar novo contato"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organização"</item>
-    <item msgid="7196592230748086755">"Observação"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Nenhuma imagem disponível no tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Nenhuma imagem disponível no telefone."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Não há imagens disponíveis no dispositivo."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto do contato"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Personalizar nome do marcador"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Enviar chamadas diretamente para o correio de voz"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Remover foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nenhum contato"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nenhum grupo."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Você precisa de uma conta para criar grupos."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Nenhuma pessoa neste grupo."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Para adicionar pessoas, edite o grupo."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Salvando contato…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Sua lista de contatos está vazia"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nenhum contato com este marcador"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Nenhum contato nesta conta"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Sua lista de contatos está vazia"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Contato salvo: <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"O contato foi salvo"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contatos desvinculados"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Não foi possível salvar as alterações do contato."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Não foi possível desvincular contato."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Não foi possível vincular o contato."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Erro ao salvar contato."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Não foi possível salvar as alterações da foto de contato."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupo salvo."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Não foi possível salvar as alterações de grupo."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contatos com números de telefone</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatos com números de telefone</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nenhum contato com números de telefone"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Não foi possível salvar as alterações do contato"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Não foi possível desvincular contato"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Não foi possível vincular o contato"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Erro ao salvar o contato"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Não foi possível salvar as alterações da foto de contato"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Falha ao carregar o marcador"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Marcador excluído"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Marcador criado"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Não é possível criar um marcador"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Marcador atualizado"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Removido do marcador"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Adicionado ao marcador"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Não foi possível salvar as alterações do marcador"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Este marcador já existe"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Alguns contatos não têm e-mails."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Alguns contatos não têm números de telefone."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Enviar e-mail"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Enviar mensagem"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Escolher contatos"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Enviar"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nenhum contato"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Todos"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
-    <string name="callBack" msgid="5498224409038809224">"Retornar chamada"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Ligar novamente"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Retornar chamada"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Adicionar \"<xliff:g id="EMAIL">%s</xliff:g>\" aos contatos?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto do contato"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"mais"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contatos"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nomes dos seus contatos"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nenhum app foi encontrado para executar esta ação."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Clique para retornar à tela anterior"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Adicionar número de telefone"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Adicionar e-mail"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nenhum app foi encontrado para executar esta ação."</string>
     <string name="menu_share" msgid="943789700636542260">"Compartilhar"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Adicionar aos contatos"</string>
-    <string name="share_via" msgid="563121028023030093">"Compartilhar contato via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Criar grupo na conta"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Adicionar"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Compartilhar contato via</item>
+      <item quantity="other">Compartilhar contatos via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Escolher conta"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Criar marcador"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Renomear marcador"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nome do marcador"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nome - marcador"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Bate-papo por voz"</string>
     <string name="video_chat" msgid="1872255818640336072">"Bate-papo por vídeo"</string>
-    <string name="connections" msgid="8098440723172028350">"Conexões"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Adicionar conexão"</string>
-    <string name="recent" msgid="2659189233141493004">"Recentes"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Atualiz. recentes"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contato de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Conta do <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Não pode ser editado neste app."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Não é possível editar neste dispositivo."</string>
     <string name="take_photo" msgid="7496128293167402354">"Tirar foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tirar outra foto"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Escolher foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Selecionar nova foto"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"A lista de contatos está sendo atualizada."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Pesquisando..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mostrar selecionados"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mostrar todos"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Selecionar todos"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Desmarcar todos"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Adicionar novo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Adicionar organização"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome do grupo"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Alterar"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto principal"</string>
-    <string name="description_star" msgid="2605854427360036550">"favorito"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Editar contato"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vincular o contato atual com o contato selecionado?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Marcador"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancelar"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Voltar"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"fechar"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Alternar para a edição do contato selecionado? As informações inseridas até agora serão copiadas."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copiar para Meus contatos"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Adicionar a Meus contatos"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Diretório <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizado"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Configurações"</string>
     <string name="menu_settings" msgid="377929915873428211">"Configurações"</string>
     <string name="menu_help" msgid="1680178646764069976">"Ajuda e feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opções de exibição"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Número de telefone"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Adicionar aos contatos"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Adicionar a contato"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Fechar"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Incluir ano"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contato"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Carregando…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Criar um novo contato"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Adicionar conta"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importar contatos"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Criar um novo grupo"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Criar novo grupo"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> grupos</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupos</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Excluir o grupo \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Os contatos não serão apagados."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> pessoas de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> pessoas de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> pessoas</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> pessoas</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importar"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Criar novo..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Excluir o marcador \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Os contatos não serão excluídos."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Digite o nome de contato antes de vinculá-lo a outro."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copiar para área de transferência"</string>
     <string name="set_default" msgid="4417505153468300351">"Definir padrão"</string>
     <string name="clear_default" msgid="7193185801596678067">"Limpar padrão"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Texto copiado"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Descartar as alterações?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Descartar"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configurar meu perfil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Digite o nome da pessoa"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nome do grupo"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Descartar alterações?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancelar"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Descartar personalizações?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Pesquisar contatos"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Remover contatos"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Meu perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Meu perfil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Exibindo todos os contatos"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Contatos funciona melhor com uma conta do Google.\n\n• Acesse-o a partir de qualquer navegador da web.\n• Faça backup de seus contatos com segurança."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantenha seus contatos seguros, mesmo se você perder seu telefone: sincronize com um serviço on-line."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Adicionar uma conta"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Não será possível fazer backup de seu novo contato. Deseja adicionar uma conta que faça backup de contatos on-line?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Adicione a conta na qual será feito o backup dos seus contatos no Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novos contatos serão salvos em <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Escolha uma conta padrão para novos contatos:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Adic. novo contato"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Criar novo contato"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contato"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Manter localmente"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Somente visualização"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Escolher um contato para editar"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contatos vinculados"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Adicionar"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Desvincular"</string>
     <string name="add_account" msgid="8201790677994503186">"Adicionar conta"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Adicionar nova conta"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportar arquivos do banco de dados"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"adicionar novo contato"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Criar novo contato"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ver mais"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ver menos"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ver tudo"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recente"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Sobre"</string>
-    <string name="send_message" msgid="8938418965550543196">"Enviar mensagem"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Criando uma cópia pessoal..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Ontem"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Criando uma cópia pessoal..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Amanhã"</string>
     <string name="today" msgid="8041090779381781781">"Hoje"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Hoje, às <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Amanhã, às <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Evento sem título)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Definir"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Mensagem instantânea"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Site"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relação"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Conta"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nome"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefone"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Clique para expandir o editor de contatos."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Clique para recolher o editor de contatos."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"rotas até o local"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. clique para responder"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. clique para responder"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"entrada"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"saída"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"perdida"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"chamada recente. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. clique para retornar a chamada"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"chamada recente. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. clique para retornar a chamada"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Você: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"O Hangouts funciona melhor quando você insere o identificador do Hangouts da pessoa no campo de e-mail ou de telefone."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Mais campos"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Alterar foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Falha ao abrir o editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Salvar em"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Salvando em <xliff:g id="ACCOUNT_NAME">%s</xliff:g> no momento. Toque duas vezes para escolher uma conta diferente."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Contatos vinculados (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Contatos vinculados (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contatos vinculados"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Mais campos"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Alterar foto do contato"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Adicionar foto do contato"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto do contato"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Falha ao abrir o editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Salvar em"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"As informações do contato em <xliff:g id="ACCOUNT">%s</xliff:g> não são editáveis"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"VINCULAR CONTATOS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCELAR"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> possíveis cópias</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> possíveis cópias</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contatos vinculados</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatos vinculados</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Este contato"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Possíveis cópias"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Talvez esses contatos sejam a mesma pessoa. É possível vinculá-los como um único contato."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contatos vinculados"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Das suas contas"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Tirar uma foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Todas as fotos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Escolher foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"De <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Excluir <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Excluir <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Excluir <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>não marcada"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>marcada"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto de conta desconhecida não verificada"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto de conta desconhecida verificada"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"A lista de contatos está sendo atualizada para refletir a alteração do idioma.\n\nAguarde..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Adicionar número ou pesquisar contatos"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Desbloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Número <xliff:g id="NUMBER">%1$s</xliff:g> bloqueado"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Número <xliff:g id="NUMBER">%1$s</xliff:g> desbloqueado"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"O número <xliff:g id="NUMBER">%1$s</xliff:g> é inválido."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueio de chamadas temporiamente desativado"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"O bloqueio de chamadas foi desativado porque você entrou em contato com serviços de emergência usando este telefone nas últimas 48 horas. Ele será reativado automaticamente depois de um período de 48 horas."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bloqueio de chamadas desativado por 48 horas"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desativado porque foi feita uma chamada de emergência."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"DESFAZER"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Detalhes de contato para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha na importação"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Ativar"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Sugestões"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Abrir gaveta de navegação"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Fechar gaveta de navegação"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Marcador <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Marcadores"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Contas"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Veja seu histórico reunido"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Eventos e mensagens"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Eventos"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mensagens"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Sugestões"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mantenha seus contatos organizados e úteis"</string>
+    <string name="undo" msgid="1425165101664071422">"Desfazer"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Ligar para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Chamar residência"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Chamar celular"</string>
+    <string name="call_work" msgid="5328785911463744028">"Chamar o trabalho"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Chamar fax comercial"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Chamar fax residencial"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Chamar pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Chamar"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Retornar chamada"</string>
+    <string name="call_car" msgid="3280537320306436445">"Chamar carro"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Chamar empresa (principal)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Chamar ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Chamar o principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Chamar fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Chamar rádio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Chamar telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Chamar TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Chamar celular comercial"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Chamar pager comercial"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Ligar para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Chamar MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (chamada)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Enviar mensagem de texto para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Enviar SMS para resid."</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Enviar SMS para celular"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Enviar SMS para tel. comercial"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Enviar SMS para fax com."</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Enviar SMS para fax resid."</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Enviar SMS para o pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Enviar SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Enviar SMS para retorno de chamada"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Enviar SMS para o carro"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Enviar SMS para empresa (principal)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Mandar mensagem de texto para ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Enviar SMS para núm. principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Enviar SMS para fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Enviar SMS para o rádio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Enviar SMS para telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Enviar SMS para TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Enviar SMS para cel. comercial"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Enviar SMS para pager com."</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Enviar SMS para <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Enviar texto MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (mensagem)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Fazer videochamada"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Apagar contatos frequentes?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Você apagará a lista de contatos frequentes nos apps Contatos e Telefone, fazendo com que os apps de e-mail tenham que redefinir suas preferências de endereçamento."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Apagando contatos frequentes…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponível"</string>
+    <string name="status_away" msgid="1838861100379804730">"Ausente"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Ocupado"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Outros"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Diretório"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Diretório de trabalho"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Todos os contatos"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contato rápido de <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"Sem nome"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Chamados frequentemente"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Todos os contatos com números de telefone"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contatos do perfil de trabalho"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Ver atualizações"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Dispositivo"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nome"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Apelido"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nome"</string>
+    <string name="name_family" msgid="7466985689626017037">"Sobrenome"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefixo do nome"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Nome do meio"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Sufixo do nome"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nome fonético"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nome fonético"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Nome do meio fonético"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Sobrenome fonético"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Endereço"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Mensagem instantânea"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organização"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relacionamento"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Data especial"</string>
+    <string name="sms" msgid="1756857139634224222">"Mensagem de texto"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Endereço"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Empresa"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Título"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Observações"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalizado"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Site"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Marcadores"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mail (residencial)"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Enviar e-mail para celular"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mail (comercial)"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Enviar e-mail para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Rua"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Cidade"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Estado"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"CEP"</string>
+    <string name="postal_country" msgid="7638264508416368690">"País"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ver endereço residencial"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ver endereço comercial"</string>
+    <string name="map_other" msgid="3817820803587012641">"Visualizar endereço"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Ver endereço de <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Bater papo usando o AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Bater papo usando o Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Bater papo usando o Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Bater papo usando o Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Bater papo usando o QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Bater papo usando o Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Bater papo usando o ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Bater papo usando o Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Bate-papo"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"excluir"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Mostrar mais campos de nome"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Recolher campos de nome"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Mostrar mais campos de nome fonético"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Recolher campos de nome fonético"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Expandir"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Recolher"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Expandido"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Recolhido"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Todos os contatos"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Com estrela"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizar"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contato"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Todos os outros contatos"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Todos os contatos"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Remover sincronização do grupo"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Adicionar grupo sincronizado"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Mais grupos…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"A remoção de \"<xliff:g id="GROUP">%s</xliff:g>\" da sincronização também removerá os contatos não agrupados da sincronização."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Salvando opções de exibição…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Visualização personalizada"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Salvar contatos importados em:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Cartão SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d contato</item>
+      <item quantity="other">%1$d contatos</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> contato • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contatos • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Arquivo .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nada para importar"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importar contatos do vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Cancelar importação de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Cancelar exportação de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Não foi poss. canc. imp./export. vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Erro desconhecido."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Não foi possível abrir \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Não foi possível iniciar o exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Não há contato exportáveis."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Você desativou uma permissão obrigatória."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Ocorreu um erro durante a exportação: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Erro E/S"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Não há memória suficiente. O arquivo pode ser muito grande."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"O formato não é suportado."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Exportação concluída de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"A exportação dos contatos foi concluída."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"A exportação dos contatos foi concluída. Clique na notificação para compartilhar contatos."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Toque para compartilhar contatos."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exportação de <xliff:g id="FILENAME">%s</xliff:g> cancelada."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportando dados do contato"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Os dados dos contatos estão sendo exportados."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Não foi possível obter as informações do banco de dados."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Não há contatos exportáveis."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"O criador do vCard não iniciou corretamente."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Não foi possível exportar"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Os dados de contato não foram exportados.\nMotivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importando <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Não foi possível ler os dados do vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Importação de vCard concluída <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importação de <xliff:g id="FILENAME">%s</xliff:g> cancelada"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> será importado em breve."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"O arquivo será importado em breve."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"O pedido de importação vCard foi rejeitado. Tente novamente mais tarde."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Os contatos serão exportados em breve."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Pedido de exportação vCard foi rejeitado. Tente novamente mais tarde."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contato"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Armazenando VCard(s) em cache no armazenamento temporário local. A importação real começará em breve."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Não foi possível importar o vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contato via NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Armazenando em cache"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importando <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportar p/ arquivo .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Classificar por"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nome fonético"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mostrar sempre"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ocultar se vazio"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nome"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Sobrenome"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formato de nome"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Primeiro o nome"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Primeiro o sobrenome"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Contas"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Conta padrão para novos contatos"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Minhas informações"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configurar seu perfil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Sobre Contatos"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Compartilhar contatos favoritos"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Compartilhar todos os contatos"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Falha ao compartilhar contatos."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportar contatos"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importar contatos de"</string>
+    <string name="share_error" msgid="948429331673358107">"Este contato não pode ser compartilhado."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Não há contatos para compartilhar."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contatos para exibição"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contatos a exibir"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizar visualização"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Salvar"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Pesquisar contatos"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritos"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importar"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportar"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Números bloqueados"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"por meio de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"parar de pesquisar"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Limpar pesquisa"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Conta"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Sempre usar esta opção para chamadas"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Chamada com nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Digite uma nota para enviar com a chamada..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVIAR E LIGAR"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versão"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licenças de código aberto"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalhes da licença do software de código aberto"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Política de privacidade"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Termos de Serviço"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licenças de código aberto"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Falha ao abrir o URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> verificado"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> não verificado"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Realizar videochamada"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Excluir"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Reticências"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Este atalho foi desativado"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"O contato foi removido"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importar"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Selecionar contatos"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Não há contatos no seu cartão SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"O contato já existe na sua lista"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contato importado do SIM</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatos importados do SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Falha ao importar contatos do SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importar do SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancelar"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"A sincronização automática está desativada. Toque para ativar."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Dispensar"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"A sincronização da conta está desativada. Toque para ativar."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Ativar a sincronização automática?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"As alterações que você fizer em todos os aplicativos e contas, não apenas nas Contas do Google, permanecerão atualizadas entre a Web e seus dispositivos."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Ativar"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Sem conexão"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mostrar mais"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"A importação do cartão SIM foi concluída"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Falha na importação"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Não foi possível importar os contatos do cartão SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importando do cartão SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 66ca708..6f11e27 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -17,72 +17,74 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contactos"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contactos"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Ver contacto"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Editar contacto"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contactos"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Adicionar contacto"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contacto"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Marcação directa"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mensagem directa"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Seleccionar um atalho de contacto"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Seleccionar um número a marcar"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Seleccionar um número para enviar mensagem"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Marcação direta"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mensagem direta"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Escolher contacto"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Adicionar ao contacto"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Escolher um contacto"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Selecionar"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Criar novo contacto"</string>
-    <string name="starredList" msgid="4817256136413959463">"Marcado com estrela"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frequentes"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoritos"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detalhes de contacto"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Editar contacto"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Criar contacto"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Criar grupo"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Acerca de"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Atualiz."</string>
     <string name="searchHint" msgid="8482945356247760701">"Pesquisar contactos"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Visualizar contacto"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Adicionar aos favoritos"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Remover dos favoritos"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Removido dos favoritos"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"Adicionado aos favoritos"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Eliminar"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Alterar fotografia"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Colocar no ecrã principal"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Ligar para contacto"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Enviar SMS/MMS para contacto"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Alterar foto"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Criar atalho"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Desassociar"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Editar"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Eliminar"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Adicionar Contacto"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Adicionar Grupo"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Remover contactos"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Mudar o nome da etiqueta"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Eliminar etiqueta"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Adicionar contacto"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Selecionar contactos"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Adicionar contactos"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Remover da etiqueta"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Criar etiqueta"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Pretende desassociar este contacto em vários contactos?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Desassociar"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Gostaria de guardar as alterações já efetuadas e desassociar este contacto em vários contactos?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Guardar e desassociar"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Gostaria de guardar as alterações já efetuadas e associá-las ao contacto selecionado?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Guardar e associar"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Ligar"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"A associar..."</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"A desassociar..."</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Associar"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Ver contactos associados"</string>
     <string name="menu_save" msgid="1727844363591825909">"Guardar"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Ligar contactos"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Escolha o contacto que pretende ligar a <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostrar todos os contactos"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Associar contactos"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Escolha o contacto que pretende associar a <xliff:g id="NAME">%s</xliff:g>:"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contactos sugeridos"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos os contactos"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Contacto associado: <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contacts linked"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Contacto <xliff:g id="NAME">%1$s</xliff:g> eliminado"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Contactos <xliff:g id="NAME_0">%1$s</xliff:g> e <xliff:g id="NAME_1">%2$s</xliff:g> eliminados"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… foram eliminados"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Contactos eliminados</item>
       <item quantity="one">Contacto eliminado</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contactos</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contactos · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Da Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Da conta <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Definir toque"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Todas as cham. p/ correio voz"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Não é possível eliminar os contactos das suas contas só de leitura, mas é possível ocultá-los."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ocultar"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"O contacto a ser eliminado tem detalhes de várias contas. Os detalhes das contas só de leitura ficam ocultos, mas não são eliminados."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Necessita de, pelo menos, dois contactos selecionados para efetuar uma ligação."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Pretende associar os contactos selecionados?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Associar"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Encaminhar para correio de voz"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Anular encam. correio de voz"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Este contacto é só de leitura. Não pode ser eliminado, mas pode ocultá-lo."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ocultar contacto"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"As contas só de leitura neste contacto serão ocultadas e não eliminadas."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Pretende eliminar este contacto?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Pretende eliminar os contactos selecionados?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Não é possível eliminar os contactos das suas contas só de leitura, mas é possível ocultá-los."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"A eliminação deste contacto elimina detalhes de várias contas."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Pretende eliminar este contacto?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Eliminar"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Rejeitar alterações"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"O contacto não existe."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contacto adicionado ao ecrã principal."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> adicionado ao ecrã principal."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Criar novo contacto"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Criar novo contacto"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organização"</item>
-    <item msgid="7196592230748086755">"Nota"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Não existem imagens disponíveis no tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Não existem imagens disponíveis no telefone."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Não existem imagens disponíveis no dispositivo."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografia do contacto"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nome da etiqueta personalizada"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Enviar as chamadas diretamente para o correio de voz"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Remover fotografia"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Sem contactos"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nenhum grupo."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Para criar grupos precisa de uma conta"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Sem pessoas neste grupo."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Para adicionar algumas, edite o grupo."</string>
-    <string name="savingContact" msgid="4075751076741924939">"A guardar contacto..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"A sua lista de contactos está vazia"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Sem contactos com esta etiqueta"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Não existem contactos nesta conta"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"A sua lista de contactos está vazia"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> guardado"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Contacto guardado"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contactos desassociados"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Não foi possível guardar as alterações do contacto."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Não foi possível desassociar o contacto."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Não foi possível ligar o contacto."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Ocorreu um erro ao guardar o contacto."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Não foi possível guardar as alterações à foto do contacto."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupo guardado."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Não foi possível guardar as alterações do grupo."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos com números de telefone</item>
-      <item quantity="one">1 contacto com número de telefone</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Sem contactos com números de telefone"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-      <item quantity="one">1 encontrado</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Não foi possível guardar as alterações do contacto"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Não foi possível desassociar o contacto"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Não foi possível associar o contacto"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Ocorreu um erro ao guardar o contacto"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Não foi possível guardar as alterações da foto do contacto"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Falha ao carregar a etiqueta"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiqueta eliminada"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiqueta criada"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Não é possível criar a etiqueta"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiqueta atualizada"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Removido da etiqueta"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Adicionado(s) à etiqueta"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Não foi possível guardar as alterações da etiqueta"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Essa etiqueta já existe"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Alguns contactos não têm endereços de email."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Alguns contactos não têm números de telefone."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Enviar email"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Enviar mensagem"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Selecionar contactos"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Enviar"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Sem contactos"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-      <item quantity="one">1 encontrado</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Todos"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
-    <string name="callBack" msgid="5498224409038809224">"Chamada de retorno"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Ligar novamente"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Devolver chamada"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Adicionar \"<xliff:g id="EMAIL">%s</xliff:g>\" aos contactos?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotografia do contacto"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"mais"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contactos"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nomes dos contactos"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Não foram encontradas aplicações para executar esta ação"</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Clique para regressar ao ecrã anterior"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Adicionar número de telefone"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Adicionar email"</string>
     <string name="missing_app" msgid="1466111003546611387">"Não foram encontradas aplicações para executar esta ação."</string>
     <string name="menu_share" msgid="943789700636542260">"Partilhar"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Adicionar aos contactos"</string>
-    <string name="share_via" msgid="563121028023030093">"Partilhar contacto através de"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Criar grupo na conta"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Adicionar"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Partilhar contactos através de</item>
+      <item quantity="one">Partilhar contacto através de</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Selecionar conta"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Criar etiqueta"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Mudar o nome da etiqueta"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nome da etiqueta"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nome etiqueta"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat de voz"</string>
     <string name="video_chat" msgid="1872255818640336072">"Chat de vídeo"</string>
-    <string name="connections" msgid="8098440723172028350">"Ligações"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Adicionar ligação"</string>
-    <string name="recent" msgid="2659189233141493004">"Recentes"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Atualiz. recentes"</string>
-    <string name="account_type_format" msgid="718948015590343010">"Contacto do <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="account_type_format" msgid="718948015590343010">"Contacto <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Conta <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Não editável a partir desta aplicação."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Não editável neste aparelho"</string>
-    <string name="take_photo" msgid="7496128293167402354">"Tirar fotografia"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Tirar foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tirar nova fotografia"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Escolher fotografia"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Escolher foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Selecionar nova fotografia"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"A lista de contactos está a ser atualizada."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"A pesquisar..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mostrar seleccionados"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mostrar tudo"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Selecionar tudo"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Desmarcar tudo"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Adicionar novo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Adicionar entidade"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome do grupo"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Alterar"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Fot. principal"</string>
-    <string name="description_star" msgid="2605854427360036550">"favorito"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Editar contacto"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Pretende ligar o contacto atual ao contacto selecionado?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiqueta"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancelar"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Anterior"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"fechar"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Alternar para edição do contacto selecionado? A informação introduzida até agora vai ser copiada."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copiar para Os Meus Contactos"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Adicionar aos Meus Contactos"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Directório <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizado"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Definições"</string>
     <string name="menu_settings" msgid="377929915873428211">"Definições"</string>
     <string name="menu_help" msgid="1680178646764069976">"Ajuda e comentários"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opções de visualização"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Número de telefone"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Adicionar aos contactos"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Adicionar ao contacto"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Fechar"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Incluir ano"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contacto"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"A carregar…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Criar novo contacto"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Adicionar conta"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importar contactos"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Criar novo grupo"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Criar novo grupo"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupos</item>
-      <item quantity="one">1 grupo</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Eliminar o grupo \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Os contactos não serão eliminados)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> pessoas de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> pessoa de <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> pessoas</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> pessoa</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importar"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Criar nova…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Pretende eliminar a etiqueta \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Os contactos não serão eliminados.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Introduza o nome do contacto antes de ligar a outro contacto."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copiar para área de transf."</string>
     <string name="set_default" msgid="4417505153468300351">"Definir a predefinição"</string>
     <string name="clear_default" msgid="7193185801596678067">"Limpar predefinição"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Texto copiado"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Rejeitar as alterações?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Rejeitar"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Config. o perfil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Introduza o nome da pessoa"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nome do Grupo"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Rejeitar alterações?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Rejeitar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancelar"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Pretende rejeitar as personalizações?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Pesquisar contactos"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Remover contactos"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"O meu perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"O meu perfil do <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"A apresentar todos os contactos"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"A aplicação Contactos funciona melhor com uma Conta Google.\n\n• Aceda a partir de qualquer navegador de Internet.\n• Faça uma cópia de segurança dos seus contactos de forma segura."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantenha os seus contactos em segurança, mesmo em caso de perda do telemóvel: sincronize com um serviço on-line."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Adicionar uma conta"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Não será efetuada cópia de segurança do novo contacto. Adicionar uma conta que efetua a cópia de segurança dos contactos on-line?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Dedique um minuto para adicionar uma conta que irá efetuar uma cópia de segurança dos seus contactos no Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Os novos contactos serão guardados em <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Escolha uma conta predefinida para os novos contactos:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Adic. novo contacto"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Criar novo contacto"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contacto"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Manter localmente"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Apenas visualização"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Selecionar um contacto para editar"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contactos associados"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Adicionar"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Desassociar"</string>
     <string name="add_account" msgid="8201790677994503186">"Adicionar conta"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Adicionar nova conta"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportar ficheiros da base de dados"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"adicionar novo contacto"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Criar novo contacto"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ver mais"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ver menos"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ver tudo"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recentes"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Acerca de"</string>
-    <string name="send_message" msgid="8938418965550543196">"Enviar mensagem"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"A criar uma cópia pessoal..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Ontem"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"A criar uma cópia pessoal"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Amanhã"</string>
     <string name="today" msgid="8041090779381781781">"Hoje"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Hoje, às <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Amanhã, às <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Evento sem nome)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Definir"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"MI"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Website"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relação"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Conta"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nome"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Email"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telemóvel"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotografia"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Clique para expandir o editor de contactos."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Clique para reduzir o editor de contactos."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"direções para a localização"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. clique para responder"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. clique para responder"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"recebida"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"efetuada"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"não atendida"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"chamada recente. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. clique para ligar de volta"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"chamada recente. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. clique para ligar de volta"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"O utilizador: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"O Hangouts funciona melhor quando introduz o identificador do Hangouts da pessoa no campo do email ou no campo do telefone."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Mais campos"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Alterar foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Falha ao abrir o editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"A guardar em"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"A guardar atualmente em <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Toque duas vezes para escolher uma conta diferente."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Contactos ligados (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Contacto ligado</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contactos ligados"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LIGAR CONTACTOS"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Mais campos"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Alterar foto do contacto"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Adicionar foto do contacto"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto do contacto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Ocorreu uma falha ao abrir o editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"A guardar em"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"A informação de contacto de <xliff:g id="ACCOUNT">%s</xliff:g> não é editável"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ASSOCIAR CONTACTOS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCELAR"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> possíveis duplicados</item>
-      <item quantity="one">1 possível duplicado</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos ligados</item>
-      <item quantity="one">1 contacto ligado</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Este contacto"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Possíveis duplicados"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Estes contactos podem ser da mesma pessoa. Pode associá-los num único contacto."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contactos ligados"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Das suas contas"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Tirar uma foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Todas as fotos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Escolher foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"De <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Eliminar <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Eliminar <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Eliminar <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> não marcada"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> marcada"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto de conta desconhecida desmarcada"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto de conta desconhecida marcada"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"A lista de contactos está a ser atualizada para reflectir a alteração do idioma.\n\nAguarde..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Adic. n.º ou pesq. contactos"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Pretende desbloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Pretende bloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> bloqueado"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> desbloqueado"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> é inválido."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueio de chamadas tempor. desativado"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"O bloqueio de chamadas foi desativado porque contactou os serviços de emergência a partir deste telemóvel nas últimas 48 horas. O bloqueio será automaticamente reativado assim que expirar o período de 48 horas."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bloqueio de chamadas desativado durante 48 horas"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desativado porque foi efetuada uma chamada de emergência."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ANULAR"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Detalhes de contacto para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha ao importar"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar os seus contactos, ative as autorizações Contactos."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Ativar"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Sugestões"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Abrir gaveta de navegação"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Fechar gaveta de navegação"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiqueta <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiquetas"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Contas"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Ver também o histórico"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Eventos e mensagens"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Eventos"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mensagens"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Sugestões"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mantenha os seus contactos organizados e úteis"</string>
+    <string name="undo" msgid="1425165101664071422">"Anular"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Telefonar para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Ligar para residência"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Ligar para telemóvel"</string>
+    <string name="call_work" msgid="5328785911463744028">"Ligar para emprego"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Ligar para fax do emprego"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Ligar para o fax da residência"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Ligar para pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Ligar"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Ligar para rechamada"</string>
+    <string name="call_car" msgid="3280537320306436445">"Ligar para automóvel"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Ligar para telefone principal da empresa"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Ligar para RDIS"</string>
+    <string name="call_main" msgid="6082900571803441339">"Ligar para telefone principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Ligar para número de fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Ligar para rádio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Ligar para telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Ligar para telefone TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Ligar para telemóvel do emprego"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Ligar para pager do emprego"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Telefonar para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Ligar MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Chamada)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Enviar SMS para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Enviar SMS para residência"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Enviar SMS para telemóvel"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Enviar SMS para emprego"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Enviar SMS para fax do emprego"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Enviar SMS para fax da residência"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Enviar SMS para pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Enviar SMS para"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Enviar SMS de resposta"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Enviar SMS para automóvel"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Enviar SMS para telefone principal da empresa"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS para RDIS"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Enviar SMS para telefone principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Enviar SMS para número de fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Enviar SMS para rádio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Enviar SMS para telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Enviar SMS para telefone TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Enviar SMS para telemóvel do emprego"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Enviar SMS para pager do emprego"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Enviar SMS para <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Enviar MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Mensagem)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Fazer videochamada"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Limpar contactos frequentes?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Limpa a lista de contactos frequentes nas aplicações Contactos e Telefone e força as aplicações de email a aprenderem as suas preferências de endereço de raiz."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"A limpar contactos frequentes..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Available"</string>
+    <string name="status_away" msgid="1838861100379804730">"Ausente"</string>
+    <string name="status_busy" msgid="9147992455450257136">"ocupado"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Outro"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Directório"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Diretório de trabalho"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Todos os contactos"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contacto rápido de <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Sem nome)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Contactos frequentes"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Todos os contactos com números de telefone"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contactos do perfil de trabalho"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Ver atualizações"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Dispositivo"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nome"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Pseudónimo"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nome próprio"</string>
+    <string name="name_family" msgid="7466985689626017037">"Apelido"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Título académico ou profissional"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Primeiro apelido"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Título honorífico ou eclesiástico"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nome fonético"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nome próprio fonético"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonética do primeiro apelido"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Apelido fonético"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Email"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Endereço"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"MI"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organização"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relacionamento"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Data especial"</string>
+    <string name="sms" msgid="1756857139634224222">"Mensagem de texto"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Endereço"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Empresa"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Título"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notas"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalizado"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Web site"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiquetas"</string>
+    <string name="email_home" msgid="8573740658148184279">"Enviar e-mail para residência"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Enviar e-mail para telemóvel"</string>
+    <string name="email_work" msgid="2807430017302722689">"Enviar e-mail para emprego"</string>
+    <string name="email_other" msgid="3454004077967657109">"Email"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Enviar email para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Email"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Rua"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Cidade"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Região"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Código postal"</string>
+    <string name="postal_country" msgid="7638264508416368690">"País"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ver endereço da residência"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ver endereço do emprego"</string>
+    <string name="map_other" msgid="3817820803587012641">"Ver endereço"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Ver endereço de <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chat utilizando AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chat utilizando Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chat utilizando Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chat utilizando Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chat utilizando QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chat através do Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chat utilizando ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chat utilizando Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"eliminar"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Mostrar mais campos de nomes"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Reduzir os campos de nomes"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Mostrar mais campos de nomes fonéticos"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Reduzir os campos de nomes fonéticos"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Expandir"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Reduzir"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Expandido"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Reduzido"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Todos os contactos"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Marcado com estrela"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizar"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contacto"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Todos os outros contactos"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Todos os contactos"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Remover grupo de sincronização"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Adicionar grupo de sincronização"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Mais grupos..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Ao remover \"<xliff:g id="GROUP">%s</xliff:g>\" da sincronização, removerá também quaisquer contactos não agrupados."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"A guardar opções de visualização..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Vista personalizada"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Guardar contactos importados em:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Cartão SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d contactos</item>
+      <item quantity="one">1 contacto</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contactos • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contacto • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Ficheiro .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nada para importar"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Pretende importar contactos do vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Cancelar a importação de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Cancelar a exportação de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Imposs. cancel. import./export. do vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Erro desconhecido."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Não foi possível abrir \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Não foi possível iniciar o exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Não existe um contacto exportável."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Desativou uma autorização obrigatória."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Ocorreu um erro durante a exportação: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Erro de E/S"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Memória insuficiente. O ficheiro pode ser demasiado grande."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"O formato não é suportado."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"A exportação de <xliff:g id="FILENAME">%s</xliff:g> terminou."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Exportação de contactos concluída."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"A exportação dos contactos foi concluída. Clique na notificação para partilhar contactos."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Toque para partilhar contactos."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"A exportação de <xliff:g id="FILENAME">%s</xliff:g> foi cancelada."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportar dados do contacto"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Os dados de contactos estão a ser exportados."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Não foi possível obter informações da base de dados"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Não existem contactos exportáveis."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"O compositor vCard não iniciou corretamente."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Impossível exportar"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Os dados do contacto não foram exportados.\nMotivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"A importar <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Não foi possível ler dados do vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"A importação do vCard terminou <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"A importação de <xliff:g id="FILENAME">%s</xliff:g> foi cancelada"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> será importado em breve."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"O ficheiro será importado em breve."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"O pedido de importação do vCard foi rejeitado. Tente novamente mais tarde."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Os contactos serão exportados em breve."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"O pedido de exportação do vCard foi rejeitado. Tente novamente mais tarde."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contacto"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"A colocar vCard(s) em cache no armazenamento temporário local. A importação efetiva começará brevemente."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Não foi possível importar o vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contacto recebido através de NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"A colocar em cache"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"A importar <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportar p/ ficheiro .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Ordenar por"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nome fonético"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mostrar sempre"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ocultar caso esteja vazio"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nome próprio"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Apelido"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formato do nome"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Nome próprio em primeiro lugar"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Apelido em primeiro lugar"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Contas"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Conta predefinida para novos contactos"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"As minhas informações"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configurar o seu perfil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Acerca dos contactos"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Partilhar contactos favoritos"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Partilhar todos os contactos"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Falha ao partilhar os contactos."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportar contactos"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importar contactos de"</string>
+    <string name="share_error" msgid="948429331673358107">"Não é possível partilhar este contacto."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Não existem contactos para partilhar."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contactos a apresentar"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contactos a apresentar"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizar vista"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Guardar"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Pesquisar contactos"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritos"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importar"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportar"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Números bloqueados"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"através do <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> através do <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"interromper a pesquisa"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Limpar pesquisa"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Conta"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Utilizar sempre este para chamadas"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Ligar com uma nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Escrever uma nota para enviar com a chamada…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVIAR E LIGAR"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versão da compilação"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licenças de código aberto"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalhes da licença para software de código aberto"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Política de privacidade"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Termos de Utilização"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licenças de código aberto"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Falha ao abrir o URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> selecionado"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> não selecionado"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Efetuar videochamada"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Eliminar"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Reticências"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> seg"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> seg"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Este atalho foi desativado"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"O contacto foi removido"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importar"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Selecionar contactos"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Sem contactos no cartão SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"O contacto já existe na sua lista"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos do cartão SIM importados</item>
+      <item quantity="one">1 contacto do cartão SIM importado</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Ocorreu uma falha ao importar os contactos do cartão SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importar do cartão SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancelar"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"A sincronização automática está desativada. Toque para ativar."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ignorar"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"A sincronização da conta está desativada. Toque para ativar."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Pretende ativar a sincronização automática?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"As alterações que efetuar a todas as aplicações e contas, e não apenas aos Contactos do Google, serão atualizadas entre a Web e os seus dispositivos."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Ativar"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Sem ligação"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mostrar mais"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importação do cartão SIM concluída"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Falha ao importar"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Não foi possível importar contactos do cartão SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"A importar SIM…"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 1fb6ca3..ce6ee65 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Contatos"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Contatos"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Ver contato"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Editar contato"</string>
     <string name="contactsList" msgid="8661624236494819731">"Contatos"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Adicionar contato"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contato"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Discagem direta"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Mensagem direta"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Escolha o atalho para um contato"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Escolha um número a ser chamado"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Escolha um número para enviar uma mensagem"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Escolher contato"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Adicionar a contato"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Escolha um contato"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Selecionar"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Criar novo contato"</string>
-    <string name="starredList" msgid="4817256136413959463">"Com estrela"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frequente"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoritos"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detalhes do contato"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Editar contato"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Criar contato"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Editar grupo"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Criar grupo"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Sobre"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Atualização"</string>
     <string name="searchHint" msgid="8482945356247760701">"Pesquisar contatos"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Ver contato"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Adicionar aos favoritos"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Remover dos favoritos"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Removido dos favoritos"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Editar"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Excluir"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Alterar foto"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Colocar na tela inicial"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Ligar para contato"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Enviar SMS/MMS para o contato"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Criar atalho"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Desvincular"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Editar"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Excluir"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Adicionar contato"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Adicionar grupo"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Remover contatos"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Renomear marcador"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Excluir marcador"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Adicionar contato"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Selecionar contatos"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Adicionar contatos"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Remover do marcador"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Criar marcador"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Desvincular este contato em vários contatos?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Desvincular"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Gostaria de salvar as alterações já feitas e desvincular este contato em vários contatos?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Salvar e desvincular"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Gostaria de salvar as alterações já efetuadas e vincular com o contato selecionado?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Salvar e vincular"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Vinculando"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Desvinculando"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Vincular"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Ver contatos vinculados"</string>
     <string name="menu_save" msgid="1727844363591825909">"Salvar"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Vincular contatos"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Selecione o contato que você deseja vincular com <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Mostrar todos os contatos"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Contatos sugeridos"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Todos os contatos"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Nome vinculado: <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Contatos vinculados"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> excluído"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> e <xliff:g id="NAME_1">%2$s</xliff:g> excluídos"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>... excluídos"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Contatos excluídos</item>
       <item quantity="other">Contatos excluídos</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> contato</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contatos</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> contato: <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contatos: <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Do Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Da conta <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Definir toque"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Todas as cham. p/ correio voz"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Não é possível excluir contatos de contas somente leitura, mas eles podem ser ocultados."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ocultar"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"O contato a ser excluído tem detalhes de várias contas. Os detalhes de contas somente leitura serão ocultados, não excluídos."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Selecione pelo menos dois contatos para realizar uma vinculação."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Vincular contatos selecionados?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Vincular"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Rotear para correio de voz"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Cancelar roteam. correio voz"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Este contato é somente leitura. Não é possível excluí-lo, mas você pode ocultá-lo."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ocultar contato"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"As contas somente leitura neste contato não serão excluídas, ficarão ocultas."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Excluir este contato?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Excluir contatos selecionados?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Não é possível excluir contatos de contas somente leitura, mas eles podem ser ocultados."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"A exclusão deste contato excluirá detalhes de várias contas."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Excluir este contato?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Excluir"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Descartar alterações"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"O contato não existe."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Contato adicionado à tela inicial."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Contato <xliff:g id="NAME">%s</xliff:g> adicionado à tela inicial."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Criar novo contato"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Criar novo contato"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organização"</item>
-    <item msgid="7196592230748086755">"Observação"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Nenhuma imagem disponível no tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Nenhuma imagem disponível no telefone."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Não há imagens disponíveis no dispositivo."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Foto do contato"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Personalizar nome do marcador"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Enviar chamadas diretamente para o correio de voz"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Remover foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nenhum contato"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nenhum grupo."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Você precisa de uma conta para criar grupos."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Nenhuma pessoa neste grupo."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Para adicionar pessoas, edite o grupo."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Salvando contato…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Sua lista de contatos está vazia"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nenhum contato com este marcador"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Nenhum contato nesta conta"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Sua lista de contatos está vazia"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Contato salvo: <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"O contato foi salvo"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Contatos desvinculados"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Não foi possível salvar as alterações do contato."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Não foi possível desvincular contato."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Não foi possível vincular o contato."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Erro ao salvar contato."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Não foi possível salvar as alterações da foto de contato."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupo salvo."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Não foi possível salvar as alterações de grupo."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contatos com números de telefone</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatos com números de telefone</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nenhum contato com números de telefone"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Não foi possível salvar as alterações do contato"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Não foi possível desvincular contato"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Não foi possível vincular o contato"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Erro ao salvar o contato"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Não foi possível salvar as alterações da foto de contato"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Falha ao carregar o marcador"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Marcador excluído"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Marcador criado"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Não é possível criar um marcador"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Marcador atualizado"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Removido do marcador"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Adicionado ao marcador"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Não foi possível salvar as alterações do marcador"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Este marcador já existe"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Alguns contatos não têm e-mails."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Alguns contatos não têm números de telefone."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Enviar e-mail"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Enviar mensagem"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Escolher contatos"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Enviar"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nenhum contato"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> encontrados</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Todos"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoritos"</string>
-    <string name="callBack" msgid="5498224409038809224">"Retornar chamada"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Ligar novamente"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Retornar chamada"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Adicionar \"<xliff:g id="EMAIL">%s</xliff:g>\" aos contatos?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"foto do contato"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"mais"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> de <xliff:g id="TOTAL_NUMBER">%s</xliff:g> contatos"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Nomes dos seus contatos"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nenhum app foi encontrado para executar esta ação."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Clique para retornar à tela anterior"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Adicionar número de telefone"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Adicionar e-mail"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nenhum app foi encontrado para executar esta ação."</string>
     <string name="menu_share" msgid="943789700636542260">"Compartilhar"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Adicionar aos contatos"</string>
-    <string name="share_via" msgid="563121028023030093">"Compartilhar contato via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Criar grupo na conta"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Adicionar"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Compartilhar contato via</item>
+      <item quantity="other">Compartilhar contatos via</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Escolher conta"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Criar marcador"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Renomear marcador"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Nome do marcador"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nome - marcador"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Bate-papo por voz"</string>
     <string name="video_chat" msgid="1872255818640336072">"Bate-papo por vídeo"</string>
-    <string name="connections" msgid="8098440723172028350">"Conexões"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Adicionar conexão"</string>
-    <string name="recent" msgid="2659189233141493004">"Recentes"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Atualiz. recentes"</string>
     <string name="account_type_format" msgid="718948015590343010">"Contato de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Conta do <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Não pode ser editado neste app."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Não é possível editar neste dispositivo."</string>
     <string name="take_photo" msgid="7496128293167402354">"Tirar foto"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Tirar outra foto"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Escolher foto"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Selecionar nova foto"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"A lista de contatos está sendo atualizada."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Pesquisando..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Mostrar selecionados"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Mostrar todos"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Selecionar todos"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Desmarcar todos"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Adicionar novo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Adicionar organização"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nome do grupo"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Alterar"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto principal"</string>
-    <string name="description_star" msgid="2605854427360036550">"favorito"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Editar contato"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vincular o contato atual com o contato selecionado?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Marcador"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Cancelar"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Voltar"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"fechar"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Alternar para a edição do contato selecionado? As informações inseridas até agora serão copiadas."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copiar para Meus contatos"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Adicionar a Meus contatos"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Diretório <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizado"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Configurações"</string>
     <string name="menu_settings" msgid="377929915873428211">"Configurações"</string>
     <string name="menu_help" msgid="1680178646764069976">"Ajuda e feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opções de exibição"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Número de telefone"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Adicionar aos contatos"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Adicionar a contato"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Fechar"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Incluir ano"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contato"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Carregando…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Criar um novo contato"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Adicionar conta"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importar contatos"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Criar um novo grupo"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Criar novo grupo"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> grupos</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupos</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Excluir o grupo \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Os contatos não serão apagados."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> pessoas de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> pessoas de <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> pessoas</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> pessoas</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importar"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Criar novo..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Excluir o marcador \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Os contatos não serão excluídos."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Digite o nome de contato antes de vinculá-lo a outro."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copiar para área de transferência"</string>
     <string name="set_default" msgid="4417505153468300351">"Definir padrão"</string>
     <string name="clear_default" msgid="7193185801596678067">"Limpar padrão"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Texto copiado"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Descartar as alterações?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Descartar"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configurar meu perfil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Digite o nome da pessoa"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Nome do grupo"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Descartar alterações?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Descartar"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Cancelar"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Descartar personalizações?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Pesquisar contatos"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Remover contatos"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Meu perfil local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Meu perfil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Exibindo todos os contatos"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Contatos funciona melhor com uma conta do Google.\n\n• Acesse-o a partir de qualquer navegador da web.\n• Faça backup de seus contatos com segurança."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mantenha seus contatos seguros, mesmo se você perder seu telefone: sincronize com um serviço on-line."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Adicionar uma conta"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Não será possível fazer backup de seu novo contato. Deseja adicionar uma conta que faça backup de contatos on-line?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Adicione a conta na qual será feito o backup dos seus contatos no Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novos contatos serão salvos em <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Escolha uma conta padrão para novos contatos:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Adic. novo contato"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Criar novo contato"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editar contato"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Manter localmente"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Somente visualização"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Escolher um contato para editar"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Contatos vinculados"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Adicionar"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Desvincular"</string>
     <string name="add_account" msgid="8201790677994503186">"Adicionar conta"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Adicionar nova conta"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportar arquivos do banco de dados"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"adicionar novo contato"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Criar novo contato"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ver mais"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Ver menos"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Ver tudo"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recente"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Sobre"</string>
-    <string name="send_message" msgid="8938418965550543196">"Enviar mensagem"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Criando uma cópia pessoal..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Ontem"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Criando uma cópia pessoal..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Amanhã"</string>
     <string name="today" msgid="8041090779381781781">"Hoje"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Hoje, às <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Amanhã, às <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Evento sem título)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Definir"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Mensagem instantânea"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Site"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Evento"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relação"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Conta"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nome"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefone"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Foto"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Clique para expandir o editor de contatos."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Clique para recolher o editor de contatos."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"rotas até o local"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. clique para responder"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recente. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. clique para responder"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"entrada"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"saída"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"perdida"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"chamada recente. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. clique para retornar a chamada"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"chamada recente. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. clique para retornar a chamada"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Você: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"O Hangouts funciona melhor quando você insere o identificador do Hangouts da pessoa no campo de e-mail ou de telefone."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Mais campos"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Alterar foto"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Falha ao abrir o editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Salvar em"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Salvando em <xliff:g id="ACCOUNT_NAME">%s</xliff:g> no momento. Toque duas vezes para escolher uma conta diferente."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Contatos vinculados (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Contatos vinculados (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> contatos vinculados"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Mais campos"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Alterar foto do contato"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Adicionar foto do contato"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto do contato"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Falha ao abrir o editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Salvar em"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"As informações do contato em <xliff:g id="ACCOUNT">%s</xliff:g> não são editáveis"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"VINCULAR CONTATOS"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"CANCELAR"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> possíveis cópias</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> possíveis cópias</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contatos vinculados</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatos vinculados</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Este contato"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Possíveis cópias"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Talvez esses contatos sejam a mesma pessoa. É possível vinculá-los como um único contato."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Contatos vinculados"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Das suas contas"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Tirar uma foto"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Todas as fotos"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Escolher foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"De <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Excluir <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Excluir <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Excluir <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>não marcada"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Foto de <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>marcada"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Foto de conta desconhecida não verificada"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Foto de conta desconhecida verificada"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"A lista de contatos está sendo atualizada para refletir a alteração do idioma.\n\nAguarde..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Adicionar número ou pesquisar contatos"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Desbloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Número <xliff:g id="NUMBER">%1$s</xliff:g> bloqueado"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Número <xliff:g id="NUMBER">%1$s</xliff:g> desbloqueado"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"O número <xliff:g id="NUMBER">%1$s</xliff:g> é inválido."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueio de chamadas temporiamente desativado"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"O bloqueio de chamadas foi desativado porque você entrou em contato com serviços de emergência usando este telefone nas últimas 48 horas. Ele será reativado automaticamente depois de um período de 48 horas."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bloqueio de chamadas desativado por 48 horas"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desativado porque foi feita uma chamada de emergência."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"DESFAZER"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Detalhes de contato para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha na importação"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Ativar"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Sugestões"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Abrir gaveta de navegação"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Fechar gaveta de navegação"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Marcador <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Marcadores"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Contas"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Veja seu histórico reunido"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Eventos e mensagens"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Eventos"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mensagens"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Sugestões"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mantenha seus contatos organizados e úteis"</string>
+    <string name="undo" msgid="1425165101664071422">"Desfazer"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Ligar para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Chamar residência"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Chamar celular"</string>
+    <string name="call_work" msgid="5328785911463744028">"Chamar o trabalho"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Chamar fax comercial"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Chamar fax residencial"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Chamar pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Chamar"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Retornar chamada"</string>
+    <string name="call_car" msgid="3280537320306436445">"Chamar carro"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Chamar empresa (principal)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Chamar ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Chamar o principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Chamar fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Chamar rádio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Chamar telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Chamar TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Chamar celular comercial"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Chamar pager comercial"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Ligar para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Chamar MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (chamada)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Enviar mensagem de texto para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Enviar SMS para resid."</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Enviar SMS para celular"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Enviar SMS para tel. comercial"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Enviar SMS para fax com."</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Enviar SMS para fax resid."</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Enviar SMS para o pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Enviar SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Enviar SMS para retorno de chamada"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Enviar SMS para o carro"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Enviar SMS para empresa (principal)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Mandar mensagem de texto para ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Enviar SMS para núm. principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Enviar SMS para fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Enviar SMS para o rádio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Enviar SMS para telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Enviar SMS para TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Enviar SMS para cel. comercial"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Enviar SMS para pager com."</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Enviar SMS para <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Enviar texto MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (mensagem)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Fazer videochamada"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Apagar contatos frequentes?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Você apagará a lista de contatos frequentes nos apps Contatos e Telefone, fazendo com que os apps de e-mail tenham que redefinir suas preferências de endereçamento."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Apagando contatos frequentes…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponível"</string>
+    <string name="status_away" msgid="1838861100379804730">"Ausente"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Ocupado"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Outros"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Diretório"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Diretório de trabalho"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Todos os contatos"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contato rápido de <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"Sem nome"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Chamados frequentemente"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Todos os contatos com números de telefone"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Contatos do perfil de trabalho"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Ver atualizações"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Dispositivo"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nome"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Apelido"</string>
+    <string name="name_given" msgid="4280790853455320619">"Nome"</string>
+    <string name="name_family" msgid="7466985689626017037">"Sobrenome"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefixo do nome"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Nome do meio"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Sufixo do nome"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nome fonético"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Nome fonético"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Nome do meio fonético"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Sobrenome fonético"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefone"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Endereço"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Mensagem instantânea"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organização"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relacionamento"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Data especial"</string>
+    <string name="sms" msgid="1756857139634224222">"Mensagem de texto"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Endereço"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Empresa"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Título"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Observações"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalizado"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Site"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Marcadores"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mail (residencial)"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Enviar e-mail para celular"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mail (comercial)"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Enviar e-mail para <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Rua"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Cidade"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Estado"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"CEP"</string>
+    <string name="postal_country" msgid="7638264508416368690">"País"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ver endereço residencial"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ver endereço comercial"</string>
+    <string name="map_other" msgid="3817820803587012641">"Visualizar endereço"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Ver endereço de <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Bater papo usando o AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Bater papo usando o Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Bater papo usando o Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Bater papo usando o Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Bater papo usando o QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Bater papo usando o Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Bater papo usando o ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Bater papo usando o Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Bate-papo"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"excluir"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Mostrar mais campos de nome"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Recolher campos de nome"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Mostrar mais campos de nome fonético"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Recolher campos de nome fonético"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Expandir"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Recolher"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Expandido"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Recolhido"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Todos os contatos"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Com estrela"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizar"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contato"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Todos os outros contatos"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Todos os contatos"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Remover sincronização do grupo"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Adicionar grupo sincronizado"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Mais grupos…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"A remoção de \"<xliff:g id="GROUP">%s</xliff:g>\" da sincronização também removerá os contatos não agrupados da sincronização."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Salvando opções de exibição…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Visualização personalizada"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Salvar contatos importados em:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Cartão SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d contato</item>
+      <item quantity="other">%1$d contatos</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> contato • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contatos • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Arquivo .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nada para importar"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importar contatos do vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Cancelar importação de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Cancelar exportação de <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Não foi poss. canc. imp./export. vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Erro desconhecido."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Não foi possível abrir \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Não foi possível iniciar o exportador: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Não há contato exportáveis."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Você desativou uma permissão obrigatória."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Ocorreu um erro durante a exportação: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Erro E/S"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Não há memória suficiente. O arquivo pode ser muito grande."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"O formato não é suportado."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Exportação concluída de <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"A exportação dos contatos foi concluída."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"A exportação dos contatos foi concluída. Clique na notificação para compartilhar contatos."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Toque para compartilhar contatos."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exportação de <xliff:g id="FILENAME">%s</xliff:g> cancelada."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exportando dados do contato"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Os dados dos contatos estão sendo exportados."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Não foi possível obter as informações do banco de dados."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Não há contatos exportáveis."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"O criador do vCard não iniciou corretamente."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Não foi possível exportar"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Os dados de contato não foram exportados.\nMotivo: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importando <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Não foi possível ler os dados do vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Importação de vCard concluída <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importação de <xliff:g id="FILENAME">%s</xliff:g> cancelada"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> será importado em breve."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"O arquivo será importado em breve."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"O pedido de importação vCard foi rejeitado. Tente novamente mais tarde."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Os contatos serão exportados em breve."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Pedido de exportação vCard foi rejeitado. Tente novamente mais tarde."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contato"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Armazenando VCard(s) em cache no armazenamento temporário local. A importação real começará em breve."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Não foi possível importar o vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Contato via NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Armazenando em cache"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importando <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportar p/ arquivo .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Classificar por"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nome fonético"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Mostrar sempre"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ocultar se vazio"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Nome"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Sobrenome"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formato de nome"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Primeiro o nome"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Primeiro o sobrenome"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Contas"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Conta padrão para novos contatos"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Minhas informações"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configurar seu perfil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Sobre Contatos"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Compartilhar contatos favoritos"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Compartilhar todos os contatos"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Falha ao compartilhar contatos."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportar contatos"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importar contatos de"</string>
+    <string name="share_error" msgid="948429331673358107">"Este contato não pode ser compartilhado."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Não há contatos para compartilhar."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Contatos para exibição"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Contatos a exibir"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizar visualização"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Salvar"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Pesquisar contatos"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoritos"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importar"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportar"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Números bloqueados"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"por meio de <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"parar de pesquisar"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Limpar pesquisa"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Conta"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Sempre usar esta opção para chamadas"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Chamada com nota"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Digite uma nota para enviar com a chamada..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ENVIAR E LIGAR"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versão"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licenças de código aberto"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalhes da licença do software de código aberto"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Política de privacidade"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Termos de Serviço"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licenças de código aberto"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Falha ao abrir o URL."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> verificado"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> não verificado"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Realizar videochamada"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Excluir"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Reticências"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Este atalho foi desativado"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"O contato foi removido"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importar"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Selecionar contatos"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Não há contatos no seu cartão SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"O contato já existe na sua lista"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contato importado do SIM</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contatos importados do SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Falha ao importar contatos do SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importar do SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Cancelar"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"A sincronização automática está desativada. Toque para ativar."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Dispensar"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"A sincronização da conta está desativada. Toque para ativar."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Ativar a sincronização automática?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"As alterações que você fizer em todos os aplicativos e contas, não apenas nas Contas do Google, permanecerão atualizadas entre a Web e seus dispositivos."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Ativar"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Sem conexão"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Mostrar mais"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"A importação do cartão SIM foi concluída"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Falha na importação"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Não foi possível importar os contatos do cartão SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importando do cartão SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index a7df0c2..9805e82 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -17,73 +17,77 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Agendă"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Agendă"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Afișați persoana de contact"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Editați persoana de contact"</string>
     <string name="contactsList" msgid="8661624236494819731">"Agendă"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Adăugați"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Persoană din Agendă"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Apel direct"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Mesaj direct"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Alegeți o persoană din agendă pentru a crea o comandă rapidă"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Alegeți un număr pentru apelare"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Alegeți un număr pentru trimiterea mesajului"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Adăugați la persoana de contact"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Alegeți persoana de contact"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Adăugați pentru persoană"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Alegeți o persoană de contact"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Creați intrare nouă în Agendă"</string>
-    <string name="starredList" msgid="4817256136413959463">"Cu stea"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Frecvent"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favorite"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detalii ale persoanei din agendă"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Modificaţi informațiile despre persoana din agendă"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Creați persoana din agendă"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Editați grupul"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Creați grupul"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Despre"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Actualizări"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Căutaţi în Agendă"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Vizualizați persoana din agendă"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Selectați"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Creați o intrare nouă"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Căutați în Agendă"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Adăugați la lista de favorite"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Eliminaţi din lista de favorite"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Eliminați din lista de favorite"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"S-a eliminat din preferințe"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"Adăugat la preferințe"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Editați"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Ștergeţi"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Ștergeți"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Schimbați fotografia"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Plasați în ecranul de pornire"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Apelaţi persoana din agendă"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Trimiteți mesaj text către o persoană din agendă"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Creați o comandă rapidă"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Disociați"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Editați"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Ștergeţi"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Adăugați o persoană de contact"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Adăugați un grup"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Eliminați intrările din Agendă"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Redenumiți eticheta"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Ștergeți eticheta"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Adăugați o persoană"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Selectați persoane"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Adăugați persoanele"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Eliminați din etichetă"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Creați o etichetă"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Separați această persoană de contact în mai multe persoane de contact?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Disociați"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Doriți să salvați modificările pe care le-ați făcut deja și să separați această persoană de contact în mai multe persoane de contact?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Salvați și separați"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Doriți să salvați modificările pe care le-ați făcut deja și să asociați această persoană cu persoana de contact selectată?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Salvați și asociați"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Se asociază"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Asocierea e anulată"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Asociați"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Afișați persoanele asociate"</string>
     <string name="menu_save" msgid="1727844363591825909">"Salvați"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Asociați persoanele de contact"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Asociați persoane de contact"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Alegeți persoana de contact pe care doriți să o asociați cu <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Afişaţi toate persoanele din agendă"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Persoane din agendă sugerate"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Toate persoanele din agendă"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Toată agenda"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"S-a asociat cu <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Persoanele de contact au fost asociate"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"S-a șters <xliff:g id="NAME">%1$s</xliff:g>."</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"S-au șters <xliff:g id="NAME_0">%1$s</xliff:g> și <xliff:g id="NAME_1">%2$s</xliff:g>."</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… au fost șterse"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="few">Persoane de contact șterse</item>
       <item quantity="other">Persoane de contact șterse</item>
       <item quantity="one">Persoană de contact ștearsă</item>
     </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Setaţi ton apel"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Toate apel. către mesag. voc."</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Persoanele de contact din conturile numai în citire nu pot fi șterse, dar pot fi ascunse."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ascundeți"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Persoana de contact care va fi ștearsă are detalii din mai multe conturi. Detaliile din conturile numai în citire vor fi ascunse, nu șterse."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Pentru o asociere aveți nevoie de cel puțin două persoane de contact selectate."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Asociați persoanele de contact selectate?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Asociați"</string>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> persoane de contact</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> de persoane de contact</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> persoană de contact</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> persoane de contact · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> de persoane de contact · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoană de contact · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Din Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Din <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Setați ton apel"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Trimiteți la mesageria vocală"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Nu mai trimiteți la mesagerie"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Această intrare în Agendă este numai în citire. Nu poate fi ștearsă, dar o puteți ascunde."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ascundeți persoana de contact"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Conturile numai în citire din această intrare în Agendă vor fi ascunse, nu șterse."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Ștergeți această persoană de contact?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Ștergeți persoanele de contact selectate?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Persoanele de contact din conturile numai în citire nu pot fi șterse, dar pot fi ascunse."</string>
@@ -91,286 +95,446 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Dacă ștergeți această persoană de contact, vor fi șterse detalii din mai multe conturi."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Ștergeți această persoană de contact?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Ștergeți"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Renunțați la modificări"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Persoana nu există în agendă."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Persoana de contact a fost adăugată pe ecranul de pornire."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Persoana de contact <xliff:g id="NAME">%s</xliff:g> a fost adăugată pe ecranul de pornire."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Creați o intrare nouă în agendă"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Creați o intrare nouă în Agendă"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizație"</item>
-    <item msgid="7196592230748086755">"Notă"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Nu există imagini disponibile pe tabletă."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Nicio fotografie disponibilă în telefon."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Nu există imagini disponibile pe dispozitiv."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografie persoană din agendă"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Numele etichetei personalizate"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Trimiteți apelurile direct către mesageria vocală"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Eliminaţi fotografia"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nu există persoane în agendă"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nu există grupuri."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Pentru a crea grupuri aveți nevoie de un cont."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Nu există persoane în acest grup."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Pentru a adăuga persoane, editați grupul."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Se salvează persoana din agendă..."</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Eliminați fotografia"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Lista cu persoane de contact este goală"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nicio persoană de contact cu această etichetă"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Nicio persoană de contact în acest cont"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Lista cu persoane de contact este goală"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"S-a salvat <xliff:g id="DISPLAY_NAME">%s</xliff:g>."</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Persoana din agendă a fost salvată"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Persoanele de contact au fost separate"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Nu s-au putut salva modificările aduse persoanei de contact."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Persoana de contact nu a putut fi separată."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Persoana de contact nu a putut fi asociată."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Eroare la salvarea persoanei de contact."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Modificările privind fotografia persoanei de contact nu au putut fi salvate."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupul a fost salvat."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Nu s-au putut salva modificările aduse grupului."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> persoane de contact cu numere de telefon</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de persoane de contact cu numere de telefon</item>
-      <item quantity="one">O persoană de contact cu număr de telefon</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nicio persoană din agendă cu numere de telefon"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> persoane de contact găsite</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de persoane de contact găsite</item>
-      <item quantity="one">O persoană de contact găsită</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Nu s-au putut salva modificările persoanei de contact"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Persoana de contact nu a putut fi deconectată"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Persoana de contact nu a putut fi asociată"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Eroare la salvarea persoanei în Agendă"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Nu s-au putut salva modificările fotografiei persoanei de contact"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Nu s-a putut încărca eticheta"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Eticheta a fost ștearsă"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etichetă creată"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Nu se poate crea eticheta"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etichetă actualizată"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Eliminate din etichetă"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Adăugat(e) în etichetă"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Modificările etichetei nu s-au salvat"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Eticheta există deja"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Unele persoane de contact nu au adresă de e-mail."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Unele persoane de contact nu au numere de telefon."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Trimiteți un e-mail"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Trimiteți un mesaj"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Alegeți persoane de contact"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Trimiteți"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nu există persoane în agendă"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> persoane de contact găsite</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de persoane de contact găsite</item>
-      <item quantity="one">O persoană de contact găsită</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Toate"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Preferate"</string>
-    <string name="callBack" msgid="5498224409038809224">"Apelaţi din nou"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Apelaţi din nou"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Apelaţi înapoi"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Adăugați „<xliff:g id="EMAIL">%s</xliff:g>” la persoanele din agendă?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotografia persoanei din agendă"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> din <xliff:g id="TOTAL_NUMBER">%s</xliff:g> (de) persoane din agendă"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Adăugați „<xliff:g id="EMAIL">%s</xliff:g>” în agendă?"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Numele persoanelor din agenda dvs."</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nu s-a găsit o aplicație care să gestioneze această acţiune."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Dați clic pentru a reveni la ecranul anterior"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Adăugați un număr de telefon"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Adăugați o adresă de e-mail"</string>
     <string name="missing_app" msgid="1466111003546611387">"Nu s-a găsit o aplicație care să îndeplinească această acțiune."</string>
-    <string name="menu_share" msgid="943789700636542260">"Distribuiţi"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Adăugați în Agendă"</string>
-    <string name="share_via" msgid="563121028023030093">"Distribuiţi persoana din agendă prin"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Creați un grup în contul"</string>
+    <string name="menu_share" msgid="943789700636542260">"Distribuiți"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Adăugați în agendă"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Adăugați"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="few">Trimiteți intrările din Agendă prin</item>
+      <item quantity="other">Trimiteți intrările din Agendă prin</item>
+      <item quantity="one">Trimiteți intrarea din Agendă prin</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Alegeți un cont"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Creați o etichetă"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Redenumiți eticheta"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Numele etichetei"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Nume etichetă"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Chat vocal"</string>
     <string name="video_chat" msgid="1872255818640336072">"Chat video"</string>
-    <string name="connections" msgid="8098440723172028350">"Conexiuni"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Adăugați o conexiune"</string>
-    <string name="recent" msgid="2659189233141493004">"Recente"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Actualizări recente"</string>
     <string name="account_type_format" msgid="718948015590343010">"Intrare: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Contul <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Nu se poate edita din această aplicație"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Nu poate fi editat pe acest dispozitiv."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Fotografiaţi"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Fotografiați"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Creați o fotografie nouă"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Alegeți o fotografie"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Selectați o fotografie nouă"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Se actualizează lista de persoane din agendă."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Se caută..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Afişaţi elementele selectate"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Afișați-i pe toţi"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Selectaţi-le pe toate"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Deselectaţi-le pe toate"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Adăugați intrare nouă"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Adăugați o organizație"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dată"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Nume grup"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Modificați"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Foto. de bază"</string>
-    <string name="description_star" msgid="2605854427360036550">"preferate"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Editați informațiile despre persoana din agendă"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Asociați persoana de contact actuală cu persoana de contact selectată?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Comutaţi la funcția de editare a persoanei din agendă selectate? Informațiile introduse până acum vor fi copiate."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Copiați în Agendă"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Adăugați în Agendă"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etichetă"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Anulați"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Înapoi"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"închideți"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Comutați la funcția de editare a persoanei din agendă selectate? Informațiile introduse până acum vor fi copiate."</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Director <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Personalizată"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Setări"</string>
     <string name="menu_settings" msgid="377929915873428211">"Setări"</string>
     <string name="menu_help" msgid="1680178646764069976">"Ajutor și feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opţiuni de afişare"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Număr de telefon"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Adăugați în Agendă"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Adăug. la pers. din ag."</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Închideţi"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Includeți un an"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Persoană din agendă"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Se încarcă..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Creați o intrare nouă în Agendă"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Adăugați în agendă"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Închideți"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Includeți anul"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Adăugați un cont"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importaţi Agenda"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Creați un grup nou"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Creați un grup nou"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> grupuri</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> de grupuri</item>
-      <item quantity="one">Un grup</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Ștergeţi grupul „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”? (Agenda nu va fi ştearsă.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> persoane din <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> de persoane din <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoană din <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> persoane</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> de persoane</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> persoană</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importați"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Creați o etichetă nouă…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Ștergeți eticheta „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”? (Persoanele din agendă nu vor fi șterse.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Introduceți numele persoanei de contact înainte de a o asocia cu altă persoană."</string>
     <string name="copy_text" msgid="3257145021583508761">"Copiați în clipboard"</string>
-    <string name="set_default" msgid="4417505153468300351">"Setaţi ca prestabilit"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Ștergeţi datele prestabilite"</string>
+    <string name="set_default" msgid="4417505153468300351">"Setați ca prestabilit"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Ștergeți datele prestabilite"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Text copiat"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Renunţaţi la modificări?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Închideți"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Configurați profilul"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Introduceţi numele persoanei"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Numele grupului"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Renunțați la modificări?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Renunțați"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Anulați"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Renunțați la personalizări?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Căutați în Agendă"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Eliminați intrările din Agendă"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Profilul meu local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Profilul meu <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Se afișează toată agenda"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Agenda funcționează mai bine cu un Cont Google.\n\n• O puteți accesa din orice browser web.\n• Creați în siguranță backup pentru persoanele de contact."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Păstraţi agenda dvs. în condiții de siguranţă, chiar dacă pierdeți telefonul, prin sincronizarea acesteia cu un serviciu online."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Adăugați un cont"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Pentru noul contact nu se va crea o copie de rezervă. Adăugați un cont care creează online copii de rezervă pentru contacte?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Adăugați un cont în care se va face backup pentru agenda dvs. în Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Persoanele noi de contact vor fi salvate în <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Alegeți un cont prestabilit pentru persoanele de contact noi:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Adăugați contact nou"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Creați intrare nouă"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Editați intrarea"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Păstraţi local"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Numai vizualizare"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Alegeți persoana de contact pentru a o edita"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Persoane de contact asociate"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Adăugați"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Disociați"</string>
     <string name="add_account" msgid="8201790677994503186">"Adăugați un cont"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Adăugați un cont nou"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Exportaţi fişierele bazei de date"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"adăugați o persoană de contact nouă"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Exportați fișierele bazei de date"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Creați o intrare nouă"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Mai multe detalii"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Mai puține detalii"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Vedeți tot"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Recente"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Despre"</string>
-    <string name="send_message" msgid="8938418965550543196">"Trimiteți mesajul"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Se creează o copie personală..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Ieri"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Se creează o copie personală..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Mâine"</string>
     <string name="today" msgid="8041090779381781781">"Astăzi"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Astăzi, la <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Mâine, la <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Eveniment fără titlu)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Setați"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
     <string name="header_organization_entry" msgid="8515394955666265406">"Organizație"</string>
     <string name="header_nickname_entry" msgid="6743561883967451485">"Pseudonim"</string>
     <string name="header_note_entry" msgid="4320190426480612344">"Notă"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Site web"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Site"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Eveniment"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Relaţie"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Cont"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Relație"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Nume"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mail"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotografie"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Dați clic pentru a extinde editorul persoanei de contact."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Dați clic pentru a restrânge editorul persoanei de contact."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"indicații de orientare către locație"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recent. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. dați clic pentru a răspunde"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms recent. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. dați clic pentru a răspunde"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"primit"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"efectuat"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"pierdut"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"apel recent. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. dați clic pentru a apela"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"apel recent. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. dați clic pentru a apela"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Dvs.: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts funcționează mai bine când introduceți identificatorul Hangouts al persoanei în câmpul pentru adresa de e-mail sau în câmpul pentru numărul de telefon."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Mai multe câmpuri"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Schimbați fotografia"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Editorul nu a putut fi deschis."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Se salvează în"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"În prezent se salvează în <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Atingeți de două ori ca să alegeți alt cont."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="few">Persoane de contact asociate (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Persoane de contact asociate (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Persoană de contact asociată</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> (de) persoane de contact asociate"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Mai multe câmpuri"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Schimbați fotografia persoanei de contact"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Adăugați o fotografie pentru persoana de contact"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Fotografia persoanei de contact"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Editorul nu a putut fi deschis."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Se salvează în"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Informațiile de contact de la <xliff:g id="ACCOUNT">%s</xliff:g> nu pot fi editate"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ASOCIAȚI PERSOANELE DE CONTACT"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANULAȚI"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> dubluri posibile</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de dubluri posibile</item>
-      <item quantity="one">O dublură posibilă</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> persoane de contact asociate</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de persoane de contact asociate</item>
-      <item quantity="one">O persoană de contact asociată</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Această persoană de contact"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Dubluri posibile"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Este posibil ca aceste persoane de contact să fie una și aceeași persoană. Le puteți asocia ca o singură persoană de contact."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Persoane de contact asociate"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Din conturile dvs."</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Fotografiați"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Toate fotografiile"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Alegeți o fotografie"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Din contul <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Ștergeți <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Ștergeți <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Ștergeți <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotografia din <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> nu e selectată"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Fotografia din <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> e selectată"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Fotografie neselectată dintr-un cont necunoscut"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Fotografie selectată dintr-un cont necunoscut"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Se actualizează lista de persoane din agendă pentru a reflecta modificarea limbii.\n\n Aşteptaţi..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Adăugați un număr"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blocați numărul"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Adăugați număr/căutați contacte"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Deblocați <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOCAȚI"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blocați <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOCAȚI"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> a fost blocat"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> a fost deblocat"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> nu este valid."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blocarea apelurilor e dezactivată temporar"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Blocarea apelurilor a fost dezactivată, deoarece ați contactat serviciile de urgență de pe acest telefon în ultimele 48 de ore. Funcția va fi reactivată automat după ce perioada de 48 de ore va expira."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importați"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Vedeți numerele"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Adăugați un număr"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blocarea apelurilor este dezactivată pentru 48 de ore"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Dezactivată din cauza efectuării unui apel de urgență."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ANULAȚI"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> este deja blocat."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblocați numărul"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Detalii de contact pentru <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importul nu a reușit"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importați numere"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Pentru a căuta în persoanele de contact, activați permisiunea Agendă."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Activați"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Sugestii"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nou"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Deschideți panoul de navigare"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Închideți panoul de navigare"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Eticheta <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etichete"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Conturi"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Afișați istoricul dvs. comun"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Evenimente și mesaje"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Evenimente"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mesaje"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Sugestii"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mențineți agenda organizată și utilă"</string>
+    <string name="undo" msgid="1425165101664071422">"Anulați"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Apelați <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Apelați numărul de domiciliu"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Apelați numărul de mobil"</string>
+    <string name="call_work" msgid="5328785911463744028">"Apelați numărul de serviciu"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Apelați un număr de fax de serviciu"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Apelați un număr de fax de la domiciliu"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Apelați un număr de pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Apelați"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Apelați un număr cu apelare inversă"</string>
+    <string name="call_car" msgid="3280537320306436445">"Apelați numărul de mașină"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Apelați numărul principal al companiei"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Apelați ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Apelați numărul principal"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Apelați numărul de fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Apelați un număr radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Apelați un număr de telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Apelați TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Apelați numărul de mobil de la serviciu"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Apelați pagerul de serviciu"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Apelați <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Apelați MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (apelați)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Trimiteți mesaj text către <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Trimiteți mesaj text către telefonul de domiciliu"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Trimiteți mesaj text către telefonul mobil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Trimiteți mesaj text către numărul de serviciu"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Trimiteți mesaj text către un fax de serviciu"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Trimiteți mesaj text către un număr de fax de domiciliu"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Trimiteți mesaj text către un număr de pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Mesaj"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Trimiteți un mesaj text către un număr cu apelare inversă"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Trimiteți mesaj text către un număr de telefon de mașină"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Trimiteți mesaj text către numărul principal al companiei"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Mesaj text către un număr ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Trimiteți mesaj text către numărul principal"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Trimiteți mesaj text către un număr de fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Trimiteți mesaj text către un număr radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Trimiteți mesaj text către un număr de telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Trimiteți mesaj text către TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Trimiteți mesaj text către numărul de mobil de serviciu"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Trimiteți mesaj text către un număr de pager de la serviciu"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Trimiteți mesaj text către <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Trimiteți mesaj text către un număr MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (trimiteți mesaj)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Inițiați un apel video"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Ștergeți persoane frecvent contactate?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Veți șterge lista persoanelor contactate frecvent din aplicațiile Agendă și Telefon și veți forța aplicațiile de e-mail să vă învețe preferințele pentru adrese de la zero."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Ștergeți persoane frecv. contactate…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Disponibil(ă)"</string>
+    <string name="status_away" msgid="1838861100379804730">"Plecat(ă)"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Ocupat(ă)"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Altul"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Director"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Directorul de serviciu"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Toată Agenda"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Contact rapid pentru <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Fără nume)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Frecvent contactate"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Toate persoanele din agendă cu numere de telefon"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Persoane de contact din profilul de serviciu"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Afișați actualizări"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Gadget"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Nume"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Pseudonim"</string>
+    <string name="name_given" msgid="4280790853455320619">"Prenume"</string>
+    <string name="name_family" msgid="7466985689626017037">"Nume de familie"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefixul numelui"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Al doilea prenume"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Sufixul numelui"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Nume fonetic"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Prenume fonetic"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Numele mijlociu fonetic"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Nume fonetic"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresă"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizație"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relație"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Dată specială"</string>
+    <string name="sms" msgid="1756857139634224222">"Mesaj text"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresă"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Companie"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titlu"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Note"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Personalizat"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Site web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etichete"</string>
+    <string name="email_home" msgid="8573740658148184279">"Trimiteți un e-mai la o adresă de e-mail de domiciliu"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Trimiteți un e-mail către un telefon mobil"</string>
+    <string name="email_work" msgid="2807430017302722689">"Trimiteți e-mail către adresa de serviciu"</string>
+    <string name="email_other" msgid="3454004077967657109">"Trimiteți un e-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Trimiteți e-mail către <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Trimiteți un e-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Stradă"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Oraș"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Stat"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Codul ZIP"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Țara"</string>
+    <string name="map_home" msgid="1243547733423343982">"Vizualizați adresa de domiciliu"</string>
+    <string name="map_work" msgid="1360474076921878088">"Vizualizați adresa de serviciu"</string>
+    <string name="map_other" msgid="3817820803587012641">"Vizualizați adresa poștală"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Afișați adresa <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Conversați prin AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Conversați prin Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Conversați prin Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Conversați prin Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Conversați prin QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Conversați prin Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Conversați prin ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Conversați prin Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Conversați prin chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ștergeți"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Afișați mai multe câmpuri pentru nume."</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Restrângeți câmpurile de nume"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Afișați mai multe câmpuri pentru nume fonetice."</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Restrângeți câmpurile de nume fonetice"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Extindeți"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Restrângeți"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Extinse"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Restrânse"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Toată agenda"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Cu stea"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizați"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Persoană din agendă"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Toate celelalte contacte"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Toată Agenda"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Eliminați grup de sincronizare"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Adăugați grup de sincronizare"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Mai multe grupuri..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Eliminarea grupului „<xliff:g id="GROUP">%s</xliff:g>” din sincronizare va elimina, de asemenea, orice persoană din agendă care nu face parte dintr-un grup."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Se salvează opțiunile de afișare..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Afișare personalizată"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Salvați persoanele de contact importate în:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Card SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"Cardul SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="few">%1$d persoane de contact</item>
+      <item quantity="other">%1$d persoane de contact</item>
+      <item quantity="one">O persoană de contact</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> persoane de contact • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> de persoane de contact • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> persoană de contact • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Fișier .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nimic de importat"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importați persoane de contact din vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Anulați importul fișierului <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Anulați exportul fișierului <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Anulare import/export vCard nereușită"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Eroare necunoscută."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nu s-a putut deschide fișierul „<xliff:g id="FILE_NAME">%1$s</xliff:g>”: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nu s-a putut iniţializa instrumentul de export: „<xliff:g id="EXACT_REASON">%s</xliff:g>”"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nicio persoană de contact exportabilă."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Ați dezactivat o permisiune necesară."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"A apărut o eroare în timpul exportului: „<xliff:g id="EXACT_REASON">%s</xliff:g>”."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Eroare I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Memoria este insuficientă (probabil fișierul este prea mare)."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formatul nu este acceptat."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"S-a finalizat exportul fișierului <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Persoanele de contact au fost exportate."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"S-a încheiat exportul persoanelor de contact. Dați clic pe notificare pentru a distribui persoanele de contact."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Atingeți pentru a trimite persoanele de contact."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exportul fișierului <xliff:g id="FILENAME">%s</xliff:g> a fost anulat."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Se exportă datele persoanelor din agendă"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Se exportă datele privind persoanele de contact."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nu s-au putut obține informații din baza de date."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nicio persoană de contact exportabilă."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Compozitorul vCard nu a pornit în mod corespunzător."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Nu s-a putut exporta"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Datele de contact nu au fost exportate.\nMotivul: „<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Se importă <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nu s-au putut citi datele de pe vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"S-a finalizat importul vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importul fișierului <xliff:g id="FILENAME">%s</xliff:g> a fost anulat"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> va fi importat în curând."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Fișierul va fi importat în scurt timp."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Solicitarea de importare a fișierului vCard a fost respinsă. Încercați din nou mai târziu."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Persoanele de contact vor fi exportate în curând."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Solicitarea de exportare a fișierului vCard a fost respinsă. Încercați din nou mai târziu."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contact"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Fișierele vCard se stochează în memoria cache într-un spațiu de stocare local temporar. Importul propriu-zis va începe în curând."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Nu s-a putut importa fișierul vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Cont.prim.pr.NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Se stochează în cache"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Se importă <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportați ca fișier .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortați după"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Nume fonetic"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Afișați întotdeauna"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ascundeți când nu are"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Prenume"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Nume de familie"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format pentru nume"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Întâi prenumele"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Întâi numele de familie"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Conturi"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Contul prestabilit pentru persoanele de contact noi"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Informațiile mele"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Configurați profilul"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Despre Agendă"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Trimiteți persoanele preferate"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Trimiteți toată agenda"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Persoanele de contact nu s-au trimis."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportați Agenda"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importați persoane de contact din"</string>
+    <string name="share_error" msgid="948429331673358107">"Această persoană de contact nu poate fi distribuită."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nu există persoane de contact de trimis."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Persoane de contact de afişat"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Pers. din agendă de afiş."</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizați afișarea"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Salvați"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Căutați persoane de contact"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favorite"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importați"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportați"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Numere blocate"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"de pe <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"La ora <xliff:g id="DATE">%1$s</xliff:g> de pe <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"nu mai căutați"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Ștergeți căutarea"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Cont"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Utilizați mereu pentru apeluri"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Apelați împreună cu o notă"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Introduceți o notă pe care să o trimiteți împreună cu apelul…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"TRIMITEȚI ȘI APELAȚI"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versiunea"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licențe open source"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detalii privind licența pentru software-ul open source"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Confidențialitate"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Termeni și condiții"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licențe open source"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Adresa URL nu a putut fi deschisă."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Contul <xliff:g id="ACCOUNT_INFO">%s</xliff:g> este selectat"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Contul <xliff:g id="ACCOUNT_INFO">%s</xliff:g> nu este selectat"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Efectuați un apel video"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Ștergeți"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Puncte de suspensie"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sec."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min. <xliff:g id="SECONDS">%2$s</xliff:g> sec."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h. <xliff:g id="MINUTES_1">%2$s</xliff:g> min. <xliff:g id="SECONDS">%3$s</xliff:g> sec."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Această comandă rapidă a fost dezactivată."</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Persoana de contact a fost ștearsă."</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importați"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Selectați persoane de contact"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Nicio persoană de contact pe cardul SIM."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Persoana de contact există deja în listă."</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="few">Au fost importate <xliff:g id="COUNT">%d</xliff:g> persoane de contact de pe SIM.</item>
+      <item quantity="other">Au fost importate <xliff:g id="COUNT">%d</xliff:g> de persoane de contact de pe SIM.</item>
+      <item quantity="one">A fost importată o persoană de contact de pe SIM.</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Nu s-au importat persoanele de contact de pe SIM."</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importați de pe SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Anulează"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Sincronizarea automată este dezactivată. Atingeți pentru a o activa."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Închideți"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Sincronizarea contului este dezactivată. Atingeți pentru a o activa."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Activați sincronizarea automată?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Modificările pe care le faceți în toate aplicațiile și conturile, nu doar în Agenda Google, vor fi actualizate permanent între web și dispozitivele dvs."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Activați"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Nicio conexiune"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Afișați mai mult"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importarea cardului SIM s-a terminat."</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Nu s-a importat."</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nu s-a putut importa agenda de pe cardul SIM."</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Se importă cardul SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 28c4654..de4dead 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Контакты"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Контакты"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Просмотреть контакт"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Изменить контакт"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакты"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Добавить контакт"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Быстрый звонок"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Быстрое SMS"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Выбрать контакт для быстрого вызова"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Выберите номер для вызова"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Выбрать номер для отправки сообщения"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Выбрать контакт"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Добавление данных"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Выбор контакта"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Добавить контакт"</string>
-    <string name="starredList" msgid="4817256136413959463">"Помеченные"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Часто вызываемые"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Избранное"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Сведения о контакте"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Изменить контакт"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Создать контакт"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Изменение группы"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Создание группы"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Контактные данные"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Лента активности"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Выбрать"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Создать контакт"</string>
     <string name="searchHint" msgid="8482945356247760701">"Поиск в контактах"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Просмотреть контакт"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Добавить в избранное"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Удалить из избранных"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Удалено из избранного"</string>
@@ -49,42 +35,62 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Изменить"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Удалить"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Сменить фото"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Поместить на главный экран"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Позвонить"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Отправить SMS/MMS"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Создать ярлык"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Отменить связь"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Изменить"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Удалить"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Добавить контакт"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Добавить группу"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Удалить контакты"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Переименовать ярлык"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Удалить ярлык"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Добавить контакт"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Выбрать контакты"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Добавить контакты"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Снять ярлык"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Создать ярлык"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Разделить этот контакт?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Разделить"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Сохранить изменения и разделить этот контакт?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Да"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Сохранить изменения и связать с выбранным контактом?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Да"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Связывание контактов…"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Разделение контактов…"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Связать"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Посмотреть связанные контакты"</string>
     <string name="menu_save" msgid="1727844363591825909">"Сохранить"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Связать контакты"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Выберите, какой контакт связать с \"<xliff:g id="NAME">%s</xliff:g>\":"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Показать все контакты"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Предлагаемые контакты"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Все контакты"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Контакт <xliff:g id="NAME">%s</xliff:g> связан"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Контакты связаны"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Контакт <xliff:g id="NAME">%1$s</xliff:g> удален"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Контакты <xliff:g id="NAME_0">%1$s</xliff:g> и <xliff:g id="NAME_1">%2$s</xliff:g> удалены"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Контакты <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… удалены"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Контакты удалены</item>
       <item quantity="few">Контакты удалены</item>
       <item quantity="many">Контакты удалены</item>
       <item quantity="other">Контакты удалены</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> контакт</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> контакта</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> контактов</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> контакта</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> контакт · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> контакта · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> контактов · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> контакта · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Из Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Из аккаунта <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Задать рингтон"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Только голос. почта"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Контакты из аккаунтов, доступных только для чтения, будут скрыты, но не удалены."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Скрыть"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Этот контакт содержит информацию из различных аккаунтов. Информация из аккаунтов, доступных только для чтения, будет скрыта, но не удалена."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Для связывания нужно хотя бы два контакта"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Связать выбранные контакты?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Связать"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Переключать на голосовую почту"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Исключить голосовую почту"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Этот контакт доступен только для чтения. Его нельзя удалить, но можно скрыть."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Скрыть контакт"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Данные этого контакта из аккаунтов, доступных только для чтения, будут скрыты, а не удалены."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Удалить контакт?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Удалить выбранные контакты?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Контакты из аккаунтов, доступных только для чтения, будут скрыты, но не удалены."</string>
@@ -92,189 +98,126 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Будут удалены данные из нескольких аккаунтов."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Удалить контакт?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Удалить"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Удалить изменения"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Нет такого контакта."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Контакт добавлен на главный экран"</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Контакт \"<xliff:g id="NAME">%s</xliff:g>\" добавлен на главный экран"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Создать новый контакт"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Добавить контакт"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Организация"</item>
-    <item msgid="7196592230748086755">"Примечание"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"На планшетном ПК нет изображений."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"В телефоне нет картинок."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"На устройстве нет изображений."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Фотография контакта"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Название"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Направлять вызовы в голосовую почту"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Удалить фото"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Нет контактов"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Нет групп."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Для создания групп нужен аккаунт."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Здесь пока никого нет."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Чтобы добавить участников, откройте меню и нажмите \"Изменить\"."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Контакт сохраняется..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Контактов нет"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Нет контактов с таким ярлыком"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"В этом аккаунте нет контактов"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Контактов нет"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g>: контакт сохранен"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Контакт сохранен"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Контакты разделены"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Не удалось сохранить изменения."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Не удалось разделить контакты"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Не удалось связать контакты"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Не удалось сохранить контакт"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Не удалось сохранить изменения"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Группа сохранена."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Не удалось сохранить изменения."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> контакт с номером телефона</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> контакта с номером телефона</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> контактов с номером телефона</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> контактов с номером телефона</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Нет контактов с номерами телефонов"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one">Найден <xliff:g id="COUNT">%d</xliff:g> контакт</item>
-      <item quantity="few">Найдено <xliff:g id="COUNT">%d</xliff:g> контакта</item>
-      <item quantity="many">Найдено <xliff:g id="COUNT">%d</xliff:g> контактов</item>
-      <item quantity="other">Найдено <xliff:g id="COUNT">%d</xliff:g> контактов</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Не удалось сохранить изменения"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Не удалось разделить контакты"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Не удалось связать контакты"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Не удалось сохранить контакт"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Не удалось сохранить изменения"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Не удалось загрузить ярлык"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Ярлык удален"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Ярлык создан"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Не удалось создать группу"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Ярлык обновлен"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Ярлык снят"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Добавлено"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Не удалось сохранить изменения"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Такой ярлык уже существует"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"У некоторых контактов не указаны адреса эл. почты"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"У некоторых контактов не указаны номера телефонов"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Отправить письмо"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Отправить SMS"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Выбор контактов"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Отправить"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Нет контактов"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one">Найден <xliff:g id="COUNT">%d</xliff:g> контакт</item>
-      <item quantity="few">Найдено <xliff:g id="COUNT">%d</xliff:g> контакта</item>
-      <item quantity="many">Найдено <xliff:g id="COUNT">%d</xliff:g> контактов</item>
-      <item quantity="other">Найдено <xliff:g id="COUNT">%d</xliff:g> контактов</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Все"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Избранные"</string>
-    <string name="callBack" msgid="5498224409038809224">"Перезвонить"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Позвонить снова"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Перезвонить"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Добавить в контакты <xliff:g id="EMAIL">%s</xliff:g>?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"фотография контакта"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"плюс"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"Контакт <xliff:g id="CURRENT_NUMBER">%s</xliff:g> из <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Имена контактов"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Действие не поддерживается ни в одном приложении."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Нажмите, чтобы вернуться на предыдущую страницу"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Добавить номер телефона"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Добавить адрес электронной почты"</string>
     <string name="missing_app" msgid="1466111003546611387">"Действие не поддерживается ни в одном приложении."</string>
     <string name="menu_share" msgid="943789700636542260">"Отправить"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Добавить в контакты"</string>
-    <string name="share_via" msgid="563121028023030093">"Способ отправки"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Создание группы в аккаунте"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Добавить"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Выберите способ отправки</item>
+      <item quantity="few">Выберите способ отправки</item>
+      <item quantity="many">Выберите способ отправки</item>
+      <item quantity="other">Выберите способ отправки</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Выберите аккаунт"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Создание ярлыка"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Изменение названия ярлыка"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Название группы"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Название группы"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Голосовой чат"</string>
     <string name="video_chat" msgid="1872255818640336072">"Видеочат"</string>
-    <string name="connections" msgid="8098440723172028350">"Соцсети"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Добавить соцсеть"</string>
-    <string name="recent" msgid="2659189233141493004">"Недавние"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Недавние обновления"</string>
     <string name="account_type_format" msgid="718948015590343010">"Контакт <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Аккаунт <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Здесь доступно только для чтения."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Здесь доступно только для чтения."</string>
     <string name="take_photo" msgid="7496128293167402354">"Сфотографировать"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Сфотографировать"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Выбрать фото"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Выбрать другое фото"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Список контактов обновляется..."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Поиск…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Показать выбранные"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Показать все"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Выбрать все"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Снять все выделения"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Добавить"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Добавить организацию"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Название группы"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Изменить"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Основное фото"</string>
-    <string name="description_star" msgid="2605854427360036550">"избранное"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Изменить контакт"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Связать текущий контакт с выбранным?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Ярлык"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Отмена"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Назад"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"закрыть"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Переключиться на редактирование выбранного контакта? Введенная информация будет скопирована."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Копировать в \"Мои контакты\""</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Добавить в группу \"Мои контакты\""</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Каталог <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Пользовательские"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Настройки"</string>
     <string name="menu_settings" msgid="377929915873428211">"Настройки"</string>
     <string name="menu_help" msgid="1680178646764069976">"Справка/отзыв"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Варианты отображения"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Номер телефона"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Добавить в контакты"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Добавление данных"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Закрыть"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Указать год"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Контакт"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Загрузка..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Создать новый контакт"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Добавить аккаунт"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Импортировать контакты"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Создание новой группы"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Создать группу"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> группа</item>
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> группы</item>
-      <item quantity="many"><xliff:g id="COUNT">%0$d</xliff:g> групп</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> групп</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Действительно удалить группу \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Контакты не будут удалены.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> человек из <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> человека из <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> человек из <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> человек из <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one">В группе <xliff:g id="COUNT_1">%1$d</xliff:g> человек</item>
-      <item quantity="few">В группе <xliff:g id="COUNT_1">%1$d</xliff:g> человека</item>
-      <item quantity="many">В группе <xliff:g id="COUNT_1">%1$d</xliff:g> человек</item>
-      <item quantity="other">В группе <xliff:g id="COUNT_1">%1$d</xliff:g> человек</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Импортировать"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Создать…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Удалить ярлык \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? Сами контакты не будут удалены."</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Укажите имя"</string>
     <string name="copy_text" msgid="3257145021583508761">"Копировать в буфер обмена"</string>
     <string name="set_default" msgid="4417505153468300351">"Установить по умолчанию"</string>
     <string name="clear_default" msgid="7193185801596678067">"Удалить настройки по умолчанию"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Текст скопирован"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Удалить изменения?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Отменить"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> (<xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>)"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Настроить профиль"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Имя контакта"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Название группы"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Отменить изменения?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Отменить"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Отмена"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Отменить изменения?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Поиск контактов"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Удалить контакты"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Мой профиль"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Мой профиль <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Отображаются все контакты"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Подключите Контакты к аккаунту Google, чтобы:\n\n• Всегда иметь под рукой обновленные данные – на любом устройстве.\n• Синхронизировать все контакты – вы никогда не потеряете их."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Можно потерять телефон, но не контакты... если хранить их в Интернете!"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Добавить аккаунт"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Резервная копия нового контакта не будет сохранена. Добавить аккаунт для сохранения контактов в Интернете?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Добавьте аккаунт, чтобы сохранить свои контакты в Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Новые контакты будут сохранены в аккаунте <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Выберите аккаунт по умолчанию для новых контактов:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Добавить контакт"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Создать контакт"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Изменить контакт"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Сохранить локально"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Только просмотр"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Выбор контакта"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Связанные контакты"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Добавить"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Разделить"</string>
     <string name="add_account" msgid="8201790677994503186">"Добавить аккаунт"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Добавить аккаунт"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Экспорт файлов базы данных"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"Добавить контакт"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Создать контакт"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ещё"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Свернуть"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Показать все"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Недавние"</string>
     <string name="about_card_title" msgid="2920942314212825637">"О контакте"</string>
-    <string name="send_message" msgid="8938418965550543196">"Отправить сообщение"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Копирование…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Вчера"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Копирование..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Завтра"</string>
     <string name="today" msgid="8041090779381781781">"Сегодня"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Сегодня, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Завтра, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(событие без названия)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Установить"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Чат"</string>
@@ -284,104 +227,321 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Веб-сайт"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Событие"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Отношение"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Аккаунт"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Имя"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Адрес эл. почты"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Фото"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Нажмите, чтобы развернуть редактор контактов."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Нажмите, чтобы свернуть редактор контактов."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"Маршруты"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Недавнее SMS-сообщение. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Нажмите, чтобы ответить."</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Недавнее SMS-сообщение. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Нажмите, чтобы ответить."</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"входящий"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"исходящий"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"пропущенный"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Недавний вызов. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Нажмите, чтобы перезвонить."</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Недавний вызов. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Нажмите, чтобы перезвонить."</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Вы: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Чтобы обеспечить надежную работу Hangouts, указывайте вместо адреса электронной почты или номера телефона идентификатор пользователя в Hangouts."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Показать другие поля"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Сменить фото"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Не удалось открыть редактор"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Выберите аккаунт"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Данные сохраняются в аккаунте <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Чтобы выбрать другой аккаунт, дважды нажмите здесь."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Связанные контакты (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">Связанные контакты (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">Связанные контакты (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Связанные контакты (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Связанных контактов: <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Показать другие поля"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Сменить фото контакта"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Добавить фото контакта"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Фотография контакта"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Не удалось открыть редактор"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Сохранение:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Данные контактов из аккаунта <xliff:g id="ACCOUNT">%s</xliff:g> нельзя изменять"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"СВЯЗАТЬ КОНТАКТЫ"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ОТМЕНА"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> повторяющийся контакт</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> повторяющихся контакта</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> повторяющихся контактов</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> повторяющегося контакта</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> связанный контакт</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> связанных контакта</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> связанных контактов</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> связанного контакта</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g> <xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Этот контакт"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Повторяющие контакты"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Повторяющиеся контакты"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Возможно, эти контакты относятся к одному человеку. Объедините их."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Связанные контакты"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Из ваших аккаунтов"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Сделать фото"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Все фото"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Выбор фото"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Из <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Удалить данные. <xliff:g id="DATA_TYPE">%s </xliff:g> <xliff:g id="DATA_KIND">%s</xliff:g>."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Удалить данные. <xliff:g id="DATA_TYPE">%1$s </xliff:g> <xliff:g id="DATA_KIND">%2$s</xliff:g>."</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Удалить <xliff:g id="DATA_KIND">%s</xliff:g>."</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Фото из аккаунта <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> не выбрано"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Фото из аккаунта <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> выбрано"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Выбор фото из неизвестного аккаунта отменен"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Выбрано фото из неизвестного аккаунта"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Выполняется обновление списка контактов, чтобы изменение языка вступило в силу.\n\nПодождите..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Добавить номер"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Заблокировать номер"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Найдите контакт или введите номер"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Разблокировать <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"РАЗБЛОКИРОВАТЬ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Заблокировать <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"БЛОКИРОВАТЬ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> заблокирован"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> разблокирован"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> недействителен."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокировка вызовов временно отключена"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокировка вызовов отключена, поскольку вы недавно набирали номер экстренной службы. Когда с момента звонка пройдет 48 часов, эта функция включится автоматически."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортировать"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Просмотреть номера"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Добавить номер"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокировка вызовов отключена на 48 часов"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Блокировка звонков отключена из-за экстренного вызова"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ОТМЕНИТЬ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> уже заблокирован."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Разблокировать номер"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Сведения о контакте <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ошибка импорта"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Импортировать номера"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Для поиска контактов включите разрешение \"Контакты\"."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Включить"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Предложения"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Добавить"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Открыть панель навигации"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Закрыть панель навигации"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Ярлык <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Ярлыки"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Аккаунты"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Показывать объединенную историю"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Мероприятия и сообщения"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Мероприятия"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Сообщения"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Предложения"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Чтобы с контактами было удобно работать, приведите их в порядок"</string>
+    <string name="undo" msgid="1425165101664071422">"Отменить"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Позвонить (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="call_home" msgid="1990519474420545392">"Домашний тел."</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Мобильный тел."</string>
+    <string name="call_work" msgid="5328785911463744028">"Рабочий тел."</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Рабочий факс"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Домашний факс"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Пейджер"</string>
+    <string name="call_other" msgid="8563753966926932052">"Позвонить"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Обратный вызов"</string>
+    <string name="call_car" msgid="3280537320306436445">"Тел. в машине"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Офис"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Номер ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Основной телефон"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Позвонить на номер факса"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Радиотелефон"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Телекс"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Телетайп"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Рабочий мобильный"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Рабочий пейджер"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Позвонить (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS-центр"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (вызов)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Отправить SMS (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS:домашний тел."</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS: мобильный"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS:рабочий тел."</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS:рабочий факс"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS: дом. факс"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS: пейджер"</string>
+    <string name="sms_other" msgid="806127844607642331">"Отправить SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS: номер обратного вызова"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS:тел. в машине"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS: тел. офиса"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS: номер ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS:основ. тел."</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Отправить SMS на номер факса"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS:радиотелефон"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS: телекс"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS: телетайп"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS:рабочий моб."</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS:рабоч. пейдж."</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Отправить текстовое сообщение на номер <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Начать видеовстречу"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Очистить список популярных контактов?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Список часто используемых контактов в приложениях \"Контакты\" и \"Телефон\" будет очищен, и почтовые приложения начнут заносить в него данные заново."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Подождите…"</string>
+    <string name="status_available" msgid="5586870015822828392">"На месте"</string>
+    <string name="status_away" msgid="1838861100379804730">"Отсутствует"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Не беспокоить"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Другое"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Каталог"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Каталог контактов из рабочего профиля"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Все контакты"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Быстрый вызов, контакт: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"Имя не указано"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Часто набираемые"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Все контакты с номерами телефонов"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Контакты из рабочего профиля"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Обновления"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Устройство"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM-карта"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Имя"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Псевдоним"</string>
+    <string name="name_given" msgid="4280790853455320619">"Имя"</string>
+    <string name="name_family" msgid="7466985689626017037">"Фамилия"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Форма обращения"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Отчество"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Звание/титул"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Транскрипция имени"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Транскрипция имени"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Отчество (транскрипция)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Транскрипция фамилии"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Телефон"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Адрес электронной почты"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Адрес"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Чат"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Организация"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Отношения"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Определенная дата"</string>
+    <string name="sms" msgid="1756857139634224222">"Текстовое сообщение"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Адрес"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Компания"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Должность"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Примечания"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Другое"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Веб-сайт"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Группы"</string>
+    <string name="email_home" msgid="8573740658148184279">"Личная эл. почта"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Моб. эл. почта"</string>
+    <string name="email_work" msgid="2807430017302722689">"Рабочая эл.почта"</string>
+    <string name="email_other" msgid="3454004077967657109">"Написать письмо"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Написать письмо (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="email" msgid="5668400997660065897">"Эл. почта"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Улица"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Город"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Регион"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Почтовый индекс"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Страна"</string>
+    <string name="map_home" msgid="1243547733423343982">"Просмотреть домашний адрес"</string>
+    <string name="map_work" msgid="1360474076921878088">"Просмотреть рабочий адрес"</string>
+    <string name="map_other" msgid="3817820803587012641">"Просмотр адреса"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Посмотреть адрес (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Чат через AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Чат через Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Чат через Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Чат через Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Чат через QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Чат через Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Чат через ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Чат через Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Чат"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"удалить"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Показать дополнительные поля"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Скрыть дополнительные поля"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Показать дополнительные поля с транскрипцией имени"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Скрыть поля с транскрипцией имени"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Показать"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Скрыть"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Поля показаны"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Поля скрыты"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Все контакты"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Помеченные"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Настроить"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Контакт"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Все контакты"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Все контакты"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Удалить группу синхронизации"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Добавить группу синхронизации"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Другие группы..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Вместе с группой \"<xliff:g id="GROUP">%s</xliff:g>\" перестанут синхронизироваться контакты, не добавленные в группы."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Сохранение настроек..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Пользовательский режим просмотра"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Сохранить контакты:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-карта"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM-карта <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d контакт</item>
+      <item quantity="few">%1$d контакта</item>
+      <item quantity="many">%1$d контактов</item>
+      <item quantity="other">%1$d контакта</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> контакт • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> контакта • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> контактов • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> контакта • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"VCF-файл"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Нет контактов для импорта"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Импортировать контакты из vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Отменить импорт файла \"<xliff:g id="FILENAME">%s</xliff:g>\"?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Отменить экспорт файла \"<xliff:g id="FILENAME">%s</xliff:g>\"?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Не удалось отменить импорт/экспорт vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Неизвестная ошибка"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Не удалось открыть файл \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\". Причина: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Не удалось запустить функцию экспорта. Причина: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Нет контактов для экспорта."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Отсутствует необходимое разрешение."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Ошибка при экспорте. Причина: <xliff:g id="EXACT_REASON">%s</xliff:g>"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Ошибка ввода-вывода"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Недостаточно памяти. Возможно, файл слишком большой."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Формат не поддерживается."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Экспорт файла \"<xliff:g id="FILENAME">%s</xliff:g>\" завершен."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Экспорт контактов завершен"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Экспорт контактов завершен. Чтобы открыть к ним доступ, нажмите на уведомление."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Нажмите, чтобы открыть доступ к контактам."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Экспорт файла \"<xliff:g id="FILENAME">%s</xliff:g>\" отменен."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Экспорт данных контакта"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Экспорт контактов…"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"База данных недоступна."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Нет контактов для экспорта."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Сбой при запуске редактора vCard."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Сбой экспорта"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Не удалось экспортировать данные.\nПричина: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Импорт: <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Ошибка чтения vCard-файла"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Импорт файла vCard <xliff:g id="FILENAME">%s</xliff:g> завершен"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Импорт файла \"<xliff:g id="FILENAME">%s</xliff:g>\" отменен"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Импорт <xliff:g id="FILENAME">%s</xliff:g> начнется в ближайшее время."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Файл будет импортирован в ближайшее время."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Запрос на импорт данных vCard отклонен. Повторите попытку позже."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Контакты скоро будут экспортированы."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Запрос на экспорт данных vCard отклонен. Повторите попытку позже."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"контакт"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Выполняется кеширование файлов vCard в локальное временное хранилище. Импорт скоро начнется."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Не удалось импортировать данные vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Получено по NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кеширование"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Импорт <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Экспортировать в VCF-файл"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Сортировка"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Транскрипция имени"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Всегда показывать"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Скрывать пустое поле"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Имя"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Фамилия"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Формат имени"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Сначала имя"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Сначала фамилия"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Аккаунты"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Аккаунт по умолчанию для новых контактов"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Мои данные"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Настройте профиль"</string>
+    <string name="setting_about" msgid="7014388749752042863">"О Контактах"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Поделиться избранными контактами"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Поделиться всеми контактами"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Не удалось поделиться контактами"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Экспорт контактов"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Импорт контактов"</string>
+    <string name="share_error" msgid="948429331673358107">"Не удалось передать данные."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Видимых контактов нет"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Фильтр контактов"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Фильтр контактов"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Настроить просмотр"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Сохранить"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Поиск в контактах"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Избранное"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Импортировать"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Экспортировать"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Заблокированные номера"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"с помощью <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> с помощью <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"прекратить поиск"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Очистить условия поиска"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Аккаунт"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Всегда использовать для звонков"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Позвонить и отправить сообщение"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Введите текст…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ОТПРАВИТЬ СООБЩЕНИЕ И ПОЗВОНИТЬ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> из <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Версия сборки"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Лицензии открытого ПО"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Сведения о лицензиях на ПО с открытым исходным кодом"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Политика конфиденциальности"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Условия использования"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Лицензии открытого ПО"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Не удалось открыть URL"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Аккаунт <xliff:g id="ACCOUNT_INFO">%s</xliff:g>, выбран"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Аккаунт <xliff:g id="ACCOUNT_INFO">%s</xliff:g>, не выбран"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Видеовызов"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Удалить"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Многоточие"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> мин. <xliff:g id="SECONDS">%2$s</xliff:g> сек."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ч. <xliff:g id="MINUTES_1">%2$s</xliff:g> мин. <xliff:g id="SECONDS">%3$s</xliff:g> сек."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Этот ярлык неактивен"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Контакт удален"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Импортировать"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Выбор контактов"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"На SIM-карте нет контактов"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Контакт уже внесен в список"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">Импортирован <xliff:g id="COUNT">%d</xliff:g> контакт с SIM-карты</item>
+      <item quantity="few">Импортировано <xliff:g id="COUNT">%d</xliff:g> контакта с SIM-карты</item>
+      <item quantity="many">Импортировано <xliff:g id="COUNT">%d</xliff:g> контактов с SIM-карты</item>
+      <item quantity="other">Импортировано <xliff:g id="COUNT">%d</xliff:g> контакта с SIM-карты</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Не удалось импортировать контакты с SIM-карты"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Импорт с SIM-карты"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Отмена"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Автосинхронизация отключена. Нажмите, чтобы ее включить."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Закрыть"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Синхронизация аккаунта отключена. Нажмите, чтобы ее включить."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Включить автосинхронизацию?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Изменения всех приложений и аккаунтов (не только Google Контактов) будут синхронизироваться между веб-интерфейсом и вашими устройствами."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Включить"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Нет соединения"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-карта"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Показать ещё"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Импорт контактов с SIM-карты завершен"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Ошибка импорта"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Не удалось импортировать контакты с SIM-карты"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Импорт контактов с SIM-карты…"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
deleted file mode 100644
index bb86d56..0000000
--- a/res/values-si-rLK/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"සම්බන්ධතා"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"සම්බන්ධතා"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"සම්බන්ධතාව බැලීම"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"සම්බන්ධතාව සංස්කරණය කිරීම"</string>
-    <string name="contactsList" msgid="8661624236494819731">"සම්බන්ධතා"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"සම්බන්ධතාවය"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"ඍජු ඇමතීම"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"ඍජු පණිවිඩය"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"සම්බන්ධතා කෙටිමඟක් තෝරාගන්න"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"ඇමතීමට අංකයක් තෝරාගන්න"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"පණිවිඩයක් යැවීමට අංකයක් තෝරාගන්න"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"සම්බන්ධතාවය වෙත එක් කරන්න"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"සම්බන්ධතාවයක් තෝරාගන්න"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"නව සම්බන්ධතාවයක් නිර්මාණය කරන්න"</string>
-    <string name="starredList" msgid="4817256136413959463">"තරුව සලකුණු කළ"</string>
-    <string name="frequentList" msgid="7154768136473953056">"නිතර"</string>
-    <string name="strequentList" msgid="5640192862059373511">"ප්‍රියතම"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"සම්බන්ධතා විස්තර"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"සම්බන්ධතාව සංස්කරණය කරන්න"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"සම්බන්ධතාවයක් සාදන්න"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"කණ්ඩායම සංස්කරණය කරන්න"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"කණ්ඩායමක් සාදන්න"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"පිළිබඳ"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"යාවත්කාලීන කිරීම්"</string>
-    <string name="searchHint" msgid="8482945356247760701">"සම්බන්ධතා සෙවීම"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"සම්බන්ධතාව පෙන්වන්න"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"ප්‍රියතම වලට එක් කරන්න"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"ප්‍රියතම වලින් ඉවත් කරන්න"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ප්‍රියතමයන්ගෙන් ඉවත් කරන්න"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ප්‍රියතමයන් වෙත එකතු කරන්න"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"සංස්කරණය කරන්න"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"මකන්න"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ඡායාරූපය වෙනස් කරන්න"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"මුල් තිරයෙහි තබන්න"</string>
-    <string name="menu_call" msgid="3992595586042260618">"සම්බන්ධතාව අමතන්න"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"සම්බන්ධතාවයට කෙටි පණිවිඩයක් යවන්න"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"සබැඳි ඉවත් කරන්න"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"සංස්කරණය කරන්න"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"මකන්න"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"සම්බන්ධතාවය එක් කරන්න"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"කණ්ඩායමක් එක් කරන්න"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"මෙම සම්බන්ධතාව බහුවිධ සම්බන්ධතාවලට වෙන් කරන්නද?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"සබැඳි ඉවත් කරන්න"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ඔබ දැනටමත් සිදු කර ඇති වෙනස් කිරීම් සුරැකීමට සහ මෙම සම්බන්ධතාව බහුවිධ සම්බන්ධතාවලට වෙන් කිරීමට කැමතිද?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"සුරකින්න සහ සබැඳි ඉවත් කරන්න"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"ඔබ දැනටමත් සිදු කර ඇති වෙනස් කිරීම් සුරැකීමට සහ තෝරන ලද සම්බන්ධතාව සමග සබැඳි කිරීමට කැමතිද?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"සුරකින්න සහ සබැඳි කරන්න"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"සබැඳි කරන්න"</string>
-    <string name="menu_save" msgid="1727844363591825909">"සුරකින්න"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"සම්බන්ධතා සබැඳි කරන්න"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ඔබට <xliff:g id="NAME">%s</xliff:g> සමඟ සබැඳි කිරීමට අවශ්‍ය සම්බන්ධතාව තෝරන්න:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"සියලු සම්බන්ධතා පෙන්වන්න"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"යෝජිත සම්බන්ධතා"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"සියලුම සම්බන්ධතා"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"සම්බන්ධතා සබැඳි කරන ලදී"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">සම්බන්ධතා මකන ලදී</item>
-      <item quantity="other">සම්බන්ධතා මකන ලදී</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"රිංග්ටෝනය සකසන්න"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"හඬ තැපෑල වෙත සියලු ඇමතුම්"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"ඔබේ කියවීමට-පමණි වන ගිණුම් වෙතින් වන සම්බන්ධතා මැකිය නොහැකිය, නමුත් ඒවා සැඟවිය හැකිය."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"සඟවන්න"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"මැකීමට ඇති සම්බන්ධතාවයෙහි බහුවිධ ගිණුම්වලින් විස්තර ඇත. කියවීමට-පමණි වන ගිණුම් වෙතින් වන විස්තර නොමකනු ඇත, ඒවා සඟවනු ලැබේ."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"සබැඳි කිරීමට ඔබ විසින් අවම වශයෙන් සම්බන්ධතා දෙකක් තෝරා ගත යුතුය."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"තෝරන ලද සම්බන්ධතා සබැඳි කරන්නද?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"සබැඳි කරන්න"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"මෙම සම්බන්ධතාව මකන්නද?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"තෝරන ලද සම්බන්ධතා මකන්නද?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ඔබේ කියවීමට-පමණි වන ගිණුම් වෙතින් වන සම්බන්ධතා මැකිය නොහැකිය, නමුත් ඒවා සැඟවිය හැකිය."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"මකන සම්බන්ධතාවල බහුවිධ ගිණුම්වලින් තොරතුරු ඇතුළත්ය. කියවීමට-පමණි වන ගිණුම් වෙතින් වන විස්තර නොමකනු ඇත, ඒවා සඟවනු ලැබේ."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"මෙම සම්බන්ධතාව මැකීම බහුවිධ ගිණුම්වලින් තොරතුරු මකනු ඇත."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"මෙම සම්බන්ධතාව මකන්නද?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"මකන්න"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"වෙනස්කම් ඉවතලන්න"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"සම්බන්ධතාවය නොපවතී."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"සම්බන්ධතාව මුල් පිටු තිරය වෙත එක් කරන ලදී."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> මුල් පිටු තිරය වෙත එක් කරන ලදී."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"නව සම්බන්ධතාවයක් නිර්මාණය කරන්න"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"නව සම්බන්ධතාවයක් නිර්මාණය කරන්න"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"සංවිධානය"</item>
-    <item msgid="7196592230748086755">"සටහන"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ටැබ්ලටයේ පින්තූර කිසිවක් ලද නොහැක."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"දුරකථනයේ පින්තූර කිසිවක් ලද නොහැක."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"සම්බන්ධතා ඡායාරූපය"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"අභිරුචි ලේබල නම"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"හඬ තැපෑලට ඍජුවම ඇමතුම් යවන්න"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ඡායාරූපය මකන්න"</string>
-    <string name="noContacts" msgid="4955659076981974652">"සම්බන්ධතා නැත"</string>
-    <string name="noGroups" msgid="8614664663561385253">"කණ්ඩායම් නොමැත."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"කණ්ඩායම් නිර්මාණය කිරීමට ඔබට ගිණුමක් අවශ්‍ය වේ."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"මෙම කණ්ඩායම තුළ පුද්ගලයින් නොමැත."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"කිහිපයක් එක් කිරීමට, කණ්ඩායම සංස්කරණය කරන්න."</string>
-    <string name="savingContact" msgid="4075751076741924939">"සම්බන්ධතාවය සුරකමින්…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"සම්බන්ධතාවය සුරකින ලදි"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"සම්බන්ධතා සබැඳි ඉවත් කරන ලදී"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"සම්බන්ධතා වෙනස්කම් සුරැකීමට නොහැක."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"සම්බන්ධතාව සබැඳි ඉවත් කිරීමට නොහැකි විය."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"සම්බන්ධතාව සබැඳි කළ නොහැකි විය."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"සම්බන්ධතාව සුරැකීමේ දෝෂය."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"සම්බන්ධතා ඡායාරූපය වෙනස් කිරීම් සුරැකිය නොහැකි විය."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"කණ්ඩායම සුරකින ලදි."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"කණ්ඩායම් වෙනස්කම් සුරැකීමට නොහැක."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one">දුරකථන අංක සමඟ සම්බන්ධතාවන් <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">දුරකථන අංක සමඟ සම්බන්ධතාවන් <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"දුරකථන අංක සහිත සම්බන්ධතා නැත"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ක් හුමු වුණි</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ක් හුමු වුණි</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"සම්බන්ධතා නැත"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one">සොයා ගැනීම් <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">සොයා ගැනීම් <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"සියලු"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"ප්‍රියතම"</string>
-    <string name="callBack" msgid="5498224409038809224">"නැවත අමතන්න"</string>
-    <string name="callAgain" msgid="3197312117049874778">"නැවත අමතන්න"</string>
-    <string name="returnCall" msgid="8171961914203617813">"ඇමතුම නැවත ලබා දෙන්න"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"සම්බන්ධතා වලට \"<xliff:g id="EMAIL">%s</xliff:g>\" එක් කරන්නද?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"සම්බන්ධතා ඡායාරූපය"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"ධන"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"සම්බන්ධතා <xliff:g id="TOTAL_NUMBER">%s</xliff:g> කින් <xliff:g id="CURRENT_NUMBER">%s</xliff:g> ක්"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"ඔබගේ සම්බන්ධතා වල නම්"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"මෙම ක්‍රියාව හැසිරවීමට යෙදුමක් සොයාගත්තේ නැත"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"පෙර තිරයට යෑම ආපසු යෑම ක්ලික් කරන්න"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"දුරකථන අංකයක් එකතු කරන්න"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ඊ-තැපෑලක් එකතු කරන්න"</string>
-    <string name="missing_app" msgid="1466111003546611387">"මෙම ක්‍රියාව හැසිරවීමට යෙදුමක් සොයාගත්තේ නැත"</string>
-    <string name="menu_share" msgid="943789700636542260">"බෙදාගන්න"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"සම්බන්ධතා වලට එක් කරන්න"</string>
-    <string name="share_via" msgid="563121028023030093">"ඔස්සේ සම්බන්ධතාවය බෙදාගන්න"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"ගිණුම යටතේ කණ්ඩායමක් නිර්මාණය කරන්න"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"හඬ කතාබහ"</string>
-    <string name="video_chat" msgid="1872255818640336072">"වීඩියෝ කතාබස්"</string>
-    <string name="connections" msgid="8098440723172028350">"සම්බන්ධතා"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"සම්බන්ධතාවයක් එක් කරන්න"</string>
-    <string name="recent" msgid="2659189233141493004">"මෑත"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"මෑත යාවත්කාලීන"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> සම්බන්ධතාව"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ගිණුම"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"මෙම යෙදුමෙන් සංස්කරණය කළ නොහැක."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"මෙම උපාංගයෙහි සංස්කරණය කළ නොහැක"</string>
-    <string name="take_photo" msgid="7496128293167402354">"ඡායාරූපය ගන්න"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"නව ඡායාරූපයක් ගන්න"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ඡායාරූපය තෝරන්න"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"අලුත් ඡායාරූපය තෝරන්න"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"සම්බන්ධතා ලැයිස්තුව යාවත්කාලීන වෙමින් පවතී."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"සොයමින්..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"තෝරාගත් ඒවා පෙන්වන්න"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"සියල්ල පෙන්වන්න"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"සියල්ල තෝරන්න"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"සියල්ල තේරීම ඉවත් කරන්න"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"නව දෙයක් එක් කරන්න"</string>
-    <string name="add_organization" msgid="7311893231158291197">"සංවිධානය එක් කරන්න"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"දිනය"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"කණ්ඩායම් නම"</string>
-    <string name="change_photo" msgid="8530597935483526383">"වෙනස් කරන්න"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"ප්‍රාථමික රූප"</string>
-    <string name="description_star" msgid="2605854427360036550">"ප්‍රියතම"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"සම්බන්ධතාව සංස්කරණය කරන්න"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"වත්මන් සම්බන්ධතාව තෝරන ලද සම්බන්ධතාව සමඟ සබැඳි කරන්නද?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"තෝරාගෙන ඇති සම්බන්ධතාවය සංස්කරණය කිරීමට මාරු වෙන්නද? ඔබ දැනට ඇතුළු කළ තොරතුරු පිටපත් වනු ඇත."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"මගේ සම්බන්ධතා වෙතට පිටපත් කරන්න"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"මගේ සම්බන්ධතා වලට එක් කරන්න"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> නාමාවලිය"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"අභිරුචි"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"සැකසීම්"</string>
-    <string name="menu_settings" msgid="377929915873428211">"සැකසීම්"</string>
-    <string name="menu_help" msgid="1680178646764069976">"උදවු සහ ප්‍රතිපෝෂණ"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"පෙන්වීම් විකල්ප"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"දුරකථන අංකය"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"සම්බන්ධතා වලට එක් කරන්න"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"සම්බන්ධතාවය වෙත එක් කරන්න"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"වසන්න"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"වර්ෂය අතුළත් කරන්න"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"සම්බන්ධතාවය"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"පූරණය වෙමින්..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"නව සම්බන්ධතාවයක් නිර්මාණය කරන්න"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ගිණුම එක් කරන්න"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"සම්බන්ධතා ආයාත කරන්න"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"නව කණ්ඩායමක් නිර්මාණය කරන්න"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"නව කණ්ඩායමක් නිර්මාණය කිරීම"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one">කණ්ඩායම් <xliff:g id="COUNT">%0$d</xliff:g></item>
-      <item quantity="other">කණ්ඩායම් <xliff:g id="COUNT">%0$d</xliff:g></item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" කණ්ඩායම මකා දමන්නද? (සම්බන්ධතා මකා දමන්නේ නැත.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> වෙතින් පුද්ගලයන් <xliff:g id="COUNT_2">%1$d</xliff:g> යි</item>
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> වෙතින් පුද්ගලයන් <xliff:g id="COUNT_2">%1$d</xliff:g> යි</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one">පුද්ගලයින් <xliff:g id="COUNT_1">%1$d</xliff:g></item>
-      <item quantity="other">පුද්ගලයින් <xliff:g id="COUNT_1">%1$d</xliff:g></item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"වෙනත් එකක් සමඟ එක් කිරීමට පෙර සම්බන්ධතා නම ටයිප් කරන්න."</string>
-    <string name="copy_text" msgid="3257145021583508761">"පසුරු පුවරුවට පිටපත් කරන්න"</string>
-    <string name="set_default" msgid="4417505153468300351">"සුපුරුදු ලෙස සකසන්න"</string>
-    <string name="clear_default" msgid="7193185801596678067">"සුපුරුදු හිස් කරන්න"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"පෙළ පිටපත් කරන ලදී"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ඔබගේ වෙනස්කම් ඉවතලන්නද?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"ඉවත ලන්න"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"මගේ පැතිකඩ සකසන්න"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"පුද්ගලයාගේ නම ටයිප් කරන්න"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"කණ්ඩායමේ නම"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"මගේ දේශීය පැතිකඩ"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"මගේ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> පැතිකඩ"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"සියලු සම්බන්ධතා පෙන්වමින්"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"සම්බන්ධතා Google ගිණුමක් හා වඩාත් හොඳින් වැඩ කරයි.\n\n• ඕනෑම වෙබ් බ්‍රවුසරයක් වෙතින් එයට ප්‍රවේශ වන්න\n• ඔබගේ සම්බන්ධතා ආරක්ෂිතව උපස්ථ කරන්න."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"ඔබගේ දුරකථනය නොමැති වුවත් සම්බන්ධතා සුරක්ෂිතව තබන්න: සබැඳි සේවාවක් සමඟ සමමුහුර්ත කරන්න."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ගිණුමක් එක් කරන්න"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ඔබගේ නව සම්බන්ධතාවය උපස්ථ නොවනු ඇත. ඔබගේ සම්බන්ධතා සබැඳිව උපස්ථ කරන ගිණුමක් එක් කරන්නද?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"නව සම්බන්ධතා <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> වෙත සුරකිනු ඇත."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"නව සම්බන්ධතා සඳහා පෙරනිමි ගිණුමක් තෝරන්න:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"නව සම්බන්ධතාව එක් කරන්න"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"සම්බන්ධතාව සංස්කරණය කරන්න"</string>
-    <string name="keep_local" msgid="1258761699192993322">"පෙදෙසිව තබාගන්න"</string>
-    <string name="add_account" msgid="8201790677994503186">"ගිණුමක් එකතු කරන්න"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"නව ගිණුමක් එක් කරන්න"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"දත්ත සමුදා ගොනු නිර්යාත කරන්න"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"නව සම්බන්ධතාව එක් කරන්න"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"තව බලන්න"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"අඩුවෙන් බලන්න"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"සියල්ල බලන්න"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"මෑත"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"පිළිබඳ"</string>
-    <string name="send_message" msgid="8938418965550543196">"පණිවිඩය යවන්න"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"පුද්ගලික පිටපතක් නිර්මාණය කරමින්..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"ඊයේ"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"හෙට"</string>
-    <string name="today" msgid="8041090779381781781">"අද"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"අද <xliff:g id="TIME_INTERVAL">%s</xliff:g> ට"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"හෙට <xliff:g id="TIME_INTERVAL">%s</xliff:g> ට"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(නම් නොකළ සිදුවීම)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"සකසන්න"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"සංවිධානය"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"අපනාමය"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"සටහන"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"වෙබ් අඩවිය"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"සිදුවීම"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"සම්බන්ධතාව"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"ගිණුම"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"නම‍"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ඊ-තැපෑල"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"දුරකථනය"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ඡායාරූපය"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"සම්බන්ධ සංස්කාරකය දිගහරින්න ක්ලික් කරන්න."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"සම්බන්ධ සංස්කාරකය හකුලන්න ක්ලික් කරන්න."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"ස්ථානයට දිශාවන්"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"මෑත SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. පිළිතුරු සැපයීමට ක්ලික් කරන්න"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ඇතුළට එන"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"පිටතට යන"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"හමු නොවී යන ලදි"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"මෑත අමන්තුම්. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ආපසු ඇමතිමට ක්ලික් කරන්න"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"ඔබ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"ඔබ පුද්ගලයාගේ Hangouts හඳුන්වනය ඊ-තැපැල් හෝ දුරකථන ක්ෂේත්‍රයට ඇතුළත් කළ විටHangouts වඩා හොඳින් ක්‍රියා කරයි."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"තව ක්ෂේත්‍ර"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ඡායාරූපය වෙනස් කරන්න"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"සංස්කාරකය විවෘත කිරීමට නොහැකි විය."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"සුරැකීම"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"දැනට <xliff:g id="ACCOUNT_NAME">%s</xliff:g> වෙත සුරැකේ. වෙනත් ගිණුමක් තේරීමට දෙවරක් තට්ටු කරන්න."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">සබැඳි කළ සම්බන්ධතා (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">සබැඳි කළ සම්බන්ධතා (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"සබැඳි කළ සම්බන්ධතා <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"සම්බන්ධතා සබැඳි කරන්න"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"අවලංගු කරන්න"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one">විය හැකි අනුපිටපත් <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">විය හැකි අනුපිටපත් <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one">සබැඳි කළ සම්බන්ධතා <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">සබැඳි කළ සම්බන්ධතා <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"මෙම සම්බන්ධතාව"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"විය හැකි අනුපිටපත්"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"මෙම සම්බන්ධතා එකම පුද්ගලයා විය හැකිය. ඔබට ඒවා තනි සම්බන්ධතාවක් ලෙස සබැඳි කළ හැකිය."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"සබැඳි කළ සම්බන්ධතා"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"ඔබගේ ගිණුම් වෙතින්"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ඡායාරූපයක් ගන්න"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"සියලු ඡායාරූප"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ඡායාරූපය තෝරන්න"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> වෙතින්"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> මැකීම"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> මැකීම"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>වෙතින් ඡායාරූපය පරීක්ෂා කරන ලදී"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> වෙතින් ඡායාරූපය පරීක්ෂා කරන ලදී"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"නොදන්නා ගිණුම වෙතින් වන ඡායාරූපය ලකුණු නොකරන ලදී"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"නොදන්නා ගිණුම වෙතින් වන ඡායාරූපය ලකුණු කරන ලදී"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"භාෂා වෙනස්වීම පෙන්වීමට සම්බන්ධතා ලැයිස්තුව යාවත්කාලීන වෙමින් පවතී.\n\nකරුණාකර රැඳී සිටින්න..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"අංකයක් එක් කරන්න"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"අංකය අවහිර කරන්න"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"අංකය එක් කරන්න හෝ සම්බන්ධතා සොයන්න"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> අවහිර නොකරන්නද?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"අවහිර නොකරන්න"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> අවහිර කරන්නද?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"අවහිරයි"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> අවහිරයි"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> අවහිර නැත"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> වලංගු නැත."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ඇමතුම් අවහිර කිරීම තාවකාලිකව අක්‍රියයි"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ඔබ පසුගිය පැය 48 ඇතුළත මෙම දුරකථනයෙන් හදිසි අවස්ථා සේවා ඇමතූ බැව්න් ඇමතුම් අවහිර කිරීම අබල කර ඇත. පැය 48ක කාල සීමාව ඉකුත් වූ විට එය ස්වයංක්‍රියව යළි සබල කෙරේ."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ආයාත කරන්න"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"අංක බලන්න"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"අංකයක් එක් කරන්න"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"පැය 48ක් සඳහා ඇමතුම් අවහිර කිරීම අබල කරන ලදී"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"හදිසි ඇමතුමක් සිදු කළ නිසා අබල කරන ලදී."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"අස් කරන්න"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> දැනටමත් අවහිර කර ඇත."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"අංකය අවහිර නොකරන්න"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> සඳහා ඇමතුම් විස්තර"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"අයාත කිරීම අසාර්ථක විය"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"අංක ආයාත කරන්න"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්‍රියාත්මක කරන්න."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ක්‍රියාත්මක කරන්න"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
new file mode 100644
index 0000000..bfa2bc9
--- /dev/null
+++ b/res/values-si/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"සම්බන්ධතා"</string>
+    <string name="contactsList" msgid="8661624236494819731">"සම්බන්ධතා"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"සම්බන්ධතාව එක් කරන්න"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"සම්බන්ධතාවය"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"ඍජු ඇමතීම"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"ඍජු පණිවිඩය"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"සම්බන්ධතාව තෝරන්න"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"සම්බන්ධතාවය වෙත එක් කරන්න"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"සම්බන්ධතාවයක් තෝරන්න"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"තෝරන්න"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"නව සම්බන්ධතාවයක් නිර්මාණය කරන්න"</string>
+    <string name="searchHint" msgid="8482945356247760701">"සම්බන්ධතා සෙවීම"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ප්‍රියතම වලට එක් කරන්න"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ප්‍රියතම වලින් ඉවත් කරන්න"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ප්‍රියතමයන්ගෙන් ඉවත් කරන්න"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ප්‍රියතමයන් වෙත එකතු කරන්න"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"සංස්කරණය කරන්න"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"මකන්න"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ඡායාරූපය වෙනස් කරන්න"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"කෙටි මග තනන්න"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"සබැඳි ඉවත් කරන්න"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"සම්බන්ධතා ඉවත් කරන්න"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"ලේබලය නැවත නම් කරන්න"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"ලේබලය මකන්න"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"සම්බන්ධතාව එක් කරන්න"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"සම්බන්ධතා තෝරන්න"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"සම්බන්ධතා එක් කරන්න"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"ලේබලයෙන් ඉවත් කරන්න"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"ලේබලය තනන්න"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"මෙම සම්බන්ධතාව බහුවිධ සම්බන්ධතාවලට වෙන් කරන්නද?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"සබැඳි ඉවත් කරන්න"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"ඔබ දැනටමත් සිදු කර ඇති වෙනස් කිරීම් සුරැකීමට සහ මෙම සම්බන්ධතාව බහුවිධ සම්බන්ධතාවලට වෙන් කිරීමට කැමතිද?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"සුරකින්න සහ සබැඳි ඉවත් කරන්න"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"ඔබ දැනටමත් සිදු කර ඇති වෙනස් කිරීම් සුරැකීමට සහ තෝරන ලද සම්බන්ධතාව සමග සබැඳි කිරීමට කැමතිද?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"සුරකින්න සහ සබැඳි කරන්න"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"සබැඳි කරමින්"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"සබැඳිය ඉවත් කරමින්"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"සබැඳි කරන්න"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"සබැඳි සම්බන්ධතා බලන්න"</string>
+    <string name="menu_save" msgid="1727844363591825909">"සුරකින්න"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"සම්බන්ධතා සබැඳි කරන්න"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"ඔබට <xliff:g id="NAME">%s</xliff:g> සමඟ සබැඳි කිරීමට අවශ්‍ය සම්බන්ධතාව තෝරන්න:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"යෝජිත සම්බන්ධතා"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"සියලුම සම්බන්ධතා"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> සම්බන්ධ කරන ලදී"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"සම්බන්ධතා සබැඳි කරන ලදී"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> මකන ලදී"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> සහ <xliff:g id="NAME_1">%2$s</xliff:g> මකන ලදී"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… මකන ලදී"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="one">සම්බන්ධතා මකන ලදී</item>
+      <item quantity="other">සම්බන්ධතා මකන ලදී</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one">සම්බන්ධතා <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="other">සම්බන්ධතා <xliff:g id="COUNT_1">%d</xliff:g></item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> සම්බන්ධතා · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> සම්බන්ධතා · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google වෙතින්"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> වෙතින්"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"රිංග්ටෝනය සකසන්න"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"හඬ තැපෑල වෙත යොමු කරන්න"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"හඬ තැපෑල වෙත යොමු නොකරන්න"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"මෙම සම්බන්ධතාව කියවීමට-පමණී. එය මැකීමට නොහැකිය, නමුත් ඔබට එය සැඟවීමට හැකිය."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"සම්බන්ධතාව සඟවන්න"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"මෙම සම්බන්ධතාවෙහි කියවීමට-පමණී ගිණුම් සැඟවෙනු ඇත, නමුත් නොමැකෙනු ඇත."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"මෙම සම්බන්ධතාව මකන්නද?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"තෝරන ලද සම්බන්ධතා මකන්නද?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ඔබේ කියවීමට-පමණි වන ගිණුම් වෙතින් වන සම්බන්ධතා මැකිය නොහැකිය, නමුත් ඒවා සැඟවිය හැකිය."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"මකන සම්බන්ධතාවල බහුවිධ ගිණුම්වලින් තොරතුරු ඇතුළත්ය. කියවීමට-පමණි වන ගිණුම් වෙතින් වන විස්තර නොමකනු ඇත, ඒවා සඟවනු ලැබේ."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"මෙම සම්බන්ධතාව මැකීම බහුවිධ ගිණුම්වලින් තොරතුරු මකනු ඇත."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"මෙම සම්බන්ධතාව මකන්නද?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"මකන්න"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"සම්බන්ධතාවය නොපවතී."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"සම්බන්ධතාව මුල් පිටු තිරය වෙත එක් කරන ලදී."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> මුල් පිටු තිරය වෙත එක් කරන ලදී."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"උපාංගය මත පින්තූර කිසිවක් ලබා ගත නොහැකිය."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"සම්බන්ධතා ඡායාරූපය"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"අභිරුචි ලේබල නම"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ඡායාරූපය මකන්න"</string>
+    <string name="noContacts" msgid="2228592924476426108">"ඔබගේ සම්බන්ධතා ලැයිස්තුව හිස්ය"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"මෙම ලේබලය සහිත සම්බන්ධතා නැත."</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"මෙම ගිණුමෙහි සම්බන්ධතා නොමැත"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"ඔබගේ සම්බන්ධතා ලැයිස්තුව හිස්ය"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> සුරැකිණි"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"සම්බන්ධතාවය සුරකින ලදි"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"සම්බන්ධතා සබැඳි ඉවත් කරන ලදී"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"සම්බන්ධතාවේ වෙනස් කිරීම් සුරැකීමට නොහැකි විය"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"සම්බන්ධතාව සබැඳියෙන් ඉවත් කිරීමට නොහැකි විය"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"සම්බන්ධතාව සබැඳිමට නොහැකි විය"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"සම්බන්ධතාව සුරැකීමේ දෝෂය"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"සම්බන්ධතා ඡායාරූපයේ වෙනස් කිරීම් සුරැකීමට නොහැකි විය"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"ලේබලය පූරණය කිරීමට අසමත් විය"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"ලේබලය මකන ලදී"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"ලේබලය තනන ලදී"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"ලේබලය තැනීමට නොහැකිය"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"ලේබලය යාවත්කාලීන කරන ලදී"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"ලේබලයෙන් ඉවත් කෙරිණි"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"ලේබලයට එක් කෙරිණි"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"ලේබලයේ වෙනස් කිරීම් සුරැකීමට නොහැකි විය"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"එම ලේබලය දැනටමත් පවතී"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"සමහර සම්බන්ධතාවලට ඊ-තැපැල් නැත."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"සමහර සම්බන්ධතාවලට දුරකථන අංක නැත."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ඊ-තැපෑල යවන්න"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"පණිවිඩය යවන්න"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"සම්බන්ධතා තෝරන්න"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"යවන්න"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"සම්බන්ධතා නැත"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"සම්බන්ධතා වලට \"<xliff:g id="EMAIL">%s</xliff:g>\" එක් කරන්නද?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"ඔබගේ සම්බන්ධතා වල නම්"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"පෙර තිරයට යෑම ආපසු යෑම ක්ලික් කරන්න"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"දුරකථන අංකයක් එක් කරන්න"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ඊ-තැපෑලක් එක් කරන්න"</string>
+    <string name="missing_app" msgid="1466111003546611387">"මෙම ක්‍රියාව හැසිරවීමට යෙදුමක් සොයාගත්තේ නැත"</string>
+    <string name="menu_share" msgid="943789700636542260">"බෙදාගන්න"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"සම්බන්ධතා වලට එක් කරන්න"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"එක් කරන්න"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">මේ හරහා සම්බන්ධතා බෙදා ගන්න</item>
+      <item quantity="other">මේ හරහා සම්බන්ධතා බෙදා ගන්න</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"ගිණුම තෝරන්න"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"ලේබලය තනන්න"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"ලේබලය නැවත නම් කරන්න"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ලේබල නම"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ලේබල නම"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"හඬ කතාබහ"</string>
+    <string name="video_chat" msgid="1872255818640336072">"වීඩියෝ කතාබස්"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> සම්බන්ධතාව"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ගිණුම"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ඡායාරූපය ගන්න"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"නව ඡායාරූපයක් ගන්න"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ඡායාරූපය තෝරන්න"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"අලුත් ඡායාරූපය තෝරන්න"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"සොයමින්..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"දිනය"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ලේබලය"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"අවලංගු කරන්න"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"ආපසු"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"වසන්න"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"තෝරාගෙන ඇති සම්බන්ධතාවය සංස්කරණය කිරීමට මාරු වෙන්නද? ඔබ දැනට ඇතුළු කළ තොරතුරු පිටපත් වනු ඇත."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> නාමාවලිය"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"සැකසීම්"</string>
+    <string name="menu_settings" msgid="377929915873428211">"සැකසීම්"</string>
+    <string name="menu_help" msgid="1680178646764069976">"උදවු සහ ප්‍රතිපෝෂණ"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"දුරකථන අංකය"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"සම්බන්ධතා වලට එක් කරන්න"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"වසන්න"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"වර්ෂය අතුළත් කරන්න"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ගිණුම එක් කරන්න"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"ආයාත කරන්න"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"අලුත් එකක් තනන්න..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ලේබලය මකන්නද? (සම්බන්ධතා ඒවාම නොමැකෙනු ඇත.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"වෙනත් එකක් සමඟ එක් කිරීමට පෙර සම්බන්ධතා නම ටයිප් කරන්න."</string>
+    <string name="copy_text" msgid="3257145021583508761">"පසුරු පුවරුවට පිටපත් කරන්න"</string>
+    <string name="set_default" msgid="4417505153468300351">"සුපුරුදු ලෙස සකසන්න"</string>
+    <string name="clear_default" msgid="7193185801596678067">"සුපුරුදු හිස් කරන්න"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"පෙළ පිටපත් කරන ලදී"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"වෙනස්කම් ඉවතලන්න ද?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ඉවතලන්න"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"අවලංගු කරන්න"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"අභිරුචිකරණ ඉවත ලන්නද?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"සම්බන්ධතා සොයන්න"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"සම්බන්ධතා ඉවත් කරන්න"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"මගේ දේශීය පැතිකඩ"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"මගේ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> පැතිකඩ"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Google වෙත ඔබගේ සම්බන්ධතා උපස්ථ කරනු ඇති ගිණුමක් එක් කිරීමට මිනිත්තුවක් ගන්න."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"නව සම්බන්ධතා <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> වෙත සුරකිනු ඇත."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"නව සම්බන්ධතා සඳහා පෙරනිමි ගිණුමක් තෝරන්න:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"නව සම්බන්ධතාව තනන්න"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"සම්බන්ධතාව සංස්කරණය කරන්න"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"නැරඹීමට පමණයි"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"සංස්කරණය කිරීමට සම්බන්ධතාව තෝරන්න"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"සබැඳි සම්බන්ධතා"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"එක් කරන්න"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"සබැඳි ඉවත් කර."</string>
+    <string name="add_account" msgid="8201790677994503186">"ගිණුමක් එකතු කරන්න"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"නව ගිණුමක් එක් කරන්න"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"දත්ත සමුදා ගොනු නිර්යාත කරන්න"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"නව සම්බන්ධතාව තනන්න"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"තව බලන්න"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"අඩුවෙන් බලන්න"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"මෑත"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"පිළිබඳ"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"පුද්ගලික පිටපතක් නිර්මාණය කරමින්…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"හෙට"</string>
+    <string name="today" msgid="8041090779381781781">"අද"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"අද <xliff:g id="TIME_INTERVAL">%s</xliff:g> ට"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"හෙට <xliff:g id="TIME_INTERVAL">%s</xliff:g> ට"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(නම් නොකළ සිදුවීම)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"සකසන්න"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"සංවිධානය"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"අපනාමය"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"සටහන"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"වෙබ් අඩවිය"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"සිදුවීම"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"සම්බන්ධතාව"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"නම‍"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ඊ-තැපෑල"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"දුරකථනය"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"ස්ථානයට දිශාවන්"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"මෑත SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. පිළිතුරු සැපයීමට ක්ලික් කරන්න"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ඇතුළට එන"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"පිටතට යන"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"හමු නොවී යන ලදි"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"මෑත අමන්තුම්. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ආපසු ඇමතිමට ක්ලික් කරන්න"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"ඔබ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"තව ක්ෂේත්‍ර"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"සම්බන්ධතා ඡායාරූපය වෙනස් කරන්න"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"සම්බන්ධතා ඡායාරූපය එක් කරන්න"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"සම්බන්ධතා ඡායාරූපය"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"සංස්කාරකය විවෘත කිරීමට අසමත් විය."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"වෙත සුරකිමින්"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> වෙතින් සම්බන්ධතා තොරතුරු සංස්කරණය කළ නොහැකිය"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"සම්බන්ධතා සබැඳි කරන්න"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"අවලංගු කරන්න"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"මෙම සම්බන්ධතාව"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"විය හැකි අනුපිටපත්"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"මෙම සම්බන්ධතා එකම පුද්ගලයා විය හැකිය. ඔබට ඒවා තනි සම්බන්ධතාවක් ලෙස සබැඳි කළ හැකිය."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> මැකීම"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> මැකීම"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"යෝජනා"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"නව"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"සංචාලන ලාච්චුව විවෘත කරන්න"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"සංචාලන ලාච්චුව වසන්න"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> ලේබලය"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ලේබල"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"ගිණුම්"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"එකට ඔබේ ඉතිහාසය බලන්න"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"සිදුවීම් සහ පණිවිඩ"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"සිදුවීම්"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"පණිවිඩ"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"යෝජනා"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"ඔබේ සම්බන්ධතා සංවිධානය කර ප්‍රයෝජනවත්ව තබා ගන්න"</string>
+    <string name="undo" msgid="1425165101664071422">"පසුගමනය කරන්න"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> අමතන්න"</string>
+    <string name="call_home" msgid="1990519474420545392">"ගෙදර අමතන්න"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"ජංගම දුරකථනය අමතන්න"</string>
+    <string name="call_work" msgid="5328785911463744028">"කාර්යාලය අමතන්න"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"කාර්යාල ෆැක්ස් අමතන්න"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"නිවෙස් ෆැක්ස් අමතන්න"</string>
+    <string name="call_pager" msgid="9003902812293983281">"පේජර් අමතන්න"</string>
+    <string name="call_other" msgid="8563753966926932052">"ඇමතුම"</string>
+    <string name="call_callback" msgid="1910165691349426858">"පසු ඇමතුම අමතන්න"</string>
+    <string name="call_car" msgid="3280537320306436445">"කාරය අමතන්න"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"ආයතන මූලිකය අමතන්න"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN අමතන්න"</string>
+    <string name="call_main" msgid="6082900571803441339">"මූලිකය අමතන්න"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ෆැක්ස් අමතන්න"</string>
+    <string name="call_radio" msgid="8296755876398357063">"රේඩියෝව අමතන්න"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ටෙලෙක්ස් අමතන්න"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD අමතන්න"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"කාර්යාල ජංගම දුරකථනය අමතන්න"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"කාර්යාල පේජරය අමතන්න"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> අමතන්න"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS අමතන්න"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ඇමතුම)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> වෙත කෙටි පණිවිඩ යවන්න"</string>
+    <string name="sms_home" msgid="7524332261493162995">"නිවසට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"ජංගම දුරකථනයට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_work" msgid="2269624156655267740">"කාර්යාලයට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"කාර්යාල ෆැක්ස් වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"නිවෙස් ෆැක්ස් වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"පේජරයට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_other" msgid="806127844607642331">"පෙළ"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"නැවත ඇමතුමට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_car" msgid="7444227058437359641">"කාරයට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"ආයතනයේ අංකයට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_main" msgid="8621625784504541679">"මූලිකයට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ෆැක්ස් වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"රේඩියෝවට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ටෙලෙක්ස් වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"කාර්යාල ජංගම දුරකථනයට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"කාර්යාල පේජරයට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> ට කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS වෙත කෙටි පණිවිඩයක් යවන්න"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (පණිවිඩය)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"වීඩියෝ ඇමතුමක් ලබා ගන්න"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"නිතරම සම්බන්ධ වන අය හිස් කරන්නද?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"ඔබ නිතරම සම්බන්ධතා සහ දුරකථන යෙදුම් තුළ සම්බන්ධ වුණු අයගේ ලැයිස්තුව හිස් කර, මුල සිටම ඔබේ ලිපින මනාප ඉගෙනීමට ඊ-තැපැල් යෙදුම්වලට බල කරනු ඇත."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"නිතරම සම්බන්ධ වන අය හිස් කරමින්…"</string>
+    <string name="status_available" msgid="5586870015822828392">"සිටියි"</string>
+    <string name="status_away" msgid="1838861100379804730">"ළඟ නැත"</string>
+    <string name="status_busy" msgid="9147992455450257136">"කාර්යබහුල"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"වෙනත්"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"නාමාවලිය"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"කාර්යාල සම්බන්ධතා නාමාවලිය"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"සියලුම සම්බන්ධතා"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> සඳහා ඉක්මන් සම්බන්ධතා"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(නමක් නොමැත)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"නිතරම සම්බන්ධ වන"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"දුරකථන අංක සහිත සියලු සම්බන්ධතා"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"කාර්යාල පැතිකඩ සම්බන්ධතා"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"යාවත්කාලීන වීම් පෙන්වන්න"</string>
+    <string name="account_phone" msgid="7128032778471187553">"උපාංගය"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"නම‍"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"අපනාමය"</string>
+    <string name="name_given" msgid="4280790853455320619">"පළමු නම"</string>
+    <string name="name_family" msgid="7466985689626017037">"අග නම"</string>
+    <string name="name_prefix" msgid="59756378548779822">"නම් උපසර්ගය"</string>
+    <string name="name_middle" msgid="8467433655992690326">"මැද නම"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"නම් ප්‍රත්‍යය"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ස්වර නම"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ශබ්දිම මුල් නම"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ස්වර මැද නම"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ශබ්දිම අවසාන නම"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"දුරකථනය"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ඊ-තැපෑල"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"ලිපිනය"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"සංවිධානය"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ඥාතිත්වය"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"විශේෂ දිනය"</string>
+    <string name="sms" msgid="1756857139634224222">"කෙටි පණිවුඩ"</string>
+    <string name="postal_address" msgid="8765560217149624536">"ලිපිනය"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"සමාගම"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"මාතෘකාව"</string>
+    <string name="label_notes" msgid="8337354953278341042">"සටහන්"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"අභිරුචි"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"වෙබ් අඩවිය"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ලේබල"</string>
+    <string name="email_home" msgid="8573740658148184279">"නිවසට ඊ-තැපැල් කරන්න"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"ජංගමයට ඊ-තැපැල් කරන්න"</string>
+    <string name="email_work" msgid="2807430017302722689">"කාර්යාලයට ඊ-තැපැල් කරන්න"</string>
+    <string name="email_other" msgid="3454004077967657109">"ඊ-තැපෑල"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> වෙත ඊ-තැපෑලක් යවන්න"</string>
+    <string name="email" msgid="5668400997660065897">"ඊ-තැපෑල"</string>
+    <string name="postal_street" msgid="8133143961580058972">"වීථිය"</string>
+    <string name="postal_city" msgid="6597491300084895548">"නගරය"</string>
+    <string name="postal_region" msgid="6045263193478437672">"ජනපදය"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ZIP කේතය"</string>
+    <string name="postal_country" msgid="7638264508416368690">"රට"</string>
+    <string name="map_home" msgid="1243547733423343982">"නිවෙස් ලිපිනය පෙන්වන්න"</string>
+    <string name="map_work" msgid="1360474076921878088">"කාර්යාල ලිපිනය පෙන්වන්න"</string>
+    <string name="map_other" msgid="3817820803587012641">"ලිපිනය පෙන්වන්න"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> ලිපිනය බලන්න"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM භාවිතයෙන් කතාබස් කරන්න"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live භාවිතයෙන් කතාබස් කරන්න"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo භාවිතයෙන් කතාබස් කරන්න"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype භාවිතයෙන් කතාබස් කරන්න"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ භාවිතයෙන් කතාබස් කරන්න"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk භාවිතයෙන් කතාබස් කරන්න"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ භාවිතයෙන් කතාබස් කරන්න"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber භාවිතයෙන් කතාබස් කරන්න"</string>
+    <string name="chat" msgid="9025361898797412245">"කතාබස්"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"මකන්න"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"තව නම් ක්ෂේත්‍ර පෙන්වන්න"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"නම් ක්ෂේත්‍ර හකුළන්න"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"තව ශබ්දිම නම් ක්ෂේත්‍ර පෙන්වන්න"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ශබ්දිම නම් ක්ෂේත්‍ර හකුළන්න"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"දිග හරින්න"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"හකුළන්න"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"දිග හරින ලදී"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"හකුළන ලදී"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"සියලුම සම්බන්ධතා"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"තරුව සලකුණු කළ"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"අභිරුචිකරණය"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"සම්බන්ධතාවය"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"සියලු වෙනත් සම්බන්ධතා"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"සියලුම සම්බන්ධතා"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"සමමුහුර්ත කණ්ඩායම ඉවත් කරන්න"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"සමමුහුර්ත කණ්ඩායම එක් කරන්න"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"තවත් කණ්ඩායම්…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\" සමමුහුර්ත කිරීමෙන් ඉවත් කිරීමෙන් ඕනෑම කණ්ඩායම් නොකළ සම්බන්ධතා සමමුහුර්තයෙන් ඉවත් කරනු ඇත."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"පෙන්වීම් විකල්ප සුරකමින්…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"අභිරුචිකරණය කළ දසුන"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"ආයාත කළ සම්බන්ධතා මෙහි සුරකින්න:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM කාඩ් පත"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"<xliff:g id="SIM_NAME">%1$s</xliff:g> SIM"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">සම්බන්ධතා %1$d</item>
+      <item quantity="other">සම්බන්ධතා %1$d</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one">සම්බන්ධතා <xliff:g id="COUNT_2">^1</xliff:g> • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other">සම්බන්ධතා <xliff:g id="COUNT_2">^1</xliff:g> • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ගොනුව"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"ආයාත කිරීමට කිසිවක් නැත"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard වෙතින් සම්බන්ධතා ආයාත කරන්න"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> ආයාත කිරීම අවලංගු කරන්නද?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> නිර්යාත කිරීම අවලංගු කරන්නද?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard ආයාත/නිර්යාත කිරීම අවලංගු කළ නොහැක"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"නොදන්නා දෝෂය."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" විවෘත කිරීමට නොහැක: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"නිර්යාතකරු පටන් ගැනීමට නොහැක: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"නිර්යාත කළ හැකි සම්බන්ධතාවයක් නොමැත."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"ඔබ අවශ්‍ය අවසරයක් අබල කර ඇත."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"නිර්යාතය අතරතුර දෝෂයක් සිදු විය: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O දෝෂය"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"මතකය මදිය. ගොනුව විශාල වැඩි විය හැක."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"මෙම ආකෘතිය වෙත සහාය නොදක්වයි."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> නිර්යාත කිරීම අවසන් කෙරුණි."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"සම්බන්ධතා නිර්යාත කිරීම සම්පූර්ණ කරන ලදී."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"සම්බන්ධතා නිර්යාත කිරීම අවසන්ය, සම්බන්ධතා බෙදා ගැනීමට දැනුම්දීම ක්ලික් කරන්න."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"සම්බන්ධතා බෙදා ගැනීමට තට්ටු කරන්න."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> නිර්යාත කිරීම අවලංගු කෙරුණි."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"සම්බන්ධතා දත්ත නිර්යාත කිරීම"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"සම්බන්ධතා දත්ත නිර්යාත කරමින් තිබේ."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"දත්ත සමුදායේ තොරතුරු ලබාගත නොහැක."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"නිර්යාත කළ හැකි සම්බන්ධතා නොමැත."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard සකසනය නිවැරදිව පටන් ගත්තේ නැත."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"නිර්යාත කළ නොහැකිය"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"සම්බන්ධතා දත්ත නිර්යාත නොකරන ලදි.\nහේතුව: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> ආයාත කරමින්"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard දත්ත කියවිය නොහැක"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> ආයාත කිරීම අවසන් විය"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> ආයාත කිරීම අවලංගු කෙරුණි"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> කෙටි වේලාවකින් ආයාත වනු ඇත."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ගොනුව කෙටි වේලාවකින් ආයාත කරනු ඇත."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard ආයාත අයැදුම ප්‍රතික්ෂේප කරන ලදි. පසුව නැවත උත්සාහ කරන්න."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"ටික වේලාවකින් සම්බන්ධතා නිර්යාත කරනු ඇත."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard නිර්යාත ඉල්ලීම ප්‍රතික්ෂේප කරන ලදි. පසුව නැවත උත්සාහ කරන්න."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"සම්බන්ධතාවය"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"පෙදෙසි තාවකාලික ආචයනයට vCard(s) හැඹිලිගත කරමින් පවතී. සැබෑ ආයාත කිරීම ඉක්මනින් පටන් ගනු ඇත."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard ආයාත කිරීමට නොහැක."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC හරහා සම්බන්ධතාව ලැබුණි"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"හැඹිලි ගත කරමින්"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g> ආයාත කරමින්"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf ගොනුවට නිර්යාත කරන්න"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"මේ අනුව අනුපිළිවෙලට සකසන්න"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ස්වර නම"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"සැමවිටම පෙන්වන්න"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"හිස් නම් සඟවන්න"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"පළමු නම"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"අග නම"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"නමේ ආකෘතිය"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"මුල් නම මුලින්ම"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"අවසාන නම මුලින්ම"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"ගිණුම්"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"නව සම්බන්ධතා සඳහා පෙරනිමි ගිණුම"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"මගේ තොරතුරු"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"ඔබේ පැතිකඩ පිහිටුවන්න"</string>
+    <string name="setting_about" msgid="7014388749752042863">"සම්බන්ධතා පිළිබඳ"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"ප්‍රියතම සම්බන්ධතා බෙදා ගන්න"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"සියලු සම්බන්ධතා බෙදා ගන්න"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"සම්බන්ධතා බෙදා ගැනීමට අසමත් විය."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"සම්බන්ධතා නිර්යාත කරන්න"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"සම්බන්ධතා ආයාත කරන්න"</string>
+    <string name="share_error" msgid="948429331673358107">"මෙම සම්බන්ධතාව බෙදා ගත නොහැක."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"බෙදා ගැනීමට සම්බන්ධතා නොමැත."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"පෙන්වීමට සම්බන්ධතා"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"පෙන්වීමට සම්බන්ධතා"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"දසුන අභිරුචිකරණය කරන්න"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"සුරකින්න"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"සම්බන්ධතා සොයන්න"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"ප්‍රියතම"</string>
+    <string name="menu_import" msgid="6107961135813836467">"ආයාත කරන්න"</string>
+    <string name="menu_export" msgid="2658783911863503902">"නිර්යාත කරන්න"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"අවහිර කළ අංක"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> හරහා"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> ඔස්සේ <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"සෙවීම අවසන් කරන්න"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"සෙවීම හිස් කරන්න"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"ගිණුම"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ඇමතුම් සඳහා මෙය සැමවිට භාවිත කරන්න"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"සටහනක් සමගින් අමතන්න"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"ඇමතුම සමග යැවීමට සටහනක් ටයිප් කරන්න…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"යවන්න සහ අමතන්න"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"නිමැවුම් අනුවාදය"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"විවෘත මූලාශ්‍ර බලපත්‍ර"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"විවෘත මූලාශ්‍ර මෘදුකාංග සඳහා බලපත්‍ර විස්තර"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"රහස්‍යතා ප්‍රතිපත්තිය"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"සේවා නියම"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"විවෘත මූලාශ්‍ර බලපත්‍ර"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"url විවෘත කිරීමට අසමත් විය."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ලකුණු කරන ලදී"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ලකුණු කර නැත"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"වීඩියෝ ඇමතුමක් කරන්න"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"මකන්න"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"ලෝපය"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"මිනි <xliff:g id="MINUTES">%1$s</xliff:g> තත් <xliff:g id="SECONDS">%2$s</xliff:g>"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"පැය <xliff:g id="MINUTES_0">%1$s</xliff:g> මිනි <xliff:g id="MINUTES_1">%2$s</xliff:g> තත් <xliff:g id="SECONDS">%3$s</xliff:g>"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"මෙම කෙටිමග අබල කර ඇත"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"සම්බන්ධතාව ඉවත් කරන ලදී"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"ආයාත කරන්න"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"සම්බන්ධතා තෝරන්න"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"ඔබේ SIM කාඩ්පතේ සම්බන්ධතා නොමැත"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"සම්බන්ධතාව දැනටමත් ඔබේ ලැයිස්තුවෙහි පවතී"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">SIM සම්බන්ධතා <xliff:g id="COUNT">%d</xliff:g>ක් ආයාත කරන ලදී</item>
+      <item quantity="other">SIM සම්බන්ධතා <xliff:g id="COUNT">%d</xliff:g>ක් ආයාත කරන ලදී</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM සම්බන්ධතා ආයාත කිරීමට අසමත් විය"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM වෙතින් ආයාත කරන්න"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"අවලංගු කරන්න"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"ස්වයංක්‍රිය සමමුහුර්ත කිරීම ක්‍රියාවිරහිතයි. ක්‍රියාත්මක කිරීමට තට්ටු කරන්න."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"ඉවතලන්න"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"ගිණුම් සමමුහුර්ත කිරීම ක්‍රියාවිරහිතයි. ක්‍රියාත්මක කිරීමට තට්ටු කරන්න."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"ස්වයං-සමමුහුර්ත කිරීම ක්‍රියාත්මක කරන්නද?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"හුදෙක් Google සම්බන්ධතා පමණක් නොව, ඔබ සියලු යෙදුම් සහ ගිණුම් වෙත කරන වෙනස් කිරීම් වෙබ සහ ඔබේ උපාංග අතර යාවත්කාලිනව තබා ගනු ඇත."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ක්‍රියාත්මක කරන්න"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"සම්බන්ධතාව නැත"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"තව පෙන්වන්න"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM කාඩ්පත ආයාත කිරීම අවසන්ය"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"අයාත කිරීම අසාර්ථක විය"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"සම්බන්ධතා SIM කාඩ්පතෙන් ආයාත කිරීමට නොහැකි විය"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM ආයාත කරමින්"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 6b64ca4..63d2bdf 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakty"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakty"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Zobraziť kontakt"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Upraviť kontakt"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakty"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Pridať kontakt"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Priame vytáčanie"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Priama správa"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Výber skratky kontaktu"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Výber čísla pre hovor"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Výber čísla pre správu"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Vybrať kontakt"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Pridať ku kontaktu"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Vyberte kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Vybrať"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Vytvoriť nový kontakt"</string>
-    <string name="starredList" msgid="4817256136413959463">"Označené hviezdičkou"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Časté"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Obľúbené"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Podrobnosti kontaktu"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Upraviť kontakt"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Vytvoriť kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Upraviť skupinu"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Vytvoriť skupinu"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Informácie"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Aktualizácie"</string>
     <string name="searchHint" msgid="8482945356247760701">"Hľadať v kontaktoch"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Zobraziť kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Pridať medzi obľúbené položky"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Odstrániť z obľúbených"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Odstránené z obľúbených"</string>
@@ -49,232 +35,189 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Upraviť"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Odstrániť"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Zmeniť fotku"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Umiestniť na plochu"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Zavolať kontaktu"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Odoslať správu kontaktu"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Zrušiť prepojenie"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Upraviť"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Odstrániť"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Pridať kontakt"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Pridať skupinu"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Zrušiť prepojenie tohto kontaktu a vytvoriť viacero kontaktov?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Zrušiť prepojenie"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Chcete vykonané zmeny uložiť, zrušiť prepojenie tohto kontaktu a vytvoriť viacero kontaktov?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Uložiť a zrušiť prepojenie"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Vytvoriť odkaz"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Odpojiť"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Odstrániť kontakty"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Premenovať štítok"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Odstrániť štítok"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Pridať kontakt"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Vybrať kontakty"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Pridať kontakty"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Odstrániť zo štítka"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Vytvoriť štítok"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Chcete tento kontakt rozpojiť na viacero samostatných kontaktov?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Odpojiť"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Chcete vykonané zmeny uložiť a rozpojiť tento kontakt na viacero samostatných kontaktov?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Uložiť a odpojiť"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Chcete vykonané zmeny uložiť a prepojiť s vybratým kontaktom?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Uložiť a prepojiť"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Prepája sa"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Odpája sa"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Prepojiť"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Zobraziť prepojené kontakty"</string>
     <string name="menu_save" msgid="1727844363591825909">"Uložiť"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Prepojenie kontaktov"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Vyberte kontakt, ktorý chcete prepojiť s kontaktom <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Zobraziť všetky kontakty"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Navrhnuté kontakty"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Všetky kontakty"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Kontakt <xliff:g id="NAME">%s</xliff:g> bol prepojený"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakty boli prepojené"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> bol odstránený"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Kontakty <xliff:g id="NAME_0">%1$s</xliff:g> a <xliff:g id="NAME_1">%2$s</xliff:g> boli odstránené"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Kontakty <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… boli odstránené"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="few">Kontakty boli odstránené</item>
       <item quantity="many">Kontakty boli odstránené</item>
       <item quantity="other">Kontakty boli odstránené</item>
       <item quantity="one">Kontakt bol odstránený</item>
     </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Nastaviť zvonenie"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Hovory do hlas. schránky"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakty z účtov iba na čítanie nie je možné odstrániť, ale dajú sa skryť."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Skryť"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakt, ktorý sa má odstrániť, obsahuje podrobnosti z viacerých účtov. Podrobnosti z účtov iba na čítanie budú skryté, nie odstránené."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Ak chcete vykonať prepojenie, musíte vybrať aspoň dva kontakty."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Prepojiť vybraté kontakty?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Prepojiť"</string>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> kontakty</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> kontaktu</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontaktov</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakty · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktu · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontaktov · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Z Googlu"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Z účtu <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Nastaviť tón zvonenia"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Smerovať do hlasovej schránky"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Nesmerovať do hlas. schránky"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Tento kontakt je určený iba na čítanie. Nedá sa odstrániť, ale môžete ho skryť."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Skryť kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Účty tohto kontaktu určené iba na čítanie sa neodstránia, ale skryjú."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Odstrániť tento kontakt?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Odstrániť vybraté kontakty?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakty z účtov iba na čítanie nie je možné odstrániť, ale dajú sa skryť."</string>
     <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontakty, ktoré sa majú odstrániť, obsahujú podrobnosti z viacerých účtov. Podrobnosti z účtov iba na čítanie budú skryté, nie odstránené."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Odstránením tohto kontaktu odstránite podrobnosti z viacerých účtov."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Odstránením tohto kontaktu odstránite údaje z viacerých účtov."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Odstrániť tento kontakt?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Odstrániť"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Zahodiť zmeny"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt neexistuje."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt bol pridaný na plochu."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> bol pridaný na plochu."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Vytvoriť nový kontakt"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Vytvoriť nový kontakt"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizácia"</item>
-    <item msgid="7196592230748086755">"Poznámka"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"V tablete nie sú k dispozícii žiadne fotografie."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"V telefónne nie sú žiadne fotografie."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt bol pridaný na plochu"</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> bol pridaný na plochu"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"V zariadení nie sú k dispozícii žiadne fotky."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotka kontaktu"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Názov štítku"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Presmerovať hovory priamo do hlasovej schránky"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Odstrániť fotografiu"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Žiadne kontakty"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Žiadne skupiny."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Na vytvorenie skupín je potrebný účet."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"V tejto skupine nie sú žiadni ľudia."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Ak chcete pridať členov, upravte skupinu."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Prebieha ukladanie kontaktu..."</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Odstrániť fotku"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Zoznam vašich kontaktov je prázdny"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Žiadne kontakty s týmto štítkom"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"V tomto účte nie sú žiadne kontakty"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Zoznam vašich kontaktov je prázdny"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Kontakt <xliff:g id="DISPLAY_NAME">%s</xliff:g> bol uložený"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt bol uložený"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontakty boli odpojené"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Nepodarilo sa uložiť zmeny kontaktu."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Zrušenie prepojenia kontaktu zlyhalo."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kontakt sa nepodarilo prepojiť."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Pri ukladaní kontaktu sa vyskytla chyba."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Nepodarilo sa uložiť zmeny fotky kontaktu"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Skupina bola uložená."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Nepodarilo sa uložiť zmeny skupiny."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> kontakty s telefónnym číslom</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> kontaktu s telefónnym číslom</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontaktov s telefónnym číslom</item>
-      <item quantity="one">1 kontakt s telefónnym číslom</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ku kontaktom nie sú priradené žiadne telefónne čísla"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> nájdené položky</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> nájdenej položky</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> nájdených položiek</item>
-      <item quantity="one">1 nájdená položka</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Nepodarilo sa uložiť zmeny kontaktu"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Odpojenie kontaktu zlyhalo"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontakt sa nepodarilo prepojiť"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Pri ukladaní kontaktu sa vyskytla chyba"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Nepodarilo sa uložiť zmeny fotky kontaktu"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Načítanie štítka zlyhalo"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Štítok bol odstránený"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Štítok bol vytvorený"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Nie je možné vytvoriť štítok"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Štítok bol aktualizovaný"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Odstránené zo štítka"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Pridané do štítka"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Nepodarilo sa uložiť zmeny štítka"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Tento štítok už existuje"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Niektoré kontakty nemajú e-mailovú adresu."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Niektoré kontakty nemajú telefónne číslo."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Odoslať e-mail"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Odoslať správu"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Výber kontaktov"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Odoslať"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Žiadne kontakty"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> nájdené položky</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> nájdenej položky</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> nájdených položiek</item>
-      <item quantity="one">1 nájdená položka</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Všetky"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Obľúbené"</string>
-    <string name="callBack" msgid="5498224409038809224">"Zavolať"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Zavolať znova"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Zavolať späť"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Chcete pridať „<xliff:g id="EMAIL">%s</xliff:g>“ medzi kontakty?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotografia kontaktu"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> z <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontaktov"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Mená vašich kontaktov"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Aplikácia potrebná na spracovanie tejto akcie sa nenašla."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknutím na tlačidlo sa vrátite na predchádzajúcu obrazovku."</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Pridať telefónne číslo"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Pridať e-mail"</string>
     <string name="missing_app" msgid="1466111003546611387">"Aplikácia potrebná na spracovanie tejto akcie sa nenašla."</string>
     <string name="menu_share" msgid="943789700636542260">"Zdieľať"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Pridať do kontaktov"</string>
-    <string name="share_via" msgid="563121028023030093">"Zdieľať kontakt pomocou"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Vytvoriť skupinu v účte"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Pridať"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="few">Zdieľať kontakty pomocou</item>
+      <item quantity="many">Zdieľať kontakty pomocou</item>
+      <item quantity="other">Zdieľať kontakty pomocou</item>
+      <item quantity="one">Zdieľať kontakt pomocou</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Výber účtu"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Vytvorenie štítka"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Premenovanie štítka"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Názov štítka"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Názov štítka"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Hlasový čet"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videohovor"</string>
-    <string name="connections" msgid="8098440723172028350">"Spojenia"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Pridať spojenie"</string>
-    <string name="recent" msgid="2659189233141493004">"Nedávne"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Nedávne aktualizácie"</string>
-    <string name="account_type_format" msgid="718948015590343010">"Kontakt z účtu <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="account_type_format" msgid="718948015590343010">"Kontakt zo zdroja <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Účet <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Nemožno upraviť pomocou tejto aplikácie."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Nie je možné upraviť v tomto zariadení."</string>
     <string name="take_photo" msgid="7496128293167402354">"Odfotiť"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Urobiť novú fotografiu"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Znovu odfotiť"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Vybrať fotku"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Vybrať novú fotku"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Prebieha aktualizácia zoznamu kontaktov."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Hľadá sa…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Zobraziť vybraté"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Zobraziť všetky"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Vybrať všetko"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Zrušiť výber všetkých"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Pridať nové"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Pridať organizáciu"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Dátum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Názov skupiny"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Zmeniť"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Hlavná fotka"</string>
-    <string name="description_star" msgid="2605854427360036550">"zaradiť medzi obľúbené"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Upraviť kontakt"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Prepojiť aktuálny kontakt s vybraným kontaktom?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Štítok"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Zrušiť"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Späť"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zavrieť"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Prepnúť do režimu úpravy vybraného kontaktu? Doposiaľ zadané informácie budú skopírované."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Skopírovať do priečinka Moje kontakty"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Pridať medzi moje kontakty"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Adresár <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Vlastné"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Nastavenia"</string>
     <string name="menu_settings" msgid="377929915873428211">"Nastavenia"</string>
     <string name="menu_help" msgid="1680178646764069976">"Pomocník a spätná väzba"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Možnosti zobrazenia"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefónne číslo"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Pridať medzi kontakty"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Pridať ku kontaktu"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Zavrieť"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Uvádzať rok"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Načítava sa…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Vytvoriť nový kontakt"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"uviesť rok"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Pridať účet"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importovať kontakty"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Vytvoriť novú skupinu"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Vytvoriť novú skupinu"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> skupiny</item>
-      <item quantity="many"><xliff:g id="COUNT">%0$d</xliff:g> skupiny</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> skupín</item>
-      <item quantity="one">1 skupina</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Chcete odstrániť skupinu „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Samotné kontakty nebudú odstránené.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="few">Počet ľudí zo skupiny <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>: <xliff:g id="COUNT_2">%1$d</xliff:g></item>
-      <item quantity="many">Počet ľudí zo skupiny <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>: <xliff:g id="COUNT_2">%1$d</xliff:g></item>
-      <item quantity="other">Počet ľudí zo skupiny <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>: <xliff:g id="COUNT_2">%1$d</xliff:g></item>
-      <item quantity="one">Počet ľudí zo skupiny <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g>: <xliff:g id="COUNT_0">%1$d</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="few">Počet ľudí: <xliff:g id="COUNT_1">%1$d</xliff:g></item>
-      <item quantity="many">Počet ľudí: <xliff:g id="COUNT_1">%1$d</xliff:g></item>
-      <item quantity="other">Počet ľudí: <xliff:g id="COUNT_1">%1$d</xliff:g></item>
-      <item quantity="one">Počet ľudí: <xliff:g id="COUNT_0">%1$d</xliff:g></item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importovať"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Nový štítok…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Odstrániť štítok <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Samotné kontakty nebudú odstránené.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Pred prepojením s iným kontaktom zadajte meno kontaktu."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopírovať do schránky"</string>
     <string name="set_default" msgid="4417505153468300351">"Nastaviť ako predvolené"</string>
     <string name="clear_default" msgid="7193185801596678067">"Vymazať predvolené nastavenia"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Text bol skopírovaný"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Chcete zmeny zahodiť?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Zahodiť"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Nastaviť môj profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Zadajte meno osoby"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Názov skupiny"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Zahodiť zmeny?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Zahodiť"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Zrušiť"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Chcete zahodiť vlastné úpravy?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Hľadať v kontaktoch"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Odstránenie kontaktov"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Môj miestny profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Môj profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Zobrazenie všetkých kontaktov"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakty fungujú lepšie s účtom Google.\n\n• Môžete k nim pristupovať z akéhokoľvek webového prehliadača.\n• Zálohujte svoje kontatky bezpečne."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Uchovávajte svoje kontakty v bezpečí aj v prípade straty svojho telefónu: používajte synchronizáciu so službou online."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Pridať účet"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Nový kontakt nebude zálohovaný. Chcete pridať účet na online zálohovanie kontaktov?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Pridajte svoj účet a nechajte si kontakty zálohovať na Googli."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nové kontakty sa budú ukladať do účtu <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Vyberte predvolený účet pre nové kontakty:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Pridať nový kontakt"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Nový kontakt"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Upraviť kontakt"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Len miestne"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Iba zobrazenie"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Vyberte kontakt, ktorý chcete upraviť"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Prepojené kontakty"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Pridať"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Odpojiť"</string>
     <string name="add_account" msgid="8201790677994503186">"Pridať účet"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Pridať nový účet"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportovať súbory databázy"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"pridať nový kontakt"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Vytvoriť nový kontakt"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Zobraziť viac"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Zobraziť menej"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Zobraziť všetko"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Nedávne"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"O aplikácii"</string>
-    <string name="send_message" msgid="8938418965550543196">"Odoslať správu"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Vytvára sa osobná kópia..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Včera"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"O karte"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Prebieha vytváranie osobnej kópie..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Zajtra"</string>
     <string name="today" msgid="8041090779381781781">"Dnes"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Dnes o <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Zajtra o <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Udalosť bez názvu)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Nastaviť"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Čet"</string>
@@ -284,104 +227,321 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Udalosť"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Vzťah"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Účet"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Meno"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-mailová adresa"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefón"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotka"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliknutím rozbalíte editor kontaktov."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknutím zbalíte editor kontaktov."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"trasa do miesta"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedávna správa sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknutím na ňu odpoviete"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedávna správa sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknutím na ňu odpoviete"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"prichádzajúci"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"odchádzajúci"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"zmeškaný"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"nedávny hovor. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknutím zavoláte späť"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"nedávny hovor. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknutím zavoláte späť"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Vy: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Služba Hangouts funguje lepšie, keď do poľa pre e-mailovú adresu alebo telefón zadáte identifikátor osoby v službe Hangouts."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Ďalšie polia"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Zmeniť fotku"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Nepodarilo sa otvoriť editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Ukladá sa do"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Kontakty sa momentálne ukladajú do účtu <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Iný účet vyberiete dvojitým klepnutím."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="few">Prepojené kontakty (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">Prepojené kontakty (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Prepojené kontakty (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Prepojený kontakt</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Prepojené kontakty (počet: <xliff:g id="COUNT">%d</xliff:g>)"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Ďalšie polia"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Zmeniť fotku kontaktu"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Pridať fotku kontaktu"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Fotka kontaktu"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Nepodarilo sa otvoriť editor"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Miesto uloženia"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Kontaktné informácie z účtu <xliff:g id="ACCOUNT">%s</xliff:g> sa nedajú upravovať"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"PREPOJIŤ KONTAKTY"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ZRUŠIŤ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> možné duplikáty</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> možného duplikátu</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> možných duplikátov</item>
-      <item quantity="one">1 možný duplikát</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> prepojené kontakty</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> prepojeného kontaktu</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> prepojených kontaktov</item>
-      <item quantity="one">1 prepojený kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Tento kontakt"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Možné duplikáty"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Tieto kontakty môžu patriť jednej osobe. Môžete ich prepojiť do jedného kontaktu."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Prepojené kontakty"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Z vašich účtov"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Odfotiť"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Všetky fotky"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Výber fotky"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Z účtu <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Odstrániť položku <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Odstrániť položku <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Odstrániť položku <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotka účtu <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> nie je začiarknutá"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Fotka z účtu <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> je začiarknutá"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Fotka z neznámeho účtu nebola začiarknutá"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Fotka z neznámeho účtu bola začiarknutá"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"V súvislosti so zmenou jazyka prebieha aktualizácia zoznamu kontaktov.\n\nČakajte..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Pridať číslo"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokovať číslo"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Pridajte číslo / vyhľadajte v kontaktoch"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Odblokovať číslo <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ODBLOKOVAŤ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokovať číslo <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKOVAŤ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> – blokované"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> – odblokované"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je neplatné."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokovanie hovorov je dočasne vypnuté"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Pretože ste z tohto telefónu počas posledných 48 hodín volali na tiesňovú linku, blokovanie hovorov bolo vypnuté. Po uplynutí 48 hodín sa automaticky znova zapne."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importovať"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Zobraziť čísla"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Pridať číslo"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokovanie hovorov je deaktivované na 48 hodín"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Deaktivované, pretože ste uskutočnili tiesňové volanie"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"SPÄŤ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je už blokované."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zrušiť blokovanie čísla"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Podrobnosti kontaktu pre <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import zlyhal"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importovať čísla"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Ak chcete hľadať kontakty, zapnite povolenie Kontakty."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Zapnúť"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Návrhy"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nové"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Otvoriť navigačný vysúvací panel"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zavrieť navigačný vysúvací panel"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Štítok <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Štítky"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Účty"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Majte históriu pohromade"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Udalosti a správy"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Udalosti"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Správy"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Návrhy"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Usporiadajte svoje kontakty, aby boli užitočnejšie"</string>
+    <string name="undo" msgid="1425165101664071422">"Späť"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Volať na číslo <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Zavolať domov"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Zavolať na mobil"</string>
+    <string name="call_work" msgid="5328785911463744028">"Volať do práce"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Volať na pracovný fax"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Zavolať na domáci fax"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Zavolať na pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Zavolať"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Zavolať na číslo spätného volania"</string>
+    <string name="call_car" msgid="3280537320306436445">"Zavolať do auta"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Volať firme (hlavné)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Volať na číslo ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Volať na hlavné číslo"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Zavolať na fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Zavolať rádiostanicu"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Zavolať na číslo Telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Zavolať na číslo TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Volať na pracovný mobil"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Volať na pracovný pager"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Volať na číslo <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Zavolať na číslo MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (hovor)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Poslať SMS na číslo <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS domov"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS na mobil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS do práce"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS na pracovný fax"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS na domáci fax"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS na pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Text"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Poslať správu na číslo spätného volania"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS do auta"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Poslať správu firme (hlavné)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Poslať správu na číslo ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Poslať správu na hlavné číslo"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"SMS na fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS na rádiotelefón"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Poslať správu na číslo Telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Odoslať správu na číslo TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Odoslať správu na pracovný mobil"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Odoslať správu na pracovný pager"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Poslať správu kontaktu <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"SMS na číslo MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (správa)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Uskutočniť videohovor"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Vymazať často kontaktované osoby?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Vymažete zoznam často kontaktovaných osôb v aplikáciách Kontakty a Telefón a e-mailové aplikácie budú musieť odznova vytvoriť predvoľby adresátov."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Mazanie často kontaktovaných osôb."</string>
+    <string name="status_available" msgid="5586870015822828392">"K dispozícii"</string>
+    <string name="status_away" msgid="1838861100379804730">"Preč"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Zaneprázdnený"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Iné"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Adresár"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Pracovný adresár"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Všetky kontakty"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Rýchly kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Bez mena)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Najčastejšie používané kontakty"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Všetky kontakty s telefónnymi číslami"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontakty v pracovnom profile"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Zobraziť aktualizácie"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Zariadenie"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM karta"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Meno"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Prezývka"</string>
+    <string name="name_given" msgid="4280790853455320619">"Meno"</string>
+    <string name="name_family" msgid="7466985689626017037">"Priezvisko"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Titul pred menom"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Druhé meno"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Titul za menom"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Meno (foneticky)"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Meno (foneticky)"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Druhé meno (foneticky)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Priezvisko (foneticky)"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefón"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-mail"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Čet"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizácia"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Vzťah"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Špeciálny dátum"</string>
+    <string name="sms" msgid="1756857139634224222">"Textová správa"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresa"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Spoločnosť"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titul"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Poznámky"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Vlastný"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Štítky"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-mail domov"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-mail na mobil"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-mail do práce"</string>
+    <string name="email_other" msgid="3454004077967657109">"Poslať e-mail"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Odoslať správu na adresu <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Poslať e-mail"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Mesto"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Štát"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"PSČ"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Krajina"</string>
+    <string name="map_home" msgid="1243547733423343982">"Zobraziť adresu domov"</string>
+    <string name="map_work" msgid="1360474076921878088">"Zobraziť pracovnú adresu"</string>
+    <string name="map_other" msgid="3817820803587012641">"Zobraziť adresu"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Zobraziť adresu: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Zhovárať sa pomocou služby AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Zhovárať sa pomocou služby Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Zhovárať sa pomocou služby Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Zhovárať sa pomocou služby Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Zhovárať sa pomocou služby QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Zhovárať sa pomocou aplikácie Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Zhovárať sa pomocou služby ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Zhovárať sa pomocou služby Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Rozhovor"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"odstrániť"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Zobraziť ďalšie polia mien"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Zbaliť polia mien"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Zobraziť ďalšie polia foneticky zadaných mien"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Zbaliť polia foneticky zadaných mien"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Rozbaliť"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Zbaliť"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Rozbalené"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Zbalené"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Všetky kontakty"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Označené hviezdičkou"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Prispôsobiť"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Všetky ostatné kontakty"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Všetky kontakty"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Odstrániť synchronizovanú skupinu"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Pridať synchronizovanú skupinu"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Ďalšie skupiny..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Ak zo synchronizácie odstránite skupinu „<xliff:g id="GROUP">%s</xliff:g>“, odstránite zo synchronizácie aj všetky kontakty, ktoré nie sú zaradené do žiadnej skupiny."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Prebieha ukladanie možností zobrazenia..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Vlastné zobrazenie"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Účet na ukladanie importovaných kontaktov"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"zo SIM karty"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM karty <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="few">%1$d kontakty</item>
+      <item quantity="many">%1$d kontaktu</item>
+      <item quantity="other">%1$d kontaktov</item>
+      <item quantity="one">1 kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> kontakty • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> kontaktu • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontaktov • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"z .vcf súboru"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nič nie je k dispozícii na import"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importovať kontakty z vizitky vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Zrušiť importovanie súboru <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Zrušiť export vizitky <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Import či export vizitky sa nepodarilo zrušiť"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Neznáma chyba."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Súbor „<xliff:g id="FILE_NAME">%1$s</xliff:g>“ sa nepodarilo otvoriť: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Nástroj na export sa nepodarilo spustiť: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nedá sa exportovať žiadny kontakt."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Zakázali ste požadované povolenie."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Počas exportovania sa vyskytla chyba: „<xliff:g id="EXACT_REASON">%s</xliff:g>“."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Chyba I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nedostatok pamäte. Súbor je možno príliš veľký."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formát nie je podporovaný."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Export vizitky <xliff:g id="FILENAME">%s</xliff:g> bol dokončený."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Export kontaktov bol dokončený"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Export kontaktov bol dokončený. Kliknutím na upozornenie ich môžete zdieľať."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Klepnutím zdieľajte kontakty."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Export vizitky <xliff:g id="FILENAME">%s</xliff:g> bol zrušený"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Export údajov kontaktov"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontaktné údaje sa exportujú."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Nepodarilo sa získať informácie z databázy."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nie je možné exportovať žiadne kontakty."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Nástroj na tvorbu vizitiek vCard sa nespustil správne."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Export sa nepodaril"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Údaje kontaktov neboli exportované.\nDôvod: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importuje sa <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Nepodarilo sa prečítať údaje vizitky vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Import vizitky <xliff:g id="FILENAME">%s</xliff:g> bol dokončený"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importovanie súboru <xliff:g id="FILENAME">%s</xliff:g> bolo zrušené"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Vizitka <xliff:g id="FILENAME">%s</xliff:g> bude čoskoro importovaná."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Súbor bude čoskoro importovaný."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Žiadosť o import vizitky vCard bola odmietnutá. Skúste to znova neskôr."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakty budú čoskoro exportované"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Žiadosť o export vizitky bola odmietnutá. Skúste to znova neskôr."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Prebieha načítavanie vizitiek vCard do vyrovnávacej pamäte miestneho dočasného úložiska. Samotné importovanie začne o chvíľu."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Vizitku vCard sa nepodarilo importovať."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt cez NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Ukladanie do vyrovnávacej pamäte..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Import: <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportovať do súboru .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Zoradiť podľa"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Meno (foneticky)"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Vždy zobrazovať"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Skryť, ak je prázdne"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Meno"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Priezvisko"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formát mena"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Najprv meno"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Najprv priezvisko"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Účty"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Predvolený účet pre nové kontakty"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Informácie o mne"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Nastavenie profilu"</string>
+    <string name="setting_about" msgid="7014388749752042863">"O aplikácii Kontakty"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Zdieľať obľúbené kontakty"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Zdieľať všetky kontakty"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Nepodarilo sa zdieľať kontakty."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Export kontaktov"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importovať kontakty"</string>
+    <string name="share_error" msgid="948429331673358107">"Tento kontakt nie je možné zdieľať."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nemáte žiadne kontakty na zdieľanie"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakty na zobrazenie"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakty na zobrazenie"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Prispôsobiť zobrazenie"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Uložiť"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Hľadať v kontaktoch"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Obľúbené"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importovať"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportovať"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokované čísla"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">", zdroj: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g>, zdroj: <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"zastaviť vyhľadávanie"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Vymazať vyhľadávanie"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Účet"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Vždy používať pre hovory"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Hovor s poznámkou"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Napísať poznámku, ktorá sa odošle s hovorom…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ODOSLAŤ A VOLAŤ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Verzia zostavy"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licencie open source"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Podrobnosti o licencii pre softvér open source"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Pravidlá ochrany súkromia"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Zmluvné podmienky"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licencie open source"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Webovú adresu nebolo možné otvoriť"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> – skontrolované"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> – neskontrolované"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Uskutočniť videohovor"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Odstrániť"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Tri bodky"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Tento odkaz bol deaktivovaný"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt bol odstránený"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importovať"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Výber kontaktov"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Na SIM karte nie sú žiadne kontakty"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakt sa už vo vašom zozname nachádza"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="few">Boli importované <xliff:g id="COUNT">%d</xliff:g> kontakty zo SIM karty</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> SIM contacts imported</item>
+      <item quantity="other">Bolo importovaných <xliff:g id="COUNT">%d</xliff:g> kontaktov zo SIM karty</item>
+      <item quantity="one">Bol importovaný 1 kontakt zo SIM karty</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Import kontaktov na SIM karte zlyhal"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Import zo SIM karty"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Zrušiť"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatická synchronizácia je vypnutá. Zapnete ju klepnutím."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Zatvoriť"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Synchronizácia účtov je vypnutá. Zapnete ju klepnutím."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Chcete zapnúť automatickú synchronizáciu?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Medzi webom a vašimi zariadeniami sa budú aktualizovať zmeny, ktoré vykonáte vo všetkých aplikáciách a účtoch, nielen v Kontaktoch Google."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Zapnúť"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Žiadne pripojenie"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM karta"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Zobraziť viac"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Import SIM karty bol dokončený"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Import zlyhal"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Nepodarilo sa importovať kontakty zo SIM karty"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importuje sa SIM karta"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index dd21730..6971422 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Stiki"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Stiki"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Ogled stika"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Urejanje stika"</string>
     <string name="contactsList" msgid="8661624236494819731">"Stiki"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Dodaj stik"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Vizitka"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Bližnjice za klicanje"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Neposredno sporočilo"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Izberite bližnjico stika"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Izberite klicno številko"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Izberi številko za pošiljanje sporočila"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Izbira stika"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Dodajanje v stik"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Izbira stika"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Izberi"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Ustvarite nov stik"</string>
-    <string name="starredList" msgid="4817256136413959463">"Z zvezdico"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Pogosto"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Priljubljene"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Podrobnosti o stiku"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Urejanje stika"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Ustvari stik"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Uredi skupino"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Ustvari skupino"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Vizitka"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Posodobitve"</string>
     <string name="searchHint" msgid="8482945356247760701">"Iskanje stikov"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Ogled stika"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Dodaj k priljubljenim"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Odstrani iz priljubljenih"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Odstranjeno iz priljubljenih"</string>
@@ -49,232 +35,189 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Uredi"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Izbriši"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Sprememba fotografije"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Postavi na začetni zaslon"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Pokliči stik"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Pošlji SMS stiku"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Ustvari bližnjico"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Odstrani povezavo"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Uredi"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Izbriši"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Dodajanje stika"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Dodajanje skupine"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Odstrani stike"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Preimenuj oznako"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Izbriši oznako"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Dodaj stik"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Izbiranje stikov"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Dodajanje stikov"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Odstrani iz oznake"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Ustvari oznako"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Ali želite ta stik razdružiti na več stikov?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Razdruži"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Ali želite shraniti že narejene spremembe in ta stik razdružiti na več stikov?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Shrani in razdruži"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Ali želite shraniti že narejene spremembe in združiti z izbranim stikom?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Shrani in združi"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Povezava"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Povezovanje"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Prekinjanje povezave"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Poveži"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Ogled povezanih stikov"</string>
     <string name="menu_save" msgid="1727844363591825909">"Shrani"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Povezava stikov"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Izberite stik, ki ga želite povezati s stikom <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Prikaži vse stike"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Predlagani stiki"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Vsi stiki"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Stik <xliff:g id="NAME">%s</xliff:g> je povezan"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Stika povezana"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Stik <xliff:g id="NAME">%1$s</xliff:g> je izbrisan"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Stika <xliff:g id="NAME_0">%1$s</xliff:g> in <xliff:g id="NAME_1">%2$s</xliff:g> sta izbrisana"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Izbrisani stiki: <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g> …"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">Stiki so izbrisani</item>
+      <item quantity="one">Stik je izbrisan</item>
       <item quantity="two">Stiki so izbrisani</item>
       <item quantity="few">Stiki so izbrisani</item>
       <item quantity="other">Stiki so izbrisani</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> stik</item>
+      <item quantity="two"><xliff:g id="COUNT_1">%d</xliff:g> stika</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> stiki</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> stikov</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> stik · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="two"><xliff:g id="COUNT_2">%1$d</xliff:g> stika · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> stiki · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> stikov · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Iz Google računa"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Iz računa za <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Nastavi zvonj."</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Vsi klici na odzivnik"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Stikov iz računov, ki so samo za branje, ni mogoče izbrisati, mogoče pa jih je skriti."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Skrij"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Stik, ki ga želite izbrisati, ima podrobnosti iz več računov. Podatki iz računov, ki so samo za branje, ne bodo izbrisani, temveč skriti."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Za povezavo morate izbrati vsaj dva stika."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Želite združiti izbrane stike?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Združi"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Preusmeri v sporočila v odziv."</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Prekliči preusmeritev v odziv."</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ta stik je samo za branje. Stika ni mogoče izbrisati, mogoče pa ga je skriti."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Skrij stik"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Računi tega stika, ki so samo za branje, ne bodo izbrisani, temveč skriti."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Želite izbrisati ta stik?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Želite izbrisati izbrane stike?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Stikov iz računov, ki so samo za branje, ni mogoče izbrisati, mogoče pa jih je skriti."</string>
     <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Stiki, ki jih želite izbrisati, imajo podatke iz več računov. Podatki iz računov, ki so samo za branje, ne bodo izbrisani, temveč skriti."</string>
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Če boste izbrisali ta stik, boste izbrisali podatke iz več računov."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Želite izbrisati ta stik?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Izbris"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Zavrzi spremembe"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Izbriši"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Stik ne obstaja."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Stik je dodan na začetni zaslon."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Stik <xliff:g id="NAME">%s</xliff:g> je dodan na začetni zaslon."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Ustvari nov stik"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Ustvari nov stik"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizacija"</item>
-    <item msgid="7196592230748086755">"Opomba"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"V telefonu ni dostopnih slik."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"V telefonu ni na voljo slik."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"V napravi ni na voljo nobene slike."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografija za stik"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Ime oznake po meri"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Klice takoj preusmeri v glasovno pošto"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Odstrani fotografijo"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Ni stikov"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Ni skupin."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Če želite ustvariti skupine, potrebujete račun."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"V tej skupini ni ljudi."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Če jih želite dodati, uredite skupino."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Shranjevanje stika..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Seznam stikov je prazen"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Ni stikov s to oznako"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"V tem računu ni stikov"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Seznam stikov je prazen"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Stik <xliff:g id="DISPLAY_NAME">%s</xliff:g> je shranjen"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Stik je shranjen"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Povezava stikov odstranjena"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Sprememb v stikih ni bilo mogoče shraniti."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Stiku ni bilo mogoče odstraniti povezave."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Stika ni bilo mogoče povezati."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Pri shranjevanju stika je prišlo do napake."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Sprememb fotografije stika ni bilo mogoče shraniti."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Skupina je shranjena."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Sprememb v skupini ni mogoče shraniti."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> stik s telefonsko številko</item>
-      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> stika s telefonsko številko</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> stiki s telefonsko številko</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> stikov s telefonsko številko</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Ni stikov s telefonskimi številkami"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> najden</item>
-      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> najdena</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> najdeni</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> najdenih</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Sprememb stika ni bilo mogoče shraniti"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Stiku ni bilo mogoče odstraniti povezave"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Stiku ni bilo mogoče dodati povezave"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Pri shranjevanju stika je prišlo do napake"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Sprememb fotografije stika ni bilo mogoče shraniti"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Nalaganje oznake ni uspelo"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Oznaka je izbrisana"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Oznaka je ustvarjena"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Oznake ni mogoče ustvariti"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Oznaka je posodobljena"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Odstranjeno iz oznake"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Dodano v oznako"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Sprememb oznake ni bilo mogoče shraniti"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ta oznake že obstaja"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Nekateri stiki nimajo e-poštnih naslovov."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Nekateri stiki nimajo telefonskih številk."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Pošlji e-pošto"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Pošlji sporočilo"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Izbiranje stikov"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Pošlji"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Ni stikov"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> najden</item>
-      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> najdena</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> najdeni</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> najdenih</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Vse"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Priljubljeno"</string>
-    <string name="callBack" msgid="5498224409038809224">"Povratni klic"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Ponovi klic"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Povratni klic"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Želite »<xliff:g id="EMAIL">%s</xliff:g>« dodati stikom?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotografija stika"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> od <xliff:g id="TOTAL_NUMBER">%s</xliff:g> stikov"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Imena stikov"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Aplikacije za obravnavo tega dejanja ni mogoče najti."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliknite za vrnitev na prejšnji zaslon"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Dodaj telefonsko številko"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Dodaj e-poštni naslov"</string>
     <string name="missing_app" msgid="1466111003546611387">"Za to dejanje ni mogoče najti nobene aplikacije."</string>
     <string name="menu_share" msgid="943789700636542260">"Skupna raba"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Dodaj med stike"</string>
-    <string name="share_via" msgid="563121028023030093">"Deli stik z drugimi prek"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Ustvari skupino v računu"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Dodaj"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Skupna raba stikov prek aplikacije</item>
+      <item quantity="two">Skupna raba stikov prek aplikacije</item>
+      <item quantity="few">Skupna raba stikov prek aplikacije</item>
+      <item quantity="other">Skupna raba stikov prek aplikacije</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Izbira računa"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Ustvarjanje oznake"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Preimenovanje oznake"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Ime oznake"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Ime oznake"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Glasovni klepet"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videoklepet"</string>
-    <string name="connections" msgid="8098440723172028350">"Povezave"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Dodaj povezavo"</string>
-    <string name="recent" msgid="2659189233141493004">"Nedavni"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Nedavne posodobitve"</string>
     <string name="account_type_format" msgid="718948015590343010">"Stik <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> Račun"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"S to aplikacijo urejanje ni mogoče."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"V tej napravi ni mogoče urejati skupine."</string>
     <string name="take_photo" msgid="7496128293167402354">"Posnemi fotografijo"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Posnemi novo fotografijo"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Izberi fotografijo"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Izberite novo fotografijo"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Seznam stikov se posodablja."</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Izberi novo fotografijo"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Iskanje ..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Pokaži izbrane"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Pokaži vse"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Izberi vse"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Prekliči izbor vseh"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Dodaj novo"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Dodaj organizacijo"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Ime skupine"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Spremeni"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Glavna fotogr."</string>
-    <string name="description_star" msgid="2605854427360036550">"priljubljeno"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Uredi stik"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Želite povezati stik z izbranim stikom?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Dodaj oznako"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Prekliči"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Nazaj"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"zapri"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Želite urejati izbrani stik? Podatki, ki ste jih doslej vnesli, bodo kopirani."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiraj v moje stike"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Dodaj v skupino »Moji stiki«"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Imenik <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Po meri"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Nastavitve"</string>
     <string name="menu_settings" msgid="377929915873428211">"Nastavitve"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Pomoč in povratne informacije"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Možnosti prikaza"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Pomoč in povr. informacije"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefonska številka"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Dodaj v stike"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Dodaj v stik"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Zapri"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Vključi letnico"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Stik"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Nalaganje …"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Ustvarjanje novega stika"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodajanje računa"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Uvozi stike"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Ustvarjanje nove skupine"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Ustvari novo skupino"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> skupina</item>
-      <item quantity="two"><xliff:g id="COUNT">%0$d</xliff:g> skupini</item>
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> skupine</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> skupin</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Želite izbrisati skupino »<xliff:g id="GROUP_LABEL">%1$s</xliff:g>«? (Stiki ne bodo izbrisani.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> oseba iz skupine <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="two"><xliff:g id="COUNT_2">%1$d</xliff:g> osebi iz skupine <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> osebe iz skupine <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> oseb iz skupine <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> oseba</item>
-      <item quantity="two"><xliff:g id="COUNT_1">%1$d</xliff:g> osebi</item>
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> osebe</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> oseb</item>
-    </plurals>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Dodaj račun"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Uvozi"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Ustvari novo ..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Želite izbrisati oznako »<xliff:g id="GROUP_LABEL">%1$s</xliff:g>«? (Stiki ne bodo izbrisani.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Vnesite ime stika pred povezovanjem z drugim."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopiraj v odložišče"</string>
     <string name="set_default" msgid="4417505153468300351">"Nastavi za privzeto"</string>
     <string name="clear_default" msgid="7193185801596678067">"Počisti privzeto"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Besedilo kopirano"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Ali želite zavreči spremembe?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Zavrzi"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Nastavi moj profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Vnesite ime osebe"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Ime skupine"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Želite zavreči spremembe?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Zavrzi"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Prekliči"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Želite zavreči prilagoditve?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Iščite med stiki"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Odstranitev stikov"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Moj lokalni profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Moj profil za <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Prikaz vseh stikov"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Stiki delujejo bolje z Google Računom.\n\n• Dostop iz poljubnega brskalnika.\n• Varno varnostno kopiranje stikov."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Naj bodo vaš stiki na varnem, tudi če izgubite telefon: sinhronizirajte s spletno storitvijo."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Dodajanje računa"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Nov stik ne bo varnostno kopiran. Želite dodati račun za varnostno kopiranje stikov v internetu?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Vzemite si trenutek in dodajte račun, s katerim boste varnostno kopirali svoje stike v Googlu."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novi stiki bodo shranjeni v račun <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Izberite privzeti račun za nove stike:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Dod. novega stika"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Ustvari nov stik"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Urejanje stika"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Ohrani lokalno"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Samo za ogled"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Izbira stika za urejanje"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Povezani stiki"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Dodaj"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Odstrani povez."</string>
     <string name="add_account" msgid="8201790677994503186">"Dodaj račun"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Dodaj nov račun"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Izvoz datotek zbirke"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"dodaj novi stik"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Ustvari nov stik"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Pokaži več"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Pokaži manj"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Pokaži vse"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Nedavno"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Vizitka"</string>
-    <string name="send_message" msgid="8938418965550543196">"Pošlji sporočilo"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Ustvarjanje osebne kopije ..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Včeraj"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Ustvarjanje osebne kopije ..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Jutri"</string>
     <string name="today" msgid="8041090779381781781">"Danes"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Danes ob <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Jutri ob <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Neimenovani dogodek)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Nastavi"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Takojšnje sporočanje"</string>
@@ -284,104 +227,321 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Spletno mesto"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Dogodek"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Razmerje"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Račun"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Ime"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-pošta"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotografija"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliknite, če želite razširiti urejevalnik stikov."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliknite, če želite strniti urejevalnik stikov."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"navodila do mesta"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedavni sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknite, če želite odgovoriti"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"nedavni sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknite, če želite odgovoriti"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"Dohodni"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"Odhodni"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"Zgrešeni"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"nedavni klic. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliknite, če želite poklicati nazaj"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"nedavni klic. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliknite, če želite poklicati nazaj"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Vi: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Pogovori Hangouts delujejo bolje, če v polje za e-pošto ali polje za telefon vnesete identifikator osebe za pogovore Hangouts."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Več polj"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Sprememba fotografije"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Odpiranje urejevalnika ni uspelo."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Shranjevanje v:"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Trenutno se shranjuje v račun <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Če želite izbrati drug račun, se dvakrat dotaknite."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Povezani stiki (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="two">Povezani stiki (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">Povezani stiki (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Povezani stiki (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Povezani stiki (<xliff:g id="COUNT">%d</xliff:g>)"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Več polj"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Spremeni fotografijo za stik"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Dodaj fotografijo za stik"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Fotografija za stik"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Odpiranje urejevalnika ni uspelo."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Shranjevanje v"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Podatkov o stiku iz računa <xliff:g id="ACCOUNT">%s</xliff:g> ni mogoče urejati"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"POVEŽI STIKE"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"PREKLIČI"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> morebiten dvojnik</item>
-      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> morebitna dvojnika</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> morebitni dvojniki</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> morebitnih dvojnikov</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> povezan stik</item>
-      <item quantity="two"><xliff:g id="COUNT">%d</xliff:g> povezana stika</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> povezani stiki</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> povezanih stikov</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="two">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g> <xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ta stik"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Morebitni dvojniki"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Ti stiki so morda ena in ista oseba. Lahko jih združite v en stik."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Povezani stiki"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Iz vaših računov"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Fotografiranje"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Vse fotografije"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Izbira fotografije"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Od: <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Izbriši <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Izbriši <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotografija iz <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> ni označena"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Fotografija iz <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> je označena"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Fotografija iz neznanega računa ni izbrana"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Fotografija iz neznanega računa je izbrana"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Seznam stikov se posodablja po spremembi jezika.\n\nPočakajte ..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj telefonsko številko"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokiraj številko"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Dodajte št. ali iščite med st."</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Želite odblokirati številko <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ODBLOKIRAJ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Želite blokirati številko <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKIRAJ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Številka <xliff:g id="NUMBER">%1$s</xliff:g> je blokirana"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Številka <xliff:g id="NUMBER">%1$s</xliff:g> je odblokirana"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Telefonska številka <xliff:g id="NUMBER">%1$s</xliff:g> je neveljavna."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokiranje klicev je začasno izklopljeno"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Blokiranje klicev je onemogočeno, ker ste se v zadnjih 48 urah s tem telefonom obrnili na nujno pomoč. Ko 48-urno obdobje poteče, bo blokiranje klicev samodejno znova omogočeno."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvozi"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ogled številk"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj telefonsko številko"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokiranje klicev je onemogočeno za 48 ur"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Onemogočeno zaradi opravljenega klica v sili"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"RAZVELJAVI"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Telefonska številka <xliff:g id="NUMBER">%1$s</xliff:g> je že blokirana."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Odblokiranje telefonske številke"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Podrobnosti stika za <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz ni uspel"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Uvoz številk"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Če želite iskati po stikih, vklopite dovoljenje za stike."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Vklop"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Predlogi"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Novo"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Odpri predal za krmarjenje"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Zapri predal za krmarjenje"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Oznaka <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Oznake"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Računi"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Zgodovino si oglejte na enem mestu"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Dogodki in sporočila"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Dogodki"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Sporočila"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Predlogi"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Naj bodo stiki vedno pregledni in priročni"</string>
+    <string name="undo" msgid="1425165101664071422">"Razveljavi"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Pokliči: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Pokliči domov"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Pokliči mobilni telefon"</string>
+    <string name="call_work" msgid="5328785911463744028">"Pokliči v službo"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Pokliči službeni faks"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Pokliči domači faks"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Pokliči pozivnik"</string>
+    <string name="call_other" msgid="8563753966926932052">"Pokliči"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Pokliči številko za povratni klic"</string>
+    <string name="call_car" msgid="3280537320306436445">"Pokliči telefon v avtu"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Pokliči glavno telefonsko številko podjetja"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Pokliči številko ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Pokliči glavno telefonsko številko"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Pokliči faks"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Pokliči radijski telefon"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Pokliči telefaks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Pokliči številko TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Pokliči službeni mobilni telefon"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Pokliči službeni pozivnik"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Pokliči: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Pokliči telefon MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Pokliči)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Pošlji SMS za: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Pošlji SMS domov"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Pošlji SMS na mobilni telefon"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Pošlji SMS na službeni telefon"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Pošlji SMS na službeni faks"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Pošlji SMS na domači faks"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Pošlji SMS na pozivnik"</string>
+    <string name="sms_other" msgid="806127844607642331">"Pošlji SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Pošlji SMS na številko za povratni klic"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Pošlji SMS na telefon v avtu"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Pošlji SMS na glavno telefonsko številko podjetja"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Pošlji SMS na številko ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Pošlji SMS na glavno telefonsko številko"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Pošlji SMS na faks"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Pošlji SMS na radijski telefon"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Pošlji SMS na telefaks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Pošlji SMS na telefonsko številko TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Pošlji SMS na službeni mobilni telefon"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Pošlji SMS na službeni pozivnik"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Pošlji SMS <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Pošlji SMS na telefon MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Pošlji sporočilo)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Opravi videoklic"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Želite izbrisati seznam pog. stikov?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Izbrisali boste seznam pogostih stikov v aplikacijah Stiki in Telefon, zato bodo e-poštne aplikacije začele shranjevati pogoste naslovnike od začetka."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Brisanje seznama pogostih stikov …"</string>
+    <string name="status_available" msgid="5586870015822828392">"Dosegljiv"</string>
+    <string name="status_away" msgid="1838861100379804730">"Odsoten"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Zaseden"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Drugo"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Imenik"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Delovni imenik"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Vsi stiki"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Hitri stik za <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Ni imena)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Pogosti stiki"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Vsi stiki s telefonskimi številkami"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Stiki za delovni profil"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Prikaz posodobitev"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Naprava"</string>
+    <string name="account_sim" msgid="6519016427905087952">"Kartica SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Ime"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Vzdevek"</string>
+    <string name="name_given" msgid="4280790853455320619">"Ime"</string>
+    <string name="name_family" msgid="7466985689626017037">"Priimek"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Naziv"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Drugo ime"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Naziv (za imenom)"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Ime – fonetično"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Ime – fonetično"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Drugo ime – fonetično"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Priimek – fonetično"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-pošta"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Naslov"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Neposredno sporočanje"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizacija"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Odnos"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Posebni datum"</string>
+    <string name="sms" msgid="1756857139634224222">"SMS"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Naslov"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Podjetje"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Naslov"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Opombe"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Po meri"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Spletno mesto"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Oznake"</string>
+    <string name="email_home" msgid="8573740658148184279">"Pošlji e-pošto domov"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Pošlji e-pošto na mobilni telefon"</string>
+    <string name="email_work" msgid="2807430017302722689">"Pošlji e-pošto na službeni naslov"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-pošta"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Pošlji sporočilo za: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-pošta"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Ulica"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Mesto"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Država/regija"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Poštna številka"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Država"</string>
+    <string name="map_home" msgid="1243547733423343982">"Prikaži domači naslov"</string>
+    <string name="map_work" msgid="1360474076921878088">"Prikaži službeni naslov"</string>
+    <string name="map_other" msgid="3817820803587012641">"Prikaži naslov"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Prikaži naslov za: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Klepet s storitvijo AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Klepet s storitvijo Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Klepet s storitvijo Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Klepet s storitvijo Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Klepet s storitvijo QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Klepet s storitvijo Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Klepet s storitvijo ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Klepet s storitvijo Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Klepet"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"brisanje"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Pokaži več imenskih polj"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Strni imenska polja"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Pokaži več fonetičnih imenskih polj"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Strni fonetična imenska polja"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Razširi"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Strni"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Razširjeno"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Strnjeno"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Vsi stiki"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Z zvezdico"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Prilagodi"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Stik"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Vsi drugi stiki"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Vsi stiki"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Odstrani skupino za sinhroniziranje"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Dodaj skupino za sinhroniziranje"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Več skupin ..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Če skupino »<xliff:g id="GROUP">%s</xliff:g>« odstranite iz sinhronizacije, boste iz sinhronizacije odstranili tudi vse nerazvrščene stike."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Shranjevanje možnosti prikaza..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Prilagojen pogled"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Shranjevanje uvoženih stikov v račun:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Kartica SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"Kartica SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d stik</item>
+      <item quantity="two">%1$d stika</item>
+      <item quantity="few">%1$d stiki</item>
+      <item quantity="other">%1$d stikov</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> stik • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="two"><xliff:g id="COUNT_2">^1</xliff:g> stika • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> stiki • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> stikov • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Datoteka .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Ničesar ni za uvoz"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Želite uvoziti stike iz datoteke vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Želite preklicati izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Želite preklicati izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Uvoza/izvoza vCard ni mogoče preklicati"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Neznana napaka."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Datoteke »<xliff:g id="FILE_NAME">%1$s</xliff:g>« ni bilo mogoče odpreti: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Funkcije za izvoz ni bilo mogoče zagnati: »<xliff:g id="EXACT_REASON">%s</xliff:g>«"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Ni stikov za izvoz."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Onemogočili ste zahtevano dovoljenje."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Pri izvozu je prišlo do napake: »<xliff:g id="EXACT_REASON">%s</xliff:g>«"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Napaka I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Ni dovolj pomnilnika. Datoteka je morda prevelika."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Ta oblika ni podprta."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je končan."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Izvoz stikov je končan."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Izvoz stikov je končan. Kliknite obvestilo, če želite dati stike v skupno rabo."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Dotaknite se, če želite dati stike v skupno rabo."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Izvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je preklican."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Izvažanje podatkov o stiku"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Podatki o stikih se izvažajo."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Informacij o zbirki podatkov ni bilo mogoče dobiti."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Ni stikov za izvoz."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Urejevalnik za vCard se ni pravilno zagnal."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Izvoz ni mogoč"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Podatki stika niso bili izvoženi.\nRazlog: »<xliff:g id="FAIL_REASON">%s</xliff:g>«"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Uvažanje <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Podatkov vCard ni bilo mogoče prebrati"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Končan uvoz dat. vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Uvoz datoteke <xliff:g id="FILENAME">%s</xliff:g> je preklican"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Dat. <xliff:g id="FILENAME">%s</xliff:g> bo kmalu uvožena."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Datoteka bo kmalu uvožena."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Zahteva za uvoz datoteke vCard je bila zavrnjena. Poskusite znova pozneje."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Stiki bodo kmalu izvoženi."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Zahteva za izvoz datoteke vCard je bila zavrnjena. Poskusite znova pozneje."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"stik"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Predpomnjenje datotek(e) vCARD v lokalno začasno shrambo. Dejanski uvoz se bo začel kmalu."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Datoteke vCard ni bilo mogoče uvoziti."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Stik prejet prek NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Predpomnjenje"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Uvažanje <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>(<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>:<xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Izvozi v datoteko .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Razvrsti glede na"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Ime – fonetično"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Vedno pokaži"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Skrij, če je prazno"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ime"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Priimek"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Oblika imena"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Najprej ime"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Najprej priimek"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Računi"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Privzeti račun za nove stike"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Moji podatki"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Nastavite svoj profil"</string>
+    <string name="setting_about" msgid="7014388749752042863">"O Stikih"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Skupna raba priljubljenih stikov"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Skupna raba vseh stikov"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Dajanje stikov v skupno rabo ni uspelo."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Izvoz stikov"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Uvoz stikov iz:"</string>
+    <string name="share_error" msgid="948429331673358107">"Tega stika ni mogoče dati v skupno rabo."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Ni stikov za skupno rabo."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Stiki, ki naj bodo prikazani"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Stiki za prikaz"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Prilagajanje pogleda"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Shrani"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Iščite med stiki"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Priljubljeno"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Uvozi"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Izvozi"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blokirane številke"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"prek <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> prek <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ustavi iskanje"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Počisti iskalno polje"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Račun"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Vedno uporabi to možnost za klice"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Klic z zapiskom"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Vnesite zapisek, ki ga želite poslati s klicem …"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"POŠLJI IN KLIČI"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Delovna različica"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Odprtokodne licence"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Podrobnosti o licenci za odprtokodno programsko opremo"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Pravilnik o zasebnosti"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Pogoji storitve"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Odprtokodne licence"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Naslova URL ni bilo mogoče odpreti."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> – označeno"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> – ni označeno"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Začni videoklic"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Izbriši"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Tri pike"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> s"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> h <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> s"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ta bližnjica je onemogočena"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Stik je bil odstranjen"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Uvozi"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Izbiranje stikov"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Na kartici SIM ni nobenega stika"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Stik že obstaja na seznamu"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">S kartice SIM je uvožen <xliff:g id="COUNT">%d</xliff:g> stik</item>
+      <item quantity="two">S kartice SIM sta uvožena <xliff:g id="COUNT">%d</xliff:g> stika</item>
+      <item quantity="few">S kartice SIM so uvoženi <xliff:g id="COUNT">%d</xliff:g> stiki</item>
+      <item quantity="other">S kartice SIM je uvoženih <xliff:g id="COUNT">%d</xliff:g> stikov</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Stikov s kartice SIM ni bilo mogoče uvoziti"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Uvoz s kartice SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Prekliči"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Samodejna sinhronizacija je izklopljena. Dotaknite se, da jo vklopite."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Opusti"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Sinhronizacija računa je izklopljena. Dotaknite se, da jo vklopite."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Želite vklopiti samodejno sinhronizacijo?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Spremembe, ki jih izvedete v Google Stikih ter tudi vseh aplikacijah in računih, bodo sinhronizirane med spletom in vašimi napravami."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Vklopi"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Ni povezave"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"Kart. SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Pokaži več"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Uvoz kartice SIM je končan"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Uvoz ni uspel"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Stikov s kartic SIM ni bilo mogoče uvoziti"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Uvažanje kartice SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
deleted file mode 100644
index 0a23415..0000000
--- a/res/values-sq-rAL/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktet"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontaktet"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Shiko kontaktin"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Modifiko kontaktin"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Kontaktet"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Kontakti"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Telefonatë e drejtpërdrejtë"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mesazh i drejtpërdrejtë"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Zgjidh një shkurtore të kontaktit"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Zgjidh një numër për ta telefonuar"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Zgjidh një numër për t\'i dërguar mesazh"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Shto te kontakti"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Zgjidh një kontakt"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Krijo një kontakt të ri"</string>
-    <string name="starredList" msgid="4817256136413959463">"Me yll"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Të shpeshtat"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Të preferuarat"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Detajet e kontaktit"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Redakto kontaktin"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Krijo një kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Redakto grupin"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Krijo një grup"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Informacion rreth"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Përditësimet"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Kërko për kontakte"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Shiko kontaktin"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Shto te të preferuarat"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Hiq nga të preferuarat"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"U hoq nga të preferuarat"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"U shtua te të preferuarat"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Redakto"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"Fshi"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Ndrysho fotografinë"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Vendose në ekranin bazë"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Telefono kontaktin"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Dërgo mesazh me tekst te kontakti"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Anulo lidhjen"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Redakto"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Fshi"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Shto një kontakt"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Shto një grup"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Të shkëputet ky kontakt në shumë kontakte të ndara?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Shkëput"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Dëshiron t\'i ruash ndryshimet që ke bërë tashmë dhe ta shkëputësh këtë kontakt në shumë kontakte të ndara?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Ruaj dhe shkëput"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"Dëshiron t\'i ruash ndryshimet që ke bërë tashmë dhe t\'i lidhësh me kontaktin e zgjedhur?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Ruaj dhe lidh"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Lidh"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Ruaj"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Lidh kontaktet"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Zgjidh kontaktin që dëshiron të lidhësh me <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Shfaq të gjitha kontaktet"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Kontaktet e sugjeruara"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Të gjitha kontaktet"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktet u lidhën"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Kontaktet u fshinë</item>
-      <item quantity="one">Kontakti u fshi</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Vendos zilen e preferuar"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Gjithë telefonatat te posta zanore"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontaktet nga llogaritë e tua vetëm për lexim nuk mund të fshihen, por mund të mos shfaqen."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Fshih"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakti që do të fshihet ka detaje nga shumë llogari. Detajet nga llogaritë vetëm për lexim nuk do të shfaqen, por nuk do të fshihen."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Të duhen të paktën dy kontakte të zgjedhura për të kryer një lidhje."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Të lidhen kontaktet e zgjedhura?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Lidh"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Të fshihet ky kontakt?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Të fshihen kontaktet e zgjedhura?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontaktet nga llogaritë e tua vetëm për lexim nuk mund të fshihen, por mund të mos shfaqen."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontaktet që do të fshihen kanë detaje nga shumë llogari. Detajet nga llogaritë vetëm për lexim nuk do të shfaqen, por nuk do të fshihen."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Fshirja e këtij kontakti do të fshijë detajet nga shumë llogari."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Të fshihet ky kontakt?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Fshi"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Hiq dorë nga ndryshimet"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakti nuk ekziston."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakti u shtua tek Ekrani bazë."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> u shtua tek Ekrani bazë."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Krijo një kontakt të ri"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Krijo një kontakt të ri"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organizata"</item>
-    <item msgid="7196592230748086755">"Shënim."</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Nuk ka fotografi të përdorshme në tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Nuk ka fotografi të përdorshme në telefon."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografia e kontaktit"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Emri i personalizuar i etiketës"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Dërgoji telefonatat drejtpërdrejt te posta zanore"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Hiqe fotografinë"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Nuk ka asnjë kontakt"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Nuk ka asnjë grup."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Për të krijuar grupe të duhet një llogari."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Nuk ka persona në këtë grup."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Për të shtuar disa anëtarë, redakto grupin."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Po ruan kontaktin…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakti u ruajt"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktet u shkëputën"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Ndryshimet e kontaktit nuk mund të ruheshin."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Nuk mund të shkëpusë lidhjen me kontaktin."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kontakti nuk mund të lidhej."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Gabim gjatë ruajtjes së kontaktit."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Ndryshimet e fotografisë së kontaktit nuk mund të ruheshin."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grupi u ruajt."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Ndryshimet e grupit nuk mund të ruheshin."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakte me numra telefoni</item>
-      <item quantity="one">1 kontakt me numër telefoni</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Nuk ka kontakte me numra telefoni"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">U gjetën <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">U gjet 1</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nuk ka asnjë kontakt"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">U gjetën <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="one">U gjet 1</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Të gjitha"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Të preferuarat"</string>
-    <string name="callBack" msgid="5498224409038809224">"Telefono"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Telefono përsëri"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Ktheji telefonatën"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Të shtohet \"<xliff:g id="EMAIL">%s</xliff:g>\" te kontaktet?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"fotografia e kontaktit"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> nga gjithsej <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakte"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Emrat e kontakteve të tua"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Nuk u gjet asnjë aplikacion për të menaxhuar këtë veprim"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliko për t\'u kthyer tek ekrani i mëparshëm"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Shto një numër telefoni"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"Shto një mail"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Nuk u gjet asnjë aplikacion për të menaxhuar këtë veprim"</string>
-    <string name="menu_share" msgid="943789700636542260">"Shpërnda"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Shto te kontaktet"</string>
-    <string name="share_via" msgid="563121028023030093">"Shpërnda kontaktin nëpërmjet"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Krijo një grup nën llogari"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Biseda me zë"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Biseda me video"</string>
-    <string name="connections" msgid="8098440723172028350">"Lidhjet"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Shto një lidhje"</string>
-    <string name="recent" msgid="2659189233141493004">"Të fundit"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Përditësimet së fundi"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"Llogari <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Nuk mund të redaktohet nga ky aplikacion."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Nuk mund të redaktohet në këtë pajisje."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Bëj një fotografi"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Bëj një fotografi të re"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Zgjidh një fotografi"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Zgjidh një fotografi të re"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Lista e kontakteve po përditësohet."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Po kërkon..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Shfaq të zgjedhurat"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Shfaqi të gjithë"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Zgjidhi të gjitha"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Hiq zgjedhjen nga të gjitha"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Shto të re"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Shto një organizatë"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Emri i grupit"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Ndërro"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Fotografia parësore"</string>
-    <string name="description_star" msgid="2605854427360036550">"i preferuar"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Redakto kontaktin"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Lidhe kontaktin aktual me kontaktin e zgjedhur?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Të kalohet te redaktimi i kontaktit të zgjedhur? Informacionet që fute deri tani do të kopjohen."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopjo te \"Kontaktet e mia\""</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Shto te \"Kontaktet e mia\""</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Direktoria <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"I personalizuar"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Cilësimet"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Cilësimet"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Ndihmë dhe komente"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Opsionet e paraqitjes"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Numri i telefonit"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Shto te kontaktet"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Shto te kontakti"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Mbyll"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Përfshi vitin"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakti"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Po ngarkon..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Krijo një kontakt të ri"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Shto llogari"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importo kontaktet"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Krijo një grup të ri"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Krijo një grup të ri"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupe</item>
-      <item quantity="one">1 grup</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Të fshihet grupi \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontaktet nuk do të fshihen.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> persona nga <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person nga <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> persona</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Shkruaj emrin e kontaktit para se ta lidhësh me një tjetër."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Kopjo në kujtesën e fragmenteve"</string>
-    <string name="set_default" msgid="4417505153468300351">"Vendos të parazgjedhurën"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Pastro të paracaktuarin"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Teksti u kopjua"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Të hiqet dorë nga ndryshimet?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Hiq"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Konfiguro profilin tim"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Shkruaj emrin e personit"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Emri i grupit"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Profili im lokal"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Profili im i <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Po shfaq të gjitha kontaktet"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktet funksionojnë më mirë me një llogari të Google.\n\n• Qasje nga çdo shfletues uebi.\n• Rezervim kontaktesh në mënyrë të sigurt."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Mbaji kontaktet e tua të sigurta edhe nëse të humbet telefoni. Sinkronizoji me një shërbim në linjë."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Shto një llogari"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Kontakti yt i ri nuk do të rezervohet. Të shtohet një llogari që i rezervon kontaktet në linjë?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Kontaktet e reja do të ruhen në <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Zgjidh një llogari të parazgjedhur për kontaktet e reja:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Shto një kontakt të ri"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Redakto"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Mbaje në nivel lokal"</string>
-    <string name="add_account" msgid="8201790677994503186">"Shto një llogari"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Shto një llogari të re"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Eksporto skedarët e bazës së të dhënave"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"shto një kontakt të ri"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Shiko më shumë"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Shiko më pak"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Shikoji të gjitha"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Të fundit"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Informacion rreth"</string>
-    <string name="send_message" msgid="8938418965550543196">"Dërgo mesazh"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Po krijon një kopje personale..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Dje"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Nesër"</string>
-    <string name="today" msgid="8041090779381781781">"Sot"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Sot në <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Nesër në <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Ngjarje e patitulluar)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"Cakto"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Organizata"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Pseudonimi"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Shënim"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Uebsajti"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Ngjarje"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Lidhja"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Llogaria"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Emri"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"Mail-i"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Telefoni"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotografia"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kliko për ta zgjeruar redaktorin e kontaktit."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kliko për ta palosur redaktorin e kontaktit."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"drejtime për te vendndodhja"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms-ja e fundit. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliko për t\'u përgjigjur"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"hyrëse"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"dalëse"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"të humbura"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"telefonata e fundit. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. kliko për të ri-telefonuar"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Ti: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Shërbimi \"Hangouts\" funksionon më mirë kur fut identifikuesin e personit në fushën e mail-it ose në fushën e telefonit."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Fusha të tjera"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Ndrysho fotografinë"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Dështoi në hapjen e redaktorit"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Po ruhet në"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Po ruhet aktualisht në <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Trokit dy herë për të zgjedhur një llogari tjetër."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Kontakte të lidhura (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Kontakt i lidhur</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> kontakte të lidhura"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LIDH KONTAKTET"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANULO"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> dublikata të mundshme</item>
-      <item quantity="one">1 dublikatë e mundshme</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakte të lidhura</item>
-      <item quantity="one">1 kontakt i lidhur</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ky kontakt"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Dublikatat e mundshme"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Këto kontakte mund të jenë i njëjti person. Mund t\'i lidhësh së bashku si një kontakt të vetëm."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Kontaktet e lidhura"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Nga llogaritë e tua"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Bëj një fotografi"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Të gjitha fotografitë"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Zgjidh fotografinë"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Nga <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Fshi <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Fshi <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Nuk është shënuar fotografia nga <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Është shënuar fotografia nga <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Nuk është zgjedhur fotografi nga llogari e panjohur"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Është zgjedhur fotografi nga llogari e panjohur"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Lista e kontakteve po përditësohet për të pasqyruar ndryshimin e gjuhës.\n\nQëndro në pritje..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Shto një numër"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blloko numrin"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Shto një numër ose kërko te kontaktet"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Zhblloko <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ZHBLLOKO"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blloko <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLLOKO"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> u bllokua"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> u zhbllokua"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> është i pavlefshëm."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bllokimi i telefonatave është përkohësisht joaktiv"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Bllokimi i telefonatave është çaktivizuar sepse kontaktove me shërbimet e urgjencës nga ky telefon brenda 48 orëve të fundit. Ai do të riaktivizohet automatikisht pas skadimit të periudhës prej 48 orë."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importo"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Shiko numrat"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Shto një numër"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bllokimi i thirrjeve është çaktivizuar për 48 orë"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Është e çaktivizuar për shkak se është kryer një telefonatë urgjence."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ZHBËJ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> është i bllokuar tashmë."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zhblloko numrin"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Detajet e kontaktit për <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importimi dështoi"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importo numrat"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Për të kërkuar kontaktet, aktivizo lejet e Kontakteve"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktivizo"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
new file mode 100644
index 0000000..a7a6334
--- /dev/null
+++ b/res/values-sq/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktet"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Kontaktet"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Shto një kontakt"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Kontakti"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Telefonatë e drejtpërdrejtë"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Mesazh i drejtpërdrejtë"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Zgjidh një kontakt"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Shto te kontakti"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Zgjidh një kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Zgjidh"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Krijo një kontakt të ri"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Kërko për kontakte"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Shto te të preferuarat"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Hiq nga të preferuarat"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"U hoq nga të preferuarat"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"U shtua te të preferuarat"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Redakto"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"Fshi"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Ndrysho fotografinë"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Krijo një shkurtore"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Anulo lidhjen"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Hiq kontaktet"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Riemërto etiketën"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Fshi etiketën"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Shto kontakt"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Zgjidh kontaktet"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Shto kontakte"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Hiq nga etiketa"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Krijo një etiketë"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Të shkëputet ky kontakt në shumë kontakte të ndara?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Shkëput"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Dëshiron t\'i ruash ndryshimet që ke bërë tashmë dhe ta shkëputësh këtë kontakt në shumë kontakte të ndara?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Ruaj dhe shkëput"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"Dëshiron t\'i ruash ndryshimet që ke bërë tashmë dhe t\'i lidhësh me kontaktin e zgjedhur?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Ruaj dhe lidh"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Po lidhet"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Po shkëputet"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Lidh"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Shiko kontaktet e lidhura"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Ruaj"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Lidh kontaktet"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Zgjidh kontaktin që dëshiron të lidhësh me <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Kontaktet e sugjeruara"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Të gjitha kontaktet"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> u lidh"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktet u lidhën"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> u fshi"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> dhe <xliff:g id="NAME_1">%2$s</xliff:g> u fshinë"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… u fshinë"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Kontaktet u fshinë</item>
+      <item quantity="one">Kontakti u fshi</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakte</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakte · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Nga Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Nga <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Vendos zilen e preferuar"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Drejto te posta zanore"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Anulo drejtimin te posta zanore"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Ky kontakt është vetëm për lexim. Ai nuk mund të fshihet, por mund ta fshehësh."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Fshih kontaktin"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Llogaritë vetëm për lexim në këtë kontakt do të jenë të fshehura, por nuk do të fshihen."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Të fshihet ky kontakt?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Të fshihen kontaktet e zgjedhura?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontaktet nga llogaritë e tua vetëm për lexim nuk mund të fshihen, por mund të mos shfaqen."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"Kontaktet që do të fshihen kanë detaje nga shumë llogari. Detajet nga llogaritë vetëm për lexim nuk do të shfaqen, por nuk do të fshihen."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Fshirja e këtij kontakti do të fshijë detajet nga shumë llogari."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Të fshihet ky kontakt?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Fshi"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakti nuk ekziston."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakti u shtua tek Ekrani bazë."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> u shtua tek Ekrani bazë."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Nuk ka fotografi në dispozicion në pajisje."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Fotografia e kontaktit"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Emri i personalizuar i etiketës"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Hiqe fotografinë"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Lista e kontakteve të tua është bosh"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Nuk ka kontakte me këtë etiketë"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Nuk ka kontakte në këtë llogari"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Lista e kontakteve të tua është bosh"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> u ruajt"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakti u ruajt"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktet u shkëputën"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Ndryshimet e kontaktit nuk mund të ruheshin"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Nuk mund të shkëpusë lidhjen me kontaktin"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontakti nuk mund të lidhej"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Gabim gjatë ruajtjes së kontaktit"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Ndryshimet e fotografisë së kontaktit nuk mund të ruheshin"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Dështoi në ngarkimin e etiketës"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiketa u fshi"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiketa u krijua"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Etiketa nuk krijohet"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiketa u përditësua"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Hequr nga etiketa"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"U shtua në emërtim"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Nuk mund të ruhen ndryshimet e etiketës"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ky emërtim ekziston tashmë"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Disa kontakte nuk kanë mail-e."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Disa kontakte nuk kanë numra telefoni."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Dërgo mail"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Dërgo mesazh"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Zgjidh kontaktet"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Dërgo"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nuk ka asnjë kontakt"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Të shtohet \"<xliff:g id="EMAIL">%s</xliff:g>\" te kontaktet?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Emrat e kontakteve të tua"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Kliko për t\'u kthyer tek ekrani i mëparshëm"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Shto një numër telefoni"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"Shto një mail"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Nuk u gjet asnjë aplikacion për të menaxhuar këtë veprim"</string>
+    <string name="menu_share" msgid="943789700636542260">"Shpërnda"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Shto te kontaktet"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Shto"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Shpërnda kontaktet nëpërmjet</item>
+      <item quantity="one">Shpërnda kontaktin nëpërmjet</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Zgjidh llogarinë"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Krijo etiketë"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Riemërto etiketën"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etiketo emrin"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Emri i etiketës"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Biseda me zë"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Biseda me video"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"Llogari <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Bëj një fotografi"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Bëj një fotografi të re"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Zgjidh një fotografi"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Zgjidh një fotografi të re"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Po kërkon..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Data"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiketa"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Anulo"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Prapa"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"mbyll"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Të kalohet te redaktimi i kontaktit të zgjedhur? Informacionet që fute deri tani do të kopjohen."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Direktoria <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Cilësimet"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Cilësimet"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Ndihmë dhe komente"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Numri i telefonit"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Shto te kontaktet"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Mbyll"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Përfshi vitin"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Shto llogari"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importo"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Krijo të re..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Të fshihet grupi \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Kontaktet nuk do të fshihen.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Shkruaj emrin e kontaktit para se ta lidhësh me një tjetër."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Kopjo në kujtesën e fragmenteve"</string>
+    <string name="set_default" msgid="4417505153468300351">"Vendos të parazgjedhurën"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Pastro të paracaktuarin"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Teksti u kopjua"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Të injorohen ndryshimet?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Hiq"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Anulo"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Të flaken personalizimet?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Kërko kontaktet"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Hiq kontaktet"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Profili im lokal"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Profili im i <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Nevojitet një minutë për të shtuar një llogari që mban kopje rezervë të kontakteve në Google."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Kontaktet e reja do të ruhen në <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Zgjidh një llogari të parazgjedhur për kontaktet e reja:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Krijo një kontakt të ri"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Redakto"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Vetëm shiko"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Zgjidh një kontakt për ta redaktuar"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Kontaktet e lidhura"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Shto"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Shkëput"</string>
+    <string name="add_account" msgid="8201790677994503186">"Shto një llogari"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Shto një llogari të re"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Eksporto skedarët e bazës së të dhënave"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Krijo një kontakt të ri"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Shiko më shumë"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Shiko më pak"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Të fundit"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Informacion rreth"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Po krijon një kopje personale..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Nesër"</string>
+    <string name="today" msgid="8041090779381781781">"Sot"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Sot në <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Nesër në <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Ngjarje e patitulluar)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Cakto"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Organizata"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Pseudonimi"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Shënim"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Uebsajti"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Ngjarje"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Lidhja"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Emri"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"Mail-i"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Telefoni"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"drejtime për te vendndodhja"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms-ja e fundit. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliko për t\'u përgjigjur"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"hyrëse"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"dalëse"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"të humbura"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"telefonata e fundit. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. kliko për të ri-telefonuar"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Ti: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Fusha të tjera"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Ndrysho fotografinë e kontaktit"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Shto një fotografi të kontaktit"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Fotografia e kontaktit"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Dështoi në hapjen e redaktorit."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Po ruhet te"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Informacionet e kontaktit nga <xliff:g id="ACCOUNT">%s</xliff:g> nuk mund të redaktohen"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LIDH KONTAKTET"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ANULO"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ky kontakt"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Dublikatat e mundshme"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Këto kontakte mund të jenë i njëjti person. Mund t\'i lidhësh së bashku si një kontakt të vetëm."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Fshi <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Fshi <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Sugjerime"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"E re"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Hap sirtarin e navigimit"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Mbyll sirtarin e navigimit"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiketa <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Emërtimet"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Llogaritë"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Shiko historinë tuaj së bashku"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Ngjarjet dhe mesazhet"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Ngjarjet"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mesazhet"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Sugjerime"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Mbaji kontaktet të organizuara dhe të dobishme"</string>
+    <string name="undo" msgid="1425165101664071422">"Zhbëj"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Telefono <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Telefono numrin e shtëpisë"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Telefono numrin celular"</string>
+    <string name="call_work" msgid="5328785911463744028">"Telefono numrin e punës"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Telefono faksin e punës"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Telefono faksin e shtëpisë"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Telefoni numrin e biperit"</string>
+    <string name="call_other" msgid="8563753966926932052">"Telefono"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Telefono numrin e kthimit të telefonatave"</string>
+    <string name="call_car" msgid="3280537320306436445">"Telefono numrin e makinës"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Telefono numrin kryesor të kompanisë"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Telefono numrin ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Telefono numrin kryesor"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Telefono numrin e faksit"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Telefono numrin e radios"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Telefono numrin e telefaksit"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Telefono numrin e TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Telefono numrin celular të punës"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Telefono numrin e biperit të punës"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Telefono <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Telefono numrin MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Telefono)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Dërgo mesazh me tekst te <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Dërgo mesazh te numri i shtëpisë"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Dërgo mesazh te numri celular"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Dërgo mesazh te numri i punës"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Dërgo mesazh te faksi i punës"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Dërgo mesazh te faksi i shtëpisë"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Dërgo mesazh te biperi"</string>
+    <string name="sms_other" msgid="806127844607642331">"Tekst"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Dërgo mesazh te numri i kthimit të telefonatave"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Dërgo mesazh te numri i makinës"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Dërgo mesazh te numri kryesor i kompanisë"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Dërgo mesazh te numri ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Dërgo mesazh te numri kryesor"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Dërgo mesazh te faksi"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Dërgo mesazh te numri i radios"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Dërgo mesazh te numri i telefaksit"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Dërgo mesazh te numri TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Dërgo mesazh te numri i celularit"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Dërgo mesazh te numri i biperit"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Dërgo mesazh te <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Dërgo mesazh te numri i MMS-së"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Mesazh)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Bëj një telefonatë me video"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Të pastrohen kontaktet e shpeshta?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Do ta pastrosh listën e kontakteve të shpeshta në aplikacionet \"Kontaktet\" dhe \"Telefoni\" dhe do t\'i detyrosh aplikacionet e mail-it të mësojnë preferencat e tua të adresimit nga e para."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Po pastron kontaktet e shpeshta…"</string>
+    <string name="status_available" msgid="5586870015822828392">"I gatshëm"</string>
+    <string name="status_away" msgid="1838861100379804730">"I larguar"</string>
+    <string name="status_busy" msgid="9147992455450257136">"I zënë"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Tjetër"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Direktoria"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Direktoria e punës"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Të gjitha kontaktet"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Kontakti i shpejtë për <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Pa emër)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Të kontaktuara shpesh"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Të gjitha kontaktet me numra telefoni"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontaktet e profilit të punës"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Shiko përditësimet"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Pajisja"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Emri"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Pseudonimi"</string>
+    <string name="name_given" msgid="4280790853455320619">"Emri"</string>
+    <string name="name_family" msgid="7466985689626017037">"Mbiemri"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Parashtesa e emrit"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Emri i dytë"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Prapashtesa e emrit"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Emri fonetik"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Emri fonetik"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Emri i dytë fonetik"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Mbiemri fonetik"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Mail-i"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adresa"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Mesazh i çastit"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organizata"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Marrëdhënia"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Data e veçantë"</string>
+    <string name="sms" msgid="1756857139634224222">"Mesazhi me tekst"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adresa"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Kompania"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titulli"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Shënimet"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"E personalizuar"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Faqja e internetit"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Emërtimet"</string>
+    <string name="email_home" msgid="8573740658148184279">"Dërgoji mail shtëpisë"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Dërgoji mail celularit"</string>
+    <string name="email_work" msgid="2807430017302722689">"Dërgoji mail punës"</string>
+    <string name="email_other" msgid="3454004077967657109">"Mail-i"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Mail <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Mail-i"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Rruga"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Qyteti"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Shteti"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Kodi ZIP"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Shteti"</string>
+    <string name="map_home" msgid="1243547733423343982">"Shiko adresën e shtëpisë"</string>
+    <string name="map_work" msgid="1360474076921878088">"Shiko adresën e punës"</string>
+    <string name="map_other" msgid="3817820803587012641">"Shiko adresën"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Shiko adresën <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Bisedo me AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Bisedo me Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Bisedo me Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Bisedo me Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Bisedo me QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Bisedo me \"Bisedo me Google\""</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Bisedo me ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Bisedo me Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Bisedë"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"fshi"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Shfaq më shumë fusha të emrit"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Palos fushat e emrit"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Shfaq më shumë fusha të emrit fonetik"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Palos fushat fonetike të emrit"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Zgjero"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Palos"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"U zgjerua"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"U palos"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Të gjitha kontaktet"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Me yll"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Personalizo"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakti"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Gjithë kontaktet e tjera"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Të gjitha kontaktet"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Hiq grupin e sinkronizimit"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Shto një grup sinkronizimi"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Më shumë grupe…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Heqja e \"<xliff:g id="GROUP">%s</xliff:g>\" nga sinkronizimi gjithashtu heq kontaktet e pagrupuara nga sinkronizimi."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Po ruan opsionet e paraqitjes…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Pamje e personalizuar"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Ruaji kontaktet e importuara në:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Karta SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kontakte</item>
+      <item quantity="one">1 kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakte • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"skedari .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Nuk ka asgjë për të importuar"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Të importohen kontaktet nga vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Të anulohet importimi i <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Të anulohet eksportimi i <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Importi/eksporti i vCard nuk u anulua"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Gabim i panjohur."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Nuk mund të hapej \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Eksportuesi nuk mund të nisej: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Nuk ka asnjë kontakt që mund të eksportohet."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Ke çaktivizuar një leje e cila është të detyrueshme."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Ndodhi një gabim gjatë eksportimit: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Gabim I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Nuk ka memorie të mjaftueshme. Skedari mund të jetë shumë i madh."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formati nuk mbështetet."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Eksportimi i <xliff:g id="FILENAME">%s</xliff:g> përfundoi."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Eksportimi i kontakteve përfundoi."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Eksportimi i kontakteve përfundoi, kliko njoftimin për të ndarë kontaktet."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Trokit për të ndarë kontaktet."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Eksportimi i <xliff:g id="FILENAME">%s</xliff:g> u anulua."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Po eksporton të dhënat e kontaktit"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Të dhënat e kontaktit po eksportohen."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Informacionet e bazës së të dhënave nuk mund të merreshin."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Nuk ka kontakte që mund të eksportohen."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Kompozitori i vCard nuk u nis si duhet."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Nuk u eksportuan"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Të dhënat e kontaktit nuk u eksportuan.\nArsyeja: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Po importon <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Të dhënat e vCard nuk mund të lexoheshin"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Importimi i <xliff:g id="FILENAME">%s</xliff:g> të vCard përfundoi"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importimi i <xliff:g id="FILENAME">%s</xliff:g> u anulua"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> do të importohet së shpejti."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Skedari do të importohet së shpejti."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Kërkesa e importit të vCard u refuzua. Provo përsëri më vonë."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontaktet do të eksportohen së shpejti."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Kërkesa e eksportimit të vCard u refuzua. Provo përsëri më vonë."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakti"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Po ruan vCard në hapësirën ruajtëse lokale të përkohshme. Importimi aktual do të nisë së shpejti."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard nuk mund të eksportohej."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kontakt nëpërmjet NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Po ruan memorien e përkohshme"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Po importon <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Eksporto në skedar .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Rendit sipas"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Emri fonetik"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Shfaq gjithnjë"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Fshihe nëse është bosh"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Emri"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Mbiemri"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Formati i emrit"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Emri në fillim"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Mbiemri në fillim"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Llogaritë"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Llogaria e parazgjedhur për kontaktet e reja"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Informacioni im"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Konfiguro profilin"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Rreth kontakteve"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Ndaj kontaktet e preferuara"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Ndaj të gjitha kontaktet"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Ndarja e kontakteve dështoi."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Eksporto kontaktet"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importo kontaktet nga"</string>
+    <string name="share_error" msgid="948429331673358107">"Ky kontakt nuk mund të shpërndahet"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Nuk ka kontakte për të shpërndarë"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakte për t\'u shfaqur"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakte për t\'u shfaqur"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Personalizo pamjen"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Ruaj"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Kërko kontakte"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Të preferuarat"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importo"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksporto"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Numrat e bllokuar"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"nëpërmjet <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> nëpërmjet <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ndalo kërkimin"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Pastro kërkimin"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Llogaria"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Përdore gjithmonë për telefonatat"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Telefono me shënim"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Shkruaj një shënim për ta dërguar me telefonatën…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"DËRGO DHE TELEFONO"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versioni i ndërtimit"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licenca me burim informacioni të hapur"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Detajet e licencës për softuer me burim të hapur"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Politika e privatësisë"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Kushtet e shërbimit"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licenca me burim informacioni të hapur"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Dështoi në hapjen e url-së."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> u shënua"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> nuk u shënua"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Kryej një telefonatë me video"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Fshi"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Elipsë"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sekonda"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> minuta <xliff:g id="SECONDS">%2$s</xliff:g> sekonda"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> orë <xliff:g id="MINUTES_1">%2$s</xliff:g> minuta <xliff:g id="SECONDS">%3$s</xliff:g> sekonda"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Kjo shkurtore u çaktivizua"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakti u hoq"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importo"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Zgjidh kontaktet"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"S\'ka kontakte në kartën SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakti ekziston tashmë në listën tënde"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakte të kartës SIM u importuan</item>
+      <item quantity="one">1 kontakt i kartës SIM u importua</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Importimi i kontakteve të kartës SIM dështoi"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importo nga karta SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Anulo"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Sinkronizimi automatik është joaktiv. Trokit për ta aktivizuar."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Hiqe"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Sinkronizimi i llogarisë është joaktiv. Trokit për ta aktivizuar."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Të aktivizohet sinkronizimi automatik?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Ndryshimet që bën në të gjitha aplikacionet dhe llogaritë, jo vetëm \"Kontaktet e Google\", do të përditësohen mes uebit dhe pajisjeve të tua."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Aktivizo"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Nuk ka lidhje"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Shfaq më shumë"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Importimi i kartës SIM përfundoi"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Importimi dështoi"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kontaktet nga karta SIM nuk mund të importoheshin"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Karta SIM po importohet"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 71542e0..8ae1259 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Контакти"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Контакти"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Прикажи контакт"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Измени контакт"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Додај контакт"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Директно бирање"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Директна порука"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Одаберите пречицу за контакт"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Одаберите број за позив"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Одаберите број за слање порука"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Изаберите контакт"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Додајте контакту"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Изаберите контакт"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Изаберите"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Направи нови контакт"</string>
-    <string name="starredList" msgid="4817256136413959463">"Са звездицом"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Чести"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Омиљено"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Детаљи о контакту"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Измени контакт"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Направи контакт"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Измени групу"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Направи групу"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Основни подаци"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Ажурирања"</string>
     <string name="searchHint" msgid="8482945356247760701">"Претражи контакте"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Прикажи контакт"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Додај у омиљене контакте"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Уклони из омиљених контаката"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Уклоњено је из Омиљеног"</string>
@@ -49,41 +35,59 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Измени"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Избриши"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Промени слику"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Постави на Почетни екран"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Позови контакт"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Пошаљи SMS контакту"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Направи пречицу"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Раздвоји"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Измени"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Избриши"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Додај контакт"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Додај групу"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Уклони контакте"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Преименуј ознаку"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Избриши ознаку"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Додај контакт"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Изабери контакте"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Додај контакте"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Уклони из ознаке"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Направи ознаку"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Желите ли да раздвојите овај контакт у више контаката?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Раздвоји"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Желите ли да сачувате промене које сте већ обавили и раздвојите овај контакт у више контаката?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Сачувај и раздвоји"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Желите ли да сачувате промене које сте већ обавили и обједините овај контакт са изабраним контактом?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Сачувај и обједини"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Повезује се"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Опозива се веза"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Обједини"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Прикажи обједињене контакте"</string>
     <string name="menu_save" msgid="1727844363591825909">"Сачувај"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Обједините контакте"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Изаберите контакт који желите да обједините са контактом <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Прикажи све контакте"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Предложени контакти"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Сви контакти"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Контакти су повезани са <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Контакти су обједињени"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> је избрисан/а"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> и <xliff:g id="NAME_1">%2$s</xliff:g> су избрисани"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… су избрисани"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Контакти су избрисани</item>
       <item quantity="few">Контакти су избрисани</item>
       <item quantity="other">Контакти су избрисани</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> контакт</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> контакта</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> контаката</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> контакт · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> контакта · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> контаката · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Са Google-а"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Са <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Подеси мелодију звона"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Сви позиви у говорну пошту"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Контакти са налога који су само за читање не могу да се избришу, али могу да се сакрију."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Сакриј"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Контакт који сте изабрали за брисање садржи детаље са више налога. Детаљи са налога који су само за читање ће бити скривени, али не и избрисани."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Треба да изаберете најмање два контакта да бисте их објединили."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Желите ли да обједините изабране контакте?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Обједини"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Усмери на говорну пошту"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Не усмеравај на говорну пошту"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Овај контакт је само за читање. Не можете да га избришете, али можете да га сакријете."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Сакриј контакт"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Налози који су само за читање у оквиру овог контакта ће бити скривени, а не избрисани."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Желите ли да избришете овај контакт?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Желите ли да избришете изабране контакте?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Контакти са налога који су само за читање не могу да се избришу, али могу да се сакрију."</string>
@@ -91,183 +95,125 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Ако избришете овај контакт, биће избрисани детаљи са више налога."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Желите ли да избришете овај контакт?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Избриши"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Одбаци промене"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Контакт не постоји."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Контакт је додат на почетни екран."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Контакт <xliff:g id="NAME">%s</xliff:g> је додат на почетни екран."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Направите нови контакт"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Направи нови контакт"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Организација"</item>
-    <item msgid="7196592230748086755">"Напомена"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Слике нису доступне на таблету."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"На телефону нема доступних слика."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"На уређају није пронађена ниједна слика."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Слика контакта"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Назив прилагођене ознаке"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Шаљи позиве директно у гласовну пошту"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Уклони фотографију"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Нема контаката"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Нема група."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Морате да имате налог да бисте могли да правите групе."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Нема људи у овој групи."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Да бисте додали неке, измените групу."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Чување контакта је у току..."</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Уклони слику"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Листа контаката је празна"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Нема контаката са овом ознаком"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Нема контаката на овом налогу"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Листа контаката је празна"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Контакт <xliff:g id="DISPLAY_NAME">%s</xliff:g> је сачуван"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Контакт је сачуван"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Контакти су раздвојени"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Није могуће сачувати измене контаката."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Раздвајање контакта на више њих није успело."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Обједињавање контаката није успело."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Дошло је до грешке при чувању контакта."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Чување измена слике контакта није успело."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Група је сачувана."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Није могуће сачувати измене група."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> контакт са бројем телефона</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> контакта са бројевима телефона</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> контаката са бројевима телефона</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Нема контаката са бројевима телефона"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one">пронађен је <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="few">пронађена су <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">пронађено је <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Чување промена контакта није успело"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Раздвајање контакта није успело"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Обједињавање контаката није успело"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Грешка при чувању контакта"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Чување промена слике контакта није успело"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Учитавање ознаке није успело"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Ознака је избрисана"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Ознака је направљена"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Прављење ознаке није успело"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Ознака је ажурирана"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Уклонили смо из ознаке"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Додато је у ознаку"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Чување промена ознаке није успело"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Та ознака већ постоји"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Неки контакти немају имејл адресу."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Неки контакти немају број телефона."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Пошаљи имејл"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Пошаљи поруку"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Изаберите контакте"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Пошаљи"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Нема контаката"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one">пронађен је <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="few">пронађена су <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">пронађено је <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Све"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Омиљено"</string>
-    <string name="callBack" msgid="5498224409038809224">"Узврати позив"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Позови поново"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Узврати позив"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Желите ли да додате имејл адресу „<xliff:g id="EMAIL">%s</xliff:g>“ у контакте?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"фотографија контакта"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"плус"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> од <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контак(а)та"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Имена контаката"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Није пронађена ниједна апликација која би могла да изврши ову радњу."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Кликните да бисте се вратили на претходни екран"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Додајте број телефона"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Додајте имејл"</string>
     <string name="missing_app" msgid="1466111003546611387">"Није пронађена ниједна апликација која би могла да обави ову радњу."</string>
     <string name="menu_share" msgid="943789700636542260">"Дели"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Додај у контакте"</string>
-    <string name="share_via" msgid="563121028023030093">"Дели контакт преко"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Прављење групе на налогу"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Додај"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Делите контакте преко</item>
+      <item quantity="few">Делите контакте преко</item>
+      <item quantity="other">Делите контакте преко</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Изаберите налог"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Направите ознаку"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Преименујте ознаку"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Име ознаке"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Име ознаке"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Аудио ћаскање"</string>
     <string name="video_chat" msgid="1872255818640336072">"Видео ћаскање"</string>
-    <string name="connections" msgid="8098440723172028350">"Везе"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Додај везу"</string>
-    <string name="recent" msgid="2659189233141493004">"Недавно"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Недавна ажурирања"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> контакт"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> налог"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Не може да се измени из ове апликације."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Не може да се мења на овом уређају."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Сними фотографију"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Направи нову фотографију"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Сликај"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Сликај нову слику"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Изабери слику"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Изаберите нову слику"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Контакт листа се ажурира."</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Изабери нову слику"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Претражује се..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Прикажи изабрано"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Прикажи све"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Изабери све"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Поништи све изборе"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Додај ново"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Додај организацију"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Датум"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Назив групе"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Промени"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Главна слика"</string>
-    <string name="description_star" msgid="2605854427360036550">"омиљено"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Измени контакт"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Желите ли да актуелни контакт обједините са изабраним контактом?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Ознака"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Откажи"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Назад"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"затворите"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Желите ли да пребаците на уређивање изабраног контакта? Биће копиране информације које сте унели до сада."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Копирај у моје контакте"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Додај у Моје контакте"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Каталог <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Прилагођено"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Подешавања"</string>
     <string name="menu_settings" msgid="377929915873428211">"Подешавања"</string>
     <string name="menu_help" msgid="1680178646764069976">"Помоћ и повратне информације"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Опције приказа"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Број телефона"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Додај у контакте"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Додајте контакту"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Затвори"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Прикажи годину"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Контакт"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Учитава се…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Направи нови контакт"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Додајте налог"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Увези контакте"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Прављење нове групе"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Направи нову групу"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> група</item>
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> групе</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> група</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Желите ли да избришете групу „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Контакти неће бити избрисани.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> особа са налога <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> особе са налога <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> особа са налога <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> особа</item>
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> особе</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> особа</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Увeзи"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Направи нову…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Желите да избришете ознаку „<xliff:g id="GROUP_LABEL">%1$s</xliff:g>“? (Контакти неће бити избрисани.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Унесите име контакта пре него што га обједините са другим контактом."</string>
     <string name="copy_text" msgid="3257145021583508761">"Копирај у прив. меморију"</string>
     <string name="set_default" msgid="4417505153468300351">"Постави на подразумевано"</string>
     <string name="clear_default" msgid="7193185801596678067">"Обриши подразумевану вредност"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Текст је копиран"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Желите ли да одбаците промене?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Одбаци"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Подеси мој профил"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Унесите име особе"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Назив групе"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Желите да одбаците промене?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Одбаци"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Откажи"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Желите да одбаците прилагођавања?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Претражите контакте"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Уклоните контакте"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Мој локални профил"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Мој <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> профил"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Приказани су сви контакти"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Контакти боље функционишу са Google налогом.\n\n• Приступајте из било ког веб-прегледача.\n• Безбедно направите резервне копије контаката."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Очувајте безбедност контаката чак и ако изгубите телефон – синхронизујте са услугом на мрежи."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Додавање налога"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Неће бити направљена резервна копија новог контакта. Желите ли да додате налог који прави резервну копију контаката онлајн?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Одвојте мало времена да бисте додали налог помоћу ког ћете направити резервну копију контаката на Google-у."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Нови контакти ће бити сачувани на налогу <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Изаберите подразумевани налог за нове контакте:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Додај нови контакт"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Измени контакт"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Задржи локално"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Нови контакт"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Измените контакт"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Само преглед"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Изаберите контакт за измену"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Обједињени контакти"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Додај"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Раздвој"</string>
     <string name="add_account" msgid="8201790677994503186">"Додај налог"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Додај нови налог"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Извези датотеке базе података"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"додавање новог контакта"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Направи нови контакт"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Прикажи више"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Прикажи мање"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Прикажи све"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Недавно"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Основни подаци"</string>
-    <string name="send_message" msgid="8938418965550543196">"Пошаљи поруку"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Прављење личне копије..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Јуче"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Прављење личне копије..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Сутра"</string>
     <string name="today" msgid="8041090779381781781">"Данас"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Данас у <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Сутра у <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Ненасловљени догађај)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Подеси"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Размена тренутних порука"</string>
@@ -277,100 +223,318 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Веб-сајт"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Догађај"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Однос"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Налог"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Име"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Имејл"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Слика"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Кликните да бисте проширили уређивач контаката."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Кликните да бисте скупили уређивач контаката."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"упутства до локације"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Недавни SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Кликните за одговор"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Недавни SMS. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Кликните за одговор"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"долазни"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"одлазни"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"пропуштени"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Недавни позив. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Кликните за повратни позив"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Недавни позив. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Кликните за повратни позив"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Ви: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts ради боље кад унесете Hangouts идентификатор особе у поље за имејл адресу или број телефона."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Још поља"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Промените слику"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Oтварање уређивача није успело."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Чува се на"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Тренутно се чува на налогу <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Додирните двапут да бисте изабрали други налог."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Обједињени контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">Обједињени контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Обједињени контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Обједињених контаката: <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Још поља"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Промените слику контакта"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Додајте слику контакта"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Слика контакта"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Oтварање уређивача није успело."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Чува се на"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Није могуће изменити контакт информације са <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ОБЈЕДИНИ КОНТАКТЕ"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ОТКАЖИ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> могућ дупликат</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> могућа дупликата</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> могућих дупликата</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> обједињен контакт</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> обједињена контакта</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> обједињених контаката</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Овај контакт"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Могући дупликати"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Изгледа да су ови контакти иста особа. Можете да их обједините у један контакт."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Обједињени контакти"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Са ваших налога"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Сними слику"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Све слике"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Изаберите слику"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Са <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Избриши <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Избриши <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Избриши <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Слика са <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> налога <xliff:g id="USER_NAME">%s </xliff:g> није означена"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Слика са <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> налога <xliff:g id="USER_NAME">%s </xliff:g> је означена"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Слика са непознатог налога није означена"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Слика са непознатог налога је означена"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Листа контаката се тренутно ажурира како би се применила промена језика.\n\nСачекајте..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Додај број"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Блокирај број"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Додајте број или претражите контакте"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Желите ли да деблокирате <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ДЕБЛОКИРАЈ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Желите ли да блокирате <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"БЛОКИРАЈ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> је блокиран"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> је деблокиран"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> је неважећи."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокирање позива је привремено искључено"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокирање позива је онемогућено зато што сте контактирали службе за помоћ у хитним случајевима са овог телефона у последњих 48 сати. Аутоматски ће бити поново омогућено када истекне период од 48 сати."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Увeзи"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Прикажи бројеве"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Додај број"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокирање позива је онемогућено на 48 сати"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Онемогућено је зато што је упућен хитан позив."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ОПОЗОВИ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> је већ блокиран."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Деблокирај број"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Детаљи о контакту за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Увоз није успео"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Увези бројеве"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Да бисте претражили контакте, укључите дозволе за Контакте."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Укључи"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Предлози"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Ново"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Отвори фиоку за навигацију"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Затвори фиоку за навигацију"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Ознака <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Ознаке"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Налози"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Прегледајте заједничку историју"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Догађаји и поруке"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Догађаји"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Поруке"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Предлози"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Нека вам контакти буду организовани и корисни"</string>
+    <string name="undo" msgid="1425165101664071422">"Опозови"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Позови <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Позови кућни телефон"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Позови мобилни телефон"</string>
+    <string name="call_work" msgid="5328785911463744028">"Позови пословни телефон"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Позови факс"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Позови кућни факс"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Позови пејџер"</string>
+    <string name="call_other" msgid="8563753966926932052">"Позови"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Позови за повратни позив"</string>
+    <string name="call_car" msgid="3280537320306436445">"Позови телефон у аутомобилу"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Позови главни телефон предузећа"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Позови ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Позови главни телефон"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Позови факс"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Позови мобилни телефон"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Позови телекс"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Позови TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Позови пословни мобилни телефон"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Позови пословни пејџер"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Позови <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Позови MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (позови)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Пошаљи SMS на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Пошаљи SMS на кућни телефон"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Пошаљи SMS на мобилни телефон"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Пошаљи SMS на пословни телефон"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Пошаљи SMS на пословни факс"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Пошаљи SMS на кућни факс"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Пошаљи SMS на пејџер"</string>
+    <string name="sms_other" msgid="806127844607642331">"Teкст"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Пошаљи SMS за повратни позив"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Пошаљи SMS на телефон у аутомобилу"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Пошаљи SMS на главни број телефона предузећа"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Пошаљи SMS на ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Пошаљи SMS на главни телефон"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Пошаљи SMS на факс"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Пошаљи SMS на мобилни телефон"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Пошаљи SMS на телекс"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Пошаљи SMS на TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Пошаљи SMS на пословни мобилни телефон"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Пошаљи SMS на пејџер"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Пошаљи SMS на <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Пошаљи SMS на MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (пошаљи SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Упутите видео позив"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Брисање често контактираних?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Обрисаћете листу често контактираних у апликацијама Контакти и Телефон, па ће имејл апликације морати из почетка да прикупе информације о адресирању."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Брисање често контактираних..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Доступан/на"</string>
+    <string name="status_away" msgid="1838861100379804730">"Одсутан/на"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Заузет/а"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Друго"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Каталог"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Каталог за Work"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Сви контакти"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Брзи контакт за корисника <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Без имена)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Често контактирани"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Сви контакти са бројевима телефона"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Контакти са профила за Work"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Прикажи ажурирања"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Уређај"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Име"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Надимак"</string>
+    <string name="name_given" msgid="4280790853455320619">"Име"</string>
+    <string name="name_family" msgid="7466985689626017037">"Презиме"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Префикс за име"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Средње слово"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Суфикс имена"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Име – фонетски"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Име – фонетски"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Средње име – фонетски"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Презиме – фонетски"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Телефон"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Имејл"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Адреса"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Размена тренутних порука"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Организација"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Однос"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Посебан дан"</string>
+    <string name="sms" msgid="1756857139634224222">"Текстуална порука"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Адреса"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Предузеће"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Наслов"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Белешке"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Прилагођено"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Веб-сајт"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Ознаке"</string>
+    <string name="email_home" msgid="8573740658148184279">"Пошаљи имејл на кућну имејл адресу"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Пошаљи имејл на број мобилног телефона"</string>
+    <string name="email_work" msgid="2807430017302722689">"Пошаљи имејл на пословни број телефона"</string>
+    <string name="email_other" msgid="3454004077967657109">"Пошаљи имејлом"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Пошаљи имејл на <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Пошаљи имејлом"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Улица"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Град"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Држава"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Поштански број"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Земља"</string>
+    <string name="map_home" msgid="1243547733423343982">"Прикажи кућну адресу"</string>
+    <string name="map_work" msgid="1360474076921878088">"Прикажи пословну адресу"</string>
+    <string name="map_other" msgid="3817820803587012641">"Прикажи адресу"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Прикажи адресу <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Започни ћаскање преко AIM-а"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Започни ћаскање преко Windows Live-а"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Започни ћаскање преко Yahoo-а"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Започни ћаскање преко Skype-а"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Започни ћаскање преко QQ-а"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Ћаскај преко Google Talk-а"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Започни ћаскање преко ICQ-а"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Започни ћаскање преко Jabber-а"</string>
+    <string name="chat" msgid="9025361898797412245">"Ћаскање"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"избриши"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Прикажите још поља за име"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Скупите поља за име"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Прикажите још поља за фонетско име"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Скупите поља за фонетско име"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Проширите"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Скупите"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Проширено је"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Скупљено је"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Сви контакти"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Са звездицом"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Прилагоди"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Контакт"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Сви други контакти"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Сви контакти"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Уклони групу за синхронизацију"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Додај групу за синхронизацију"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Још група…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Уклањањем групе „<xliff:g id="GROUP">%s</xliff:g>“ са листе за синхронизацију уклонићете и све негруписане контакте са те листе."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Чување опција приказа је у току..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Прилагођени приказ"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Сачувајте увезене контакте на:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Са SIM картице"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"Са SIM картице <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d контакт</item>
+      <item quantity="few">%1$d контакта</item>
+      <item quantity="other">%1$d контаката</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> контакт • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> контакта • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> контаката • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Из .vcf датотеке"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Нема ничега за увоз"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Желите да увезете контакте из vCard датотеке?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Желите ли да откажете увоз датотеке <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Желите ли да откажете извоз датотеке <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Није могуће отказати vCard увоз/извоз"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Непозната грешка."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Није могуће отворити датотеку „<xliff:g id="FILE_NAME">%1$s</xliff:g>“: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Није могуће покренути програм за извоз: „<xliff:g id="EXACT_REASON">%s</xliff:g>“"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Нема контаката за извоз."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Онемогућили сте обавезну дозволу."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Дошло је до грешке при извозу: „<xliff:g id="EXACT_REASON">%s</xliff:g>“"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O грешка"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Нема довољно меморије. Датотека је можда превелика."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Формат није подржан."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Извоз датотеке <xliff:g id="FILENAME">%s</xliff:g> је завршен."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Извоз контаката је завршен."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Извоз контаката је завршен. Кликните на обавештење да бисте их делили."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Додирните да бисте делили контакте."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Извоз датотеке <xliff:g id="FILENAME">%s</xliff:g> је отказан"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Извоз података о контактима је у току"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Подаци о контактима се извозе."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Није могуће преузети информације из базе података"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Нема контаката које је могуће извести."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Програм за израду vCard датотека се није исправно покренуо."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Није могуће извести"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Подаци о контактима низу извезени.\nРазлог: „<xliff:g id="FAIL_REASON">%s</xliff:g>“"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Увоз <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Није могуће читати vCard податке"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Увоз датотеке <xliff:g id="FILENAME">%s</xliff:g> је завршен"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Увоз датотеке <xliff:g id="FILENAME">%s</xliff:g> је  отказан"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Датотека <xliff:g id="FILENAME">%s</xliff:g> ће ускоро бити увезена."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Датотека ће ускоро бити увезена."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Захтев за извоз vCard датотеке је одбијен. Покушајте касније."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Контакти ће ускоро бити извезени."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Захтев за извоз vCard датотеке је одбијен. Покушајте касније."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"контакт"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Кеширање vCard датотеке у локалну привремену меморију. Увоз ће ускоро започети."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Није могуће увести vCard датотеку."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Контакт преко NFC-а"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кеширање..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Увоз <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Извези у .vcf датотеку"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Сортирај према"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Име и презиме – фонетски"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Увек приказуј"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Сакриј ако је празно"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Име"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Презиме"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Формат имена"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Прво име"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Прво презиме"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Налози"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Подразумевани налог за нове контакте"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Моје информације"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Подесите профил"</string>
+    <string name="setting_about" msgid="7014388749752042863">"О Контактима"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Дели омиљене контакте"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Дели све контакте"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Дељење контаката није успело."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Извезите контакте"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Увезите контакте"</string>
+    <string name="share_error" msgid="948429331673358107">"Овај контакт не може да се дели."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Нема контаката за дељење."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Контакти за приказ"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Контакти за приказ"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Прилагодите приказ"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Сачувај"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Претражите контакте"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Омиљено"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Увeзи"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Извези"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Блокирани бројеви"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"преко <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> преко <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"зауставите претраживање"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Брисање претраге"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Налог"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Увек користи ово за позиве"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Упути позив са белешком"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Унесите белешку коју ћете послати уз позив…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ПОШАЉИ И ПОЗОВИ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Верзија"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Лиценце отвореног кода"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Подаци о лиценци за софтвер отвореног кода"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Политика приватности"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Услови коришћења услуге"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Лиценце отвореног кода"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Отварање URL-а није успело."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Означено: <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Није означено: <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Упутите видео позив"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Избришите"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Три тачке"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> мин <xliff:g id="SECONDS">%2$s</xliff:g> сек"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> с <xliff:g id="MINUTES_1">%2$s</xliff:g> мин <xliff:g id="SECONDS">%3$s</xliff:g> сек"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ова пречица је онемогућена"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Контакт је уклоњен"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Увeзи"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Изаберите контакте"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Нема контаката на SIM картици"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Контакт је већ на листи"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">Увезен је <xliff:g id="COUNT">%d</xliff:g> контакт са SIM картице</item>
+      <item quantity="few">Увезена су <xliff:g id="COUNT">%d</xliff:g> контакта са SIM картице</item>
+      <item quantity="other">Увезено је <xliff:g id="COUNT">%d</xliff:g> контаката са SIM картице</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Увоз контаката са SIM картице није успео"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Увезите са SIM-а"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Откажите"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Аутоматска синхронизација је искључена. Додирните да бисте је укључили."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Одбаците"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Синхронизација налога је искључена. Додирните да бисте је укључили."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Желите да укључите аутоматску синхронизацију?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"На вебу и уређајима ће се редовно ажурирати промене које уносите у свим апликацијама и на свим налозима, а не само у Google контактима."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Укључи"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Веза није успостављена"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Прикажи више"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Увоз са SIM картице је завршен"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Увоз није успео"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Увоз контаката са SIM картице није успео"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Увози се са SIM-а"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index a812b3f..e55c7ef 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kontakter"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontakter"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Visa kontakt"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Redigera kontakt"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kontakter"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Lägg till kontakt"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direktval"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direktmeddelande"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Välj genväg till kontakten"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Välj ett nummer som du vill ringa"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Välj ett nummer för meddelandet"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Välj kontakt"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Lägg till kontakt"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Välj en kontakt"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Välj"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Skapa ny kontakt"</string>
-    <string name="starredList" msgid="4817256136413959463">"Stjärnmärkta"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Ofta"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Favoriter"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontaktuppgifter"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Redigera kontakt"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Skapa kontakt"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Redigera grupp"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Skapa grupp"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Om"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Uppdat."</string>
     <string name="searchHint" msgid="8482945356247760701">"Sök efter kontakter"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Visa kontakt"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Lägg till i Favoriter"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Ta bort från Favoriter"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Borttagen från favoriter"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Redigera"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Ta bort"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Ändra bild"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Placera på startskärmen"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Ring upp kontakt"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Skicka SMS till kontakt"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Skapa genväg"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Ta bort länk"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Redigera"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Ta bort"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Lägg till kontakt"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Lägg till grupp"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Ta bort kontakter"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Byt namn på etikett"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Radera etikett"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Lägg till kontakt"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Välj kontakter"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Lägg till kontakter"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Ta bort från etikett"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Skapa etikett"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Vill du ta bort länken mellan kontakterna?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Ta bort länk"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Vill du spara de ändringar som redan gjorts och ta bort länken mellan kontakterna?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Spara och ta bort länken"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Vill du spara de ändringar som redan gjorts och länka till den valda kontakten?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Spara och länka"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Länkar"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Tar bort länk"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Länka"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Visa länkade kontakter"</string>
     <string name="menu_save" msgid="1727844363591825909">"Spara"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Länka kontakter"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Välj vilken kontakt du vill länka till <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Visa alla kontakter"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Föreslagna kontakter"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Alla kontakter"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> länkad"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontakterna har länkats"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> har raderats"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> och <xliff:g id="NAME_1">%2$s</xliff:g> har raderats"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g> … raderade"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Kontakterna har tagits bort</item>
       <item quantity="one">Kontakten har tagits bort</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kontakter</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kontakter · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Från Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Från: <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Ställ in ringsignal"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Alla samtal till röstbrevlådan"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Kontakter från skrivskyddade konton kan inte tas bort. De kan dock döljas."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Dölj"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Kontakten som ska tas bort innehåller information från flera konton. Information från skrivskyddade konton kommer att döljas men inte tas bort."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Du måste markera minst två kontakter som ska länkas."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Vill du länka samman valda kontakter?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Länka"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Dirigera till röstbrevlåda"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Sluta dirigera till röstbrevl."</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Den här kontakten är skrivskyddad. Den går inte att ta bort, men går att dölja."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Dölj kontakt"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Skrivskyddade konton för den här kontakten döljs och raderas inte."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Vill du ta bort kontakten?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Vill du ta bort de valda kontakterna?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Kontakter från skrivskyddade konton kan inte tas bort. De kan dock döljas."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Om du tar bort den här kontakten tar du bort information från flera konton."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Vill du ta bort kontakten?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Ta bort"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Ta bort ändringar"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakten finns inte."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakten har lagts till på startskärmen."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> har lagts till på startskärmen."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Skapa ny kontakt"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Skapa ny kontakt"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Organisation"</item>
-    <item msgid="7196592230748086755">"Anteckning"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Det finns inga bilder på surfplattan."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Det finns inga bilder på telefonen."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Det finns inga bilder på enheten."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontaktbild"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Anpassat etikettsnamn"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Skicka samtal direkt till röstbrevlåda"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Ta bort foto"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Inga kontakter"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Inga grupper."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Om du vill skapa grupper måste du ha ett konto."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Inga personer i denna grupp."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Redigera gruppen om du vill lägga till personer."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Sparar kontakt..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Kontaktlistan är tom"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Inga kontakter med den här etiketten"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Det finns inga kontakter på det här kontot"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Kontaktlistan är tom"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> sparad"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt sparad"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Länken mellan kontakterna har tagits bort"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Det gick inte att spara ändringarna i kontakten."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Det gick inte att ta bort länken för kontakten."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Det gick inte att länka kontakten."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Det gick inte att spara kontakten."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Det gick inte att spara ändringarna av kontaktfotot."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Gruppen sparades."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Det gick inte att spara ändringarna i gruppen."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kontakter med telefonnummer</item>
-      <item quantity="one">1 kontakt med telefonnummer</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Inga kontakter med telefonnummer"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hittades</item>
-      <item quantity="one">1 hittades</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Det gick inte att spara kontaktändringarna"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Det gick inte att ta bort kontaktens länk"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Det gick inte att länka kontakten"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Det gick inte att spara kontakten"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Det gick inte att spara kontaktfotots ändringar"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Det gick inte att läsa in etiketten"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiketten raderad"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etikett skapad"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Det går inte att skapa etikett"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiketten uppdaterad"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Borttagen från etikett"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Tillagt till etikett"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Det gick inte att spara etikettändringarna"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Den etiketten finns redan"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Vissa kontakter saknar e-postadress."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Vissa kontakter saknar telefonnummer."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Skicka e-post"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Skicka meddelande"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Välj kontakter"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Skicka"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Inga kontakter"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hittades</item>
-      <item quantity="one">1 hittades</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Alla"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriter"</string>
-    <string name="callBack" msgid="5498224409038809224">"Ring upp"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Ring igen"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Ring upp"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Vill du lägga till <xliff:g id="EMAIL">%s</xliff:g> i Kontakter?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kontaktbild"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> av <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kontakter"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Dina kontakters namn"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Ingen app som kan hantera åtgärden hittades."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Klicka om du vill återvända till föregående skärm"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Lägg till telefonnummer"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Lägg till e-post"</string>
     <string name="missing_app" msgid="1466111003546611387">"Ingen app som kan hantera åtgärden hittades"</string>
     <string name="menu_share" msgid="943789700636542260">"Dela"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Lägg till i Kontakter"</string>
-    <string name="share_via" msgid="563121028023030093">"Dela kontakt via"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Skapa grupp under konto"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Lägg till"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Dela kontakter med</item>
+      <item quantity="one">Dela kontakt med</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Välj konto"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Skapa etikett"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Byt namn på etikett"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etikettnamn"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Etikettnamn"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Röstchatt"</string>
     <string name="video_chat" msgid="1872255818640336072">"Videochatt"</string>
-    <string name="connections" msgid="8098440723172028350">"Anslutningar"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Lägg till anslutning"</string>
-    <string name="recent" msgid="2659189233141493004">"Senaste"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Nya uppdateringar"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>-kontakt"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>-konto"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Kan inte redigeras från den här appen."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Kan inte redigeras i den här enheten."</string>
     <string name="take_photo" msgid="7496128293167402354">"Ta en bild"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Ta ny bild"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Välj foto"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Välj bild"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Välj ett nytt foto"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontaktlistan uppdateras."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Söker …"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Visa markerade"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Visa alla"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Markera alla"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Avmarkera alla"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Lägg till ny"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Lägg till organisation"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Gruppnamn"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Ändra"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Primärt foto"</string>
-    <string name="description_star" msgid="2605854427360036550">"favorit"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Redigera kontakt"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Vill du länka den aktuella kontakten till den markerade kontakten?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etikett"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Avbryt"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Tillbaka"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"stäng"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Vill du fortsätta att redigera den markerade kontakten? Information som du har angett hittills kommer att kopieras."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopiera till mina kontakter"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Lägg till i mina kontakter"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Katalog <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Anpassad"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Inställningar"</string>
     <string name="menu_settings" msgid="377929915873428211">"Inställningar"</string>
     <string name="menu_help" msgid="1680178646764069976">"Hjälp och feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Visa alternativ"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Lägg till i Kontakter"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Lägg till kontakt"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Stäng"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Inkludera år"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Läser in …"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Skapa en ny kontakt"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Lägg till ett konto"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Importera kontakter"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Skapa ny grupp"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Skapa ny grupp"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grupper</item>
-      <item quantity="one">1 grupp</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Vill du ta bort gruppen <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Kontakterna tas inte bort.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> personer från <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person från <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> personer</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> person</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Importera"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Skapa ny ..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Ta bort etiketten <xliff:g id="GROUP_LABEL">%1$s</xliff:g>? (Själva kontakterna tas inte bort.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Skriv kontaktens namn innan du länkar den till en annan."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopiera till Urklipp"</string>
     <string name="set_default" msgid="4417505153468300351">"Ange standard"</string>
     <string name="clear_default" msgid="7193185801596678067">"Rensa standardinställningar"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Texten har kopierats"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Vill du ta bort ändringarna?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Ignorera"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Skapa min profil"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Ange personens namn"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Gruppens namn"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Vill du ignorera ändringarna?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Ignorera"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Avbryt"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Vill du kassera anpassningarna?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Sök efter kontakter"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Ta bort kontakter"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Min lokala profil"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Min <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>-profil"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Visar alla kontakter"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontakter fungerar bättre med ett Google-konto.\n\n• Åtkomst från alla webbläsare.\n• Säkerhetskopiera dina kontakter på ett säkert sätt."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Skydda dina kontakter även om du förlorar mobilen. Synkronisera med en onlinetjänst."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Lägg till ett konto"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Din nya kontakt kommer inte att säkerhetskopieras. Vill du lägga till ett konto så att kontakterna säkerhetskopieras online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Ägna en minut åt att lägga till ett konto för säkerhetskopiering av dina kontakter till Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Nya kontakter sparas i <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Välj ett standardkonto för nya kontakter:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Lägg till ny kontakt"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Skapa ny kontakt"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Redigera kontakt"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Spara lokalt"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Skrivskyddat"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Välj kontakt att redigera"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Länkade kontakter"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Lägg till"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Ta bort länk"</string>
     <string name="add_account" msgid="8201790677994503186">"Lägg till ett konto"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Lägg till ett nytt konto"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Exportera databasfiler"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"lägg till ny kontakt"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Skapa ny kontakt"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Visa mer"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Visa mindre"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Visa alla"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Senaste"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Om"</string>
-    <string name="send_message" msgid="8938418965550543196">"Skicka meddelande"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Skapar en personlig kopia ..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"I går"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"En personlig kopia skapas ..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"I morgon"</string>
     <string name="today" msgid="8041090779381781781">"I dag"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"I dag kl. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"I morgon kl. <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(händelse utan titel)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Ange"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Chatt"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Webbplats"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Händelse"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Relation"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Konto"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Namn"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-post"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Bild"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Klicka om du vill expandera kontaktredigeraren."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Klicka om du vill komprimera kontaktredigeraren."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"vägbeskrivning till plats"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Klicka om du vill svara"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Klicka om du vill svara"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"inkommande"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"utgående"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"missade"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"samtal. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. Klicka om du vill ringa upp"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"samtal. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Klicka om du vill ringa upp"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Du: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts fungerar bättre när du anger personens identifierare i Hangouts i e-postfältet eller mobilfältet."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Fler fält"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Byt bild"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Det gick inte att öppna redigeringsappen."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Sparas till"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Kontakterna sparas för närvarande i <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Tryck snabbt två gånger om du vill använda ett annat konto."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Länkade kontakter (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Länkad kontakt</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> länkade kontakter"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Fler fält"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Ändra kontaktfoto"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Lägg till kontaktfoto"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontaktfoto"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Det gick inte att öppna redigeraren."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Sparas i"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Det går inte att redigera kontaktinformation från <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LÄNKA KONTAKTER"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"AVBRYT"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> möjliga dubbletter</item>
-      <item quantity="one">1 möjlig dubblett</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> länkade kontakter</item>
-      <item quantity="one">1 länkad kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Den här kontakten"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Möjlig dubblett"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Dessa kontakter avser möjligen samma person. Du kan länka samman dem till en enda kontakt."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Länkade kontakter"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Från dina konton"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Ta en bild"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Alla foton"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Välj foto"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Från <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Radera <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Radera <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Radera <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotot från <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> har inte markerats"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Fotot från <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> har markerats"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Ett foto från ett okänt konto har inte markerats"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Ett foto från ett okänt konto har markerats"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kontaktlistan uppdateras så att språkändringen visas.\n\nVänta..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Lägg till telefonnummer"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blockera nummer"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Ange nummer eller kontakt"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vill du häva blockeringen av <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"HÄV BLOCKERINGEN"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vill du blockera <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOCKERA"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> har blockerats"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Blockeringen av <xliff:g id="NUMBER">%1$s</xliff:g> har hävts"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> är inte giltigt."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blockeringen har inaktiverats tillfälligt"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Samtalsblockering har inaktiverats eftersom du ringde ett larmnummer från den här mobilen under de senaste 48 timmarna. Blockeringen aktiveras igen när 48 timmar har gått."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importera"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Visa telefonnummer"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Lägg till telefonnummer"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Samtalsblockeringen har inaktiverats i 48 timmar"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Inaktiverades därför att enheten har använts för ett nödsamtal."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ÅNGRA"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> är redan blockerat."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Häv blockeringen av numret"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Kontaktuppgifter för <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Det gick inte att importera"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importera nummer"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Aktivera behörigheter för Kontakter om du vill söka bland kontakterna."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktivera"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Förslag"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Nytt"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Öppna navigeringspanelen"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Stäng navigeringspanelen"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Etiketten <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiketter"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Konton"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Se historiken tillsammans"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Händelser och meddelanden"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Event"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Meddelanden"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Förslag"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Håll dina kontakter ordnade och användbara"</string>
+    <string name="undo" msgid="1425165101664071422">"Ångra"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Ring <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Ring hem"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Ring mobilen"</string>
+    <string name="call_work" msgid="5328785911463744028">"Ring – arbete"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Ring – arbetsfax"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Ring upp hemfax"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Ring personsökare"</string>
+    <string name="call_other" msgid="8563753966926932052">"Ring"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Ring upp återuppringningsnummer"</string>
+    <string name="call_car" msgid="3280537320306436445">"Ring bilen"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Ring företagets växel"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Ring upp ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Ring upp primärt nummer"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Samtal till fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Ring radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Ring upp telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Ring upp TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Ring upp jobbmobil"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Ring upp jobbpersonsökare"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Ring <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Samtal – MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ring)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Skicka sms till <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS – hem"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS – mobil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS – arbete"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS – arbetsfax"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS – hemfax"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS – personsökare"</string>
+    <string name="sms_other" msgid="806127844607642331">"Text"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Skicka SMS till återuppringningsnummer"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS – bil"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS – jobbväxel"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Skicka SMS till ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Skicka SMS till primärt nummer"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Text till fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS – radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Skicka SMS till telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Skicka SMS till TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Skicka SMS till jobbmobil"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Skicka SMS till jobbpersonsökare"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Skicka SMS till <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Skicka MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (skicka sms)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Ring videosamtal"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Rensa listan?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Du rensar listan över personer som du kontaktar ofta i apparna Kontakter och Telefon. E-postappar tvingas lära sig dina mottagarinställningar från början."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Listan rensas …"</string>
+    <string name="status_available" msgid="5586870015822828392">"Tillgänglig"</string>
+    <string name="status_away" msgid="1838861100379804730">"Borta"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Upptagen"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Övrigt"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Katalog"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Jobbkatalog"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Alla kontakter"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Snabbkontakt för <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Inget namn)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Ofta kontaktade"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Alla kontakter med telefonnummer"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Kontakter i jobbprofilen"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Visa uppdateringar"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Enhet"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Namn"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Smeknamn"</string>
+    <string name="name_given" msgid="4280790853455320619">"Förnamn"</string>
+    <string name="name_family" msgid="7466985689626017037">"Efternamn"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Namnprefix"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Mellannamn"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Namnsuffix"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetiskt namn"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetiskt förnamn"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetiskt mellannamn"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetiskt efternamn"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-post"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adress"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Chatt"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Organisation"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Relation"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Särskilt datum"</string>
+    <string name="sms" msgid="1756857139634224222">"Textmeddelande"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adress"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Företag"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Titel"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Anteckningar"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Anpassat"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Webbplats"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiketter"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-postadress – hem"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Skicka e-post till mobil"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-postadress – arbete"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-post"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Skicka e-post till <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-post"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Gata"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Stad"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Delstat"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Postnummer"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Land"</string>
+    <string name="map_home" msgid="1243547733423343982">"Visa hemadress"</string>
+    <string name="map_work" msgid="1360474076921878088">"Visa jobbadress"</string>
+    <string name="map_other" msgid="3817820803587012641">"Visa adress"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Visa adressen <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Chatta med AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Chatta med Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Chatta med Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Chatta med Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Chatta med QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Chatta med Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Chatta med ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Chatta med Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Chatt"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ta bort"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Visa fler namnfält"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Komprimera namnfält"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Visa fler fonetiska namnfält"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Komprimera fonetiska namnfält"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Expandera"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Komprimera"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Utökat"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Komprimerat"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Alla kontakter"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Stjärnmärkt"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Anpassa"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Alla andra kontakter"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Alla kontakter"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Ta bort synkgrupp"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Lägg till synkgrupp"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Fler grupper …"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Om du tar bort <xliff:g id="GROUP">%s</xliff:g> från synkroniseringen tas även kontakter som inte tillhör grupper bort från synkroniseringen."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Sparar visningsalternativ ..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Anpassad vy"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Spara importerade kontakter i:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-kort"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kontakter</item>
+      <item quantity="one">En kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kontakter • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf-fil"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Inget att importera"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Importera kontakter från vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Vill du avbryta importen av <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Vill du avbryta exporten av <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Det gick inte att avbryta importen/exporten av vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Okänt fel."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Det gick inte att öppna <xliff:g id="FILE_NAME">%1$s</xliff:g>: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Det gick inte att starta exportverktyget: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Det finns ingen kontakt att exportera."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Du har inaktiverat en behörighet som krävs."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Ett fel inträffade under exporten: <xliff:g id="EXACT_REASON">%s</xliff:g>."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O-fel"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Det finns inte tillräckligt med minne. Filen kan vara för stor."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Formatet stöds inte."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> har exporterats."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Kontakterna har exporterats."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontakterna har exporterats. Klicka på aviseringen om du vill dela dem."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Tryck här om du vill dela kontakterna."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Exporten av <xliff:g id="FILENAME">%s</xliff:g> avbröts."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Exporterar kontaktuppgifter"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontaktuppgifterna exporteras."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Det gick inte att hämta databasinformation."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Det finns inga kontakter att exportera."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard-kompositören initierades inte korrekt."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Kunde inte exportera"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontaktuppgifterna exporterades inte.\nOrsak: <xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Importerar <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Det gick inte att läsa vCard-data"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard-filen <xliff:g id="FILENAME">%s</xliff:g> har importerats"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Importen av <xliff:g id="FILENAME">%s</xliff:g> avbröts"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> importeras snart."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Filen kommer snart att importeras."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Begäran om vCard-import avvisades. Försök igen vid ett senare tillfälle."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontakterna exporteras snart."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Begäran om vCard-export avvisades. Försök igen vid ett senare tillfälle."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard-fil(er) cachelagras till en lokal tillfällig lagringsenhet. Den faktiska importen börjar snart."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Det gick inte att importera vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Mott. v. NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Cachelagrar ..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Importerar <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Exportera till VCF-fil"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sortera efter"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetiskt namn"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Visa alltid"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Dölj om tom"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Förnamn"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Efternamn"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Namnformat"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Förnamn först"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Efternamn först"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Konton"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Standardkonto för nya kontakter"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mina uppgifter"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Konfigurera profilen"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Om Kontakter"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Dela favoritkontakterna"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Dela alla kontakter"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Det gick inte att dela kontakterna."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Exportera kontakter"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Importera kontakter från"</string>
+    <string name="share_error" msgid="948429331673358107">"Den här kontakten kan inte delas."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Det finns inga kontakter att dela."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Kontakter som ska visas"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Kontakter som ska visas"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Anpassa vy"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Spara"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Sök efter kontakter"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Favoriter"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Importera"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Exportera"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Blockerade nummer"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"via <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> via <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"avbryt sökning"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Rensa sökning"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Konto"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Använd alltid för samtal"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Ring med anteckning"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Gör en anteckning som skickas när du ringer…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"SKICKA OCH RING"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Programversion"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Licenser, öppen källkod"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Licensinformation för programvara med öppen källkod"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Sekretesspolicy"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Användarvillkor"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Licenser, öppen källkod"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Det gick inte att öppna webbadressen."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> har markerats"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> har inte markerats"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Ring ett videosamtal"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Radera"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellips"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> min <xliff:g id="SECONDS">%2$s</xliff:g> sek"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> tim <xliff:g id="MINUTES_1">%2$s</xliff:g> min <xliff:g id="SECONDS">%3$s</xliff:g> sek"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Den här genväg är inaktiverad"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt borttagen"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Importera"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Välj kontakter"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Inga kontakter på SIM-kortet"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Kontakten finns redan på listan"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM-kontakter importerade</item>
+      <item quantity="one">En SIM-kontakt importerad</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Det gick inte att importera SIM-kontakter"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Importera från SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Avbryt"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Automatisk synkronisering har inaktiverats. Aktivera genom att trycka."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Avvisa"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Kontosynkronisering har inaktiverats. Aktivera genom att trycka."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Aktivera automatisk synkronisering?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Ändringar du gör i alla appar och konton, inte bara i Kontakter, uppdateras mellan webben och dina enheter."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Aktivera"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Ingen anslutning"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Visa fler"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Import av SIM-kort slutförd"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Det gick inte att importera"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Det gick inte att importera kontakter från SIM-kortet"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Importerar SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 4b68f97..be804c2 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -17,72 +17,74 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Anwani"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Anwani"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Angalia Anwani"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Badilisha Anwani"</string>
     <string name="contactsList" msgid="8661624236494819731">"Anwani"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Ongeza anwani"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Anwani"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Upigaji wa moja kwa moja"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Ujumbe wa moja kwa moja"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Chagua njia ya mkato ya anwani"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Chagua nambari ya kupiga"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Chagua nambari ya kutumia ujumbe"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Chagua anwani"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Ongeza kwenye anwani"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Chagua mwasiliani"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Chagua anwani"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Teua"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Ongeza anwani mpya"</string>
-    <string name="starredList" msgid="4817256136413959463">"Zenye nyota"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Mara kwa mara"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Vipendwa"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Maelezo ya anwani"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Hariri anwani"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Unda anwani"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Hariri kikundi"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Unda kikundi"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Kuhusu"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Masasisho"</string>
     <string name="searchHint" msgid="8482945356247760701">"Tafuta anwani"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Tazama anwani"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Ongeza kwa vipendwa"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Ongeza kwenye vipendwa"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Ondoa kwenye vipendwa"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Imeondolowa kwenye vipendewa"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"Imeongezwa kwenye vipendwa"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"Badilisha"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Futa"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Badilisha picha"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Weka kwenye skrini ya Mwanzo"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Mpigie"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Tuma ujumbe kwa anwani"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Unda njia ya mkato"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Tenganisha"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Badilisha"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Futa"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Ongeza Anwani"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Ongeza Kikundi"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Ondoa anwani"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Badilisha jina la lebo"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Futa lebo"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Ongeza anwani"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Chagua unaowasiliana nao"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Ongeza anwani"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Ondoa kutoka kwenye lebo"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Unda lebo"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Je, unataka kutenganisha anwani hii kuwa anwani nyingi?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Tenganisha"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Je, ungetaka kuhifadhi mabadiliko uliyoyafanya na utenganishe anwani hii kuwa anwani nyingi?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Hifadhi na Utenganishe"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Je, ungetaka kuhifadhi mabadiliko uliyofanya na uunganishe na anwani uliyochagulia?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Hifadhi na Uunganishe"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Inaunganisha"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Inatenganisha"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Unganisha"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Angalia anwani zilizounganishwa"</string>
     <string name="menu_save" msgid="1727844363591825909">"Hifadhi"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Unganisha anwani"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Chagua anwani ambayo ungependa kuunganisha nayo <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Onyesha anwani zote"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Chagua anwani ambayo ungependa kuunganisha na <xliff:g id="NAME">%s</xliff:g>:"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Anwani zilizopendekezwa"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Anwani zote"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> ameunganishwa"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Anwani zimeunganishwa"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> amefutwa"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> na <xliff:g id="NAME_1">%2$s</xliff:g> wamefutwa"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… zimefutwa"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Anwani zimefutwa</item>
       <item quantity="one">Anwani imefutwa</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other">Anwani <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="one">Anwani <xliff:g id="COUNT_0">%d</xliff:g></item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other">Anwani <xliff:g id="COUNT_2">%1$d</xliff:g> · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one">Anwani <xliff:g id="COUNT_0">%1$d</xliff:g> · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Kutoka Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Kutoka <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Weka mlio wa simu"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Simu zijibiwe kwa ujumbe-sauti"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Anwani kutoka akaunti zako za kusoma pekee haziwezi kufutwa, lakini zinaweza kufichwa."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ficha"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Anwani unayotaka kufuta ina maelezo kutoka akaunti nyingi. Maelezo kutoka akaunti za kusoma pekee yatafichwa, bali hayatafutwa."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Unahitaji kuchagua angalau anwani mbili ili uunganishe."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Je, ungependa kuunganisha anwani ulizochagua?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Unganisha"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Elekeza kwenye ujumbe wa sauti"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ondoa kwenye ujumbe wa sauti"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Anwani hii inaweza kusomwa tu. Haiwezi kufutwa, lakini unaweza kuificha."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ficha Anwani"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Akaunti zinazoweza kusomwa tu zilizo katika anwani hii zitafichwa wala hazitafutwa."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Je, ungependa kufuta anwani hii?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Ungependa kufuta anwani ulizochagua?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Anwani kutoka akaunti zako za kusoma pekee haziwezi kufutwa, lakini zinaweza kufichwa."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Kufuta anwani hii kutafuta maelezo kwenye akaunti nyingi."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Je, ungependa kufuta anwani hii?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Futa"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Usihifadhi mabadiliko"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Mwasiliani hayupo."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Anwani imeongezwa kwenye Skrini ya kwanza."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> imeongezwa kwenye Skrini ya kwanza."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Weka anwani mpya"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Ongeza anwani mpya"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Shirika"</item>
-    <item msgid="7196592230748086755">"Hati"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Hakuna picha inayopatikana kwenye kompyuta ndogo."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Hakuna picha zinazopatikana kwenye simu."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Hakuna picha inayopatikana kwenye kifaa."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Picha ya anwani"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Jina maalum la lebo"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Tuma simu moja kwa moja kwenye ujumbe wa sauti"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Ondoa picha"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Hakuna anwani"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Hakuna vikundi."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Ili kuunda vikundi unahitaji akaunti"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Hakuna watu katika kikundi hiki."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Kuongeza baadhi, hariri kikundi."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Inahifadhi anwani..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Orodha yako ya anwani haina kitu"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Hakuna anwani zilizo na lebo hii"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Hakuna anwani katika akaunti hii"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Orodha yako ya anwani haina kitu"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> amehifadhiwa"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Anwani imehifadhiwa"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Imetenganisha anwani"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Haikuweza kuhifadhi mabadiliko ya mwasiliani."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Haikuweza kutenganisha anwani."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Haikuweza kuunganisha anwani."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Kumekuwa na hitilafu ya kuhifadhi anwani."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Haikuweza kuhifadhi mabadiliko ya picha ya unayewasiliana naye."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Kikundi kimehifadhiwa."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Haikuweza kuhifadhi mabadiliko  ya kikundi."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> unaowasiliana nao wenye nambari za simu</item>
-      <item quantity="one">1 unayewasiliana naye mwenye nambari ya simu</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Hakuna anwani zilizo na nambari za simu"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> zimepatikana</item>
-      <item quantity="one">1 imepatikana</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Imeshindwa kuhifadhi mabadiliko ya maelezo ya unayewasiliana naye"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Imeshindwa kutenganisha anwani"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Imeshindwa kuunganisha anwani"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Hitilafu imetokea wakati wa kuhifadhi anwani"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Imeshindwa kuhifadhi mabadiliko ya picha ya unayewasiliana naye"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Imeshindwa kupakia lebo"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Lebo imefutwa"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Lebo imeundwa"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Imeshindwa kutengeneza lebo"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Lebo mesasishwa"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Imeondolewa kwenye lebo"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Imeongezwa kwenye lebo"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Imeshindwa kuhifadhi mabadiliko ya lebo"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Lebo hiyo tayari ipo"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Baadhi ya watu hawana anwani za barua pepe."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Baadhi ya anwani hazina nambari za simu."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Tuma barua pepe"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Tuma ujumbe"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Chagua Anwani"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Tuma"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Hakuna anwani"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> zimepatikana</item>
-      <item quantity="one">Moja imepatikana</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Zote"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Vipendwa"</string>
-    <string name="callBack" msgid="5498224409038809224">"Mpigie"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Piga simu tena"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Mpigie"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Ongeza \"<xliff:g id="EMAIL">%s</xliff:g>\" kwa anwani?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"picha ya anwani"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"jumlisha"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> ya anwani <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Majina ya anwani zako"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Hakuna programu iliyopatikana ya kushughulikia tendo hili."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Bofya ili urudi kwenye skrini iliyotangulia"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Ongeza nambari ya simu"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Ongeza anwani ya barua pepe"</string>
     <string name="missing_app" msgid="1466111003546611387">"Hakuna programu iliyopatikana ya kushughulikia tendo hili."</string>
     <string name="menu_share" msgid="943789700636542260">"Shiriki"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Ongeza kwenye anwani"</string>
-    <string name="share_via" msgid="563121028023030093">"Shiriki anwani kupitia"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Buni kikundi chini ya akaunti"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Ongeza"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Shiriki anwani kupitia</item>
+      <item quantity="one">Shiriki anwani kupitia</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Teua akaunti"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Unda lebo"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Badilisha jina la lebo"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Jina la lebo"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Jina la lebo"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Gumzo la sauti"</string>
     <string name="video_chat" msgid="1872255818640336072">"Piga gumzo la video"</string>
-    <string name="connections" msgid="8098440723172028350">"Miunganisho"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Ongeza muunganisho"</string>
-    <string name="recent" msgid="2659189233141493004">"Hivi karibuni"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Masasisho vya hivi karibuni"</string>
     <string name="account_type_format" msgid="718948015590343010">"Anwani <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Akaunti ya <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Haiwezi kuhaririwa kutoka kwa programu hii."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Haiwezi kuhaririwa kwenye kifaa hiki"</string>
     <string name="take_photo" msgid="7496128293167402354">"Piga picha"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Piga picha mpya"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Chagua picha"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Chagua picha mpya"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Orodha ya anwani inasasishwa."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Inatafuta…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Onyesha iliyochaguliwa"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Onyesha zote"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Chagua zote"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Usichague zozote"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Ongeza mpya"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Ongeza shirika"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarehe"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Jina la kikundi"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Badilisha"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Picha ya msingi"</string>
-    <string name="description_star" msgid="2605854427360036550">"kipendwa"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Hariri anwani"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Ungependa kuunganisha anwani ya sasa na anwani uliyochagua?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Lebo"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Ghairi"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Rudi nyuma"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"funga"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Ungependa kubadilisha anwani uliyochagua? Maelezo uliyoweka kufikia sasa yatanakiliwa."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Nakili kwa Anwani Zangu"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Ongeza kwa Anwani Zangu"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Saraka <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Maalum"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Mipangilio"</string>
     <string name="menu_settings" msgid="377929915873428211">"Mipangilio"</string>
     <string name="menu_help" msgid="1680178646764069976">"Usaidizi na maoni"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Onyesha machaguo"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Nambari ya simu"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Ongeza kwa anwani"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Ongeza kwa anwani"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Funga"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Jumuisha mwaka"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Anwani"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Inapakia…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Fungua akaunti mpya"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Ongeza akaunti"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Ingiza anwani"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Unda kikundi kipya"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Unda kikundi kipya"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other">Makundi <xliff:g id="COUNT">%0$d</xliff:g></item>
-      <item quantity="one">Kundi kimoja</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Futa kikundi \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Anwani zenyewe hazitafutwa.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other">Watu <xliff:g id="COUNT_2">%1$d</xliff:g> kutoka <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one">Mtu<xliff:g id="COUNT_0">%1$d</xliff:g> kutoka <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other">Watu <xliff:g id="COUNT_1">%1$d</xliff:g></item>
-      <item quantity="one">Mtu <xliff:g id="COUNT_0">%1$d</xliff:g></item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Leta"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Unda mpya…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Ungependa kufuta lebo iitwayo \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Anwani zenyewe hazitafutwa.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Andika jina ya anwani kabla ya kuiunganisha na nyingine."</string>
     <string name="copy_text" msgid="3257145021583508761">"Nakili kwenye ubao wa kunakili"</string>
     <string name="set_default" msgid="4417505153468300351">"Weka chaguo-msingi"</string>
     <string name="clear_default" msgid="7193185801596678067">"Ondoa chaguo-msingi"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Maandishi yamenakiliwa"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Tupa mabadiliko yako?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Tupa"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Unda wasifu wangu"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Charaza jina la mtu"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Jina la kikundi"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Je, unataka kutupa mabadiliko?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Tupa"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Ghairi"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Je, unataka kutupa mabadiliko uliyoyafanya kukufaa?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Tafuta anwani"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Ondoa anwani"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Wasifu wangu wa ndani."</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Wasifu wangu wa <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Inaonyesha anwani zote"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Anwani hufanya kazi vizuri zaidi ukiwa na Akaunti ya Google. \n \n • Zifikie ukitumia kivinjari chochote. \n • Hifadhi nakala za anwani zako kwa usalama."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Weka anwani za unaowasiliana nao salama hata ukipoteza simu yako: sawazisha kwa huduma iliyo mtandaoni."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Ongeza akaunti"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Anwani yako mpya haitakuwa na nakala rudufu. Je, ungependa kuongeza akaunti ambayo inahifadhi nakala rudufu ya anwani katika mtandao?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Chukua muda kidogo uongeze akaunti ya kuhifadhia nakala ya anawani zako katika Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Anwani mpya zitahifadhiwa kwenye <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Chagua akaunti ya msingi ya anwani mpya:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Ongeza anwani mpya"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Ongeza anwani mpya"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Badilisha anwani"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Weka karibu"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Kuangalia pekee"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Chagua anwani ya kubadilisha"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Anwani zilizounganishwa"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Ongeza"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Tenganisha"</string>
     <string name="add_account" msgid="8201790677994503186">"Ongeza akaunti"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Ongeza akaunti mpya"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Hamisha faili za hifadhidata"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ongeza anwani mpya"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Ongeza anwani mpya"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Angalia zaidi"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Angalia chache"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Angalia zote"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Hivi majuzi"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Kuhusu"</string>
-    <string name="send_message" msgid="8938418965550543196">"Tuma ujumbe"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Inaunda nakala binafsi..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Jana"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Inaunda nakala ya kibinafsi..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Kesho"</string>
     <string name="today" msgid="8041090779381781781">"Leo"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Leo saa <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Kesho saa <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Tukio lisilokuwa na kichwa)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Weka"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Ujumbe wa Papo Hapo"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Tovuti"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Tukio"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Uhusiano"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Akaunti"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Jina"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Barua pepe"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Simu"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Picha"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Bofya ili upanue kihariri cha anwani."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Bofya ili ukunje kihariri cha anwani."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"maelekezo ya kwenda mahali"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms ya hivi majuzi. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. bofya ili ujibu"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms ya hivi majuzi. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. bofya ili ujibu"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"zinazoingia"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"zinazotoka"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ulizokosa kupokea"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"simu ya hivi karibuni. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. bofya ili upige simu"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"simu ya hivi karibuni. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. bofya ili upige simu"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Wewe: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangout hufanya kazi vizuri zaidi unapoweka nambari ya mtu ya utambulisho wa Hangout katika sehemu ya anwani ya barua pepe au sehemu ya nambari ya simu."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Sehemu zaidi"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Badilisha picha"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Imeshindwa kufungua kihariri."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Inahifadhi kwenye"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Kwa sasa inahifadhi katika <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Gonga mara mbili ili ubadilishe akaunti."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Anwani (<xliff:g id="COUNT">%d</xliff:g>) zilizounganishwa</item>
-      <item quantity="one">Anwani iliyounganishwa</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Anwani <xliff:g id="COUNT">%d</xliff:g> zilizounganishwa"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g>(<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Sehemu zingine"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Badilisha picha ya anwani"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Ongeza picha ya anwani"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Picha ya anwani"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Imeshindwa kufungua kihariri."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Inahifadhi kwenye"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Huwezi kubadilisha maelezo ya anwani zilizo ktk <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"UNGANISHA ANWANI"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"GHAIRI"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other">Nakala <xliff:g id="COUNT">%d</xliff:g> zinazoweza kurudufishwa</item>
-      <item quantity="one">Nakala 1 inayoweza kurudufishwa</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">Anwani <xliff:g id="COUNT">%d</xliff:g> zilizounganishwa</item>
-      <item quantity="one">Anwani 1 iliyounganishwa</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Anwani hii"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Anwani zinazoweza kurudufishwa"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Anwani hizi zinaweza kuwa za mtu mmoja. Unaweza kuziunganisha zote kuwa anwani moja."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Anwani zilizounganishwa"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Kutoka akaunti zako"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Piga picha"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Picha zote"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Chagua picha"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Kutoka kwa <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Futa <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Futa <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Futa <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Picha kutoka <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> haijateuliwa"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Picha kutoka <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> imeteuliwa"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Picha kutoka akaunti isiyojulikana haijateuliwa"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Picha kutoka akaunti isiyojulikana imeteuliwa"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Orodha ya anwani inasasishwa ili kuonesha mabadiliko ya lugha.\n\nTafadhali subiri..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Ongeza nambari"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Zuia nambari"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Ongeza nambari au utafute anwani"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Ungependa kuondoa kizuizi kwenye <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ONDOA KIZUIZI"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Ungependa kuzuia <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ZUIA"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> imezuiwa"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> imeondolewa kizuizi"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> si sahihi."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Kuzuia simu kumezimwa kwa muda"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Kipengele cha kuzuia simu kimezimwa kwa sababu uliwasiliana na huduma za dharura kwenye simu hii ndani ya saa 48 zilizopita. Kipengele hiki kitawashwa kiotomatiki baada ya kipindi cha saa 48 kumalizika."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Leta"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Angalia Nambari"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Ongeza nambari"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Huduma ya kuzuia simu imezimwa kwa saa 48"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Imezimwa kwa sababu simu ya dharura imepigwa."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"TENDUA"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> tayari imezuiwa."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Ondolea nambari kizuizi"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Maelezo ya <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Imeshindwa kuingiza"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Leta nambari"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Ili utafute anwani zako, washa ruhusa za Anwani."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Washa"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Mapendekezo"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Mpya"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Fungua droo ya kusogeza"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Funga droo ya kusogeza"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Lebo ya <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Lebo"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Akaunti"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Kuangali historia yako pamoja"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Matukio na ujumbe"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Matukio"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Ujumbe"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Mapendekezo"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Weka anwani zako nadhifu na kwa njia inayokufaa"</string>
+    <string name="undo" msgid="1425165101664071422">"Tendua"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Piga <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Piga simu nyumbani"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Pigia simu ya mkononi"</string>
+    <string name="call_work" msgid="5328785911463744028">"Piga simu kazini"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Piga simu kwa pepesi ya kazini"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Piga simu kwa pepesi ya nyumbani"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Piga simu kwa peja"</string>
+    <string name="call_other" msgid="8563753966926932052">"Piga simu"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Mpigie"</string>
+    <string name="call_car" msgid="3280537320306436445">"Piga simu kwa gari"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Pigia nambari kuu ya simu ya kampuni"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Piga simu kwa ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Piga simu kuu"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Piga simu ya faksi"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Piga simu kwa redio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Piga simu kwa telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Pigia TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Piga simu kwa simu ya mkononi ya kazini"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Piga simu kwa peja"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Piga <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Piga simu kwa MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Piga)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Tuma SMS kwa <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Tuma ujumbe kwa simu ya nyumbani"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Tuma ujumbe wa maandishi kwa simu ya mkononi"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Tuma ujumbe kazini"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Tuma maandishi kwa faksi ya kazini"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Tuma ujumbe kwa pepesi ya nyumbani"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Tuma ujumbe kwa peja"</string>
+    <string name="sms_other" msgid="806127844607642331">"Matini"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Piga simu tena kwa kutumia maandishi"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Tuma ujumbe kwa gari"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Kampuni kuu ya maandishi"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Tuma ujumbe kwa ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Tuma ujumbe wa simu kuu"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Faksi ya maandishi"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Tuma ujumbe kwa redio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Tuma ujumbe kwa teleksi"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Tuma ujumbe kwa TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Tuma ujumbe kwa simu ya mkononi ya kazini"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Tuma ujumbe kwa peja ya kazini"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Tuma ujumbe kwa <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Tuma maandishi ya MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Tuma Ujumbe)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Piga Hangout ya Video"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Futa uliowasiliana nao mara kwa mara?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Utafuta orodha ya unaowasiliana nao mara kwa mara katika programu ya Anwani na ya Simu, na kulazimisha programu za barua pepe zitambue mapendeleo yako ya anwani kutoka mwanzo."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Inafuta uliowasiliana nao mara kwa mara..."</string>
+    <string name="status_available" msgid="5586870015822828392">"Nipo"</string>
+    <string name="status_away" msgid="1838861100379804730">"Mbali"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Ana shughuli"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Nyingineyo"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Saraka"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Anwani za kazi"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Anwani zote"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Mwasiliani wa haraka wa <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Hakuna jina)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Unaowasiliana nao zaidi"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Anwani zote zilizo na nambari za simu"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Anwani za watu wa kazini"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Tazama masasisho"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Kifaa"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Jina"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Jina la utani"</string>
+    <string name="name_given" msgid="4280790853455320619">"Jina la kwanza"</string>
+    <string name="name_family" msgid="7466985689626017037">"Jina la mwisho"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Herufi za kwanza za jina"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Jina la kati"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Herufi za mwisho za jina"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Jina la kifonetiki"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Anza na jina la kifonetiki"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Jina la katikati la kifonetiki"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Jina la mwisho kifonetiki"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Simu"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Barua pepe"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Anwani"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Ujumbe wa Papo Hapo"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Shirika"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Uhusiano"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Tarehe maalum"</string>
+    <string name="sms" msgid="1756857139634224222">"Ujumbe wa maandishi"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Anwani"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Kampuni"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Jina la heshima"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Hati"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Maalum"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Tovuti"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Lebo"</string>
+    <string name="email_home" msgid="8573740658148184279">"Nyumbani mwa barua pepe"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Tuma barua pepe kwa simu ya mkononi"</string>
+    <string name="email_work" msgid="2807430017302722689">"Tuma barua pepe kazini"</string>
+    <string name="email_other" msgid="3454004077967657109">"Barua pepe"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Tuma barua pepe kwa <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Barua pepe"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Barabara"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Jiji"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Jimbo"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Msimbo wa posta"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Nchi"</string>
+    <string name="map_home" msgid="1243547733423343982">"Angalia anwani ya nyumbani"</string>
+    <string name="map_work" msgid="1360474076921878088">"Angalia anwani ya kazini"</string>
+    <string name="map_other" msgid="3817820803587012641">"Tazama anwani"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Angalia anwani <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Piga gumzo kwa kutumia AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Piga gumzo kwa kutumia Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Piga gumzo kwa kutumia Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Piga gumzo kwa kutumia Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Piga gumzo kwa kutumia QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Piga gumzo kwa kutumia Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Piga gumzo kwa kutumia ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Piga gumzo kwa kutumia Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Gumzo"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"futa"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Onyesha sehemu zingine za kujaza majina"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Kunja sehemu za majina"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Onyesha sehemu zingine za kujaza majina ya kifonetiki"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Kunja sehemu za majina ya kifonetiki"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Panua"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Kunja"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Imepanuliwa"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Imekunjwa"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Anwani zote"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Zenye Nyota"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Badilisha kukufaa"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Anwani"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Anwani Zingine Zote"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Wawasiliani wote"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Ondoa kikundi cha usawazishaji"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Ongeza kikundi cha usawazishaji"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Vikundi zaidi..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Kuondoa \"<xliff:g id="GROUP">%s</xliff:g>\" \"kutoka usawazishaji pia kutaondoa anwani zisizo katika kikundi kwenye usawazishaji."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Inahifadhi chaguo za mwonyesho.."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Mwonekano maalum"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Hifadhi anwani zinazoletwa kwenye:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM kadi"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM ya <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">Anwani %1$d</item>
+      <item quantity="one">Anwani 1</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other">Anwani <xliff:g id="COUNT_2">^1</xliff:g> • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one">Anwani <xliff:g id="COUNT_0">^1</xliff:g> • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Faili ya .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Hakuna anwani za kuletwa"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Je, unataka kuleta anwani kutoka kwenye vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Ghairi kuletwa kwa <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Ghairi kuhamishwa kwa <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Haikuweza kughairi kuingiza/kuhamisha vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Hitilafu isiyojulikana."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Haikuweza kufungua \"{<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Haikuweza kuanzisha kihamishaji: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Hakuna anwani inayoweza kuhamishwa."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Umeondoa idhini inayohitajika."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Hitilafu imetokea wakati wa uhamisho: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Hitilafu ya I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Hakuna kumbukumbu ya kutosha. Faili inaweza kuwa kubwa mno."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Fomati haiauniwi"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Imemaliza kuhamisha <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Anwani zimehamishwa."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Anwani zimehamishwa; bofya arifa ili ushiriki anwani."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Gonga ili ushiriki anwani."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Kuhamisha <xliff:g id="FILENAME">%s</xliff:g> kumeghairiwa"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Inahamisha data ya anwani"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Data ya anwani inahamishwa."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Haikupata maelezo ya hifadhidata."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Hakuna anwani zinazoweza kuhamishwa."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Kitunzi cha vCard hakikuanza vizuri."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Imeshindwa kuhamisha"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Data ya mwasiliani haikuhamishwa.\nSababu: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Inaingiza <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Haikuweza kusoma data ya vKadi"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Imemaliza kuleta vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Kuingiza <xliff:g id="FILENAME">%s</xliff:g> kumeghairiwa"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> italetwa hivi karibuni."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Faili italetwa hivi karibuni."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Ombi la kuleta vCard limekataliwa. Tafadhali jaribu baadaye."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Anwani zitahamishwa baada ya muda mfupi."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Ombi la kuhamishwa kwa vCard limekataliwa. Jaribu tena baadaye."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"anwani"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Vcard Inaakibisha ndani ya hifadhi ya muda mfupi. Uhamisho halisi utaanza hivi karibuni."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Haikuweza kuingiza vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Anwani imepokewa kupitia NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Inaakibisha..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Inaingiza <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Tuma kwenye faili ya .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Panga kwa"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Jina la kifonetiki"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Onyesha kila wakati"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ficha ikiwa maelezo hayapo"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Jina la kwanza"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Jina la mwisho"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Mpangilio wa majina"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Anza na jina la kwanza"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Anza na jina la mwisho"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Akaunti"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Akaunti chaguo-msingi ya kuhifadhi anwani mpya"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Maelezo yangu"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Weka wasifu wako"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Kuhusu Anwani"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Shiriki anwani unazopenda"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Shiriki anwani zote"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Imeshindwa kushiriki anwani."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Hamisha anwani"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Leta anwani kutoka kwenye"</string>
+    <string name="share_error" msgid="948429331673358107">"Mwasiliani huyu hawezi kushirikishwa."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Hakuna anwani za kushiriki."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Anwani za kuonyesha"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Anwani za uonyesha"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Badilisha mwonekano kukufaa"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Hifadhi"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Tafuta anwani"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Vipendwa"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Leta"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Hamisha"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Nambari zilizozuiwa"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"kupitia <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> kupitia <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"acha kutafuta"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Futa utafutaji"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Akaunti"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Tumia hii kupiga simu kila wakati"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Piga simu inayoambatana na dokezo"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Andika dokezo litakaloambatana na simu utakayopiga…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"TUMA na UPIGE SIMU"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Toleo la muundo"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Leseni za programu huria"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Maelezo ya leseni za programu huria"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Sera ya faragha"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Sheria na masharti"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Leseni za programu huria"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Imeshindwa kufungua url."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> imeteuliwa"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> haijateuliwa"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Anzisha Hangout ya Video"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Futa"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Alama ya Dukuduku"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"Sekunde <xliff:g id="SECONDS">%s</xliff:g>"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"Dakika <xliff:g id="MINUTES">%1$s</xliff:g> sekunde <xliff:g id="SECONDS">%2$s</xliff:g>"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"Saa <xliff:g id="MINUTES_0">%1$s</xliff:g> dakika <xliff:g id="MINUTES_1">%2$s</xliff:g> sekunde <xliff:g id="SECONDS">%3$s</xliff:g>"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Njia hii ya mkato imezimwa"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Anwani imeondolewa"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Leta"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Chagua anwani"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Hakuna anwani zilizo kwenye SIM kadi yako."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Anwani hii tayari ipo katika orodha yako"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">Anwani <xliff:g id="COUNT">%d</xliff:g> zilizokuwa kwenye SIM zimeletwa</item>
+      <item quantity="one">Anwani 1 iliyokuwa kwenye SIM imeletwa</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Imeshindwa kuleta anwani zilizo kwenye SIM kadi"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Leta kutoka kwenye SIM kadi"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Ghairi"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Usawazishaji wa kiotomatiki umezimwa. Gonga ili uuwashe."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Ondoa"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Usawazishaji wa akaunti umezimwa. Gonga ili uuwashe."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Je, unataka kuwasha usawazishaji wa kiotomatiki?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Mabadiliko utakayofanya katika programu na akaunti zote, wala si katika Anwani tu, yatasawazishwa kwenye wavuti na kwenye vifaa vyako."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Washa"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Hakuna muunganisho"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Onyesha zingine"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Imemaliza kuleta anwani za SIM kadi"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Imeshindwa kuleta anwani"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Imeshindwa kuleta anwani kutoka kwenye SIM kadi"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Anwani zilizo kwenye SIM kadi zinaletwa"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-sw600dp-land/colors.xml b/res/values-sw600dp-land/colors.xml
deleted file mode 100644
index c5f846e..0000000
--- a/res/values-sw600dp-land/colors.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <!-- This needs to match the color of the background card, when the center card is visible. -->
-    <color name="list_item_pinned_header_color">@color/contact_all_list_background_color</color>
-</resources>
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
index 99f749c..7d9eb33 100644
--- a/res/values-sw600dp-land/dimens.xml
+++ b/res/values-sw600dp-land/dimens.xml
@@ -14,9 +14,23 @@
      limitations under the License.
 -->
 <resources>
-    <dimen name="group_editor_side_padding">64dip</dimen>
-    <dimen name="quick_contact_photo_container_height">180dip</dimen>
-    <dimen name="list_visible_scrollbar_padding">32dip</dimen>
-    <dimen name="detail_contact_photo_size">192dip</dimen>
-    <dimen name="detail_contact_photo_margin">16dip</dimen>
+    <!-- Copied from java/com/google/android/assets/launchscreens/res/values-sw600dp-land-v21/dimens.xml -->
+    <!-- Values adjusted for nav bar size due to windowDrawsSystemBarBackgrounds -->
+    <dimen name="launchscreens_product_logo_bottom">72dp</dimen>
+    <dimen name="launchscreens_google_logo_bottom">96dp</dimen>
+
+    <!-- Height for the image for empty group view-->
+    <dimen name="empty_view_image_height">180dp</dimen>
+
+    <!-- Top padding for the text for empty group view -->
+    <dimen name="empty_group_view_text_padding_top">32dp</dimen>
+
+    <!-- Gap b/w image view and top of the screen in empty main view -->
+    <dimen name="empty_home_view_image_offset">175dp</dimen>
+
+    <!-- Width for the image for contacts no account empty view -->
+    <dimen name="contacts_no_account_empty_image_width">180dp</dimen>
+
+    <!-- Margin offset b/w the image top and app bar bottom for no account empty view -->
+    <dimen name="contacts_no_account_empty_image_offset">175dp</dimen>
 </resources>
diff --git a/res/values-sw600dp-land/integers.xml b/res/values-sw600dp-land/integers.xml
index 08aab2d..732ea7e 100644
--- a/res/values-sw600dp-land/integers.xml
+++ b/res/values-sw600dp-land/integers.xml
@@ -14,15 +14,19 @@
      limitations under the License.
 -->
 <resources>
-    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
-    <integer name="contact_tile_column_count_in_favorites">5</integer>
-
-    <integer name="contact_tile_column_count">3</integer>
-
     <!-- Layout weight of space elements in PeopleActivity for favorites list and all
     contacts list-->
     <integer name="contact_list_space_layout_weight">1</integer>
     <!-- Layout weight of ListViews in PeopleActivityfor tile favorites list and all
          contacts list in PeopleActivity -->
     <integer name="contact_list_card_layout_weight">6</integer>
+
+    <!-- Top margin ratio for the image for empty group view -->
+    <integer name="empty_group_view_image_margin_divisor">8</integer>
+
+    <!-- Top margin ratio for the image for empty account view -->
+    <integer name="empty_account_view_image_margin_divisor">5</integer>
+
+    <!-- The number of characters in the snippet before we need to tokenize and ellipse. -->
+    <integer name="snippet_length_before_tokenize">20</integer>
 </resources>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index 1af9d75..a38364c 100644
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -14,47 +14,57 @@
      limitations under the License.
 -->
 <resources>
-    <dimen name="editor_padding_top">32dip</dimen>
-    <dimen name="editor_type_label_width">122dip</dimen>
-    <dimen name="editor_add_field_label_left_padding">16dip</dimen>
-    <dimen name="detail_item_vertical_margin">16dip</dimen>
-    <dimen name="detail_item_icon_margin">8dip</dimen>
-    <dimen name="shortcut_icon_size">64dip</dimen>
-    <dimen name="list_section_height">37dip</dimen>
-    <dimen name="group_detail_border_padding">16dip</dimen>
-    <dimen name="search_view_width">400dip</dimen>
-    <dimen name="contact_tile_list_padding_top">18dip</dimen>
-    <dimen name="contact_browser_list_item_text_size">18sp</dimen>
-    <dimen name="contact_browser_list_item_photo_size">50dp</dimen>
-    <dimen name="contact_browser_list_item_gap_between_image_and_text">25dp</dimen>
-    <dimen name="contact_browser_list_top_margin">18dp</dimen>
-    <!-- Contact list (vertical scroll bar comes left) -->
-    <dimen name="list_visible_scrollbar_padding">32dip</dimen>
-    <dimen name="list_header_extra_top_padding">@dimen/contact_browser_list_top_margin</dimen>
+    <!-- Copied from java/com/google/android/assets/launchscreens/res/values-sw600dp-port-v21/dimens.xml -->
+    <!-- Values adjusted for nav bar size due to windowDrawsSystemBarBackgrounds -->
+    <dimen name="launchscreens_product_logo_bottom">72dp</dimen>
+    <dimen name="launchscreens_google_logo_bottom">96dp</dimen>
 
-    <dimen name="quick_contact_photo_container_height">360dip</dimen>
-    <!-- Height of the selection indicator of a tab. -->
-    <dimen name="tab_selected_underline_height">3dp</dimen>
-    <!-- Size of text in tabs. -->
-    <dimen name="tab_text_size">16sp</dimen>
+    <dimen name="editor_type_label_width">122dip</dimen>
+    <dimen name="shortcut_icon_size">64dip</dimen>
+    <dimen name="contact_browser_list_item_text_size">18sp</dimen>
+    <dimen name="contact_browser_list_item_gap_between_image_and_text">25dp</dimen>
+    <dimen name="contact_browser_list_item_gap_between_indexer_and_image">25dp</dimen>
+    <dimen name="directory_header_extra_top_padding">0dp</dimen>
 
     <!-- Because the "join" screen has the vertical scroll bar on right,
       we cannot use @dimen/contact_browser_list_header_left_margin as is. -->
     <dimen name="join_header_left_margin">24dip</dimen>
-    <dimen name="join_header_right_margin">@dimen/list_visible_scrollbar_padding</dimen>
+    <dimen name="join_header_right_margin">32dip</dimen>
     <dimen name="join_header_top_margin">16dip</dimen>
     <dimen name="join_header_bottom_margin">16dip</dimen>
 
-    <!-- Left padding for a group member list item -->
-    <dimen name="group_member_item_left_padding">12dip</dimen>
-    <!-- Left margin for the group member list to match the built in margin in the autocomplete asset -->
-    <dimen name="group_editor_member_list_left_margin">4dip</dimen>
-    <!-- Right margin for the group member list to match the built in margin in the autocomplete asset -->
-    <dimen name="group_editor_member_list_right_margin">4dip</dimen>
-    <!-- Account title left padding -->
-    <dimen name="account_container_left_padding">16dip</dimen>
-    <!-- Left padding of the auto complete field to line hint text up with member list -->
-    <dimen name="group_editor_autocomplete_left_padding">16dip</dimen>
-    <dimen name="contact_detail_list_top_padding">8dip</dimen>
     <dimen name="frequently_contacted_title_text_size">24sp</dimen>
+
+    <!-- End margin of edit group title -->
+    <dimen name="edit_group_end_margin">80dp</dimen>
+
+    <!-- Top padding for the image for empty group view -->
+    <dimen name="empty_group_view_image_padding_top">0dp</dimen>
+
+    <!-- Top and bottom padding for the text for empty account view -->
+    <dimen name="empty_account_view_text_padding_top">32dp</dimen>
+
+    <!-- Gap b/w image view and top of the screen in empty main view -->
+    <dimen name="empty_home_view_image_offset">218dp</dimen>
+
+    <!-- Margin offset b/w the image top and app bar bottom for no account empty view -->
+    <dimen name="contacts_no_account_empty_image_offset">238dp</dimen>
+
+    <dimen name="contact_browser_list_header_left_margin">@dimen/list_visible_scrollbar_padding</dimen>
+    <dimen name="contact_browser_list_header_right_margin">24dip</dimen>
+
+    <!-- End margin of the account filter header icon -->
+    <dimen name="contact_browser_list_header_icon_right_margin">22dp</dimen>
+    <dimen name="contact_browser_list_header_icon_right_margin_alt">24dp</dimen>
+
+    <dimen name="contact_filter_list_item_padding_start">24dp</dimen>
+    <dimen name="contact_filter_left_margin">16dp</dimen>
+
+    <!-- Right margin of the floating action button -->
+    <dimen name="floating_action_button_margin_right">32dp</dimen>
+    <!-- Bottom margin of the floating action button -->
+    <dimen name="floating_action_button_margin_bottom">32dp</dimen>
+
+    <!-- Side padding within the navigation drawer -->
+    <dimen name="drawer_side_padding">24dp</dimen>
 </resources>
diff --git a/res/values-sw600dp/integers.xml b/res/values-sw600dp/integers.xml
index 19e2ec6..8226b49 100644
--- a/res/values-sw600dp/integers.xml
+++ b/res/values-sw600dp/integers.xml
@@ -1,20 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
 <resources>
-    <integer name="contact_tile_column_count">2</integer>
-    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
-    <integer name="contact_tile_column_count_in_favorites">4</integer>
+    <!-- Top margin ratio for the image for empty group view -->
+    <integer name="empty_group_view_image_margin_divisor">4</integer>
+
+    <!-- The number of characters in the snippet before we need to tokenize and ellipse. -->
+    <!-- Yikes, there is less space on a tablet!  This makes the search experience rather
+         poor. Another reason to get rid of the exist tablet layout. -->
+    <integer name="snippet_length_before_tokenize">15</integer>
 </resources>
diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml
deleted file mode 100644
index d92d3c7..0000000
--- a/res/values-sw600dp/styles.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-<resources>
-
-    <style name="ContactPickerLayout" parent="ContactPickerTheme">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">match_parent</item>
-    </style>
-
-    <style name="DetailActivityTheme" parent="@android:Theme.Dialog">
-        <item name="android:windowContentOverlay">@null</item>
-    </style>
-
-    <style name="DirectoryHeader" parent="PeopleTheme">
-        <item name="android:paddingTop">0dip</item>
-
-        <item name="android:background">@android:color/transparent</item>
-    </style>
-
-    <style name="ConfirmAddDetailViewStyle">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">wrap_content</item>
-    </style>
-
-    <style name="ConfirmAddDetailHeaderViewStyle">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">200dip</item>
-    </style>
-
-</resources>
diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml
deleted file mode 100644
index 9dfb96a..0000000
--- a/res/values-sw720dp-land/dimens.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-<resources>
-    <dimen name="group_detail_border_padding">32dip</dimen>
-    <dimen name="group_editor_side_padding">64dip</dimen>
-    <dimen name="contact_detail_list_top_padding">32dip</dimen>
-    <dimen name="contact_tile_list_padding_top">32dip</dimen>
-    <dimen name="list_visible_scrollbar_padding">48dip</dimen>
-    <dimen name="detail_contact_photo_size">256dip</dimen>
-    <!-- Right margin of the floating action button -->
-    <dimen name="floating_action_button_margin_right">32dp</dimen>
-    <dimen name="people_activity_landscape_tabs_text_size">16dp</dimen>
-</resources>
diff --git a/res/values-sw720dp-land/integers.xml b/res/values-sw720dp-land/integers.xml
index 2ebb100..a0783c2 100644
--- a/res/values-sw720dp-land/integers.xml
+++ b/res/values-sw720dp-land/integers.xml
@@ -1,20 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!--
+  Copyright (C) 2012 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
+  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
+       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.
--->
+  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.
+  -->
 <resources>
-    <integer name="contact_tile_column_count">4</integer>
-    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
-    <integer name="contact_tile_column_count_in_favorites">5</integer>
+    <!-- The number of characters in the snippet before we need to tokenize and ellipse. -->
+    <integer name="snippet_length_before_tokenize">30</integer>
 </resources>
diff --git a/res/values-sw720dp-land/styles.xml b/res/values-sw720dp-land/styles.xml
deleted file mode 100644
index 9fa3d08..0000000
--- a/res/values-sw720dp-land/styles.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-<resources>
-    <style name="GroupMembershipSizeTextAppearance" parent="@android:style/TextAppearance.Medium" />
-</resources>
diff --git a/res/values-sw720dp/colors.xml b/res/values-sw720dp/colors.xml
deleted file mode 100644
index c5f846e..0000000
--- a/res/values-sw720dp/colors.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <!-- This needs to match the color of the background card, when the center card is visible. -->
-    <color name="list_item_pinned_header_color">@color/contact_all_list_background_color</color>
-</resources>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index 3186b89..1ab7ab8 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -17,17 +17,11 @@
     <dimen name="editor_type_label_width">180dip</dimen>
     <dimen name="editor_round_button_padding_left">8dip</dimen>
     <dimen name="editor_round_button_padding_right">8dip</dimen>
-    <dimen name="group_editor_side_padding">16dip</dimen>
-    <dimen name="quick_contact_photo_container_height">360dip</dimen>
-    <dimen name="contact_picker_contact_list_min_height">650dip</dimen>
-    <dimen name="list_visible_scrollbar_padding">48dip</dimen>
 
     <!-- When QC is uncollapsed, the title has this much margin on its left and right -->
     <dimen name="quickcontact_title_initial_margin">32dp</dimen>
     <!-- When QC is uncollapsed, the title has this much margin on its bottom -->
     <dimen name="quickcontact_title_initial_bottom_margin">0dp</dimen>
-    <!-- Right margin of the floating action button -->
-    <dimen name="floating_action_button_margin_right">100dp</dimen>
 
     <dimen name="expanding_entry_card_marginStartEnd">10dp</dimen>
 
diff --git a/res/values-sw720dp/integers.xml b/res/values-sw720dp/integers.xml
index ff73c62..05c97e1 100644
--- a/res/values-sw720dp/integers.xml
+++ b/res/values-sw720dp/integers.xml
@@ -14,15 +14,13 @@
      limitations under the License.
 -->
 <resources>
-    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
-    <integer name="contact_tile_column_count_in_favorites">4</integer>
-
-    <integer name="contact_tile_column_count">2</integer>
-
     <!-- Layout weight of column space elements for favorites list, all contacts list and
          QuickContact-->
     <integer name="contact_list_space_layout_weight">11</integer>
     <!-- Layout weight of the content column for tile favorites list, all contacts list, and
          QuickContact -->
     <integer name="contact_list_card_layout_weight">81</integer>
+
+    <!-- The number of characters in the snippet before we need to tokenize and ellipse. -->
+    <integer name="snippet_length_before_tokenize">20</integer>
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
deleted file mode 100644
index df0faae..0000000
--- a/res/values-ta-rIN/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"தொடர்புகள்"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"தொடர்புகள்"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"தொடர்பைக் காட்டு"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"தொடர்பைத் திருத்து"</string>
-    <string name="contactsList" msgid="8661624236494819731">"தொடர்புகள்"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"தொடர்பு"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"நேரடி டயல்"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"நேரடி செய்தி"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"தொடர்பின் குறுக்குவழியைத் தேர்வுசெய்தல்"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"அழைப்பதற்கான எண்ணைத் தேர்வுசெய்யவும்"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"செய்தி அனுப்ப எண்ணைத் தேர்வுசெய்க"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"தொடர்பில் சேர்"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"தொடர்பைத் தேர்வுசெய்யவும்"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"புதிய தொடர்பை உருவாக்கவும்"</string>
-    <string name="starredList" msgid="4817256136413959463">"நட்சத்திரமிட்டது"</string>
-    <string name="frequentList" msgid="7154768136473953056">"அடிக்கடி"</string>
-    <string name="strequentList" msgid="5640192862059373511">"பிடித்தவை"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"தொடர்பு விவரங்கள்"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"தொடர்பைத் திருத்து"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"தொடர்பை உருவாக்கு"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"குழுவைத் திருத்து"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"குழுவை உருவாக்கு"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"அறிமுகம்"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"புதுப்பிப்புகள்"</string>
-    <string name="searchHint" msgid="8482945356247760701">"தொடர்புகளைத் தேடு"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"தொடர்பைக் காட்டு"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"பிடித்தவற்றில் சேர்"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"பிடித்தவற்றிலிருந்து அகற்று"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"விருப்பங்களிலிருந்து அகற்றப்பட்டது"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"விருப்பங்களில் சேர்க்கப்பட்டது"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"திருத்து"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"நீக்கு"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"படத்தை மாற்று"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"முகப்புத் திரையில் அமை"</string>
-    <string name="menu_call" msgid="3992595586042260618">"தொடர்பை அழை"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"தொடர்பிற்கு உரைச் செய்தியை அனுப்பு"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"தொடர்பைப் பிரி"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"திருத்து"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"நீக்கு"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"தொடர்பைச் சேர்"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"குழுவைச் சேர்"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"பல தொடர்புகளிலிருந்து இந்தத் தொடர்பை அகற்றவா?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"தொடர்பை அகற்று"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"நீங்கள் ஏற்கனவே செய்த மாற்றங்களைச் சேமித்து, பல தொடர்புகளிலிருந்து இந்தத் தொடர்பை அகற்றவா?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"சேமித்து தொடர்பை அகற்று"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"நீங்கள் ஏற்கனவே செய்த மாற்றங்களைச் சேமித்து, தேர்ந்தெடுத்த தொடர்புடன் இணைக்கவா?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"சேமித்து இணை"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"இணைப்பு"</string>
-    <string name="menu_save" msgid="1727844363591825909">"சேமி"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"தொடர்புகளை இணைத்தல்"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> உடன் இணைக்க விரும்பும் தொடர்பைத் தேர்வுசெய்க:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"எல்லா தொடர்புகளையும் காட்டு"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"பரிந்துரைக்கப்பட்ட தொடர்புகள்"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"எல்லா தொடர்புகளும்"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"தொடர்புகள் இணைக்கப்பட்டன"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">தொடர்புகள் நீக்கப்பட்டன</item>
-      <item quantity="one">தொடர்பு நீக்கப்பட்டது</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ரிங்டோனை அமை"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"எல்லா அழைப்புகளையும் குரலஞ்சலிற்கு திருப்பு"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"படிக்க மட்டுமேயான கணக்குகளிலிருந்து தொடர்புகளை நீக்க முடியாது, ஆனால் அவற்றை மறைக்கலாம்."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"மறை"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"நீக்குவதற்குத் தேர்ந்தெடுத்த தொடர்பில் பல கணக்குகளின் விவரங்கள் உள்ளன. படிக்க மட்டுமேயான கணக்குகளின் விவரங்கள் மறைக்கப்படுமே தவிர நீக்கப்படாது."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"ஒன்றிணைப்பதற்கு, குறைந்தபட்சம் இரண்டு தொடர்புகளையாவது தேர்ந்தெடுத்திருக்க வேண்டும்."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"தேர்ந்தெடுத்த தொடர்புகளை இணைக்கவா?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"இணை"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"தொடர்பை நீக்கவா?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"தேர்ந்தெடுத்த தொடர்புகளை நீக்கவா?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"படிக்க மட்டுமேயான கணக்குகளிலிருந்து தொடர்புகளை நீக்க முடியாது, ஆனால் அவற்றை மறைக்கலாம்."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"நீக்குவதற்குத் தேர்ந்தெடுத்த தொடர்புகளில் பல கணக்குகளின் விவரங்கள் உள்ளன. படிக்க மட்டுமேயான கணக்குகளின் விவரங்கள் மறைக்கப்படுமே தவிர நீக்கப்படாது."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"தொடர்பை நீக்கினால், பல கணக்குகளிலிருக்கும் விவரங்கள் நீக்கப்படும்."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"தொடர்பை நீக்கவா?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"நீக்கு"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"மாற்றங்களை நிராகரி"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"தொடர்பு இல்லை."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"தொடர்பு முகப்புத் திரையில் சேர்க்கப்பட்டது."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> என்ற தொடர்பு முகப்புத் திரையில் சேர்க்கப்பட்டது."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"புதிய தொடர்பை உருவாக்கவும்"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"புதிய தொடர்பை உருவாக்கவும்"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"நிறுவனம்"</item>
-    <item msgid="7196592230748086755">"குறிப்பு"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"டேப்லெட்டில் படங்கள் எதுவும் இல்லை."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"மொபைலில் படங்கள் எதுவும் இல்லை."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"தொடர்பு படம்"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"தனிப்பயன் லேபிள் பெயர்"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"அழைப்புகளை நேரடியாகக் குரலஞ்சலுக்கு அனுப்பு"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"படத்தை அகற்று"</string>
-    <string name="noContacts" msgid="4955659076981974652">"தொடர்புகள் இல்லை"</string>
-    <string name="noGroups" msgid="8614664663561385253">"குழுக்கள் இல்லை."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"குழுக்களை உருவாக்க கணக்கு அவசியம்."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"குழுவில் யாரும் இல்லை."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"சிலவற்றைச் சேர்க்க, குழுவைத் திருத்தவும்."</string>
-    <string name="savingContact" msgid="4075751076741924939">"தொடர்பைச் சேமிக்கிறது…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"தொடர்பு சேமிக்கப்பட்டது"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"தொடர்புகள் பிரிக்கப்பட்டன"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"தொடர்பின் மாற்றங்களைச் சேமிக்க முடியவில்லை."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"தொடர்பை அகற்ற முடியவில்லை."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"தொடர்பை இணைக்க முடியவில்லை."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"தொடர்பைச் சேமிப்பதில் பிழை."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"தொடர்பின் பட மாற்றங்களைச் சேமிக்க முடியவில்லை."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"குழு சேமிக்கப்பட்டது."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"குழு மாற்றங்களைச் சேமிக்க முடியவில்லை."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">மொபைல் எண்களுடன் <xliff:g id="COUNT">%d</xliff:g> தொடர்புகள் உள்ளன</item>
-      <item quantity="one">மொபைல் எண்ணுடன் 1 தொடர்பு உள்ளது</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"மொபைல் எண்களுடன் தொடர்புகள் இல்லை"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> கண்டறியப்பட்டன</item>
-      <item quantity="one">1 கண்டறியப்பட்டது</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"தொடர்புகள் எதுவும் இல்லை"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> கண்டறியப்பட்டன</item>
-      <item quantity="one">1 கண்டறியப்பட்டது</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"எல்லாம்"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"பிடித்தவை"</string>
-    <string name="callBack" msgid="5498224409038809224">"அழை"</string>
-    <string name="callAgain" msgid="3197312117049874778">"மீண்டும் அழை"</string>
-    <string name="returnCall" msgid="8171961914203617813">"திரும்பி அழை"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ஐத் தொடர்புகளில் சேர்க்கவா?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"தொடர்பு படம்"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"சேர்"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> தொடர்புகளில் <xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"உங்கள் தொடர்புகளின் பெயர்கள்"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"இந்தச் செயலைச் செய்வதற்கான பயன்பாடு எதுவுமில்லை."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"முந்தைய திரைக்குச் செல்ல கிளிக் செய்க"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ஃபோன் எண்ணைச் சேர்க்கவும்"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"மின்னஞ்சலைச் சேர்க்கவும்"</string>
-    <string name="missing_app" msgid="1466111003546611387">"இந்தச் செயலைச் செய்ய பயன்பாடு எதுவுமில்லை."</string>
-    <string name="menu_share" msgid="943789700636542260">"பகிர்"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"தொடர்புகளில் சேர்"</string>
-    <string name="share_via" msgid="563121028023030093">"இதன் வழியாக தொடர்பைப் பகிர்"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"கணக்கின் கீழ் குழுவை உருவாக்கவும்"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"குரல் அரட்டை"</string>
-    <string name="video_chat" msgid="1872255818640336072">"வீடியோ அரட்டை"</string>
-    <string name="connections" msgid="8098440723172028350">"இணைப்புகள்"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"இணைப்பைச் சேர்"</string>
-    <string name="recent" msgid="2659189233141493004">"சமீபத்தியவை"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"சமீபத்திய புதுப்பிப்புகள்"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> தொடர்பு"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> கணக்கு"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"இந்தப் பயன்பாட்டிலிருந்து திருத்த முடியாது."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"இந்தச் சாதனத்தில் திருத்தக்கூடியதல்ல."</string>
-    <string name="take_photo" msgid="7496128293167402354">"படமெடு"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"புதிய படத்தை எடு"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"படத்தைத் தேர்வுசெய்யவும்"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"புதிய படத்தைத் தேர்ந்தெடுக்கவும்"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"தொடர்பு பட்டியல் புதுப்பிக்கப்படுகிறது."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"தேடுகிறது..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"தேர்ந்தெடுத்தவற்றைக் காட்டு"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"அனைத்தையும் காட்டு"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"எல்லாவற்றையும் தேர்ந்தெடு"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"எல்லாவற்றையும் தேர்வுநீக்கு"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"புதியதைச் சேர்"</string>
-    <string name="add_organization" msgid="7311893231158291197">"நிறுவனத்தைச் சேர்"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"தேதி"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"குழு பெயர்"</string>
-    <string name="change_photo" msgid="8530597935483526383">"மாற்று"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"முதன்மை படம்"</string>
-    <string name="description_star" msgid="2605854427360036550">"பிடித்தது"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"தொடர்பைத் திருத்து"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"தேர்ந்தெடுத்த தொடர்புடன் தற்போதைய தொடர்பை இணைக்கவா?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"தேர்ந்தெடுத்த தொடர்பைத் திருத்துதலுக்கு மாறவா? இதுவரை உள்ளிட்ட தகவல் நகலெடுக்கப்படும்."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"எனது தொடர்புகளுக்கு நகலெடு"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"எனது தொடர்புகளில் சேர்"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"கோப்பகம் <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"தனிப்பயன்"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"அமைப்பு"</string>
-    <string name="menu_settings" msgid="377929915873428211">"அமைப்பு"</string>
-    <string name="menu_help" msgid="1680178646764069976">"உதவி &amp; கருத்துத் தெரிவி"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"திரை விருப்பங்கள்"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"மொபைல் எண்"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"தொடர்புகளில் சேர்"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"தொடர்பில் சேர்"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"மூடு"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"ஆண்டைச் சேர்"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"தொடர்பு"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"ஏற்றுகிறது..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"புதிய தொடர்பை உருவாக்கு"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"கணக்கைச் சேர்"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"தொடர்புகளை இறக்குமதி செய்"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"புதிய குழுவை உருவாக்கு"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"புதிய குழு"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> குழுக்கள்</item>
-      <item quantity="one">1 குழு</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" குழுவை நீக்கவா? (அதன் தொடர்புகள் நீக்கப்படாது.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> இலிருந்து <xliff:g id="COUNT_2">%1$d</xliff:g> பேர்</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> இலிருந்து <xliff:g id="COUNT_0">%1$d</xliff:g> நபர்</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> பேர்</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> நபர்</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"வேறொன்றுடன் இணைப்பதற்கு முன் தொடர்பின் பெயரை உள்ளிடவும்."</string>
-    <string name="copy_text" msgid="3257145021583508761">"கிளிப்போர்டுக்கு நகலெடு"</string>
-    <string name="set_default" msgid="4417505153468300351">"இயல்புநிலையாக அமை"</string>
-    <string name="clear_default" msgid="7193185801596678067">"இயல்பை அழி"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"உரை நகலெடுக்கப்பட்டது"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"மாற்றங்களை விலக்கவா?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"நிராகரி"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"எனது சுயவிவரத்தை அமை"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"பெயரை உள்ளிடவும்"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"குழுவின் பெயர்"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"எனது சுயவிவரம்"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"எனது <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> சுயவிவரம்"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"எல்லா தொடர்புகளையும் காட்டுகிறது"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Google கணக்குடன் தொடர்புகள் அம்சம் சிறந்த முறையில் வேலை செய்கிறது.\n\n• எந்த இணைய உலாவியிலிருந்தும் அணுகலாம்.\n• தொடர்புகளைப் பாதுகாப்பாகக் காப்புப்பிரதி எடுக்கலாம்."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"மொபைலை தொலைத்தாலும் தொடர்புகளைப் பாதுகாப்புடன் வைத்திருக்கலாம்: ஆன்லைன் சேவையுடன் ஒத்திசைக்கவும்."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"கணக்கைச் சேர்"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"புதிய தொடர்பை நகலெடுக்க முடியாது. தொடர்புகளை ஆன்லைனில் சேமிக்க, கணக்கைச் சேர்க்க விரும்புகிறீர்களா?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"புதிய தொடர்புகள் <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> இல் சேமிக்கப்படும்."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"புதிய தொடர்புகளுக்கான இயல்பு கணக்கைத் தேர்வுசெய்க:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"புதிய தொடர்பைச் சேர்"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"தொடர்பைத் திருத்து"</string>
-    <string name="keep_local" msgid="1258761699192993322">"ஃபோனில் சேமி"</string>
-    <string name="add_account" msgid="8201790677994503186">"கணக்கைச் சேர்"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"புதிய கணக்கைச் சேர்"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"தரவுத்தள கோப்புகளை ஏற்றுமதி செய்"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"புதிய தொடர்பைச் சேர்"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"மேலும் காட்டு"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"குறைவாகக் காட்டு"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"எல்லாம் காட்டு"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"சமீபத்தியவை"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"அறிமுகம்"</string>
-    <string name="send_message" msgid="8938418965550543196">"செய்தி அனுப்பு"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"தனிப்பட்ட நகலை உருவாக்குகிறது..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"நேற்று"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"நாளை"</string>
-    <string name="today" msgid="8041090779381781781">"இன்று"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"இன்று <xliff:g id="TIME_INTERVAL">%s</xliff:g> மணிக்கு"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"நாளை <xliff:g id="TIME_INTERVAL">%s</xliff:g> மணிக்கு"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(பெயரிடப்படாத நிகழ்வு)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"அமை"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"நிறுவனம்"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"செல்லப்பெயர்"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"குறிப்பு"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"இணையதளம்"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"நிகழ்வு"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"உறவு"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"கணக்கு"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"பெயர்"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"மின்னஞ்சல்"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ஃபோன்"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"படம்"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"தொடர்பு திருத்தியை விரிக்க, கிளிக் செய்க."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"தொடர்பு திருத்தியைச் சுருக்க, கிளிக் செய்க."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"இடத்தை நோக்கிய திசைகள்"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"சமீபத்திய sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. பதிலளிக்க, கிளிக் செய்க"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"உள்வரும் அழைப்பு"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"வெளிச்செல்லும் அழைப்பு"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"தவறிய அழைப்பு"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"சமீபத்திய அழைப்பு. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. திரும்ப அழைக்க, கிளிக் செய்க"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"நீங்கள்: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"பிறரின் Hangouts அடையாளத்தை மின்னஞ்சல் அல்லது ஃபோன் புலத்தில் உள்ளிடும் போது, Hangouts இன்னும் சிறப்பாகச் செயல்படும்."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"மேலும் புலங்கள்"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"படத்தை மாற்றவும்"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"எடிட்டரைத் திறக்க முடியவில்லை."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"இதில் சேமிக்கிறது"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"தற்போது <xliff:g id="ACCOUNT_NAME">%s</xliff:g> இல் சேமிக்கிறது. வேறொரு கணக்கைத் தேர்ந்தெடுக்க, இருமுறை தட்டவும்."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">இணைக்கப்பட்ட தொடர்புகள் (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">இணைக்கப்பட்ட தொடர்பு</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> இணைக்கப்பட்ட தொடர்புகள்"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"தொடர்புகளை இணை"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ரத்துசெய்"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> சாத்தியமுள்ள நகல்கள்</item>
-      <item quantity="one">1 சாத்தியமுள்ள நகல்</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> இணைக்கப்பட்ட தொடர்புகள்</item>
-      <item quantity="one">1 இணைக்கப்பட்ட தொடர்பு</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"இந்தத் தொடர்பு"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"சாத்தியமுள்ள நகல்கள்"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"இவை ஒரே பயனருடையதாக இருக்கக்கூடும். அவற்றை ஒரே தொடர்பில் இணைக்கலாம்."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"இணைத்த தொடர்புகள்"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"உங்கள் கணக்குகளில் இருந்து"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"படமெடு"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"எல்லா படங்களும்"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"படத்தைத் தேர்வுசெய்க"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> இலிருந்து"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>ஐ நீக்கு"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>ஐ நீக்கு"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> வழங்கிய படம் தேர்ந்தெடுக்கப்படவில்லை"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> வழங்கிய படம் தேர்ந்தெடுக்கப்பட்டது"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"அறியப்படாத கணக்கிலிருந்து படம் தேர்ந்தெடுக்கப்படவில்லை"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"அறியப்படாத கணக்கிலிருந்து படம் தேர்ந்தெடுக்கப்பட்டது"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"மொழி மாற்றத்தைக் காட்ட, தொடர்புப் பட்டியல் புதுப்பிக்கப்படுகிறது.\n\nகாத்திருக்கவும்..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"எண்ணைச் சேர்"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"எண்ணைத் தடு"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"எண்ணைச் சேர்க்கவும் அல்லது தொடர்புகளில் தேடவும்"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>ஐ அனுமதிக்கவா?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"அனுமதி"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>ஐத் தடுக்கவா?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"தடு"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> தடுக்கப்பட்டது"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> அனுமதிக்கப்பட்டது"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> தவறானது."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"அழைப்புத் தடுப்பு அம்சம் தற்காலிகமாக முடக்கப்பட்டுள்ளது"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"கடந்த 48 மணிநேரத்தில், இந்த ஃபோனிலிருந்து அவசர அழைப்பு எண்ணைத் தொடர்புகொண்டதால் அழைப்புத் தடுப்பு அம்சம் முடக்கப்பட்டுள்ளது. 48 மணிநேரம் கழித்து, இந்த அம்சம் தானாகவே மீண்டும் இயக்கப்படும்."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"இறக்கு"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"எண்களைக் காட்டு"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"எண்ணைச் சேர்"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"அழைப்புத் தடுப்பு 48 மணிநேரத்திற்கு முடக்கப்பட்டுள்ளது"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"அவசர அழைப்பு செய்திருப்பதால், அழைப்புத் தடுப்பு முடக்கப்பட்டது."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"செயல்தவிர்"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ஏற்கனவே தடுக்கப்பட்டுள்ளது."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"எண்ணை அனுமதி"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> க்கான தொடர்பு விவரங்கள்"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"இறக்குவதில் தோல்வி"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"எண்களை இறக்கு"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"இயக்கு"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
new file mode 100644
index 0000000..575208d
--- /dev/null
+++ b/res/values-ta/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"தொடர்புகள்"</string>
+    <string name="contactsList" msgid="8661624236494819731">"தொடர்புகள்"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"தொடர்பைச் சேர்"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"தொடர்பு"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"நேரடி டயல்"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"நேரடி செய்தி"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"தொடர்பைத் தேர்வுசெய்க"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"தொடர்பில் சேர்"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"தொடர்பைத் தேர்வுசெய்யவும்"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"தேர்ந்தெடுக்கவும்"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"புதிய தொடர்பை உருவாக்கவும்"</string>
+    <string name="searchHint" msgid="8482945356247760701">"தொடர்புகளைத் தேடு"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"பிடித்தவற்றில் சேர்"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"பிடித்தவற்றிலிருந்து அகற்று"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"விருப்பங்களிலிருந்து அகற்றப்பட்டது"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"விருப்பங்களில் சேர்க்கப்பட்டது"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"திருத்து"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"நீக்கு"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"படத்தை மாற்று"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"குறுக்குவழியை உருவாக்கு"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"தொடர்பைப் பிரி"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"தொடர்புகளை அகற்று"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"லேபிளின் பெயரை மாற்று"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"லேபிளை நீக்கு"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"தொடர்பைச் சேர்"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"தொடர்புகளைத் தேர்ந்தெடு"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"தொடர்புகளைச் சேர்"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"லேபிளிலிருந்து அகற்று"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"லேபிளை உருவாக்கு"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"பல தொடர்புகளிலிருந்து இந்தத் தொடர்பை அகற்றவா?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"தொடர்பை அகற்று"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"நீங்கள் ஏற்கனவே செய்த மாற்றங்களைச் சேமித்து, பல தொடர்புகளிலிருந்து இந்தத் தொடர்பை அகற்றவா?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"சேமித்து தொடர்பை அகற்று"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"நீங்கள் ஏற்கனவே செய்த மாற்றங்களைச் சேமித்து, தேர்ந்தெடுத்த தொடர்புடன் இணைக்கவா?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"சேமித்து இணை"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"இணைக்கிறது"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"இணைப்பை நீக்குகிறது"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"இணை"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"இணைத்த தொடர்புகளைக் காட்டு"</string>
+    <string name="menu_save" msgid="1727844363591825909">"சேமி"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"தொடர்புகளை இணைத்தல்"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> உடன் இணைக்க விரும்பும் தொடர்பைத் தேர்வுசெய்க:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"பரிந்துரைக்கப்படும் தொடர்புகள்"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"எல்லா தொடர்புகளும்"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> இணைக்கப்பட்டது"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"தொடர்புகள் இணைக்கப்பட்டன"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> நீக்கப்பட்டது"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> மற்றும் <xliff:g id="NAME_1">%2$s</xliff:g> நீக்கப்பட்டன"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… நீக்கப்பட்டன"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">தொடர்புகள் நீக்கப்பட்டன</item>
+      <item quantity="one">தொடர்பு நீக்கப்பட்டது</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> தொடர்புகள்</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> தொடர்பு</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> தொடர்புகள் · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> தொடர்பு · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google கணக்கிலிருந்து"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> இலிருந்து"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"ரிங்டோனை அமை"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"குரலஞ்சலுக்குப் பகிர்"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"குரலஞ்சலுக்குப் பகிராதே"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"இது படிக்க மட்டுமேயான தொடர்பாகும். இதை நீக்கலாம், அதற்குப் பதிலாக மறைக்கவும் செய்யலாம்."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"தொடர்பை மறை"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"இந்தத் தொடர்பிலுள்ள படிக்க மட்டுமேயான கணக்குகள் மறைக்கப்படும், ஆனால் நீக்கப்படாது."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"தொடர்பை நீக்கவா?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"தேர்ந்தெடுத்த தொடர்புகளை நீக்கவா?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"படிக்க மட்டுமேயான கணக்குகளிலிருந்து தொடர்புகளை நீக்க முடியாது, ஆனால் அவற்றை மறைக்கலாம்."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"நீக்குவதற்குத் தேர்ந்தெடுத்த தொடர்புகளில் பல கணக்குகளின் விவரங்கள் உள்ளன. படிக்க மட்டுமேயான கணக்குகளின் விவரங்கள் மறைக்கப்படுமே தவிர நீக்கப்படாது."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"தொடர்பை நீக்கினால், பல கணக்குகளிலிருக்கும் விவரங்கள் நீக்கப்படும்."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"தொடர்பை நீக்கவா?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"நீக்கு"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"தொடர்பு இல்லை."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"தொடர்பு முகப்புத் திரையில் சேர்க்கப்பட்டது."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> என்ற தொடர்பு முகப்புத் திரையில் சேர்க்கப்பட்டது."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"சாதனத்தில் படங்கள் எதுவுமில்லை."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"தொடர்பு படம்"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"தனிப்பயன் லேபிள் பெயர்"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"படத்தை அகற்று"</string>
+    <string name="noContacts" msgid="2228592924476426108">"தொடர்புகள் பட்டியல் காலியாக உள்ளது"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"இந்த லேபிளைக் கொண்ட தொடர்புகள் இல்லை"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"இந்தக் கணக்கில் தொடர்புகள் இல்லை"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"தொடர்புகள் பட்டியல் காலியாக உள்ளது"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> சேமிக்கப்பட்டது"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"தொடர்பு சேமிக்கப்பட்டது"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"தொடர்புகள் பிரிக்கப்பட்டன"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"தொடர்பு மாற்றங்களைச் சேமிக்க முடியவில்லை"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"தொடர்பை அகற்ற முடியவில்லை"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"தொடர்பை இணைக்க முடியவில்லை"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"தொடர்பைச் சேமிப்பதில் பிழை"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"தொடர்புப் பட மாற்றங்களைச் சேமிக்க முடியவில்லை"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"லேபிளை ஏற்ற முடியவில்லை"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"லேபிள் நீக்கப்பட்டது"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"லேபிள் உருவாக்கப்பட்டது"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"லேபிளை உருவாக்க முடியவில்லை"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"லேபிள் புதுப்பிக்கப்பட்டது"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"லேபிளிலிருந்து அகற்றப்பட்டது"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"லேபிளில் சேர்க்கப்பட்டது"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"லேபிள் மாற்றங்களைச் சேமிக்க முடியவில்லை"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"லேபிள் ஏற்கனவே உள்ளது"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"சில தொடர்புகளில் மின்னஞ்சல்கள் இல்லை."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"சில தொடர்புகளில் ஃபோன் எண்கள் இல்லை."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"மின்னஞ்சல் அனுப்பு"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"செய்தி அனுப்பு"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"தொடர்புகளைத் தேர்வுசெய்"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"அனுப்பு"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"தொடர்புகள் எதுவும் இல்லை"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" ஐத் தொடர்புகளில் சேர்க்கவா?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"உங்கள் தொடர்புகளின் பெயர்கள்"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"முந்தைய திரைக்குச் செல்ல கிளிக் செய்க"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"மொபைல் எண்ணைச் சேர்க்கவும்"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"மின்னஞ்சலைச் சேர்க்கவும்"</string>
+    <string name="missing_app" msgid="1466111003546611387">"இந்தச் செயலைச் செய்ய பயன்பாடு எதுவுமில்லை."</string>
+    <string name="menu_share" msgid="943789700636542260">"பகிர்"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"தொடர்புகளில் சேர்"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"சேர்"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">தொடர்புகளை இதில் பகிர்:</item>
+      <item quantity="one">தொடர்பை இதில் பகிர்:</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"கணக்கைத் தேர்வுசெய்க"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"லேபிளை உருவாக்கு"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"லேபிளின் பெயரை மாற்று"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"லேபிளின் பெயர்"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"லேபிளின் பெயர்"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"குரல் அரட்டை"</string>
+    <string name="video_chat" msgid="1872255818640336072">"வீடியோ அரட்டை"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> தொடர்பு"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> கணக்கு"</string>
+    <string name="take_photo" msgid="7496128293167402354">"படமெடு"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"புதிய படத்தை எடு"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"படத்தைத் தேர்வுசெய்யவும்"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"புதிய படத்தைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"தேடுகிறது..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"தேதி"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"லேபிளைச் சேர்"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"ரத்துசெய்யும் பொத்தான்"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"முந்தையதற்குச் செல்லும் பொத்தான்"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"மூடும்"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"தேர்ந்தெடுத்த தொடர்பைத் திருத்துதலுக்கு மாறவா? இதுவரை உள்ளிட்ட தகவல் நகலெடுக்கப்படும்."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"கோப்பகம் <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"அமைப்பு"</string>
+    <string name="menu_settings" msgid="377929915873428211">"அமைப்பு"</string>
+    <string name="menu_help" msgid="1680178646764069976">"உதவி &amp; கருத்து"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"மொபைல் எண்"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"தொடர்புகளில் சேர்"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"மூடு"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"ஆண்டைச் சேர்"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"கணக்கைச் சேர்"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"இறக்கு"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"புதியதை உருவாக்கு…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" லேபிளை நீக்கவா? (அதன் தொடர்புகள் நீக்கப்படாது.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"வேறொன்றுடன் இணைப்பதற்கு முன் தொடர்பின் பெயரை உள்ளிடவும்."</string>
+    <string name="copy_text" msgid="3257145021583508761">"கிளிப்போர்டுக்கு நகலெடு"</string>
+    <string name="set_default" msgid="4417505153468300351">"இயல்புநிலையாக அமை"</string>
+    <string name="clear_default" msgid="7193185801596678067">"இயல்பை அழி"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"உரை நகலெடுக்கப்பட்டது"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"மாற்றங்களை நிராகரிக்கவா?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"நிராகரி"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"ரத்துசெய்"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"தனிப்பயனாக்கங்களை நிராகரிக்கவா?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"தொடர்புகளில் தேடுக"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"தொடர்புகளை அகற்று"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"எனது சுயவிவரம்"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"எனது <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> சுயவிவரம்"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"உங்கள் தொடர்புகளை Googleக்குக் காப்புப் பிரதி எடுக்கும் கணக்கைச் சேர்க்க ஒரு நிமிடம் ஒதுக்கவும்."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"புதிய தொடர்புகள் <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> இல் சேமிக்கப்படும்."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"புதிய தொடர்புகளுக்கான இயல்பு கணக்கைத் தேர்வுசெய்க:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"புதிய தொடர்பு"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"தொடர்பைத் திருத்து"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"பார்க்க மட்டும்"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"திருத்துவதற்கு, தொடர்பைத் தேர்வுசெய்யவும்"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"இணைத்த தொடர்புகள்"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"சேர்"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"இணைப்பை நீக்கு"</string>
+    <string name="add_account" msgid="8201790677994503186">"கணக்கைச் சேர்"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"புதிய கணக்கைச் சேர்"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"தரவுத்தள கோப்புகளை ஏற்றுமதி செய்"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"புதிய தொடர்பை உருவாக்கும்"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"மேலும் காட்டு"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"குறைவாகக் காட்டு"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"சமீபத்தியவை"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"அறிமுகம்"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"தனிப்பட்ட நகலை உருவாக்குகிறது…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"நாளை"</string>
+    <string name="today" msgid="8041090779381781781">"இன்று"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"இன்று <xliff:g id="TIME_INTERVAL">%s</xliff:g> மணிக்கு"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"நாளை <xliff:g id="TIME_INTERVAL">%s</xliff:g> மணிக்கு"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(பெயரிடப்படாத நிகழ்வு)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"அமை"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"நிறுவனம்"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"செல்லப்பெயர்"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"குறிப்பு"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"இணையதளம்"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"நிகழ்வு"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"உறவு"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"பெயர்"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"மின்னஞ்சல்"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ஃபோன்"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"இடத்தை நோக்கிய திசைகள்"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"சமீபத்திய sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. பதிலளிக்க, கிளிக் செய்க"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"உள்வரும் அழைப்பு"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"வெளிச்செல்லும் அழைப்பு"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"தவறிய அழைப்பு"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"சமீபத்திய அழைப்பு. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. திரும்ப அழைக்க, கிளிக் செய்க"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"நீங்கள்: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"மேலும் புலங்கள்"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"தொடர்புப் படத்தை மாற்றும்"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"தொடர்புப் படத்தைச் சேர்க்கும்"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"தொடர்புப் படம்"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"எடிட்டரைத் திறக்க முடியவில்லை."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"இதில் சேமிக்கிறது:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> இன் தொடர்புத் தகவலைத் திருத்த முடியாது"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"தொடர்புகளை இணை"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ரத்துசெய்"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"இந்தத் தொடர்பு"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"சாத்தியமுள்ள நகல்கள்"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"இவை ஒரே பயனருடையதாக இருக்கக்கூடும். அவற்றை ஒரே தொடர்பில் இணைக்கலாம்."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>ஐ நீக்கு"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>ஐ நீக்கு"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"பரிந்துரைகள்"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"புதிது"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"வழிசெலுத்தல் டிராயரைத் திறக்கும்"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"வழிசெலுத்தல் டிராயரை மூடும்"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> லேபிள்"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"லேபிள்கள்"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"கணக்குகள்"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"நிகழ்வுகள் &amp; செய்திகளின் வரலாற்றை ஒன்றாகப் பார்க்கவும்"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"நிகழ்வுகளும் செய்திகளும்"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"நிகழ்வுகள்"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"செய்திகள்"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"பரிந்துரைகள்"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"தொடர்புகளை ஒழுங்கமைத்தும் பயனுள்ளதாகவும் வைத்திருக்கலாம்"</string>
+    <string name="undo" msgid="1425165101664071422">"செயல்தவிர்"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>ஐ அழை"</string>
+    <string name="call_home" msgid="1990519474420545392">"வீட்டு ஃபோனை அழை"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"மொபைல் எண்ணில் அழை"</string>
+    <string name="call_work" msgid="5328785911463744028">"பணியிடத் தொலைபேசி எண்ணில் அழை"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"பணியிடத்தின் தொலைநகல் எண்ணில் அழை"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"வீட்டின் தொலைநகல் எண்ணில் அழை"</string>
+    <string name="call_pager" msgid="9003902812293983281">"பேஜர் எண்ணில் அழை"</string>
+    <string name="call_other" msgid="8563753966926932052">"அழை"</string>
+    <string name="call_callback" msgid="1910165691349426858">"திரும்ப அழை"</string>
+    <string name="call_car" msgid="3280537320306436445">"காரின் மொபைல் எண்ணில் அழை"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"நிறுவனத்தின் முதன்மை மொபைல் எண்ணில் அழை"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN ஐ அழை"</string>
+    <string name="call_main" msgid="6082900571803441339">"முதன்மை ஃபோனை அழை"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"தொலைநகல் எண்ணில் அழை"</string>
+    <string name="call_radio" msgid="8296755876398357063">"ரேடியோ தொலைபேசி எண்ணில் அழை"</string>
+    <string name="call_telex" msgid="2223170774548648114">"டெலக்ஸ் எண்ணில் அழை"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDD தொலைபேசி எண்ணில் அழை"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"பணியிட மொபைல் எண்ணில் அழை"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"பணியிடத்தின் பேஜர் எண்ணில் அழை"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>ஐ அழை"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS ஃபோனை அழை"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (அழை)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>க்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_home" msgid="7524332261493162995">"வீட்டு தொலைபேசி எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"மொபைல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_work" msgid="2269624156655267740">"பணியிட தொலைபேசி எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"பணியிட தொலைநகல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"வீட்டு தொலைநகல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"பேஜருக்கு உரை அனுப்பு"</string>
+    <string name="sms_other" msgid="806127844607642331">"உரை"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"அழைத்த எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_car" msgid="7444227058437359641">"காரின் தொலைபேசி எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"நிறுவனத்தின் முதன்மை மொபைல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDN தொலைபேசி எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_main" msgid="8621625784504541679">"முதன்மைத் தொலைபேசி எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"தொலைநகல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ரேடியோ தொலைபேசி எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"டெலக்ஸ் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDD தொலைபேசி எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"பணியிட மொபைல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"பணியிட பேஜர் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> க்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS மொபைல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (செய்தி அனுப்பு)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"வீடியோ அழைப்பைத் தொடங்கும்"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"அடிக்கடி தொடர்புகொண்ட தொடர்பை அழிக்கவா?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"தொடர்புகள் மற்றும் ஃபோன் பயன்பாடுகளில் உள்ள அடிக்கடி தொடர்பு கொண்டவர்களின் பட்டியல் அழிக்கப்பட்டு, தொடக்கத்திலிருந்து மீண்டும் உங்கள் முகவரி விருப்பத்தேர்வுகளை மின்னஞ்சல் பயன்பாடுகள் அறியும்படி செய்யப்படும்."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"அடிக்கடித் தொடர்புகொண்ட தொடர்பை அழிக்கிறது…"</string>
+    <string name="status_available" msgid="5586870015822828392">"இருக்கிறார்"</string>
+    <string name="status_away" msgid="1838861100379804730">"வெளியே"</string>
+    <string name="status_busy" msgid="9147992455450257136">"பணிமிகுதி"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"மற்றவை"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"கோப்பகம்"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"பணிக் கோப்பகம்"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"எல்லா தொடர்புகளும்"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> க்கான உடனடித் தொடர்பு"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(பெயர் இல்லை)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"அடிக்கடி தொடர்புகொண்டவர்கள்"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"மொபைல் எண்களுடனான எல்லா தொடர்புகளும்"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"பணியின் சுயவிவரத் தொடர்புகள்"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"புதுப்பிப்புகளைக் காட்டு"</string>
+    <string name="account_phone" msgid="7128032778471187553">"சாதனம்"</string>
+    <string name="account_sim" msgid="6519016427905087952">"சிம்"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"பெயர்"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"செல்லப்பெயர்"</string>
+    <string name="name_given" msgid="4280790853455320619">"பெயரின் முற்பகுதி"</string>
+    <string name="name_family" msgid="7466985689626017037">"பெயரின் பிற்பகுதி"</string>
+    <string name="name_prefix" msgid="59756378548779822">"பெயரின் முன்னொட்டு"</string>
+    <string name="name_middle" msgid="8467433655992690326">"பெயரின் நடுப்பகுதி"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"பெயரின் பின்னொட்டு"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"பெயரின் ஒலிப்புமுறை"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ஒலிப்புமுறையில் பெயரின் முற்பகுதி"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ஒலிப்புமுறையில் பெயரின் நடுப்பகுதி"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ஒலிப்புமுறையில் பெயரின் பிற்பகுதி"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ஃபோன்"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"மின்னஞ்சல்"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"முகவரி"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"நிறுவனம்"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"உறவு"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"சிறப்பு தேதி"</string>
+    <string name="sms" msgid="1756857139634224222">"உரைச் செய்தி"</string>
+    <string name="postal_address" msgid="8765560217149624536">"முகவரி"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"நிறுவனம்"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"தலைப்பு"</string>
+    <string name="label_notes" msgid="8337354953278341042">"குறிப்புகள்"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"தனிப்பயன்"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"இணையதளம்"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"லேபிள்கள்"</string>
+    <string name="email_home" msgid="8573740658148184279">"வீட்டு மின்னஞ்சல் முகவரிக்கு மின்னஞ்சல் அனுப்பு"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"மொபைல் மின்னஞ்சல் முகவரிக்கு மின்னஞ்சல் அனுப்பு"</string>
+    <string name="email_work" msgid="2807430017302722689">"பணியிட மின்னஞ்சல் முகவரிக்கு மின்னஞ்சல் அனுப்பு"</string>
+    <string name="email_other" msgid="3454004077967657109">"மின்னஞ்சல்"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>க்கு மின்னஞ்சல் அனுப்பு"</string>
+    <string name="email" msgid="5668400997660065897">"மின்னஞ்சல்"</string>
+    <string name="postal_street" msgid="8133143961580058972">"தெரு"</string>
+    <string name="postal_city" msgid="6597491300084895548">"நகரம்"</string>
+    <string name="postal_region" msgid="6045263193478437672">"மாநிலம்"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"அஞ்சல் எண்"</string>
+    <string name="postal_country" msgid="7638264508416368690">"நாடு"</string>
+    <string name="map_home" msgid="1243547733423343982">"வீட்டு முகவரியைக் காட்டு"</string>
+    <string name="map_work" msgid="1360474076921878088">"பணியிட முகவரியைக் காட்டு"</string>
+    <string name="map_other" msgid="3817820803587012641">"முகவரியைக் காட்டு"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> முகவரியைக் காட்டு"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM இல் அரட்டையடி"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live இல் அரட்டையடி"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo இல் அரட்டையடி"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype இல் அரட்டையடி"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ இல் அரட்டையடி"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk இல் அரட்டையடி"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ இல் அரட்டையடி"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber இல் அரட்டையடி"</string>
+    <string name="chat" msgid="9025361898797412245">"அரட்டை"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"நீக்கு"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"கூடுதல் பெயர்ப் புலங்களைக் காட்டு"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"பெயர்ப் புலங்களைச் சுருக்கும்"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"கூடுதல் ஒலிப்புமுறை பெயர்ப் புலங்களைக் காட்டு"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ஒலிப்புமுறைப் பெயர்ப் புலங்களைச் சுருக்கும்"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"விரிக்கும்"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"சுருக்கும்"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"விரிக்கப்பட்டது"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"சுருக்கப்பட்டது"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"எல்லா தொடர்புகளும்"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"நட்சத்திரமிட்டவை"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"தனிப்பயனாக்கு"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"தொடர்பு"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"பிற எல்லா தொடர்புகளும்"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"எல்லா தொடர்புகளும்"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"ஒத்திசைவுக் குழுவை அகற்று"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"ஒத்திசைவு குழுவைச் சேர்"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"மேலும் குழுக்கள்…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"ஒத்திசைவிலிருந்து \"<xliff:g id="GROUP">%s</xliff:g>\" ஐ அகற்றுவது, ஒத்திசைவிலிருந்து குழுவாக்கப்படாத எல்லா தொடர்புகளையும் அகற்றும்."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"காட்சி விருப்பங்களைச் சேமிக்கிறது…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"தனிப்பயனாக்கிய காட்சி"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"இறக்கிய தொடர்புகளை இதில் சேமிக்கவும்:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"சிம் கார்டு"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"<xliff:g id="SIM_NAME">%1$s</xliff:g> சிம்"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d தொடர்புகள்</item>
+      <item quantity="one">1 தொடர்பு</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> தொடர்புகள் • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> தொடர்பு • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf கோப்பு"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"இறக்குவதற்கு எதுவுமில்லை"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard இலிருந்து தொடர்புகளை இறக்கவா?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> இன் இறக்குமதியை ரத்துசெய்யவா?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> இன் ஏற்றுமதியை ரத்துசெய்யவா?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard இன் இறக்குமதி/ஏற்றுமதியை ரத்துசெய்ய முடியவில்லை"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"தெரியாத பிழை."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" ஐத் திறக்க முடியவில்லை: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"ஏற்றுமதியைத் தொடங்க முடியவில்லை: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ஏற்றுமதி செய்யக்கூடிய தொடர்பு இல்லை."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"தேவைப்படும் அனுமதியை முடக்கியுள்ளீர்கள்."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"ஏற்றுமதி செய்யும்போது பிழை: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O பிழை"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"போதுமான நினைவகம் இல்லை. கோப்பு மிகவும் பெரியதாக இருக்கலாம்."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"வடிவம் ஆதரிக்கப்படவில்லை."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> ஏற்றப்பட்டது."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"தொடர்புகள் ஏற்றப்பட்டன."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"தொடர்புகள் ஏற்றப்பட்டன. தொடர்புகளைப் பகிர, அறிவிப்பைக் கிளிக் செய்யவும்."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"தொடர்புகளைப் பகிர, தட்டவும்."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> ஐ ஏற்றுமதி செய்வது ரத்துசெய்யப்பட்டது."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"தொடர்பு தரவை ஏற்றுமதி செய்கிறது"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"தொடர்பின் தரவு ஏற்றப்படுகிறது."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"தரவுத்தளத் தகவலைப் பெற முடியவில்லை."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"ஏற்றத்தக்க தொடர்புகள் இல்லை."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard தொகுப்பான் முறையாகத் தொடங்கவில்லை."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"ஏற்றுமதி செய்ய முடியவில்லை"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"தொடர்பு தரவு ஏற்றுமதி செய்யப்படவில்லை.\nகாரணம்: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> ஐ இறக்குமதி செய்கிறது"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard தரவைப் படிக்க முடியவில்லை"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> இறக்கப்பட்டது"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> ஐ இறக்குமதிசெய்வது ரத்துசெய்யப்பட்டது"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> விரைவில் இறக்குமதி செய்யப்படும்."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"கோப்பு விரைவில் இறக்குமதி செய்யப்படும்."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard இன் இறக்குமதி கோரிக்கை நிராகரிக்கப்பட்டது. பிறகு முயற்சிக்கவும்."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"கூடிய விரைவில் தொடர்புகள் ஏற்றப்படும்."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard இன் ஏற்றுமதி கோரிக்கை நிராகரிக்கப்பட்டது. பிறகு முயற்சிக்கவும்."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"தொடர்பு"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard(களை) ஐ அகச் சேமிப்பிடத்தில் தற்காலிகமாகச் சேமிக்கிறது. அசல் இறக்குமதி உடனடியாக தொடங்கப்படும்."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard ஐ இறக்குமதி செய்ய முடியவில்லை."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC வழியாக தொடர்பு பெறப்பட்டது"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"தற்காலிகமாகச் சேமித்தல்"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> ஐ இறக்குமதி செய்கிறது: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf கோப்பிற்கு ஏற்று"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"இதன்படி வரிசைப்படுத்து:"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ஒலிப்புமுறைப் பெயர்"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"எப்போதும் காட்டு"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"காலியாக இருந்தால், மறை"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"பெயரின் முற்பகுதி"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"பெயரின் பிற்பகுதி"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"பெயர் வடிவம்"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"பெயரின் முதற்பகுதி முதலில்"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"பெயரின் பிற்பகுதி முதலில்"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"கணக்குகள்"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"புதிய தொடர்புகளுக்கான இயல்பு கணக்கு"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"எனது தகவல்"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"சுயவிவரத்தை அமைக்கவும்"</string>
+    <string name="setting_about" msgid="7014388749752042863">"தொடர்புகள் - ஓர் அறிமுகம்"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"பிடித்த தொடர்புகளைப் பகிர்"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"எல்லா தொடர்புகளையும் பகிர்"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"தொடர்புகளைப் பகிர முடியவில்லை."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"தொடர்புகளை ஏற்று"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"இதிலிருந்து தொடர்புகளை இறக்கு:"</string>
+    <string name="share_error" msgid="948429331673358107">"தொடர்பைப் பகிர முடியவில்லை."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"பகிர, தொடர்புகள் இல்லை."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"காட்ட வேண்டிய தொடர்புகள்"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"காட்ட வேண்டிய தொடர்புகள்"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"காட்சியைத் தனிப்பயனாக்குக"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"சேமி"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"தொடர்புகளில் தேடுக"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"விருப்பமானவை"</string>
+    <string name="menu_import" msgid="6107961135813836467">"இறக்கு"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ஏற்று"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"தடுக்கப்பட்ட எண்கள்"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> வழியாக"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> வழியாக <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"தேடுவதை நிறுத்தும்"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"தேடலை அழி"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"கணக்கு"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"அழைப்புகளுக்கு எப்போதும் இதைப் பயன்படுத்து"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"குறிப்புடன் அழை"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"அழைப்புடன் சேர்த்து அனுப்ப, குறிப்பை உள்ளிடவும்…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"அனுப்பு &amp; அழை"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"பதிப்பு எண்"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ஓப்பன் சோர்ஸ் உரிமங்கள்"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ஓப்பன் சோர்ஸ் மென்பொருளுக்கான உரிம விவரங்கள்"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"தனியுரிமைக் கொள்கை"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"சேவை விதிமுறைகள்"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ஓப்பன் சோர்ஸ் உரிமங்கள்"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"urlஐத் திறக்க முடியவில்லை."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> தேர்ந்தெடுக்கப்பட்டது"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> தேர்ந்தெடுக்கப்படவில்லை"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"வீடியோ அழைப்பைச் செய்யும்"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"நீக்கும்"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"முப்புள்ளி"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> வி"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> நி <xliff:g id="SECONDS">%2$s</xliff:g> வி"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ம <xliff:g id="MINUTES_1">%2$s</xliff:g> நி <xliff:g id="SECONDS">%3$s</xliff:g> வி"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"இந்தக் குறுக்குவழி முடக்கப்பட்டது"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"தொடர்பு அகற்றப்பட்டது"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"இறக்கு"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"தொடர்புகளைத் தேர்ந்தெடு"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"சிம் கார்டில் தொடர்புகள் இல்லை"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"தொடர்பு ஏற்கனவே உங்கள் பட்டியலில் உள்ளது"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> சிம் தொடர்புகள் இறக்கப்பட்டன</item>
+      <item quantity="one">1 சிம் தொடர்பு இறக்கப்பட்டது</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"சிம் தொடர்புகளை இறக்க முடியவில்லை"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"சிம்மிலிருந்து இறக்கு"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"ரத்துசெய்யும்"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"தானாக ஒத்திசை எனும் அம்சம் முடக்கப்பட்டுள்ளது. இயக்க, தட்டவும்."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"நிராகரிக்கும்"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"கணக்கு ஒத்திசைவு எனும் அம்சம் முடக்கப்பட்டுள்ளது. இயக்க, தட்டவும்."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"தானாக ஒத்திசைப்பதை இயக்கவா?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Google தொடர்புகள் மட்டுமல்லாமல் எல்லாப் பயன்பாடுகளிலும் கணக்குகளிலும் நீங்கள் செய்யும் மாற்றங்கள், இணையத்திலும் உங்கள் சாதனங்களிலும் புதுப்பித்த நிலையில் வைக்கப்படும்."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"இயக்கு"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"இணைப்பு இல்லை"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"சிம்"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"மேலும் காட்டு"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"சிம் கார்டு இறக்கப்பட்டது"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"இறக்க முடியவில்லை"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"சிம் கார்டிலிருந்து தொடர்புகளை இறக்க முடியவில்லை"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"சிம் கார்டை இறக்குகிறது"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
deleted file mode 100644
index 1eee3cb..0000000
--- a/res/values-te-rIN/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"పరిచయాలు"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"పరిచయాలు"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"పరిచయాన్ని వీక్షించండి"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"పరిచయాన్ని సవరించండి"</string>
-    <string name="contactsList" msgid="8661624236494819731">"పరిచయాలు"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"పరిచయం"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"డైరెక్ట్ డయల్"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"డైరెక్ట్ సందేశం"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"పరిచయం యొక్క సత్వరమార్గాన్ని ఎంచుకోండి"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"కాల్ చేయాల్సిన నంబర్‌ను ఎంచుకోండి"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"సందేశం పంపడానికి నంబర్‌ను ఎంచుకోండి"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"పరిచయానికి జోడించండి"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"పరిచయాన్ని ఎంచుకోండి"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"కొత్త పరిచయాన్ని సృష్టించండి"</string>
-    <string name="starredList" msgid="4817256136413959463">"నక్షత్రం గుర్తు ఉన్నవి"</string>
-    <string name="frequentList" msgid="7154768136473953056">"తరచుగా"</string>
-    <string name="strequentList" msgid="5640192862059373511">"ఇష్టమైనవి"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"పరిచయ వివరాలు"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"పరిచయాన్ని సవరించు"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"పరిచయాన్ని సృష్టించండి"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"సమూహాన్ని సవరించు"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"సమూహాన్ని సృష్టించండి"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"గురించి"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"నవీకరణలు"</string>
-    <string name="searchHint" msgid="8482945356247760701">"పరిచయాలను శోధించు"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"పరిచయాన్ని వీక్షించండి"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"ఇష్టమైనవాటికి జోడించు"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"ఇష్టమైనవాటి నుండి తీసివేయి"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ఇష్టమైనవి నుండి తీసివేయబడింది"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ఇష్టమైనవికి జోడించబడింది"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"సవరించు"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"తొలగించు"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"ఫోటోను మార్చు"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"హోమ్ స్క్రీన్‌లో ఉంచు"</string>
-    <string name="menu_call" msgid="3992595586042260618">"పరిచయానికి కాల్ చేయి"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"పరిచయానికి వచనం పంపు"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"వేరు చేయి"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"సవరించు"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"తొలగించు"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"పరిచయాన్ని జోడించు"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"సమూహాన్ని జోడించు"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"ఈ పరిచయాన్ని పలు పరిచయాలుగా వేరు చేయాలా?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"వేరు చేయి"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"మీరు ఇప్పటికే చేసిన మార్పులను సేవ్ చేసి, ఈ పరిచయాన్ని పలు పరిచయాలుగా వేరు చేయాలనుకుంటున్నారా?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"సేవ్ చేసి, వేరు చేయి"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"మీరు ఇప్పటికే చేసిన మార్పులను సేవ్ చేసి, ఎంచుకున్న పరిచయంతో లింక్ చేయాలనుకుంటున్నారా?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"సేవ్ చేసి, లింక్ చేయి"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"లింక్ చేయి"</string>
-    <string name="menu_save" msgid="1727844363591825909">"సేవ్ చేయి"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"పరిచయాలను లింక్ చేయండి"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"మీరు <xliff:g id="NAME">%s</xliff:g>తో లింక్ చేయాలనుకునే పరిచయాన్ని ఎంచుకోండి:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"అన్ని పరిచయాలను చూపు"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"సూచిత పరిచయాలు"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"అన్ని పరిచయాలు"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"పరిచయాలు లింక్ చేయబడ్డాయి"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">పరిచయాలు తొలగించబడ్డాయి</item>
-      <item quantity="one">పరిచయం తొలగించబడింది</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"రింగ్‌టో‌న్‌ను సెట్ చేయి"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"అన్ని కాల్‌లు వాయిస్ మెయిల్‌కు"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"మీ చదవడానికి మాత్రమే ఖాతాల నుండి పరిచయాలు తొలగించబడవు, కానీ అవి దాచబడవచ్చు."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"దాచు"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"తొలగించాల్సిన పరిచయం పలు ఖాతాల నుండి వివరాలను కలిగి ఉంది. చదవడానికి మాత్రమే ఖాతాల నుండి వివరాలు దాచబడతాయి, తొలగించబడవు."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"మీరు లింక్ చర్యను అమలు చేయడానికి కనీసం రెండు పరిచయాలను ఎంచుకోవాలి."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"ఎంచుకున్న పరిచయాలను లింక్ చేయాలా?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"లింక్ చేయి"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"ఈ పరిచయాన్ని తొలగించాలా?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ఎంచుకున్న పరిచయాలను తొలగించాలా?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"మీ చదవడానికి మాత్రమే ఖాతాల నుండి పరిచయాలు తొలగించబడవు, కానీ అవి దాచబడవచ్చు."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"తొలగించాల్సిన పరిచయాలు పలు ఖాతాల నుండి వివరాలను కలిగి ఉన్నాయి. చదవడానికి మాత్రమే ఖాతాల నుండి వివరాలు దాచబడతాయి, తొలగించబడవు."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ఈ పరిచయాన్ని తొలగించడం వలన పలు ఖాతాల నుండి వివరాలు తొలగించబడతాయి."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"ఈ పరిచయాన్ని తొలగించాలా?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"తొలగించు"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"మార్పులను విస్మరించు"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"పరిచయం ఉనికిలో లేదు."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"పరిచయం హోమ్ స్క్రీన్‌కు జోడించబడింది."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> హోమ్ స్క్రీన్‌కు జోడించబడింది."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"కొత్త పరిచయాన్ని సృష్టించండి"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"కొత్త పరిచయాన్ని సృష్టించండి"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"సంస్థ"</item>
-    <item msgid="7196592230748086755">"గమనిక"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"టాబ్లెట్‌లో చిత్రాలు ఏవీ అందుబాటులో లేవు."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ఫోన్‌లో చిత్రాలు ఏవీ అందుబాటులో లేవు."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"పరిచయం ఫోటో"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"అనుకూల లేబుల్ పేరు"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"కాల్‌లను నేరుగా వాయిస్ మెయిల్‌కు పంపండి"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"ఫోటోను తీసివేయి"</string>
-    <string name="noContacts" msgid="4955659076981974652">"పరిచయాలు లేవు"</string>
-    <string name="noGroups" msgid="8614664663561385253">"సమూహాలు లేవు."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"సమూహాలను సృష్టించడానికి మీకు ఖాతా అవసరం."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ఈ సమూహంలో వ్యక్తులు లేరు."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"కొంతమందిని జోడించడానికి, సమూహాన్ని సవరించండి."</string>
-    <string name="savingContact" msgid="4075751076741924939">"పరిచయాన్ని సేవ్ చేస్తోంది…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"పరిచయం సేవ్ చేయబడింది"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"పరిచయాలు వేరు చేయబడ్డాయి"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"పరిచయ మార్పులను సేవ్ చేయడం సాధ్యపడలేదు."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"పరిచయాన్ని వేరు చేయడం సాధ్యపడలేదు."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"పరిచయాన్ని లింక్ చేయడం సాధ్యపడలేదు."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"పరిచయాన్ని సేవ్ చేయడంలో లోపం ఏర్పడింది."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"పరిచయం ఫోటో మార్పులను సేవ్ చేయలేకపోయింది."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"సమూహం సేవ్ చేయబడింది."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"సమూహ మార్పులను సేవ్ చేయడం సాధ్యపడలేదు."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">ఫోన్ నంబర్‌లు ఉన్న <xliff:g id="COUNT">%d</xliff:g> పరిచయాలు</item>
-      <item quantity="one">ఫోన్ నంబర్ ఉన్న 1 పరిచయం</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ఫోన్ నంబర్‌లు గల పరిచయాలు లేవు"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> కనుగొనబడ్డాయి</item>
-      <item quantity="one">1 కనుగొనబడింది</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"పరిచయాలు లేవు"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> కనుగొనబడ్డాయి</item>
-      <item quantity="one">1 కనుగొనబడింది</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"అన్నీ"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"ఇష్టమైనవి"</string>
-    <string name="callBack" msgid="5498224409038809224">"కాల్ చేయి"</string>
-    <string name="callAgain" msgid="3197312117049874778">"మళ్లీ కాల్ చేయి"</string>
-    <string name="returnCall" msgid="8171961914203617813">"కాల్‌ను తిరిగి చేయి"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\"ని పరిచయాలకు జోడించాలా?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"పరిచయ ఫోటో"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"ప్లస్"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> పరిచయాల్లో <xliff:g id="CURRENT_NUMBER">%s</xliff:g>"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"మీ పరిచయాల యొక్క పేర్లు"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ఈ చర్యను నిర్వహించడానికి అనువర్తనం ఏదీ కనుగొనబడలేదు."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"మునుపటి స్క్రీన్‌కి తిరిగి రావడానికి క్లిక్ చేయండి"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ఫోన్ నంబర్‌ను జోడించండి"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ఇమెయిల్ జోడించండి"</string>
-    <string name="missing_app" msgid="1466111003546611387">"ఈ చర్యను నిర్వహించడానికి అనువర్తనం ఏదీ కనుగొనబడలేదు."</string>
-    <string name="menu_share" msgid="943789700636542260">"భాగస్వామ్యం చేయి"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"పరిచయాలకు జోడించు"</string>
-    <string name="share_via" msgid="563121028023030093">"పరిచయాన్ని దీని ద్వారా భాగస్వామ్యం చేయండి"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"ఖాతాలో సమూహాన్ని సృష్టించండి"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"వాయిస్ చాట్"</string>
-    <string name="video_chat" msgid="1872255818640336072">"వీడియో చాట్"</string>
-    <string name="connections" msgid="8098440723172028350">"కనెక్షన్‌లు"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"కనెక్షన్‌ను జోడించు"</string>
-    <string name="recent" msgid="2659189233141493004">"ఇటీవలివి"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"ఇటీవలి నవీకరణలు"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> పరిచయం"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ఖాతా"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ఈ అనువర్తనం నుండి సవరించడం కుదరదు."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"ఈ పరికరంలో సవరించడం కుదరదు."</string>
-    <string name="take_photo" msgid="7496128293167402354">"ఫోటో తీయండి"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"కొత్త ఫోటో తీసుకోండి"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"ఫోటోను ఎంచుకోండి"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"కొత్త ఫోటోను ఎంచుకోండి"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"పరిచయ జాబితా నవీకరించబడుతోంది."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"శోధిస్తోంది..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"ఎంచుకున్న వాటిని చూపు"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"అన్నీ చూపు"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"అన్నింటినీ ఎంచుకోండి"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"అన్నింటి ఎంపికను తీసివేయి"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"కొత్తదాన్ని జోడించు"</string>
-    <string name="add_organization" msgid="7311893231158291197">"సంస్థను జోడించు"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"తేదీ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"సమూహం పేరు"</string>
-    <string name="change_photo" msgid="8530597935483526383">"మార్చు"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"ప్రాథమిక ఫోటో"</string>
-    <string name="description_star" msgid="2605854427360036550">"ఇష్టంగా గుర్తించు"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"పరిచయాన్ని సవరించు"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"ప్రస్తుత పరిచయాన్ని ఎంచుకున్న పరిచయంతో లింక్ చేయాలా?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ఎంచుకున్న పరిచయాన్ని సవరించగల స్థితికి మార్చాలా? మీరు ఇప్పటి వరకు నమోదు చేసిన సమాచారం కాపీ చేయబడుతుంది."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"నా పరిచయాలకు కాపీ చేయి"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"నా పరిచయాలకి జోడించు"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"డైరెక్టరీ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"అనుకూలం"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"సెట్టింగ్‌లు"</string>
-    <string name="menu_settings" msgid="377929915873428211">"సెట్టింగ్‌లు"</string>
-    <string name="menu_help" msgid="1680178646764069976">"సహాయం &amp; అభిప్రాయం"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ప్రదర్శన ఎంపికలు"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"ఫోన్ నంబర్"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"పరిచయాలకు జోడించు"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"పరిచయానికి జోడించండి"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"మూసివేయి"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"సంవత్సరాన్ని చేర్చు"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"పరిచయం"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"లోడ్ చేస్తోంది…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"కొత్త పరిచయాన్ని సృష్టించు"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ఖాతాను జోడించు"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"పరిచయాలను దిగుమతి చేయి"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"సమూహాన్ని సృష్టించండి"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"సమూహాన్ని సృష్టించండి"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> సమూహాలు</item>
-      <item quantity="one">1 సమూహం</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"సమూహం \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"ని తొలగించాలా? (పరిచయాలు వాటంతట అవే తొలగించబడవు.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> నుండి <xliff:g id="COUNT_2">%1$d</xliff:g> మంది వ్యక్తులు</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> నుండి <xliff:g id="COUNT_0">%1$d</xliff:g> వ్యక్తి</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> మంది వ్యక్తులు</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> వ్యక్తి</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"మరొకదానితో లింక్ చేయడానికి ముందు పరిచయం పేరు టైప్ చేయండి."</string>
-    <string name="copy_text" msgid="3257145021583508761">"క్లిప్‌బోర్డ్‌కు కాపీ చేయి"</string>
-    <string name="set_default" msgid="4417505153468300351">"డిఫాల్ట్‌గా సెట్ చేయి"</string>
-    <string name="clear_default" msgid="7193185801596678067">"డిఫాల్ట్‌ను క్లియర్ చేయి"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"వచనం కాపీ చేయబడింది"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"మీ మార్పులను విస్మరించాలా?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"విస్మరించు"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"నా ప్రొఫైల్‌ను సెటప్ చేయి"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"వ్యక్తి పేరు టైప్ చేయండి"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"సమూహం పేరు"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"నా స్థానిక ప్రొఫైల్"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"నా <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ప్రొఫైల్"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"అన్ని పరిచయాలను ప్రదర్శిస్తోంది"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"పరిచయాలు Google ఖాతాతో మెరుగ్గా పని చేస్తాయి.\n\n• ఏదైనా వెబ్ బ్రౌజర్ నుండి ప్రాప్యత చేయండి.\n• మీ పరిచయాలను సురక్షితంగా బ్యాకప్ చేయండి."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"మీరు మీ ఫోన్‌ను పోగొట్టుకున్నప్పటికీ మీ పరిచయాలను సురక్షితంగా ఉంచుకోండి: ఆన్‌లైన్ సేవతో సమకాలీకరించండి."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ఖాతాను జోడించండి"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"మీ కొత్త పరిచయం బ్యాకప్ చేయబడదు. ఆన్‌లైన్‌లో పరిచయాలను బ్యాకప్ చేసే ఖాతాను జోడించాలా?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"కొత్త పరిచయాలు <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>కి సేవ్ చేయబడతాయి."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"కొత్త పరిచయాల కోసం డిఫాల్ట్ ఖాతాను ఎంచుకోండి:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"కొత్త పరిచయం చేర్చు"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"సవరించండి"</string>
-    <string name="keep_local" msgid="1258761699192993322">"స్థానికంగా ఉంచండి"</string>
-    <string name="add_account" msgid="8201790677994503186">"ఖాతాను జోడించు"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"కొత్త ఖాతాను జోడించు"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"డేటాబేస్ ఫైల్‌లను ఎగుమతి చేయి"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"కొత్త పరిచయాన్ని జోడించు"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"మరిన్ని చూడండి"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"తక్కువ చూడండి"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"అన్నీ చూడండి"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"ఇటీవలివి"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"పరిచయం"</string>
-    <string name="send_message" msgid="8938418965550543196">"సందేశాన్ని పంపండి"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"వ్యక్తిగత కాపీని సృష్టిస్తోంది..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"నిన్న"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"రేపు"</string>
-    <string name="today" msgid="8041090779381781781">"ఈ రోజు"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"ఈ రోజు <xliff:g id="TIME_INTERVAL">%s</xliff:g>కి"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"రేపు <xliff:g id="TIME_INTERVAL">%s</xliff:g>కి"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(శీర్షిక లేని ఈవెంట్)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"సెట్ చేయి"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"సంస్థ"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"మారుపేరు"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"గమనిక"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"వెబ్‌సైట్"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ఈవెంట్"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"సంబంధం"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"ఖాతా"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"పేరు"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ఇమెయిల్"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"ఫోన్"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"ఫోటో"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"పరిచయ ఎడిటర్‌ని విస్తరింపజేయడానికి క్లిక్ చేయండి."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"పరిచయ ఎడిటర్‌ని కుదించడానికి క్లిక్ చేయండి."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"స్థానానికి వెళ్లడానికి దిశలు"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"ఇటీవలి sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ప్రతిస్పందించడానికి క్లిక్ చేయండి"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ఇన్‌కమింగ్"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"అవుట్‌గోయింగ్"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"మిస్డ్"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"ఇటీవలి కాల్. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. తిరిగి కాల్ చేయడానికి క్లిక్ చేయండి"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"మీరు: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"మీరు ఇమెయిల్ ఫీల్డ్ లేదా ఫోన్ ఫీల్డ్‌లో వ్యక్తి యొక్క Hangouts ఐడెంటిఫైయర్‌ని నమోదు చేసినప్పుడు Hangouts ఉత్తమంగా పని చేస్తాయి."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"మరిన్ని ఫీల్డ్‌లు"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"ఫోటోను మార్చండి"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"ఎడిటర్‌ను తెరవడం విఫలమైంది."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"దీనికి సేవ్ చేయబడుతోంది"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"ప్రస్తుతం <xliff:g id="ACCOUNT_NAME">%s</xliff:g>కి సేవ్ చేస్తోంది. వేరే ఖాతాను ఎంచుకోవడానికి రెండుసార్లు నొక్కండి."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">లింక్ చేయబడిన పరిచయాలు (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">లింక్ చేయబడిన పరిచయం</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> లింక్ చేయబడిన పరిచయాలు"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"పరిచయాలను లింక్ చేయి"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"రద్దు చేయి"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> సంభావ్య నకిలీలు</item>
-      <item quantity="one">1 సంభావ్య నకిలీ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> లింక్ చేయబడిన పరిచయాలు</item>
-      <item quantity="one">1 లింక్ చేయబడిన పరిచయం</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ఈ పరిచయం"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"సంభావ్య నకిలీలు"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ఈ పరిచయాలు ఒకే వ్యక్తికి సంబంధించినవి అయ్యి ఉండవచ్చు. మీరు వాటిని ఒకే పరిచయంగా లింక్ చేయవచ్చు."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"లింక్ చేయబడిన పరిచయాలు"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"మీ ఖాతాల నుండి"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ఫోటో తీయి"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"అన్ని ఫోటోలు"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"ఫోటోను ఎంచుకోండి"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> నుండి"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>ని తొలగిస్తుంది"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>ని తొలగిస్తుంది"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>లోని ఫోటో ఎంచుకోబడలేదు"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>లోని ఫోటో ఎంచుకోబడింది"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"తెలియని ఖాతా నుండి అందించబడిన ఫోటో ఎంచుకోబడలేదు"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"తెలియని ఖాతా నుండి అందించబడిన ఫోటో ఎంచుకోబడింది"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"భాష మార్పుని చూపడానికి పరిచయ జాబితా నవీకరించబడుతోంది.\n\nదయచేసి వేచి ఉండండి..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"నంబర్‌ను జోడించు"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"నంబర్‌ను బ్లాక్ చేయి"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"నంబర్ జోడించండి లేదా పరిచయాల్లో శోధించండి"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>ని అన్‌బ్లాక్ చేయాలా?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"అన్‌బ్లాక్ చేయి"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>ని బ్లాక్ చేయాలా?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"బ్లాక్ చేయి"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> బ్లాక్ చేయబడింది"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> అన్‌బ్లాక్ చేయబడింది"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> చెల్లదు."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"కాల్ బ్లాకింగ్ తాత్కాలికంగా ఆఫ్ అయ్యింది"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"మీరు గత 48 గంటల వ్యవధిలో ఈ ఫోన్ నుండి అత్యవసర సేవలను సంప్రదించినందున కాల్ బ్లాకింగ్ నిలిపివేయబడింది. 48 గంటల వ్యవధి ముగిసిన తర్వాత ఇది స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"దిగుమతి చేయి"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"నంబర్‌లను వీక్షించండి"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"నంబర్‌ను జోడించు"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"48 గంటల పాటు కాల్ బ్లాకింగ్ నిలిపివేయబడింది"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"అత్యవసర కాల్ చేసినందున నిలిపివేయబడింది."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"రద్దు చేయి"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ఇప్పటికే బ్లాక్ చేయబడింది."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"నంబర్‌ను అన్‌బ్లాక్ చేయి"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> యొక్క సంప్రదింపు వివరాలు"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"దిగుమతి విఫలమైంది"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"నంబర్‌లను దిగుమతి చేయి"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"ఆన్ చేయి"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
new file mode 100644
index 0000000..e6a98c2
--- /dev/null
+++ b/res/values-te/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"పరిచయాలు"</string>
+    <string name="contactsList" msgid="8661624236494819731">"పరిచయాలు"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"పరిచయాన్ని జోడించండి"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"పరిచయం"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"నేరుగా డయల్"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"నేరుగా సందేశం"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"పరిచయాన్ని ఎంచుకోండి"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"పరిచయానికి జోడించండి"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"పరిచయాన్ని ఎంచుకోండి"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"ఎంచుకోండి"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"కొత్త పరిచయాన్ని సృష్టించండి"</string>
+    <string name="searchHint" msgid="8482945356247760701">"పరిచయాలను శోధించు"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"ఇష్టమైనవాటికి జోడించు"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"ఇష్టమైనవాటి నుండి తీసివేయి"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"ఇష్టమైనవి నుండి తీసివేయబడింది"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"ఇష్టమైనవికి జోడించబడింది"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"సవరించు"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"తొలగించు"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"ఫోటోను మార్చు"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"సత్వరమార్గాన్ని సృష్టించు"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"వేరు చేయి"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"పరిచయాలను తీసివేయి"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"లేబుల్ పేరును మార్చు"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"లేబుల్‌ను తొలగించు"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"పరిచయాన్ని జోడించు"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"పరిచయాలను ఎంచుకోండి"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"పరిచయాలను జోడించు"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"లేబుల్ నుండి తీసివేయి"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"లేబుల్‌ను సృష్టించు"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"ఈ పరిచయాన్ని పలు పరిచయాలుగా వేరు చేయాలా?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"వేరు చేయి"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"మీరు ఇప్పటికే చేసిన మార్పులను సేవ్ చేసి, ఈ పరిచయాన్ని పలు పరిచయాలుగా వేరు చేయాలనుకుంటున్నారా?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"సేవ్ చేసి, వేరు చేయి"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"మీరు ఇప్పటికే చేసిన మార్పులను సేవ్ చేసి, ఎంచుకున్న పరిచయంతో లింక్ చేయాలనుకుంటున్నారా?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"సేవ్ చేసి, లింక్ చేయి"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"లింక్ చేస్తున్నాము"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"అన్‌లింక్ చేస్తున్నాము"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"లింక్ చేయి"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"లింక్ చేసిన పరిచయాలను చూడండి"</string>
+    <string name="menu_save" msgid="1727844363591825909">"సేవ్ చేయి"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"పరిచయాలను లింక్ చేయండి"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"మీరు <xliff:g id="NAME">%s</xliff:g>తో లింక్ చేయాలనుకునే పరిచయాన్ని ఎంచుకోండి:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"సూచిత పరిచయాలు"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"అన్ని పరిచయాలు"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> లింక్ చేయబడ్డారు"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"పరిచయాలు లింక్ చేయబడ్డాయి"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> తొలగించబడింది"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> మరియు <xliff:g id="NAME_1">%2$s</xliff:g> తొలగించబడ్డాయి"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… తొలగించబడ్డాయి"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">పరిచయాలు తొలగించబడ్డాయి</item>
+      <item quantity="one">పరిచయం తొలగించబడింది</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> పరిచయాలు</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> పరిచయం</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> పరిచయాలు · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> పరిచయం · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google అందించినవి"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> అందించినవి"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"రింగ్‌టో‌న్‌ను సెట్ చేయి"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"వాయిస్ మెయిల్‌కు మళ్లించు"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"వాయిస్ మెయిల్‌కు మళ్లించవద్దు"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"ఈ పరిచయం చదవడానికి మాత్రమే. దీన్ని తొలగించలేరు, కానీ దీన్ని దాచి ఉంచగలరు."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"పరిచయాన్ని దాచు"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"ఈ పరిచయంలోని చదవడానికి మాత్రమే ప్రాప్యత గల ఖాతాలు దాచి ఉంచబడతాయి, అంతేకానీ తొలగించబడవు."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"ఈ పరిచయాన్ని తొలగించాలా?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"ఎంచుకున్న పరిచయాలను తొలగించాలా?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"మీ చదవడానికి మాత్రమే ఖాతాల నుండి పరిచయాలు తొలగించబడవు, కానీ అవి దాచబడవచ్చు."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"తొలగించాల్సిన పరిచయాలు పలు ఖాతాల నుండి వివరాలను కలిగి ఉన్నాయి. చదవడానికి మాత్రమే ఖాతాల నుండి వివరాలు దాచబడతాయి, తొలగించబడవు."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"ఈ పరిచయాన్ని తొలగించడం వలన పలు ఖాతాల నుండి వివరాలు తొలగించబడతాయి."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"ఈ పరిచయాన్ని తొలగించాలా?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"తొలగించు"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"పరిచయం ఉనికిలో లేదు."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"పరిచయం హోమ్ స్క్రీన్‌కు జోడించబడింది."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> హోమ్ స్క్రీన్‌కు జోడించబడింది."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"పరికరంలో చిత్రాలు ఏవీ అందుబాటులో లేవు."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"పరిచయం ఫోటో"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"అనుకూల లేబుల్ పేరు"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"ఫోటోను తీసివేయి"</string>
+    <string name="noContacts" msgid="2228592924476426108">"మీ పరిచయాల జాబితా ఖాళీగా ఉంది"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ఈ లేబుల్‌తో పరిచయాలు ఏవీ లేవు"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ఈ ఖాతాలో పరిచయాలు ఏవీ లేవు"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"మీ పరిచయాల జాబితా ఖాళీగా ఉంది"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> సేవ్ చేయబడింది"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"పరిచయం సేవ్ చేయబడింది"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"పరిచయాలు వేరు చేయబడ్డాయి"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"పరిచయం మార్పులను సేవ్ చేయలేకపోయింది"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"పరిచయాన్ని అన్‌లింక్ చేయలేకపోయింది"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"పరిచయాన్ని లింక్ చేయలేకపోయింది"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"పరిచయాన్ని సేవ్ చేయడంలో లోపం ఏర్పడింది"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"పరిచయం ఫోటో మార్పులను సేవ్ చేయలేకపోయింది"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"లేబుల్‌ను లోడ్ చేయడంలో విఫలమైంది"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"లేబుల్ తొలగించబడింది"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"లేబుల్ సృష్టించబడింది"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"లేబుల్‌ను సృష్టించడం సాధ్యపడదు"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"లేబుల్ నవీకరించబడింది"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"లేబుల్ నుండి తీసివేయబడ్డాయి"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"లేబుల్‌కు జోడించబడింది/జోడించబడ్డాయి"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"లేబుల్ మార్పులను సేవ్ చేయలేకపోయింది"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ఈ లేబుల్ ఇప్పటికే ఉంది"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"కొన్ని పరిచయాలకు ఇమెయిల్‌లు లేవు."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"కొన్ని పరిచయాలకు ఫోన్ నంబర్‌లు లేవు."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ఇమెయిల్‌ను పంపు"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"సందేశాన్ని పంపు"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"పరిచయాలను ఎంచుకోండి"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"పంపు"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"పరిచయాలు లేవు"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\"ని పరిచయాలకు జోడించాలా?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"మీ పరిచయాల యొక్క పేర్లు"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"మునుపటి స్క్రీన్‌కి తిరిగి రావడానికి క్లిక్ చేయండి"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ఫోన్ నంబర్‌ను జోడించండి"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ఇమెయిల్ జోడించండి"</string>
+    <string name="missing_app" msgid="1466111003546611387">"ఈ చర్యను నిర్వహించడానికి అనువర్తనం ఏదీ కనుగొనబడలేదు."</string>
+    <string name="menu_share" msgid="943789700636542260">"భాగస్వామ్యం చేయి"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"పరిచయాలకు జోడించు"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"జోడించు"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">పరిచయాలను దీని ద్వారా భాగస్వామ్యం చేయండి</item>
+      <item quantity="one">పరిచయాన్ని దీని ద్వారా భాగస్వామ్యం చేయండి</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"ఖాతాను ఎంచుకోండి"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"లేబుల్‌ను సృష్టించండి"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"లేబుల్ పేరును మార్చండి"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"లేబుల్ పేరు"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"లేబుల్ పేరు"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"వాయిస్ చాట్"</string>
+    <string name="video_chat" msgid="1872255818640336072">"వీడియో చాట్"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> పరిచయం"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> ఖాతా"</string>
+    <string name="take_photo" msgid="7496128293167402354">"ఫోటో తీయండి"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"కొత్త ఫోటో తీసుకోండి"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"ఫోటోను ఎంచుకోండి"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"కొత్త ఫోటోను ఎంచుకోండి"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"శోధిస్తోంది..."</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"తేదీ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"లేబుల్"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"రద్దు చేస్తుంది"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"వెనుకకు వెళ్తుంది"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"మూసివేస్తుంది"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"ఎంచుకున్న పరిచయాన్ని సవరించగల స్థితికి మార్చాలా? మీరు ఇప్పటి వరకు నమోదు చేసిన సమాచారం కాపీ చేయబడుతుంది."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"డైరెక్టరీ <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"సెట్టింగ్‌లు"</string>
+    <string name="menu_settings" msgid="377929915873428211">"సెట్టింగ్‌లు"</string>
+    <string name="menu_help" msgid="1680178646764069976">"సహాయం &amp; అభిప్రాయం"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"ఫోన్ నంబర్"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"పరిచయాలకు జోడించు"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"మూసివేయి"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"సంవత్సరాన్ని చేర్చు"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"ఖాతాను జోడించు"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"దిగుమతి చేయి"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"కొత్తది సృష్టించు…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" లేబుల్‌ని తొలగించాలా? (పరిచయాలు వాటంతట అవే తొలగించబడవు.)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"మరొకదానితో లింక్ చేయడానికి ముందు పరిచయం పేరు టైప్ చేయండి."</string>
+    <string name="copy_text" msgid="3257145021583508761">"క్లిప్‌బోర్డ్‌కు కాపీ చేయి"</string>
+    <string name="set_default" msgid="4417505153468300351">"డిఫాల్ట్‌గా సెట్ చేయి"</string>
+    <string name="clear_default" msgid="7193185801596678067">"డిఫాల్ట్‌ను క్లియర్ చేయి"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"వచనం కాపీ చేయబడింది"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"మార్పులను విస్మరించాలా?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"విస్మరించు"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"రద్దు చేయి"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"అనుకూలీకరణలను విస్మరించాలా?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"పరిచయాలను శోధించండి"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"పరిచయాలను తీసివేయండి"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"నా స్థానిక ప్రొఫైల్"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"నా <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ప్రొఫైల్"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"మీ పరిచయాలను Googleకు బ్యాకప్ చేసే ఖాతాను జోడించడానికి ఒక నిమిషం కేటాయించండి."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"కొత్త పరిచయాలు <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>కి సేవ్ చేయబడతాయి."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"కొత్త పరిచయాల కోసం డిఫాల్ట్ ఖాతాను ఎంచుకోండి:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"కొత్త పరి. సృష్టించు"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"సవరించండి"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"వీక్షణ మాత్రమే"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"సవరించాల్సిన పరిచయాన్ని ఎంచుకోండి"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"లింక్ చేసిన పరిచయాలు"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"జోడించు"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"అన్‌లింక్ చేయి"</string>
+    <string name="add_account" msgid="8201790677994503186">"ఖాతాను జోడించు"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"కొత్త ఖాతాను జోడించు"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"డేటాబేస్ ఫైల్‌లను ఎగుమతి చేయి"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"కొత్త పరిచయాన్ని సృష్టిస్తుంది"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"మరిన్ని చూడండి"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"తక్కువ చూడండి"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"ఇటీవలివి"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"పరిచయం"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"వ్యక్తిగత కాపీని సృష్టిస్తోంది..."</string>
+    <string name="tomorrow" msgid="6241969467795308581">"రేపు"</string>
+    <string name="today" msgid="8041090779381781781">"ఈ రోజు"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"ఈ రోజు <xliff:g id="TIME_INTERVAL">%s</xliff:g>కి"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"రేపు <xliff:g id="TIME_INTERVAL">%s</xliff:g>కి"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(శీర్షిక లేని ఈవెంట్)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"సెట్ చేయి"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"సంస్థ"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"మారుపేరు"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"గమనిక"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"వెబ్‌సైట్"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ఈవెంట్"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"సంబంధం"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"పేరు"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ఇమెయిల్"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"ఫోన్"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"స్థానానికి వెళ్లడానికి దిశలు"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"ఇటీవలి sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. ప్రతిస్పందించడానికి క్లిక్ చేయండి"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"ఇన్‌కమింగ్"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"అవుట్‌గోయింగ్"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"మిస్డ్"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"ఇటీవలి కాల్. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. తిరిగి కాల్ చేయడానికి క్లిక్ చేయండి"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"మీరు: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"మరిన్ని ఫీల్డ్‌లు"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"పరిచయ ఫోటోను మారుస్తుంది"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"పరిచయ ఫోటోను జోడిస్తుంది"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"పరిచయ ఫోటో"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"ఎడిటర్‌ను తెరవడం విఫలమైంది."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"దీనికి సేవ్ చేయబడుతోంది"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g>లోని సంప్రదింపు సమాచారం సవరించగలిగే విధంగా లేదు"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"పరిచయాలను లింక్ చేయి"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"రద్దు చేయి"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"ఈ పరిచయం"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"సంభావ్య నకిలీలు"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"ఈ పరిచయాలు ఒకే వ్యక్తికి సంబంధించినవి అయ్యి ఉండవచ్చు. మీరు వాటిని ఒకే పరిచయంగా లింక్ చేయవచ్చు."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>ని తొలగిస్తుంది"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>ని తొలగిస్తుంది"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"సూచనలు"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"కొత్తది"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"నావిగేషన్ డ్రాయర్‌ను తెరుస్తుంది"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"నావిగేషన్ డ్రాయర్‌ను మూసివేస్తుంది"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> లేబుల్"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"లేబుల్‌లు"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"ఖాతాలు"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"మీ చరిత్ర అంతా కలిపి చూడండి"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ఈవెంట్‌లు మరియు సందేశాలు"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ఈవెంట్‌లు"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"సందేశాలు"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"సూచనలు"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"మీ పరిచయాలను ఉత్తమంగా నిర్వహించండి మరియు ఉపయోగించండి"</string>
+    <string name="undo" msgid="1425165101664071422">"చర్య రద్దు చేయి"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>కి కాల్ చేయి"</string>
+    <string name="call_home" msgid="1990519474420545392">"ఇంటికి కాల్ చేయండి"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"మొబైల్‌కు కాల్ చేయండి"</string>
+    <string name="call_work" msgid="5328785911463744028">"కార్యాలయానికి కాల్ చేయండి"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"కార్యాలయ ఫ్యాక్స్‌కు కాల్ చేయండి"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"ఇంటి ఫ్యాక్స్‌కు కాల్ చేయండి"</string>
+    <string name="call_pager" msgid="9003902812293983281">"పేజర్‌కు కాల్ చేయండి"</string>
+    <string name="call_other" msgid="8563753966926932052">"కాల్ చేయండి"</string>
+    <string name="call_callback" msgid="1910165691349426858">"కాల్‌బ్యాక్‌కు కాల్ చేయండి"</string>
+    <string name="call_car" msgid="3280537320306436445">"కారుకు కాల్ చేయండి"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"కంపెనీ ప్రధాన నంబర్‌కు కాల్ చేయండి"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDNకి కాల్ చేయండి"</string>
+    <string name="call_main" msgid="6082900571803441339">"ప్రధాన నంబర్‌కు కాల్ చేయండి"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"ఫ్యాక్స్‌కి కాల్ చేయండి"</string>
+    <string name="call_radio" msgid="8296755876398357063">"రేడియోకు కాల్ చేయండి"</string>
+    <string name="call_telex" msgid="2223170774548648114">"టెలెక్స్‌కు కాల్ చేయండి"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"TTY/TDDకి కాల్ చేయండి"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"కార్యాలయ మొబైల్‌కు కాల్ చేయండి"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"కార్యాలయ పేజర్‌కు కాల్ చేయండి"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>కి కాల్ చేయి"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMSకు కాల్ చేయండి"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (కాల్ చేయి)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>కి వచనం పంపు"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ఇంటికి వచనం పంపండి"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"మొబైల్‌కు వచనం పంపండి"</string>
+    <string name="sms_work" msgid="2269624156655267740">"కార్యాలయానికి వచనం పంపండి"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"కార్యాలయం ఫ్యాక్స్‌కు వచనం పంపండి"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"ఇంటి ఫ్యాక్స్‌కు వచనం పంపండి"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"పేజర్‌కు వచనం పంపండి"</string>
+    <string name="sms_other" msgid="806127844607642331">"వచనం పంపండి"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"కాల్‌బ్యాక్‌కు వచనం పంపండి"</string>
+    <string name="sms_car" msgid="7444227058437359641">"కారుకు వచనం పంపండి"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"కంపెనీ ప్రధాన నంబర్‌కు వచనం పంపండి"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ISDNకి వచనం పంపండి"</string>
+    <string name="sms_main" msgid="8621625784504541679">"ప్రధాన నంబర్‌కు వచనం పంపండి"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ఫ్యాక్స్‌కు వచనం పంపండి"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"రేడియోకు వచనం పంపండి"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"టెలెక్స్‌కు వచనం పంపండి"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"TTY/TDDకి వచనం పంపండి"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"కార్యాలయ మొబైల్‌కు వచనం పంపండి"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"కార్యాలయ పేజర్‌కు వచనం పంపండి"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g>కు వచనం పంపండి"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS నంబర్‌కు వచనం పంపండి"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (సందేశం)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"వీడియో కాల్ చేస్తుంది"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"తరచుగా సంప్రదించినవాటిని క్లియర్ చేయాలా?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"మీరు పరిచయాలు మరియు ఫోన్ అనువర్తనాల్లో తరచుగా సంప్రదించిన పరిచయాల జాబితాను తీసివేస్తారు మరియు స్క్రాచ్ నుండి మీ చిరునామా ప్రాధాన్యతలను తెలుసుకునేలా ఇమెయిల్ అనువర్తనాలను నిర్బంధిస్తారు."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"తరచుగా సంప్రదించినవాటిని క్లియర్ చేస్తోంది…"</string>
+    <string name="status_available" msgid="5586870015822828392">"అందుబాటులో ఉన్నారు"</string>
+    <string name="status_away" msgid="1838861100379804730">"దూరంగా ఉన్నారు"</string>
+    <string name="status_busy" msgid="9147992455450257136">"బిజీగా ఉన్నారు"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"ఇతరం"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"డైరెక్టరీ"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"కార్యాలయ డైరెక్టరీ"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"అన్ని పరిచయాలు"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> కోసం త్వరిత సంప్రదింపు"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(పేరు లేదు)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"తరచుగా సంప్రదించబడినవి"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"ఫోన్ నంబర్‌లు గల అన్ని పరిచయాలు"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"కార్యాలయ ప్రొఫైల్ పరిచయాలు"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"తాజా విషయాలను వీక్షించండి"</string>
+    <string name="account_phone" msgid="7128032778471187553">"పరికరం"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"పేరు"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"మారుపేరు"</string>
+    <string name="name_given" msgid="4280790853455320619">"మొదటి పేరు"</string>
+    <string name="name_family" msgid="7466985689626017037">"చివరి పేరు"</string>
+    <string name="name_prefix" msgid="59756378548779822">"పేరు ఆదిప్రత్యయం"</string>
+    <string name="name_middle" msgid="8467433655992690326">"మధ్య పేరు"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"పేరు అంత్యప్రత్యయం"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ఫోనెటిక్ రూపంలో పేరు"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"ఫొనెటిక్ మొదటి పేరు"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ఫోనెటిక్ రూపంలో మధ్య పేరు"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"ఫొనెటిక్ చివరి పేరు"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"ఫోన్"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ఇమెయిల్"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"చిరునామా"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"సంస్థ"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"సంబంధం"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"ప్రత్యేక తేదీ"</string>
+    <string name="sms" msgid="1756857139634224222">"వచన సందేశం"</string>
+    <string name="postal_address" msgid="8765560217149624536">"చిరునామా"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"కంపెనీ"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"శీర్షిక"</string>
+    <string name="label_notes" msgid="8337354953278341042">"గమనికలు"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"అనుకూలం"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"వెబ్‌సైట్"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"లేబుల్‌లు"</string>
+    <string name="email_home" msgid="8573740658148184279">"ఇంటికి ఇమెయిల్ చేయండి"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"మొబైల్‌కు ఇమెయిల్ చేయండి"</string>
+    <string name="email_work" msgid="2807430017302722689">"కార్యాలయానికి ఇమెయిల్ చేయండి"</string>
+    <string name="email_other" msgid="3454004077967657109">"ఇమెయిల్ చేయండి"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g>కి ఇమెయిల్ పంపు"</string>
+    <string name="email" msgid="5668400997660065897">"ఇమెయిల్ చేయండి"</string>
+    <string name="postal_street" msgid="8133143961580058972">"వీధి"</string>
+    <string name="postal_city" msgid="6597491300084895548">"నగరం"</string>
+    <string name="postal_region" msgid="6045263193478437672">"రాష్ట్రం"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"జిప్ కోడ్"</string>
+    <string name="postal_country" msgid="7638264508416368690">"దేశం"</string>
+    <string name="map_home" msgid="1243547733423343982">"ఇంటి చిరునామాను వీక్షించండి"</string>
+    <string name="map_work" msgid="1360474076921878088">"కార్యాలయ చిరునామాను వీక్షించండి"</string>
+    <string name="map_other" msgid="3817820803587012641">"చిరునామాను వీక్షించండి"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> చిరునామాను వీక్షించండి"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIMని ఉపయోగించి చాట్ చేయండి"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Liveని ఉపయోగించి చాట్ చేయండి"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahooని ఉపయోగించి చాట్ చేయండి"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skypeని ఉపయోగించి చాట్ చేయండి"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQని ఉపయోగించి చాట్ చేయండి"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talkని ఉపయోగించి చాట్ చేయండి"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQని ఉపయోగించి చాట్ చేయండి"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabberని ఉపయోగించి చాట్ చేయండి"</string>
+    <string name="chat" msgid="9025361898797412245">"చాట్ చేయండి"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"తొలగించు"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"మరిన్ని పేరు ఫీల్డ్‌లను చూపుతుంది"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"పేరు ఫీల్డ్‌లను కుదిస్తుంది"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"మరిన్ని ఉచ్ఛారణ ఆధారిత పేరు ఫీల్డ్‌లను చూపుతుంది"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ఫొనెటిక్ పేరు ఫీల్డ్‌లను కుదిస్తుంది"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"విస్తరింపజేస్తుంది"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"కుదిస్తుంది"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"విస్తరింపజేయబడింది"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"కుదించబడింది"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"అన్ని పరిచయాలు"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"నక్షత్రం గుర్తు ఉన్నవి"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"అనుకూలీకరించు"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"పరిచయం"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"అన్ని ఇతర పరిచయాలు"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"అన్ని పరిచయాలు"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"సమకాలీకరణ సమూహాన్ని తీసివేయి"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"సమకాలీకరణ సమూహాన్ని జోడించండి"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"మరిన్ని సమూహాలు…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"సమకాలీకరణ నుండి \"<xliff:g id="GROUP">%s</xliff:g>\"ని తీసివేయడం వలన సమకాలీకరణ నుండి సమూహం చేయబడని పరిచయాలు కూడా తీసివేయబడతాయి."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ప్రదర్శన ఎంపికలను సేవ్ చేస్తోంది…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"అనుకూలీకృత వీక్షణ"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"దిగుమతి చేసిన పరిచయాలను దీనిలో సేవ్ చేయి:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM కార్డ్"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d పరిచయాలు</item>
+      <item quantity="one">1 పరిచయం</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> పరిచయాలు • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> పరిచయం • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf ఫైల్"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"దిగుమతి చేయడానికి ఏవీ లేవు"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard నుండి పరిచయాలను దిగుమతి చేయాలా?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> యొక్క దిగుమతిని రద్దు చేయాలా?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> యొక్క ఎగుమతిని రద్దు చేయాలా?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard దిగుమతి/ఎగుమతిని రద్దు చేయడం సాధ్యపడలేదు"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"తెలియని లోపం."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\"ని తెరవడం సాధ్యపడలేదు: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"ఎక్స్‌పోర్టర్‌ను ప్రారంభించడం సాధ్యపడలేదు: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ఎగమతి చేయగల పరిచయం లేదు."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"మీరు అవసరమైన అనుమతిని నిలిపివేసారు."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"ఎగుమతి సమయంలో లోపం సంభవించింది: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O లోపం"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"తగినంత మెమరీ లేదు. ఫైల్ చాలా పెద్దదిగా ఉండవచ్చు."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ఆకృతికి మద్దతు లేదు."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g>ని ఎగుమతి చేయడం పూర్తయింది."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"పరిచయాలను ఎగుమతి చేయడం పూర్తయింది."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"పరిచయాలను ఎగుమతి చేయడం పూర్తయింది, పరిచయాలను భాగస్వామ్యం చేయడానికి నోటిఫికేషన్‌ను క్లిక్ చేయండి."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"పరిచయాలను భాగస్వామ్యం చేయడానికి నొక్కండి."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g>ని ఎగుమతి చేయడం రద్దు చేయబడింది."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"పరిచయ డేటాను ఎగుమతి చేస్తోంది"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"పరిచయ డేటా ఎగుమతి చేయబడుతోంది."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"డేటాబేస్ సమాచారాన్ని పొందడం సాధ్యపడలేదు."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"ఎగుమతి చేయదగిన పరిచయాలు ఏవీ లేవు."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard కంపోజర్ సరిగ్గా ప్రారంభించబడలేదు."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"ఎగుమతి చేయడం సాధ్యపడలేదు"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"పరిచయ డేటా ఎగుమతి చేయబడలేదు.\nకారణం: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g>ని దిగుమతి చేస్తోంది"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard డేటాను చదవడం సాధ్యపడలేదు"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g>ని దిగుమతి చేయడం పూర్తయింది"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g>ని దిగుమతి చేయడం రద్దు చేయబడింది"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> కొద్దిసేపట్లో దిగుమతి చేయబడుతుంది."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ఫైల్ కొద్దిసేపట్లో దిగుమతి చేయబడుతుంది."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard దిగుమతి అభ్యర్థన తిరస్కరించబడింది. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"పరిచయాలు కొద్ది సేపట్లో ఎగుమతి చేయబడతాయి."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard ఎగుమతి అభ్యర్థన తిరస్కరించబడింది. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"పరిచయం"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard(ల)ను స్థానిక తాత్కాలిక నిల్వకు కాష్ చేస్తోంది. అసలు దిగుమతి కొద్దిసేపట్లో ప్రారంభమవుతుంది."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCardని దిగుమతి చేయడం సాధ్యపడలేదు."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"పరిచయం NFC ద్వారా స్వీకరించబడింది"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"కాష్ చేస్తోంది"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>లో <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> దిగుమతి చేయబడుతోంది: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf ఫైల్‌కు ఎగుమతి చేయి"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"ఇలా క్రమబద్ధీకరించు"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"ఫొనెటిక్ పేరు"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"ఎల్లప్పుడూ చూపు"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"ఖాళీగా ఉంటే దాచు"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"మొదటి పేరు"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"చివరి పేరు"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"పేరు ఆకృతి"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ముందుగా మొదటి పేరు"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"ముందుగా చివరి పేరు"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"ఖాతాలు"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"కొత్త పరిచయాల కోసం డిఫాల్ట్ ఖాతా"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"నా సమాచారం"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"మీ ప్రొఫైల్‌ను సెటప్ చేయండి"</string>
+    <string name="setting_about" msgid="7014388749752042863">"పరిచయాల గురించి"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"ఇష్టమైన పరిచయాలను భాగస్వామ్యం చేయి"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"పరిచయాలన్నీ భాగస్వామ్యం చేయి"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"పరిచయాలను భాగస్వామ్యం చేయడంలో విఫలమైంది."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"పరిచయాలను ఎగుమతి చేయండి"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"దీనిలో నుండి పరిచయాలను దిగుమతి చేయండి"</string>
+    <string name="share_error" msgid="948429331673358107">"ఈ పరిచయాన్ని భాగస్వామ్యం చేయడం సాధ్యపడదు."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"భాగస్వామ్యం చేయడానికి పరిచయాలు ఏవీ లేవు."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ప్రదర్శించాల్సిన పరిచయాలు"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ప్రదర్శించాల్సిన పరిచయాలు"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"వీక్షణను అనుకూలీకరించండి"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"సేవ్ చేయి"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"పరిచయాలను శోధించండి"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"ఇష్టమైనవి"</string>
+    <string name="menu_import" msgid="6107961135813836467">"దిగుమతి చేయి"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ఎగుమతి చేయి"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"బ్లాక్ చేయబడిన నంబర్‌లు"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> ద్వారా"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> ద్వారా <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"శోధించడం ఆపివేస్తుంది"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"శోధనను క్లియర్ చేయి"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"ఖాతా"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"కాల్‌ల కోసం ఎప్పుడూ ఇది ఉపయోగించు"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"గమనికతో కాల్ చేయి"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"కాల్‌తో పాటు పంపడానికి గమనికను టైప్ చేయండి…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"పంపు &amp; కాల్ చేయి"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"బిల్డ్ సంస్కరణ"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"ఓపెన్ సోర్స్ లైసెన్స్‌లు"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"ఓపెన్ సోర్స్ సాఫ్ట్‌వేర్ యొక్క లైసెన్స్ వివరాలు"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"గోప్యతా విధానం"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"సేవా నిబంధనలు"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"ఓపెన్ సోర్స్ లైసెన్స్‌లు"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"urlని తెరవడంలో విఫలమైంది."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ఎంచుకోబడింది"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> ఎంచుకోబడలేదు"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"వీడియో కాల్ చేస్తుంది"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"తొలగిస్తుంది"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"అధ్యాహారం"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> నిమి <xliff:g id="SECONDS">%2$s</xliff:g> సెక"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> గం <xliff:g id="MINUTES_1">%2$s</xliff:g> నిమి <xliff:g id="SECONDS">%3$s</xliff:g> సెక"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ఈ సత్వరమార్గం నిలిపివేయబడింది"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"పరిచయం తీసివేయబడింది"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"దిగుమతి చేయి"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"పరిచయాలను ఎంచుకోండి"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"మీ SIM కార్డ్‌లో పరిచయాలు ఏవీ లేవు"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"పరిచయం మీ జాబితాలో ఇప్పటికే ఉంది"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM పరిచయాలు దిగుమతి చేయబడ్డాయి</item>
+      <item quantity="one">1 SIM పరిచయం దిగుమతి చేయబడింది</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM పరిచయాలను దిగుమతి చేయడంలో విఫలమైంది"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM నుండి దిగుమతి చేసుకోండి"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"రద్దు చేస్తుంది"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"స్వీయ-సమకాలీకరణ ఆఫ్‌లో ఉంది. ఆన్ చేయడానికి నొక్కండి."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"తీసివేస్తుంది"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"ఖాతా సమకాలీకరణ ఆఫ్‌లో ఉంది. ఆన్ చేయడానికి నొక్కండి."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"స్వీయ సమకాలీకరణను ఆన్ చేయాలా?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"మీరు కేవలం పరిచయాలకు చేసే మార్పులే కాకుండా అన్ని అనువర్తనాలు మరియు ఖాతాలకు చేసే మార్పులు వెబ్ మరియు మీ పరికరాల మధ్య ఎప్పటికప్పుడు నవీకృతంగా ఉంచబడతాయి."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"ఆన్ చేయండి"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"కనెక్షన్ లేదు"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"మరిన్ని చూపుతుంది"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM కార్డ్ దిగుమతి ముగిసింది"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"దిగుమతి విఫలమైంది"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM కార్డ్ నుండి పరిచయాలను దిగుమతి చేయలేకపోయింది"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIMను దిగుమతి చేస్తోంది"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index bcd7b7c..6c5a4d4 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"รายชื่อติดต่อ"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"รายชื่อติดต่อ"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"ดูรายชื่อติดต่อ"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"แก้ไขรายชื่อติดต่อ"</string>
     <string name="contactsList" msgid="8661624236494819731">"รายชื่อในสมุดโทรศัพท์"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"เพิ่มรายชื่อติดต่อ"</string>
     <string name="shortcutContact" msgid="749243779392912958">"สมุดโทรศัพท์"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"โทรโดยตรง"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"สายตรง"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"ข้อความส่วนตัว"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"เลือกทางลัดของสมุดโทรศัพท์"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"เลือกหมายเลขที่จะโทร"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"เลือกหมายเลขที่จะส่งข้อความ"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"เลือกรายชื่อติดต่อ"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"เพิ่มลงในรายชื่อติดต่อ"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"เลือกรายชื่อติดต่อ"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"เลือก"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"สร้างรายชื่อติดต่อใหม่"</string>
-    <string name="starredList" msgid="4817256136413959463">"ที่ติดดาว"</string>
-    <string name="frequentList" msgid="7154768136473953056">"บ่อยครั้ง"</string>
-    <string name="strequentList" msgid="5640192862059373511">"รายการโปรด"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"รายละเอียดของรายชื่อ"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"แก้ไขรายชื่อในสมุดโทรศัพท์"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"สร้างรายชื่อ"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"แก้ไขกลุ่ม"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"สร้างกลุ่ม"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"เกี่ยวกับ"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"อัปเดต"</string>
     <string name="searchHint" msgid="8482945356247760701">"ค้นหารายชื่อติดต่อ"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"ดูสมุดโทรศัพท์"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"เพิ่มในรายการโปรด"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"ลบจากรายการโปรด"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"นำออกจากรายการโปรดแล้ว"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"แก้ไข"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"ลบ"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"เปลี่ยนรูปภาพ"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"วางบนหน้าจอหลัก"</string>
-    <string name="menu_call" msgid="3992595586042260618">"โทรหารายชื่อในสมุดโทรศัพท์"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"ส่งข้อความถึงรายชื่อในสมุดโทรศัพท์"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"สร้างทางลัด"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"ยกเลิกการลิงก์"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"แก้ไข"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"ลบ"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"เพิ่มรายชื่อผู้ติดต่อ"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"เพิ่มกลุ่ม"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"นำรายชื่อติดต่อออก"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"เปลี่ยนชื่อป้ายกำกับ"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"ลบป้ายกำกับ"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"เพิ่มผู้ติดต่อ"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"เลือกรายชื่อติดต่อ"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"เพิ่มรายชื่อติดต่อ"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"นำออกจากป้ายกำกับ"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"สร้างป้ายกำกับ"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"ยกเลิกการลิงก์รายชื่อติดต่อนี้กับรายชื่อติดต่อหลายรายการไหม"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"ยกเลิกการลิงก์"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"คุณต้องการบันทึกการเปลี่ยนแปลงที่ได้ทำไปแล้วและยกเลิกการลิงก์รายชื่อติดต่อนี้กับรายชื่อติดต่อหลายรายการไหม"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"บันทึกและยกเลิกการลิงก์"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"คุณต้องการบันทึกการเปลี่ยนแปลงที่ได้ทำไปแล้วและลิงก์กับรายชื่อติดต่อที่เลือกไว้ไหม"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"บันทึกและลิงก์"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"กำลังลิงก์"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"กำลังยกเลิกการลิงก์"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"ลิงก์"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"ดูรายชื่อติดต่อที่ลิงก์"</string>
     <string name="menu_save" msgid="1727844363591825909">"บันทึก"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"ลิงก์รายชื่อติดต่อ"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"เลือกรายชื่อติดต่อที่คุณต้องการลิงก์กับ <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"แสดงรายชื่อในสมุดโทรศัพท์ทั้งหมด"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"รายชื่อที่แนะนำ"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"รายชื่อในสมุดโทรศัพท์ทั้งหมด"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"รายชื่อติดต่อทั้งหมด"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"ลิงก์ <xliff:g id="NAME">%s</xliff:g> แล้ว"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"ลิงก์รายชื่อติดต่อแล้ว"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"ลบ <xliff:g id="NAME">%1$s</xliff:g> แล้ว"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"ลบ <xliff:g id="NAME_0">%1$s</xliff:g> และ <xliff:g id="NAME_1">%2$s</xliff:g> แล้ว"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"ลบ <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… แล้ว"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">รายชื่อติดต่อที่ลบแล้ว</item>
       <item quantity="one">รายชื่อติดต่อที่ลบแล้ว</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other">รายชื่อติดต่อ <xliff:g id="COUNT_1">%d</xliff:g> ราย</item>
+      <item quantity="one">รายชื่อติดต่อ <xliff:g id="COUNT_0">%d</xliff:g> ราย</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other">รายชื่อติดต่อ <xliff:g id="COUNT_2">%1$d</xliff:g> ราย · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one">รายชื่อติดต่อ <xliff:g id="COUNT_0">%1$d</xliff:g> ราย · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"จาก Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"จาก <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"ตั้งเสียงเรียกเข้า"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"โอนทุกสายไปยังข้อความเสียง"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"ไม่สามารถลบรายชื่อติดต่อจากบัญชีอ่านอย่างเดียว แต่สามารถซ่อนรายชื่อติดต่อได้"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"ซ่อน"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"รายชื่อติดต่อที่จะลบมีรายละเอียดจากหลายบัญชี ระบบจะซ่อนรายละเอียดจากบัญชีอ่านอย่างเดียว แต่ไม่ได้ลบรายละเอียด"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"คุณต้องเลือกรายชื่อติดต่ออย่างน้อย 2 รายการเพื่อทำการลิงก์"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"ลิงก์รายชื่อติดต่อที่เลือกไว้ไหม"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"ลิงก์"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"โอนสายไปยังข้อความเสียง"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"ยกเลิกการโอนสายไปยังข้อความเสียง"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"รายชื่อติดต่อนี้สำหรับอ่านอย่างเดียว ไม่สามารถลบออกได้ แต่คุณสามารถซ่อนได้"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"ซ่อนรายชื่อติดต่อ"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"บัญชีที่อ่านอย่างเดียวในรายชื่อติดต่อนี้จะถูกซ่อน ไม่ถูกลบออก"</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"ลบรายชื่อติดต่อนี้ไหม"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"ลบรายชื่อติดต่อที่เลือกไว้ไหม"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"ไม่สามารถลบรายชื่อติดต่อจากบัญชีอ่านอย่างเดียว แต่สามารถซ่อนรายชื่อติดต่อได้"</string>
@@ -90,276 +92,442 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"การลบรายชื่อติดต่อนี้จะลบรายละเอียดจากหลายบัญชี"</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"ลบรายชื่อติดต่อนี้ไหม"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"ลบ"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"ยกเลิกการเปลี่ยนแปลง"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"ไม่มีรายชื่อติดต่อนี้"</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"เพิ่มรายชื่อติดต่อลงในหน้าจอหลักแล้ว"</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"เพิ่ม <xliff:g id="NAME">%s</xliff:g> ลงในหน้าจอหลักแล้ว"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"สร้างรายชื่อในสมุดโทรศัพท์ใหม่"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"สร้างรายชื่อติดต่อใหม่"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"องค์กร"</item>
-    <item msgid="7196592230748086755">"หมายเหตุ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ไม่มีรูปภาพให้ใช้งานบนแท็บเล็ต"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"ไม่มีรูปให้ใช้งานบนโทรศัพท์"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"ไม่มีรูปภาพให้ใช้งานบนอุปกรณ์"</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"ภาพของรายชื่อติดต่อ"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"ชื่อป้ายที่กำหนดเอง"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"ส่งการโทรไปยังข้อความเสียงโดยตรง"</string>
     <string name="removePhoto" msgid="4898105274130284565">"นำภาพออก"</string>
-    <string name="noContacts" msgid="4955659076981974652">"ไม่มีรายชื่อติดต่อ"</string>
-    <string name="noGroups" msgid="8614664663561385253">"ไม่มีกลุ่ม"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"คุณจำเป็นต้องมีบัญชีเพื่อสร้างกลุ่ม"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"ไม่มีสมาชิกในกลุ่มนี้"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"หากต้องการเพิ่มสมาชิก ให้แก้ไขกลุ่ม"</string>
-    <string name="savingContact" msgid="4075751076741924939">"กำลังบันทึกรายชื่อ…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"รายชื่อติดต่อของคุณว่างเปล่า"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"ไม่มีรายชื่อติดต่อที่มีป้ายกำกับนี้"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"ไม่มีรายชื่อติดต่อในบัญชีนี้"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"รายชื่อติดต่อของคุณว่างเปล่า"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"บันทึก <xliff:g id="DISPLAY_NAME">%s</xliff:g> แล้ว"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"บันทึกรายชื่อติดต่อแล้ว"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"ยกเลิกการลิงก์รายชื่อติดต่อแล้ว"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"ไม่สามารถบันทึกการเปลี่ยนแปลงรายชื่อติดต่อ"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"ไม่สามารถยกเลิกการลิงก์รายชื่อติดต่อ"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"ไม่สามารถลิงก์รายชื่อติดต่อ"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"เกิดข้อผิดพลาดในการบันทึกรายชื่อติดต่อ"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"ไม่สามารถบันทึกการเปลี่ยนแปลงในรูปภาพรายชื่อติดต่อ"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"บันทึกกลุ่มแล้ว"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"ไม่สามารถบันทึกการเปลี่ยนแปลงในกลุ่ม"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> รายชื่อติดต่อมีหมายเลขโทรศัพท์</item>
-      <item quantity="one">1 รายชื่อติดต่อมีหมายเลขโทรศัพท์</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"ไม่มีรายชื่อติดต่อที่มีหมายเลขโทรศัพท์"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">พบ <xliff:g id="COUNT">%d</xliff:g> รายการ</item>
-      <item quantity="one">พบ 1 รายการ</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"ไม่สามารถบันทึกการเปลี่ยนแปลงรายชื่อติดต่อ"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"ไม่สามารถยกเลิกการลิงก์รายชื่อติดต่อ"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"ไม่สามารถลิงก์รายชื่อติดต่อ"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"เกิดข้อผิดพลาดในการบันทึกรายชื่อติดต่อ"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"ไม่สามารถบันทึกการเปลี่ยนแปลงในรูปภาพรายชื่อติดต่อ"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"โหลดป้ายกำกับไม่สำเร็จ"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"ลบป้ายกำกับออกแล้ว"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"สร้างป้ายกำกับแล้ว"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"ไม่สามารถสร้างป้ายกำกับ"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"อัปเดตป้ายกำกับแล้ว"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"นำออกจากป้ายกำกับแล้ว"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"เพิ่มรายชื่อติดต่อไปยังป้ายกำกับแล้ว"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"ไม่สามารถบันทึกการเปลี่ยนแปลงป้ายกำกับได้"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"ป้ายกำกับนี้มีอยู่แล้ว"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"รายชื่อติดต่อบางรายการไม่มีอีเมล"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"รายชื่อติดต่อบางรายการไม่มีหมายเลขโทรศัพท์"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ส่งอีเมล"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"ส่งข้อความ"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"เลือกรายชื่อติดต่อ"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"ส่ง"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"ไม่มีรายชื่อติดต่อ"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">พบ <xliff:g id="COUNT">%d</xliff:g> รายการ</item>
-      <item quantity="one">พบ 1 รายการ</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"ทั้งหมด"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"รายการโปรด"</string>
-    <string name="callBack" msgid="5498224409038809224">"ติดต่อกลับ"</string>
-    <string name="callAgain" msgid="3197312117049874778">"โทรอีกครั้ง"</string>
-    <string name="returnCall" msgid="8171961914203617813">"โทรกลับ"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"เพิ่ม \"<xliff:g id="EMAIL">%s</xliff:g>\" ในสมุดโทรศัพท์หรือไม่"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"ภาพของรายชื่อ"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"รายชื่อในสมุดโทรศัพท์ <xliff:g id="CURRENT_NUMBER">%s</xliff:g> จาก <xliff:g id="TOTAL_NUMBER">%s</xliff:g> รายการ"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"ชื่อของรายชื่อในสมุดโทรศัพท์ของคุณ"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"ไม่พบแอปพลิเคชันสำหรับการทำงานนี้"</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"คลิกเพื่อกลับไปยังหน้าจอก่อนหน้า"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"เพิ่มหมายเลขโทรศัพท์"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"เพิ่มอีเมล"</string>
     <string name="missing_app" msgid="1466111003546611387">"ไม่พบแอปสำหรับการทำงานนี้"</string>
     <string name="menu_share" msgid="943789700636542260">"ใช้ร่วมกัน"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"เพิ่มในสมุดติดต่อ"</string>
-    <string name="share_via" msgid="563121028023030093">"ใช้สมุดโทรศัพท์ร่วมกันทาง"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"สร้างกลุ่มภายในบัญชี"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"เพิ่ม"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">แชร์ผู้ติดต่อผ่านทาง</item>
+      <item quantity="one">แชร์ผู้ติดต่อผ่านทาง</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"เลือกบัญชี"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"สร้างป้ายกำกับ"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"เปลี่ยนชื่อป้ายกำกับ"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"ชื่อป้ายกำกับ"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"ชื่อป้ายกำกับ"</string>
     <string name="audio_chat" msgid="2535716629358298691">"แชทด้วยเสียง"</string>
     <string name="video_chat" msgid="1872255818640336072">"วิดีโอแชท"</string>
-    <string name="connections" msgid="8098440723172028350">"การเชื่อมต่อ"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"เพิ่มการเชื่อมต่อ"</string>
-    <string name="recent" msgid="2659189233141493004">"ล่าสุด"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"การอัปเดตล่าสุด"</string>
     <string name="account_type_format" msgid="718948015590343010">"รายชื่อในสมุดโทรศัพท์จาก <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"บัญชี <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"ไม่สามารถแก้ไขได้จากแอปพลิเคชันนี้"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"ไม่สามารถแก้ไขได้ในอุปกรณ์นี้"</string>
     <string name="take_photo" msgid="7496128293167402354">"ถ่ายภาพ"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"ถ่ายภาพใหม่"</string>
     <string name="pick_photo" msgid="2129509985223564942">"เลือกรูปภาพ"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"เลือกรูปภาพใหม่"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"กำลังอัปเดตรายการรายชื่อติดต่อ"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"กำลังค้นหา..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"แสดงรายการที่เลือก"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"แสดงทั้งหมด"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"เลือกทั้งหมด"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"ยกเลิกการเลือกทั้งหมด"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"เพิ่มใหม่"</string>
-    <string name="add_organization" msgid="7311893231158291197">"เพิ่มองค์กร"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"วันที่"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"ชื่อกลุ่ม"</string>
-    <string name="change_photo" msgid="8530597935483526383">"เปลี่ยน"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"รูปภาพหลัก"</string>
-    <string name="description_star" msgid="2605854427360036550">"รายการโปรด"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"แก้ไขรายชื่อติดต่อ"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"ลิงก์รายชื่อติดต่อปัจจุบันกับรายชื่อติดต่อที่เลือกใช่ไหม"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"ป้ายกำกับ"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"ยกเลิก"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"กลับ"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"ปิด"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"เปลี่ยนไปแก้ไขรายชื่อติดต่อที่เลือกหรือไม่ ข้อมูลที่คุณป้อนไว้จนถึงขณะนี้จะถูกคัดลอก"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"คัดลอกไปยังสมุดโทรศัพท์ของฉัน"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"เพิ่มในสมุดโทรศัพท์ของฉัน"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"ไดเรกทอรี <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"กำหนดเอง"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"การตั้งค่า"</string>
     <string name="menu_settings" msgid="377929915873428211">"การตั้งค่า"</string>
     <string name="menu_help" msgid="1680178646764069976">"ความช่วยเหลือและความคิดเห็น"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ตัวเลือกการแสดงผล"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"หมายเลขโทรศัพท์"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"เพิ่มลงในสมุดโทรศัพท์"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"เพิ่มลงในรายชื่อติดต่อ"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"ปิด"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"รวมปี"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"รายชื่อติดต่อ"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"กำลังโหลด..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"สร้างรายชื่อติดต่อใหม่"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"เพิ่มบัญชี"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"นำเข้าสมุดโทรศัพท์"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"สร้างกลุ่มใหม่"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"สร้างกลุ่มใหม่"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> กลุ่ม</item>
-      <item quantity="one">1 กลุ่ม</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"ลบกลุ่ม \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" หรือไม่ (รายชื่อติดต่อจะไม่ถูกลบ)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> คนจาก <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> คนจาก <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> คน</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> คน</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"นำเข้า"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"สร้างใหม่…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"ลบป้ายกำกับ \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" ไหม (รายชื่อติดต่อจะไม่ถูกลบ)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"พิมพ์ชื่อของผู้ติดต่อก่อนลิงก์กับรายชื่อติดต่ออื่น"</string>
     <string name="copy_text" msgid="3257145021583508761">"คัดลอกไปยังคลิปบอร์ด"</string>
     <string name="set_default" msgid="4417505153468300351">"ตั้งเป็นค่าเริ่มต้น"</string>
     <string name="clear_default" msgid="7193185801596678067">"ล้างจากค่าเริ่มต้น"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"คัดลอกข้อความแล้ว"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"ยกเลิกการเปลี่ยนแปลงหรือไม่"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"ยกเลิก"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"ตั้งค่าโปรไฟล์ของฉัน"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"พิมพ์ชื่อของบุคคล"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"ชื่อกลุ่ม"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"ยกเลิกการเปลี่ยนแปลงหรือไม่"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"ทิ้ง"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"ยกเลิก"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"ยกเลิกการปรับแต่งหรือไม่"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"ค้นหารายชื่อติดต่อ"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"นำรายชื่อติดต่อออก"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"โปรไฟล์ในอุปกรณ์ของฉัน"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"โปรไฟล์ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ของฉัน"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"แสดงรายชื่อติดต่อทั้งหมด"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"คุณจะใช้งานรายชื่อติดต่อได้ดีขึ้นโดยผ่านบัญชี Google\n\n• เข้าถึงได้จากเว็บเบราว์เซอร์ทุกชนิด\n• สำรองข้อมูลรายชื่อติดต่อของคุณอย่างปลอดภัย"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"เก็บรายชื่อติดต่อของคุณไว้อย่างปลอดภัยด้วยการซิงค์กับบริการออนไลน์แม้ว่าคุณจะทำโทรศัพท์หาย"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"เพิ่มบัญชี"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"ผู้ติดต่อใหม่ของคุณจะไม่ได้รับการสำรองข้อมูล เพิ่มบัญชีที่สำรองข้อมูลผู้ติดต่อออนไลน์หรือไม่"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"เพิ่มบัญชีที่จะใช้สำรองข้อมูลรายชื่อติดต่อไปยัง Google"</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"รายชื่อติดต่อใหม่จะบันทึกไว้ใน <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"เลือกบัญชีเริ่มต้นสำหรับรายชื่อติดต่อใหม่:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"เพิ่มรายชื่อติดต่อ"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"สร้างรายชื่อติดต่อใหม่"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"แก้ไขรายชื่อติดต่อ"</string>
-    <string name="keep_local" msgid="1258761699192993322">"จัดเก็บในตัวเครื่อง"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"ดูอย่างเดียว"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"เลือกผู้ติดต่อเพื่อแก้ไข"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"รายชื่อติดต่อที่ลิงก์"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"เพิ่ม"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"ยกเลิกการลิงก์"</string>
     <string name="add_account" msgid="8201790677994503186">"เพิ่มบัญชี"</string>
     <string name="add_new_account" msgid="5748627740680940264">"เพิ่มบัญชีใหม่"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"ส่งออกไฟล์ฐานข้อมูล"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"เพิ่มรายชื่อติดต่อใหม่"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"สร้างรายชื่อติดต่อใหม่"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ดูเพิ่มเติม"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"ดูน้อยลง"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"ดูทั้งหมด"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"ล่าสุด"</string>
     <string name="about_card_title" msgid="2920942314212825637">"เกี่ยวกับ"</string>
-    <string name="send_message" msgid="8938418965550543196">"ส่งข้อความ"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"กำลังสร้างสำเนาส่วนตัว..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"เมื่อวานนี้"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"กำลังสร้างสำเนาส่วนบุคคล..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"พรุ่งนี้"</string>
     <string name="today" msgid="8041090779381781781">"วันนี้"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"วันนี้เวลา <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"พรุ่งนี้เวลา <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g> <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(กิจกรรมไม่มีชื่อ)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"ตั้งค่า"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
     <string name="header_organization_entry" msgid="8515394955666265406">"องค์กร"</string>
     <string name="header_nickname_entry" msgid="6743561883967451485">"ชื่อเล่น"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"โน้ต"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"หมายเหตุ"</string>
     <string name="header_website_entry" msgid="1411467850000824745">"เว็บไซต์"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"กิจกรรม"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"ความสัมพันธ์"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"บัญชี"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"ชื่อ"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"อีเมล"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"โทรศัพท์"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"รูปภาพ"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"คลิกเพื่อขยายตัวแก้ไขรายชื่อติดต่อ"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"คลิกเพื่อยุบตัวแก้ไขรายชื่อติดต่อ"</string>
     <string name="content_description_directions" msgid="2686791825798189335">"เส้นทางไปยังสถานที่"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS ล่าสุด <xliff:g id="MESSAGE_BODY">%s</xliff:g> <xliff:g id="PHONE_NUMBER">%s</xliff:g> <xliff:g id="DATE">%s</xliff:g> คลิกเพื่อตอบกลับ"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"SMS ล่าสุด <xliff:g id="MESSAGE_BODY">%1$s</xliff:g> <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> <xliff:g id="DATE">%3$s</xliff:g> คลิกเพื่อตอบกลับ"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"สายโทรเข้า"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"สายโทรออก"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"ไม่ได้รับ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"โทรล่าสุด <xliff:g id="CALL_TYPE">%s</xliff:g> <xliff:g id="PHONE_NUMBER">%s</xliff:g> <xliff:g id="DATE">%s</xliff:g> คลิกเพื่อโทรกลับ"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"โทรล่าสุด <xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> <xliff:g id="DATE">%3$s</xliff:g> คลิกเพื่อโทรกลับ"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"คุณ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"แฮงเอาท์ทำงานได้ดียิ่งขึ้นเมื่อคุณป้อนตัวระบุแฮงเอาท์ของบุคคลที่ต้องการลงในช่องอีเมลหรือช่องโทรศัพท์"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"ช่องอื่นๆ"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"เปลี่ยนรูปภาพ"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"ไม่สามารถเปิดตัวแก้ไข"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"บันทึกลงใน"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"ขณะนี้กำลังบันทึกไปยัง <xliff:g id="ACCOUNT_NAME">%s</xliff:g> แตะ 2 ครั้งเพื่อเลือกบัญชีอื่น"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">รายชื่อติดต่อที่ลิงก์ (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">รายชื่อติดต่อที่ลิงก์</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"รายชื่อติดต่อที่ลิงก์ <xliff:g id="COUNT">%d</xliff:g> รายการ"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"ช่องอื่นๆ"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"เปลี่ยนรูปภาพรายชื่อติดต่อ"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"เพิ่มรูปภาพรายชื่อติดต่อ"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"รูปภาพรายชื่อติดต่อ"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"ไม่สามารถเปิดตัวแก้ไข"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"บันทึกลงใน"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"ข้อมูลติดต่อจาก <xliff:g id="ACCOUNT">%s</xliff:g> ไม่สามารถแก้ไขได้"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ลิงก์รายชื่อติดต่อ"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"ยกเลิก"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other">อาจซ้ำกับรายการอื่น <xliff:g id="COUNT">%d</xliff:g> รายการ</item>
-      <item quantity="one">อาจซ้ำกับรายการอื่น 1 รายการ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">ลิงก์รายชื่อติดต่อ <xliff:g id="COUNT">%d</xliff:g> รายการ</item>
-      <item quantity="one">ลิงก์รายชื่อติดต่อ 1 รายการ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"รายชื่อติดต่อนี้"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"อาจซ้ำกับรายการอื่น"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"รายชื่อติดต่อเหล่านี้อาจเป็นบุคคลเดียวกัน คุณสามารถลิงก์รายชื่อติดต่อดังกล่าวเป็นรายชื่อติดต่อเดียว"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"รายชื่อติดต่อที่ลิงก์"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"จากบัญชีของคุณ"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ถ่ายภาพ"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"รูปภาพทั้งหมด"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"เลือกรูปภาพ"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"จาก <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"ลบ<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"ลบ<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"ลบ <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"ไม่ได้เลือกรูปภาพจาก <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"เลือกรูปภาพจาก <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"รูปภาพนี้ไม่ได้เลือกจากบัญชีที่ไม่รู้จัก"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"รูปภาพนี้เลือกจากบัญชีที่ไม่รู้จัก"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"กำลังอัปเดตรายการสมุดโทรศัพท์เพื่อแสดงการเปลี่ยนภาษา\n\nโปรดรอสักครู่..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"เพิ่มหมายเลข"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"บล็อกหมายเลข"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"เพิ่มหมายเลขหรือค้นหาผู้ติดต่อ"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"เลิกบล็อก <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"เลิกบล็อก"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"บล็อก <xliff:g id="NUMBER">%1$s</xliff:g> ไหม"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"บล็อก"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"บล็อก <xliff:g id="NUMBER">%1$s</xliff:g> แล้ว"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"เลิกบล็อก <xliff:g id="NUMBER">%1$s</xliff:g> แล้ว"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ไม่ถูกต้อง"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"การบล็อกสายเรียกเข้าปิดชั่วคราว"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"นำเข้า"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ดูหมายเลข"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"เพิ่มหมายเลข"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ปิดการบล็อกสายเรียกเข้า 48 ชั่วโมง"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"ปิดใช้งานเนื่องจากมีการโทรเข้าหมายเลขฉุกเฉิน"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"เลิกทำ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ถูกบล็อกอยู่แล้ว"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"เลิกบล็อกหมายเลข"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"รายละเอียดรายชื่อติดต่อสำหรับ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"การนำเข้าล้มเหลว"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"นำเข้าหมายเลข"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"เปิด"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"คำแนะนำ"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"ใหม่"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"เปิดลิ้นชักการนำทาง"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"ปิดลิ้นชักการนำทาง"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"ป้ายกำกับ<xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"ป้ายกำกับ"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"บัญชี"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"ดูประวัติพร้อมกัน"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"กิจกรรมและข้อความ"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"กิจกรรม"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"ข้อความ"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"คำแนะนำ"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"จัดรายชื่อติดต่อให้เป็นระเบียบและใช้ประโยชน์ได้ง่าย"</string>
+    <string name="undo" msgid="1425165101664071422">"เลิกทำ"</string>
+    <string name="call_custom" msgid="6385303130912713318">"โทร <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"โทรเข้าบ้าน"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"โทรเข้ามือถือ"</string>
+    <string name="call_work" msgid="5328785911463744028">"โทรหาที่ทำงาน"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"โทรหาแฟกซ์ที่ทำงาน"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"โทรเข้าหมายเลขแฟกซ์ที่บ้าน"</string>
+    <string name="call_pager" msgid="9003902812293983281">"โทรหาเพจเจอร์"</string>
+    <string name="call_other" msgid="8563753966926932052">"โทร"</string>
+    <string name="call_callback" msgid="1910165691349426858">"โทรหาหมายเลขติดต่อกลับ"</string>
+    <string name="call_car" msgid="3280537320306436445">"โทรเข้าโทรศัพท์ในรถ"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"โทรหาโทรศัพท์หลักของบริษัท"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"โทรหา ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"โทรเข้าโทรศัพท์หลัก"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"โทรเข้าหมายเลขแฟกซ์"</string>
+    <string name="call_radio" msgid="8296755876398357063">"โทรเข้าวิทยุ"</string>
+    <string name="call_telex" msgid="2223170774548648114">"โทรเข้าหมายเลขเทเล็กซ์"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"โทรหา TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"โทรเข้ามือถือที่ทำงาน"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"โทรเข้าเพจเจอร์ที่ทำงาน"</string>
+    <string name="call_assistant" msgid="670941612175068337">"โทร <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"โทรหา MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (โทร)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"ส่งข้อความ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"ส่งข้อความเข้าโทรศัพท์บ้าน"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"ส่งข้อความเข้ามือถือ"</string>
+    <string name="sms_work" msgid="2269624156655267740">"ส่งข้อความถึงโทรศัพท์ที่ทำงาน"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"ส่งข้อความถึงแฟกซ์ที่ทำงาน"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"ส่งข้อความเข้าหมายเลขแฟกซ์บ้าน"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"ส่งข้อความถึงเพจเจอร์"</string>
+    <string name="sms_other" msgid="806127844607642331">"ข้อความ"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"ส่งข้อความถึงหมายเลขติดต่อกลับ"</string>
+    <string name="sms_car" msgid="7444227058437359641">"ส่งข้อความถึงรถยนต์"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"ส่งข้อความเข้าโทรศัพท์หลักของบริษัท"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"ส่งข้อความถึง ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"ส่งข้อความถึงโทรศัพท์หลัก"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"ส่งข้อความถึงหมายเลขแฟกซ์"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ส่งข้อความถึงวิทยุ"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ส่งข้อความถึงเทเล็กซ์"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"ส่งข้อความถึง TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"ส่งข้อความถึงโทรศัพท์มือถือที่ทำงาน"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"ส่งข้อความเข้าเพจเจอร์ที่ทำงาน"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"ส่งข้อความถึง <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"ส่งข้อความถึง MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (ข้อความ)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ใช้แฮงเอาท์วิดีโอ"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"ล้างผู้ที่คุณติดต่อด้วยบ่อยๆ หรือไม่"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"คุณจะล้างรายชื่อของผู้ที่ติดต่อด้วยบ่อยๆ ในแอปพลิเคชัน Contact และ Phone และบังคับให้แอปพลิเคชันอีเมลเรียนรู้ค่ากำหนดที่อยู่ของคุณใหม่ตั้งแต่ต้น"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"กำลังล้างผู้ที่คุณติดต่อด้วยบ่อยๆ…"</string>
+    <string name="status_available" msgid="5586870015822828392">"ว่าง"</string>
+    <string name="status_away" msgid="1838861100379804730">"ไม่อยู่"</string>
+    <string name="status_busy" msgid="9147992455450257136">"ไม่ว่าง"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"อื่นๆ"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ไดเรกทอรี"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"ไดเรกทอรีที่ทำงาน"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"รายชื่อติดต่อทั้งหมด"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"สมุดโทรศัพท์ด่วนสำหรับ <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(ไม่มีชื่อ)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"ที่ติดต่อบ่อยครั้ง"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"รายชื่อติดต่อทั้งหมดที่มีหมายเลขโทรศัพท์"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"รายชื่อติดต่อในโปรไฟล์งาน"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"ดูการอัปเดต"</string>
+    <string name="account_phone" msgid="7128032778471187553">"อุปกรณ์"</string>
+    <string name="account_sim" msgid="6519016427905087952">"ซิม"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"ชื่อ"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"ชื่อเล่น"</string>
+    <string name="name_given" msgid="4280790853455320619">"ชื่อ"</string>
+    <string name="name_family" msgid="7466985689626017037">"นามสกุล"</string>
+    <string name="name_prefix" msgid="59756378548779822">"คำนำหน้าชื่อ"</string>
+    <string name="name_middle" msgid="8467433655992690326">"ชื่อกลาง"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"คำต่อท้ายชื่อ"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"ชื่อแบบออกเสียง"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"การออกเสียงชื่อ"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"ชื่อกลางแบบออกเสียง"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"การออกเสียงนามสกุล"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"โทรศัพท์"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"อีเมล"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"ที่อยู่"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"องค์กร"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"ความสัมพันธ์"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"วันที่พิเศษ"</string>
+    <string name="sms" msgid="1756857139634224222">"ข้อความตัวอักษร"</string>
+    <string name="postal_address" msgid="8765560217149624536">"ที่อยู่"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"บริษัท"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"ชื่อ"</string>
+    <string name="label_notes" msgid="8337354953278341042">"หมายเหตุ"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"กำหนดเอง"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"เว็บไซต์"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"ป้ายกำกับ"</string>
+    <string name="email_home" msgid="8573740658148184279">"ส่งไปที่อีเมลส่วนตัว"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"ส่งอีเมลเข้ามือถือ"</string>
+    <string name="email_work" msgid="2807430017302722689">"ส่งอีเมลถึงที่ทำงาน"</string>
+    <string name="email_other" msgid="3454004077967657109">"อีเมล"</string>
+    <string name="email_custom" msgid="5536404237099078802">"ส่งอีเมล <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"อีเมล"</string>
+    <string name="postal_street" msgid="8133143961580058972">"ถนน"</string>
+    <string name="postal_city" msgid="6597491300084895548">"เมือง"</string>
+    <string name="postal_region" msgid="6045263193478437672">"รัฐ"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"รหัสไปรษณีย์"</string>
+    <string name="postal_country" msgid="7638264508416368690">"ประเทศ"</string>
+    <string name="map_home" msgid="1243547733423343982">"ดูที่อยู่บ้าน"</string>
+    <string name="map_work" msgid="1360474076921878088">"ดูที่อยู่ที่ทำงาน"</string>
+    <string name="map_other" msgid="3817820803587012641">"ดูที่อยู่"</string>
+    <string name="map_custom" msgid="8761800628069473526">"ดูที่อยู่ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"แชทโดยใช้ AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"แชทโดยใช้ Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"แชทโดยใช้ Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"แชทโดยใช้ Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"แชทโดยใช้ QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"แชทโดยใช้ Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"แชทโดยใช้ ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"แชทโดยใช้ Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"แชท"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"ลบ"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"แสดงช่องชื่อเพิ่ม"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"ยุบช่องชื่อ"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"แสดงช่องคำอ่านชื่อเพิ่ม"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"ยุบช่องคำอ่านชื่อ"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"ขยาย"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"ยุบ"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"ขยายแล้ว"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"ยุบแล้ว"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"รายชื่อติดต่อทั้งหมด"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ที่ติดดาว"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"กำหนดค่า"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"รายชื่อติดต่อ"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"รายชื่อติดต่ออื่นทั้งหมด"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"รายชื่อติดต่อทั้งหมด"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"นำกลุ่มที่ซิงค์ออก"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"เพิ่มกลุ่มที่ซิงค์"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"กลุ่มเพิ่มเติม…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"การนำ \"<xliff:g id="GROUP">%s</xliff:g>\" ออกจากการซิงค์จะนำรายชื่อติดต่อที่ไม่ได้จัดกลุ่มไว้ออกจากการซิงค์ด้วย"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"บันทึกตัวเลือกการแสดงผล..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"มุมมองที่กำหนดเอง"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"บันทึกรายชื่อติดต่อที่นำเข้าลงใน:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"ซิมการ์ด"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"ซิม <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">ผู้ติดต่อ %1$d คน</item>
+      <item quantity="one">ผู้ติดต่อ 1 คน</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other">ผู้ติดต่อ <xliff:g id="COUNT_2">^1</xliff:g> คน • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one">ผู้ติดต่อ <xliff:g id="COUNT_0">^1</xliff:g> คน • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"ไฟล์ .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"ไม่มีรายการที่จะนำเข้า"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"นำเข้ารายชื่อติดต่อจาก vCard ไหม"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"ยกเลิกการนำเข้า <xliff:g id="FILENAME">%s</xliff:g> หรือไม่"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"ยกเลิกการส่งออก <xliff:g id="FILENAME">%s</xliff:g> หรือไม่"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"ไม่สามารถยกเลิกการนำเข้า/ส่งออก vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"ข้อผิดพลาดที่ไม่รู้จัก"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"ไม่สามารถเปิด \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"เริ่มใช้งานโปรแกรมส่งออกไม่ได้: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"ไม่มีรายชื่อติดต่อที่สามารถส่งออกได้"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"คุณปิดใช้สิทธิ์ที่จำเป็นแล้ว"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"เกิดข้อผิดพลาดระหว่างส่งออก: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"ข้อผิดพลาด I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"หน่วยความจำไม่เพียงพอ ไฟล์อาจใหญ่เกินไป"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"ไม่สนับสนุนรูปแบบนี้"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"ส่งออก <xliff:g id="FILENAME">%s</xliff:g> เสร็จแล้ว"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"ส่งออกรายชื่อติดต่อเรียบร้อยแล้ว"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"ส่งออกรายชื่อติดต่อเสร็จแล้ว คลิกการแจ้งเตือนเพื่อแชร์รายชื่อติดต่อ"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"แตะเพื่อแชร์รายชื่อติดต่อ"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"ยกเลิกการส่งออก <xliff:g id="FILENAME">%s</xliff:g> แล้ว"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"กำลังส่งออกข้อมูลสมุดโทรศัพท์"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"กำลังส่งออกข้อมูลรายชื่อติดต่อ"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ไม่สามารถดึงข้อมูลจากฐานข้อมูล"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"ไม่มีรายชื่อติดต่อที่สามารถส่งออกได้"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"โปรแกรมเขียนข้อความ vCard เริ่มการทำงานไม่ถูกต้อง"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"ไม่สามารถส่งออก"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"ไม่ได้ส่งออกข้อมูลรายชื่อติดต่อ\nสาเหตุ: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"กำลังนำเข้า <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"ไม่สามารถอ่านข้อมูล vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"นำเข้า vCard <xliff:g id="FILENAME">%s</xliff:g> เรียบร้อยแล้ว"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"ยกเลิกการนำเข้า <xliff:g id="FILENAME">%s</xliff:g> แล้ว"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"การนำเข้า <xliff:g id="FILENAME">%s</xliff:g> จะเกิดขึ้นในไม่ช้า"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"ไฟล์จะถููกนำเข้าในไม่ช้า"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"คำขอนำเข้า vCard ถูกปฏิเสธ ลองใหม่ภายหลัง"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"ระบบจะส่งออกรายชื่อติดต่อในไม่ช้า"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"คำขอส่งออก vCard ถูกปฏิเสธ ลองใหม่ภายหลัง"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"สมุดโทรศัพท์"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"กำลังแคช vCard ไปยังที่จัดเก็บข้อมูลชั่วคราวในตัวเครื่อง การนำเข้าจริงจะเริ่มต้นในอีกสักครู่"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"ไม่สามารถนำเข้า vCard"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"ผู้ติดต่อทาง NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"กำลังแคช"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"กำลังนำเข้า <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"ส่งออกเป็นไฟล์ .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"จัดเรียงตาม"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"คำอ่านชื่อ"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"แสดงเสมอ"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"ซ่อนหากว่างเปล่า"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"ชื่อ"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"นามสกุล"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"รูปแบบชื่อ"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"ชื่อขึ้นก่อน"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"นามสกุลขึ้นก่อน"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"บัญชี"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"บัญชีเริ่มต้นสำหรับรายชื่อติดต่อใหม่"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"ข้อมูลของฉัน"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"ตั้งค่าโปรไฟล์ของคุณ"</string>
+    <string name="setting_about" msgid="7014388749752042863">"เกี่ยวกับ \"รายชื่อติดต่อ\""</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"แชร์รายชื่อติดต่อโปรด"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"แชร์รายชื่อติดต่อทั้งหมด"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"ไม่สามารถแชร์รายชื่อติดต่อ"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"ส่งออกรายชื่อติดต่อ"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"นำเข้ารายชื่อติดต่อจาก"</string>
+    <string name="share_error" msgid="948429331673358107">"ไม่สามารถแชร์รายชื่อติดต่อนี้ได้"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"ไม่มีรายชื่อติดต่อที่จะแชร์"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"รายชื่อติดต่อที่จะแสดง"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"รายชื่อติดต่อที่จะแสดง"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"ปรับแต่งมุมมอง"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"บันทึก"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"ค้นหารายชื่อติดต่อ"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"รายการโปรด"</string>
+    <string name="menu_import" msgid="6107961135813836467">"นำเข้า"</string>
+    <string name="menu_export" msgid="2658783911863503902">"ส่งออก"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"หมายเลขที่ถูกบล็อก"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"ผ่านทาง <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> ผ่านทาง <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"หยุดการค้นหา"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"ล้างการค้นหา"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"บัญชี"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"ใช้ในการโทรทุกครั้ง"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"โทรพร้อมโน้ต"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"พิมพ์โน้ตเพื่อส่งพร้อมการโทร..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ส่งและโทร"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"เวอร์ชันบิวด์"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"สัญญาอนุญาตโอเพนซอร์ส"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"รายละเอียดสัญญาอนุญาตสำหรับซอฟต์แวร์โอเพนซอร์ส"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"นโยบายความเป็นส่วนตัว"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"ข้อกำหนดในการให้บริการ"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"สัญญาอนุญาตโอเพนซอร์ส"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"เปิด URL ไม่สำเร็จ"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"เลือก <xliff:g id="ACCOUNT_INFO">%s</xliff:g> แล้ว"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"ไม่ได้เลือก <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"เริ่มแฮงเอาท์วิดีโอ"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"ลบ"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"จุดไข่ปลา"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> นาที <xliff:g id="SECONDS">%2$s</xliff:g> วินาที"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ชั่วโมง <xliff:g id="MINUTES_1">%2$s</xliff:g> นาที <xliff:g id="SECONDS">%3$s</xliff:g> วินาที"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"ทางลัดนี้ถูกปิดใช้งาน"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"รายชื่อติดต่อถูกนำออก"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"นำเข้า"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"เลือกผู้ติดต่อ"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"ไม่มีผู้ติดต่อในซิมการ์ด"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"มีผู้ติดต่อคนนี้อยู่ในรายชื่อแล้ว"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">นำเข้าผู้ติดต่อ <xliff:g id="COUNT">%d</xliff:g> รายจากซิมแล้ว</item>
+      <item quantity="one">นำเข้าผู้ติดต่อ 1 รายจากซิมแล้ว</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"นำเข้าผู้ติดต่อจากซิมไม่สำเร็จ"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"นำเข้าจากซิมการ์ด"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"ยกเลิก"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"ซิงค์อัตโนมัติปิดอยู่ แตะเพื่อเปิด"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"ปิด"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"ซิงค์บัญชีปิดอยู่ แตะเพื่อเปิด"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"เปิดซิงค์อัตโนมัติไหม"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"ระบบจะอัปเดตข้อมูลการเปลี่ยนแปลงต่างๆ ทั้ง Google Contacts รวมถึงแอปและบัญชีทั้งหมดให้เป็นปัจจุบันระหว่างเว็บและอุปกรณ์ของคุณ"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"เปิด"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"ไม่มีการเชื่อมต่อ"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"ซิม"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"แสดงเพิ่มเติม"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"นำเข้าจากซิมการ์ดเสร็จแล้ว"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"การนำเข้าล้มเหลว"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"นำเข้ารายชื่อติดต่อจากซิมการ์ดไม่ได้"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"กำลังนำเข้าจากซิมการ์ด"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 5be10c0..29ed00b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Mga Contact"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Mga Contact"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Tingnan ang Contact"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"I-edit ang Contact"</string>
     <string name="contactsList" msgid="8661624236494819731">"Mga Contact"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Magdagdag ng contact"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Contact"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direktang pag-dial"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direktang mensahe"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Pumili ng shortcut sa contact"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Pumili ng tatawagang numero"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Pumili ng numero na padadalhan ng mensahe"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Pumili ng contact"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Idagdag sa contact"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Pumili ng isang contact"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Pumili"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Gumawa ng bagong contact"</string>
-    <string name="starredList" msgid="4817256136413959463">"Naka-star"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Madalas"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Mga Paborito"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Mga detalye ng contact"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"I-edit ang contact"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Lumikha ng contact"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"I-edit ang pangkat"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Lumikha ng pangkat"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Tungkol sa"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Mga Update"</string>
     <string name="searchHint" msgid="8482945356247760701">"Maghanap ng mga contact"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Tingnan ang contact"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Idagdag sa mga paborito"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Alisin mula sa mga paborito"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Inalis sa mga paborito"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"I-edit"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"I-delete"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Palitan ang larawan"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Ilagay sa Home screen"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Tawagan ang contact"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Mag-text sa contact"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Gumawa ng shortcut"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"I-unlink"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"I-edit"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"I-delete"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Magdagdag ng Contact"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Magdagdag ng Pangkat"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Alisin ang mga contact"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Palitan ang pangalan ng label"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"I-delete ang label"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Magdagdag ng contact"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Pumili ng mga contact"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Magdagdag ng mga contact"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Alisin mula sa label"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Gumawa ng label"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"I-unlink ang contact na ito sa maraming contact?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"I-unlink"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Gusto mo bang i-save ang mga pagbabagong nagawa mo na at i-unlink ang contact na ito sa maraming contact?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"I-save at I-unlink"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Gusto mo bang i-save ang mga nagawa mo nang pagbabago at i-link sa napiling contact?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"I-save at I-link"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Nili-link"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Ina-unlink"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"I-link"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Tingnan ang naka-link na contact"</string>
     <string name="menu_save" msgid="1727844363591825909">"I-save"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"I-link ang mga contact"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Piliin ang contact na gusto mong i-link kay <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Ipakita ang lahat ng mga contact"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Mga iminumungkahing contact"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Lahat ng mga contact"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Na-link sina <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Na-link na ang mga contact"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Na-delete si <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Na-delete sina <xliff:g id="NAME_0">%1$s</xliff:g> at <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Na-delete sina <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Na-delete na ang mga contact</item>
       <item quantity="other">Na-delete na ang mga contact</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> contact</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> na contact</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> contact · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> na contact · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Mula sa Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Mula sa <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Itakda ang ringtone"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Lahat ng tawag sa voicemail"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Hindi maaaring i-delete ang mga contact mula sa mga read-only na account mo, ngunit maaaring itago ang mga ito."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Itago"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Ang contact na ide-delete ay may mga detalye mula sa maraming account. Itatago at hindi ide-delete ang mga detalye mula sa mga read-only na account."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Upang makapag-link, kailangan mo ng hindi bababa sa dalawang contact."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"I-link ang mga napiling contact?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"I-link"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Iruta sa voicemail"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Huwag iruta sa voicemail"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Read-only ang contact na ito. Hindi ito maaaring i-delete, ngunit maaari mo itong itago."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Itago ang Contact"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Itatago ang read-only na mga account sa contact na ito, hindi ide-delete."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"I-delete ang contact na ito?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"I-delete ang mga napiling contact?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Hindi maaaring i-delete ang mga contact mula sa mga read-only na account mo, ngunit maaaring itago ang mga ito."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Kapag na-delete ang contact na ito. may mga detalye mula sa maraming account na made-delete."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"I-delete ang contact na ito?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"I-delete"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"I-discard ang mga pagbabago"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Hindi umiiral ang contact."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Naidagdag ang contact sa Home screen."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Naidagdag ang <xliff:g id="NAME">%s</xliff:g> sa Home screen."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Lumikha ng bagong contact"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Lumikha ng bagong contact"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Samahan"</item>
-    <item msgid="7196592230748086755">"Tandaan"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Walang available na mga larawan sa tablet."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Walang mga larawan ang available sa telepono."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Walang available na larawan sa device."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Larawan ng contact"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Custom na pangalan ng label"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Ipadala ang mga tawag nang direkta sa voicemail"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Alisin ang larawan"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Walang mga contact"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Walang mga pangkat."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Upang lumikha ng mga pangkat kailangan mo ng isang account."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Walang mga tao sa pangkat na ito."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Upang magdagdag ng ilan, i-edit ang pangkat."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Nagse-save ng contact…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Walang laman ang iyong listahan ng mga contact"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Walang mga contact na mayroong ganitong label"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Walang mga contact sa account na ito"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Walang laman ang iyong listahan ng mga contact"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Na-save si <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Na-save ang contact"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Na-unlink ang mga contact"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Hindi ma-save ang mga pagbabago sa contact."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Hindi ma-unlink ang contact."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Hindi ma-link ang contact."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Error sa pagse-save ng contact."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Hindi ma-save ang mga pagbabago sa larawan ng contact."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Na-save ang pangkat."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Hindi ma-save ang mga pagbabago sa pangkat."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact na may mga numero ng telepono</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na contact na may mga numero ng telepono</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Walang mga contact na may mga numero ng telepono"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ang nahanap</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ang nahanap</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Hindi ma-save ang mga pagbabago sa contact"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Hindi ma-unlink ang contact"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Hindi ma-link ang contact"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Error sa pag-save ng contact"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Hindi ma-save ang mga pagbabago sa larawan ng contact"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Nabigong i-load ang label"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Na-delete ang label"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Nagawa ang label"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Hindi makagawa ng label"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"In-update ang label"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Inalis sa label"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Idinagdag sa label"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Hindi ma-save ang mga pagbabago sa label"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Mayroon nang ganyang label"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Walang mga email ang ilang contact."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Walang mga numero ng telepono ang ilang contact."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Magpadala ng email"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Magpadala ng mensahe"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Pumili ng Mga Contact"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Ipadala"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Walang mga contact"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ang nahanap</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ang nahanap</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Lahat"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Mga Paborito"</string>
-    <string name="callBack" msgid="5498224409038809224">"Tumawag pabalik"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Tawagan muli"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Pabalik na tawag"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Idagdag ang \"<xliff:g id="EMAIL">%s</xliff:g>\" sa mga contact?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"larawan ng contact"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> ng <xliff:g id="TOTAL_NUMBER">%s</xliff:g> (na) contact"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Mga pangalan ng iyong mga contact"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Walang natagpuang app na mangangasiwa sa pagkilos na ito."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"I-click upang bumalik sa nakaraang screen"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Magdagdag ng numero ng telepono"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Magdagdag ng email"</string>
     <string name="missing_app" msgid="1466111003546611387">"Walang nakitang app na gagawa sa aksyong ito."</string>
     <string name="menu_share" msgid="943789700636542260">"Ibahagi"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Idagdag sa mga contact"</string>
-    <string name="share_via" msgid="563121028023030093">"Ibahagi ang contact sa pamamagitan ng"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Lumikha ng pangkat sa ilalim ng account"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Idagdag"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Ibahagi ang mga contact sa pamamagitan ng</item>
+      <item quantity="other">Ibahagi ang mga contact sa pamamagitan ng</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Pumili ng account"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Gumawa ng label"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Palitan ang pangalan ng label"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Pangalan ng label"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Pangalan ng label"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Voice chat"</string>
     <string name="video_chat" msgid="1872255818640336072">"Video chat"</string>
-    <string name="connections" msgid="8098440723172028350">"Mga Koneksyon"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Magdagdag ng koneksyon"</string>
-    <string name="recent" msgid="2659189233141493004">"Kamakailan"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Mga kamakailang update"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> contact"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> account"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Hindi maaaring i-edit mula sa app na ito."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Hindi maaaring i-edit sa device na ito."</string>
     <string name="take_photo" msgid="7496128293167402354">"Kumuha ng larawan"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Kumuha ng bagong larawan"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Pumili ng larawan"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Pumili ng bagong larawan"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Ina-update ang listahan ng contact."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Naghahanap…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Ipakita ang napili"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Ipakita lahat"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Piliin lahat"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Alisin sa pagkakapili ang lahat"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Magdagdag ng bago"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Magdagdag ng samahan"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Petsa"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Pangalan ng pangkat"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Baguhin"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Pangunahing larawan"</string>
-    <string name="description_star" msgid="2605854427360036550">"paborito"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"I-edit ang Contact"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"I-link ang kasalukuyang contact sa piniling contact?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Lagyan ng label"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Kanselahin"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Bumalik"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"isara"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Lumipat sa pag-edit ng napiling contact? Kokopyahin ang impormasyong ipinasok mo sa ngayon."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopyahin sa Aking Mga Contact"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Idagdag sa Aking Mga Contact"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Direktoryo na <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Custom"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Mga Setting"</string>
     <string name="menu_settings" msgid="377929915873428211">"Mga Setting"</string>
     <string name="menu_help" msgid="1680178646764069976">"Tulong at feedback"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Mga pagpipilian sa pagpapakita"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Numero ng telepono"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Idagdag sa mga contact"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Idagdag sa contact"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Isara"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Isama ang taon"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Contact"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Naglo-load…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Lumikha ng bagong contact"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Magdagdag ng account"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Mag-import ng mga contact"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Lumikha ng bagong pangkat"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Bagong pangkat"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> pangkat</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> na pangkat</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Tanggalin ang pangkat na \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Hindi tatanggalin ang mismong mga contact.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> tao mula sa <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> na tao mula sa <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> tao</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> na tao</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"I-import"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Gumawa ng bagong…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"I-delete ang label na \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Ang mga contact mismo ay hindi ide-delete.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"I-type ang pangalan ng contact bago i-link sa iba."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopyahin sa clipboard"</string>
     <string name="set_default" msgid="4417505153468300351">"Itakda ang default"</string>
     <string name="clear_default" msgid="7193185801596678067">"I-clear ang default"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Kinopya ang teksto"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"I-discard ang iyong mga pagbabago?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"I-discard"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"I-set up ang profile"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"I-type ang pangalan ng tao"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Pangalan ng pangkat"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"I-discard ang mga pagbabago?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"I-discard"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Kanselahin"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"I-discard ang mga pag-customize?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Maghanap ng mga contact"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Alisin ang mga contact"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Aking lokal na profile"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Aking <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> na profile"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Ipinapakita ang lahat ng contact"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Mas mahusay na gumagana ang Mga Contact kapag may Google Account.\n\n• I-access mula sa anumang web browser.\n• Secure na i-back up ang iyong mga contact."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Panatilihing ligtas ang iyong mga contact kahit na mawala mo ang iyong telepono: mag-synchronize sa isang online na serbisyo."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Magdagdag ng account"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Hindi maba-back up ang iyong bagong contact. Magdagdag ng account na nagba-back up ng mga contact online?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Maglaan nang sandali upang magdagdag ng account na magba-back up ng iyong mga contact sa Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Mase-save ang mga bagong contact sa <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Pumili ng default na account para sa mga bagong contact:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Mag-add ng contact"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Gumawa ng bagong contact"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"I-edit"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Panatilihing lokal"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Pagtingin lang"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Pumili ng contact upang i-edit"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Mga naka-link na contact"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Magdagdag"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"I-unlink"</string>
     <string name="add_account" msgid="8201790677994503186">"Magdagdag ng account"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Magdagdag ng bagong account"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"I-export ang mga file ng database"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"magdagdag ng bagong contact"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Gumawa ng bagong contact"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Tumingin nang higit pa"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Tumingin nang mas kaunti"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Tingnan lahat"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Kamakailan"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Tungkol dito"</string>
-    <string name="send_message" msgid="8938418965550543196">"Magpadala ng mensahe"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Gumagawa ng personal na kopya..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Kahapon"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Lumilikha ng personal na kopya…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Bukas"</string>
     <string name="today" msgid="8041090779381781781">"Ngayon"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Ngayong <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Bukas nang <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Kaganapang walang pamagat)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Itakda"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Website"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Kaganapan"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Kaugnayan"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Account"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Pangalan"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Email"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telepono"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Larawan"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"I-click upang palawakin ang contact editor."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"I-click upang i-collapse ang contact editor."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"mga direksyon sa lokasyon"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"kamakailang sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. mag-click upang tumugon"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"kamakailang sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. mag-click upang tumugon"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"incoming"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"papalabas"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"hindi nasagot"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"kamakailang tawag. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. mag-click upang tumawag"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"kamakailang tawag. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. mag-click upang tumawag"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Ikaw: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Gagana nang mas maayos ang Hangouts kapag inilagay mo ang identifier sa Hangouts ng isang tao sa field ng email o sa field ng telepono."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Higit pang mga field"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Palitan ang larawan"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Hindi nabuksan ang editor."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Sine-save sa"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Kasalukuyang naipon sa <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Mag-double tap upang pumili ng ibang account."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Mga naka-link na contact (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Mga naka-link na contact (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> (na) naka-link na contact"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Higit pang mga field"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Baguhin ang larawan ng contact"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Magdagdag ng larawan ng contact"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Larawan ng contact"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Nabigong buksan ang editor."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Sine-save sa"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Hindi mae-edit ang impormasyon ng contact mula sa <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"I-LINK ANG MGA CONTACT"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"KANSELAHIN"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> Posibleng duplicate</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na Posibleng duplicate</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> naka-link na contact</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na naka-link na contact</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ang contact na ito"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Mga posibleng duplicate"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Maaaring iisang tao ang mga contact na ito. Maaari mong i-link ang mga ito sa isa\'t isa bilang iisang contact."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Mga naka-link na contact"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Mula sa iyong mga account"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Kumuha ng larawan"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Lahat ng larawan"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Pumili ng larawan"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Mula kay <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"I-delete ang <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"I-delete ang <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"I-delete ang <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Hindi napili ang larawan sa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Napili na ang larawan mula sa <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Hindi nilagyan ng check ang larawan mula sa isang hindi kilalang account"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Nalagyan na ng check ang larawan mula sa isang hindi kilalang account"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Ina-update ang listahan ng contact upang ipakita ang pagbabago ng wika.\n\nPakihintay..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Magdagdag ng numero"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"I-block ang numero"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Magdagdag ng numero, maghanap sa contact"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Gusto mo bang alisin sa pagkaka-block ang <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ALISIN SA PAGKAKA-BLOCK"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Gusto mo bang i-block ang <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"I-BLOCK"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Na-block ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Naalis sa pagkaka-block ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Hindi wasto ang <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Pansamantalang na-off ang call blocking"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Na-disable ang pagba-block ng tawag dahil nakipag-ugnayan ka sa mga pang-emergency na serbisyo mula sa teleponong ito sa nakalipas na 48 oras. Awtomatiko itong muling i-enable kapag nag-expire na ang 48 oras."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"I-import"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Tingnan ang Numero"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Magdagdag ng numero"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Na-disable ang pagba-block ng tawag sa loob ng 48 oras"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Na-disable dahil tumawag para sa emergency."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"I-UNDO"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Naka-block na ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Alisin sa pagkaka-block ang numero"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Mga detalye sa pakikipag-ugnayan para kay/sa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Hindi nakapag-import"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"I-import ang mga numero"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"I-on"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Mga Suhestyon"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Bago"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Binubuksan ang navigation drawer"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Isinasara ang navigation drawer"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Label na <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Mga Label"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Mga Account"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Magkasamang makita ang inyong history"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Mga event at mensahe"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Mga Event"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Mga Mensahe"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Mga Suhestyon"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Panatilihing maayos at kapaki-pakinabang ang iyong mga contact"</string>
+    <string name="undo" msgid="1425165101664071422">"I-undo"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Tawagan ang <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Tawagan ang tahanan"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Tawagan ang mobile"</string>
+    <string name="call_work" msgid="5328785911463744028">"Tawagan ang trabaho"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Tawagan ang fax sa trabaho"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Tawagan ang fax sa tahanan"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Tawagan ang pager"</string>
+    <string name="call_other" msgid="8563753966926932052">"Tawag"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Tawagan ang pabalik na tawag"</string>
+    <string name="call_car" msgid="3280537320306436445">"Tawagan sa kotse"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Tawagan ang pangunahing kumpanya"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Tawagan ang ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Tawagan ang pangunahin"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Tawagan ang fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Tumawag sa radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Tawagan ang telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Tawagan ang TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Tawagan ang mobile sa trabaho"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Tawagan ang pager sa trabaho"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Tawagan ang <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Tawagan ang MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Tawagan)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"I-text ang <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Mag-text sa bahay"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Mag-text sa mobile"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Mag-text sa trabaho"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Mag-text sa fax sa trabaho"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"I-text ang fax sa tahanan"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Mag-text sa pager"</string>
+    <string name="sms_other" msgid="806127844607642331">"Teksto"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"I-text ang callback"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Mag-text sa kotse"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Mag-text sa pangunahin ng kumpanya"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Mag-text sa ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"I-text ang pangunahin"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"I-text ang fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Mag-text sa radyo"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Mag-text sa telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"I-text ang TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"I-text ang mobile sa trabaho"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Mag-text sa pager sa trabaho"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Mag-text sa <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Mag-text ng MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Imensahe)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Makipag-video call"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"I-clear ang mga madalas tinatawagan?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Iki-clear mo ang listahan ng madalas na kontakin sa mga app na Mga Contact at Telepono at pupuwersahin mo ang mga app ng email na matutunan ang iyong mga kagustuhan sa pag-a-address mula sa simula."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Kini-clear ang mga madalas tinatawagan…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Available"</string>
+    <string name="status_away" msgid="1838861100379804730">"Malayo"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Busy"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Iba pa"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Direktoryo"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Directory sa trabaho"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Lahat ng contact"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Mabilisang contact para kay <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Walang pangalan)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Madalas na kino-contact"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Lahat ng contact na may mga numero ng telepono"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Mga contact ng profile sa trabaho"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Tingnan ang mga update"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Device"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Pangalan"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Palayaw"</string>
+    <string name="name_given" msgid="4280790853455320619">"Pangalan"</string>
+    <string name="name_family" msgid="7466985689626017037">"Apelyido"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Prefix ng pangalan"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Gitnang pangalan"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Suffix ng pangalan"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Phonetic na pangalan"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Phonetic na pangalan"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Phonetic na gitnang pangalan"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Phonetic na apelyido"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telepono"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Email"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Address"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Samahan"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Kaugnayan"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Espesyal na petsa"</string>
+    <string name="sms" msgid="1756857139634224222">"Text message"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Address"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Kumpanya"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Pamagat"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Mga Tala"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Custom"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Website"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Mga Label"</string>
+    <string name="email_home" msgid="8573740658148184279">"Mag-email sa bahay"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Mag-email sa mobile"</string>
+    <string name="email_work" msgid="2807430017302722689">"Mag-email sa trabaho"</string>
+    <string name="email_other" msgid="3454004077967657109">"Email"</string>
+    <string name="email_custom" msgid="5536404237099078802">"I-email si <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Email"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Kalye"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Lungsod"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Katayuan"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"ZIP code"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Bansa"</string>
+    <string name="map_home" msgid="1243547733423343982">"Tingnan ang home address"</string>
+    <string name="map_work" msgid="1360474076921878088">"Tingnan ang address ng trabaho"</string>
+    <string name="map_other" msgid="3817820803587012641">"Tingnan ang address"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Tingnan ang <xliff:g id="CUSTOM_LABEL">%s</xliff:g> address"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Makipag-chat gamit ang AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Makipag-chat gamit ang Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Makipag-chat gamit ang Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Makipag-chat gamit ang Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Makipag-chat gamit ang QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Makipag-chat gamit ang Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Makipag-chat gamit ang ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Makipag-chat gamit ang Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Makipag-chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"tanggalin"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Magpakita ng higit pang field ng pangalan"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"I-collapse ang mga field ng pangalan"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Magpakita ng higit pang field ng phonetic na pangalan"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"I-collapse ang mga field ng phonetic na pangalan"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Palawakin"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"I-collapse"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Pinalawak"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Naka-collapse"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Lahat ng mga contact"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Naka-star"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"I-customize"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Contact"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Lahat ng iba pang contact"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Lahat ng contact"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Alisin ang pangkat sa pag-sync"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Magdagdag ng pangkat sa pag-sync"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Higit pang mga pangkat…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Aalisin rin ng pag-aalis sa \"<xliff:g id="GROUP">%s</xliff:g>\" mula sa sync ang anumang mga hindi nakapangkat na contact mula sa sync."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Sine-save ang mga pagpipilian sa pagpapakita…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Naka-customize na view"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"I-save ang mga na-import na contact sa:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM card"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM na <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d contact</item>
+      <item quantity="other">%1$d na contact</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> contact • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> na contact • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf na file"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Walang i-import"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"I-import ang mga contact mula sa vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Kanselahin ang pag-import ng <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Kanselahin ang pag-export ng <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Di makansela pag-import/pag-export vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Hindi kilalang error."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Hindi mabuksan ang \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Hindi masimulan ang exporter: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Walang maaaring i-export na contact."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Na-disable mo ang isang kinakailangang pahintulot."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Naganap ang isang error habang nag-e-export: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O na error"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Walang sapat na memory. Maaaring masyadong malaki ang file."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Hindi sinusuportahan ang format."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Tapos na ang pag-export ng <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Tapos nang i-export ang mga contact."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Tapos nang i-export ang mga contact, i-click ang notification upang ibahagi ang mga contact."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"I-tap upang ibahagi ang mga contact."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Kinansela ang pag-export ng <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Pag-e-export ng data ng contact"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Ine-export ang data ng contact."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Hindi makuha ang impormasyon ng database."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Walang nae-export na contact."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Hindi nagsimula nang tama ang composer ng vCard."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Hindi ma-export"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Hindi na-export ang data ng contact.\nDahilan: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Nag-iimport <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Hindi mabasa ang data ng vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Tapos na ang pag-import ng vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Kinansela ang pag-import ng <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Mai-import ang <xliff:g id="FILENAME">%s</xliff:g> sa ilang saglit."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Sa ilang sandali ay mai-import na ang file."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Tinanggihan ang kahilingan sa pag-import ng vCard. Pakisubukang muli sa ibang pagkakataon."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"I-e-export ang mga contact sa ilang sandali."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Tinanggihan ang kahilingan sa pag-export ng vCard. Subukang muli sa ibang pagkakataon."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"contact"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Kina-cache ang (mga) vCard sa lokal na pansamantalang storage. Magsisimula sa lalong madaling panahon ang aktuwal na pag-import."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Hindi ma-import ang vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Natanggap ang contact sa NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Nagka-cache"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Nag-i-import <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"I-export sa .vcf file"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Pagbukud-bukurin ayon sa"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Phonetic na pangalan"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Palaging ipakita"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Itago kung walang laman"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Pangalan"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Apelyido"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Format ng pangalan"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Pangalan muna"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Apelyido muna"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Mga Account"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Default na account para sa mga bagong contact"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Aking impormasyon"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"I-set up ang iyong profile"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Tungkol sa Mga Contact"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Ibahagi ang mga paboritong contact"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Ibahagi ang lahat ng contact"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Nabigong ibahagi ang mga contact."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Mag-export ng mga contact"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"I-import ang mga contact mula sa"</string>
+    <string name="share_error" msgid="948429331673358107">"Hindi maibabahagi ang contact na ito."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Walang ibabahaging mga contact."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Mga contact na ipapakita"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Mga contact na ipapakita"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"I-customize ang view"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"I-save"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Maghanap sa mga contact"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Mga Paborito"</string>
+    <string name="menu_import" msgid="6107961135813836467">"I-import"</string>
+    <string name="menu_export" msgid="2658783911863503902">"I-export"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Mga naka-block na numero"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"sa pamamagitan ng <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> sa pamamagitan ng <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ihinto ang paghahanap"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"I-clear ang paghahanap"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Account"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Gamitin ito palagi sa mga tawag"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Tumawag nang may kasamang tala"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Mag-type ng isang tala na ipadadala kasama ng tawag …"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"IPADALA &amp; TUMAWAG"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Bersyon ng build"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Mga open source na lisensya"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Mga detalye ng lisensya para sa open source na software"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Patakaran sa privacy"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Mga tuntunin ng serbisyo"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Mga open source na lisensya"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Nabigong buksan ang url."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Nilagyan ng check ang <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Hindi nilagyan ng check ang <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Magsimula ng video call"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"I-delete"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Ellipsis"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> (na) seg"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> (na) min <xliff:g id="SECONDS">%2$s</xliff:g> (na) seg"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> (na) oras <xliff:g id="MINUTES_1">%2$s</xliff:g> (na) min <xliff:g id="SECONDS">%3$s</xliff:g> (na) seg"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Na-disable ang shortcut na ito"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Inalis ang contact"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"I-import"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Pumili ng mga contact"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Walang contact sa iyong SIM card"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Nasa listahan mo na ang contact"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> contact sa SIM ang na-import</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na contact sa SIM ang na-import</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Hindi na-import ang mga contact sa SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"I-import mula sa SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Kanselahin"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Naka-off ang auto-sync. I-tap upang i-on."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"I-dismiss"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Naka-off ang pag-sync ng account. I-tap upang i-on."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"I-on ang auto-sync?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Ang mga pagbabagong ginagawa mo sa lahat ng app at account, hindi lang sa Google Contacts, ay pananatilihing up to date sa pagitan ng web at ng mga device mo."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"I-on"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Walang koneksyon"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Magpakita ng higit pa"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Tapos nang i-import ang SIM card"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Nabigong i-import"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Hindi ma-import ang mga contact mula sa SIM card"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Ini-import ang SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 998e9e7..0522544 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Kişiler"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kişiler"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Kişiyi Göster"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Kişiyi Düzenle"</string>
     <string name="contactsList" msgid="8661624236494819731">"Kişiler"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Kişi ekle"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Kişi"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Doğrudan çevirme"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Doğrudan ileti"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Bir kişi kısayolu seçin"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Aranacak numarayı seçin"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"İleti gönderilecek bir numara seçin"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Doğrudan mesaj"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Kişi seçin"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Kişiye ekle"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Bir kişi seçin"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Seç"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Yeni kişi oluştur"</string>
-    <string name="starredList" msgid="4817256136413959463">"Yıldızlı"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Sık sık"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Sık Kullanılanlar"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kişi ayrıntıları"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Kişiyi düzenle"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Kişi oluştur"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Grubu düzenle"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Grup oluştur"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Hakkında"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Güncellemlr"</string>
     <string name="searchHint" msgid="8482945356247760701">"Kişilerde ara"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Kişiyi görüntüle"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Sık kullanılanlara ekle"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Sık kullanılanlardan kaldır"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Favorilerden kaldırıldı"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Düzenle"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Sil"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Fotoğrafı değiştir"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Ana ekrana yerleştir"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Çağrı yap"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Kısa mesaj gönder"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Kısayol oluştur"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Bağlantıyı kaldır"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Düzenle"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Sil"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Kişi Ekle"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Grup Ekle"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Kişileri kaldır"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Etiketi yeniden adlandır"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Etiketi sil"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Kişi ekle"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Kişileri seç"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Kişileri ekle"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Etiketten kaldır"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Etiket oluştur"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Bu kişinin bağlantısı kaldırılarak birden çok kişiye dönüştürülsün mü?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Bağlantıyı Kaldır"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Yapmış olduğunuz değişiklikleri kaydetmek ve bu kişinin bağlantısını kaldırıp birden çok kişiye dönüştürmek istiyor musunuz?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Kaydet ve Bağlantıyı Kaldır"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Önceden yaptığınız değişiklikleri kaydetmek ve seçilen kişiyle bağlantı oluşturmak istiyor musunuz?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Kaydet ve Bağlantı Oluştur"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Bağlanıyor"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Bağlantı kaldırılıyor"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Bağlantı oluştur"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Bağlı kişileri göster"</string>
     <string name="menu_save" msgid="1727844363591825909">"Kaydet"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kişileri bağla"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> ile bağlamak istediğiniz kişiyi seçin:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Tüm kişileri göster"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Önerilen kişiler"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tüm kişiler"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> bağlandı"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kişiler arasında bağlantı oluşturuldu"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> silindi"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> ve <xliff:g id="NAME_1">%2$s</xliff:g> silindi"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… silindi"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Kişiler silindi</item>
       <item quantity="one">Kişi silindi</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> kişi</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> kişi</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> kişi · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kişi · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google\'dan"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> hesabından"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Zil sesi ayarla"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Tüm çağrıları sesli mesaja"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Salt okunur hesaplarınızdaki kişiler silinemez, ancak gizlenebilir."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Gizle"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Silinecek kişi birden fazla hesaptan ayrıntılar içeriyor. Salt okunur hesaplardaki ayrıntılar silinmez, gizlenir."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Bağlantı oluşturmak için en az iki kişi seçmeniz gerekir."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Seçili kişiler için bağlantı oluşturulsun mu?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Bağlantı oluştur"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Sesli mesaja yönlendir"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Yönlendirmeyi iptal et"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Bu kişi salt okunur. Kişi silinemez ancak gizlenebilir."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Kişiyi Gizle"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Bu kişinin içerdiği salt okunur hesaplar gizlenecek, silinmeyecek."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Bu kişi silinsin mi?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Seçili kişiler silinsin mi?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Salt okunur hesaplarınızdaki kişiler silinemez, ancak gizlenebilir."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Bu kişiyi silmek, birden fazla hesaba ait ayrıntıları da siler."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Bu kişi silinsin mi?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Sil"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Değişiklikleri sil"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Kişi mevcut değil."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kişi, Ana ekrana eklendi."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g>, Ana ekrana eklendi."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Yeni kişi oluştur"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Yeni kişi oluştur"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Kuruluş"</item>
-    <item msgid="7196592230748086755">"Not"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Tablette kullanılabilir resim yok."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Telefonda hiçbir resim yok."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Cihazda kullanılabilir resim yok."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kişi fotoğrafı"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Özel etiket adı"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Çağrıları doğrudan sesli mesaja gönder"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Fotoğrafı kaldır"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Hiç kişi yok"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Grup yok."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Grup oluşturmanız için hesap gerekir."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Bu grupta hiç kimse yok."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Üye eklemek için grubu düzenleyin."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Kişi kaydediliyor..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Kişi listeniz boş"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Bu etikete sahip kişi yok"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Bu hesapta kişi yok"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Kişi listeniz boş"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> kaydedildi"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Kişi kaydedildi"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kişilerin bağlantısı kaldırıldı"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kişi değişiklikleri kaydedilemedi."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Kişinin bağlantısı kaldırılamadı."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kişi bağlanamadı."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Kişi kaydedilirken hata oluştu."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Kişi fotoğrafı değişiklikleri kaydedilmedi."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Grup kaydedildi."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Grup değişiklikleri kaydedilemedi."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">Telefon numarası olan <xliff:g id="COUNT">%d</xliff:g> kişi</item>
-      <item quantity="one">Telefon numarası olan 1 kişi</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Telefon numarası olan hiçbir kişi yok"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kişi bulundu</item>
-      <item quantity="one">1 kişi bulundu</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Kişi değişiklikleri kaydedilemedi"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Kişinin bağlantısı kaldırılamadı"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kişi bağlanamadı"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Kişi kaydedilirken hata oluştu"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Kişi fotoğrafı değişiklikleri kaydedilmedi"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Etiket yüklenemedi"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Etiket silindi"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Etiket oluşturuldu"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Etiket oluşturulamıyor"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Etiket güncellendi"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Etiketten kaldırıldı"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Etikete eklendi"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Etiket değişiklikleri kaydedilemedi"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Bu etiket zaten var"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Bazı kişilerin e-posta adresi yok."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Bazı kişilerin telefon numarası yok."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"E-posta gönder"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Mesaj gönder"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Kişi Seçin"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Gönder"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Hiç kişi yok"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> kişi bulundu</item>
-      <item quantity="one">1 kişi bulundu</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Tümü"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Favoriler"</string>
-    <string name="callBack" msgid="5498224409038809224">"Geri ara"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Tekrar çağrı yap"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Geri ara"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" adresi kişilere eklensin mi?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kişi fotoğrafı"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"artı"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"Toplam <xliff:g id="TOTAL_NUMBER">%s</xliff:g> kişiden <xliff:g id="CURRENT_NUMBER">%s</xliff:g> kişi"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Kişilerinizin adları"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Bu işlemi gerçekleştirecek uygulama bulunamadı."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Önceki ekrana dönmek için tıklayın"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefon numarası ekle"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"E-posta adresi ekle"</string>
     <string name="missing_app" msgid="1466111003546611387">"Bu işlemi gerçekleştirecek uygulama bulunamadı."</string>
     <string name="menu_share" msgid="943789700636542260">"Paylaş"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Kişilere ekle"</string>
-    <string name="share_via" msgid="563121028023030093">"Kişiyi şunu kullanarak paylaş:"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Grubu şu hesabın altında oluştur:"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Ekle"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Kişileri şunu kullanarak paylaş:</item>
+      <item quantity="one">Kişiyi şunu kullanarak paylaş:</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Hesap seçin"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Etiket oluşturun"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Etiketi yeniden adlandırın"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Etiket adı"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Etiket adı"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Sesli sohbet"</string>
     <string name="video_chat" msgid="1872255818640336072">"Görüntülü sohbet"</string>
-    <string name="connections" msgid="8098440723172028350">"Bağlantılar"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Bağlantı ekle"</string>
-    <string name="recent" msgid="2659189233141493004">"Son"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Son güncellemeler"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kişi"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> hesabı"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Bu uygulamadan düzenlenemez."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Bu cihazda düzenlenemez."</string>
     <string name="take_photo" msgid="7496128293167402354">"Fotoğraf çek"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Yeni fotoğraf çek"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Fotoğraf seç"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Yeni fotoğraf seç"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kişi listesi güncelleniyor."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Aranıyor…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Seçileni göster"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Tümünü göster"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Tümünü seç"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Tümünün seçimini kaldır"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Yeni ekle"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Kuruluş ekle"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Tarih"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Grup adı"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Değiştir"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Birincil fotoğraf"</string>
-    <string name="description_star" msgid="2605854427360036550">"favori"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Kişiyi düzenle"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Mevcut kişi, seçili kişiye bağlansın mı?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Etiket"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"İptal edilir"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Geri"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"kapatın"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Seçili kişiyi düzenlemeye geçilsin mi? Şimdiye kadar girdiğiniz bilgiler kopyalanacak."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kişilerime kopyala"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Kişilerime ekle"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"<xliff:g id="TYPE">%1$s</xliff:g> dizini"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Özel"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Ayarlar"</string>
     <string name="menu_settings" msgid="377929915873428211">"Ayarlar"</string>
     <string name="menu_help" msgid="1680178646764069976">"Yardım ve geri bildirim"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Görüntüleme seçenekleri"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Telefon numarası"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Kişilere ekle"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Kişiye ekle"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Kapat"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Yılı ekle"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kişi"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Yükleniyor..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Yeni kişi oluştur"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Hesap ekle"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Kişileri içe aktar"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Yeni grup oluştur"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Yeni grup oluştur"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> grup</item>
-      <item quantity="one">1 grup</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" grubu silinsin mi? (Kişilerin kendileri silinmeyecektir.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> türünde <xliff:g id="COUNT_2">%1$d</xliff:g> kişi</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> türünde <xliff:g id="COUNT_0">%1$d</xliff:g> kişi</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> kişi</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kişi</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"İçe aktar"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Yeni oluştur…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" etiketi silinsin mi? (Kişiler silinmez.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Başka bir kişiye bağlamadan önce kişi adını yazın."</string>
     <string name="copy_text" msgid="3257145021583508761">"Panoya kopyala"</string>
     <string name="set_default" msgid="4417505153468300351">"Varsayılan olarak ayarla"</string>
     <string name="clear_default" msgid="7193185801596678067">"Varsayılanları temizle"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Metin kopyalandı"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Değişiklikleriniz silinsin mi?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Sil"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Profilimi ayarla"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Kişinin adını yazın"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Grubun adı"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Değişiklikler yok sayılsın mı?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Yok say"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"İptal"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Özelleştirmeler silinsin mi?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Kişilerde arayın"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Kişileri kaldır"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Yerel profilim"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilim"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Tüm içerik görüntüleniyor"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kişiler bir Google Hesabıyla daha iyi çalışır.\n\n• Herhangi bir tarayıcıdan erişin.\n• Kişilerinizi güvenli bir şekilde yedekleyin."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Telefonunuzu kaybetseniz dahi kişilerinizi güvenle saklayın: çevrimiçi bir hizmetle senkronize edin."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Hesap ekleyin"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Yeni kişiniz yedeklenmeyecek. Kişileri çevrimiçi olarak yedekleyen bir hesap eklensin mi?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Birkaç dakikanızı ayırarak, kişilerinizi Google\'a yedeklemek için kullanılacak bir hesap ekleyin."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Yeni kişiler <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> hesabına kaydedilecek."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Yeni kişiler için bir varsayılan hesap seçin:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Yeni kişi ekle"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Yeni kişi oluştur"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kişiyi düzenle"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Yerel olarak sakla"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Yalnızca görüntüleme"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Düzenlemek için kişi seçin"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Bağlı kişiler"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Ekle"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Bağlantıyı kes"</string>
     <string name="add_account" msgid="8201790677994503186">"Hesap ekle"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Yeni hesap ekle"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Veritabanı dosyalarını dışarı aktar"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"yeni kişi ekle"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Yeni kişi oluşturulur"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Daha fazla göster"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Daha az göster"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Tümünü göster"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"En son"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Hakkında"</string>
-    <string name="send_message" msgid="8938418965550543196">"İleti gönder"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Kişisel kopya oluşturuluyor..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Dün"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Kişisel kopya oluşturuluyor..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Yarın"</string>
     <string name="today" msgid="8041090779381781781">"Bugün"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Bugün şu saatler arasında: <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Yarın şu saatler arasında: <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Başlıksız etkinlik)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Ayarla"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Web sitesi"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Etkinlik"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"İlişki"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Hesap"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Ad"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"E-posta"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Fotoğraf"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kişi düzenleyiciyi genişletmek için tıklayın."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kişi düzenleyiciyi daraltmak için tıklayın."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"konum için yol tarifi"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"son gelen sms. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. yanıtlamak için dokunun"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"son gelen sms. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. yanıtlamak için dokunun"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"gelen"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"giden"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"cevapsız"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"son gelen çağrı. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. geri aramak için dokunun"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"son gelen çağrı. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. geri aramak için dokunun"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Siz: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Kişinin Hangouts tanımlayıcısını e-posta veya telefon alanına girdiğinizde Hangouts daha iyi çalışır."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Diğer alanlar"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Fotoğrafı değiştir"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Editör açılamadı."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Kaydedilecek hesap:"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Şu anda <xliff:g id="ACCOUNT_NAME">%s</xliff:g> hesabına kaydediliyor. Farklı bir hesap seçmek için iki kez hafifçe dokunun."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Bağlı kişiler (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Bağlı kişi</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Bağlı <xliff:g id="COUNT">%d</xliff:g> kişi"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Diğer alanlar"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Kişi fotoğrafı değiştirilir"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Kişi fotoğrafı eklenir"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kişi fotoğrafı"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Düzenleyici açılamadı."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Kaydedilecek hesap:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> hesabındaki kişi bilgisi düzenlenebilir değil"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"KİŞİLERİ BAĞLA"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"İPTAL"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Olası kopya</item>
-      <item quantity="one">1 Olası kopya</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">Bağlı <xliff:g id="COUNT">%d</xliff:g> kişi</item>
-      <item quantity="one">Bağlı 1 kişi</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Bu kişi"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Olası kopyalar"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Bu kişiler aynı kişi olabilir. Tek bir kişi olarak birleştirecek şekilde bağlantı oluşturabilirsiniz."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Bağlantılı kişiler"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Hesaplarınızdan"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Fotoğraf çek"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Tüm fotoğraflar"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Fotoğraf seçin"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> adlı hesaptan"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Sil: <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Sil: <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Sil: <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Fotoğraf: <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> işaretlenmedi"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Fotoğraf: <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> işaretlendi"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Bilinmeyen hesaptan fotoğraf işaretlenmedi"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Bilinmeyen hesaptan fotoğraf işaretlendi"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Kişi listesi, dil değişikliğini yansıtmak üzere güncelleniyor.\n\nLütfen bekleyin..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Numara ekle"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Numarayı engelle"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Numara ekleyin veya kişi arayın"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefonun engellemesi kaldırılsın mı?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"ENGELLEMEYİ KALDIR"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon engellensin mi?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"ENGELLE"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon engellendi"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefonun engellemesi kaldırıldı"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon geçersiz."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Çağrı engelleme geçici olarak kapalı"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Son 48 saat içinde bu telefondan acil servislerle iletişimde bulunduğunuz için çağrı engelleme modu devre dışı bırakıldı. 48 saatlik süre dolduktan sonra çağrı engelleme modu otomatik olarak tekrar etkinleştirilecektir."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"İçe aktar"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Numaraları Görüntüle"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Numara ekle"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Çağrı engelleme 48 saat süreyle devre dışı bırakıldı"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Acil durum çağrısı yapıldığından devre dışı bırakıldı."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"GERİ AL"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon zaten engellendi."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Numaranın engellemesini kaldır"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> için kişi ayrıntıları"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"İçe aktarma başarısız oldu"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Numaraları içe aktar"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Kişilerinizde arama yapmak için Kişiler izinlerini açın."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Aç"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Öneriler"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Yeni"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Gezinme çekmecesi açılır"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Gezinme çekmecesi kapatılır"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> etiketi"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Etiketler"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Hesaplar"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Ortak geçmişinizi görün"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Etkinlikler ve mesajlar"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Etkinlikler"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"İletiler"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Öneriler"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Kişilerinizi düzenli ve kullanışlı halde tutun"</string>
+    <string name="undo" msgid="1425165101664071422">"Geri al"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Telefon et: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Çağrı yap (ev)"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Çağrı yap (mobil)"</string>
+    <string name="call_work" msgid="5328785911463744028">"Çağrı yap (iş)"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Çağrı yap (iş faksı)"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Çağrı yap (ev faksı)"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Çağrı yap (çağrı cihazı)"</string>
+    <string name="call_other" msgid="8563753966926932052">"Ara"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Geri aramayı ara"</string>
+    <string name="call_car" msgid="3280537320306436445">"Çağrı yap (araç)"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Çağrı yap (şirket ana hattı)"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Ara (ISDN)"</string>
+    <string name="call_main" msgid="6082900571803441339">"Çağrı yap (ana hat)"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Faksı çağrı yap"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Çağrı yap (telsiz)"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Teleksi ara"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Ara (TTY/TDD)"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Ara (iş mobil)"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"İş çağrı cihazını ara"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Telefon et: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Çağrı yap (MMS)"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Telefon et)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Kısa mesaj gönder: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS gönder (ev)"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS gönder (mobil)"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS gönder (iş)"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS gönder (iş faksı)"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS gönder (ev faksı)"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS gönder (çağrı cihazı)"</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS Gönder ()"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS Gönder (geri arama)"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS gönder (araç)"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS gönder (şirket merkezi)"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS Gönder (ISDN)"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS Gönder (ana hat)"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Faksa SMS gönder"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS gönder (telsiz)"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS Gönder (teleks)"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS Gönder (TTY/TDD)"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS Gönder (iş mobil)"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS Gönder (iş yeri çağrı cihazı)"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"SMS Gönder (<xliff:g id="ASSISTANT">%s</xliff:g>)"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"SMS gönder (MMS)"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Mesaj gönder)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Görüntülü görüşme yapın"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Sık iletişim kurulanlar silinsin mi?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Kişiler ve Telefon uygulamalarındaki sık iletişim kurulanlar listesini temizleyecek ve e-posta uygulamalarını adres tercihlerinizi en baştan öğrenmeye zorlayacaksınız."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Sık iletişim kurulanlar siliniyor…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Uygun"</string>
+    <string name="status_away" msgid="1838861100379804730">"Dışarıda"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Meşgul"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Diğer"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Dizin"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"İş dizini"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Tüm kişiler"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> için hızlı kişi"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Adsız)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Sık iletişim kurulanlar"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Telefon numarası olan tüm kişiler"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"İş profili kişileri"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Gncellmlri görüntüle"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Cihaz"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Ad"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Takma ad"</string>
+    <string name="name_given" msgid="4280790853455320619">"Ad"</string>
+    <string name="name_family" msgid="7466985689626017037">"Soyadı"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Ad öneki"</string>
+    <string name="name_middle" msgid="8467433655992690326">"İkinci ad"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Ad soneki"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Fonetik ad"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Fonetik ad"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Fonetik ikinci ad"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Fonetik soyadı"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-posta"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Adres"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Kuruluş"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"İlişki"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Özel tarih"</string>
+    <string name="sms" msgid="1756857139634224222">"Kısa mesaj"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Adres"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Şirket"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Başlık"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Notlar"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Özel"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Web sitesi"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Etiketler"</string>
+    <string name="email_home" msgid="8573740658148184279">"E-posta gönder (ev)"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"E-posta gönder (mobil)"</string>
+    <string name="email_work" msgid="2807430017302722689">"E-posta gönder (iş)"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-posta"</string>
+    <string name="email_custom" msgid="5536404237099078802">"E-posta gönder: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"E-posta"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Cadde"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Şehir"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Eyalet"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Alan kodu"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Ülke"</string>
+    <string name="map_home" msgid="1243547733423343982">"Ev adresini görüntüle"</string>
+    <string name="map_work" msgid="1360474076921878088">"İş adresini görüntüle"</string>
+    <string name="map_other" msgid="3817820803587012641">"Adresi görüntüle"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> adresini görüntüle"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM kullanarak sohbet et"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live kullanarak sohbet et"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo kullanarak sohbet et"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype kullanarak sohbet et"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ kullanarak sohbet et"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk kullanarak sohbet et"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ kullanarak sohbet et"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber kullanarak sohbet et"</string>
+    <string name="chat" msgid="9025361898797412245">"Sohbet"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"sil"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Diğer ad alanları gösterilir"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Ad alanları daraltılır"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Diğer fonetik ad alanları gösterilir"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Fonetik ad alanları daraltılır"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Genişletir"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Daraltır"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Genişletildi"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Daraltıldı"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Tüm kişiler"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Yıldızlı"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Özelleştir"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kişi"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Diğer tüm kişiler"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Tüm kişiler"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Senkronize grubu kaldır"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Senk. grup ekle"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Diğer gruplar..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\" adlı grubu senkronizasyondan kaldırmak, gruplanmamış tüm kişilerin de senkronizasyondan kaldırılmasına neden olur."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Görüntüleme seçenekleri kaydediliyor..."</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Özelleştirilmiş görünüm"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"İçe aktarılan kişilerin kaydedileceği yer:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM kart"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"<xliff:g id="SIM_NAME">%1$s</xliff:g> SIM"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d kişi</item>
+      <item quantity="one">1 kişi</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> kişi • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> kişi • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf dosyası"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"İçe aktarılacak öğe yok"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"vCard\'daki kişiler içe aktarılsın mı?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> dosyasının içe aktarılması iptal edilsin mi?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> dosyasının dışa aktarılması iptal edilsin mi?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"İçe/dışa aktrma işlmi iptl edilemedi"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Bilinmeyen hata."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" açılamadı: <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Dışa aktarıcı başlatılamadı: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Dışa verilebilecek kişi yok."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Gerekli bir izni devre dışı bıraktınız."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Dışa aktarma sırasında bir hata oluştu: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"G/Ç Hatası"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Bellek yetersiz. Dosya çok büyük olabilir."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Biçim desteklenmiyor."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> dosyasını dışa aktarma tamamlandı."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Kişileri dışa aktarma işlemi tamamlandı."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kişileri dışa aktarma işlemi tamamlandı. Dışa aktarılan kişileri paylaşmak için bildirimi tıklayın."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Kişileri paylaşmak için dokunun."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> dosyasını dışa aktarma iptal edildi."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kişi verileri dışa aktarılıyor"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kişi verileri dışa aktarılıyor."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Veritabanı bilgileri alınamadı."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Dışa aktarılabilecek kişi yok."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard oluşturucu düzgün başlamadı."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Dışa aktarılamadı"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kişi verileri dışa aktarılamadı.\nNedeni: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> içe aktarılıyor"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard verileri okunamadı"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"vCard <xliff:g id="FILENAME">%s</xliff:g> dosyasından aktarım tamamlandı"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> dosyasını içe aktarma iptal edildi"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> kısa bir süre içinde içe aktarılacak."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Dosya kısa bir süre sonra içe aktarılacaktır."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard\'ı içe aktarma isteği reddedildi. Daha sonra tekrar deneyin."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kişiler kısa bir süre içinde dışa aktarılacak."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard\'ı dışa aktarma isteği reddedildi. Daha sonra tekrar deneyin."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kişi"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard\'lar geçici bir yerel depolama alanında önbelleğe alınıyor. Asıl içe aktarma işlemi kısa süre içinde başlayacak."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"vCard içe aktarılamadı."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Kişi NFC ile alındı"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Önbelleğe alınıyor"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"İçe aktarılıyor <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">".vcf dosyasına aktar"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sıralama ölçütü"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Fonetik ad"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Her zaman göster"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Boşsa gizle"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ad"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Soyadı"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Ad biçimi"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Önce ad"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Önce soyadı"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Hesaplar"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Yeni kişiler için varsayılan hesap"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Bilgilerim"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Profilinizi oluşturun"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Kişiler Hakkında"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Favori kişileri paylaş"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Tüm kişileri paylaş"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kişiler paylaşılamadı."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Kişileri dışa aktarın"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Şuradaki kişileri içe aktarın:"</string>
+    <string name="share_error" msgid="948429331673358107">"Bu kişi paylaşılamıyor."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Paylaşılacak kişi yok."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Görüntülenecek kişiler"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Görüntülenecek kişiler"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Görünümü özelleştirin"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Kaydet"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Kişilerde arayın"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Sık Kullanılanlar"</string>
+    <string name="menu_import" msgid="6107961135813836467">"İçe aktar"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Dışa aktar"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Engellenen numaralar"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> aracılığıyla"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="SOURCE">%2$s</xliff:g> üzerinden şu saatte: <xliff:g id="DATE">%1$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"aramayı durdurun"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Aramayı temizle"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Hesap"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Çağrılar için her zaman bunu kullan"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Notla telefon et"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Çağrıyla göndermek için bir not yazın…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"GÖNDER VE TELEFON ET"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Derleme sürümü"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Açık kaynak lisansları"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Açık kaynak yazılımlar için lisans ayrıntıları"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Gizlilik politikası"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Hizmet şartları"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Açık kaynak lisansları"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"URL açılamadı."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> işaretlendi"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> işaretlenmedi"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Görüntülü görüşme yapın"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Sil"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Üç nokta"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> sn."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> dk. <xliff:g id="SECONDS">%2$s</xliff:g> sn."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> sa. <xliff:g id="MINUTES_1">%2$s</xliff:g> dk. <xliff:g id="SECONDS">%3$s</xliff:g> sn."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Bu kısayol devre dışı bırakıldı"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kişi kaldırıldı"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"İçe aktar"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Kişi seçin"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM kartınızda kişi yok"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Bu kişi zaten listenizde bulunuyor"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM kişisi içe aktarıldı</item>
+      <item quantity="one">1 SIM kişisi içe aktarıldı</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"SIM kişileri içe aktarılamadı"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"SIM\'den içe aktarın"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"İptal eder"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Otomatik senkronizasyon kapalı. Açmak için dokunun."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Kapatır"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Hesap düzeyinde senkronizasyon kapalı. Açmak için dokunun."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Otomatik senkronizasyon etkinleştirilsin mi?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Yalnızca Google Kişiler değil, tüm uygulama ve hesaplarda yaptığınız değişiklikler web ile cihazlarınız arasında güncel tutulur."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Aç"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Bağlantı yok"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Diğer seçenekler gösterilir"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM kartın içe aktarılması tamamlandı"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"İçe aktarma başarısız oldu"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"SIM karttaki kişiler içe aktarılamadı"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"SIM kişileri içe aktarılıyor"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index b0990c6..6d8e07a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Контакти"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Контакти"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Переглянути контакт"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Редагувати контакт"</string>
     <string name="contactsList" msgid="8661624236494819731">"Контакти"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Додати контакт"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Контакт"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Прямий набір"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Пряме повідомл."</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Вибрати ярлик контакту"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Вибір номера для виклику"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Вибір номера для надс. повід."</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Швидкий набір"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Швидке повідомл."</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Вибрати контакт"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Додати в контактні дані"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Вибрати контакт"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Вибрати"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Створити новий контакт"</string>
-    <string name="starredList" msgid="4817256136413959463">"Із зіроч."</string>
-    <string name="frequentList" msgid="7154768136473953056">"Найчастіші"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Вибране"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Деталі контакту"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Редаг. контакт"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Створити контакт"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Редагувати групу"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Створити групу"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Про контакт"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Оновлення"</string>
     <string name="searchHint" msgid="8482945356247760701">"Пошук контактів"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Див. контакт"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Додати до вибраного"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Видалити з вибраного"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Видалено з вибраного"</string>
@@ -49,42 +35,62 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Редагувати"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Видалити"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Змінити фото"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Помістити на головний екран"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Набрати конт."</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Повід. контакт"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Створити ярлик"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Розділити"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Редагувати"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Видалити"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Додати контакт"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Додати групу"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Вилучити контакти"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Перейменувати мітку"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Видалити мітку"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Додати контакт"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Вибрати контакти"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Додати контакти"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Вилучити з мітки"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Створити мітку"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Розділити цей контакт?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Розділити"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Зберегти зміни та розділити цей контакт?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Зберегти та розділити"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Зберегти зміни й об’єднати з вибраним контактом?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Зберегти й об’єднати"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Об’єднання"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Розділення"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Об’єднати"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Переглянути об’єднані контакти"</string>
     <string name="menu_save" msgid="1727844363591825909">"Зберегти"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Об’єднання контактів"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Виберіть контакт, який ви хочете об’єднати з контактом <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Показ. всі контакти"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Пропоновані контакти"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Усі контакти"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Контакт <xliff:g id="NAME">%s</xliff:g> зв’язано"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Контакти об’єднано"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Контакт <xliff:g id="NAME">%1$s</xliff:g> видалено"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> і <xliff:g id="NAME_1">%2$s</xliff:g> видалено"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… видалено"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Контакти видалено</item>
       <item quantity="few">Контакти видалено</item>
       <item quantity="many">Контакти видалено</item>
       <item quantity="other">Контакти видалено</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> контакт</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> контакти</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> контактів</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> контакта</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> контакт (<xliff:g id="ACCOUNT_3">%2$s</xliff:g>)</item>
+      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> контакти (<xliff:g id="ACCOUNT_3">%2$s</xliff:g>)</item>
+      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> контактів (<xliff:g id="ACCOUNT_3">%2$s</xliff:g>)</item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> контакта (<xliff:g id="ACCOUNT_3">%2$s</xliff:g>)</item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Від Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"З обл. запису <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Мелодія"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Усі виклики на голосову пошту"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Дані з облікових записів лише для перегляду не можна видалити, але можна сховати."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Сховати"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"У контакті, який ви хочете видалити, є дані з кількох облікових записів. Дані з облікових записів лише для перегляду буде сховано, а не видалено."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Виберіть принаймні два контакти, щоб об’єднати їх."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Об’єднати вибрані контакти?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Об’єднати"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Спрямовувати на голосову пошту"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Не спрямовувати на гол. пошту"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Цей контакт доступний лише для перегляду. Його не можна видалити, однак можна сховати."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Сховати контакт"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Дані з облікових записів лише для перегляду буде сховано в цьому контакті, а не видалено."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Видалити цей контакт?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Видалити вибрані контакти?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Дані з облікових записів лише для перегляду не можна видалити, але можна сховати."</string>
@@ -92,189 +98,126 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Якщо видалити цей контакт, буде видалено дані з кількох облікових записів."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Видалити цей контакт?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Видалити"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Відхилити зміни"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Контакт не існує."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Контакт додано на головний екран."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Контакт <xliff:g id="NAME">%s</xliff:g> додано на головний екран."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Створ. новий контакт"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Створити новий контакт"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Організація"</item>
-    <item msgid="7196592230748086755">"Прим."</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"У пристрої немає доступних зображень."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"У телефоні немає доступних зображень."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"На пристрої немає зображень."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Фото контакта"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Назва"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Надсилати дзвінки на голос. пошту"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Видалити фото"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Контактів немає"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Немає груп."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Для створення груп потрібен обліковий запис."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"У цій групі немає людей."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Щоб додати когось, відредагуйте групу."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Збереж-ня контакту…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Ваш список контактів порожній"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Немає контактів із цією міткою"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"У цьому обліковому записі немає контактів"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Ваш список контактів порожній"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Контакт <xliff:g id="DISPLAY_NAME">%s</xliff:g> збережено"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Контакт збережено"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Контакти розділено"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Не вдалося зберегти зміни в контакті."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Не вдалося розділити контакт."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Не вдалося об’єднати контакти."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Не вдалося зберегти контакт."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Не вдалося зберегти зміни у фотографії контакта."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Групу збережено."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Не вдалося зберегти зміни в групі."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> контакт із номерами телефону</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> контакти з номерами телефону</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> контактів із номерами телефону</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> контакта з номерами телефону</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Немає контактів з номерами телефону"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one">Знайдено <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="few">Знайдено <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="many">Знайдено <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">Знайдено <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Не вдалося зберегти зміни в контакті"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Не вдалося від’єднати контакт"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Не вдалося зв’язати контакти"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Помилка збереження контакта"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Не вдалося зберегти зміни у фотографії контакта"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Не вдалося завантажити мітку"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Мітку видалено"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Мітку створено"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Не вдається створити мітку"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Мітку оновлено"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Вилучено з мітки"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Додано мітку"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Не вдалося зберегти зміни в мітці"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Ця назва вже існує"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Деякі контакти не мають електронних адрес."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Деякі контакти не мають номерів телефону."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Надіслати електронний лист"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Надіслати повідомлення"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Вибрати контакти"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Надіслати"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Контактів немає"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one">Знайдено <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="few">Знайдено <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="many">Знайдено <xliff:g id="COUNT">%d</xliff:g></item>
-      <item quantity="other">Знайдено <xliff:g id="COUNT">%d</xliff:g></item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Усі контакти"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Вибране"</string>
-    <string name="callBack" msgid="5498224409038809224">"Передзвонити"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Набрати знову"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Зворот. виклик"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Додати в контакти <xliff:g id="EMAIL">%s</xliff:g>?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"фото контакту"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"плюс"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> із <xliff:g id="TOTAL_NUMBER">%s</xliff:g> контактів"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Імена ваших контактів"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Не знайдено програму для обробки цієї дії."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Натисніть, щоб повернутися на попередній екран"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Додайте номер телефону"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Додайте електронну адресу"</string>
     <string name="missing_app" msgid="1466111003546611387">"Не знайдено програму для обробки цієї дії."</string>
     <string name="menu_share" msgid="943789700636542260">"Надіслати"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Додати в контакти"</string>
-    <string name="share_via" msgid="563121028023030093">"Надісл. контакт через"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Створити групу в обліковому записі"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Додати"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Надіслати контакти через</item>
+      <item quantity="few">Надіслати контакти через</item>
+      <item quantity="many">Надіслати контакти через</item>
+      <item quantity="other">Надіслати контакти через</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Вибір облікового запису"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Створити мітку"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Перейменувати мітку"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Назва мітки"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Назва мітки"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Голосовий чат"</string>
     <string name="video_chat" msgid="1872255818640336072">"Відеочат"</string>
-    <string name="connections" msgid="8098440723172028350">"Зв’язки"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Додати зв’язок"</string>
-    <string name="recent" msgid="2659189233141493004">"Останні"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Останні оновлення"</string>
     <string name="account_type_format" msgid="718948015590343010">"Контакт <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Обліковий запис <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"З цієї програми неможливо редагувати."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Неможливо редагувати на цьому пристрої"</string>
     <string name="take_photo" msgid="7496128293167402354">"Зробити фото"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Зробити нове фото"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Вибрати фото"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Вибрати нове фото"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Список контактів оновлюється."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Пошук..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Показати вибране"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Показати все"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Вибрати все"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Скасувати все"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Додати новий запис"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Додати організацію"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Дата"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Назва групи"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Змінити"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Основн. фото"</string>
-    <string name="description_star" msgid="2605854427360036550">"вибране"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Редаг. контакта"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Об’єднати поточний контакт із вибраним контактом?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Мітка"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Скасувати"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Назад"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"закрити"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Перейти до редагування вибраного контакта? Введену досі інформацію буде скопійовано."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Копіювати в мої контакти"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Додати до групи \"Мої контакти\""</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Каталог <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Спеціальні"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Налаштування"</string>
     <string name="menu_settings" msgid="377929915873428211">"Налаштування"</string>
     <string name="menu_help" msgid="1680178646764069976">"Довідка й відгуки"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Параметри відображення"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Номер телефону"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Додати до контактів"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Додати до контакта"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Закрити"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Включити рік"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Контакт"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Завантаження..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Створити новий контакт"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"Вказати рік"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Додати обліковий запис"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Імпортувати контакти"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Створити нову групу"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Створити нову групу"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> група</item>
-      <item quantity="few"><xliff:g id="COUNT">%0$d</xliff:g> групи</item>
-      <item quantity="many"><xliff:g id="COUNT">%0$d</xliff:g> груп</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> групи</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Видалити групу \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Самі контакти не буде видалено)."</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> особа з <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="few"><xliff:g id="COUNT_2">%1$d</xliff:g> особи з <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="many"><xliff:g id="COUNT_2">%1$d</xliff:g> осіб із <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> особи з <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> особа</item>
-      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> особи</item>
-      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> осіб</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> особи</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Імпортувати"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Створити…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Видалити мітку \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Самі контакти видалено не буде.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Введіть ім’я контакта, перш ніж об’єднати його."</string>
     <string name="copy_text" msgid="3257145021583508761">"Копіювати в буфер обміну"</string>
     <string name="set_default" msgid="4417505153468300351">"Установити за умовчанням"</string>
     <string name="clear_default" msgid="7193185801596678067">"Очистити налаштування за умовчанням"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Текст скопійовано"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Відхилити зміни?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Відхилити"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Налаштувати профіль"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Введіть ім’я особи"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Назва групи"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Відхилити зміни?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Відхилити"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Скасувати"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Відхилити налаштування?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Пошук контактів"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Вилучити контакти"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Мій локальний профіль"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Мій профіль на <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Відображаються всі контакти"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Додаток Контакти корисніший, якщо у вас є обліковий запис Google.\n\n• Відкривайте в будь-якому веб-переглядачі.\n• Автоматично завантажуйте контакти."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Збережіть свої контакти на випадок втрати свого телефону: синхронізуйте їх з онлайновою службою."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Додати обліковий запис"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Для вашого нового контакта не буде створено резервні копії. Додати обліковий запис, у якому буде збережено резервні копії контактів в Інтернеті?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Додайте обліковий запис, щоб створити резервну копію ваших контактів у Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Нові контакти буде збережено в обліковому записі <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Виберіть обліковий запис за умовчанням для нових контактів:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Додати контакт"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Створити новий контакт"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Змінити контакт"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Зберегти локально"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Лише перегляд"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Вибрати контакт для редагування"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Об’єднані контакти"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Додати"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Розділити"</string>
     <string name="add_account" msgid="8201790677994503186">"Додати обліковий запис"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Додати новий обліковий запис"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Експортувати файли бази даних"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"додати нового контакта"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Створити новий контакт"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Показати більше"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Показати менше"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Показати все"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Нещодавні"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Інформація"</string>
-    <string name="send_message" msgid="8938418965550543196">"Надіслати повідомлення"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Створення особистої копії…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Учора"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Ім\'я контакту:"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Створення особистої копії..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Завтра"</string>
     <string name="today" msgid="8041090779381781781">"Сьогодні"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Сьогодні о <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Завтра о <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Подія без назви)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Установити"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"Чат"</string>
@@ -284,104 +227,321 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Веб-сайт"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Подія"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Зв’язок"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Обліковий запис"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Ім’я"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Електронна пошта"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Телефон"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Фото"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Натисніть, щоб розгорнути редактор контактів."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Натисніть, щоб згорнути редактор контактів."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"маршрути до місця"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"Останнє SMS-повідомлення: <xliff:g id="MESSAGE_BODY">%s</xliff:g>, <xliff:g id="PHONE_NUMBER">%s</xliff:g>, <xliff:g id="DATE">%s</xliff:g>. Натисніть, щоб відповісти"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Останнє SMS-повідомлення: <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>, <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>, <xliff:g id="DATE">%3$s</xliff:g>. Натисніть, щоб відповісти"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"вхідні дзвінки"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"вихідні дзвінки"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"пропущені дзвінки"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"Останній дзвінок: <xliff:g id="CALL_TYPE">%s</xliff:g>, <xliff:g id="PHONE_NUMBER">%s</xliff:g>, <xliff:g id="DATE">%s</xliff:g>. Натисніть, щоб зателефонувати"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Останній дзвінок: <xliff:g id="CALL_TYPE">%1$s</xliff:g>, <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>, <xliff:g id="DATE">%3$s</xliff:g>. Натисніть, щоб зателефонувати"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Ви: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Щоб сервіс Hangouts працював краще, введіть свій ідентифікатор Hangouts у поле \"Електронна адреса\" або \"Телефон\"."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Більше полів"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Змінити фотографію"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Не вдалося відкрити редактор."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Зберігання в обліковий запис"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Зараз контакт зберігається в обліковий запис <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Двічі торкніться, щоб вибрати інший обліковий запис."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Об’єднані контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">Об’єднані контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">Об’єднані контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Об’єднані контакти (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"Об’єднаних контактів: <xliff:g id="COUNT">%d</xliff:g>"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Більше полів"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Змінити фотографію контакту"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Додати фотографію контакту"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Фотографія контакту"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Не вдалося відкрити редактор."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Зберігання в обліковий запис"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Контакти з облікового запису <xliff:g id="ACCOUNT">%s</xliff:g> не можна редагувати"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"ОБ’ЄДНАТИ КОНТАКТИ"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"СКАСУВАТИ"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> можлива копія</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> можливі копії</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> можливих копій</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> можливої копії</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> об’єднаний контакт</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> об’єднані контакти</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> об’єднаних контактів</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> об’єднаного контакта</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="few">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="many">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Цей контакт"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Можливі копії"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Ці контакти можуть стосуватися однієї людини. Ви можете об’єднати їх."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Об’єднані контакти"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"З ваших облікових записів"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Сфотографувати"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Усі фотографії"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Вибрати фотографію"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"З облікового запису <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Видалити <xliff:g id="DATA_TYPE">%s </xliff:g> <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Видалити <xliff:g id="DATA_TYPE">%1$s </xliff:g> <xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Видалити <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Фото з <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> не вибрано"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Фото з <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> вибрано"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Фото з невідомого облікового запису не вибрано"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Фото з невідомого облікового запису вибрано"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Список контактів оновлено для відображення зміни мови.\n\nЗачекайте..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Додати номер"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Заблокувати номер"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Введіть або знайдіть номер"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Розблокувати номер <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"РОЗБЛОКУВАТИ"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Заблокувати номер <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"БЛОКУВАТИ"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> заблоковано"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> розблоковано"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> недісний."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокування дзвінків тимчасово вимкнено"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокування дзвінків вимкнено, оскільки ви зверталися з цього телефона в екстрені служби протягом останніх 48 годин. Ця функція автоматично ввімкнеться, коли мине 48 годин."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Імпортувати"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Переглянути номери"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Додати номер"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокування викликів вимкнено на 48 годин"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Блокування вимкнено, оскільки ви зробили екстрений виклик."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"ВІДМІНИТИ"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> уже заблоковано."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Розблокувати номер"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Відомості про контакт <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Не вдалось імпортувати"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Імпортувати номери"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Щоб шукати контакти, увімкніть дозвіл \"Контакти\"."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Увімкнути"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Пропозиції"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Нові"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Відкрити панель навігації"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Закрити панель навігації"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Мітка \"<xliff:g id="LABEL_NAME">%s</xliff:g>\""</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Мітки"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Облікові записи"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Показувати всю історію разом"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Події та повідомлення"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Події"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Повідомлення"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Пропозиції"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Упорядковуйте свої контакти для зручності користування"</string>
+    <string name="undo" msgid="1425165101664071422">"Відмінити"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Зателефонувати на такий номер: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Набрати дом. ном."</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Набрати моб."</string>
+    <string name="call_work" msgid="5328785911463744028">"Набрати роб."</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Набрати роб. факс"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Набрати дом. факс"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Набрати пейдж."</string>
+    <string name="call_other" msgid="8563753966926932052">"Набрати"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Набрати зворот. виклик"</string>
+    <string name="call_car" msgid="3280537320306436445">"Набрати ном. в авто"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Набрати осн. роб. тел."</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Набрати ном. ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Набрати осн. тел."</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Набрати факс"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Набрати радіотел."</string>
+    <string name="call_telex" msgid="2223170774548648114">"Набрати телекс"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Набрати ном. TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Набрати роб. моб."</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Двон. на роб. пейдж."</string>
+    <string name="call_assistant" msgid="670941612175068337">"Зателефонувати на такий номер: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Набрати ном. MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (зателефонувати)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Надіслати SMS на такий номер: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS на дом. тел."</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS на моб."</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS на роб. ном."</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS на роб. факс"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS на дом. факс"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS на пейдж."</string>
+    <string name="sms_other" msgid="806127844607642331">"SMS"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS на зворот. викл."</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS на ном. в авто"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS на осн. роб. тел."</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS на ном. ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS на осн. ном."</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"SMS на факс"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS на радіотел."</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS на телекс"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS на TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS на роб. моб."</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS на роб. пейдж."</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"SMS на <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"SMS на ном. MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (надіслати повідомлення)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Здійснити відеодзвінок"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Очистити список частих контактів?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Буде видалено список користувачів, з якими ви часто спілкуєтеся, з додатків Контакти та Телефон і скинуто налаштування адрес у додатках для електронної пошти."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Очищення списку частих контактів…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Доступний"</string>
+    <string name="status_away" msgid="1838861100379804730">"Не на місці"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Зайнятий"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Інші"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Каталог"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Робочі контакти"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Усі контакти"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Швидкий контакт із: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Без імені)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Часті контакти"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Усі контакти з номерами телефону"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Контакти в робочому профілі"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Переглян. оновлення"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Пристрій"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM-карта"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Ім\'я"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Псевдонім"</string>
+    <string name="name_given" msgid="4280790853455320619">"Ім’я"</string>
+    <string name="name_family" msgid="7466985689626017037">"Прізвище"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Префікс імені"</string>
+    <string name="name_middle" msgid="8467433655992690326">"По-батькові"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Суфікс імені"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Вимова імені"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Вимова імені"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Вимова по-батькові"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Вимова прізвища"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Телефон"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Електронна адреса"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Адреса"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Чат"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Організація"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Стосунки"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Спеціальна дата"</string>
+    <string name="sms" msgid="1756857139634224222">"Текстове повідомлення"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Адреса"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Компанія"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Назва"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Примітки"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Спеціальне"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Веб-сайт"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Мітки"</string>
+    <string name="email_home" msgid="8573740658148184279">"Написати на дом. адр."</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Напис. на моб."</string>
+    <string name="email_work" msgid="2807430017302722689">"Напис. на роб. адр."</string>
+    <string name="email_other" msgid="3454004077967657109">"Надісл. ел.лист"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Написати листа на таку адресу: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Відправ."</string>
+    <string name="postal_street" msgid="8133143961580058972">"Вулиця"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Місто"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Область"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Пошт. код"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Країна"</string>
+    <string name="map_home" msgid="1243547733423343982">"Див. дом. адресу"</string>
+    <string name="map_work" msgid="1360474076921878088">"Див. роб. адресу"</string>
+    <string name="map_other" msgid="3817820803587012641">"Див. адресу"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Переглянути таку адресу: <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Чат через AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Чат через Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Чат через Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Чат через Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Чат через QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Чат через Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Чат через ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Чат через Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Чат"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"видалити"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Показати більше полів імені"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Згорнути поля імен"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Показати більше полів для вимови імені"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Згорнути поля вимови імен"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Розгорнути"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Згорнути"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Розгорнуто"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Згорнуто"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Усі контакти"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Із зірочкою"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Налаштувати"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Контакт"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Усі інші контакти"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Усі контакти"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Видал. синхр. групу"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Дод. синхр. групу"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Інші групи…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Видалення групи \"<xliff:g id="GROUP">%s</xliff:g>\" із синхронізації призведе до припинення синхронізації незгрупованих контактів."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Зберіг-ня парам. відображ…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Користувацький режим"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Зберегти імпортовані контакти в обліковий запис:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM-карта"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM-карта <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%1$d контакт</item>
+      <item quantity="few">%1$d контакти</item>
+      <item quantity="many">%1$d контактів</item>
+      <item quantity="other">%1$d контакта</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> контакт • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_2">^1</xliff:g> контакти • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="many"><xliff:g id="COUNT_2">^1</xliff:g> контактів • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> контакта • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Файл .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Немає контактів для імпорту"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Імпортувати контакти з файлу vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Скасувати імпорт файлу <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Скасувати експорт файлу <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Не вдалося скасув. імпорт/експорт vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Невідома помилка."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Не вдалося відкрити файл \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Не вдалося запустити експортер: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Немає контакту, який можна експортувати."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Ви вимкнули обов’язковий дозвіл."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Під час експорту сталася помилка: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Помилка вводу/виводу"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Недостатньо пам’яті. Можливо, файл завеликий."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Формат не підтримується."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Експорт файлу <xliff:g id="FILENAME">%s</xliff:g> завершено."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Контакти експортовано."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Контакти експортовано. Натисніть сповіщення, щоб надати доступ до контактів."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Торкніться, щоб поділитися контактами."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Експорт файлу <xliff:g id="FILENAME">%s</xliff:g> скасовано."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Експорт. контактні дані"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Контакти експортуються."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Не вдалось отримати інформацію бази даних."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Немає контактів для експортування."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Майстер vCard не запущено належним чином."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Помилка експорту"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Контактні дані не експортовано.\nПричина: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Імпорт <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Не вдалося прочитати дані vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Імпорт файлу <xliff:g id="FILENAME">%s</xliff:g> vCard завершено"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Імпорт файлу <xliff:g id="FILENAME">%s</xliff:g> скасовано"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"Файл <xliff:g id="FILENAME">%s</xliff:g> незабаром буде імпортовано."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Незабаром файл буде імпортовано."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Запит на імпорт файлу vCard відхилено. Повторіть спробу пізніше."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Контакти невдовзі буде експортовано."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Запит на експорт файлу vCard відхилено. Повторіть спробу пізніше."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"контакт"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Кешування файлів vCard у локальну тимчасову пам’ять. Імпорт почнеться незабаром."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Не вдалось імпортувати файл vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Конт., отрим.через NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Кешування"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Імпорт <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> з <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Експортувати у файл .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Параметри сортування"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Вимова імені"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Завжди показувати"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Сховати порожнє поле"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ім’я"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Прізвище"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Формат імені"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Ім’я спочатку"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Прізвище спочатку"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Облікові записи"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Обл. запис за умовчанням для нових контактів"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Мої дані"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Налаштування профілю"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Про додаток Контакти"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Поділитися вибраними контактами"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Поділитися всіма контактами"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Не вдалося поділитися контактами."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Експорт контактів"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Імпорт контактів із джерела:"</string>
+    <string name="share_error" msgid="948429331673358107">"Цей контакт неможливо надіслати."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Немає контактів, якими можна поділитися."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Контакти для показу"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Контакти для показу"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Налаштувати перегляд"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Зберегти"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Пошук серед контактів"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Вибране"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Імпортувати"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Експортувати"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Заблоковані номери"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"через <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> через <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"припинити пошук"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Очистити поле пошуку"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Обліковий запис"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Завжди використовувати для викликів"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Зателефонувати й надіслати нотатку"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Введіть нотатку, яку потрібно надіслати під час виклику…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"ЗАТЕЛЕФОНУВАТИ Й НАДІСЛАТИ"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> з <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Версія складання"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Ліцензії з відкритим кодом"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Деталі ліцензії на програмне забезпечення з відкритим кодом"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Політика конфіденційності"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Умови використання"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Ліцензії з відкритим кодом"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Не вдалося відкрити посилання."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> вибрано"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> не вибрано"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Почати відеодзвінок"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Видалити"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Три крапки"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> с"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> хв <xliff:g id="SECONDS">%2$s</xliff:g> с"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> год <xliff:g id="MINUTES_1">%2$s</xliff:g> хв <xliff:g id="SECONDS">%3$s</xliff:g> с"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Ярлик вимкнено"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Контакт вилучено"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Імпортувати"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Вибрати контакти"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"На SIM-карті немає контактів"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Контакт уже є у вашому списку"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one">Імпортовано <xliff:g id="COUNT">%d</xliff:g> контакт із SIM-карти</item>
+      <item quantity="few">Імпортовано <xliff:g id="COUNT">%d</xliff:g> контакти із SIM-карти</item>
+      <item quantity="many">Імпортовано <xliff:g id="COUNT">%d</xliff:g> контактів із SIM-карти</item>
+      <item quantity="other">Імпортовано <xliff:g id="COUNT">%d</xliff:g> контакта із SIM-карти</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Не вдалось імпортувати контакти із SIM-карти"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Імпорт із SIM-карти"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Скасувати"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Автоматичну синхронізацію вимкнено. Торкніться, щоб увімкнути."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Закрити"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Синхронізацію облікового запису вимкнено. Торкніться, щоб увімкнути."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Увімкнути автоматичну синхронізацію?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Зміни, які ви вносите в усі додатки й облікові записи (не тільки в Контакти Google), синхронізуватимуться між веб-версією та вашими пристроями."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Увімкнути"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Немає з’єднання"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM-карта"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Показати більше"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM-карту імпортовано"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Не вдалось імпортувати"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Не вдалось імпортувати контакти із SIM-карти"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Імпорт SIM-карти"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
deleted file mode 100644
index 22558fa..0000000
--- a/res/values-ur-rPK/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"رابطے"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"رابطے"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"رابطہ دیکھیں"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"رابطہ میں ترمیم کریں"</string>
-    <string name="contactsList" msgid="8661624236494819731">"رابطے"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"رابطہ"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"ڈائریکٹ ڈائل"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"ڈائریکٹ پیغام"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"رابطہ کا شارٹ کٹ منتخب کریں"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"کال کرنے کیلئے ایک نمبر منتخب کریں"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"پیغام بھیجنے کیلئے ایک نمبر منتخب کریں"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"رابطے میں شامل کریں"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ایک رابطہ منتخب کریں"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"نیا رابطہ بنائیں"</string>
-    <string name="starredList" msgid="4817256136413959463">"ستارے کے نشان والے"</string>
-    <string name="frequentList" msgid="7154768136473953056">"اکثر"</string>
-    <string name="strequentList" msgid="5640192862059373511">"پسندیدہ"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"رابطہ کی تفصیلات"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"رابطہ میں ترمیم کریں"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"رابطہ بنائیں"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"گروپ میں ترمیم کریں"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"گروپ بنائیں"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"تفصیل"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"اپ ڈیٹس"</string>
-    <string name="searchHint" msgid="8482945356247760701">"رابطے تلاش کریں"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"رابطہ دیکھیں"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"پسندیدہ میں شامل کریں"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"پسندیدہ سے ہٹائیں"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"پسندیدہ سے ہٹا دیا گیا"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"پسندیدہ میں شامل کر دیا گیا"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"ترمیم کریں"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"حذف کریں"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"تصویر بدلیں"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ہوم اسکرین پر رکھیں"</string>
-    <string name="menu_call" msgid="3992595586042260618">"رابطہ کو کال کریں"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"رابطہ کو متن بھیجیں"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"لنک ختم کریں"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"ترمیم کریں"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"حذف کریں"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"رابطہ شامل کریں"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"گروپ شامل کریں"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"اس رابطے کا لنک ختم کر کے اسے متعدد رابطوں میں تبدیل کریں؟"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"لنک ختم کریں"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"کیا آپ پہلے سے کی گئی تبدیلیاں محفوظ کرنا اور اس رابطے کا لنک ختم کر کے متعدد رابطوں میں تبدیل کرنا چاہیں گے؟"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"محفوظ کریں اور لنک ختم کریں"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"کیا آپ پہلے سے کی گئی تبدیلیاں محفوظ کر کے منتخب کردہ رابطے کے ساتھ لنک کرنا چاہتے ہیں؟"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"محفوظ اور لنک کریں"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"لنک کریں"</string>
-    <string name="menu_save" msgid="1727844363591825909">"محفوظ کریں"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"رابطے لنک کریں"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"جو رابطہ آپ <xliff:g id="NAME">%s</xliff:g> سے لنک کرنا چاہتے ہیں اسے منتخب کریں:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"سبھی رابطے دکھائیں"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"مجوزہ رابطے"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"سبھی رابطے"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"رابطے لنک ہو گئے"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">رابطے حذف ہو گئے</item>
-      <item quantity="one">رابطہ حذف ہو گیا</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"رنگ ٹون طے کریں"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"صوتی میل پر سبھی کالیں"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"آپ کے صرف پڑھنے والے اکاؤنٹس سے رابطے حذف نہیں کیے جا سکتے لیکن انہیں چھپایا جا سکتا ہے۔"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"چھپائیں"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"حذف ہونے والا رابطہ متعدد اکاؤنٹس کی تفاصیل پر مشتمل ہے۔ صرف پڑھنے والے اکاؤنٹس کی تفاصیل چھپا دی جائیں گی، حذف نہیں کی جائیں گی۔"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"لنک کرنے کیلئے آپ کو کم از کم دو رابطے منتخب کرنے کی ضرورت ہے۔"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"منتخب کردہ رابطے لنک کریں؟"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"لنک کریں"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"اس رابطے کو حذف کریں؟"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"منتخب کردہ رابطے حذف کریں؟"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"آپ کے صرف پڑھنے والے اکاؤنٹس سے رابطے حذف نہیں کیے جا سکتے لیکن انہیں چھپایا جا سکتا ہے۔"</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"حذف ہونے والے رابطوں کی تفاصیل متعدد اکاؤنٹس پر مشتمل ہیں۔ صرف پڑھنے والے اکاؤنٹس کی تفاصیل چھپا دی جائیں گی، حذف نہیں کی جائیں گی۔"</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"یہ رابطہ حذف کرنے سے متعدد اکاؤنٹس کی تفاصیل حذف ہوجائیں گی۔"</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"اس رابطے کو حذف کریں؟"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"حذف کریں"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"تبدیلیاں رد کریں"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"رابطہ موجود نہیں ہے۔"</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"رابطہ ہوم اسکرین میں شامل ہو گیا۔"</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ہوم اسکرین میں شامل ہو گیا۔"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"نیا رابطہ بنائیں"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"نیا رابطہ بنائیں"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"تنظیم"</item>
-    <item msgid="7196592230748086755">"نوٹ"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"ٹیبلٹ پر کوئی تصاویر دستیاب نہیں ہیں۔"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"فون پر کوئی تصاویر دستیاب نہیں ہیں۔"</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"رابطہ کی تصویر"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"حسب ضرورت لیبل کا نام"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"کالیں براہ راست صوتی میل کو بھیجیں"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"تصویر ہٹائیں"</string>
-    <string name="noContacts" msgid="4955659076981974652">"کوئی رابطے نہیں ہیں"</string>
-    <string name="noGroups" msgid="8614664663561385253">"کوئی گروپس نہیں ہیں۔"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"گروپس بنانے کیلئے آپ کو ایک اکاؤنٹ درکار ہے۔"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"اس گروپ میں کوئی لوگ نہیں ہیں۔"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"کچھ شامل کرنے کیلئے، گروپ میں ترمیم کریں۔"</string>
-    <string name="savingContact" msgid="4075751076741924939">"رابطہ محفوظ ہو رہا ہے…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"رابطہ محفوظ ہوگیا"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"رابطے اَن لنک ہو گئے"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"رابطہ میں تبدیلیاں محفوظ نہیں ہوسکیں۔"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"رابطہ غیر منسلک نہیں ہو سکا۔"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"رابطہ لنک نہیں ہو سکا۔"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"رابطہ محفوظ کرتے ہوئے خرابی۔"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"رابطہ کی تصویر کی تبدیلیاں محفوظ نہیں کی جا سکیں۔"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"گروپ محفوظ ہوگیا۔"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"گروپ میں تبدیلیوں کو محفوظ نہیں کرسکا۔"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">فون نمبرز کے ساتھ <xliff:g id="COUNT">%d</xliff:g> رابطے</item>
-      <item quantity="one">فون نمبر کے ساتھ 1 رابطہ</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"فون نمبروں کے ساتھ کوئی رابطے نہیں ہیں"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ملے</item>
-      <item quantity="one">1 ملا</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"کوئی رابطے نہیں ہیں"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ملے</item>
-      <item quantity="one">1 ملا</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"تمام"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"پسندیدہ"</string>
-    <string name="callBack" msgid="5498224409038809224">"واپس کال کریں"</string>
-    <string name="callAgain" msgid="3197312117049874778">"دوبارہ کال کریں"</string>
-    <string name="returnCall" msgid="8171961914203617813">"کال لوٹائیں"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" کو رابطوں میں شامل کریں؟"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"رابطہ کی تصویر"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"پلس"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> از <xliff:g id="TOTAL_NUMBER">%s</xliff:g> رابطے"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"آپ کے رابطوں کے نام"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"اس کارروائی کو نمٹانے کیلئے کوئی ایپ نہیں ملا۔"</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"سابقہ اسکرین پر واپس جانے کیلئے کلک کریں"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"فون نمبر شامل کریں"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"ای میل شامل کریں"</string>
-    <string name="missing_app" msgid="1466111003546611387">"اس کارروائی کو نمٹانے کیلئے کوئی ایپ نہیں ملا۔"</string>
-    <string name="menu_share" msgid="943789700636542260">"اشتراک کریں"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"رابطوں میں شامل کریں"</string>
-    <string name="share_via" msgid="563121028023030093">"رابطہ کا اشتراک کریں معرفت"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"اکاؤنٹ کے تحت گروپ بنائیں"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"صوتی چیٹ"</string>
-    <string name="video_chat" msgid="1872255818640336072">"ویڈیو چیٹ"</string>
-    <string name="connections" msgid="8098440723172028350">"کنکشنز"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"کنکشن شامل کریں"</string>
-    <string name="recent" msgid="2659189233141493004">"حالیہ"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"حالیہ اپ ڈیٹس"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> رابطہ"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> اکاؤنٹ"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"اس ایپ سے قابل ترمیم نہیں ہے۔"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"اس آلہ پر قابل ترمیم نہیں ہے۔"</string>
-    <string name="take_photo" msgid="7496128293167402354">"تصویر لیں"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"نئی تصویر لیں"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"تصویر منتخب کریں"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"نئی تصویر منتخب کریں"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"رابطہ کی فہرست اپ ڈیٹ ہو رہی ہے۔"</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"تلاش کر رہا ہے…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"منتخب کردہ کو دکھائیں"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"سبھی دکھائیں"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"سبھی کو منتخب کریں"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"سبھی کو غیر منتخب کریں"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"نیا شامل کریں"</string>
-    <string name="add_organization" msgid="7311893231158291197">"تنظیم شامل کریں"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"تاریخ"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"گروپ کا نام"</string>
-    <string name="change_photo" msgid="8530597935483526383">"تبدیل کریں"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"بنیادی تصویر"</string>
-    <string name="description_star" msgid="2605854427360036550">"پسندیدہ"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"رابطہ میں ترمیم کریں"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"موجودہ رابطہ کو منتخب کردہ رابطہ کے ساتھ لنک کریں؟"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"منتخب کردہ رابطہ میں ترمیم کرنے کیلئے سوئچ کریں؟ اب تک آپ کی درج کردہ معلومات کاپی ہوجائے گی۔"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"میرے رابطے میں کاپی کریں"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"میرے رابطوں میں شامل کریں"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"ڈائریکٹری <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"حسب ضرورت"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"ترتیبات"</string>
-    <string name="menu_settings" msgid="377929915873428211">"ترتیبات"</string>
-    <string name="menu_help" msgid="1680178646764069976">"مدد اور تاثرات"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"ڈسپلے کے اختیارات"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"فون نمبر"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"رابطوں میں شامل کریں"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"رابطہ میں شامل کریں"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"بند کریں"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"سال شامل کریں"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"رابطہ"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"لوڈ ہو رہا ہے…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"ایک نیا رابطہ بنائیں"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"اکاؤنٹ شامل کریں"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"رابطے درآمد کریں"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"نیا گروپ بنائیں"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"نیا گروپ بنائیں"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> گروپس</item>
-      <item quantity="one">1 گروپ</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"گروپ \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" کو حذف کریں؟ (رابطے بذات خود حذف نہیں ہوں گے۔)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> میں سے <xliff:g id="COUNT_2">%1$d</xliff:g> لوگ</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> میں سے <xliff:g id="COUNT_0">%1$d</xliff:g> شخص</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> لوگ</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> شخص</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"کسی دوسرے کے ساتھ لنک کرنے سے پہلے رابطہ کا نام ٹائپ کریں۔"</string>
-    <string name="copy_text" msgid="3257145021583508761">"کلپ بورڈ میں کاپی کریں"</string>
-    <string name="set_default" msgid="4417505153468300351">"ڈیفالٹ طے کریں"</string>
-    <string name="clear_default" msgid="7193185801596678067">"ڈیفالٹ کو صاف کریں"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"متن کاپی ہوگیا"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"اپنی تبدیلیاں رد کریں؟"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"رد کریں"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"میرا پروفائل ترتیب دیں"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"شخص کا نام ٹائپ کریں"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"گروپ کا نام"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"میرا مقامی پروفائل"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"میرا <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> پروفائل"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"سبھی رابطے ڈسپلے کر رہا ہے"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"‏رابطے Google اکاؤنٹ کے ساتھ بہتر کام کرتے ہیں۔\n\n• کسی بھی ویب براؤزر سے رسائی حاصل کریں۔\n• محفوظ طریقے سے اپنے رابطوں کا بیک اپ لیں۔"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"اپنے رابطوں کو محفوظ رکھیں اگرچہ آپ کا فون کھو جائے: ایک آن لائن سروس کے ساتھ مطابقت پذیر بنائیں۔"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"ایک اکاؤنٹ شامل کریں"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"آپ کے نئے رابطے کا بیک اپ نہیں لیا جائے گا۔ ایک ایسا اکاؤنٹ شامل کریں جو رابطوں کا آن لائن بیک اپ لیتا ہے؟"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"نئے رابطے <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> میں محفوظ ہو جائیں گے۔"</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"نئے رابطوں کیلئے ایک ڈیفالٹ اکاؤنٹ منتخب کریں:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"نیا رابطہ شامل کریں"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"رابطہ میں ترمیم کریں"</string>
-    <string name="keep_local" msgid="1258761699192993322">"مقامی رکھیں"</string>
-    <string name="add_account" msgid="8201790677994503186">"اکاؤنٹ شامل کریں"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"نیا اکاؤنٹ شامل کریں"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"ڈیٹا بیس فائلیں برآمد کریں"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"نیا رابطہ شامل کریں"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"مزید دیکھیں"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"کم دیکھیں"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"سبھی دیکھیں"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"حالیہ"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"تفصیل"</string>
-    <string name="send_message" msgid="8938418965550543196">"پیغام بھیجیں"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"ایک ذاتی کاپی بنائی جا رہی ہے…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"گزشتہ کل"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"آئندہ کل"</string>
-    <string name="today" msgid="8041090779381781781">"ﺁﺝ"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"آج بوقت <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"کل بوقت <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(بلا عنوان ایونٹ)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"سیٹ کریں"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"تنظیم"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"عرفی نام"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"نوٹ"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"ویب سائٹ"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"ایونٹ"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"رشتہ"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"اکاؤنٹ"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"نام"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"ای میل"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"فون"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"تصویر"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"رابطہ ایڈیٹر پھیلانے کیلئے کلک کریں۔"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"رابطہ ایڈیٹر سکیڑنے کیلئے کلک کریں۔"</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"مقام کیلئے ڈائریکشنز"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"‏حالیہ sms۔ <xliff:g id="MESSAGE_BODY">%s</xliff:g>۔ <xliff:g id="PHONE_NUMBER">%s</xliff:g>۔ <xliff:g id="DATE">%s</xliff:g>۔ جواب دینے کیلئے کلک کریں"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"اِن کمنگ"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"آؤٹ گوئنگ"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"چھوٹی ہوئی"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"حالیہ کال۔ <xliff:g id="CALL_TYPE">%s</xliff:g>۔ <xliff:g id="PHONE_NUMBER">%s</xliff:g>۔ <xliff:g id="DATE">%s</xliff:g>۔ واپسی کال کرنے کیلئے کلک کریں"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"آپ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"‏جب آپ کسی شخص کا Hangouts شناخت کنندہ ای میل فیلڈ یا فون فیلڈ میں داخل کرتے ہیں تو Hangouts بہتر کام کرتا ہے۔"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"مزید فیلڈز"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"تصویر بدلیں"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"ایڈیٹر کھولنے میں ناکام۔"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"اس میں محفوظ ہوگا"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"فی الحال <xliff:g id="ACCOUNT_NAME">%s</xliff:g> میں محفوظ کیا جا رہا ہے۔ کوئی مختلف اکاؤنٹ منتخـب کرنے کیلئے دو بار تھپتھپائیں۔"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">لنک کردہ رابطے (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">لنک کردہ رابطہ</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> لنک کردہ رابطے"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"رابطے لنک کریں"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"منسوخ کریں"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ممکنہ ڈپلیکیٹس</item>
-      <item quantity="one">1 ممکنہ ڈپلیکیٹ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> لنک کردہ رابطے</item>
-      <item quantity="one">1 لنک کردہ رابطہ</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"یہ رابطہ"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ممکنہ ڈپلیکیٹس"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"یہ رابطے ایک ہی شخص کے ہو سکتے ہیں۔ آپ انہیں ایک رابطے کے طور پر آپس میں لنک کر سکتے ہیں۔"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"لنک کردہ رابطے"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"آپ کے اکاؤنٹس سے"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"ایک تصویر لیں"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"سبھی تصاویر"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"تصویر چنیں"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> سے"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g> حذف کریں"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> حذف کریں"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> کی تصویر چیک نہیں ہوئی"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> کی تصویر چیک ہو گئی"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"نامعلوم اکاؤنٹ سے تصویر نشان زد نہیں ہے"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"نامعلوم اکاؤنٹ سے تصویر نشان زد ہے"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"زبان کی تبدیلی کو منعکس کرنے کیلئے رابطہ فہرست اپ ڈیٹ ہو رہی ہے\n\nبراہ کرم انتظار کریں…"</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"نمبر شامل کریں"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"نمبر مسدود کریں"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"نمبر شامل کریں یا رابطے تلاش کریں"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> غیر مسدود کریں؟"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"غیر مسدود کریں"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> مسدود کریں؟"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"مسدود کریں"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> مسدود ہو گیا"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> غیر مسدود ہو گیا"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> غلط ہے۔"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"کال مسدود کرنا عارضی طور پر آف ہے"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"کال مسدود کرنا غیر فعال کر دیا گیا ہے کیونکہ آپ نے پچھلے 48 گھنٹوں میں اس فون سے ہنگامی سروسز کے ساتھ رابطہ کیا تھا۔ جب 48 گھنٹے کا دورانیہ ختم ہوگا تو یہ خودکار طور پر دوبارہ فعال ہو جائے گا۔"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"درآمد کریں"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"نمبرز دیکھیں"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"نمبر شامل کریں"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"کال مسدود کرنا 48 گھنٹے کیلئے غیر فعال ہو گیا"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"غیر فعال ہو گیا کیونکہ ایک ہنگامی کال کی گئی تھی۔"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"کالعدم کریں"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> پہلے ہی مسدود ہے۔"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"نمبر غیر مسدود کریں"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> کیلئے رابطہ کی تفصیلات"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"درآمد کرنا ناکام ہوگیا"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"نمبرز درآمد کریں"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"آن کریں"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
new file mode 100644
index 0000000..d9fb02f
--- /dev/null
+++ b/res/values-ur/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"رابطے"</string>
+    <string name="contactsList" msgid="8661624236494819731">"رابطے"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"رابطہ شامل کریں"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"رابطہ"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"ڈائریکٹ ڈائل"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"ڈائریکٹ پیغام"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"رابطہ چنیں"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"رابطے میں شامل کریں"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"ایک رابطہ منتخب کریں"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"منتخب کریں"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"نیا رابطہ بنائیں"</string>
+    <string name="searchHint" msgid="8482945356247760701">"رابطے تلاش کریں"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"پسندیدہ میں شامل کریں"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"پسندیدہ سے ہٹائیں"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"پسندیدہ سے ہٹا دیا گیا"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"پسندیدہ میں شامل کر دیا گیا"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"ترمیم کریں"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"حذف کریں"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"تصویر بدلیں"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"شارٹ کٹ تخلیق کریں"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"لنک ختم کریں"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"رابطے ہٹائیں"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"لیبل کا نام تبدیل کریں"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"لیبل حذف کریں"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"رابطہ شامل کریں"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"رابطے منتخب کریں"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"رابطے شامل کریں"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"لیبل سے ہٹائیں"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"لیبل تخلیق کریں"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"اس رابطے کا لنک ختم کر کے اسے متعدد رابطوں میں تبدیل کریں؟"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"لنک ختم کریں"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"کیا آپ پہلے سے کی گئی تبدیلیاں محفوظ کرنا اور اس رابطے کا لنک ختم کر کے متعدد رابطوں میں تبدیل کرنا چاہیں گے؟"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"محفوظ کریں اور لنک ختم کریں"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"کیا آپ پہلے سے کی گئی تبدیلیاں محفوظ کر کے منتخب کردہ رابطے کے ساتھ لنک کرنا چاہتے ہیں؟"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"محفوظ اور لنک کریں"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"لنک ہو رہے ہیں"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"لنک ختم ہو رہا ہے"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"لنک کریں"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"لنک کردہ رابطے دیکھیں"</string>
+    <string name="menu_save" msgid="1727844363591825909">"محفوظ کریں"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"رابطے لنک کریں"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"جو رابطہ آپ <xliff:g id="NAME">%s</xliff:g> سے لنک کرنا چاہتے ہیں اسے منتخب کریں:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"مجوزہ رابطے"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"سبھی رابطے"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> لنک ہو گیا"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"رابطے لنک ہو گئے"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> حذف ہو گیا"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> اور <xliff:g id="NAME_1">%2$s</xliff:g> حذف ہو گئے"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>، <xliff:g id="NAME_1">%2$s</xliff:g>، <xliff:g id="NAME_2">%3$s</xliff:g>… حذف ہو گئے"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">رابطے حذف ہو گئے</item>
+      <item quantity="one">رابطہ حذف ہو گیا</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> رابطے</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> رابطہ</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> رابطے ۔ <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> رابطہ ۔ <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"‏Google سے"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> سے"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"رنگ ٹون طے کریں"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"صوتی میل پر منتقل کریں"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"صوتی میل سے ہٹائیں"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"یہ رابطہ صرف پڑھنے والا ہے۔ آپ اسے چھپا سکتے ہیں، لیکن اسے حذف نہیں کیا جا سکتا۔"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"رابطہ کو چھپائیں"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"اس رابطے کے صرف پڑھنے والے اکاؤنٹس مخفی ہوں گے، حذف نہیں۔"</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"اس رابطے کو حذف کریں؟"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"منتخب کردہ رابطے حذف کریں؟"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"آپ کے صرف پڑھنے والے اکاؤنٹس سے رابطے حذف نہیں کیے جا سکتے لیکن انہیں چھپایا جا سکتا ہے۔"</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"حذف ہونے والے رابطوں کی تفاصیل متعدد اکاؤنٹس پر مشتمل ہیں۔ صرف پڑھنے والے اکاؤنٹس کی تفاصیل چھپا دی جائیں گی، حذف نہیں کی جائیں گی۔"</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"یہ رابطہ حذف کرنے سے متعدد اکاؤنٹس کی تفاصیل حذف ہوجائیں گی۔"</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"اس رابطے کو حذف کریں؟"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"حذف کریں"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"رابطہ موجود نہیں ہے۔"</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"رابطہ ہوم اسکرین میں شامل ہو گیا۔"</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> ہوم اسکرین میں شامل ہو گیا۔"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"آلہ پر کوئی تصاویر دستیاب نہیں ہیں۔"</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"رابطہ کی تصویر"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"حسب ضرورت لیبل کا نام"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"تصویر ہٹائیں"</string>
+    <string name="noContacts" msgid="2228592924476426108">"آپ کے رابطوں کی فہرست خالی ہے"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"اس لیبل کے ساتھ کوئی رابطے نہیں"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"اس اکاؤنٹ میں کوئی رابطے نہیں"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"آپ کے رابطوں کی فہرست خالی ہے"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> محفوظ ہو گیا"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"رابطہ محفوظ ہوگیا"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"رابطے اَن لنک ہو گئے"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"رابطہ کی تبدیلیاں محفوظ نہیں ہوسکیں"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"رابطہ کا لنک ختم نہیں ہو سکا"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"رابطہ لنک نہیں ہو سکا"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"رابطہ محفوظ کرنے میں خرابی"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"رابطہ کی تصویر کی تبدیلیاں محفوظ نہیں ہو سکیں"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"لیبل لوڈ ہونے میں ناکام"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"لیبل حذف ہو گیا"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"لیبل تخلیق ہو گیا"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"لیبل نہیں بنایا جا سکتا"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"لیبل اپ ڈیٹ ہو گیا"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"لیبل سے ہٹا دیے گئے"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"لیبل میں شامل ہو گیا"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"لیبل کی تبدیلیاں محفوظ نہیں ہو سکیں"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"یہ لیبل پہلے سے موجود ہے"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"کچھ رابطوں کے پاس ای میلز نہیں ہیں۔"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"کچھ رابطوں کے پاس فون نمبرز نہیں ہیں۔"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"ای میل بھیجیں"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"پیغام بھیجیں"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"رابطے منتخب کریں"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"بھیجیں"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"کوئی رابطے نہیں ہیں"</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"\"<xliff:g id="EMAIL">%s</xliff:g>\" کو رابطوں میں شامل کریں؟"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"آپ کے رابطوں کے نام"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"سابقہ اسکرین پر واپس جانے کیلئے کلک کریں"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"فون نمبر شامل کریں"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"ای میل شامل کریں"</string>
+    <string name="missing_app" msgid="1466111003546611387">"اس کارروائی کو نمٹانے کیلئے کوئی ایپ نہیں ملا۔"</string>
+    <string name="menu_share" msgid="943789700636542260">"اشتراک کریں"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"رابطوں میں شامل کریں"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"شامل کریں"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">رابطوں کا اشتراک کریں بذریعہ</item>
+      <item quantity="one">رابطہ کا اشتراک کریں بذریعہ</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"اکاؤنٹ منتخب کریں"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"لیبل تخلیق کریں"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"لیبل کا نام تبدیل کریں"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"لیبل کا نام"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"لیبل کا نام"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"صوتی چیٹ"</string>
+    <string name="video_chat" msgid="1872255818640336072">"ویڈیو چیٹ"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> رابطہ"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> اکاؤنٹ"</string>
+    <string name="take_photo" msgid="7496128293167402354">"تصویر لیں"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"نئی تصویر لیں"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"تصویر منتخب کریں"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"نئی تصویر منتخب کریں"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"تلاش کر رہا ہے…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"تاریخ"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"لیبل"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"منسوخ کریں"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"پیچھے"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"بند کریں"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"منتخب کردہ رابطہ میں ترمیم کرنے کیلئے سوئچ کریں؟ اب تک آپ کی درج کردہ معلومات کاپی ہوجائے گی۔"</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"ڈائریکٹری <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"ترتیبات"</string>
+    <string name="menu_settings" msgid="377929915873428211">"ترتیبات"</string>
+    <string name="menu_help" msgid="1680178646764069976">"مدد اور تاثرات"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"فون نمبر"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"رابطوں میں شامل کریں"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"بند کریں"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"سال شامل کریں"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"اکاؤنٹ شامل کریں"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"درآمد کریں"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"‏نیا بنائیں‎…‎"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" لیبل حذف کریں؟ (رابطے حذف نہیں ہوں گے۔)"</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"کسی دوسرے کے ساتھ لنک کرنے سے پہلے رابطہ کا نام ٹائپ کریں۔"</string>
+    <string name="copy_text" msgid="3257145021583508761">"کلپ بورڈ میں کاپی کریں"</string>
+    <string name="set_default" msgid="4417505153468300351">"ڈیفالٹ طے کریں"</string>
+    <string name="clear_default" msgid="7193185801596678067">"ڈیفالٹ کو صاف کریں"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"متن کاپی ہوگیا"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"تبدیلیاں مسترد کریں؟"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"رد کریں"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"منسوخ کریں"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"حسب ضرورت بنانے کو مسترد کریں؟"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"رابطے تلاش کریں"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"رابطے ہٹائیں"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"میرا مقامی پروفائل"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"میرا <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> پروفائل"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"‏ایسا اکاؤنٹ شامل کرنے کیلئے تھوڑا وقت نکالیں جو آپ کے رابطے Google پر بیک اپ کرے گا۔"</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"نئے رابطے <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> میں محفوظ ہو جائیں گے۔"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"نئے رابطوں کیلئے ایک ڈیفالٹ اکاؤنٹ منتخب کریں:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"نیا رابطہ بنائیں"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"رابطہ میں ترمیم کریں"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"صرف منظر"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"ترمیم کرنے کیلئے رابطہ منتخب کریں"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"لنک کردہ رابطے"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"شامل کریں"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"لنک ختم کریں"</string>
+    <string name="add_account" msgid="8201790677994503186">"اکاؤنٹ شامل کریں"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"نیا اکاؤنٹ شامل کریں"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"ڈیٹا بیس فائلیں برآمد کریں"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"نیا رابطہ بنائیں"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"مزید دیکھیں"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"کم دیکھیں"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"حالیہ"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"تفصیل"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"ایک ذاتی کاپی بنا رہا ہے…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"آئندہ کل"</string>
+    <string name="today" msgid="8041090779381781781">"ﺁﺝ"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"آج بوقت <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"کل بوقت <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(بلا عنوان ایونٹ)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"سیٹ کریں"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"تنظیم"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"عرفی نام"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"نوٹ"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"ویب سائٹ"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"ایونٹ"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"رشتہ"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"نام"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"ای میل"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"فون"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"مقام کیلئے ڈائریکشنز"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"‏حالیہ sms۔ <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>۔ <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>۔ <xliff:g id="DATE">%3$s</xliff:g>۔ جواب دینے کیلئے کلک کریں"</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"اِن کمنگ"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"آؤٹ گوئنگ"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"چھوٹی ہوئی"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"حالیہ کال۔ <xliff:g id="CALL_TYPE">%1$s</xliff:g>۔ <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>۔ <xliff:g id="DATE">%3$s</xliff:g>۔ واپسی کال کرنے کیلئے کلک کریں"</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"آپ: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"مزید فیلڈز"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"رابطہ کی تصویر تبدیل کریں"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"رابطہ کی تصویر شامل کریں"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"رابطہ کی تصویر"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"ایڈیٹر کھولنے میں ناکام۔"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"اس میں محفوظ ہو رہا ہے"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> کی جانب سے معلومات قابل ترمیم نہیں ہے"</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"رابطے لنک کریں"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"منسوخ کریں"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"یہ رابطہ"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"ممکنہ ڈپلیکیٹس"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"یہ رابطے ایک ہی شخص کے ہو سکتے ہیں۔ آپ انہیں ایک رابطے کے طور پر آپس میں لنک کر سکتے ہیں۔"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> حذف کریں"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> حذف کریں"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"تجاویز"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"نیا"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"نیویگیشن دراز کھولیں"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"نیویگیشن دراز بند کریں"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> لیبل"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"لیبلز"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"اکاؤنٹس"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"اپنی سرگزشت اکٹھی دیکھیں"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"ایونٹس اور پیغامات"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"ایونٹس"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"پیغامات"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"تجاویز"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"اپنے رابطوں کو منظم اور مفید رکھیں"</string>
+    <string name="undo" msgid="1425165101664071422">"کالعدم کریں"</string>
+    <string name="call_custom" msgid="6385303130912713318">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> کو کال کریں"</string>
+    <string name="call_home" msgid="1990519474420545392">"گھر کے نمبر پر کال کریں"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"موبائل پر کال کریں"</string>
+    <string name="call_work" msgid="5328785911463744028">"دفتر کے نمبر پر کال کریں"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"دفتر کے فیکس پر کال کریں"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"گھر کے فیکس پر کال کریں"</string>
+    <string name="call_pager" msgid="9003902812293983281">"پیجر پر کال کریں"</string>
+    <string name="call_other" msgid="8563753966926932052">"کال کریں"</string>
+    <string name="call_callback" msgid="1910165691349426858">"کال بیک نمبر پر کال کریں"</string>
+    <string name="call_car" msgid="3280537320306436445">"کار کے نمبر پر کال کریں"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"کمپنی کے اصل نمبر پر کال کریں"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"‏ISDN پر کال کریں"</string>
+    <string name="call_main" msgid="6082900571803441339">"اصل نمبر پر کال کریں"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"فیکس پر کال کریں"</string>
+    <string name="call_radio" msgid="8296755876398357063">"ریڈیو پر کال کریں"</string>
+    <string name="call_telex" msgid="2223170774548648114">"ٹیلیکس پر کال کریں"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"‏TTY / TDD پر کال کریں"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"دفتر کے موبائل پر کال کریں"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"دفتر کے پیجر پر کال کریں"</string>
+    <string name="call_assistant" msgid="670941612175068337">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> کو کال کریں"</string>
+    <string name="call_mms" msgid="6274041545876221437">"‏MMS نمبر پر کال کریں"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (کال کریں)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> پر متنی پیغام بھیجیں"</string>
+    <string name="sms_home" msgid="7524332261493162995">"گھر کے نمبر پر متن بھیجیں"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"موبائل پر متن بھیجیں"</string>
+    <string name="sms_work" msgid="2269624156655267740">"دفتر کے نمبر پر متن بھیجیں"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"دفتر کے فیکس نمبر پر متن بھیجیں"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"گھر کے فیکس نمبر پر متن بھیجیں"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"پیجر نمبر پر متن بھیجیں"</string>
+    <string name="sms_other" msgid="806127844607642331">"متن بھیجیں"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"کال بیک نمبر پر متن بھیجیں"</string>
+    <string name="sms_car" msgid="7444227058437359641">"کار کے نمبر پر متن بھیجیں"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"کمپنی کے اصل نمبر پر متن بھیجیں"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"‏ISDN نمبر پر متن بھیجیں"</string>
+    <string name="sms_main" msgid="8621625784504541679">"اصل نمبر پر متن بھیجیں"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"فیکس نمبر پر متن بھیجیں"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"ریڈیو پر متن بھیجیں"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"ٹیلکس پر متن بھیجیں"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"‏TTY / TDD پر متن بھیجیں"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"دفتر کے موبائل پر متن بھیجیں"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"دفتر کے پیجر پر متن بھیجیں"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> پر متن بھیجیں"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"‏MMS نمبر پر متن بھیجیں"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (پیغام بھیجیں)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"ویڈیو کال کریں"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"اکثر رابطہ کردہ کو صاف کریں؟"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"آپ رابطے اور فون ایپس میں اکثر رابطہ کردہ فہرست کو صاف کر دیں گے اور ای میل ایپس کو از سر نو اپنے پتے کی ترجیحات جاننے پر مجبور کریں گے۔"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"اکثر رابطہ کردہ کو صاف کر رہا ہے…"</string>
+    <string name="status_available" msgid="5586870015822828392">"دستیاب"</string>
+    <string name="status_away" msgid="1838861100379804730">"دور"</string>
+    <string name="status_busy" msgid="9147992455450257136">"مصروف"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"دیگر"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"ڈائریکٹری"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"دفتری ڈائرکٹری"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"سبھی رابطے"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g> کیلئے فوری رابطہ"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(کوئی نام نہیں)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"اکثر رابطہ کردہ"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"فون نمبرز والے سبھی رابطے"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"دفتری پروفائل رابطے"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"اپ ڈیٹس دیکھیں"</string>
+    <string name="account_phone" msgid="7128032778471187553">"آلہ"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"نام"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"عرفی نام"</string>
+    <string name="name_given" msgid="4280790853455320619">"پہلا نام"</string>
+    <string name="name_family" msgid="7466985689626017037">"آخری نام"</string>
+    <string name="name_prefix" msgid="59756378548779822">"نام کا سابقہ"</string>
+    <string name="name_middle" msgid="8467433655992690326">"درمیانی نام"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"نام کا لاحقہ"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"فونیٹک نام"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"فونیٹک پہلا نام"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"فونیٹک درمیانی نام"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"فونیٹک آخری نام"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"فون"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"ای میل"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"پتہ"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"تنظیم"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"تعلق"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"خاص تاریخ"</string>
+    <string name="sms" msgid="1756857139634224222">"متنی پیغام"</string>
+    <string name="postal_address" msgid="8765560217149624536">"پتہ"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"کمپنی"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"عنوان"</string>
+    <string name="label_notes" msgid="8337354953278341042">"نوٹس"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"حسب ضرورت"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"ویب سائٹ"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"لیبلز"</string>
+    <string name="email_home" msgid="8573740658148184279">"گھر کے پتے پر ای میل کریں"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"موبائل پر ای میل کریں"</string>
+    <string name="email_work" msgid="2807430017302722689">"دفتر کو ای میل کریں"</string>
+    <string name="email_other" msgid="3454004077967657109">"ای میل"</string>
+    <string name="email_custom" msgid="5536404237099078802">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> پر ای میل کریں"</string>
+    <string name="email" msgid="5668400997660065897">"ای میل"</string>
+    <string name="postal_street" msgid="8133143961580058972">"اسٹریٹ"</string>
+    <string name="postal_city" msgid="6597491300084895548">"شہر"</string>
+    <string name="postal_region" msgid="6045263193478437672">"ریاست"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"زپ کوڈ"</string>
+    <string name="postal_country" msgid="7638264508416368690">"ملک"</string>
+    <string name="map_home" msgid="1243547733423343982">"گھر کا پتہ دیکھیں"</string>
+    <string name="map_work" msgid="1360474076921878088">"دفتر کا پتہ دیکھیں"</string>
+    <string name="map_other" msgid="3817820803587012641">"پتہ دیکھیں"</string>
+    <string name="map_custom" msgid="8761800628069473526">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> پتہ ملاحظہ کریں"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"‏AIM کے ذریعے چیٹ کریں"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"‏Windows Live کے ذریعے چیٹ کریں"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"‏Yahoo کے ذریعے چیٹ کریں"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"‏Skype کے ذریعے چیٹ کریں"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"‏QQ کے ذریعے چیٹ کریں"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"‏Google Talk کے ذریعے چیٹ کریں"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"‏ICQ کے ذریعے چیٹ کریں"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"‏Jabber کے ذریعے چیٹ کریں"</string>
+    <string name="chat" msgid="9025361898797412245">"چیٹ"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"حذف کریں"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"ناموں کی مزید فیلڈز دکھائیں"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"نام کی فیلڈز کو سکیڑیں"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"فونیٹک ناموں کی مزید فیلڈز دکھائیں"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"فونیٹک نام کی فیلڈز کو سکیڑیں"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"پھیلائیں"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"سکیڑیں"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"پھیلا ہوا"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"سکڑا ہوا"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"سبھی رابطے"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"ستارے کے نشان والے"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"مرضی کے مطابق بنائیں"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"رابطہ"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"سبھی دیگر رابطے"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"سبھی رابطے"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"مطابقت پذیر گروپ کو ہٹائیں"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"مطابقت پذیر گروپ شامل کریں"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"مزید گروپس…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"\"<xliff:g id="GROUP">%s</xliff:g>\" کو مطابقت پذیری سے ہٹانے سے مطابقت پذیری سے گروپ سے خارج کردہ کوئی رابطے بھی ہٹ جائیں گے۔"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"ڈسپلے کے اختیارات محفوظ کر رہا ہے…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"حسب ضرورت منظر"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"درآمد کردہ رابطے اس میں محفوظ کریں:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"‏SIM کارڈ"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">‏%1$d رابطے</item>
+      <item quantity="one">1 رابطہ</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> رابطے • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> رابطہ • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"‏‎.vcf فائل"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"درآمد کرنے کیلئے کچھ نہیں ہے"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"‏‎vCard‎ سے رابطے درآمد کریں؟"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> کی درآمد منسوخ کریں"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> کی برآمد منسوخ کریں؟"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"‏vCard کی درآمد/برآمد کو منسوخ نہیں کرسکا"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"نامعلوم خرابی۔"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"\"<xliff:g id="FILE_NAME">%1$s</xliff:g>\" کو نہیں کھول سکا: \"<xliff:g id="EXACT_REASON">%2$s</xliff:g>\"۔"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"برآمد کنندہ شروع نہیں ہو سکا: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"۔"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"کوئی قابل برآمد رابطہ نہیں ہے۔"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"آپ نے ایک درکار اجازت غیر فعال کر دی ہے۔"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"برآمد کرنے کے دوران ایک خرابی پیش آگئی: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"۔"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"‏I/O خرابی"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"کافی میموری نہیں ہے۔ فائل کافی بڑی ہو سکتی ہے۔"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"فارمیٹ تعاون یافتہ نہیں ہے۔"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> کی برآمد مکمل ہوگئی۔"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"رابطوں کی برآمدگی مکمل ہو گئی۔"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"رابطوں کی برآمدگی مکمل ہو گئی، رابطوں کا اشتراک کرنے کیلئے اطلاع پر کلک کریں۔"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"رابطوں کا اشتراک کرنے کے لئے تھپتھپائیں۔"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> کی برآمد منسوخ ہوگئی۔"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"رابطہ کا ڈیٹا برآمد کر رہا ہے"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"رابطہ ڈیٹا برآمد ہو رہا ہے۔"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"ڈیٹابیس کی معلومات حاصل نہیں ہو سکی۔"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"کوئی قابل برآمد رابطے نہیں ہیں۔"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"‏vCard کمپوزر مناسب طریقے سے شروع نہیں ہوا۔"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"برآمد نہیں کیا جاسکا"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"رابطوں کا ڈیٹا برآمد نہیں ہوا۔\nوجہ: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> کو درآمد کر رہا ہے"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"‏vCard کا ڈیٹا نہیں پڑھ سکا"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"‏vCard <xliff:g id="FILENAME">%s</xliff:g> کی درآمد پوری ہوگئی"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> کی درآمد منسوخ ہوگئی"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> جلد ہی درآمد کی جائے گی۔"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"فائل جلد ہی درآمد کی جائے گی۔"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"‏vCard درآمد کرنے کی درخواست مسترد ہوگئی تھی۔ بعد میں دوبارہ کوشش کریں۔"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"رابطے جلد ہی برآمد ہو جائیں گے۔"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"‏vCard برآمد کرنے کی درخواست مسترد ہوگئی تھی۔ بعد میں دوبارہ کوشش کریں۔"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"رابطہ"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"‏vCard(s)‎ کو مقامی عارضی اسٹوریج میں ذخیرہ کر رہا ہے۔ اصل درآمد جلد ہی شروع ہوگی۔"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"‏vCard درآمد نہیں کرسکا۔"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"‏NFC پر موصولہ رابطہ"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"ذخیرہ کر رہا ہے"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"<xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g> درآمد کر رہا ہے"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"‏‎.vcf فائل میں برآمد کریں"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"ترتیب دیں بہ لحاظ"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"فونیٹک نام"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"ہمیشہ دکھائیں"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"اگر خالی ہے تو چھپائیں"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"پہلا نام"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"آخری نام"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"نام کا فارمیٹ"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"پہلا نام پہلے"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"آخری نام پہلے"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"اکاؤنٹس"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"نئے رابطوں کیلئے ڈیفالٹ اکاؤنٹ"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"میری معلومات"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"اپنے پروفائل کو ترتیب دیں"</string>
+    <string name="setting_about" msgid="7014388749752042863">"رابطے کے بارے میں"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"پسندیدہ رابطوں کا اشتراک کریں"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"سارے رابطوں کا اشتراک کریں"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"رابطوں کا اشتراک کرنے میں ناکام۔"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"رابطے برآمد کریں"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"اس سے رابطے درآمد کریں"</string>
+    <string name="share_error" msgid="948429331673358107">"اس رابطہ کا اشتراک نہیں کیا جا سکتا۔"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"اشتراک کرنے کے لئے کوئی رابطے نہیں ہیں۔"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"ڈسپلے کرنے کیلئے رابطے"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"ڈسپلے کرنے کیلئے رابطے"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"منظر حسب ضرورت بنائیں"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"محفوظ کریں"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"رابطے تلاش کریں"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"پسندیدہ"</string>
+    <string name="menu_import" msgid="6107961135813836467">"درآمد کریں"</string>
+    <string name="menu_export" msgid="2658783911863503902">"برآمد کریں"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"مسدود کردہ نمبرز"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"بذریعہ <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> بذریعہ <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"تلاش کرنا بند کریں"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"تلاش صاف کریں"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"اکاؤنٹ"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"کالز کیلئے ہمیشہ اس کا استعمال کریں"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"ایک نوٹ کے ساتھ کال کریں"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"کال کے ساتھ بھیجنے کیلئے ایک نوٹ ٹائپ کریں…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"بھیجیں اور کال کریں"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"بلڈ ورژن"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"اوپن سورس لائسنسز"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"اوپن سورس سافٹ ویئر کیلئے لائسنس کی تفصیلات"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"رازداری کی پالیسی"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"سروس کی شرائط"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"اوپن سورس لائسنسز"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"‏URL کھولنے میں ناکامی۔"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> چیک ہو گیا"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> چیک نہیں ہوا"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"ویڈیو کال کریں"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"حذف کریں"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"ایلپسیس"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> منٹ <xliff:g id="SECONDS">%2$s</xliff:g> سیکنڈ"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> گھنٹے <xliff:g id="MINUTES_1">%2$s</xliff:g> منٹ <xliff:g id="SECONDS">%3$s</xliff:g> سیکنڈ"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"یہ شارٹ کٹ غیر فعال کر دیا گیا ہے"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"رابطہ ہٹا دیا گیا"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"درآمد کریں"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"رابطے منتخب کریں"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"‏آپ کے SIM کارڈ پر کوئی رابطے نہیں ہیں"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"رابطہ پہلے سے آپ کی فہرست میں موجود ہے"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">‏<xliff:g id="COUNT">%d</xliff:g> SIM رابطے درآمد ہو گئے</item>
+      <item quantity="one">‏1 SIM رابطہ درآمد ہو گیا</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"‏SIM رابطے درآمد کرنے میں ناکام"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"‏SIM سے درآمد کریں"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"منسوخ کریں"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"خودکار مطابقت پذیری آف ہے۔ آن کرنے کیلئے تھپتھپائیں۔"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"برخاست کریں"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"اکاؤنٹ مطابقت پذیری آف ہے۔ آن کرنے کیلئے تھپتھپائیں۔"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"خودکار طور پر مطابقت پذیری کو آن کریں؟"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"‏نہ صرف Google رابطوں پر، بلکہ تمام ایپس اور اکاؤنٹس پر جو تبدیلیاں آپ کریں گے، انہیں آپ کے آلات اور ویب کے درمیان اپ ٹو ڈیٹ رکھا جائے گا۔"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"آن کریں"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"کوئی کنکشن نہیں ہے"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"مزید دکھائیں"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"‏SIM کارڈ کی درآمد مکمل ہو گئی"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"درآمد کرنا ناکام ہو گیا"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"‏SIM کارڈ سے رابطے درآمد نہیں ہو سکے"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"‏SIM درآمد ہو رہی ہے"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
deleted file mode 100644
index b1038c6..0000000
--- a/res/values-uz-rUZ/strings.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2006 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.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktlar"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Kontaktlar"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Kontaktni ko‘rish"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Kontaktni tahrirlash"</string>
-    <string name="contactsList" msgid="8661624236494819731">"Kontaktlar"</string>
-    <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
-    <string name="shortcutDialContact" msgid="746622101599186779">"Tez terish"</string>
-    <string name="shortcutMessageContact" msgid="2460337253595976198">"Tez xabar"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Tezkor qo‘ng‘iroq uchun kontaktni tanlang"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Qo‘ng‘iroq qilish uchun raqamni tanlang"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Xabar yozish uchun raqamni tanlang"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Kontaktga qo‘shish"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontaktni tanlang"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Yangi kontakt yaratish"</string>
-    <string name="starredList" msgid="4817256136413959463">"Baho berilgan"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Ko‘p gaplashilgan"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Saralar"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Kontakt tafsilotlari"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Kontaktni tahrirlash"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Kontakt yaratish"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Guruhni tahrirlash"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Guruh yaratish"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Aloqa ma’lumoti"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Yangilanishlar"</string>
-    <string name="searchHint" msgid="8482945356247760701">"Kontaktlarni izlash"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Kontaktni ko‘rish"</string>
-    <string name="menu_addStar" msgid="2908478235715404876">"Saralarga qo‘shish"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"Saralardan olib tashlash"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Sevimlilardan o‘chirib tashlandi"</string>
-    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Sevimlilarga qo‘shildi"</string>
-    <string name="menu_editContact" msgid="9042415603857662633">"Tahrirlash"</string>
-    <string name="menu_deleteContact" msgid="6788644058868189393">"O‘chirish"</string>
-    <string name="menu_change_photo" msgid="7769177631511496210">"Rasmni o‘zgartirish"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Bosh ekranga joylash"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Qo‘ng‘iroq qilish"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"SMS/MMS yuborish"</string>
-    <string name="menu_splitAggregate" msgid="2627252205317945563">"Ajratish"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Tahrirlash"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"O‘chirish"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Kontakt qo‘shish"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Guruh qo‘shish"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"Ushbu kontakt bir nechta kontaktlarga ajratilsinmi?"</string>
-    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Ajratish"</string>
-    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"O‘zgarishlarni saqlab, ushbu kontaktni bir nechta kontaktlarga ajratilsinmi?"</string>
-    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Saqlash va ajratish"</string>
-    <string name="joinConfirmation" msgid="8262614843581924365">"O‘zgarishlar saqlab, tanlangan kontaktga bog‘lansinmi?"</string>
-    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Saqlash va bog‘lash"</string>
-    <string name="menu_joinAggregate" msgid="3599512127797513606">"Bog‘lash"</string>
-    <string name="menu_save" msgid="1727844363591825909">"Saqlash"</string>
-    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontaktlarni bog‘lash"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g>ga bog‘lashni xohlagan kontaktingizni tanlang:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Barcha kontaktlarni ko‘rsatish"</string>
-    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Taklif etilgan kontaktlar"</string>
-    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Barcha kontaktlar"</string>
-    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktlar bog‘landi"</string>
-    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="other">Kontaktlar o‘chirildi</item>
-      <item quantity="one">Kontakt o‘chirildi</item>
-    </plurals>
-    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Rington o‘rnatish"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Faqat ovozli xabarlar"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Faqat o‘qish rejimidagi hisoblardagi kontaktlar o‘chirilmaydi, lekin yashirilishi mumkin."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Yashirish"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"O‘chirilayotgan kontaktda bir nechta hisoblarga oid ma’lumotlar mavjud. Faqat o‘qish rejimidagi hisoblar yashiriladi, lekin o‘chirilmaydi."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Bog‘lash uchun kamida ikkita kontaktni tanlash lozim."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Tanlangan kontaktlar bog‘lansinmi?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Bog‘lash"</string>
-    <string name="single_delete_confirmation" msgid="3106905986948679720">"Ushbu kontakt o‘chirilsinmi?"</string>
-    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Tanlangan kontaktlar o‘chirilsinmi?"</string>
-    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Faqat o‘qish rejimidagi hisoblardagi kontaktlar o‘chirilmaydi, lekin yashirilishi mumkin."</string>
-    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"O‘chirilayotgan kontaktlarda bir nechta hisoblarga oid ma’lumotlar mavjud. Faqat o‘qish rejimidagi hisoblar yashiriladi, lekin o‘chirilmaydi."</string>
-    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Ushbu kontaktni o‘chirish bir nechta hisoblardagi ma’lumotlarni o‘chiradi."</string>
-    <string name="deleteConfirmation" msgid="3512271779086656043">"Ushbu kontakt o‘chirilsinmi?"</string>
-    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"O‘chirish"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Bekor qilish"</string>
-    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt mavjud emas."</string>
-    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt bosh ekranga qo‘shildi."</string>
-    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> kontakti bosh ekranga qo‘shildi."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Yangi kontakt yaratish"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Yangi kontakt yaratish"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Tashkilot"</item>
-    <item msgid="7196592230748086755">"Eslatma"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Planshetda rasmlar mavjud emas."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Telefonda rasmlar mavjud emas."</string>
-    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakt surati"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Maxsus yorliq nomi"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Qo‘ng‘iroqlarni to‘g‘ridan to‘g‘ri ovozli xabarga jo‘natish"</string>
-    <string name="removePhoto" msgid="4898105274130284565">"Suratni o‘chirish"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Hech qanday kontakt yo‘q"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Guruhlar yo‘q."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Guruh yaratish uchun hisobingiz bo‘lishi kerak."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Ushbu guruhda odam yo‘q."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Bir nechtani qo‘shish uchun guruhni tahrirlang."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Kontakt saqlanmoqda…"</string>
-    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt saqlandi"</string>
-    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktlar ajratildi"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Kontakt o‘zgarishlari saqlanmadi."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Kontaktni ajratib bo‘lmadi."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Kontaktni bog‘lab bo‘lmadi."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Kontakt saqlanishda xatolik."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Kontakt rasmi o‘zgarmadi."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Guruh saqlandi."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Guruh o‘zgarishlarini saqlab bo‘lmadi."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other">Telefon raqami bor <xliff:g id="COUNT">%d</xliff:g> ta kontakt</item>
-      <item quantity="one">Telefon raqami bor 1 ta kontakt</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Telefon raqami bor hech qanday kontakt yo‘q"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ta topildi</item>
-      <item quantity="one">1 ta topildi</item>
-    </plurals>
-    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Hech qanday kontakt yo‘q."</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ta topildi</item>
-      <item quantity="one">1 ta topildi</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Barchasi"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Sevimlilar"</string>
-    <string name="callBack" msgid="5498224409038809224">"Qo‘ng‘iroq"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Yana qo‘ng‘iroq qilish"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Qo‘ng‘iroqni qaytarish"</string>
-    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Kontaktlarga \"<xliff:g id="EMAIL">%s</xliff:g>\" qo‘shilsinmi?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"kontakt surati"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"plyus"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="TOTAL_NUMBER">%s</xliff:g> dan <xliff:g id="CURRENT_NUMBER">%s</xliff:g>ta kontakt"</string>
-    <string name="search_settings_description" msgid="2675223022992445813">"Kontaktlaringiz nomi"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Ushbu amalni bajarish uchun ilova topilmadi."</string>
-    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Avvalgi ekranga qaytish uchun bosing"</string>
-    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefon raqamini qo‘shish"</string>
-    <string name="quickcontact_add_email" msgid="739298028384348482">"E-pochta manzilini qo‘shish"</string>
-    <string name="missing_app" msgid="1466111003546611387">"Ushbu amalni bajarish uchun ilova topilmadi."</string>
-    <string name="menu_share" msgid="943789700636542260">"Ulashish"</string>
-    <string name="menu_add_contact" msgid="3198704337220892684">"Kontaktlarga qo‘shish"</string>
-    <string name="share_via" msgid="563121028023030093">"Yuborish usuli"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Hisob ostida guruh yaratish"</string>
-    <string name="audio_chat" msgid="2535716629358298691">"Ovozli suhbat"</string>
-    <string name="video_chat" msgid="1872255818640336072">"Video suhbat"</string>
-    <string name="connections" msgid="8098440723172028350">"Ulanishlar"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Aloqa qo‘shish"</string>
-    <string name="recent" msgid="2659189233141493004">"Yaqinda"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"So‘nggi yangilanishlar"</string>
-    <string name="account_type_format" msgid="718948015590343010">"Kontakt: <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> hisobi"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Ushbu ilova orqali tahrirlab bo‘lmaydi."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Ushbu qurilmada tahrir qilib bo‘lmaydi."</string>
-    <string name="take_photo" msgid="7496128293167402354">"Rasmga olish"</string>
-    <string name="take_new_photo" msgid="7341354729436576304">"Rasmga olish"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Rasm tanlash"</string>
-    <string name="pick_new_photo" msgid="9122450996263688237">"Yangi suratni tanlang"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Kontakt ro‘yxati yangilanmoqda."</string>
-    <string name="search_results_searching" msgid="3984833028938569930">"Qidirilmoqda…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Tanlanganni ko‘rsatish"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Barchasini ko‘rsatish"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Barchasini tanlash"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Barcha tanlashlarni bekor qilish"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Yangisini qo‘shish"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Tashkilot qo‘shish"</string>
-    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Sana"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Guruh nomi"</string>
-    <string name="change_photo" msgid="8530597935483526383">"O‘zgartirish"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Asosiy rasm"</string>
-    <string name="description_star" msgid="2605854427360036550">"ajratilgan"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Kontaktni tahrirlash"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Joriy kontakt tanlangan kontaktga bog‘lansinmi?"</string>
-    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Tanlangan kontaktni tahrir qilishga o‘tilsinmi? Hozirgacha kiritgan ma’lumotlaringizdan nusxa ko‘chiriladi."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kontaktlarimga nusxalash"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Kontaktlarimga qo‘shish"</string>
-    <string name="contact_directory_description" msgid="683398073603909119">"Direktoriya <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Maxsus"</string>
-    <string name="activity_title_settings" msgid="5464130076132770781">"Sozlamalar"</string>
-    <string name="menu_settings" msgid="377929915873428211">"Sozlamalar"</string>
-    <string name="menu_help" msgid="1680178646764069976">"Yordam va fikr-mulohaza"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Ko‘rsatish parametrlari"</string>
-    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
-    <string name="non_phone_caption" msgid="1541655052330027380">"Telefon raqami"</string>
-    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Kontaktlarga qo‘shish"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Kontaktlarga qo‘shish"</string>
-    <string name="non_phone_close" msgid="7608506439725515667">"Yopish"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
-    <string name="date_year_toggle" msgid="7122002148518724139">"Yil kiritilsin"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Kontakt"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Yuklanmoqda…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Yangi kontakt yaratish"</string>
-    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Hisob qo‘shish"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Kontaktlarni import qilish"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Yangi guruh yaratish"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Yangi guruh yaratish"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> ta guruh</item>
-      <item quantity="one">1 ta guruh</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" guruhi o‘chirilsinmi? (Kontaktlarning o‘zi o‘chirilmaydi.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> guruhidan <xliff:g id="COUNT_2">%1$d</xliff:g> ta odam</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> guruhidan <xliff:g id="COUNT_0">%1$d</xliff:g> ta odam</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta odam</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta odam</item>
-    </plurals>
-    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Birlashtirmoqchi bo‘lgan kontaktning ismini kiriting."</string>
-    <string name="copy_text" msgid="3257145021583508761">"Vaqtinchalik xotiraga nusxalash"</string>
-    <string name="set_default" msgid="4417505153468300351">"Standart sifatida o‘rnatish"</string>
-    <string name="clear_default" msgid="7193185801596678067">"Standartni tozalash"</string>
-    <string name="toast_text_copied" msgid="5143776250008541719">"Matndan nuxsa olindi"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"O‘zgarishlar bekor qilinsinmi?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Bekor qilish"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Profilni sozlash"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Kontaktning ismi"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Guruh nomi"</string>
-    <string name="local_profile_title" msgid="2021416826991393684">"Mening qurilmadagi profilim"</string>
-    <string name="external_profile_title" msgid="8034998767621359438">"Mening <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilim"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Barcha kontaktlar ko‘rsatilmoqda"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Kontaktlar Google hisobi bilan yaxshi ishlaydi.\n\n• Xohlagan veb-brauzerdan kirishingiz mumkin.\n• Kontaktlaringizni nusxasini xavfsiz joyga zaxiralang."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Onlayn xizmat yordamida sinxronlab, telefoningiz yo‘qolganda ham kontaktlaringizni saqlab qoling."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Hisob qo‘shish"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Yangi kontaktning zaxira nusxasi saqlanmaydi. Kontaktlarni internetga saqlash uchun hisob qo‘shilsinmi?"</string>
-    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Yangi kontaktlar <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> hisobiga saqlanadi."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Yangi kontaktlar uchun birlamchi hisobni tanlang:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Yangi kontakt qo‘shish"</string>
-    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontaktni tahrirlash"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Qur-ga saqlash"</string>
-    <string name="add_account" msgid="8201790677994503186">"Hisob qo‘shish"</string>
-    <string name="add_new_account" msgid="5748627740680940264">"Yangi hisob qo‘shish"</string>
-    <string name="menu_export_database" msgid="2659719297530170820">"Ma’lumotlar bazasi fayllarini eksport qilish"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"yangi kontakt qo‘shish"</string>
-    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Ko‘proq"</string>
-    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Kamroq"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Barchasini ko‘rish"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"Yaqinda"</string>
-    <string name="about_card_title" msgid="2920942314212825637">"Ma’lumot"</string>
-    <string name="send_message" msgid="8938418965550543196">"Xabar yuborish"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Shaxsiy nusxasi yaratilmoqda…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"Kecha"</string>
-    <string name="tomorrow" msgid="6241969467795308581">"Ertaga"</string>
-    <string name="today" msgid="8041090779381781781">"Bugun"</string>
-    <string name="today_at_time_fmt" msgid="605665249491030460">"Bugun <xliff:g id="TIME_INTERVAL">%s</xliff:g> da"</string>
-    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Ertaga <xliff:g id="TIME_INTERVAL">%s</xliff:g> da"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="untitled_event" msgid="3484859385405939366">"(Nomsiz tadbir)"</string>
-    <string name="date_time_set" msgid="4761419824439606690">"O‘rnatish"</string>
-    <string name="header_im_entry" msgid="3581720979640225615">"Tezkor xabar (IM)"</string>
-    <string name="header_organization_entry" msgid="8515394955666265406">"Tashkilot"</string>
-    <string name="header_nickname_entry" msgid="6743561883967451485">"Taxallus"</string>
-    <string name="header_note_entry" msgid="4320190426480612344">"Qayd"</string>
-    <string name="header_website_entry" msgid="1411467850000824745">"Veb-sayt"</string>
-    <string name="header_event_entry" msgid="6738250422744401460">"Tadbir"</string>
-    <string name="header_relation_entry" msgid="1520292958088146460">"Aloqadorlik"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Hisob"</string>
-    <string name="header_name_entry" msgid="1592791008096288306">"Ismi"</string>
-    <string name="header_email_entry" msgid="8666093061171624478">"E-pochta"</string>
-    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Rasm"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Kontaktni tahrirlash oynasini ochish uchun bosing."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Kontaktni tahrirlash oynasini yopish uchun bosing."</string>
-    <string name="content_description_directions" msgid="2686791825798189335">"manzilga yo\'nalishlar"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"so‘nggi SMS. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. javob berish uchun bosing"</string>
-    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"kiruvchi"</string>
-    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"chiquvchi"</string>
-    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"javobsiz"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"so‘nggi qo‘ng‘iroq. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. qaytarib qo‘ng‘iroq qilish uchun bosing"</string>
-    <string name="message_from_you_prefix" msgid="7180706529908434482">"Siz: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts yanada yaxshi ishlashi uchun e-pochta yoki telefon raqami maydoniga foydalanuvchining Hangouts identifikatorini kiriting."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Boshqa maydonlar"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Rasmni o‘zgartirish"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Muharrirni ochib bo‘lmadi."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Saqlash"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Hozirda <xliff:g id="ACCOUNT_NAME">%s</xliff:g> hisobiga saqlanmoqda. Boshqa hisobni tanlash uchun ikki marta bosing."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Bog‘langan kontaktlar (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Bog‘langan kontakt</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> ta bog‘langan kontaktlar"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
-    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"KONTAKTLARNI BOG‘LASH"</string>
-    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"BEKOR QILISH"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ta taxminiy takror kontakt</item>
-      <item quantity="one">1 ta taxminiy takror kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ta bog‘langan kontakt</item>
-      <item quantity="one">1 ta bog‘langan kontakt</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
-    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Ushbu kontakt"</string>
-    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Takroriy kontaktlar"</string>
-    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Ushbu kontaktlar bitta odamniki bo‘lishi mumkin. Ularni bitta kontaktga bog‘lashingiz mumkin."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Bog‘langan kontaktlar"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Hisoblaringizdan olingan"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Rasmga olish"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Barcha rasmlar"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Rasm tanlash"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"<xliff:g id="ACCOUNT_NAME">%s</xliff:g> tomonidan"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>ni o‘chirish"</string>
-    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>ni o‘chirish"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> hisobi rasmi belgilanmagan"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> hisobi rasmi belgilangan"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Noma’lum hisobdan rasm tanlash bekor qilindi"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Noma’lum hisobdan rasm tanlandi"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Til o‘zgarishlarini aks ettirish uchun kontakt ro‘yxati yangilanmoqda.\n\nIltimos, kuting…"</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Raqam qo‘shish"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Raqamni bloklash"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Raqam qo‘shish yoki kontaktlardan qidirish"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami blokdan chiqarilsinmi?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"BLOKDAN CHIQARISH"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami bloklanilsinmi?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"BLOKLASH"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami bloklandi"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami blokdan chiqarildi"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"Noto‘g‘ri raqam: <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Qo‘ng‘iroqlarni bloklash o‘chirilgan"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Oxirgi 48 soat ichida ushbu telefon orqali favqulodda xizmatlar bilan bog‘lanilganligi uchun qo‘ng‘iroqlarni bloklash o‘chirib qo‘yildi. 48 soatlik muddat tugagandan so‘ng bu avtomatik qayta yoqiladi."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import qilish"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Sonini ko‘rish"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Raqam qo‘shish"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Qo‘ng‘iroqlarni bloklash 48 soat muddatga o‘chirildi"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Favqulodda qo‘ng‘iroq amalga oshirilgani uchun o‘chirildi."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"QAYTARISH"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami allaqachon bloklangan."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Raqamni blokdan chiqarish"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> uchun kontakt ma’lumotlari"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import qilib bo‘lmadi"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Raqamlarni import qilish"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Yoqish"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
-    <skip />
-</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
new file mode 100644
index 0000000..df736c4
--- /dev/null
+++ b/res/values-uz/strings.xml
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2006 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="applicationLabel" msgid="3906689777043645443">"Kontaktlar"</string>
+    <string name="contactsList" msgid="8661624236494819731">"Kontaktlar"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Kontakt qo‘shish"</string>
+    <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
+    <string name="shortcutDialContact" msgid="746622101599186779">"Tezkor chaqiruv"</string>
+    <string name="shortcutMessageContact" msgid="2460337253595976198">"Tezkor SMS"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Kontakt tanlash"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Ma’lumot qo‘shish"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Kontaktni tanlang"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Tanlash"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Yangi kontakt yaratish"</string>
+    <string name="searchHint" msgid="8482945356247760701">"Kontaktlar ichidan qidirish"</string>
+    <string name="menu_addStar" msgid="2908478235715404876">"Saralanganlarga qo‘shish"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"Saralanganlardan olib tashlash"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Sevimlilardan o‘chirib tashlandi"</string>
+    <string name="description_action_menu_add_star" msgid="3327186327234177456">"Sevimlilarga qo‘shildi"</string>
+    <string name="menu_editContact" msgid="9042415603857662633">"Tahrirlash"</string>
+    <string name="menu_deleteContact" msgid="6788644058868189393">"O‘chirish"</string>
+    <string name="menu_change_photo" msgid="7769177631511496210">"Suratni almashtirish"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Yorliq yaratish"</string>
+    <string name="menu_splitAggregate" msgid="2627252205317945563">"Ajratish"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Kontaktlarni olib tashlash"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Yorliqni qayta nomlash"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Yorliqni o‘chirib tashlash"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Kontakt qo‘shish"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Kontaktlarni tanlash"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Kontakt qo‘shish"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Yorliqni olib tashlash"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Yorliq yaratish"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"Bu kontakt bir nechta kontaktga ajratilsinmi?"</string>
+    <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Ajratish"</string>
+    <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"O‘zgarishlarni saqlab, ushbu kontaktni bir nechta kontaktlarga ajratilsinmi?"</string>
+    <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Ha"</string>
+    <string name="joinConfirmation" msgid="8262614843581924365">"O‘zgarishlar saqlab, tanlangan kontaktga bog‘lansinmi?"</string>
+    <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Ha"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Bog‘lanmoqda…"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Ajratilmoqda…"</string>
+    <string name="menu_joinAggregate" msgid="3599512127797513606">"Bog‘lash"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Bog‘langan kontaktlarni ko‘rish"</string>
+    <string name="menu_save" msgid="1727844363591825909">"Saqlash"</string>
+    <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Kontaktlarni bog‘lash"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"<xliff:g id="NAME">%s</xliff:g> bilan bog‘lamoqchi bo‘lgan kontaktni tanlang:"</string>
+    <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Taklif etilgan kontaktlar"</string>
+    <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Barcha kontaktlar"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> bog‘landi"</string>
+    <string name="contactsJoinedMessage" msgid="3343535986195643136">"Kontaktlar bog‘landi"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> o‘chirib tashlandi"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> va <xliff:g id="NAME_1">%2$s</xliff:g> o‘chirib tashlandi"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… kontaktlari o‘chirib tashlandi"</string>
+    <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
+      <item quantity="other">Kontaktlar o‘chirib tashlandi</item>
+      <item quantity="one">Kontakt o‘chirib tashlandi</item>
+    </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ta kontakt</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ta kontakt</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> ta kontakt · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta kontakt · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Google kontaktlari"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"<xliff:g id="ACCOUNT">%s</xliff:g> hisobidan"</string>
+    <string name="menu_set_ring_tone" msgid="8728345772068064946">"Rington tayinlash"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Ovozli pochtaga yo‘naltirish"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Ovozli pochtaga yo‘naltirilmasin"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Bu kontaktni faqat ko‘rish mumkin. Uni o‘chirib tashlab bo‘lmaydi, lekin berkitishingiz mumkin."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Kontaktni berkitish"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Bu kontakt ma’lumotlari faqat o‘qishga ruxsat etilgan hisoblarda berkitiladi, lekin o‘chirib tashlanmaydi."</string>
+    <string name="single_delete_confirmation" msgid="3106905986948679720">"Bu kontakt o‘chirib tashlansinmi?"</string>
+    <string name="batch_delete_confirmation" msgid="3984346060324014108">"Belgilangan kontaktlar o‘chirib tashlansinmi?"</string>
+    <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Faqat o‘qish rejimidagi hisoblardagi kontaktlar o‘chirilmaydi, lekin yashirilishi mumkin."</string>
+    <string name="batch_delete_multiple_accounts_confirmation" msgid="8207205649127030030">"O‘chirilayotgan kontaktlarda bir nechta hisoblarga oid ma’lumotlar mavjud. Faqat o‘qish rejimidagi hisoblar yashiriladi, lekin o‘chirilmaydi."</string>
+    <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Bu kontakt o‘chirib tashlansa, bir nechta hisobdagi ma’lumotlar ham o‘chib ketadi."</string>
+    <string name="deleteConfirmation" msgid="3512271779086656043">"Bu kontakt o‘chirib tashlansinmi?"</string>
+    <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"O‘chirish"</string>
+    <string name="invalidContactMessage" msgid="8215051456181842274">"Kontakt mavjud emas."</string>
+    <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Kontakt bosh ekranga chiqarildi."</string>
+    <string name="createContactShortcutSuccessful" msgid="953651153238790069">"<xliff:g id="NAME">%s</xliff:g> bosh ekranga chiqarildi."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Qurilmada rasm yo‘q."</string>
+    <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Kontakt surati"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nomi"</string>
+    <string name="removePhoto" msgid="4898105274130284565">"Suratni olib tashlash"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Hech qanday kontakt yo‘q"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Bunday yorliqli kontakt yo‘q"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Bu hisobda hech qanday kontakt yo‘q"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Hech qanday kontakt yo‘q"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> saqlandi"</string>
+    <string name="contactSavedToast" msgid="9171862279493213075">"Kontakt saqlandi"</string>
+    <string name="contactUnlinkedToast" msgid="7122823195786012553">"Kontaktlar ajratildi"</string>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Kontakt ma’lumotlariga kiritilgan o‘zgarishlar saqlanmadi."</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Kontaktni ajratib bo‘lmadi."</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Kontaktni bog‘lab bo‘lmadi."</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Kontaktni saqlashda xatolik yuz berdi."</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Kontakt suratiga kiritilgan o‘zgarishlar saqlanmadi."</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Yorliqni yuklashda xatolik yuz berdi"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Yorliq o‘chirib tashlandi"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Yorliq yaratildi"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Yorliq yaratib bo‘lmadi"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Yorliq yangilandi"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Yorliq olib tashlandi"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Yorliqqa qo‘shildi"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Yorliqqa kiritilgan o‘zgarishlarni saqlab bo‘lmadi."</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Bunday yorliq allaqachon mavjud"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Ayrim kontaktlarda e-pochta manz. ko‘rsatilmagan."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Ayrim kontaktlarda telefon raqami ko‘rsatilmagan."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"E-pochta orqali xat yuborish"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"SMS yuborish"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Kontaktlarni tanlash"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Yuborish"</string>
+    <string name="listFoundAllContactsZero" msgid="922980883593159444">"Hech qanday kontakt yo‘q."</string>
+    <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"“<xliff:g id="EMAIL">%s</xliff:g>” kontaktlarga qo‘shilsinmi?"</string>
+    <string name="search_settings_description" msgid="2675223022992445813">"Kontaktlaringiz ismi"</string>
+    <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Avvalgi ekranga qaytish uchun bosing"</string>
+    <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Telefon raqamini kiritish"</string>
+    <string name="quickcontact_add_email" msgid="739298028384348482">"E-pochta manzilini kiritish"</string>
+    <string name="missing_app" msgid="1466111003546611387">"Ushbu amalni bajarish uchun ilova topilmadi."</string>
+    <string name="menu_share" msgid="943789700636542260">"Yuborish"</string>
+    <string name="menu_add_contact" msgid="3198704337220892684">"Kontaktlarga qo‘shish"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Qo‘shish"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Kontaktlarni bu orqali baham ko‘rish</item>
+      <item quantity="one">Kontaktni bu orqali baham ko‘rish</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Hisobni tanlang"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Yorliq yaratish"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Yorliqni qayta nomlash"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Yorliq nomi"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Yorliq nomi"</string>
+    <string name="audio_chat" msgid="2535716629358298691">"Ovozli suhbat"</string>
+    <string name="video_chat" msgid="1872255818640336072">"Video suhbat"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> kontakt"</string>
+    <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> hisobi"</string>
+    <string name="take_photo" msgid="7496128293167402354">"Suratga olish"</string>
+    <string name="take_new_photo" msgid="7341354729436576304">"Suratga olish"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Surat tanlash"</string>
+    <string name="pick_new_photo" msgid="9122450996263688237">"Boshqa surat tanlash"</string>
+    <string name="search_results_searching" msgid="3984833028938569930">"Qidirilmoqda…"</string>
+    <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Sana"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Yorliq"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Bekor qilish"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Orqaga"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"yopish"</string>
+    <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Tanlangan kontaktni tahrir qilishga o‘tilsinmi? Hozirgacha kiritgan ma’lumotlaringizdan nusxa ko‘chiriladi."</string>
+    <string name="contact_directory_description" msgid="683398073603909119">"Direktoriya <xliff:g id="TYPE">%1$s</xliff:g>"</string>
+    <string name="activity_title_settings" msgid="5464130076132770781">"Sozlamalar"</string>
+    <string name="menu_settings" msgid="377929915873428211">"Sozlamalar"</string>
+    <string name="menu_help" msgid="1680178646764069976">"Yordam va fikr-mulohaza"</string>
+    <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="non_phone_caption" msgid="1541655052330027380">"Telefon raqami"</string>
+    <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Kontaktlarga qo‘shish"</string>
+    <string name="non_phone_close" msgid="7608506439725515667">"Yopish"</string>
+    <string name="date_year_toggle" msgid="7122002148518724139">"yili bilan birga"</string>
+    <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Hisob qo‘shish"</string>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Import qilish"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Yangi yorliq yaratish…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"“<xliff:g id="GROUP_LABEL">%1$s</xliff:g>” yorlig‘i o‘chirib tashlansinmi? Kontaktlar o‘chib ketmaydi."</string>
+    <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Birlashtirmoqchi bo‘lgan kontaktning ismini kiriting."</string>
+    <string name="copy_text" msgid="3257145021583508761">"Vaqtinchalik xotiraga nusxalash"</string>
+    <string name="set_default" msgid="4417505153468300351">"Standart sifatida belgilash"</string>
+    <string name="clear_default" msgid="7193185801596678067">"Standartni tozalash"</string>
+    <string name="toast_text_copied" msgid="5143776250008541719">"Matndan nuxsa olindi"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"O‘zgarishlar bekor qilinsinmi?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Bekor qilish"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Bekor qilish"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"O‘zgarishlar bekor qilinsinmi?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Kontaktlarni qidirish"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Kontaktlarni olib tashlash"</string>
+    <string name="local_profile_title" msgid="2021416826991393684">"Qurilmadagi profilim"</string>
+    <string name="external_profile_title" msgid="8034998767621359438">"Mening <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> profilim"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Kontaktlaringizni Google xizmatiga saqlash uchun hisob qo‘shing."</string>
+    <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Yangi kontaktlar <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> hisobiga saqlanadi."</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Yangi kontaktlar uchun birlamchi hisobni tanlang:"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Kontakt yaratish"</string>
+    <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Kontaktni tahrirlash"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Faqat ko‘rish"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Kontaktni tanlang"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Bog‘langan kontaktlar"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Qo‘shish"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Ajratish"</string>
+    <string name="add_account" msgid="8201790677994503186">"Hisob qo‘shish"</string>
+    <string name="add_new_account" msgid="5748627740680940264">"Yangi hisob qo‘shish"</string>
+    <string name="menu_export_database" msgid="2659719297530170820">"Ma’lumotlar bazasi fayllarini eksport qilish"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Kontakt yaratish"</string>
+    <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Yana"</string>
+    <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Kamroq"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"Yaqinda"</string>
+    <string name="about_card_title" msgid="2920942314212825637">"Kontakt haqida:"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Shaxsiy nusxasi yaratilmoqda…"</string>
+    <string name="tomorrow" msgid="6241969467795308581">"Ertaga"</string>
+    <string name="today" msgid="8041090779381781781">"Bugun"</string>
+    <string name="today_at_time_fmt" msgid="605665249491030460">"Bugun <xliff:g id="TIME_INTERVAL">%s</xliff:g> da"</string>
+    <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Ertaga <xliff:g id="TIME_INTERVAL">%s</xliff:g> da"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
+    <string name="untitled_event" msgid="3484859385405939366">"(Nomsiz tadbir)"</string>
+    <string name="date_time_set" msgid="4761419824439606690">"Saqlash"</string>
+    <string name="header_im_entry" msgid="3581720979640225615">"Tezkor xabar (IM)"</string>
+    <string name="header_organization_entry" msgid="8515394955666265406">"Tashkilot"</string>
+    <string name="header_nickname_entry" msgid="6743561883967451485">"Taxallus"</string>
+    <string name="header_note_entry" msgid="4320190426480612344">"Izoh"</string>
+    <string name="header_website_entry" msgid="1411467850000824745">"Veb-sayt"</string>
+    <string name="header_event_entry" msgid="6738250422744401460">"Tadbir"</string>
+    <string name="header_relation_entry" msgid="1520292958088146460">"Aloqadorligi"</string>
+    <string name="header_name_entry" msgid="1592791008096288306">"Ism"</string>
+    <string name="header_email_entry" msgid="8666093061171624478">"E-pochta"</string>
+    <string name="header_phone_entry" msgid="8450980572274173570">"Telefon"</string>
+    <string name="content_description_directions" msgid="2686791825798189335">"manzilga yo\'nalishlar"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"Yaqindagi SMS xabar. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Javob berish uchun bosing."</string>
+    <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"kiruvchi"</string>
+    <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"chiquvchi"</string>
+    <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"javobsiz"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"Yaqindagi chaqiruv. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. Qaytarib qilish uchun bosing."</string>
+    <string name="message_from_you_prefix" msgid="7180706529908434482">"Siz: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Boshqa maydonlarni ko‘rsatish"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Kontakt suratini o‘zgartirish"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Kontakt suratini qo‘shish"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Kontakt surati"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Muharrirni ochib bo‘lmadi."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Qayerga saqlansin:"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> hisobining kontakt ma’lumotlarini o‘zgartirib bo‘lmaydi."</string>
+    <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"KONTAKTLARNI BOG‘LASH"</string>
+    <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"BEKOR QILISH"</string>
+    <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Shu kontakt"</string>
+    <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Takroriy kontaktlar"</string>
+    <string name="suggestion_card_help_message" msgid="4474061044387181093">"Bu kontaktlar bitta odamga tegishli bo‘lishi mumkin. Ularni bitta kontaktga birlashtiring."</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>ni o‘chirish"</string>
+    <string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g>ni o‘chirish"</string>
+    <string name="menu_assistant" msgid="5760693735722052454">"Tavsiyalar"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Yangi"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Navigatsiya panelini ochish"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Navigatsiya panelini yopish"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"“<xliff:g id="LABEL_NAME">%s</xliff:g>” yorlig‘i"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Yorliqlar"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Hisoblar"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Umumiy tarixni ko‘rsatish"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Tadbirlar va xabarlar"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Tadbirlar"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Xabarlar"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Tavsiyalar"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Kontaktlar bilan qulay ishlash uchun ularni tartibga soling"</string>
+    <string name="undo" msgid="1425165101664071422">"Bekor qilish"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Qo‘ng‘iroq qilish (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="call_home" msgid="1990519474420545392">"Uy telefoni"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Mobil telefon"</string>
+    <string name="call_work" msgid="5328785911463744028">"Ishxona telefoni"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Ishxona faksi"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Uy faksi"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Peyjer"</string>
+    <string name="call_other" msgid="8563753966926932052">"Qo‘ng‘iroq qilish"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Teskari chaqiruv"</string>
+    <string name="call_car" msgid="3280537320306436445">"Avtomobildagi telefon"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Ofis"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"ISDN raqami"</string>
+    <string name="call_main" msgid="6082900571803441339">"Asosiy telefon"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Faks raqamiga qo‘ng‘iroq qilish"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Radiotelefon"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Teleks"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Teletayp"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Ishxona mobil telefoni"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Ish peyjeri"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Qo‘ng‘iroq qilish (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="call_mms" msgid="6274041545876221437">"MMS markazi"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Qo‘ng‘iroq qilish)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"SMS yuborish (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="sms_home" msgid="7524332261493162995">"SMS: uy telefoni"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"SMS: mobil"</string>
+    <string name="sms_work" msgid="2269624156655267740">"SMS: ishxona telefoni"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"SMS: ishxona faksi"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"SMS: uy faksi"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"SMS: peyjer"</string>
+    <string name="sms_other" msgid="806127844607642331">"Matn"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"SMS: teskari chaqiruv raqami"</string>
+    <string name="sms_car" msgid="7444227058437359641">"SMS: avtomobildagi telefon"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"SMS: ofis telefoni"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"SMS: ISDN raqami"</string>
+    <string name="sms_main" msgid="8621625784504541679">"SMS: asosiy telefon"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Faks raqamiga sms jo‘natish"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"SMS: radiotelefon"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"SMS: teleks"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"SMS: teletayp"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"SMS: ishxona (mobil)"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"SMS: ish peyjeri"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"<xliff:g id="ASSISTANT">%s</xliff:g> telefon raqamiga SMS yuborish"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (SMS)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Video qo‘ng‘iroq qilish"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Bu ro‘yxat tozalansinmi?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Kontaktlar va Telefon ilovalaridagi tez-tez aloqa qilingan kontaktlar ro‘yxati tozalanadi. E-pochta ilovalari esa e-pochta manzillarini yangidan eslay boshlaydi."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Ro‘yxat tozalanmoqda…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Aloqada"</string>
+    <string name="status_away" msgid="1838861100379804730">"Tashqarida"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Band"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Boshqa"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Katalog"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Ishchi katalogi"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Barcha kontaktlar"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Tezkor chaqiruv, kontakt: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Ismi yo‘q)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Tez-tez aloqa qilingan kontaktlar"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Telefon raqamiga ega kontaktlar"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Ishchi profili kontaktlari"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Yangilanishlarni ko‘rish"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Qurilma"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM karta"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Ism"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Taxallus"</string>
+    <string name="name_given" msgid="4280790853455320619">"Ismi"</string>
+    <string name="name_family" msgid="7466985689626017037">"Familiyasi"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Murojaat shakli"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Otasining ismi"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Martabasi/unvoni"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Ism talaffuzi"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Ism talaffuzi"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Otasining ismi talaffuzi"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Familiya talaffuzi"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Telefon"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"E-pochta"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Manzil"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"Chat"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Tashkilot"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Aloqadorligi"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Maxsus sana"</string>
+    <string name="sms" msgid="1756857139634224222">"SMS"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Manzil"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Kompaniya"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Lavozimi"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Izohlar"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Maxsus"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Veb-sayt"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Yorliqlar"</string>
+    <string name="email_home" msgid="8573740658148184279">"Shaxsiy e-pochta"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Mobil e-pochta"</string>
+    <string name="email_work" msgid="2807430017302722689">"Ish e-pochtasi"</string>
+    <string name="email_other" msgid="3454004077967657109">"E-pochta xat yuborish"</string>
+    <string name="email_custom" msgid="5536404237099078802">"E-pochta xat yozish (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="email" msgid="5668400997660065897">"E-pochta"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Ko‘cha"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Shahar"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Viloyat"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Pochta indeksi"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Mamlakat"</string>
+    <string name="map_home" msgid="1243547733423343982">"Uy manzilini ko‘rish"</string>
+    <string name="map_work" msgid="1360474076921878088">"Ishxona manzilini ko‘rish"</string>
+    <string name="map_other" msgid="3817820803587012641">"Manzilni ko‘rish"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Manzilni ko‘rish (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"AIM orqali chat qilish"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Windows Live orqali chat"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Yahoo orqali chat"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Skype orqali chat"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"QQ orqali chat"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Google Talk orqali chat"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"ICQ orqali chat"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Jabber orqali chat"</string>
+    <string name="chat" msgid="9025361898797412245">"Chat"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"o‘chirib tashlash"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Ism uchun qo‘shimcha qatorlarni ko‘rsatish"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Ism maydonlarini berkitish"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Ism transkripsiyasi uchun qo‘shimcha qatorlarni ko‘rsatish"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Fonetik ism maydonlarini berkitish"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Ko‘rsatish"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Berkitish"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Ko‘rsatilmoqda"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Berkitildi"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Barcha kontaktlar"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Yulduzcha qo‘yilganlar"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Sozlash"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Kontakt"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Boshqa kontaktlar"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Barcha kontaktlar"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Sinxronizatsiya guruhini o‘chirish"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Sinxronizatsiya guruhi qo‘shish"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Boshqa guruhlar…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"<xliff:g id="GROUP">%s</xliff:g> guruhini sinxronlash to‘xtatilsa, guruhga qo‘shilmagan kontaktlar ham sinxronlanmay qoladi."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Parametrlar saqlanmoqda…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Maxsus ko‘rinish"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Kontaktlar bu yerga saqlansin:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM karta"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM karta: <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%d ta kontakt</item>
+      <item quantity="one">1 ta kontakt</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> ta kontakt • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> ta kontakt • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"VCF fayl"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Import qilinadigan kontaktlar yo‘q"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Kontaktlar vCard faylidan import qilinsinmi?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"<xliff:g id="FILENAME">%s</xliff:g> faylini import qilish bekor qilinsinmi?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"<xliff:g id="FILENAME">%s</xliff:g> faylini eksport qilish bekor qilinsinmi?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"vCard faylini import/eksport qilishni bekor qilib bo‘lmadi."</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Noma’lum xato."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"<xliff:g id="FILE_NAME">%1$s</xliff:g> faylini ochib bo‘lmadi. Sababi: <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Eksport qilish funksiyasini ishga tushirib bo‘lmaydi. Sababi: “<xliff:g id="EXACT_REASON">%s</xliff:g>”."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Eksport qilish kontaktlar yo‘q."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Kerakli ruxsat o‘chirib qo‘yilgan."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Eksport qilish vaqtida xatolik yuz berdi. Sababi: “<xliff:g id="EXACT_REASON">%s</xliff:g>”."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O xato"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Xotira yetarli joy yo‘q. Fayl juda katta bo‘lishi mumkin."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Bu format qo‘llab-quvvatlanmaydi."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"<xliff:g id="FILENAME">%s</xliff:g> eksport qilindi."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Kontaktlar eksport qilindi."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Kontaktlar eksport qilindi. Ularni baham ko‘rish uchun bildirishnoma ustiga bosing."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Kontaktlarni baham ko‘rish uchun bu yerga bosing."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"<xliff:g id="FILENAME">%s</xliff:g> faylini eksport qilish bekor qilindi."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Kontakt ma’lumoti eksport qilinmoqda."</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Kontakt ma’lumotlari eksport qilinmoqda."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Ma’lumotlar bazasiga kirib bo‘lmadi."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Eksport qilish uchun hech qanday kontakt yo‘q."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard muharririni ishga tushirishda xatolik yuz berdi."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Eksport qilinmadi"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Kontakt ma’lumoti eksport qilinmadi.\nSababi: “<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"<xliff:g id="NAME">%s</xliff:g> import qilinmoqda"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"vCard fayli ma’lumot-ni o‘qib bo‘lmadi"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"<xliff:g id="FILENAME">%s</xliff:g> vCard fayli import qilindi"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"<xliff:g id="FILENAME">%s</xliff:g> faylini import qilish bekor qilindi"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> tez orada import qilinadi."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Fayl tez orada import qilinadi."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Tashrifnomani import qilish so‘rovi rad qilindi. Keyinroq urinib ko‘ring."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Kontaktlar tez orada eksport qilinadi."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Tashrifnomani eksport qilish rad qilindi. Keyinroq urinib ko‘ring."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"kontakt"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"vCard fayllari vaqtinchalik ichki xotira keshiga yuklanmoqda. Import qilish jarayoni tezda boshlanadi."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Tashrifnoma import qilinmadi."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"NFC orq. olindi"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Keshga yuklanmoqda"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Import qilinmoqda: <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> – <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"VCF faylga eksport qilish"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Saralash tartibi"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Ism talaffuzi"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Har doim ko‘rsatish"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Bo‘sh maydonni berkitish"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Ismi"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Familiyasi"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Ism formati"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Avval ismi"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Avval familiyasi"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Hisoblar"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Yangi kontaktlar uchun asosiy hisob"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Mening ma’lumotlarim"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Profilingizni sozlang"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Kontaktlar ilovasi haqida"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Sevimli kontaktlarni yuborish"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Barcha kontaktlarni yuborish"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Kontaktlarni yuborib bo‘lmadi."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Kontaktlarni eksport qilish"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Kontaktlarni import qilish:"</string>
+    <string name="share_error" msgid="948429331673358107">"Bu kontaktni yuborib bo‘lmaydi."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Yuborish uchun hech qanday kontakt yo‘q."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Ko‘rsatiladigan kontaktlar"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Ko‘rsatiladigan kontaktlar"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Ko‘rishni moslashtirish"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Saqlash"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Kontaktlar ichidan qidirish"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Saralangan"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Import qilish"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Eksport qilish"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Bloklangan raqamlar"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"<xliff:g id="SOURCE">%1$s</xliff:g> orqali"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> – <xliff:g id="SOURCE">%2$s</xliff:g> orqali"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"qidiruvni to‘xtatish"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Izlashni tozalash"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Hisob"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Har doim qo‘ng‘iroq. uchun foyd-sin"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Qo‘ng‘iroq vaqtida matn yuborish"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Qo‘ng‘iroq vaqtida yuborish lozim bo‘lgan matnni kiriting…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"XABAR YUBORISH VA QO‘NG‘. QILISH"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Versiyasi"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Ochiq kodli DT litsenziyalari"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Ochiq kodli DT litsenziyalari haqida ma’lumot"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Maxfiylik siyosati"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Foydalanish shartlari"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Ochiq kodli DT litsenziyalari"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"URLni ochishda xatolik yuz berdi."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> belgilangan"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> belgilanmagan"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Video qo‘ng‘iroq qilish"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"O‘chirib tashlash"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Uch nuqta"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> son."</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> daq. <xliff:g id="SECONDS">%2$s</xliff:g> son."</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> soat <xliff:g id="MINUTES_1">%2$s</xliff:g> daq. <xliff:g id="SECONDS">%3$s</xliff:g> son."</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Bu yorliq o‘chirib tashlandi"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Kontakt olib tashlandi"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Import qilish"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Kontaktlarni tanlash"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM kartada hech qanday kontakt yo‘q."</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Bu kontakt allaqachon kontaktlaringiz ro‘yxatiga kiritilgan"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ta kontakt SIM kartadan import qilindi</item>
+      <item quantity="one">1 ta kontakt SIM kartadan import qilindi</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Kontaktlarni SIM kartadan import qilib bo‘lmadi"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Kontaktlarni SIM kartadan import qilish"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Bekor qilish"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Avto-sinxronlash o‘chiq. Uni yoqish uchun bosing."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Rad etish"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Hisobni sinxronlash o‘chiq. Uni yoqish uchun bosing."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Avto sinxronlash yoqilsinmi?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Ilova va hisoblarga kiritgan o‘zgarishlar (nafaqat Google Kontaktlar), ularning veb-versiyalaridan qurilmalarga avtomatik sinxronlanadi."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Yoqish"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Aloqa yo‘q"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM karta"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Yana"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Kontaktlar SIM kartadan import qilindi"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Import qilib bo‘lmadi"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Kontaktlarni SIM kartadan import qilib bo‘lmadi."</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Kontakt. SIM kartadan import qilinmoqda…"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
+    <skip />
+</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 5e41f6d..fda87ae 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Danh bạ"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Danh bạ"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Xem liên hệ"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Chỉnh sửa địa chỉ liên hệ"</string>
     <string name="contactsList" msgid="8661624236494819731">"Danh bạ"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Thêm liên hệ"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Liên hệ"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Quay số trực tiếp"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Tin nhắn trực tiếp"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Chọn lối tắt cho liên hệ"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Chọn một số để gọi"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Chọn một số để gửi tin nhắn"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Thêm vào địa chỉ liên hệ"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Chọn địa chỉ liên hệ"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Chọn liên hệ"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Thêm vào liên hệ"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Chọn người liên hệ"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Chọn"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Tạo liên hệ mới"</string>
-    <string name="starredList" msgid="4817256136413959463">"Được gắn dấu sao"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Thường xuyên"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Liên hệ ưa thích"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Chi tiết liên hệ"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Chỉnh sửa liên hệ"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Tạo liên hệ"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Chỉnh sửa nhóm"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Tạo nhóm"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Giới thiệu"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Cập nhật"</string>
     <string name="searchHint" msgid="8482945356247760701">"Tìm kiếm trong danh bạ"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Xem liên hệ"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Thêm vào liên hệ ưa thích"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Xóa khỏi mục ưa thích"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Đã xóa khỏi mục ưa thích"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Chỉnh sửa"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Xóa"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Thay đổi ảnh"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Đặt trên màn hình chính"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Gọi liên hệ"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Nhắn tin tới liên hệ"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Tạo phím tắt"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Hủy liên kết"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Chỉnh sửa"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Xóa"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Thêm địa chỉ liên hệ"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Thêm nhóm"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Xóa liên hệ"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Đổi tên nhãn"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Xóa nhãn"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Thêm liên hệ"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Chọn liên hệ"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Thêm liên hệ"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Xóa khỏi nhãn"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Tạo nhãn"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Bạn muốn hủy liên kết liên hệ này thành nhiều liên hệ?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Hủy liên kết"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Bạn có muốn lưu các thay đổi mình đã thực hiện và hủy liên kết liên hệ này thành nhiều liên hệ không?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Lưu và hủy liên kết"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Bạn có muốn lưu các thay đổi mình đã thực hiện và liên kết với liên hệ đã chọn không?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Lưu và liên kết"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Đang liên kết"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Đang hủy liên kết"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Liên kết"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Xem các liên hệ đã liên kết"</string>
     <string name="menu_save" msgid="1727844363591825909">"Lưu"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Liên kết liên hệ"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Chọn liên hệ bạn muốn liên kết với <xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Hiển thị tất cả liên hệ"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Liên hệ được đề xuất"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Tất cả liên hệ"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"Đã liên kết <xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Đã liên kết liên hệ"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"Đã xóa <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Đã xóa <xliff:g id="NAME_0">%1$s</xliff:g> và <xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"Đã xóa <xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">Liên hệ đã bị xóa</item>
       <item quantity="one">Liên hệ đã bị xóa</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> liên hệ</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> liên hệ</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> liên hệ · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> liên hệ · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Từ Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Từ <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Đặt nhạc chuông"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Cuộc gọi sang thư thoại"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Bạn có thể ẩn chứ không thể xóa liên hệ khỏi các tài khoản chỉ đọc của mình."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Ẩn"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Liên hệ cần xóa có thông tin chi tiết từ nhiều tài khoản. Thông tin chi tiết từ các tài khoản chỉ đọc sẽ bị ẩn chứ không bị xóa."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Bạn cần chọn ít nhất hai liên hệ để thực hiện liên kết."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Bạn muốn liên kết các liên hệ đã chọn?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Liên kết"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Định tuyến đến thư thoại"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Bỏ định tuyến đến thư thoại"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Liên hệ này ở trạng thái chỉ đọc. Bạn không thể xóa nhưng có thể ẩn liên hệ này."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Ẩn liên hệ"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Các tài khoản chỉ đọc trong liên hệ này sẽ bị ẩn chứ không bị xóa."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Bạn muốn xóa liên hệ này?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Bạn muốn xóa các liên hệ đã chọn?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Bạn có thể ẩn chứ không thể xóa liên hệ khỏi các tài khoản chỉ đọc của mình."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Xóa liên hệ này sẽ xóa thông tin chi tiết khỏi nhiều tài khoản."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Bạn muốn xóa liên hệ này?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Xóa"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Hủy các thay đổi"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Địa chỉ liên hệ không tồn tại."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Đã thêm liên hệ vào Màn hình chính."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Đã thêm <xliff:g id="NAME">%s</xliff:g> vào Màn hình chính."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Tạo liên hệ mới"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Tạo địa chỉ liên hệ mới"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Tổ chức"</item>
-    <item msgid="7196592230748086755">"Ghi chú"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Không có ảnh nào trong máy tính bảng."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Không có ảnh nào trong điện thoại."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Không có ảnh nào trên thiết bị."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Ảnh của liên hệ"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Tên nhãn tùy chỉnh"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Gửi cuộc gọi trực tiếp tới thư thoại"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Xóa ảnh"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Không có địa chỉ liên hệ nào"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Không có nhóm nào."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Để tạo nhóm, bạn cần có tài khoản."</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Không có người nào trong nhóm này."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Để thêm thành viên, chỉnh sửa nhóm."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Đang lưu liên hệ…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"Danh sách liên hệ của bạn trống"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Không có liên hệ nào có nhãn này"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Không có danh bạ trong tài khoản này"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Danh sách liên hệ của bạn trống"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"Đã lưu <xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Đã lưu địa chỉ liên hệ"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Đã hủy liên kết liên hệ"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Không thể lưu thay đổi của địa chỉ liên hệ."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Không thể hủy liên kết liên hệ."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Không thể liên kết liên hệ."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Lỗi khi lưu địa chỉ liên hệ."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Không thể lưu thay đổi đối với ảnh của liên hệ."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Đã lưu nhóm."</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Không thể lưu thay đổi nhóm."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> liên hệ có số điện thoại</item>
-      <item quantity="one">1 liên hệ có số điện thoại</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Không có liên hệ nào có số điện thoại"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">Đã tìm thấy <xliff:g id="COUNT">%d</xliff:g> liên hệ</item>
-      <item quantity="one">Đã tìm thấy 1 liên hệ</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Không thể lưu thay đổi đối với liên hệ"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Không thể hủy liên kết liên hệ"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Không thể liên kết liên hệ"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Đã xảy ra lỗi khi lưu liên hệ"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Không thể lưu thay đổi đối với ảnh của liên hệ"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Không tải được nhãn"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Đã xóa nhãn"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Đã tạo nhãn"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Không thể tạo nhãn"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Đã cập nhật nhãn"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Đã bị xóa khỏi nhãn"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Đã thêm vào nhãn"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Không thể lưu thay đổi đối với nhãn"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Nhãn đó đã tồn tại"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Một số liên hệ không có email."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Một số liên hệ không có số điện thoại."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Gửi email"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Gửi tin nhắn"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Chọn liên hệ"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Gửi"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Không có địa chỉ liên hệ nào"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">Đã tìm thấy <xliff:g id="COUNT">%d</xliff:g> liên hệ</item>
-      <item quantity="one">Đã tìm thấy 1 liên hệ</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Tất cả"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Mục yêu thích"</string>
-    <string name="callBack" msgid="5498224409038809224">"Gọi lại"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Gọi lại"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Gọi lại"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Thêm \"<xliff:g id="EMAIL">%s</xliff:g>\" vào danh bạ?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"ảnh của liên hệ"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"cộng"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> trong tổng số <xliff:g id="TOTAL_NUMBER">%s</xliff:g> liên hệ"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Tên danh bạ của bạn"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Không tìm thấy ứng dụng nào để xử lý tác vụ này."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Nhấp để quay lại màn hình trước đó"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Thêm số điện thoại"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Thêm email"</string>
     <string name="missing_app" msgid="1466111003546611387">"Không tìm thấy ứng dụng nào để xử lý tác vụ này."</string>
     <string name="menu_share" msgid="943789700636542260">"Chia sẻ"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Thêm vào danh bạ"</string>
-    <string name="share_via" msgid="563121028023030093">"Chia sẻ liên hệ qua"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Tạo nhóm trong tài khoản"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Thêm"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">Chia sẻ các liên hệ qua</item>
+      <item quantity="one">Chia sẻ liên hệ qua</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Chọn tài khoản"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Tạo nhãn"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Đổi tên nhãn"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Tên nhãn"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Tên nhãn"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Trò chuyện thoại"</string>
     <string name="video_chat" msgid="1872255818640336072">"Trò chuyện qua video"</string>
-    <string name="connections" msgid="8098440723172028350">"Kết nối"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Thêm kết nối"</string>
-    <string name="recent" msgid="2659189233141493004">"Gần đây"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Cập nhật gần đây"</string>
     <string name="account_type_format" msgid="718948015590343010">"Liên hệ <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"Tài khoản <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Không chỉnh sửa được từ ứng dụng này."</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Không chỉnh sửa được trên thiết bị này."</string>
     <string name="take_photo" msgid="7496128293167402354">"Chụp ảnh"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Chụp ảnh mới"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Chọn ảnh"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Chọn ảnh mới"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Danh bạ đang được cập nhật."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Đang tìm kiếm…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Hiển thị mục đã chọn"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Hiển thị tất cả"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Chọn tất cả"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Bỏ chọn tất cả"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Thêm mục mới"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Thêm tổ chức"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Ngày"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Tên nhóm"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Thay đổi"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Ảnh chính"</string>
-    <string name="description_star" msgid="2605854427360036550">"Yêu thích"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Chỉnh sửa liên hệ"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Liên kết liên hệ hiện tại với liên hệ đã chọn?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Nhãn"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Hủy"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Quay lại"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"đóng"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Chuyển sang chỉnh sửa liên hệ đã chọn? Thông tin bạn đã nhập đến giờ sẽ được sao chép."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Sao chép vào Danh bạ của tôi"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Thêm vào Danh bạ của tôi"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Thư mục <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Tùy chỉnh"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Cài đặt"</string>
     <string name="menu_settings" msgid="377929915873428211">"Cài đặt"</string>
     <string name="menu_help" msgid="1680178646764069976">"Trợ giúp và phản hồi"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Tùy chọn hiển thị"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Số điện thoại"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Thêm vào danh bạ"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Thêm vào đ.chỉ l.hệ"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Đóng"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Bao gồm năm"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Liên hệ"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Đang tải…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Tạo liên hệ mới"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Thêm tài khoản"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Nhập danh bạ"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Tạo nhóm mới"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Tạo nhóm mới"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> nhóm</item>
-      <item quantity="one">1 nhóm</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Xóa nhóm \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Danh bạ sẽ không bị xóa.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> người từ <xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> người từ <xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> người</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> người</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Nhập"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Tạo mới…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Bạn muốn xóa nhãn \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Danh bạ sẽ không bị xóa.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Nhập tên liên hệ trước khi liên kết với liên hệ khác."</string>
     <string name="copy_text" msgid="3257145021583508761">"Sao chép vào khay nhớ tạm"</string>
     <string name="set_default" msgid="4417505153468300351">"Đặt mặc định"</string>
     <string name="clear_default" msgid="7193185801596678067">"Xóa mặc định"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Đã sao chép văn bản"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Hủy các thay đổi của bạn?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Hủy"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Thiết lập hồ sơ"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Nhập tên của người này"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Tên nhóm"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Hủy thay đổi?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Hủy"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Hủy"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Hủy tùy chỉnh?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Tìm kiếm trong danh bạ"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Xóa liên hệ"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"T.sử cục bộ của tôi"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Tiểu sử <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> của tôi"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Đang hiển thị tất cả liên hệ"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Danh bạ hoạt động tốt hơn với tài khoản Google.\n\n• Truy cập từ bất kỳ trình duyệt web nào.\n• Sao lưu danh bạ của bạn một cách an toàn."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Đảm bảo an toàn cho danh sách liên hệ của bạn ngay cả khi bạn mất điện thoại: hãy đồng bộ hóa với một dịch vụ trực tuyến."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Thêm tài khoản"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Liên hệ mới của bạn sẽ không được sao lưu. Thêm tài khoản sao lưu danh bạ trực tuyến?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Dành chút thời gian để thêm tài khoản mà sẽ sao lưu danh bạ của bạn vào Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Liên hệ mới sẽ được lưu vào <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Chọn tài khoản mặc định cho các liên hệ mới:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Thêm liên hệ mới"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Tạo liên hệ mới"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Chỉnh sửa liên hệ"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Lưu trữ cục bộ"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Chỉ xem"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Chọn liên hệ cần chỉnh sửa"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Liên hệ đã liên kết"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Thêm"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Hủy liên kết"</string>
     <string name="add_account" msgid="8201790677994503186">"Thêm tài khoản"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Thêm tài khoản mới"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Xuất các tệp cơ sở dữ liệu"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"thêm liên hệ mới"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Tạo liên hệ mới"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Xem thêm"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Xem bớt"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Xem tất cả"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Gần đây"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Giới thiệu"</string>
-    <string name="send_message" msgid="8938418965550543196">"Gửi tin nhắn"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Đang tạo bản sao cá nhân..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Hôm qua"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Đang tạo bản sao cá nhân..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"Ngày mai"</string>
     <string name="today" msgid="8041090779381781781">"Hôm nay"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Hôm nay lúc <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Ngày mai lúc <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Sự kiện không có tiêu đề)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Đặt"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Trang web"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Sự kiện"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Quan hệ"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"Tài khoản"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Tên"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"Email"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Điện thoại"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Ảnh"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Nhấp để mở rộng trình chỉnh sửa liên hệ."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Nhấp để thu gọn trình chỉnh sửa liên hệ."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"chỉ đường tới địa điểm"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms gần đây. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. nhấp để trả lời"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"sms gần đây. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. nhấp để trả lời"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"cuộc gọi đến"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"cuộc gọi đi"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"cuộc gọi bị nhỡ"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"cuộc gọi gần đây. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. nhấp để gọi lại"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"cuộc gọi gần đây. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. nhấp để gọi lại"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Bạn: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"Hangouts hoạt động tốt hơn khi bạn nhập số nhận dạng Hangouts của người đó vào trường email hoặc trường điện thoại."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Trường khác"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Thay đổi ảnh"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Không mở được trình chỉnh sửa."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Lưu vào"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Hiện đang lưu vào <xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Hãy nhấn đúp để chọn tài khoản khác."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">Liên hệ được liên kết (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">Liên hệ được liên kết</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> liên hệ đã liên kết"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Trường khác"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Thay đổi ảnh của liên hệ"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Thêm ảnh của liên hệ"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Ảnh của liên hệ"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Không mở được trình chỉnh sửa."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Lưu vào"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Thông tin liên hệ từ <xliff:g id="ACCOUNT">%s</xliff:g> không thể chỉnh sửa được"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"LIÊN KẾT LIÊN HỆ"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"HỦY"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Liên hệ có thể trùng lặp</item>
-      <item quantity="one">1 liên hệ có thể trùng lặp</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> liên hệ được liên kết</item>
-      <item quantity="one">1 liên hệ được liên kết</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Liên hệ này"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Có thể trùng lặp"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Các liên hệ này có thể là cùng một người. Bạn có thể liên kết chúng với nhau thành một liên hệ duy nhất."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Liên hệ đã liên kết"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Từ các tài khoản của bạn"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Chụp ảnh"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Tất cả ảnh"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Chọn ảnh"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Từ <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Xóa <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Xóa <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Xóa <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Ảnh từ <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>không được chọn"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Ảnh từ <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>được chọn"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Chưa chọn ảnh từ tài khoản không xác định"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Đã chọn ảnh từ tài khoản không xác định"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Danh bạ đang được cập nhật để phản ánh thay đổi ngôn ngữ.\n\nVui lòng đợi..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Thêm số"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Chặn số"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Thêm số hoặc tìm kiếm danh bạ"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Bỏ chặn <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"BỎ CHẶN"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Chặn <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"CHẶN"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"Đã chặn <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Đã bỏ chặn <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> không hợp lệ."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Tạm thời tắt chặn cuộc gọi"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Tính năng chặn cuộc gọi đã bị tắt vì bạn đã liên hệ với dịch vụ khẩn cấp từ điện thoại này trong vòng 48 giờ qua. Tính năng này sẽ được bật lại tự động sau khi khoảng thời gian 48 giờ kết thúc."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Nhập"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Xem số"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Thêm số"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Đã tắt tính năng chặn cuộc gọi trong 48 giờ"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Bị tắt vì bạn đã thực hiện cuộc gọi khẩn cấp."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"HOÀN TÁC"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> đã bị chặn."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Bỏ chặn số"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Chi tiết liên lạc cho <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Nhập không thành công"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Nhập số"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Bật"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Đề xuất"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Mới"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Mở ngăn điều hướng"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Đóng ngăn điều hướng"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"Nhãn <xliff:g id="LABEL_NAME">%s</xliff:g>"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Nhãn"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Tài khoản"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Xem đồng thời lịch sử của bạn"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Sự kiện và tin nhắn"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Sự kiện"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Tin nhắn"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Đề xuất"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Giữ cho danh bạ của bạn luôn được sắp xếp và hữu ích"</string>
+    <string name="undo" msgid="1425165101664071422">"Hoàn tác"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Gọi <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Gọi số điện thoại nhà riêng"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Gọi số điện thoại di động"</string>
+    <string name="call_work" msgid="5328785911463744028">"Gọi số điện thoại cơ quan"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Gọi số fax cơ quan"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Gọi số fax nhà riêng"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Gọi số máy nhắn tin"</string>
+    <string name="call_other" msgid="8563753966926932052">"Gọi"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Gọi số gọi lại"</string>
+    <string name="call_car" msgid="3280537320306436445">"Gọi số điện thoại trên ô tô"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Gọi số điện thoại chính của công ty"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Gọi ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Gọi số điện thoại chính"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Gọi số fax"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Gọi số điện thoại radio"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Gọi số telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Gọi số điện thoại TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Gọi số điện thoại di động tại cơ quan"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Gọi số máy nhắn tin tại cơ quan"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Gọi <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Gọi MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Gọi)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Gửi tin nhắn văn bản tới <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Nhắn tin tới số điện thoại nhà riêng"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Nhắn tin tới số điện thoại di động"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Nhắn tin tới số điện thoại cơ quan"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Nhắn tin tới số fax cơ quan"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Nhắn tin tới số fax nhà riêng"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Nhắn tin tới số máy nhắn tin"</string>
+    <string name="sms_other" msgid="806127844607642331">"Nhắn tin"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Nhắn tin tới số gọi lại"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Nhắn tin tới số điện thoại trên ô tô"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Nhắn tin tới số điện thoại chính của công ty"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Nhắn tin tới số điện thoại ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Nhắn tin tới số điện thoại chính"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Nhắn tin tới số fax"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Nhắn tin tới số điện thoại radio"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Nhắn tin tới số telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Nhắn tới số TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Nhắn tới số điện thoại di động tại cơ quan"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Nhắn tin tới số máy nhắn tin tại cơ quan"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Nhắn tin <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Nhắn tin tới số điện thoại MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Tin nhắn)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Gọi điện video"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Xóa danh sách liên hệ thường xuyên?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Bạn sẽ xóa danh sách liên hệ thường xuyên trong ứng dụng Danh bạ và điện thoại cũng như buộc các ứng dụng email phải tìm hiểu các tùy chọn gửi của bạn lại từ đầu."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Đang xóa DS liên hệ thường xuyên…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Có mặt"</string>
+    <string name="status_away" msgid="1838861100379804730">"Vắng mặt"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Bận"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Khác"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Thư mục"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Thư mục công việc"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Tất cả địa chỉ liên hệ"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Liên hệ nhanh cho <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(Không có tên)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Thường xuyên được liên hệ"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Tất cả địa chỉ liên hệ có số điện thoại"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Liên hệ trên hồ sơ công việc"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Xem thông tin c.nhật"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Thiết bị"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Tên"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Biệt hiệu"</string>
+    <string name="name_given" msgid="4280790853455320619">"Tên"</string>
+    <string name="name_family" msgid="7466985689626017037">"Họ"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Tiền tố tên"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Tên đệm"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Hậu tố tên"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Tên theo phiên âm"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Tên theo phiên âm"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Tên đệm đúng phát âm"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Họ theo phiên âm"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Điện thoại"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"Email"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Địa chỉ"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Tổ chức"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Mối quan hệ"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Ngày đặc biệt"</string>
+    <string name="sms" msgid="1756857139634224222">"Tin nhắn văn bản"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Địa chỉ"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Công ty"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Tiêu đề"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Ghi chú"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Tùy chỉnh"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Trang web"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Nhãn"</string>
+    <string name="email_home" msgid="8573740658148184279">"Gửi email tới địa chỉ email nhà riêng"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Gửi email tới địa chỉ email điện thoại di động"</string>
+    <string name="email_work" msgid="2807430017302722689">"Gửi email tới địa chỉ email cơ quan"</string>
+    <string name="email_other" msgid="3454004077967657109">"Gửi email"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Gửi email tới <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"Gửi email"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Đường phố"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Thành phố"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Tiểu bang"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Mã ZIP"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Quốc gia"</string>
+    <string name="map_home" msgid="1243547733423343982">"Xem địa chỉ nhà riêng"</string>
+    <string name="map_work" msgid="1360474076921878088">"Xem địa chỉ cơ quan"</string>
+    <string name="map_other" msgid="3817820803587012641">"Xem địa chỉ"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Xem địa chỉ <xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Trò chuyện sử dụng AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Trò chuyện sử dụng Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Trò chuyện sử dụng Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Trò chuyện sử dụng Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Trò chuyện sử dụng QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Trò chuyện sử dụng Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Trò chuyện sử dụng ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Trò chuyện sử dụng Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Trò chuyện"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"xóa"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Hiển thị thêm trường tên"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Thu gọn trường tên"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Hiển thị thêm trường tên theo phiên âm"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Thu gọn trường tên theo phiên âm"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Mở rộng"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Thu gọn"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Đã mở rộng"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Đã thu gọn"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Tất cả địa chỉ liên hệ"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Được gắn dấu sao"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Tùy chỉnh"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Địa chỉ liên hệ"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Tất cả địa chỉ l.hệ khác"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Tất cả địa chỉ liên hệ"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Xóa nhóm đồng bộ hóa"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Thêm nhóm đồng bộ hóa"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Nhóm khác…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Xóa \"<xliff:g id="GROUP">%s</xliff:g>\" khỏi đồng bộ hóa cũng sẽ xóa bất kỳ địa chỉ liên hệ nào đã được tách nhóm khỏi đồng bộ hóa."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Đang lưu tùy chọn hiển thị…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Chế độ xem tùy chỉnh"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Lưu danh bạ đã nhập vào:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"Thẻ SIM"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d liên hệ</item>
+      <item quantity="one">1 liên hệ</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> liên hệ • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> liên hệ • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">"Tệp .vcf"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Không còn gì để nhập"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Nhập liên hệ từ vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Hủy yêu cầu nhập <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Hủy yêu cầu xuất <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Không thể nhập/xuất vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Lỗi không xác định."</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Không thể mở \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>."</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Không thể chạy trình xuất: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Không thể xuất địa chỉ liên hệ nào."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Bạn đã tắt quyền được yêu cầu."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Đã xảy ra lỗi khi xuất: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Lỗi I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Không đủ bộ nhớ. Tệp có thể quá lớn."</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Định dạng không được hỗ trợ."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Đã xuất xong <xliff:g id="FILENAME">%s</xliff:g>."</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Đã xuất xong danh bạ."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Đã xuất xong liên hệ. Nhấp vào thông báo để chia sẻ liên hệ."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Nhấp để chia sẻ liên hệ."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Quá trình xuất <xliff:g id="FILENAME">%s</xliff:g> bị hủy."</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Xuất dữ liệu liên hệ"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Dữ liệu liên hệ đang được xuất."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Không thể nhận thông tin cơ sở dữ liệu."</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Không có liên hệ nào có thể xuất."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Trình soạn vCard không khởi động đúng."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Không thể xuất"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Không xuất được dữ liệu địa chỉ liên hệ.\nLý do: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Đang nhập <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Không thể đọc dữ liệu vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Đã nhập xong vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Quá trình nhập <xliff:g id="FILENAME">%s</xliff:g> bị hủy"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> sẽ sớm được nhập."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Tệp sẽ sớm được nhập."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Yêu cầu nhập vCard bị từ chối. Hãy thử lại sau."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Danh bạ sẽ được xuất ngay."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Yêu cầu xuất vCard bị từ chối. Hãy thử lại sau."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"địa chỉ liên hệ"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Đang lưu vào bộ nhớ cache các tệp vCard sẽ được nhập vào bộ nhớ cục bộ tạm thời. Thao tác nhập thực sự sẽ sớm bắt đầu."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Không thể nhập vCard."</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"L.h nhận qua NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Đang lưu vào bộ nhớ cache"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Đang nhập <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Xuất sang tệp .vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Sắp xếp theo"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Tên theo phiên âm"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Luôn hiển thị"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Ẩn nếu trống"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Tên"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Họ"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Định dạng tên"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Tên trước"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Họ trước"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Tài khoản"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"Tài khoản mặc định cho các liên hệ mới"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Thông tin của tôi"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Thiết lập hồ sơ của bạn"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Giới thiệu về Danh bạ"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Chia sẻ liên hệ yêu thích"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Chia sẻ tất cả các liên hệ"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Không chia sẻ được liên hệ."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Xuất danh bạ"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Nhập liên hệ từ"</string>
+    <string name="share_error" msgid="948429331673358107">"Không thể chia sẻ địa chỉ liên hệ này."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Không có liên hệ nào để chia sẻ."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Danh bạ để hiển thị"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"DS liên hệ để hiển thị"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Tùy chỉnh chế độ xem"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Lưu"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Tìm kiếm liên hệ"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Mục ưa thích"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Nhập"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Xuất"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Số bị chặn"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">" qua <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> qua <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"ngừng tìm kiếm"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Xóa tìm kiếm"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"Tài khoản"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Luôn sử dụng SIM này để gọi"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Gọi điện kèm theo ghi chú"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Nhập ghi chú để gửi kèm cuộc gọi..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"GỬI VÀ GỌI"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Phiên bản đóng gói"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Giấy phép nguồn mở"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Chi tiết giấy phép cho phần mềm nguồn mở"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Chính sách bảo mật"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Điều khoản dịch vụ"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Giấy phép nguồn mở"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Không mở được url."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"Đã kiểm tra <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"Chưa kiểm tra <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Gọi điện video"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Xóa"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Dấu ba chấm"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> giây"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> phút <xliff:g id="SECONDS">%2$s</xliff:g> giây"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> giờ <xliff:g id="MINUTES_1">%2$s</xliff:g> phút <xliff:g id="SECONDS">%3$s</xliff:g> giây"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Phím tắt này đã bị vô hiệu hóa"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Liên hệ đã bị xóa"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Nhập"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Chọn liên hệ"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Không có liên hệ nào trên thẻ SIM của bạn"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Liên hệ đã tồn tại trong danh sách của bạn"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">Đã nhập <xliff:g id="COUNT">%d</xliff:g> liên hệ trên SIM</item>
+      <item quantity="one">Đã nhập 1 liên hệ trên SIM</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Không nhập được liên hệ trên SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Nhập từ SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Hủy"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Tự động đồng bộ hóa đang tắt. Hãy nhấn để bật."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Loại bỏ"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Đồng bộ hóa tài khoản đang tắt. Hãy nhấn để bật."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Bật tự động đồng bộ hóa?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Những thay đổi bạn thực hiện đối với tất cả ứng dụng và tài khoản, không chỉ với Danh bạ Google, sẽ luôn được cập nhật giữa web và thiết bị của bạn."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Bật"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Không có kết nối"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Hiển thị thêm"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Đã nhập xong thẻ SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Nhập không thành công"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Không thể nhập liên hệ từ thẻ SIM"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Đang nhập SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-w470dp/dimens.xml b/res/values-w470dp/dimens.xml
deleted file mode 100644
index 2c04e5d..0000000
--- a/res/values-w470dp/dimens.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-
-    <!-- The width the that the tabs occupy in the ActionBar when in landscape mode.
-         470dp is the height of a "normal" screen. We should leave 240dp for
-         the title and menu items -->
-    <dimen name="people_activity_landscape_tabs_width">230dip</dimen>
-    <!-- The size of the text displayed in the ActionBar tabs in landscape mode.
-         Text in the tabs should must be width dependent, otherwise it won't fit in the tabs.
-         In portrait mode, the tabs look okay when overflowing their allocated space.
-         We have to be more careful in landscape. -->
-    <dimen name="people_activity_landscape_tabs_text_size">9dp</dimen>
-
-</resources>
\ No newline at end of file
diff --git a/res/values-w590dp/dimens.xml b/res/values-w590dp/dimens.xml
deleted file mode 100644
index 2fff6ca..0000000
--- a/res/values-w590dp/dimens.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-
-    <!-- The width the that the tabs occupy in the ActionBar when in landscape mode.
-         590dp is almost the height of a "large" screen. We should leave 240dp for
-         the title and menu items -->
-    <dimen name="people_activity_landscape_tabs_width">350dip</dimen>
-    <!-- The size of the text displayed in the ActionBar tabs in landscape mode.
-         Text in the tabs should must be width dependent, otherwise it won't fit in the tabs.
-         In portrait mode, the tabs look okay when overflowing their allocated space.
-         We have to be more careful in landscape. -->
-    <dimen name="people_activity_landscape_tabs_text_size">14dp</dimen>
-
-</resources>
\ No newline at end of file
diff --git a/res/values-zh-rCN/donottranslate_config.xml b/res/values-zh-rCN/donottranslate_config.xml
new file mode 100644
index 0000000..b357856
--- /dev/null
+++ b/res/values-zh-rCN/donottranslate_config.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<resources>
+    <!-- If true, an option is shown in Display Options UI to choose a sort order -->
+    <bool name="config_sort_order_user_changeable">false</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_sort_order_primary">true</bool>
+
+    <!-- If true, an option is shown in Display Options UI to choose a name display order -->
+    <bool name="config_display_order_user_changeable">false</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_display_order_primary">true</bool>
+
+    <!-- If true, the order of name fields in the editor is primary (i.e. given name first) -->
+    <bool name="config_editor_field_order_primary">false</bool>
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 3e5899d..369e08c 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"通讯录"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"通讯录"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"查看联系人"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"修改联系人"</string>
-    <string name="contactsList" msgid="8661624236494819731">"联系人"</string>
+    <string name="contactsList" msgid="8661624236494819731">"通讯录"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"添加联系人"</string>
     <string name="shortcutContact" msgid="749243779392912958">"联系人"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"直接拨打电话"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"直接发送短信"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"选择联系人快捷方式"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"选择一个可直接拨号的号码"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"选择一个可直接向其发送短信的号码"</string>
-    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"添加至通讯录"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"选择联系人"</string>
+    <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"添加到通讯录"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"选择联系人"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"选择"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"创建新联系人"</string>
-    <string name="starredList" msgid="4817256136413959463">"已加星标的内容"</string>
-    <string name="frequentList" msgid="7154768136473953056">"经常联系"</string>
-    <string name="strequentList" msgid="5640192862059373511">"收藏"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"联系人详情"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"编辑联系人"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"创建联系人"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"修改群组"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"创建群组"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"关于"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"最新动态"</string>
     <string name="searchHint" msgid="8482945356247760701">"搜索联系人"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"查看联系人"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"添加到收藏"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"从收藏中移除"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"已从收藏中移除"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"修改"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"删除"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"更换照片"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"放在主屏幕上"</string>
-    <string name="menu_call" msgid="3992595586042260618">"呼叫联系人"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"向联系人发送短信"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"创建快捷方式"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"取消关联"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"修改"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"删除"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"添加联系人"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"添加群组"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"移除联系人"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"重命名标签"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"删除标签"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"添加联系人"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"选择联系人"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"添加联系人"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"从标签中移除"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"创建标签"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"要取消此联系人与多个联系人的关联吗？"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"取消关联"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"您要保存目前所做的更改，并取消此联系人与多个联系人的关联吗？"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"保存并取消关联"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"您要保存目前所做的更改，并将此联系人与所选联系人建立关联吗？"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"保存并关联"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"正在关联"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"正在取消关联"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"关联"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"查看已关联的联系人"</string>
     <string name="menu_save" msgid="1727844363591825909">"保存"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"关联联系人"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"选择您想与<xliff:g id="NAME">%s</xliff:g>关联的联系人："</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"显示所有联系人"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"建议的联系人"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"所有联系人"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"已关联<xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"联系人已关联"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"已删除<xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"已删除<xliff:g id="NAME_0">%1$s</xliff:g>和<xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"已删除<xliff:g id="NAME_0">%1$s</xliff:g>、<xliff:g id="NAME_1">%2$s</xliff:g>、<xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">已删除联系人</item>
       <item quantity="one">已删除联系人</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 位联系人</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 位联系人</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> 位联系人 · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 位联系人 · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"来自 Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"来自 <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"设置铃声"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"所有来电转至语音信箱"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"系统无法删除来自只读帐号的联系人信息，但可以将这些信息隐藏。"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"隐藏"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"您要删除的联系人信息中包含来自多个帐号的详细信息。系统将隐藏来自只读帐号的详细信息，而不会删除这些信息。"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"您至少需要选择两个联系人才能进行关联。"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"要关联所选联系人吗？"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"关联"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"转接到语音信箱"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"取消转接到语音信箱"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"这是只读联系人信息。您无法删除此联系人，但可以将其隐藏。"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"隐藏联系人"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"此联系人的只读帐号将被隐藏，而不会被删除。"</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"要删除此联系人吗？"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"要删除所选联系人吗？"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"系统无法删除来自只读帐号的联系人信息，但可以将这些信息隐藏。"</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"删除此联系人也将删除多个帐号中的相关详细信息。"</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"要删除此联系人吗？"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"删除"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"舍弃更改"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"该联系人不存在。"</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"已将该联系人添加到主屏幕。"</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"已将<xliff:g id="NAME">%s</xliff:g>添加到主屏幕。"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"新建联系人"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"创建新联系人"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"组织"</item>
-    <item msgid="7196592230748086755">"备注"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"平板电脑上没有照片可供使用。"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"手机上没有照片。"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"设备上没有可用的照片。"</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"联系人照片"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"自定义标签名称"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"直接将来电转到语音信箱"</string>
     <string name="removePhoto" msgid="4898105274130284565">"删除照片"</string>
-    <string name="noContacts" msgid="4955659076981974652">"没有联系人"</string>
-    <string name="noGroups" msgid="8614664663561385253">"没有任何群组。"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"您需要拥有一个帐号才能创建群组。"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"此群组中没有联系人。"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"要添加联系人，请修改该群组。"</string>
-    <string name="savingContact" msgid="4075751076741924939">"正在保存联系人…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"联系人列表是空的"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"此标签下没有联系人"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"此帐号中没有联系人"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"联系人列表是空的"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"已保存<xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"联系人已保存"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"已将联系人取消关联"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"无法保存联系人更改。"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"无法取消关联此联系人。"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"无法关联该联系人。"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"保存此联系人时出错。"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"无法保存联系人照片更改。"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"群组已保存。"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"无法保存所做的群组更改。"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 个有电话号码的联系人</item>
-      <item quantity="one">1 个有电话号码的联系人</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"没有联系人拥有电话号码"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">找到 <xliff:g id="COUNT">%d</xliff:g> 个联系人</item>
-      <item quantity="one">找到 1 个联系人</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"无法保存对联系人的更改"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"无法取消关联联系人"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"无法关联联系人"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"保存联系人时出错"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"无法保存对联系人照片的更改"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"无法加载标签"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"已删除标签"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"已创建标签"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"无法创建标签"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"已更新标签"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"已从标签中移除"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"已添加到标签"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"无法保存对标签的修改"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"该标签已存在"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"部分联系人没有电子邮件地址。"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"部分联系人没有电话号码。"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"发送电子邮件"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"发送信息"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"选择联系人"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"发送"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"没有联系人"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">找到 <xliff:g id="COUNT">%d</xliff:g> 个联系人</item>
-      <item quantity="one">找到 1 个联系人</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"全部"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"收藏"</string>
-    <string name="callBack" msgid="5498224409038809224">"回电"</string>
-    <string name="callAgain" msgid="3197312117049874778">"重拨"</string>
-    <string name="returnCall" msgid="8171961914203617813">"回拨"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"将“<xliff:g id="EMAIL">%s</xliff:g>”添加到通讯录？"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"联系人照片"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"添加"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"第 <xliff:g id="CURRENT_NUMBER">%s</xliff:g> 个联系人（共 <xliff:g id="TOTAL_NUMBER">%s</xliff:g> 个）"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"联系人姓名"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"未找到可处理此操作的应用。"</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"点击即可返回上一屏幕"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"添加电话号码"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"添加电子邮件地址"</string>
     <string name="missing_app" msgid="1466111003546611387">"未找到可处理此操作的应用。"</string>
     <string name="menu_share" msgid="943789700636542260">"分享"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"添加到通讯录"</string>
-    <string name="share_via" msgid="563121028023030093">"联系人分享方式"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"要在哪个帐号下创建群组？"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"添加"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">通过以下应用分享联系人</item>
+      <item quantity="one">通过以下应用分享联系人</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"选择帐号"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"创建标签"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"重命名标签"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"标签名称"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"标签名称"</string>
     <string name="audio_chat" msgid="2535716629358298691">"语音聊天"</string>
     <string name="video_chat" msgid="1872255818640336072">"视频聊天"</string>
-    <string name="connections" msgid="8098440723172028350">"社交网络"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"添加社交网络"</string>
-    <string name="recent" msgid="2659189233141493004">"最新"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"最新动态"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> 联系人"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g>帐号"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"无法通过此应用修改。"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"无法在此设备上修改。"</string>
     <string name="take_photo" msgid="7496128293167402354">"拍照"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"拍摄新照片"</string>
     <string name="pick_photo" msgid="2129509985223564942">"选择照片"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"选择新照片"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"正在更新联系人列表。"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"正在搜索..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"已选收件人"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"全部收件人"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"全选"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"取消全选"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"添加新条目"</string>
-    <string name="add_organization" msgid="7311893231158291197">"添加工作单位"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"日期"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"群组名称"</string>
-    <string name="change_photo" msgid="8530597935483526383">"更改"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"主照片"</string>
-    <string name="description_star" msgid="2605854427360036550">"收藏"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"编辑联系人"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"要将当前联系人与所选联系人关联吗？"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"标签"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"取消"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"返回"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"关闭"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"要切换至编辑所选联系人吗？系统会复制您到目前为止输入的所有信息。"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"复制到“我的联系人”"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"添加到“我的联系人”"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"目录类型：<xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"自定义"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"设置"</string>
     <string name="menu_settings" msgid="377929915873428211">"设置"</string>
     <string name="menu_help" msgid="1680178646764069976">"帮助和反馈"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"显示选项"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>，<xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"电话号码"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"添加到通讯录"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"添加至联系人"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"关闭"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"包含年份"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"联系人"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"正在加载..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"创建新联系人"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"添加帐号"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"导入联系人"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"创建新群组"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"创建新群组"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> 个群组</item>
-      <item quantity="one">1 个群组</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"要删除群组“<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”（并不会删除联系人本身）吗？"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>中有 <xliff:g id="COUNT_2">%1$d</xliff:g> 个联系人</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g>中有 <xliff:g id="COUNT_0">%1$d</xliff:g> 个联系人</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> 个联系人</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 个联系人</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"导入"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"新建…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"要删除“<xliff:g id="GROUP_LABEL">%1$s</xliff:g>”标签吗？（系统不会删除联系人。）"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"请先输入联系人姓名，然后再将其与其他联系人关联。"</string>
     <string name="copy_text" msgid="3257145021583508761">"复制到剪贴板"</string>
     <string name="set_default" msgid="4417505153468300351">"设置默认值"</string>
     <string name="clear_default" msgid="7193185801596678067">"清除默认值"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"文本已复制"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"要舍弃您所做的更改吗？"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"舍弃"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"设置我的个人资料"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"键入联系人的姓名"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"群组名称"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"要舍弃更改吗？"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"舍弃"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"取消"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"要舍弃自定义设置吗？"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"搜索联系人"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"移除联系人"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"我的本地个人资料"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"我的<xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>个人资料"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"显示所有联系人"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"登录Google帐号可获得更棒的通讯录使用体验。\n\n• 可通过任意浏览器访问。\n• 安全妥善地备份您的联系人数据。"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"即使手机丢了，也能确保您的联系人信息的安全性：与在线服务同步。"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"添加帐号"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"系统不会备份您的新联系人。要添加用于在线备份联系人的帐号吗？"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"请花一点时间添加帐号，以便将联系人备份到 Google。"</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"新建的联系人将保存到 <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>。"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"选择用来保存新建联系人的默认帐号："</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"新增联系人"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"创建新联系人"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"修改联系人"</string>
-    <string name="keep_local" msgid="1258761699192993322">"本地保存"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"只能查看"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"选择要修改的联系人"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"已关联的联系人"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"添加"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"取消关联"</string>
     <string name="add_account" msgid="8201790677994503186">"添加帐号"</string>
     <string name="add_new_account" msgid="5748627740680940264">"添加新帐号"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"导出数据库文件"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"添加新联系人"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"创建新联系人"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"查看更多"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"隐藏部分"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"查看全部"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"最近"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"近期活动"</string>
     <string name="about_card_title" msgid="2920942314212825637">"简介"</string>
-    <string name="send_message" msgid="8938418965550543196">"发送短信"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"正在创建个人副本…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"昨天"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"正在创建个人副本..."</string>
     <string name="tomorrow" msgid="6241969467795308581">"明天"</string>
     <string name="today" msgid="8041090779381781781">"今天"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"今天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"明天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>，<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>，<xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"（未命名的活动）"</string>
     <string name="date_time_set" msgid="4761419824439606690">"设置"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"聊天工具"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"网站"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"活动"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"关系"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"帐号"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"姓名"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"电子邮件地址"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"电话号码"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"照片"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"点按即可展开联系人编辑器。"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"点按即可收起联系人编辑器。"</string>
     <string name="content_description_directions" msgid="2686791825798189335">"到特定地点的路线"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"近期短信：<xliff:g id="MESSAGE_BODY">%s</xliff:g>。<xliff:g id="PHONE_NUMBER">%s</xliff:g>，<xliff:g id="DATE">%s</xliff:g>。点按可回复。"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"近期短信：<xliff:g id="MESSAGE_BODY">%1$s</xliff:g>。<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>，<xliff:g id="DATE">%3$s</xliff:g>。点按可回复。"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"来电"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"外拨电话"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"未接电话"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"近期通话：<xliff:g id="CALL_TYPE">%s</xliff:g>，<xliff:g id="PHONE_NUMBER">%s</xliff:g>，<xliff:g id="DATE">%s</xliff:g>。点按可回拨。"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"近期通话：<xliff:g id="CALL_TYPE">%1$s</xliff:g>，<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>，<xliff:g id="DATE">%3$s</xliff:g>。点按可回拨。"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"您：<xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"请将联系人的环聊帐号信息输入到电子邮件地址字段或电话号码字段，以便获得更佳的环聊使用体验。"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"更多字段"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"更换照片"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"无法开启编辑器。"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"保存到"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"目前正在保存到 <xliff:g id="ACCOUNT_NAME">%s</xliff:g>。点按两次可选择其他帐号。"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">已关联的联系人（<xliff:g id="COUNT">%d</xliff:g> 位）</item>
-      <item quantity="one">已关联的联系人</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> 位已关联的联系人"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"更多字段"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"更改联系人照片"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"添加联系人照片"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"联系人照片"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"无法开启编辑器。"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"保存到"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"无法修改来自 <xliff:g id="ACCOUNT">%s</xliff:g> 的联系人信息"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"关联联系人"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"取消"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 位可能重复的联系人</item>
-      <item quantity="one">1 位可能重复的联系人</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 位已关联的联系人</item>
-      <item quantity="one">1 位已关联的联系人</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g> <xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"此联系人"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"可能重复的联系人"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"这些联系人可能是同一个人。您可以将它们关联在一起，以合并成一个联系人。"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"已关联的联系人"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"来自您的帐号"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"拍摄照片"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"所有照片"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"选择照片"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"来源：<xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"删除<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"删除<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"删除<xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"未选中来自 <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> 的照片"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"已选中来自 <xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g> 的照片"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"未选中来自未知帐号的照片"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"已选中来自未知帐号的照片"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"正在更新联系人列表，以反映语言的变更。\n\n请稍候..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"添加号码"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"屏蔽号码"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"添加号码或搜索联系人"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"要取消屏蔽 <xliff:g id="NUMBER">%1$s</xliff:g> 吗？"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"取消屏蔽"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"要屏蔽 <xliff:g id="NUMBER">%1$s</xliff:g> 吗？"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"屏蔽"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"已屏蔽 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"已取消屏蔽 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> 无效。"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"来电拦截功能已暂时关闭"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"来电拦截功能已停用，因为您在过去 48 小时内使用该手机拨打了紧急服务电话。系统会在 48 小时的期限结束后自动重新启用该功能。"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"导入"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看号码"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"添加号码"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"来电拦截功能将停用 48 小时"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"此功能已停用，因为您拨打了紧急呼救电话。"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"撤消"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> 已被屏蔽。"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"取消屏蔽号码"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的详细联系信息"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"导入失败"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"导入号码"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"要搜索您的联系人，请开启“通讯录”权限。"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"开启"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"建议"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"新徽章"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"打开抽屉式导航栏"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"关闭抽屉式导航栏"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"“<xliff:g id="LABEL_NAME">%s</xliff:g>”标签"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"标签"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"帐号"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"同时显示日历和短信记录"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"活动和信息"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"活动"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"信息"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"建议"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"让您的通讯录井井有条，方便使用"</string>
+    <string name="undo" msgid="1425165101664071422">"撤消"</string>
+    <string name="call_custom" msgid="6385303130912713318">"拨打<xliff:g id="CUSTOM_LABEL">%s</xliff:g>电话号码"</string>
+    <string name="call_home" msgid="1990519474420545392">"拨打住宅电话号码"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"呼叫手机"</string>
+    <string name="call_work" msgid="5328785911463744028">"呼叫单位"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"呼叫单位传真"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"拨打住宅传真号码"</string>
+    <string name="call_pager" msgid="9003902812293983281">"呼叫寻呼机"</string>
+    <string name="call_other" msgid="8563753966926932052">"拨打电话"</string>
+    <string name="call_callback" msgid="1910165691349426858">"呼叫回拨号码"</string>
+    <string name="call_car" msgid="3280537320306436445">"呼叫车载电话"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"呼叫公司总机"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"呼叫 ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"呼叫总机"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"呼叫传真号码"</string>
+    <string name="call_radio" msgid="8296755876398357063">"呼叫无线装置"</string>
+    <string name="call_telex" msgid="2223170774548648114">"呼叫电报"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"拨打 TTY/TDD 号码"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"呼叫单位手机"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"呼叫单位寻呼机"</string>
+    <string name="call_assistant" msgid="670941612175068337">"拨打<xliff:g id="CUSTOM_LABEL">%s</xliff:g>的电话"</string>
+    <string name="call_mms" msgid="6274041545876221437">"呼叫彩信号码"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g>（拨打电话）"</string>
+    <string name="sms_custom" msgid="415060214233647603">"向<xliff:g id="CUSTOM_LABEL">%s</xliff:g>电话号码发短信"</string>
+    <string name="sms_home" msgid="7524332261493162995">"向住宅电话号码发短信"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"向手机发送短信"</string>
+    <string name="sms_work" msgid="2269624156655267740">"向单位电话发送短信"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"向单位传真机发送短信"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"向住宅传真号码发短信"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"向寻呼机发送文字消息"</string>
+    <string name="sms_other" msgid="806127844607642331">"发短信"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"向回拨号码发送短信"</string>
+    <string name="sms_car" msgid="7444227058437359641">"向车载电话发送短信"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"向公司总机发送短信"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"向 ISDN 发送短信"</string>
+    <string name="sms_main" msgid="8621625784504541679">"向总机发送短信"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"向传真号码发送短信"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"向无线装置发送短信"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"向电报发送短信"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"向 TTY/TDD 号码发送短信"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"向单位手机发送短信"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"向单位寻呼机发送短信"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"向<xliff:g id="ASSISTANT">%s</xliff:g>发短信"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"向彩信号码发送短信"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g>（发送短信）"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"发起视频通话"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"是否清除常用联系人？"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"此操作会清除“通讯录”和“电话”应用中的常用联系人列表，并强制电子邮件应用重新获取您最常使用的联系地址。"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"正在清除常用联系人…"</string>
+    <string name="status_available" msgid="5586870015822828392">"在线"</string>
+    <string name="status_away" msgid="1838861100379804730">"离开"</string>
+    <string name="status_busy" msgid="9147992455450257136">"忙碌"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"其他"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"目录"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"工作目录"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"所有联系人"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g>的快捷联系方式"</string>
+    <string name="missing_name" msgid="8745511583852904385">"（无姓名）"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"经常联系的人"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"所有拥有电话号码的联系人"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"工作资料联系人"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"查看更新"</string>
+    <string name="account_phone" msgid="7128032778471187553">"设备"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM 卡"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"姓名"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"昵称"</string>
+    <string name="name_given" msgid="4280790853455320619">"名字"</string>
+    <string name="name_family" msgid="7466985689626017037">"姓氏"</string>
+    <string name="name_prefix" msgid="59756378548779822">"姓名前缀"</string>
+    <string name="name_middle" msgid="8467433655992690326">"中间名"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"姓名后缀"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"姓名拼音"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"名字拼音"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"中间名拼音"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"姓氏拼音"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"电话"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"电子邮件"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"地址"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"即时聊天工具"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"组织"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"关系"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"特别的日子"</string>
+    <string name="sms" msgid="1756857139634224222">"短信"</string>
+    <string name="postal_address" msgid="8765560217149624536">"地址"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"公司"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"职位"</string>
+    <string name="label_notes" msgid="8337354953278341042">"备注"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"自定义"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"网站"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"标签"</string>
+    <string name="email_home" msgid="8573740658148184279">"向住宅邮箱发送电子邮件"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"向手机发送电子邮件"</string>
+    <string name="email_work" msgid="2807430017302722689">"向单位邮箱发送电子邮件"</string>
+    <string name="email_other" msgid="3454004077967657109">"发送电子邮件"</string>
+    <string name="email_custom" msgid="5536404237099078802">"向<xliff:g id="CUSTOM_LABEL">%s</xliff:g>邮箱发送电子邮件"</string>
+    <string name="email" msgid="5668400997660065897">"电子邮件"</string>
+    <string name="postal_street" msgid="8133143961580058972">"街道"</string>
+    <string name="postal_city" msgid="6597491300084895548">"城市"</string>
+    <string name="postal_region" msgid="6045263193478437672">"省/直辖市/自治区"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"邮编"</string>
+    <string name="postal_country" msgid="7638264508416368690">"国家/地区"</string>
+    <string name="map_home" msgid="1243547733423343982">"查看住宅地址"</string>
+    <string name="map_work" msgid="1360474076921878088">"查看单位地址"</string>
+    <string name="map_other" msgid="3817820803587012641">"查看地址"</string>
+    <string name="map_custom" msgid="8761800628069473526">"查看<xliff:g id="CUSTOM_LABEL">%s</xliff:g>地址"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"使用 AIM 聊天"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"使用 Windows Live 聊天"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"使用雅虎软件聊天"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"使用 Skype 聊天"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"使用 QQ 聊天"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"使用 Google Talk 聊天"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"使用 ICQ 聊天"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"使用 Jabber 聊天"</string>
+    <string name="chat" msgid="9025361898797412245">"聊天"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"删除"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"显示更多姓名字段"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"收起姓名字段"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"显示更多姓名拼音字段"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"收起姓名拼音字段"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"展开"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"收起"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"已展开"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"已收起"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"所有联系人"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"已加星标"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"自定义"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"联系人"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"其他所有联系人"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"所有联系人"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"删除同步群组"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"添加同步群组"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"更多群组…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"如果您停止同步“<xliff:g id="GROUP">%s</xliff:g>”，将同时停止同步所有未分组的联系人。"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"正在保存显示选项…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"自定义视图"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"将导入的联系人保存到："</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM 卡"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM 卡“<xliff:g id="SIM_NAME">%1$s</xliff:g>”"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d 位联系人</item>
+      <item quantity="one">1 位联系人</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> 位联系人（在 <xliff:g id="PHONE_NUMBER_3">^2</xliff:g> 中）</item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> 位联系人（在 <xliff:g id="PHONE_NUMBER_1">^2</xliff:g> 中）</item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf 文件"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"没有可导入的对象"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"要从 vCard 中导入联系人吗？"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"要取消导入 <xliff:g id="FILENAME">%s</xliff:g> 吗​​？"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"要取消导出 <xliff:g id="FILENAME">%s</xliff:g> 吗​​？"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"无法取消导入/导出 vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"未知错误。"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"无法打开“<xliff:g id="FILE_NAME">%1$s</xliff:g>”：<xliff:g id="EXACT_REASON">%2$s</xliff:g>。"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"无法启动导出程序：“<xliff:g id="EXACT_REASON">%s</xliff:g>”。"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"没有可导出的联系人。"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"您已停用一项必需权限。"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"导出时出错：“<xliff:g id="EXACT_REASON">%s</xliff:g>”。"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O 错误"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"内存不足。该文件可能过大。"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"该格式不受支持。"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"导出 <xliff:g id="FILENAME">%s</xliff:g> 已完成。"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"已成功导出联系人。"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"联系人导出已完成，点击通知即可分享联系人。"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"点按即可分享联系人。"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"已取消导出 <xliff:g id="FILENAME">%s</xliff:g>。"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"正在导出联系人数据"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"正在导出联系人数据。"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"无法获取数据库信息。"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"没有可导出的联系人。"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard 制作程序未正确启动。"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"无法导出"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"未导出联系人数据。\n原因：“<xliff:g id="FAIL_REASON">%s</xliff:g>”"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"正在导入<xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"无法读取 vCard 数据"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"导入 vCard <xliff:g id="FILENAME">%s</xliff:g> 已完成"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"已取消导入 <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> 将在稍后导入。"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"系统稍后就会导入该文件。"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard 导入请求遭拒，请稍后重试。"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"即将导出联系人。"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard 导出请求遭拒，请稍后重试。"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"联系人"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"正在将 vCard 缓存到本地临时存储空间。实际导入操作即将开始。"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"无法导入 vCard。"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"已通过 NFC 收到联系人信息"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"正在缓存..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"正在导入第 <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> 个（共 <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> 个）联系人：<xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"导出为 .vcf 文件"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"排序方式"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"姓名拼音"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"一律显示"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"字段为空时将其隐藏"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"名字"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"姓氏"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"姓名格式"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"名字在前"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"姓氏在前"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"帐号"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"用于保存新联系人的默认帐号"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"我的信息"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"设置您的个人资料"</string>
+    <string name="setting_about" msgid="7014388749752042863">"关于通讯录"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"分享收藏的联系人"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"分享所有联系人"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"无法分享联系人。"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"导出联系人"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"从以下来源导入联系人"</string>
+    <string name="share_error" msgid="948429331673358107">"无法分享此联系人。"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"没有可分享的联系人。"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"要显示的联系人"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"要显示的联系人"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"自定义视图"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"保存"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"搜索联系人"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"收藏"</string>
+    <string name="menu_import" msgid="6107961135813836467">"导入"</string>
+    <string name="menu_export" msgid="2658783911863503902">"导出"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"已屏蔽的号码"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"来源：<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"时间：<xliff:g id="DATE">%1$s</xliff:g>，来源：<xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"停止搜索"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"清除搜索内容"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"帐号"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"一律使用这张卡进行通话"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"拨打电话并发送备注"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"输入要在拨打电话时发送的备注…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"发送并拨打电话"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"版本号"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"开放源代码许可"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"开放源代码软件的许可详情"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"隐私权政策"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"服务条款"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"开放源代码许可"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"无法打开网址。"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"已选中 <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"未选中 <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"发起视频通话"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"删除"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"省略号"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> 分钟 <xliff:g id="SECONDS">%2$s</xliff:g> 秒"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> 小时 <xliff:g id="MINUTES_1">%2$s</xliff:g> 分钟 <xliff:g id="SECONDS">%3$s</xliff:g> 秒"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"此快捷方式已失效"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"联系人已被移除"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"导入"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"选择联系人"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM 卡上没有联系人"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"联系人已在列表中"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">已导入 <xliff:g id="COUNT">%d</xliff:g> 位 SIM 卡联系人</item>
+      <item quantity="one">已导入 1 位 SIM 卡联系人</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"无法导入 SIM 卡联系人"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"从 SIM 卡导入"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"取消"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"自动同步功能已关闭。点按即可开启。"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"关闭"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"帐号同步功能已关闭。点按即可开启。"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"要开启自动同步功能吗？"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"您对所有应用和帐号（不只是 Google 通讯录）所做的更改都会在网络和您的设备之间保持同步。"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"开启"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"无网络连接"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM 卡"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"显示更多"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"已导入 SIM 卡联系人"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"导入失败"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"无法导入 SIM 卡中的联系人"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"正在导入 SIM 卡联系人"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 1c8b249..3e53b59 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"通訊錄"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"通訊錄"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"查看聯絡人"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"編輯聯絡人"</string>
     <string name="contactsList" msgid="8661624236494819731">"通訊錄"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"新增聯絡人"</string>
     <string name="shortcutContact" msgid="749243779392912958">"聯絡人"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"直接撥號"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"私人訊息"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"選擇聯絡人捷徑"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"選擇撥打號碼"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"選擇傳訊號碼"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"選擇聯絡人"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"新增至通訊錄"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"選擇聯絡人"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"選取"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"建立新聯絡人"</string>
-    <string name="starredList" msgid="4817256136413959463">"已加星號"</string>
-    <string name="frequentList" msgid="7154768136473953056">"常用聯絡人"</string>
-    <string name="strequentList" msgid="5640192862059373511">"我的最愛"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"聯絡人詳細資料"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"編輯聯絡人"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"建立聯絡人"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"編輯群組"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"建立群組"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"關於"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"更新"</string>
     <string name="searchHint" msgid="8482945356247760701">"搜尋聯絡人"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"查看聯絡人"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"新增至我的最愛"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"從「我的最愛」中移除"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"已從我的最愛中移除"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"編輯"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"刪除"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"變更相片"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"新增到主畫面上"</string>
-    <string name="menu_call" msgid="3992595586042260618">"致電聯絡人"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"傳送簡訊至聯絡人"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"建立捷徑"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"解除連結"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"編輯"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"刪除"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"新增聯絡人"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"新增群組"</string>
-    <string name="splitConfirmation" msgid="7342030840130187290">"要解除連結此聯絡人為多個聯絡人嗎？"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"移除聯絡人"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"重新命名標籤"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"刪除標籤"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"新增聯絡人"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"選取聯絡人"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"新增聯絡人"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"從標籤中移除"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"建立標籤"</string>
+    <string name="splitConfirmation" msgid="7342030840130187290">"要解除連結，並設為多個聯絡人嗎？"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"解除連結"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"您要儲存變更，並解除連結此聯絡人為多個聯絡人嗎？"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"儲存並解除連結"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"您要儲存變更，並連結選取的聯絡人嗎？"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"儲存並連結"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"正在連結"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"正在解除連結"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"連結"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"查看已連結的聯絡人"</string>
     <string name="menu_save" msgid="1727844363591825909">"儲存"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"連結聯絡人"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"選擇您想與<xliff:g id="NAME">%s</xliff:g>連結的聯絡人："</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"顯示所有聯絡人"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"選擇要連結至<xliff:g id="NAME">%s</xliff:g>的聯絡人："</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"建議的聯絡人"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"所有聯絡人"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"已連結<xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"已連結聯絡人"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"已刪除<xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"已刪除<xliff:g id="NAME_0">%1$s</xliff:g>和<xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"已刪除<xliff:g id="NAME_0">%1$s</xliff:g>、<xliff:g id="NAME_1">%2$s</xliff:g>、<xliff:g id="NAME_2">%3$s</xliff:g>…"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">已刪除聯絡人</item>
       <item quantity="one">已刪除聯絡人</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 位聯絡人</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 位聯絡人</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> 位聯絡人 · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 位聯絡人 · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"來自 Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"來自「<xliff:g id="ACCOUNT">%s</xliff:g>」"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"設定鈴聲"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"所有來電轉到留言信箱"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"只限讀取帳戶的聯絡人將無法刪除，只可隱藏。"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"隱藏"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"即將刪除的聯絡人的資料來自多個帳戶。只限讀取帳戶的資料將會隱藏，而不會刪除。"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"您必須選擇最少兩個聯絡人方可連結。"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"要連結已選取的聯絡人嗎？"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"連結"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"轉駁到留言信箱"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"取消轉駁到留言信箱"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"這是唯讀聯絡人，因此無法刪除，但可加以隱藏。"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"隱藏聯絡人"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"此聯絡人的唯讀帳戶將會隱藏，而不會刪除。"</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"要刪除此聯絡人嗎？"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"要刪除已選取的聯絡人嗎？"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"只限讀取帳戶的聯絡人將無法刪除，只可隱藏。"</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"刪除此聯絡人將會刪除多個帳戶的資料。"</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"要刪除此聯絡人嗎？"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"刪除"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"放棄變更"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"聯絡人不存在。"</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"已將聯絡人增至主畫面"</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"已將<xliff:g id="NAME">%s</xliff:g>增至主畫面。"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"建立新聯絡人"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"建立新聯絡人"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"機構"</item>
-    <item msgid="7196592230748086755">"備註"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"平板電腦中沒有相片可供選用。"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"手機中沒有相片可供選用。"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"裝置上沒有相片可供選用。"</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"聯絡人相片"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"自訂標籤名稱"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"直接將來電轉到留言信箱"</string>
     <string name="removePhoto" msgid="4898105274130284565">"移除相片"</string>
-    <string name="noContacts" msgid="4955659076981974652">"沒有聯絡人"</string>
-    <string name="noGroups" msgid="8614664663561385253">"沒有群組。"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"如要建立群組，您需要有一個帳戶。"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"這個群組中沒有成員。"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"如要新增成員，請編輯群組。"</string>
-    <string name="savingContact" msgid="4075751076741924939">"正在儲存聯絡人…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"您的聯絡人名單是空白的"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"沒有任何聯絡人有此標籤"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"此帳戶中沒有聯絡人"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"您的聯絡人名單是空白的"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g>已儲存"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"聯絡人記錄已儲存"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"已解除連結聯絡人"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"無法儲存聯絡人變更。"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"無法解除連結聯絡人。"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"無法連結聯絡人。"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"儲存聯絡人時發生錯誤。"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"無法儲存聯絡人相片變更。"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"群組已儲存。"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"無法儲存群組變更。"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 位有電話號碼的聯絡人</item>
-      <item quantity="one">1 位有電話號碼的聯絡人</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"所有聯絡人資訊都沒有電話號碼"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">找到 <xliff:g id="COUNT">%d</xliff:g> 位聯絡人</item>
-      <item quantity="one">找到 1 位聯絡人</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"無法儲存聯絡人變更"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"無法解除連結聯絡人"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"無法連結聯絡人"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"儲存聯絡人時發生錯誤"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"無法儲存聯絡人相片變更"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"無法載入標籤"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"已刪除標籤"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"已建立標籤"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"無法建立標籤"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"已更新標籤"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"已從標籤中移除"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"已新增至標籤"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"無法儲存標籤變更"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"該標籤已存在"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"部分聯絡人沒有電郵。"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"部分聯絡人沒有電話號碼。"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"傳送電子郵件"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"傳送訊息"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"選擇聯絡人"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"傳送"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"沒有聯絡人"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">找到 <xliff:g id="COUNT">%d</xliff:g> 位聯絡人</item>
-      <item quantity="one">找到 1 位聯絡人</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"全部"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"最愛聯絡人"</string>
-    <string name="callBack" msgid="5498224409038809224">"回撥電話"</string>
-    <string name="callAgain" msgid="3197312117049874778">"重撥"</string>
-    <string name="returnCall" msgid="8171961914203617813">"回覆來電"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"要將「<xliff:g id="EMAIL">%s</xliff:g>」加到通訊錄嗎？"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"聯絡人相片"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"加號"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"第 <xliff:g id="CURRENT_NUMBER">%s</xliff:g> 位聯絡人，共 <xliff:g id="TOTAL_NUMBER">%s</xliff:g> 位"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"您的聯絡人姓名"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"找不到可以處理這個操作的應用程式。"</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"按一下即可返回上一個畫面"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"新增電話號碼"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"新增電郵"</string>
     <string name="missing_app" msgid="1466111003546611387">"找不到可以處理這個操作的應用程式。"</string>
     <string name="menu_share" msgid="943789700636542260">"分享"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"加入通訊錄"</string>
-    <string name="share_via" msgid="563121028023030093">"使用下列應用程式分享聯絡人資訊："</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"選擇帳戶以建立群組"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"新增"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">使用下列應用程式分享聯絡人資訊：</item>
+      <item quantity="one">使用下列應用程式分享聯絡人資訊：</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"選擇帳戶"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"建立標籤"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"重新命名標籤"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"標籤名稱"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"標籤名稱"</string>
     <string name="audio_chat" msgid="2535716629358298691">"話音通訊"</string>
     <string name="video_chat" msgid="1872255818640336072">"視像通訊"</string>
-    <string name="connections" msgid="8098440723172028350">"聯繫"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"加入聯繫"</string>
-    <string name="recent" msgid="2659189233141493004">"近況"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"近期動態"</string>
     <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> 聯絡人"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> 帳戶"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"無法以這個應用程式編輯。"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"無法在這部裝置上編輯。"</string>
     <string name="take_photo" msgid="7496128293167402354">"拍照"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"拍攝新相片"</string>
     <string name="pick_photo" msgid="2129509985223564942">"選擇相片"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"選取新相片"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"正在更新聯絡人清單。"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"正在搜尋..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"顯示已選取的項目"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"顯示全部"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"全選"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"全部取消選取"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"新增"</string>
-    <string name="add_organization" msgid="7311893231158291197">"新增機構"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"日期"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"群組名稱"</string>
-    <string name="change_photo" msgid="8530597935483526383">"變更"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"主要相片"</string>
-    <string name="description_star" msgid="2605854427360036550">"我的最愛"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"編輯聯絡人"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"要將目前的聯絡人連結至已選的聯絡人嗎？"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"標籤"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"取消"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"返回"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"關閉"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"要切換至編輯所選聯絡人嗎？您目前已輸入的資訊將會被複製。"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"複製到我的通訊錄"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"新增至通訊錄"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"名錄 <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"自訂"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"設定"</string>
     <string name="menu_settings" msgid="377929915873428211">"設定"</string>
     <string name="menu_help" msgid="1680178646764069976">"說明和意見反映"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"顯示選項"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>，<xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"電話號碼"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"加入通訊錄"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"加入聯絡人記錄"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"關閉"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"包含年份"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"聯絡人"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"正在載入..."</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"建立新聯絡人"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"新增帳戶"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"匯入通訊錄"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"建立新群組"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"建立新群組"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> 個群組</item>
-      <item quantity="one">1 個群組</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"要刪除「<xliff:g id="GROUP_LABEL">%1$s</xliff:g>」群組嗎？(這並不會刪除聯絡人本身。)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g> 中有 <xliff:g id="COUNT_2">%1$d</xliff:g> 人</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g> 中有 <xliff:g id="COUNT_0">%1$d</xliff:g> 人</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> 人</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 人</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"匯入"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"建立新…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"要刪除「<xliff:g id="GROUP_LABEL">%1$s</xliff:g>」標籤嗎？(這並不會刪除聯絡人本身。)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"請先輸入聯絡人姓名，然後才連結。"</string>
     <string name="copy_text" msgid="3257145021583508761">"複製到剪貼簿"</string>
     <string name="set_default" msgid="4417505153468300351">"設為預設"</string>
     <string name="clear_default" msgid="7193185801596678067">"清除預設值"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"文字已複製"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"要丟棄更改嗎？"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"捨棄"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"設定我的個人資料"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"輸入聯絡人名字"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"群組名稱"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"捨棄變更？"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"捨棄"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"取消"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"要捨棄自訂內容嗎？"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"搜尋聯絡人"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"移除聯絡人"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"我的本機個人資料"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"我的 <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> 個人資料"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"顯示所有聯絡人"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"聯絡人與 Google 帳戶搭配使用的效能更卓越。\n\n• 透過任何網絡瀏覽器皆可存取。\n• 安全備份您的聯絡人。"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"即使丟失手機，也要確保通訊錄安全：與網上服務保持同步。"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"新增帳戶"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"您的新聯絡人資料不會備份。要新增可在網上備份聯絡人資料的帳戶嗎？"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"請花點時間新增帳戶，以便將您的聯絡人備份到 Google。"</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"新聯絡人將會儲存至 <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>。"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"為新聯絡人選擇預設帳戶："</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"新增聯絡人"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"建立新聯絡人"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"編輯聯絡人"</string>
-    <string name="keep_local" msgid="1258761699192993322">"保留在本機中"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"僅供檢視"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"選擇要編輯的聯絡人"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"已連結的聯絡人"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"新增"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"解除連結"</string>
     <string name="add_account" msgid="8201790677994503186">"新增帳戶"</string>
     <string name="add_new_account" msgid="5748627740680940264">"新增帳戶"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"匯出資料庫檔案"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"新增聯絡人"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"建立新聯絡人"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"顯示更多"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"顯示較少"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"顯示全部"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"近期"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"近期活動"</string>
     <string name="about_card_title" msgid="2920942314212825637">"關於"</string>
-    <string name="send_message" msgid="8938418965550543196">"傳送訊息"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"正在建立個人副本…"</string>
-    <string name="yesterday" msgid="6840858548955018569">"昨天"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"正在建立個人副本…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"明天"</string>
     <string name="today" msgid="8041090779381781781">"今天"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"今天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"明天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g><xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(未命名活動)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"設定"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"即時通訊"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"網站"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"活動"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"關係"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"帳戶"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"名稱"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"電郵"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"電話"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"相片"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"按一下以展開聯絡人編輯器。"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"按一下以收合聯絡人編輯器。"</string>
     <string name="content_description_directions" msgid="2686791825798189335">"規劃前往特定地點的路線"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"最近短訊 (<xliff:g id="MESSAGE_BODY">%s</xliff:g>、<xliff:g id="PHONE_NUMBER">%s</xliff:g>、<xliff:g id="DATE">%s</xliff:g>)。按一下即可回覆"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"最近短訊 (<xliff:g id="MESSAGE_BODY">%1$s</xliff:g>、<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>、<xliff:g id="DATE">%3$s</xliff:g>)。按一下即可回覆"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"來電"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"致電"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"未接來電"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"最近通話 (<xliff:g id="CALL_TYPE">%s</xliff:g>、<xliff:g id="PHONE_NUMBER">%s</xliff:g>、<xliff:g id="DATE">%s</xliff:g>)。按一下即可回電"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"最近通話 (<xliff:g id="CALL_TYPE">%1$s</xliff:g>、<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>、<xliff:g id="DATE">%3$s</xliff:g>)。按一下即可回電"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"您：<xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"當您在電郵欄或手機欄中輸入個人的 Hangouts 識別碼時，Hangouts 會提供更卓越的服務。"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"更多欄位"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"變更相片"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"無法打開編輯器。"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"正在儲存至以下帳戶："</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"目前儲存至 <xliff:g id="ACCOUNT_NAME">%s</xliff:g>。連按兩下即可選擇另一個帳戶。"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">已連結的聯絡人 (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one">已連結的聯絡人</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> 個已連結的聯絡人"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"更多欄位"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"變更聯絡人相片"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"新增聯絡人相片"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"聯絡人相片"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"無法打開編輯器。"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"儲存至："</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"無法編輯 <xliff:g id="ACCOUNT">%s</xliff:g> 的聯絡人資料"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"連結聯絡人"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"取消"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 個可能重複的聯絡人</item>
-      <item quantity="one">1 個可能重複的聯絡人</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other">已連結 <xliff:g id="COUNT">%d</xliff:g> 個聯絡人</item>
-      <item quantity="one">已連結 1 個聯絡人</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"這個聯絡人"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"可能重複"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"這些聯絡人可能是同一個人，您可連結兩者成為單一聯絡人。"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"已連結的聯絡人"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"來自您的帳戶"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"拍照"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"所有相片"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"選擇相片"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"來自 <xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"刪除<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"刪除<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"刪除<xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"未選擇 <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> 的相片"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"已選擇 <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> 的相片"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"未勾選不明帳戶中的相片"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"已勾選不明帳戶中的相片"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"正在更新聯絡人清單以反映語言變更。\n\n請稍候…"</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"新增電話號碼"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"封鎖號碼"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"新增號碼或搜尋聯絡人"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"要解除封鎖 <xliff:g id="NUMBER">%1$s</xliff:g> 嗎？"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"解除封鎖"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"要封鎖 <xliff:g id="NUMBER">%1$s</xliff:g> 嗎？"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"封鎖"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"已解除封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> 無效。"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"暫時關閉來電封鎖功能"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"您在過去 48 小時內曾經使用此手機聯絡緊急服務，因此來電封鎖功能已停用。系統會在 48 小時期限結束後自動重新啟用功能。"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"匯入"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看電話號碼"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"新增電話號碼"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"已停用來電封鎖 (48 小時)"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"已撥打緊急電話，已停用來電封鎖功能。"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"復原"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>。"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"解除封鎖號碼"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的聯絡人詳細資料"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"匯入失敗"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"匯入號碼"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"如要搜尋聯絡人，請開啟「通訊錄」權限。"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"開放權限"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"建議"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"新"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"開啟導覽匣"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"關閉導覽匣"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g>標籤"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"標籤"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"帳戶"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"一併顯示記錄"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"活動和訊息"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"活動"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"訊息"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"建議"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"讓您的聯絡人有條不紊並更加實用"</string>
+    <string name="undo" msgid="1425165101664071422">"復原"</string>
+    <string name="call_custom" msgid="6385303130912713318">"致電<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"撥打住宅電話"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"致電手機"</string>
+    <string name="call_work" msgid="5328785911463744028">"致電公司電話"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"致電公司傳真"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"致電住宅傳真"</string>
+    <string name="call_pager" msgid="9003902812293983281">"致電傳呼機"</string>
+    <string name="call_other" msgid="8563753966926932052">"致電"</string>
+    <string name="call_callback" msgid="1910165691349426858">"撥打回撥電話"</string>
+    <string name="call_car" msgid="3280537320306436445">"致電汽車電話"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"致電公司代表號"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"撥打 ISDN 電話"</string>
+    <string name="call_main" msgid="6082900571803441339">"致電主要電話"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"致電其他傳真"</string>
+    <string name="call_radio" msgid="8296755876398357063">"致電電台"</string>
+    <string name="call_telex" msgid="2223170774548648114">"致電 Telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"致電 TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"致電公司手機"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"致電公司傳呼機"</string>
+    <string name="call_assistant" msgid="670941612175068337">"致電<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"致電 MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (通話)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"傳送短訊給<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"傳送短訊至住宅電話"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"傳送短訊至手機"</string>
+    <string name="sms_work" msgid="2269624156655267740">"傳送短訊至公司電話"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"傳送短訊至公司傳真"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"傳送短訊至住宅傳真"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"傳送短訊至傳呼機"</string>
+    <string name="sms_other" msgid="806127844607642331">"傳送短訊"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"傳送短訊至回撥電話"</string>
+    <string name="sms_car" msgid="7444227058437359641">"傳送短訊至車用電話"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"傳送短訊至公司代表號"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"傳送短訊至 ISDN 電話"</string>
+    <string name="sms_main" msgid="8621625784504541679">"傳送短訊至主要電話"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"傳送短訊至傳真"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"傳送短訊至電台"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"傳送短訊至電報電話"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"傳送短訊至 TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"傳送短訊至公司手機"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"傳送短訊至公司傳呼機"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"傳送短訊至 <xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"傳送短訊至 MMS 電話"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (訊息)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"進行視像通話"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"清除常用聯絡人？"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"您將清除「聯絡人」應用程式和「電話」應用程式中的常用聯絡人名單，並強制電子郵件應用程式重新取得您的寄件偏好設定。"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"正在清除常用聯絡人…"</string>
+    <string name="status_available" msgid="5586870015822828392">"在線"</string>
+    <string name="status_away" msgid="1838861100379804730">"離開"</string>
+    <string name="status_busy" msgid="9147992455450257136">"忙碌"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"其他"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"名錄"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"工作目錄"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"全部聯絡人"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"快速聯絡<xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(沒有名稱)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"常用聯絡人"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"所有附有電話號碼的聯絡人"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"工作設定檔聯絡人"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"查看更新"</string>
+    <string name="account_phone" msgid="7128032778471187553">"裝置"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM 卡"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"名稱"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"暱稱"</string>
+    <string name="name_given" msgid="4280790853455320619">"名字"</string>
+    <string name="name_family" msgid="7466985689626017037">"姓氏"</string>
+    <string name="name_prefix" msgid="59756378548779822">"姓名前稱謂"</string>
+    <string name="name_middle" msgid="8467433655992690326">"中間名"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"姓名後稱謂"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"姓名拼音"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"名字拼音"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"中間名 (拼音)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"姓氏拼音"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"電話"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"電子郵件"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"地址"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"機構"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"關係"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"特別日期"</string>
+    <string name="sms" msgid="1756857139634224222">"短訊"</string>
+    <string name="postal_address" msgid="8765560217149624536">"地址"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"公司"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"標題"</string>
+    <string name="label_notes" msgid="8337354953278341042">"備註"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"自訂"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"網站"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"標籤"</string>
+    <string name="email_home" msgid="8573740658148184279">"傳送電郵至住宅信箱"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"傳送電郵至手機"</string>
+    <string name="email_work" msgid="2807430017302722689">"傳送電郵至公司信箱"</string>
+    <string name="email_other" msgid="3454004077967657109">"電郵"</string>
+    <string name="email_custom" msgid="5536404237099078802">"寄電郵給<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"電郵"</string>
+    <string name="postal_street" msgid="8133143961580058972">"街道"</string>
+    <string name="postal_city" msgid="6597491300084895548">"城市"</string>
+    <string name="postal_region" msgid="6045263193478437672">"州/省"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"郵遞區號"</string>
+    <string name="postal_country" msgid="7638264508416368690">"國家/地區"</string>
+    <string name="map_home" msgid="1243547733423343982">"查看住宅地址"</string>
+    <string name="map_work" msgid="1360474076921878088">"查看公司地址"</string>
+    <string name="map_other" msgid="3817820803587012641">"檢視地址"</string>
+    <string name="map_custom" msgid="8761800628069473526">"查看<xliff:g id="CUSTOM_LABEL">%s</xliff:g>地址"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"使用 AIM 進行即時通訊"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"使用 Windows Live 進行即時通訊"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"使用 Yahoo 進行即時通訊"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"使用 Skype 進行即時通訊"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"使用 QQ 進行即時通訊"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"使用「Google Talk」交談"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"使用 ICQ 進行即時通訊"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"使用 Jabber 進行即時通訊"</string>
+    <string name="chat" msgid="9025361898797412245">"即時通訊"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"刪除"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"顯示更多姓名欄位"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"收合名稱欄位"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"顯示更多姓名拼音欄位"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"收合姓名拼音欄位"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"展開"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"收合"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"已展開"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"已收合"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"所有聯絡人"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"已加星號"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"自訂"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"聯絡人"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"所有其他聯絡人"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"全部聯絡人"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"移除同步處理群組"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"新增同步處理群組"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"更多群組…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"如果從同步設定中移除「<xliff:g id="GROUP">%s</xliff:g>」群組，也會移除任何未分組的聯絡人。"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"正在儲存顯示選項…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"自訂檢視"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"儲存匯入的聯絡人至以下帳戶："</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM 卡"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d 位聯絡人</item>
+      <item quantity="one">1 位聯絡人</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> 位聯絡人 • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> 位聯絡人 • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf 檔案"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"沒有可匯入的資料"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"要從 vCard 匯入聯絡人嗎？"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"要取消匯入「<xliff:g id="FILENAME">%s</xliff:g>」的操作嗎？"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"要取消匯出「<xliff:g id="FILENAME">%s</xliff:g>」的操作嗎？"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"無法取消匯入/匯出 vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"不明錯誤。"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"無法開啟「<xliff:g id="FILE_NAME">%1$s</xliff:g>」：<xliff:g id="EXACT_REASON">%2$s</xliff:g>。"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"無法啟動匯出程式：「<xliff:g id="EXACT_REASON">%s</xliff:g>」。"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"沒有聯絡人資料可以匯出。"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"您已停用所需權限。"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"匯出時發生錯誤：「<xliff:g id="EXACT_REASON">%s</xliff:g>」。"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"匯入/匯出錯誤"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"記憶體不足，檔案可能過大。"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"不支援這種格式。"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"匯出 <xliff:g id="FILENAME">%s</xliff:g> 完畢。"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"聯絡人匯出完成。"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"聯絡人匯出完成，按一下通知即可分享聯絡人。"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"輕按即可分享聯絡人。"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"已取消匯出「<xliff:g id="FILENAME">%s</xliff:g>」的操作。"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"正在匯出聯絡人資料"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"正在匯出聯絡人資料。"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"無法取得資料庫資訊。"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"沒有可匯出的聯絡人。"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard 編輯器並未正確啟動。"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"無法匯出"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"聯絡人資料未匯出。\n原因：「<xliff:g id="FAIL_REASON">%s</xliff:g>」"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"匯入 <xliff:g id="NAME">%s</xliff:g> 中"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"無法讀取 vCard 資料"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"已完成匯入 vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"已取消匯入「<xliff:g id="FILENAME">%s</xliff:g>」的操作"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> 將在稍後匯入。"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"稍後即將匯入檔案。"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard 匯入要求已被拒，請稍後再試。"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"系統即將匯出聯絡人。"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard 匯出要求已被拒，請稍後再試。"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"聯絡人"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"正在將 vCard 資料快取至本機暫存空間，隨即將開始實際的匯入操作。"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"無法匯入 vCard。"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"已透過 NFC 收到聯絡人資訊"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"快取中"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"正在匯入第 <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> 個：<xliff:g id="NAME">%3$s</xliff:g>，共 <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> 個"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"匯出至 .vcf 檔案"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"排序方式"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"姓名拼音"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"永遠顯示"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"空白時隱藏"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"名字"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"姓氏"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"姓名格式"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"名字在前"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"姓氏在前"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"帳戶"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"新聯絡人的預設帳戶"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"我的資訊"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"設定您的個人檔案"</string>
+    <string name="setting_about" msgid="7014388749752042863">"關於聯絡人"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"分享常用聯絡人"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"分享所有聯絡人"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"無法分享聯絡人。"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"匯出聯絡人"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"從以下來源匯入通訊錄："</string>
+    <string name="share_error" msgid="948429331673358107">"無法分享這位聯絡人的資料。"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"沒有聯絡人可供分享。"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"要顯示的聯絡人"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"要顯示的聯絡人"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"自訂檢視"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"儲存"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"搜尋聯絡人"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"我的最愛"</string>
+    <string name="menu_import" msgid="6107961135813836467">"匯入"</string>
+    <string name="menu_export" msgid="2658783911863503902">"匯出"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"已封鎖的號碼"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"透過 <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> (透過 <xliff:g id="SOURCE">%2$s</xliff:g>)"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"停止搜尋"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"清除搜尋"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"帳戶"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"永遠使用這張 SIM 卡通話"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"撥號時傳送筆記"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"致電時可以輸入並傳送筆記…"</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"傳送和撥號"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"型號版本"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"開放原始碼授權"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"開放原始碼軟件的授權詳情"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"私隱權政策"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"服務條款"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"開放原始碼授權"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"無法開啟網址。"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"已選取 <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"未選取 <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"開始視像通話"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"刪除"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"省略號"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> 分鐘 <xliff:g id="SECONDS">%2$s</xliff:g> 秒"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> 小時 <xliff:g id="MINUTES_1">%2$s</xliff:g> 分 <xliff:g id="SECONDS">%3$s</xliff:g> 秒"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"已停用此捷徑"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"聯絡人已移除"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"匯入"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"選取聯絡人"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"SIM 卡中沒有聯絡人"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"此聯絡人已在您的清單中"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">已匯入 <xliff:g id="COUNT">%d</xliff:g> 位 SIM 聯絡人</item>
+      <item quantity="one">已匯入 1 位 SIM 聯絡人</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"無法匯入 SIM 聯絡人"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"從 SIM 卡匯入"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"取消"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"自動同步已關閉。輕按以開啟。"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"拒絕"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"帳戶同步已關閉。輕按以開啟。"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"要開啟自動同步功能嗎？"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"除了「Google 通訊錄」，您為其他所有應用程式和帳戶作出的變更亦會在網絡與裝置之間即時更新。"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"開啟"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"沒有網絡連線"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"顯示更多"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM 卡匯入完成"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"匯入失敗"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"無法從 SIM 卡匯入聯絡人"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"正在匯入 SIM 卡"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-zh-rTW/donottranslate_config.xml b/res/values-zh-rTW/donottranslate_config.xml
new file mode 100644
index 0000000..b357856
--- /dev/null
+++ b/res/values-zh-rTW/donottranslate_config.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<resources>
+    <!-- If true, an option is shown in Display Options UI to choose a sort order -->
+    <bool name="config_sort_order_user_changeable">false</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_sort_order_primary">true</bool>
+
+    <!-- If true, an option is shown in Display Options UI to choose a name display order -->
+    <bool name="config_display_order_user_changeable">false</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_display_order_primary">true</bool>
+
+    <!-- If true, the order of name fields in the editor is primary (i.e. given name first) -->
+    <bool name="config_editor_field_order_primary">false</bool>
+</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index cc7097f..cdbb720 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"通訊錄"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"通訊錄"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"查看聯絡人"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"編輯聯絡人"</string>
     <string name="contactsList" msgid="8661624236494819731">"聯絡人"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"新增聯絡人"</string>
     <string name="shortcutContact" msgid="749243779392912958">"聯絡人"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"直接撥號"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"直接傳訊"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"選擇聯絡人捷徑"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"選擇去電號碼"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"選擇傳訊號碼"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"選擇聯絡人"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"加入聯絡人"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"選擇聯絡人"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"選取"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"建立新聯絡人"</string>
-    <string name="starredList" msgid="4817256136413959463">"已加星號"</string>
-    <string name="frequentList" msgid="7154768136473953056">"經常聯絡"</string>
-    <string name="strequentList" msgid="5640192862059373511">"我的收藏"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"聯絡資訊"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"編輯聯絡人"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"建立聯絡人"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"編輯群組"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"建立群組"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"相關資訊"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"更新"</string>
     <string name="searchHint" msgid="8482945356247760701">"搜尋聯絡人"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"檢視聯絡人"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"加到我的收藏"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"從我的收藏中移除"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"已從我的最愛中移除"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"編輯"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"刪除"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"更換相片"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"放在主螢幕上"</string>
-    <string name="menu_call" msgid="3992595586042260618">"去電聯絡人"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"傳送簡訊至聯絡人"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"建立捷徑"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"取消連結"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"編輯"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"刪除"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"新增聯絡人"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"新增群組"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"移除聯絡人"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"重新命名標籤"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"刪除標籤"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"新增聯絡人"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"選取聯絡人"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"新增聯絡人"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"從標籤中移除"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"建立標籤"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"確定要將這個聯絡人的連結取消，還原為多筆聯絡人資料嗎？"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"取消連結"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"您要儲存目前所做變更，並將這個聯絡人的連結取消，還原為多筆聯絡人資料嗎？"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"儲存並取消連結"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"您要儲存目前所做變更，並與所選聯絡人連結合併嗎？"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"儲存並連結"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"連結中"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"正在取消連結"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"建立連結"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"查看已連結的聯絡人"</string>
     <string name="menu_save" msgid="1727844363591825909">"儲存"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"連結聯絡人"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"選擇要與<xliff:g id="NAME">%s</xliff:g>連結的聯絡人："</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"顯示所有聯絡人"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"建議聯絡人"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"所有聯絡人"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"已連結<xliff:g id="NAME">%s</xliff:g>"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"聯絡人連結完成"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"已刪除<xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"已刪除<xliff:g id="NAME_0">%1$s</xliff:g>和<xliff:g id="NAME_1">%2$s</xliff:g>"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"已刪除<xliff:g id="NAME_0">%1$s</xliff:g>、<xliff:g id="NAME_1">%2$s</xliff:g>、<xliff:g id="NAME_2">%3$s</xliff:g>..."</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="other">已刪除聯絡人</item>
       <item quantity="one">已刪除聯絡人</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 位聯絡人</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 位聯絡人</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> 位聯絡人 · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 位聯絡人 · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"來自 Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"來自 <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"設定電話鈴聲"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"將所有來電轉到語音信箱"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"系統無法刪除擷取自唯讀帳戶的聯絡人資料，但可以將這些資料設為隱藏。"</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"隱藏"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"您要刪除的聯絡人詳細資料源自多個帳戶。針對擷取自唯讀帳戶的詳細資料，系統會予以隱藏，而不會刪除這些資料。"</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"您至少必須選取兩筆聯絡人資料才可執行連結。"</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"確定要連結所選的聯絡人嗎？"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"連結"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"轉至語音信箱"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"取消轉至語音信箱"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"這是唯讀聯絡人資料，因此無法刪除，但你可以將這筆資料設為隱藏。"</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"隱藏聯絡人"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"系統不會將這筆聯絡人資料中的唯讀帳戶刪除，只會設為隱藏。"</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"確定要刪除這個聯絡人嗎？"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"確定要刪除所選的聯絡人嗎？"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"系統無法刪除擷取自唯讀帳戶的聯絡人資料，但可以將這些資料設為隱藏。"</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"如果刪除這個聯絡人，系統將一併刪除多個帳戶中的相關詳細資料。"</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"確定要刪除這個聯絡人嗎？"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"刪除"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"捨棄變更"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"聯絡人不存在。"</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"已在主畫面中新增這個聯絡人的捷徑。"</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"已在主畫面中新增<xliff:g id="NAME">%s</xliff:g>的捷徑。"</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"建立新聯絡人"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"建立新聯絡人"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"機構"</item>
-    <item msgid="7196592230748086755">"附註"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"平板電腦中沒有相片可供選用。"</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"手機上沒有相片 。"</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"裝置上沒有相片。"</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"聯絡人相片"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"自訂標籤名稱"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"直接將來電轉到語音信箱"</string>
     <string name="removePhoto" msgid="4898105274130284565">"移除相片"</string>
-    <string name="noContacts" msgid="4955659076981974652">"沒有聯絡人"</string>
-    <string name="noGroups" msgid="8614664663561385253">"沒有群組。"</string>
-    <string name="noAccounts" msgid="7768267764545265909">"必須要有帳戶才能建立群組。"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"這個群組中沒有成員。"</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"如要新增成員，請編輯群組。"</string>
-    <string name="savingContact" msgid="4075751076741924939">"正在儲存聯絡人…"</string>
+    <string name="noContacts" msgid="2228592924476426108">"您的聯絡人清單沒有任何項目"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"沒有任何聯絡人設有這個標籤"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"這個帳戶中沒有聯絡人"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"您的聯絡人清單沒有任何項目"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"已儲存<xliff:g id="DISPLAY_NAME">%s</xliff:g>"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"聯絡人已儲存"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"已取消連結聯絡人"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"無法儲存聯絡人變更。"</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"無法取消連結聯絡人。"</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"無法連結聯絡人。"</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"儲存聯絡人時發生錯誤。"</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"無法儲存聯絡人相片變更。"</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"群組已儲存。"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"無法儲存群組變更。"</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 位有電話號碼的聯絡人</item>
-      <item quantity="one">1 位有電話號碼的聯絡人</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"所有聯絡人資訊中都沒有電話號碼"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="other">找到 <xliff:g id="COUNT">%d</xliff:g> 位聯絡人</item>
-      <item quantity="one">找到 1 位聯絡人</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"無法儲存變更後的聯絡人資訊"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"無法取消連結聯絡人"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"無法連結聯絡人"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"儲存聯絡人時發生錯誤"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"無法儲存變更後的聯絡人相片"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"無法載入標籤"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"已刪除標籤"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"已建立標籤"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"無法建立標籤"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"已更新標籤"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"已從標籤中移除"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"已新增到標籤中"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"無法儲存變更後的標籤"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"該標籤已存在"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"部分聯絡人沒有電子郵件。"</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"部分聯絡人沒有電話號碼。"</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"傳送電子郵件"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"傳送訊息"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"選擇聯絡人"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"傳送"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"沒有聯絡人"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="other">找到 <xliff:g id="COUNT">%d</xliff:g> 位聯絡人</item>
-      <item quantity="one">找到 1 位聯絡人</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"全部"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"最愛聯絡人"</string>
-    <string name="callBack" msgid="5498224409038809224">"回播電話"</string>
-    <string name="callAgain" msgid="3197312117049874778">"重撥"</string>
-    <string name="returnCall" msgid="8171961914203617813">"回電"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"要將「<xliff:g id="EMAIL">%s</xliff:g>」加到通訊錄嗎？"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"聯絡人相片"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"加號"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"第 <xliff:g id="CURRENT_NUMBER">%s</xliff:g> 位聯絡人，共 <xliff:g id="TOTAL_NUMBER">%s</xliff:g> 位"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"您的聯絡人姓名"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"找不到可以處理這個動作的應用程式。"</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"按一下即可返回上一個畫面"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"新增電話號碼"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"新增電子郵件地址"</string>
     <string name="missing_app" msgid="1466111003546611387">"找不到可以處理這個動作的應用程式。"</string>
     <string name="menu_share" msgid="943789700636542260">"分享"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"新增為聯絡人"</string>
-    <string name="share_via" msgid="563121028023030093">"使用下列應用程式分享聯絡人資訊："</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"選擇帳戶以建立群組"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"新增"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="other">透過下列應用程式分享聯絡人資訊：</item>
+      <item quantity="one">透過下列應用程式分享聯絡人資訊：</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"選擇帳戶"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"建立標籤"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"重新命名標籤"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"標籤名稱"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"標籤名稱"</string>
     <string name="audio_chat" msgid="2535716629358298691">"語音通訊"</string>
     <string name="video_chat" msgid="1872255818640336072">"語音通訊"</string>
-    <string name="connections" msgid="8098440723172028350">"聯絡方式"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"加入聯絡方式"</string>
-    <string name="recent" msgid="2659189233141493004">"最新"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"最新動態"</string>
-    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g> 聯絡人"</string>
+    <string name="account_type_format" msgid="718948015590343010">"<xliff:g id="SOURCE">%1$s</xliff:g>聯絡人"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> 帳戶"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"無法透過這個應用程式編輯。"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"無法在這個裝置上編輯。"</string>
     <string name="take_photo" msgid="7496128293167402354">"拍照"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"拍攝新相片"</string>
     <string name="pick_photo" msgid="2129509985223564942">"選擇相片"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"選取新相片"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"正在更新聯絡人清單。"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"搜尋中…"</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"顯示已選取的項目"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"全部顯示"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"全選"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"全部取消選取"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"新增"</string>
-    <string name="add_organization" msgid="7311893231158291197">"填寫聯絡人任職單位"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"日期"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"群組名稱"</string>
-    <string name="change_photo" msgid="8530597935483526383">"變更"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"主要相片"</string>
-    <string name="description_star" msgid="2605854427360036550">"我的收藏"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"編輯聯絡人"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"要將目前聯絡人與所選聯絡人連結嗎？"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"標籤"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"取消"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"返回"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"關閉"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"要切換至編輯所選聯絡人嗎？系統會為您複製目前已輸入的資訊。"</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"複製到我的通訊錄"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"新增至我的聯絡人"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"目錄：<xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"自訂"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"設定"</string>
     <string name="menu_settings" msgid="377929915873428211">"設定"</string>
     <string name="menu_help" msgid="1680178646764069976">"說明與意見回饋"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"顯示選項"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_1">%1$s</xliff:g> <xliff:g id="COMPANY_0">%2$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"電話號碼"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"新增至通訊錄"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"加入聯絡人"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"關閉"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"包含年份"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"聯絡人"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"載入中…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"建立新聯絡人"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"新增帳戶"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"匯入聯絡人"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"建立新群組"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"建立新群組"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> 個群組</item>
-      <item quantity="one">1 個群組</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"確定要刪除「<xliff:g id="GROUP_LABEL">%1$s</xliff:g>」群組？(這樣並不會刪除各聯絡人資料)。"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="other"><xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g>中有 <xliff:g id="COUNT_2">%1$d</xliff:g> 人</item>
-      <item quantity="one"><xliff:g id="ACCOUNT_TYPE_1">%2$s</xliff:g>中有 <xliff:g id="COUNT_0">%1$d</xliff:g> 人</item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> 人</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 人</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"匯入"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"新建..."</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"要刪除「<xliff:g id="GROUP_LABEL">%1$s</xliff:g>」標籤嗎？(聯絡人本身不會遭到刪除。)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"請先輸入聯絡人姓名，才能與其他聯絡人連結。"</string>
     <string name="copy_text" msgid="3257145021583508761">"複製到剪貼簿"</string>
     <string name="set_default" msgid="4417505153468300351">"設為預設值"</string>
     <string name="clear_default" msgid="7193185801596678067">"清除預設值"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"文字已複製"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"確定要捨棄變更？"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"捨棄"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"設定我的個人資料"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"輸入聯絡人的名稱"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"群組名稱"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"要捨棄變更嗎？"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"捨棄"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"取消"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"要捨棄自訂設定嗎？"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"搜尋聯絡人"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"移除聯絡人"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"我的本機個人資料"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"我的 <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> 個人資料"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"顯示所有聯絡人"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"聯絡人與 Google 帳戶搭配使用的效能更優異。\n\n• 透過任何網路瀏覽器皆可存取。\n• 安全備份您的聯絡人。"</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"即使手機遺失，聯絡人資訊依然萬無一失：與線上服務保持同步。"</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"新增帳戶"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"系統不會備份您新增的聯絡人資料。您是否要新建一個帳戶，將您的聯絡人資料另存在線上？"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"請花幾分鐘時間新增帳戶，即可將您的聯絡人資料備份到 Google。"</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"新聯絡人將儲存至 <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>。"</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"為新建立的聯絡人選擇一個預設帳戶："</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"新增聯絡人"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"建立新聯絡人"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"編輯聯絡人"</string>
-    <string name="keep_local" msgid="1258761699192993322">"儲存在本機中"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"僅供檢視"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"選擇要編輯的聯絡人"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"已連結的聯絡人"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"新增"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"取消連結"</string>
     <string name="add_account" msgid="8201790677994503186">"新增帳戶"</string>
     <string name="add_new_account" msgid="5748627740680940264">"新增帳戶"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"匯出資料庫檔案"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"新增聯絡人"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"建立新聯絡人"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"顯示更多"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"顯示較少"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"全部顯示"</string>
-    <string name="recent_card_title" msgid="8982782042698001695">"近期"</string>
+    <string name="recent_card_title" msgid="8982782042698001695">"近期活動"</string>
     <string name="about_card_title" msgid="2920942314212825637">"關於"</string>
-    <string name="send_message" msgid="8938418965550543196">"傳送簡訊"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"正在建立個人副本..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"昨天"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"正在建立個人副本…"</string>
     <string name="tomorrow" msgid="6241969467795308581">"明天"</string>
     <string name="today" msgid="8041090779381781781">"今天"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"今天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"明天<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g><xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(未命名活動)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"設定"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"即時訊息"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"網站"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"活動"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"關係"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"帳戶"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"姓名"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"電子郵件"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"電話"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"相片"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"按一下即可展開聯絡人編輯器。"</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"按一下即可收合聯絡人編輯器。"</string>
     <string name="content_description_directions" msgid="2686791825798189335">"規劃前往特定地點的路線"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"近期簡訊。<xliff:g id="MESSAGE_BODY">%s</xliff:g>。<xliff:g id="PHONE_NUMBER">%s</xliff:g>。<xliff:g id="DATE">%s</xliff:g>。按一下即可回覆"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"近期簡訊。<xliff:g id="MESSAGE_BODY">%1$s</xliff:g>。<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>。<xliff:g id="DATE">%3$s</xliff:g>。按一下即可回覆"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"來電"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"撥出通話"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"未接來電"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"近期通話。<xliff:g id="CALL_TYPE">%s</xliff:g>。<xliff:g id="PHONE_NUMBER">%s</xliff:g>。<xliff:g id="DATE">%s</xliff:g>。按一下即可回電"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"近期通話。<xliff:g id="CALL_TYPE">%1$s</xliff:g>。<xliff:g id="PHONE_NUMBER">%2$s</xliff:g>。<xliff:g id="DATE">%3$s</xliff:g>。按一下即可回電"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"您：<xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"如果您在電子郵件欄位或電話欄位中輸入聯絡人的 Hangouts 識別碼，可讓 Hangouts 的運作效能更佳。"</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"更多欄位"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"更換相片"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"無法開啟編輯器。"</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"儲存到"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"正在儲存到 <xliff:g id="ACCOUNT_NAME">%s</xliff:g>。輕按兩下即可選擇其他帳戶。"</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="other">已連結的聯絡人 (<xliff:g id="COUNT">%d</xliff:g> 位)</item>
-      <item quantity="one">已連結的聯絡人</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> 位已連結的聯絡人"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"更多欄位"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"變更聯絡人相片"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"新增聯絡人相片"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"聯絡人相片"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"無法開啟編輯器。"</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"儲存到"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"<xliff:g id="ACCOUNT">%s</xliff:g> 的聯絡人資訊不開放編輯"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"連結聯絡人"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"取消"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 位可能重複的聯絡人</item>
-      <item quantity="one">1 位可能重複的聯絡人</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 位已連結的聯絡人</item>
-      <item quantity="one">1 位已連結的聯絡人</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="one"></item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g> <xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"這位聯絡人"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"可能重複的聯絡人"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"這些聯絡人可能是同一人。您可以將這些聯絡人連結合併成單筆聯絡人資料。"</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"已連結的聯絡人"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"來自您的帳戶"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"拍照"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"所有相片"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"選擇相片"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"來自<xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"刪除<xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"刪除<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"刪除<xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"未勾選 <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> 的相片"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"已勾選 <xliff:g id="ACCOUNT_TYPE">%s </xliff:g> <xliff:g id="USER_NAME">%s </xliff:g> 的相片"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"未勾選不明帳戶中的相片"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"已勾選不明帳戶中的相片"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"正在更新聯絡人清單以反映語言變更。\n\n請稍候…"</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"新增號碼"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"封鎖號碼"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"新增號碼或搜尋聯絡人"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"要解除封鎖 <xliff:g id="NUMBER">%1$s</xliff:g> 嗎？"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"解除封鎖"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"要封鎖 <xliff:g id="NUMBER">%1$s</xliff:g> 嗎？"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"封鎖"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"已解除封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> 無效。"</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"來電封鎖功能已暫時關閉"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"由於您曾在過去 48 小時內使用這支手機撥打緊急服務電話，因此來電封鎖功能已停用。此功能停用達 48 小時後，將由系統自動重新啟用。"</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"匯入"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看號碼"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"新增號碼"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"來電封鎖功能會停用 48 小時"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"由於您曾撥打緊急電話，因此本功能已停用。"</string>
-    <string name="block_number_undo" msgid="591338370336724156">"復原"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> 已在封鎖清單中。"</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"解除封鎖號碼"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的聯絡詳細資料"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"匯入失敗"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"匯入電話號碼"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"如要搜尋您的聯絡人，請開啟「聯絡人」存取權限。"</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"開啟"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"建議"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"新功能"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"開啟導覽匣"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"關閉導覽匣"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"「<xliff:g id="LABEL_NAME">%s</xliff:g>」標籤"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"標籤"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"帳戶"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"一併顯示紀錄"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"活動和簡訊"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"活動"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"訊息"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"建議"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"讓你的聯絡人資料井然有序又實用"</string>
+    <string name="undo" msgid="1425165101664071422">"復原"</string>
+    <string name="call_custom" msgid="6385303130912713318">"撥打<xliff:g id="CUSTOM_LABEL">%s</xliff:g>電話號碼"</string>
+    <string name="call_home" msgid="1990519474420545392">"去電住家電話"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"去電行動裝置"</string>
+    <string name="call_work" msgid="5328785911463744028">"去電公司電話"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"去電公司傳真"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"去電住家傳真"</string>
+    <string name="call_pager" msgid="9003902812293983281">"去電呼叫器"</string>
+    <string name="call_other" msgid="8563753966926932052">"通話"</string>
+    <string name="call_callback" msgid="1910165691349426858">"去電回撥號碼"</string>
+    <string name="call_car" msgid="3280537320306436445">"去電車用電話"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"去電公司代表號"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"去電 ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"去電代表號"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"撥打傳真"</string>
+    <string name="call_radio" msgid="8296755876398357063">"去電無線電"</string>
+    <string name="call_telex" msgid="2223170774548648114">"去電 Telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"去電 TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"去電公司手機"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"去電公司呼叫器"</string>
+    <string name="call_assistant" msgid="670941612175068337">"撥打<xliff:g id="CUSTOM_LABEL">%s</xliff:g>電話號碼"</string>
+    <string name="call_mms" msgid="6274041545876221437">"去電 MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (撥號)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"傳送簡訊給<xliff:g id="CUSTOM_LABEL">%s</xliff:g>電話號碼"</string>
+    <string name="sms_home" msgid="7524332261493162995">"傳送簡訊至住家電話"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"傳送簡訊至行動裝置"</string>
+    <string name="sms_work" msgid="2269624156655267740">"傳送簡訊至公司電話"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"傳送簡訊至公司傳真"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"傳送簡訊至住家傳真"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"傳送簡訊至呼叫器"</string>
+    <string name="sms_other" msgid="806127844607642331">"傳送簡訊"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"傳送簡訊至回撥號碼"</string>
+    <string name="sms_car" msgid="7444227058437359641">"傳送簡訊至車用電話"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"傳送簡訊至公司代表號"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"傳送簡訊至 ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"傳送簡訊至代表號"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"傳送簡訊至傳真"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"傳送簡訊至無線電"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"傳送簡訊至 Telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"傳送簡訊至 TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"傳送簡訊至公司手機"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"傳送簡訊至公司呼叫器"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"傳送簡訊至<xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"向多媒體訊息電話號碼傳送文字簡訊"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (傳送簡訊)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"進行視訊通話"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"清除常用聯絡人？"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"你即將清除「聯絡人」應用程式和「電話」應用程式中的常用聯絡人清單，並設定讓電子郵件應用程式重新熟悉你的寄件偏好設定。"</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"正在清除常用聯絡人…"</string>
+    <string name="status_available" msgid="5586870015822828392">"線上"</string>
+    <string name="status_away" msgid="1838861100379804730">"離開"</string>
+    <string name="status_busy" msgid="9147992455450257136">"忙碌"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"其他"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"目錄"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Work 聯絡人目錄"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"所有聯絡人"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"<xliff:g id="NAME">%1$s</xliff:g>的快速聯絡人相片"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(無姓名)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"常用聯絡人"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"所有包含電話號碼的聯絡人資訊"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Work 設定檔聯絡人"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"查看更新"</string>
+    <string name="account_phone" msgid="7128032778471187553">"裝置"</string>
+    <string name="account_sim" msgid="6519016427905087952">"SIM 卡"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"姓名"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"暱稱"</string>
+    <string name="name_given" msgid="4280790853455320619">"名字"</string>
+    <string name="name_family" msgid="7466985689626017037">"姓氏"</string>
+    <string name="name_prefix" msgid="59756378548779822">"姓名前稱銜"</string>
+    <string name="name_middle" msgid="8467433655992690326">"中間名"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"姓名後稱銜"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"姓名拼音"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"名字拼音"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"中間名 (拼音)"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"姓氏拼音"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"電話"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"電子郵件"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"地址"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"即時訊息"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"機構"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"關係"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"特別的日子"</string>
+    <string name="sms" msgid="1756857139634224222">"簡訊"</string>
+    <string name="postal_address" msgid="8765560217149624536">"地址"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"公司"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"職稱"</string>
+    <string name="label_notes" msgid="8337354953278341042">"附註"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"自訂"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"網站"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"標籤"</string>
+    <string name="email_home" msgid="8573740658148184279">"傳送電子郵件至住家電子郵件地址"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"傳送電子郵件至行動裝置"</string>
+    <string name="email_work" msgid="2807430017302722689">"傳送電子郵件至公司電子郵件地址"</string>
+    <string name="email_other" msgid="3454004077967657109">"傳送電子郵件"</string>
+    <string name="email_custom" msgid="5536404237099078802">"傳送電子郵件給<xliff:g id="CUSTOM_LABEL">%s</xliff:g>電子郵件地址"</string>
+    <string name="email" msgid="5668400997660065897">"傳送電子郵件"</string>
+    <string name="postal_street" msgid="8133143961580058972">"街道"</string>
+    <string name="postal_city" msgid="6597491300084895548">"鄉/鎮/市/區"</string>
+    <string name="postal_region" msgid="6045263193478437672">"州/省"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"郵遞區號"</string>
+    <string name="postal_country" msgid="7638264508416368690">"國家/地區"</string>
+    <string name="map_home" msgid="1243547733423343982">"檢視住家地址"</string>
+    <string name="map_work" msgid="1360474076921878088">"檢視公司地址"</string>
+    <string name="map_other" msgid="3817820803587012641">"檢視地址"</string>
+    <string name="map_custom" msgid="8761800628069473526">"查看<xliff:g id="CUSTOM_LABEL">%s</xliff:g>地址"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"使用 AIM 進行即時通訊"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"使用 Windows Live 進行即時通訊"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"使用 Yahoo 進行即時通訊"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"使用 Skype 進行即時通訊"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"使用 QQ 進行即時通訊"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"使用 Google Talk 進行即時通訊"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"使用 ICQ 進行即時通訊"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"使用 Jabber 進行即時通訊"</string>
+    <string name="chat" msgid="9025361898797412245">"即時通訊"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"刪除"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"顯示更多姓名欄位"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"收合姓名欄位"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"顯示更多姓名拼音欄位"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"收合姓名拼音欄位"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"展開"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"收合"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"已展開"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"已收合"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"所有聯絡人"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"已加星號"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"自訂"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"聯絡人"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"所有其他聯絡人"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"所有聯絡人"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"移除同步處理群組"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"新增同步處理群組"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"更多群組…"</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"如果停用「<xliff:g id="GROUP">%s</xliff:g>」群組的同步處理設定，也會停止同步處理任何未分組的聯絡人。"</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"正在儲存顯示選項…"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"自訂檢視"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"將匯入的聯絡人儲存到："</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"SIM 卡"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM 卡 <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="other">%1$d 位聯絡人</item>
+      <item quantity="one">1 位聯絡人</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> 位聯絡人 • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> 位聯絡人 • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf 檔案"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"沒有任何可匯入的資料"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"要從 vCard 匯入聯絡人嗎？"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"確定要取消匯入 <xliff:g id="FILENAME">%s</xliff:g>？"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"確定要取消匯出 <xliff:g id="FILENAME">%s</xliff:g>？"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"無法取消匯入/匯出 vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"不明錯誤。"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"無法開啟「<xliff:g id="FILE_NAME">%1$s</xliff:g>」：<xliff:g id="EXACT_REASON">%2$s</xliff:g>。"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"無法啟動匯出程式：<xliff:g id="EXACT_REASON">%s</xliff:g>。"</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"沒有可匯出的聯絡人。"</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"必要權限已停用。"</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"匯出時發生錯誤：<xliff:g id="EXACT_REASON">%s</xliff:g>。"</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"I/O 錯誤"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"記憶體不足，檔案可能過大。"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"不支援此格式。"</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"已完成 <xliff:g id="FILENAME">%s</xliff:g> 匯出作業。"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"聯絡人資料匯出完成。"</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"聯絡人資料匯出完成，按一下通知即可分享相關資料。"</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"輕觸即可分享聯絡人資料。"</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"已取消匯出 <xliff:g id="FILENAME">%s</xliff:g>。"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"正在匯出聯絡人資料"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"正在匯出聯絡人資料。"</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"無法取得資料庫資訊。"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"沒有聯絡人資料可供匯出。"</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"vCard 編輯器並未正確啟動。"</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"無法匯出"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"聯絡人資料未匯出。\n原因：<xliff:g id="FAIL_REASON">%s</xliff:g>"</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"正在匯入 <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"無法讀取 vCard 資料"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"已完成匯入 vCard 的 <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"已取消匯入 <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"<xliff:g id="FILENAME">%s</xliff:g> 將在稍後匯入。"</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"稍候即將匯入該檔案。"</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"vCard 匯入要求遭到拒絕，請稍後再試。"</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"即將匯出聯絡人資料。"</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"vCard 匯出要求遭到拒絕，請稍後再試。"</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"聯絡人"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"正在將 vCard 資料快取至本機暫存空間，隨即將啟動實際的匯入作業。"</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"無法匯入 vCard。"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"已透過 NFC 收到聯絡人資訊"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"快取中"</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"正在匯入第 <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g> 筆資料：<xliff:g id="NAME">%3$s</xliff:g>，共 <xliff:g id="TOTAL_NUMBER">%2$s</xliff:g> 筆資料"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"匯出成 .vcf 檔案"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"排序依據"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"姓名拼音"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"一律顯示"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"留空時隱藏"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"名字"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"姓氏"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"姓名格式"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"名字在前"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"姓氏在前"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"帳戶"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"新聯絡人的預設帳戶"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"我的資訊"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"設定你的個人資料"</string>
+    <string name="setting_about" msgid="7014388749752042863">"關於聯絡人"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"分享常用聯絡人資料"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"分享所有聯絡人資料"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"無法分享聯絡人資料。"</string>
+    <string name="dialog_export" msgid="1628001095187741417">"匯出聯絡人"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"聯絡人匯入來源"</string>
+    <string name="share_error" msgid="948429331673358107">"無法分享這位聯絡人。"</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"沒有任何聯絡人資料可分享。"</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"要顯示的聯絡人"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"要顯示的聯絡人"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"自訂檢視"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"儲存"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"搜尋聯絡人"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"我的收藏"</string>
+    <string name="menu_import" msgid="6107961135813836467">"匯入"</string>
+    <string name="menu_export" msgid="2658783911863503902">"匯出"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"已封鎖的號碼"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"透過 <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> (透過 <xliff:g id="SOURCE">%2$s</xliff:g>)"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"停止搜尋"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"清除搜尋"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"帳戶"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"一律使用這張 SIM 卡通話"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"撥號時傳送備註"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"輸入可在撥號時傳送的備註..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"傳送並撥號"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"版本"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"開放原始碼授權"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"開放原始碼軟體的授權詳細資料"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"隱私權政策"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"服務條款"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"開放原始碼授權"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"無法開啟網址。"</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"已勾選 <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"未勾選 <xliff:g id="ACCOUNT_INFO">%s</xliff:g>"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"撥打視訊通話"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"刪除"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"省略符號"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> 分鐘 <xliff:g id="SECONDS">%2$s</xliff:g> 秒"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> 小時 <xliff:g id="MINUTES_1">%2$s</xliff:g> 分鐘 <xliff:g id="SECONDS">%3$s</xliff:g> 秒"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"這個捷徑已停用"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"這位聯絡人已移除"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"匯入"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"選取聯絡人"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"你的 SIM 卡上沒有聯絡人資料"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"你的聯絡人清單中已有這位聯絡人"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="other">已匯入 <xliff:g id="COUNT">%d</xliff:g> 位 SIM 卡聯絡人</item>
+      <item quantity="one">已匯入 1 位 SIM 卡聯絡人</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"無法匯入 SIM 卡聯絡人"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"從 SIM 卡匯入"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"取消"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"自動同步功能已關閉。輕觸即可開啟。"</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"關閉"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"帳戶同步功能已關閉。輕觸即可開啟。"</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"要啟用自動同步功能嗎？"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"你對所有應用程式和帳戶 (不限於 Google 聯絡人) 所做的變更都會在網路和你的裝置之間保持同步。"</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"開啟"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"沒有網路連線"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"SIM 卡"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"顯示更多"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"SIM 卡資料匯入完成"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"匯入失敗"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"無法從 SIM 卡匯入聯絡人資料"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"正在匯入 SIM 卡資料"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 5dd8393..1cdc484 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -17,31 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="applicationLabel" msgid="3906689777043645443">"Oxhumana nabo"</string>
-    <string name="launcherActivityLabel" msgid="6497230399032392417">"Oxhumana nabo"</string>
-    <string name="quickContactActivityLabel" msgid="7985456650689347268">"Buka oxhumana naye"</string>
-    <string name="editContactActivityLabel" msgid="1129944572070802839">"Hlela Othintana Naye"</string>
     <string name="contactsList" msgid="8661624236494819731">"Othi tana nabo"</string>
+    <string name="shortcut_add_contact" msgid="7476283631356909204">"Faka oxhumana naye"</string>
     <string name="shortcutContact" msgid="749243779392912958">"Othintana naye"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Ukudayela okuqondile"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Umyalezo oqondile"</string>
-    <string name="shortcutActivityTitle" msgid="6642877210643565436">"Khetha isinqamuleli sothintana naye"</string>
-    <string name="callShortcutActivityTitle" msgid="6065749861423648991">"Khetha inombolo ozoyishayela"</string>
-    <string name="messageShortcutActivityTitle" msgid="3084542316620335911">"Khetha inombolo kumyalezo"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Khetha oxhumana naye"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Faka koxhumana nabo"</string>
     <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Khetha oxhumana naye"</string>
+    <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Khetha"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Dala othintana naye omusha"</string>
-    <string name="starredList" msgid="4817256136413959463">"Okunenkanyezi"</string>
-    <string name="frequentList" msgid="7154768136473953056">"Okuvamile"</string>
-    <string name="strequentList" msgid="5640192862059373511">"Izintandokazi"</string>
-    <string name="viewContactTitle" msgid="7989394521836644384">"Imininingwane yothintana naye"</string>
-    <string name="editContactDescription" msgid="2947202828256214947">"Hlela othintana naye"</string>
-    <string name="insertContactDescription" msgid="4709878105452681987">"Dala othintana naye"</string>
-    <string name="editGroupDescription" msgid="6321161304201540561">"Hlela isigcawu"</string>
-    <string name="insertGroupDescription" msgid="5658512271662210139">"Dala isigcawu"</string>
-    <string name="contactDetailAbout" msgid="5430408883907061400">"Mayelana"</string>
-    <string name="contactDetailUpdates" msgid="3780588624763446941">"Izibuyekezo"</string>
     <string name="searchHint" msgid="8482945356247760701">"Sesha othintana nabo"</string>
-    <string name="menu_viewContact" msgid="2795575601596468581">"Buka othintana naye"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"Engeza ezintandokazini"</string>
     <string name="menu_removeStar" msgid="5844227078364227030">"Susa ezintandokazini"</string>
     <string name="description_action_menu_remove_star" msgid="4699640108012265178">"Kukhishiwe kusuka kuzintandokazi"</string>
@@ -49,40 +35,56 @@
     <string name="menu_editContact" msgid="9042415603857662633">"Hlela"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"Susa"</string>
     <string name="menu_change_photo" msgid="7769177631511496210">"Guqula isithombe"</string>
-    <string name="menu_create_contact_shortcut" msgid="1217971915748509640">"Indawo esikrinini sekhaya"</string>
-    <string name="menu_call" msgid="3992595586042260618">"Shayela othintana naye"</string>
-    <string name="menu_sendSMS" msgid="5535886767547006515">"Bhalela othintana naye"</string>
+    <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Dala isinqamuleli"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Susa ukuxhumanisa"</string>
-    <string name="menu_editGroup" msgid="5062005185370983720">"Hlela"</string>
-    <string name="menu_deleteGroup" msgid="3486380004411482874">"Susa"</string>
-    <string name="menu_new_contact_action_bar" msgid="7263362129442119188">"Faka oxhumana naye"</string>
-    <string name="menu_new_group_action_bar" msgid="3520232877587377175">"Engeza iqembu"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Susa oxhumana nabo"</string>
+    <string name="menu_renameGroup" msgid="7169512355179757182">"Qamba kabusha ilebula"</string>
+    <string name="menu_deleteGroup" msgid="1126469629233412249">"Susa ilebula"</string>
+    <string name="menu_addToGroup" msgid="3267409983764370041">"Engeza oxhumana naye"</string>
+    <string name="menu_selectForGroup" msgid="3999234528229376098">"Khetha oxhumana nabo"</string>
+    <string name="menu_addContactsToGroup" msgid="655196688840626483">"Engeza oxhumana nabo"</string>
+    <string name="menu_removeFromGroup" msgid="6720354305399961978">"Susa kusuka kulebula"</string>
+    <string name="menu_new_group_action_bar" msgid="3127059073617415221">"Dala ilebula"</string>
     <string name="splitConfirmation" msgid="7342030840130187290">"Susa ukuxhumanisa lo oxhumana naye umfake koxhumana nabo abaningi?"</string>
     <string name="splitConfirmation_positive_button" msgid="9129409098807939699">"Susa ukuxhumanisa"</string>
     <string name="splitConfirmationWithPendingChanges" msgid="7719062163511895696">"Ungathanda ukulondoloza ushintsho osuvele ulwenzile uphinde ususe ukuxhumana kwalo oxhumana naye kwiningi loxhumana nabo?"</string>
     <string name="splitConfirmationWithPendingChanges_positive_button" msgid="9073444264887244032">"Londoloza uphinde ususe ukuxhumanisa"</string>
     <string name="joinConfirmation" msgid="8262614843581924365">"Ungathanda ukulondoloza ushintsho osuvele ulwenzile uphinde uxhumane noxhumana naye okhethiwe?"</string>
     <string name="joinConfirmation_positive_button" msgid="4573092849769149516">"Londoloza uphinde uxhumanise"</string>
+    <string name="contacts_linking_progress_bar" msgid="2846494347384549277">"Iyaxhuma"</string>
+    <string name="contacts_unlinking_progress_bar" msgid="5989310198163726929">"Isusa ukuxhumanisa"</string>
     <string name="menu_joinAggregate" msgid="3599512127797513606">"Isixhumanisi"</string>
+    <string name="menu_linkedContacts" msgid="400444389718855621">"Buka oxhumana nabo abaxhunyiwe"</string>
     <string name="menu_save" msgid="1727844363591825909">"Londoloza"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Xhumanisa oxhumana nabo"</string>
     <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Khetha oxhumana naye ofuna ukumxhuma no-<xliff:g id="NAME">%s</xliff:g>:"</string>
-    <string name="showAllContactsJoinItem" msgid="2189695051430392383">"Bonakalisa bonke  othintana nabo"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Othintana nabo abasikiselwayo"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Bonke othintana nabo"</string>
+    <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> uxhunyiwe"</string>
     <string name="contactsJoinedMessage" msgid="3343535986195643136">"Oxhumana nabo baxhunyiwe"</string>
+    <string name="contacts_deleted_one_named_toast" msgid="2252551736301363193">"<xliff:g id="NAME">%1$s</xliff:g> kususiwe"</string>
+    <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"<xliff:g id="NAME_0">%1$s</xliff:g> no-<xliff:g id="NAME_1">%2$s</xliff:g> basusiwe"</string>
+    <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… basusiwe"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
       <item quantity="one">Oxhumana nabo basusiwe</item>
       <item quantity="other">Oxhumana nabo basusiwe</item>
     </plurals>
+    <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> oxhumana nabo</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> oxhumana nabo</item>
+    </plurals>
+    <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> oxhumana nabo · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> oxhumana nabo · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
+    </plurals>
+    <string name="title_from_google" msgid="4664084747121207202">"Kusukela ku-Google"</string>
+    <string name="title_from_other_accounts" msgid="8307885412426754288">"Kusuka ku-<xliff:g id="ACCOUNT">%s</xliff:g>"</string>
     <string name="menu_set_ring_tone" msgid="8728345772068064946">"Hlela iringithoni"</string>
-    <string name="menu_redirect_calls_to_vm" msgid="4181789196416396656">"Wonke amakholi aya kwimeyili yezwi"</string>
-    <string name="readOnlyContactWarning" msgid="5526727661978307833">"Oxhumana nabo kusukela kuma-akhawunti wakho wokufunda kuphela abakwazi ukususwa, kodwa bangafihlwa."</string>
-    <string name="readOnlyContactWarning_positive_button" msgid="6541862607313811926">"Fihla"</string>
-    <string name="readOnlyContactDeleteConfirmation" msgid="8782086424739664753">"Oxhumana naye ozosuswa unemininingwane kusukela kuma-akhawunti amaningi. Imininingwane esuka kuma-akhawunti wokufunda kuphela azofihlwa, ngeke asuswe."</string>
-    <string name="batch_link_single_contact_warning" msgid="1346058571502058767">"Udinga okungenani oxhumana nabo ababili abakhethiwe ukuze wenze ukuxhumanisa."</string>
-    <string name="batch_link_confirmation" msgid="5845237114309114908">"Xhumanisa oxhumana nabo abakhethiwe?"</string>
-    <string name="batch_link_confirmation_positive_button" msgid="5018899675473363525">"Isixhumanisi"</string>
+    <string name="menu_redirect_calls_to_vm" msgid="83331924006712755">"Faka umzila wevoyisimeyili"</string>
+    <string name="menu_unredirect_calls_to_vm" msgid="8725542534701811737">"Susa umzila wevoyisimeyili"</string>
+    <string name="readOnlyContactWarning" msgid="7514475664695089411">"Lo oxhumana naye ufundeka kuphela. Angasuswa, kodwa akakwazi ukufihlwa."</string>
+    <string name="readOnlyContactWarning_positive_button" msgid="8914797212167683673">"Fihla oxhumana naye"</string>
+    <string name="readOnlyContactDeleteConfirmation" msgid="4717023505914239809">"Ama-akhawunti okufunda kuphela azofihlwa, ngeke asulwe."</string>
     <string name="single_delete_confirmation" msgid="3106905986948679720">"Susa lo oxhumana naye?"</string>
     <string name="batch_delete_confirmation" msgid="3984346060324014108">"Susa oxhumana nabo abakhethiwe?"</string>
     <string name="batch_delete_read_only_contact_confirmation" msgid="8411117621035639964">"Oxhumana nabo kusukela kuma-akhawunti wakho wokufunda kuphela abakwazi ukususwa, kodwa bangafihlwa."</string>
@@ -90,177 +92,124 @@
     <string name="multipleContactDeleteConfirmation" msgid="5235324124905653550">"Ukususa lo oxhumana naye kuzosusa iminingwane kusukela kuma-akhawunti amaningi."</string>
     <string name="deleteConfirmation" msgid="3512271779086656043">"Susa lo oxhumana naye?"</string>
     <string name="deleteConfirmation_positive_button" msgid="7857888845028586365">"Susa"</string>
-    <string name="menu_discard" msgid="6854657936970228164">"Lahla izinguquko"</string>
     <string name="invalidContactMessage" msgid="8215051456181842274">"Oxhumana naye akekho."</string>
     <string name="createContactShortcutSuccessful_NoName" msgid="8831303345367275472">"Oxhumana naye ungezwe kusikrini sasekhaya."</string>
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"U-<xliff:g id="NAME">%s</xliff:g> ungezwe kusikrini sasekhaya."</string>
-    <string name="pickerNewContactHeader" msgid="7750705279843568147">"Dala othintana naye omusha"</string>
-    <string name="pickerNewContactText" msgid="6166997164401048211">"Dala othintana naye omusha"</string>
-  <string-array name="otherLabels">
-    <item msgid="8287841928119937597">"Inhlangano"</item>
-    <item msgid="7196592230748086755">"Yazi"</item>
-  </string-array>
-    <string name="photoPickerNotFoundText" product="tablet" msgid="6247290728908599701">"Azikho izithombe ezitholakalayo kwithebhulethi."</string>
-    <string name="photoPickerNotFoundText" product="default" msgid="431331662154342581">"Azikho izithombe ezitholakalayo kwifoni."</string>
+    <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Azikho izithombe ezitholakala kudivayisi."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Isithombe sothintana naye"</string>
     <string name="customLabelPickerTitle" msgid="1081475101983255212">"Igama lelebula efiswayo"</string>
-    <string name="send_to_voicemail_checkbox" msgid="9001686764070676353">"Thumela ngokuqondile amakholi emyalezwini wezwi"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Khipha isithombe"</string>
-    <string name="noContacts" msgid="4955659076981974652">"Abekho othintana nabo"</string>
-    <string name="noGroups" msgid="8614664663561385253">"Awekho amaqembu."</string>
-    <string name="noAccounts" msgid="7768267764545265909">"Ukuze wakhe iqembu udinga i-akhawunti"</string>
-    <string name="emptyGroup" msgid="7502116218697177370">"Akunabanti kuleli qembu."</string>
-    <string name="addPeopleToGroup" msgid="7879585947222263516">"Ukungeza okunye, hlela iqembu."</string>
-    <string name="savingContact" msgid="4075751076741924939">"Igcina othintana naye..."</string>
+    <string name="noContacts" msgid="2228592924476426108">"Uhlu lwakho loxhumana nabo alunalutho"</string>
+    <string name="emptyGroup" msgid="5102411903247859575">"Abekho oxhumana nabo abanale lebula"</string>
+    <string name="emptyAccount" msgid="6873962901497975964">"Abekho oxhumana nabo kule akhawunti"</string>
+    <string name="emptyMainList" msgid="2772242747899664460">"Uhlu lwakho loxhumana nabo alunalutho"</string>
+    <string name="contactSavedNamedToast" msgid="895136068894549611">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> kulondoloziwe"</string>
     <string name="contactSavedToast" msgid="9171862279493213075">"Oxhumana naye olondoloziwe"</string>
     <string name="contactUnlinkedToast" msgid="7122823195786012553">"Oxhumana nabo basuswe ukuxhumana"</string>
-    <string name="contactSavedErrorToast" msgid="3207250533172944892">"Yehlulekile ukulondoloza izinguquko zoxhumana nabo."</string>
-    <string name="contactUnlinkErrorToast" msgid="2758070702785994171">"Ayikwazanga ukususa isixhumanisi koxhumana naye."</string>
-    <string name="contactJoinErrorToast" msgid="3977932531264809035">"Ayikwazanga ukuxhuma oxhumana naye."</string>
-    <string name="contactGenericErrorToast" msgid="7774911165341591714">"Iphutha lokulondoloza oxhumana naye."</string>
-    <string name="contactPhotoSavedErrorToast" msgid="4079032272022979114">"Ayikwazanga ukulondoloza izinguquko zesithombe sokuxhumana."</string>
-    <string name="groupSavedToast" msgid="1168756874239833756">"Isigcawu silondiwe"</string>
-    <string name="groupSavedErrorToast" msgid="7984466936615304740">"Yehlulekile ukulana izinguquko zeqembu."</string>
-    <plurals name="listTotalPhoneContacts" formatted="false" msgid="3692277679143308755">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> oxhumana nabo abanezinombolo zefoni</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> oxhumana nabo abanezinombolo zefoni</item>
-    </plurals>
-    <string name="listTotalPhoneContactsZero" msgid="6968813857632984319">"Abekho othintana nabo abanezinombolo zocingo"</string>
-    <plurals name="listFoundAllContacts" formatted="false" msgid="4872115339963093220">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> abatholakele</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> abatholakele</item>
-    </plurals>
+    <string name="contactSavedErrorToast" msgid="4827033473908688031">"Ayikwazanga ukulondoloza ushintsho loxhumana naye"</string>
+    <string name="contactUnlinkErrorToast" msgid="2706297508166952431">"Ayikwazanga ukususa ukuxhumanisa oxhumana naye"</string>
+    <string name="contactJoinErrorToast" msgid="5735129234573327701">"Ayikwazanga ukuxhumanisa oxhumana naye"</string>
+    <string name="contactGenericErrorToast" msgid="3885457515665783976">"Iphutha lokulondoloza oxhumana naye"</string>
+    <string name="contactPhotoSavedErrorToast" msgid="6860883564984042194">"Ayikwazanga ukulondoloza ushintsho lwesithombe loxhumana naye"</string>
+    <string name="groupLoadErrorToast" msgid="7536267148196064554">"Yehlulekile ukulayisha ilebula"</string>
+    <string name="groupDeletedToast" msgid="520896687873262027">"Ilebula isusiwe"</string>
+    <string name="groupCreatedToast" msgid="1924195126172834870">"Ilebula idaliwe"</string>
+    <string name="groupCreateFailedToast" msgid="4359093891863474299">"Ayikwazi ukudala ilebuli"</string>
+    <string name="groupUpdatedToast" msgid="3667977658676267687">"Ilebula libuyekeziwe"</string>
+    <string name="groupMembersRemovedToast" msgid="3510563559799376603">"Kususiwe kulebula"</string>
+    <string name="groupMembersAddedToast" msgid="4824834898718972768">"Kungeziwe kulebuli"</string>
+    <string name="groupSavedErrorToast" msgid="2355891714292740162">"Ayikwazanga ukulondoloza ushintsho lwelebula"</string>
+    <string name="groupExistsErrorMessage" msgid="5196811283836946189">"Leyo lebuli isivele ikhona"</string>
+    <string name="groupSomeContactsNoEmailsToast" msgid="8211161470235548732">"Abanye oxhumana nabo abanawo amakheli e-imeyili."</string>
+    <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Abanye oxhumana nabo abanazo izinombolo zefoni."</string>
+    <string name="menu_sendEmailOption" msgid="5978319931321657780">"Thumela i-imeyli"</string>
+    <string name="menu_sendMessageOption" msgid="8850168125274916426">"Thumela umlayezo"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Khetha Oxhumana Nabo"</string>
+    <string name="send_to_selection" msgid="2251339182881603540">"Thumela"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Abekho oxhumana nabo"</string>
-    <plurals name="searchFoundContacts" formatted="false" msgid="7223023725334884618">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> abatholakele</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> abatholakele</item>
-    </plurals>
-    <string name="all_contacts_tab_label" msgid="5948889261993124839">"Konke"</string>
-    <string name="favorites_tab_label" msgid="1524869648904016414">"Izintandokazi"</string>
-    <string name="callBack" msgid="5498224409038809224">"Phinda ushayele"</string>
-    <string name="callAgain" msgid="3197312117049874778">"Shayela futhi"</string>
-    <string name="returnCall" msgid="8171961914203617813">"Buyisela ikholi"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Faka  \"<xliff:g id="EMAIL">%s</xliff:g>\"  kothintana nabo?"</string>
-    <string name="description_contact_photo" msgid="3387458082667894062">"isithombe sothintana naye"</string>
-    <string name="description_plus_button" msgid="515164827856229880">"kuhlanganise"</string>
-    <string name="exporting_contact_list_progress" msgid="560522409559101193">"<xliff:g id="CURRENT_NUMBER">%s</xliff:g> kothintana nabo abangu-<xliff:g id="TOTAL_NUMBER">%s</xliff:g>"</string>
     <string name="search_settings_description" msgid="2675223022992445813">"Amagama othintana nabo"</string>
-    <string name="quickcontact_missing_app" msgid="358168575340921552">"Ayikho uhlelo lokusebenza etholakele ukubhekana nalengxenye."</string>
     <string name="quickcontact_transparent_view_description" msgid="987959416759562455">"Chofoza ukuze ubuyele kusikrini sangaphambilini"</string>
     <string name="quickcontact_add_phone_number" msgid="731665835910658965">"Engeza inombolo yefoni"</string>
     <string name="quickcontact_add_email" msgid="739298028384348482">"Engeza i-imeyili"</string>
     <string name="missing_app" msgid="1466111003546611387">"Alukho uhlelo lokusebenza olutholakalele ukuphatha lesi senzo."</string>
     <string name="menu_share" msgid="943789700636542260">"Yabelana"</string>
     <string name="menu_add_contact" msgid="3198704337220892684">"Engeza koxhumana nabo"</string>
-    <string name="share_via" msgid="563121028023030093">"Abelana nothintana naye nge"</string>
-    <string name="dialog_new_group_account" msgid="2318032089273496830">"Yenza isigcawu ngaphansi kwe-akhawunti"</string>
+    <string name="menu_add_contacts" msgid="4465646512002163011">"Yengeza"</string>
+    <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
+      <item quantity="one">Yabelana oxhumana nabo nge-</item>
+      <item quantity="other">Yabelana oxhumana nabo nge-</item>
+    </plurals>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Khetha i-akhawunti"</string>
+    <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Dala ilebula"</string>
+    <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Qamba kabusha ilebula"</string>
+    <string name="group_name_dialog_hint" msgid="7624523157537700160">"Igama lelebula"</string>
+    <string name="label_name_dialog_hint" msgid="1276051790427638142">"Igama lelebula"</string>
     <string name="audio_chat" msgid="2535716629358298691">"Ingxoxo yezw"</string>
     <string name="video_chat" msgid="1872255818640336072">"Ingxoxo yevidiyo"</string>
-    <string name="connections" msgid="8098440723172028350">"Oxhumana nabo"</string>
-    <string name="add_connection_button" msgid="4861308615789601727">"Yengeza oxhumana nabo"</string>
-    <string name="recent" msgid="2659189233141493004">"Okwakamuva"</string>
-    <string name="recent_updates" msgid="4267258535615860710">"Izibuyekezo zamanje"</string>
     <string name="account_type_format" msgid="718948015590343010">"Othintana naye nge-<xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="google_account_type_format" msgid="5283997303922067997">"<xliff:g id="SOURCE">%1$s</xliff:g> i-akhawunti"</string>
-    <!-- no translation found for from_account_format (4469138575127580203) -->
-    <skip />
-    <string name="contact_read_only" msgid="7421346527289472273">"Ayihleleki kulensiza"</string>
-    <string name="group_read_only" msgid="1061762906115697637">"Ayihleleki kuledivayisi"</string>
     <string name="take_photo" msgid="7496128293167402354">"Thatha isithombe"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Thatha isithombe esisha"</string>
     <string name="pick_photo" msgid="2129509985223564942">"Khetha isithombe"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Khetha isithombe"</string>
-    <string name="upgrade_in_progress" msgid="474511436863451061">"Uhlu lothintana naye luyabuyekezwa."</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Iyasesha..."</string>
-    <string name="menu_display_selected" msgid="6470001164297969034">"Khetha okukhethiwe"</string>
-    <string name="menu_display_all" msgid="8887488642609786198">"Bonisa konke"</string>
-    <string name="menu_select_all" msgid="621719255150713545">"Khetha konke"</string>
-    <string name="menu_select_none" msgid="7093222469852132345">"Ungakhethi konke"</string>
-    <string name="add_new_entry_for_section" msgid="5223080690667565044">"Faka okusha"</string>
-    <string name="add_organization" msgid="7311893231158291197">"Ngeza inhlangano"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Idethi"</string>
-    <string name="group_edit_field_hint_text" msgid="3966441850870457808">"Igama leqembu"</string>
-    <string name="change_photo" msgid="8530597935483526383">"Guqula"</string>
-    <string name="primary_photo" msgid="8517942231868516999">"Isithombe esiyinhloko"</string>
-    <string name="description_star" msgid="2605854427360036550">"intandokazi"</string>
-    <string name="edit_contact" msgid="7529281274005689512">"Hlela othintana naye"</string>
-    <string name="aggregation_suggestion_join_dialog_message" msgid="6786192560870357912">"Xhuma oxhumana naye wamanje noxhumana naye okhethiwe?"</string>
+    <string name="group_edit_field_hint_text" msgid="8038224059926963133">"Ilebula"</string>
+    <string name="cancel_button_content_description" msgid="1288652456274531846">"Khansela"</string>
+    <string name="back_arrow_content_description" msgid="4355362760545735065">"Phindela emuva"</string>
+    <string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"vala"</string>
     <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"Shintshela ekuhleleni othintana naye okhethiwe? Ulwazi olufakile kuze kube manje luzokopishwa."</string>
-    <string name="menu_copyContact" msgid="1573960845106822639">"Kopisha kwengithintana nabo"</string>
-    <string name="add_to_my_contacts" msgid="1068274916793627723">"Faka Kothintana Nabo"</string>
     <string name="contact_directory_description" msgid="683398073603909119">"Uhla lwemibhalo <xliff:g id="TYPE">%1$s</xliff:g>"</string>
-    <string name="list_filter_custom" msgid="8910173055702057002">"Ngokwezifiso"</string>
     <string name="activity_title_settings" msgid="5464130076132770781">"Izilungiselelo"</string>
     <string name="menu_settings" msgid="377929915873428211">"Izilungiselelo"</string>
     <string name="menu_help" msgid="1680178646764069976">"Usizo nempendulo"</string>
-    <string name="preference_displayOptions" msgid="1341720270148252393">"Izinketho zokubonisa"</string>
     <string name="organization_company_and_title" msgid="6718207751363732025">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="1541655052330027380">"Inombolo yefoni"</string>
     <string name="non_phone_add_to_contacts" msgid="6590985286250471169">"Yengeza kothintana nabo"</string>
-    <string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"Faka koxhumana nabo"</string>
     <string name="non_phone_close" msgid="7608506439725515667">"Vala"</string>
-    <string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
     <string name="date_year_toggle" msgid="7122002148518724139">"Faka unyaka"</string>
-    <string name="social_widget_label" msgid="6378905543028924592">"Othintana nabo"</string>
-    <string name="social_widget_loading" msgid="5327336597364074608">"Iyalayisha…"</string>
-    <string name="contacts_unavailable_create_contact" msgid="7014525713871959208">"Dala othintana naye omusha"</string>
     <string name="contacts_unavailable_add_account" msgid="4347232421410561500">"Engeza i-akhawunti"</string>
-    <string name="contacts_unavailable_import_contacts" msgid="4957393255392437529">"Ngenisa othintana nabo"</string>
-    <string name="create_group_dialog_title" msgid="6874527142828424475">"Dala iqembu elisha"</string>
-    <string name="create_group_item_label" msgid="4411981763169654825">"Dala iqembu elisha"</string>
-    <plurals name="num_groups_in_account" formatted="false" msgid="6189297639209663469">
-      <item quantity="one"><xliff:g id="COUNT">%0$d</xliff:g> amaqembu</item>
-      <item quantity="other"><xliff:g id="COUNT">%0$d</xliff:g> amaqembu</item>
-    </plurals>
-    <string name="delete_group_dialog_message" msgid="7586856514337560529">"Susa leliqembu \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (oxhumana nabo ngeke basuseke.)"</string>
-    <plurals name="num_contacts_in_group" formatted="false" msgid="5520734553286350341">
-      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> abantu kusuka ku-<xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-      <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> abantu kusuka ku-<xliff:g id="ACCOUNT_TYPE_3">%2$s</xliff:g></item>
-    </plurals>
-    <plurals name="group_list_num_contacts_in_group" formatted="false" msgid="8240460423614369023">
-      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> abantu</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> abantu</item>
-    </plurals>
+    <string name="contacts_unavailable_import_contacts" msgid="3182801738595937144">"Ngenisa"</string>
+    <string name="create_group_item_label" msgid="3263064599743742865">"Dala amasha…"</string>
+    <string name="delete_group_dialog_message" msgid="335713829185261371">"Susa ilebula engu-\"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\"? (Oxhumana nabo ngokwabo ngeke baze basuswe.)"</string>
     <string name="toast_join_with_empty_contact" msgid="1215465657839085613">"Bhala igama lomuntu oxhumana naye ngaphambili kokujoyina nomunye."</string>
     <string name="copy_text" msgid="3257145021583508761">"Kopisha ku-clipboard"</string>
     <string name="set_default" msgid="4417505153468300351">"Hlela okuzenzakalelayo"</string>
     <string name="clear_default" msgid="7193185801596678067">"Sula okuzenzakalelayo"</string>
     <string name="toast_text_copied" msgid="5143776250008541719">"Umbhalo okopishiwe"</string>
-    <string name="cancel_confirmation_dialog_message" msgid="5885724679874403115">"Lahla izinguquko ozenzile?"</string>
-    <string name="cancel_confirmation_dialog_message_positive_button" msgid="5867089312833413172">"Lahla"</string>
-    <string name="call_type_and_date" msgid="747163730039311423">"<xliff:g id="CALL_TYPE">%1$s</xliff:g> <xliff:g id="CALL_SHORT_DATE">%2$s</xliff:g>"</string>
-    <string name="profile_display_name" msgid="4127389543625918771">"Misa iphrofayli yami"</string>
-    <string name="enter_contact_name" msgid="1738391320566349924">"Thayipha igama lomuntu"</string>
-    <string name="group_name_hint" msgid="238359485263401293">"Igama leqemnbu"</string>
+    <string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"Lahla ushintsho?"</string>
+    <string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"Lahla"</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Khansela"</string>
+    <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Lahla ukwenza ngezifiso?"</string>
+    <string name="enter_contact_name" msgid="4594274696120278368">"Sesha oxhumana nabo"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Susa oxhumana nabo"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Imininingwane yami yakuleli"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Imininingwane <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> yami"</string>
-    <string name="toast_displaying_all_contacts" msgid="2737388783898593875">"Ibonisa bonke abathintwayo"</string>
-    <string name="no_account_prompt" msgid="6424883302325061025">"Oxhumana nabo basebenza kangcono nge-akhawunti ye-Google.\n\n• Finyelela kusuka kunoma isiphi isiphequluli sewebhu.\n• Yenza isipele oxhumana nabo ngokuvikelekile."</string>
-    <string name="generic_no_account_prompt" msgid="7218827704367325460">"Gcina oxhumana nabo bephephile noma ngabe ulahlekelwa yiselula yakho: lungelanisa nensiza yokusebenzisa i-inthanethi."</string>
-    <string name="generic_no_account_prompt_title" msgid="753783911899054860">"Yengeza i-akhawunti"</string>
-    <string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"Umxhumani wakho omusha akalondolozeki. Yngeza i-akhawunti ekwazi ukulondoloza abaxhumani emoyeni?"</string>
+    <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Thatha iminithi ukungeza i-akhawunti ezokwenza isipele oxhumana nabo ku-Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Oxhumana nabo bazolondolozwa ku-<xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Khetha i-akhawunti ezenzakalelayo yoxhumana nabo abasha:"</string>
-    <string name="contact_editor_title_new_contact" msgid="7192223018128934940">"Engeza oxhumana naye omusha"</string>
+    <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Dala othintana naye omusha"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Hlela oxhumana naye"</string>
-    <string name="keep_local" msgid="1258761699192993322">"Gcina kuseduze"</string>
+    <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Buka kuphela"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Khetha oxhumana naye ongamhlela"</string>
+    <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Oxhumana nabo abaxhunyiwe"</string>
+    <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Engeza"</string>
+    <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Susa ukuxhumanisa"</string>
     <string name="add_account" msgid="8201790677994503186">"Engeza i-akhawunti"</string>
     <string name="add_new_account" msgid="5748627740680940264">"Yengeza i-akhawunti enthsha"</string>
     <string name="menu_export_database" msgid="2659719297530170820">"Khipha amafayela emininingo egciniwe"</string>
-    <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"engeza oxhumana naye omusha"</string>
+    <string name="action_menu_add_new_contact_button" msgid="5506832825256203208">"Dala othintana naye omusha"</string>
     <string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"Buka okuningi"</string>
     <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"Buka okuncane"</string>
-    <string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"Buka konke"</string>
     <string name="recent_card_title" msgid="8982782042698001695">"Okwakamuva"</string>
     <string name="about_card_title" msgid="2920942314212825637">"Mayelana"</string>
-    <string name="send_message" msgid="8938418965550543196">"Thumela umlayezo"</string>
-    <string name="toast_making_personal_copy" msgid="6137651078366797938">"Idala ikhophi yomuntu siqu..."</string>
-    <string name="yesterday" msgid="6840858548955018569">"Izolo"</string>
+    <string name="toast_making_personal_copy" msgid="288549957278065542">"Idala ikhophi yomuntu siqu"</string>
     <string name="tomorrow" msgid="6241969467795308581">"Kusasa"</string>
     <string name="today" msgid="8041090779381781781">"Namhlanje"</string>
     <string name="today_at_time_fmt" msgid="605665249491030460">"Namhlanje ngo-<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
     <string name="tomorrow_at_time_fmt" msgid="4856497969617819421">"Kusasa ngo-<xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
-    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%s</xliff:g>, <xliff:g id="TIME_INTERVAL">%s</xliff:g>"</string>
+    <string name="date_time_fmt" msgid="5053178726906863812">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="untitled_event" msgid="3484859385405939366">"(Umcimbi ongenasihloko)"</string>
     <string name="date_time_set" msgid="4761419824439606690">"Setha"</string>
     <string name="header_im_entry" msgid="3581720979640225615">"I-IM"</string>
@@ -270,96 +219,315 @@
     <string name="header_website_entry" msgid="1411467850000824745">"Iwebhusayithi"</string>
     <string name="header_event_entry" msgid="6738250422744401460">"Umcimbi"</string>
     <string name="header_relation_entry" msgid="1520292958088146460">"Ubudlelwano"</string>
-    <string name="header_account_entry" msgid="2684318506427891827">"I-Akhawunti"</string>
     <string name="header_name_entry" msgid="1592791008096288306">"Igama"</string>
     <string name="header_email_entry" msgid="8666093061171624478">"I-imeyili"</string>
     <string name="header_phone_entry" msgid="8450980572274173570">"Ifoni"</string>
-    <string name="header_photo_entry" msgid="4438023151411853238">"Isithombe"</string>
-    <string name="content_description_expand_editor" msgid="1111381475901897470">"Chofoza ukuze unwebe isihleli soxhumana naye."</string>
-    <string name="content_description_collapse_editor" msgid="7598061318022977825">"Chofoza ukuze ugoqe isihleli soxhumana naye."</string>
     <string name="content_description_directions" msgid="2686791825798189335">"izikhombisi-ndlela eziya endaweni"</string>
-    <string name="content_description_recent_sms" msgid="1666389577263317445">"i-sms yakamuva. <xliff:g id="MESSAGE_BODY">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. chofoza ukuze uphendule"</string>
+    <string name="content_description_recent_sms" msgid="1666389577263317445">"i-sms yakamuva. <xliff:g id="MESSAGE_BODY">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. chofoza ukuze uphendule"</string>
     <string name="content_description_recent_call_type_incoming" msgid="5210739096863511410">"angenayo"</string>
     <string name="content_description_recent_call_type_outgoing" msgid="5156553338985232744">"aphumayo"</string>
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"akuphuthele"</string>
-    <string name="content_description_recent_call" msgid="5183800406316723676">"ikholi yakamuva. <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. chofoza ukuze uphinde ushaye"</string>
+    <string name="content_description_recent_call" msgid="5183800406316723676">"ikholi yakamuva. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. chofoza ukuze uphinde ushaye"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Wena: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"I-Hangouts isebenza kangcono uma ufaka isikhombi somuntu se-Hangouts kunkambu ye-imeyili noma kunkambu yefoni."</string>
-    <string name="compact_editor_more_fields" msgid="5987638193568699600">"Izinkambu eziningi"</string>
-    <string name="compact_editor_change_photo_content_description" msgid="5495487714301211540">"Guqula isithombe"</string>
-    <string name="compact_editor_failed_to_load" msgid="4557094426388044958">"Yehlulekile ukuvula umhleli."</string>
-    <string name="compact_editor_account_selector_title" msgid="5119592614151786601">"Ukulondoloza ku-"</string>
-    <string name="compact_editor_account_selector_description" msgid="2127184829759350507">"Okwamanje ilondoloza ku-<xliff:g id="ACCOUNT_NAME">%s</xliff:g>. Thepha kabili ukuze ukhethe i-akhawunti ehlukile."</string>
-    <plurals name="compact_editor_linked_contacts_selector_title" formatted="false" msgid="9156207930915878316">
-      <item quantity="one">Oxhumana nabo abaxhunyiwe (<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">Oxhumana nabo abaxhunyiwe (<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_contacts_number" msgid="6036916944287597682">"<xliff:g id="COUNT">%d</xliff:g> oxhumana nabo abaxhunyiwe"</string>
-    <string name="quick_contact_display_name_with_phonetic" msgid="3692038078718876610">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> (<xliff:g id="PHONETIC_NAME">%s</xliff:g>)"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Izinkambu eziningi"</string>
+    <string name="editor_change_photo_content_description" msgid="820879708069864340">"Shintsha isithombe soxhumana naye"</string>
+    <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Engeza isithombe soxhumana naye"</string>
+    <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Isithombe sothintana naye"</string>
+    <string name="editor_failed_to_load" msgid="1623639078580475818">"Yehlulekile ukuvula umhleli."</string>
+    <string name="editor_account_selector_title" msgid="4426337993307015833">"Ukulondoloza ku-"</string>
+    <string name="editor_account_selector_read_only_title" msgid="4137969650184457126">"Ulwazi loxhumana naye kusuka ku-<xliff:g id="ACCOUNT">%s</xliff:g> aluhleleki"</string>
     <string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"XHUMANISA AMA-AKHAWUNTI"</string>
     <string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"KHANSELA"</string>
-    <plurals name="quickcontact_suggestion_card_title" formatted="false" msgid="2660005966628746406">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> Izimpinda ezingenzeka</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Izimpinda ezingenzeka</item>
-    </plurals>
-    <plurals name="quickcontact_suggestions_number" formatted="false" msgid="495992931510695330">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> oxhumana nabo abaxhunyiwe</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> oxhumana nabo abaxhunyiwe</item>
-    </plurals>
-    <plurals name="quickcontact_suggestion_account_type_number" formatted="false" msgid="3001681298924002373">
-      <item quantity="one">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-      <item quantity="other">(<xliff:g id="COUNT">%d</xliff:g>)</item>
-    </plurals>
-    <string name="quickcontact_suggestion_account_type" msgid="5878263654735376962">"<xliff:g id="ACCOUNT_TYPE_0">%s</xliff:g><xliff:g id="ACCOUNT_TYPE_NUMBER">%s</xliff:g>"</string>
     <string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"Lo oxhumana naye"</string>
     <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"Izimpinda ezingenzeka"</string>
     <string name="suggestion_card_help_message" msgid="4474061044387181093">"Laba oxhumana nabo kungaba umuntu ofanayo. Ungabaxhumanisa ndawonye njengoxhumana naye oyedwa."</string>
-    <string name="compact_editor_linked_contacts_title" msgid="4417919183651782674">"Oxhumana nabo abaxhunyiwe"</string>
-    <string name="from_your_accounts" msgid="1746293107836889912">"Kusuka kuma-akhawunti wakho"</string>
-    <string name="take_a_photo_button" msgid="6268693854069113488">"Thatha isithombe"</string>
-    <string name="all_photos_button" msgid="1943122929420111351">"Zonke izithombe"</string>
-    <string name="photo_picker_title" msgid="5272832995550042801">"Khetha isithombe"</string>
-    <string name="contact_from_account_name" msgid="2078526819634079406">"Kusuka ku-<xliff:g id="ACCOUNT_NAME">%s</xliff:g>"</string>
-    <string name="editor_delete_view_description" msgid="8583095381562991959">"Susa <xliff:g id="DATA_TYPE">%s </xliff:g><xliff:g id="DATA_KIND">%s</xliff:g>"</string>
+    <string name="editor_delete_view_description" msgid="8583095381562991959">"Susa <xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g>"</string>
     <string name="editor_delete_view_description_short" msgid="7335518371270844912">"Susa <xliff:g id="DATA_KIND">%s</xliff:g>"</string>
-    <string name="photo_view_description_not_checked" msgid="8876314195990885177">"Isithombe kusuka ku-<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>asimakiwe"</string>
-    <string name="photo_view_description_checked" msgid="3906597168607472795">"Isithombe kusuka ku-<xliff:g id="ACCOUNT_TYPE">%s </xliff:g><xliff:g id="USER_NAME">%s </xliff:g>simakiwe"</string>
-    <string name="photo_view_description_not_checked_no_info" msgid="2749154927006406981">"Isithombe esivela ku-akhawunti engaziwa asithikhiwe"</string>
-    <string name="photo_view_description_checked_no_info" msgid="4974335987092590591">"Isithombe esivela ku-akhawunti engaziwa sithikhiwe"</string>
-    <string name="locale_change_in_progress" msgid="1124266507671178413">"Uhlu lothintana naye luyabuyekezwa ukubonisa ushintsho lolimi.\n\nSicela ulinde..."</string>
-    <!-- no translation found for blocked_numbers_title (6350716762304498682) -->
-    <skip />
-    <!-- no translation found for blocked_number_header_message (7296377056254430077) -->
-    <skip />
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Engeza inombolo"</string>
-    <string name="search_shortcut_block_number" msgid="4787156645163436072">"Vimba inombolo"</string>
-    <string name="block_number_search_hint" msgid="5409571607043872758">"Engeza inombolo noma useshe oxhumana nabo"</string>
-    <!-- no translation found for block_number_confirmation_message (4425497283298329703) -->
-    <skip />
-    <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vulela i-<xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="unblock_number_ok" msgid="6449899182699684786">"VULELA"</string>
-    <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vimba <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
-    <string name="block_number_ok" msgid="770551992296781873">"VIMBA"</string>
-    <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ivinjiwe"</string>
-    <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> vulela"</string>
-    <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ayivumelekile."</string>
-    <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Ukuvimbela ikholi kuvalwe isikhashana"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Ukuvimbela ikholi kukhutshaziwe ngoba uxhumane nabosizo oluphuthumayo kusukela kule foni phakathi kwamahora angu-48 wokugcina. Kuzophinda kunikwe amandla ngokuzenzakalela uma sokuphele isikhathi samahora angu-48."</string>
-    <!-- no translation found for blocked_call_settings_import_description (9026101454390679399) -->
-    <skip />
-    <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Ngenisa"</string>
-    <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Buka izinombolo"</string>
-    <string name="addBlockedNumber" msgid="6064812257482886526">"Engeza inombolo"</string>
-    <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Ukuvimbela ikholi kukhutshaziwe amahora angu-48"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Kukhutshaziwe ngoba ikholi ephuthumayo yenziwe."</string>
-    <string name="block_number_undo" msgid="591338370336724156">"HLEHLISA"</string>
-    <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> isivinjiwe kakade."</string>
-    <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Vulela inombolo"</string>
-    <string name="description_contact_details" msgid="51229793651342809">"Imininingwane yokuxhumana ka-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
-    <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ukulanda akuphumelelanga"</string>
-    <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Ngenisa izinombolo"</string>
-    <string name="permission_no_search" msgid="84152933267902056">"Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo."</string>
-    <string name="permission_single_turn_on" msgid="1543391076065465464">"Vula"</string>
-    <!-- no translation found for menu_blocked_numbers (5272951629083025995) -->
+    <string name="menu_assistant" msgid="5760693735722052454">"Iziphakamiso"</string>
+    <string name="menu_assistant_new_badge" msgid="3132884821616980034">"Okusha"</string>
+    <string name="navigation_drawer_open" msgid="1126498472143250642">"Vula ikhabethe lokuzulazula"</string>
+    <string name="navigation_drawer_close" msgid="4137416137011817930">"Vala ikhabethe lokuzulazula"</string>
+    <string name="navigation_drawer_label" msgid="4154758025620107419">"<xliff:g id="LABEL_NAME">%s</xliff:g> ilebuli"</string>
+    <string name="menu_title_groups" msgid="8356921831150278868">"Amalebula"</string>
+    <string name="menu_title_filters" msgid="8210922220185114527">"Ama-Akhawunti"</string>
+    <string name="permission_explanation_header" msgid="5739405825039695327">"Bona umlando wakho ndawonye"</string>
+    <string name="permission_explanation_subheader_calendar_and_SMS" msgid="5411144298889835768">"Imicimbi nemilayezo"</string>
+    <string name="permission_explanation_subheader_calendar" msgid="8785323496211704613">"Imicimbi"</string>
+    <string name="permission_explanation_subheader_SMS" msgid="1904552086449525567">"Imilayezo"</string>
+    <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Iziphakamiso"</string>
+    <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Gcina oxhumana nabo bahleliwe futhi basebenziseka"</string>
+    <string name="undo" msgid="1425165101664071422">"Hlehlisa"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Shayela ku-<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_home" msgid="1990519474420545392">"Shayela ekhaya"</string>
+    <string name="call_mobile" msgid="7502236805487609178">"Shayela ifoni"</string>
+    <string name="call_work" msgid="5328785911463744028">"Shayela emsebenzini"</string>
+    <string name="call_fax_work" msgid="7467763592359059243">"Shayela ifeksi yasemsebenzini"</string>
+    <string name="call_fax_home" msgid="8342175628887571876">"Shayela ifeksi yasekhaya"</string>
+    <string name="call_pager" msgid="9003902812293983281">"Shayela isicingo"</string>
+    <string name="call_other" msgid="8563753966926932052">"Shayela"</string>
+    <string name="call_callback" msgid="1910165691349426858">"Shayela ukuphinda ushaye"</string>
+    <string name="call_car" msgid="3280537320306436445">"Shayela imoto"</string>
+    <string name="call_company_main" msgid="6105120947138711257">"Shayela isisekelo senkampani"</string>
+    <string name="call_isdn" msgid="1541590690193403411">"Shayela i-ISDN"</string>
+    <string name="call_main" msgid="6082900571803441339">"Shayela isisekelo"</string>
+    <string name="call_other_fax" msgid="5745314124619636674">"Shayela ifeksi"</string>
+    <string name="call_radio" msgid="8296755876398357063">"Shayela umsakazo"</string>
+    <string name="call_telex" msgid="2223170774548648114">"Shayela i-telex"</string>
+    <string name="call_tty_tdd" msgid="8951266948204379604">"Shayela i-TTY/TDD"</string>
+    <string name="call_work_mobile" msgid="8707874281430105394">"Shayela ifoni yasemsebenzini"</string>
+    <string name="call_work_pager" msgid="3419348514157949008">"Shayela isicingo sasemsebenzini"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Shayela ku-<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="call_mms" msgid="6274041545876221437">"Shayela i-MMS"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Ikholi)"</string>
+    <string name="sms_custom" msgid="415060214233647603">"Thumela umbhalo ku-<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="sms_home" msgid="7524332261493162995">"Ikhaya lombhalo"</string>
+    <string name="sms_mobile" msgid="5200107250451030769">"Umbhalo wefoni"</string>
+    <string name="sms_work" msgid="2269624156655267740">"Bhalela emsebenzini"</string>
+    <string name="sms_fax_work" msgid="8028189067816907075">"Bhalela ifeksi yasemsebenzini"</string>
+    <string name="sms_fax_home" msgid="9204042076306809634">"Bhalela ifeksi yasekhaya"</string>
+    <string name="sms_pager" msgid="7730404569637015192">"Bhalela isicingo"</string>
+    <string name="sms_other" msgid="806127844607642331">"Umbhalo"</string>
+    <string name="sms_callback" msgid="5004824430094288752">"Bhalela ukuphinda ukushayela"</string>
+    <string name="sms_car" msgid="7444227058437359641">"Bhalela imoto"</string>
+    <string name="sms_company_main" msgid="118970873419678087">"Bhalela isisekelo senkampani"</string>
+    <string name="sms_isdn" msgid="8153785037515047845">"Bhalela i-ISDN"</string>
+    <string name="sms_main" msgid="8621625784504541679">"Bhalela isisekelo"</string>
+    <string name="sms_other_fax" msgid="3888842199855843152">"Ifeksi yombhalo"</string>
+    <string name="sms_radio" msgid="3329166673433967820">"Bhalela umsakazo"</string>
+    <string name="sms_telex" msgid="9034802430065267848">"Bhalela i-telex"</string>
+    <string name="sms_tty_tdd" msgid="6782284969132531532">"Bhalela i-TTY/TDD"</string>
+    <string name="sms_work_mobile" msgid="2459939960512702560">"Bhalela ifoni yasemsebenzini"</string>
+    <string name="sms_work_pager" msgid="5566924423316960597">"Bhalela isicingo sasemsebenzini"</string>
+    <string name="sms_assistant" msgid="2773424339923116234">"Okubhaliwe<xliff:g id="ASSISTANT">%s</xliff:g>"</string>
+    <string name="sms_mms" msgid="4069352461380762677">"Bhala i-MMS"</string>
+    <string name="sms_by_shortcut" msgid="7741770672976099517">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Umlayezo)"</string>
+    <string name="description_video_call" msgid="7120921378651700947">"Yenza ikholi yevidiyo"</string>
+    <string name="clearFrequentsConfirmation_title" msgid="766292372438450432">"Sula oxhumana nabo njalo?"</string>
+    <string name="clearFrequentsConfirmation" msgid="2270554975938265734">"Uzosula uhlu loxhumana nabo kakhulu kuzinhelo zokusebenza zokuxhumana noma zefoni, futhi uphoqelele izinhlelo zokusebenza ze-imeyili ukufunda izintandokazi zakho zekheli kusuka ekuqaleni."</string>
+    <string name="clearFrequentsProgress_title" msgid="5157001637482794212">"Isula oxhumana nabo njalo…"</string>
+    <string name="status_available" msgid="5586870015822828392">"Yatholakala"</string>
+    <string name="status_away" msgid="1838861100379804730">"Akekho"</string>
+    <string name="status_busy" msgid="9147992455450257136">"Matasa"</string>
+    <string name="local_invisible_directory" msgid="6046691709127661065">"Okunye"</string>
+    <string name="directory_search_label" msgid="1887759056597975053">"Uhla lwemibhalo"</string>
+    <string name="directory_search_label_work" msgid="8618292129829443176">"Uhla lwemibhalo lomsebenzi"</string>
+    <string name="local_search_label" msgid="2551177578246113614">"Bonke oxhumana nabo"</string>
+    <string name="description_quick_contact_for" msgid="6737516415168327789">"Oxhumene naye ngokushesha ku <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="missing_name" msgid="8745511583852904385">"(alikho igama)"</string>
+    <string name="favoritesFrequentContacted" msgid="6184232487472425690">"Abathintwa njalo"</string>
+    <string name="list_filter_phones" msgid="735313795643493365">"Bonke othintana nabo kanye nezinombolo zabo zocingo"</string>
+    <string name="list_filter_phones_work" msgid="1470173699551475015">"Oxhumana nabo bephrofayela yomsebenzi"</string>
+    <string name="view_updates_from_group" msgid="1782685984905600034">"Buka Okwenziwe Kabusha"</string>
+    <string name="account_phone" msgid="7128032778471187553">"Idivayisi"</string>
+    <string name="account_sim" msgid="6519016427905087952">"I-SIM"</string>
+    <string name="nameLabelsGroup" msgid="2034640839640477827">"Igama"</string>
+    <string name="nicknameLabelsGroup" msgid="2891682101053358010">"Igama lokudlala"</string>
+    <string name="name_given" msgid="4280790853455320619">"Igama"</string>
+    <string name="name_family" msgid="7466985689626017037">"Isibongo"</string>
+    <string name="name_prefix" msgid="59756378548779822">"Qamba isiqalo"</string>
+    <string name="name_middle" msgid="8467433655992690326">"Igama"</string>
+    <string name="name_suffix" msgid="3855278445375651441">"Qamba isijobelelo"</string>
+    <string name="name_phonetic" msgid="4259595234312430484">"Igama leFonethikhi"</string>
+    <string name="name_phonetic_given" msgid="8723179018384187631">"Igama lokuqala lefonethiki"</string>
+    <string name="name_phonetic_middle" msgid="8643721493320405200">"Igama lefonethikhi"</string>
+    <string name="name_phonetic_family" msgid="2640133663656011626">"Isibongo sefonethiki"</string>
+    <string name="phoneLabelsGroup" msgid="6468091477851199285">"Ifoni"</string>
+    <string name="emailLabelsGroup" msgid="8389931313045344406">"I-imeyli"</string>
+    <string name="postalLabelsGroup" msgid="3487738141112589324">"Ikheli"</string>
+    <string name="imLabelsGroup" msgid="3898238486262614027">"IM"</string>
+    <string name="organizationLabelsGroup" msgid="2478611760751832035">"Inhlangano"</string>
+    <string name="relationLabelsGroup" msgid="1854373894284572781">"Ubudlelwano"</string>
+    <string name="eventLabelsGroup" msgid="7960408705307831289">"Idethi ekhethekile"</string>
+    <string name="sms" msgid="1756857139634224222">"Umlayezo wombhalo"</string>
+    <string name="postal_address" msgid="8765560217149624536">"Ikheli"</string>
+    <string name="ghostData_company" msgid="5414421120553765775">"Inkampani"</string>
+    <string name="ghostData_title" msgid="7496735200318496110">"Isihloko"</string>
+    <string name="label_notes" msgid="8337354953278341042">"Imibhalo"</string>
+    <string name="label_custom_field" msgid="1994056912242214426">"Ngokwezifiso"</string>
+    <string name="label_sip_address" msgid="7252153678613978127">"I-SIP"</string>
+    <string name="websiteLabelsGroup" msgid="4202998982804009261">"Iwebhusayithi"</string>
+    <string name="groupsLabel" msgid="7000816729542098972">"Amalebula"</string>
+    <string name="email_home" msgid="8573740658148184279">"Ikhaya le-imeyili"</string>
+    <string name="email_mobile" msgid="2042889209787989814">"Imeyla ifoni"</string>
+    <string name="email_work" msgid="2807430017302722689">"Imeyila emsebenzini"</string>
+    <string name="email_other" msgid="3454004077967657109">"I-imeyli"</string>
+    <string name="email_custom" msgid="5536404237099078802">"Thumela i-imeyili ku-<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="email" msgid="5668400997660065897">"I-imeyili"</string>
+    <string name="postal_street" msgid="8133143961580058972">"Isitaladi"</string>
+    <string name="postal_city" msgid="6597491300084895548">"Idolobha"</string>
+    <string name="postal_region" msgid="6045263193478437672">"Idolobha"</string>
+    <string name="postal_postcode" msgid="572136414136673751">"Ikhodi ye-ZIP"</string>
+    <string name="postal_country" msgid="7638264508416368690">"Izwe"</string>
+    <string name="map_home" msgid="1243547733423343982">"Vuka ikheli lasekhaya"</string>
+    <string name="map_work" msgid="1360474076921878088">"Buka ikheli lasemsebenzini"</string>
+    <string name="map_other" msgid="3817820803587012641">"Buka ikheli"</string>
+    <string name="map_custom" msgid="8761800628069473526">"Buka ikheli lika-<xliff:g id="CUSTOM_LABEL">%s</xliff:g>"</string>
+    <string name="chat_aim" msgid="2588492205291249142">"Xoxa usebenzisa i-AIM"</string>
+    <string name="chat_msn" msgid="8041633440091073484">"Xoxa usebenzisa i-Windows Live"</string>
+    <string name="chat_yahoo" msgid="6629211142719943666">"Xoxa usebenzisa i-Yahoo"</string>
+    <string name="chat_skype" msgid="1210045020427480566">"Xoxa usebenzisa i-Skype"</string>
+    <string name="chat_qq" msgid="4294637812847719693">"Xoxa usebenzisa i-QQ"</string>
+    <string name="chat_gtalk" msgid="981575737258117697">"Xoxa usebenzisa i-Google Talk"</string>
+    <string name="chat_icq" msgid="8438405386153745775">"Xoxa usebenzisa i-ICQ"</string>
+    <string name="chat_jabber" msgid="7561444230307829609">"Xoxa usebenzisa i-Jabber"</string>
+    <string name="chat" msgid="9025361898797412245">"Xoxa"</string>
+    <string name="description_minus_button" msgid="6908099247930477551">"susa"</string>
+    <string name="expand_name_fields_description" msgid="6948274252874552543">"Bonisa izinkambu eziningi zegama"</string>
+    <string name="collapse_name_fields_description" msgid="4757877385895561556">"Goqa izinkambu zegama"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="9133052674087187927">"Bonisa izinkambu eziningi zefonotiki"</string>
+    <string name="collapse_phonetic_name_fields_description" msgid="9102249481855019452">"Goqa izinkambu zegama lefonetiki"</string>
+    <string name="expand_fields_description" msgid="8129294181216760037">"Nweba"</string>
+    <string name="collapse_fields_description" msgid="1884143625854637874">"Goqa"</string>
+    <string name="announce_expanded_fields" msgid="1075947220478530622">"Kunwetshiwe"</string>
+    <string name="announce_collapsed_fields" msgid="6414231530177338704">"Kugoqiwe"</string>
+    <string name="list_filter_all_accounts" msgid="8908683398914322369">"Bonke othintana nabo"</string>
+    <string name="list_filter_all_starred" msgid="5031734941601931356">"Okunenkanyezi"</string>
+    <string name="list_filter_customize" msgid="4789963356004169321">"Enza ngendlela oyifisayo"</string>
+    <string name="list_filter_single" msgid="5871400283515893087">"Othintana nabo"</string>
+    <string name="display_ungrouped" msgid="6885954210243119591">"Bonke Abanye Othintana Nabo"</string>
+    <string name="display_all_contacts" msgid="2031647544742889505">"Bonke oxhumana nabo"</string>
+    <string name="menu_sync_remove" msgid="3266725887008450161">"Khipha iqembu lokuvumelanisa"</string>
+    <string name="dialog_sync_add" msgid="8267045393119375803">"Ngeza iqembu lokuvumelanisa"</string>
+    <string name="display_more_groups" msgid="2682547080423434170">"Amanye amaqembu..."</string>
+    <string name="display_warn_remove_ungrouped" msgid="8872290721676651414">"Iyasusa \"<xliff:g id="GROUP">%s</xliff:g>\" kokuvumelanisiwe izophinde isuse nanoma ibaphi oxhumana nabo abangelona iqoqo."</string>
+    <string name="savingDisplayGroups" msgid="2133152192716475939">"Ilondoloza izinketho zokubonisa"</string>
+    <string name="listCustomView" msgid="1840624396582117590">"Ukubuka okungokwezifiso"</string>
+    <string name="dialog_new_contact_account" msgid="4969619718062454756">"Londoloza oxhumana nabo abangenisiwe ku-:"</string>
+    <string name="import_from_sim" msgid="6912071635295799131">"I-SIM card"</string>
+    <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
+    <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
+      <item quantity="one">%d oxhumana nabo</item>
+      <item quantity="other">%d oxhumana nabo</item>
+    </plurals>
+    <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> oxhumana nabo • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+      <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> oxhumana nabo • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
+    </plurals>
+    <string name="import_from_vcf_file" msgid="8662528435646418203">".vcf file"</string>
+    <string name="nothing_to_import_message" msgid="1651921906873335656">"Akukho okungangeniswa"</string>
+    <string name="import_from_vcf_file_confirmation_message" msgid="967723361108008345">"Ngenisa oxhumana nabo kusukela ku-vCard?"</string>
+    <string name="cancel_import_confirmation_message" msgid="3929951040347726757">"Misa ukulndwa kwe <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_export_confirmation_message" msgid="1995462401949262638">"Misa ukulandwa kwe <xliff:g id="FILENAME">%s</xliff:g>?"</string>
+    <string name="cancel_vcard_import_or_export_failed" msgid="6139900383366166706">"Yehlulekile ukukhansela ukungenisa/thekelisa i-vCard"</string>
+    <string name="fail_reason_unknown" msgid="1714092345030570863">"Iphutha elingaziwa"</string>
+    <string name="fail_reason_could_not_open_file" msgid="2067725459821997463">"Ayikwazi ukuvula \"<xliff:g id="FILE_NAME">%1$s</xliff:g>\": <xliff:g id="EXACT_REASON">%2$s</xliff:g>"</string>
+    <string name="fail_reason_could_not_initialize_exporter" msgid="707260459259688510">"Ayikwazanga ukuqalisa isithekelisi: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\""</string>
+    <string name="fail_reason_no_exportable_contact" msgid="8728506011371262065">"Abekho othintana nabo abathumelekayo."</string>
+    <string name="missing_required_permission" msgid="5865884842972833120">"Ukhubaze imvume edingekayo."</string>
+    <string name="fail_reason_error_occurred_during_export" msgid="3018855323913649063">"Kube khona iphutha ngesikhathi kuthunyelwa: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
+    <string name="fail_reason_io_error" msgid="6748358842976073255">"Iphutha le-I/O"</string>
+    <string name="fail_reason_low_memory_during_import" msgid="875222757734882898">"Isikhala asanele (kungenzeka ifayela ibe nkulu kakhulu)"</string>
+    <string name="fail_reason_not_supported" msgid="8219562769267148825">"Ifomethi ayisekelwe."</string>
+    <string name="exporting_vcard_finished_title" msgid="4767045779458185251">"Iqedile ukuthumela kwenye indawo <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="exporting_vcard_finished_title_fallback" msgid="6060472638008218274">"Iqedile ukukhipha oxhumana nabo."</string>
+    <string name="exporting_vcard_finished_toast" msgid="1739055986856453882">"Iqedile ukuthumela oxhumana nabo, chofoza isaziso ukuze wabelane ngoxhumana nabo."</string>
+    <string name="touch_to_share_contacts" msgid="4882485525268469736">"Thepha ukuze wabelane ngoxhumana nabo."</string>
+    <string name="exporting_vcard_canceled_title" msgid="2652222370493306887">"Ukulandwa <xliff:g id="FILENAME">%s</xliff:g> kumisiwe"</string>
+    <string name="exporting_contact_list_title" msgid="9072240631534457415">"Ithekelisa idatha yothintana naye"</string>
+    <string name="exporting_contact_list_message" msgid="3367949209642931952">"Idatha yoxhumana nabo iyathunyelwa."</string>
+    <string name="composer_failed_to_get_database_infomation" msgid="1765944280846236723">"Yehlulekile ukuthola ulwazi lwemininingo egciniwe"</string>
+    <string name="composer_has_no_exportable_contact" msgid="5712531702823346549">"Abekho oxhumana nabo abangathunyelwa."</string>
+    <string name="composer_not_initialized" msgid="2321648986367005254">"Umqambi we-Vcard akazange aqale ngendlela efanele."</string>
+    <string name="exporting_contact_failed_title" msgid="4892358112409576342">"Yehlulekile ukuthumela"</string>
+    <string name="exporting_contact_failed_message" msgid="4938527850142003141">"Imininingwane yoxhumana naye ayizange ithunyelwe.\nIsizathu: \"<xliff:g id="FAIL_REASON">%s</xliff:g>\""</string>
+    <string name="importing_vcard_description" msgid="4245275224298571351">"Iyangenisa <xliff:g id="NAME">%s</xliff:g>"</string>
+    <string name="reading_vcard_failed_title" msgid="4251647443358422855">"Yehlulekile ukufunda imininingo ye-vCard"</string>
+    <string name="importing_vcard_finished_title" msgid="3341541727268747967">"Iqedile ukungenisa i-vCard <xliff:g id="FILENAME">%s</xliff:g>"</string>
+    <string name="importing_vcard_canceled_title" msgid="2147475978165599336">"Ukulandwa <xliff:g id="FILENAME">%s</xliff:g> kukhanseliwe"</string>
+    <string name="vcard_import_will_start_message" msgid="2804911199145873396">"i-<xliff:g id="FILENAME">%s</xliff:g> izongeniswa maduze nje."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="1022969530654129470">"Ifayela izongeniswa maduze nje."</string>
+    <string name="vcard_import_request_rejected_message" msgid="2890471184508516011">"Isicelo sokungenisa i-vCard sinqatshelwe. Sicela uzame futhi emva kwesikhathi."</string>
+    <string name="contacts_export_will_start_message" msgid="8538705791417534431">"Oxhumana nabo bazothunyelwa maduze."</string>
+    <string name="vcard_export_request_rejected_message" msgid="2844874826431327531">"Isicelo sokuthekelisa i-vCard sinqatshelwe. Sicela uzame futhi emva kwesikhathi."</string>
+    <string name="vcard_unknown_filename" msgid="7171709890959915954">"othintana nabo"</string>
+    <string name="caching_vcard_message" msgid="4926308675041506756">"Ifihla i-vCard/ama-vCard endaweni yokugcina eseduze. Ukulandwa kwangampela kuzoqala khona maduze."</string>
+    <string name="vcard_import_failed" msgid="5223531255894842406">"Yehlulekile ukulanda i-vCard"</string>
+    <string name="nfc_vcard_file_name" msgid="2823095213265993609">"Othintana naye utholakale nge-NFC"</string>
+    <string name="caching_vcard_title" msgid="1226272312940516605">"Ukulondoloza isikhashana..."</string>
+    <string name="progress_notifier_message" msgid="2311011466908220528">"Ingenisa <xliff:g id="CURRENT_NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL_NUMBER">%2$s</xliff:g>: <xliff:g id="NAME">%3$s</xliff:g>"</string>
+    <string name="export_to_vcf_file" msgid="4407527157056120858">"Thumela kufayela le-.vcf"</string>
+    <string name="display_options_sort_list_by" msgid="7028809117272018712">"Hlunga nge-"</string>
+    <string name="display_options_phonetic_name_fields" msgid="3771577099236534776">"Igama lefonethikhi"</string>
+    <string name="editor_options_always_show_phonetic_names" msgid="7253911385818398903">"Bonisa njalo"</string>
+    <string name="editor_options_hide_phonetic_names_if_empty" msgid="2672008764795671104">"Fihla uma kungenalutho"</string>
+    <string name="display_options_sort_by_given_name" msgid="2778421332815687873">"Igama"</string>
+    <string name="display_options_sort_by_family_name" msgid="2684905041926954793">"Isibongo"</string>
+    <string name="display_options_view_names_as" msgid="6514632499276563482">"Ifomethi yegama"</string>
+    <string name="display_options_view_given_name_first" msgid="3616004640258761473">"Igama lokuqala kuqala"</string>
+    <string name="display_options_view_family_name_first" msgid="956445100777296467">"Isibongo kuqala"</string>
+    <string name="settings_accounts" msgid="350219740670774576">"Ama-akhawunti"</string>
+    <string name="default_editor_account" msgid="699591683362420991">"I-akhawunti ezenzakalelayo yoxhumana nabo abasha"</string>
+    <string name="settings_my_info_title" msgid="1534272456405343119">"Ulwazi lwami"</string>
+    <string name="set_up_profile" msgid="7370213843590143771">"Setha iphrofayela yakho"</string>
+    <string name="setting_about" msgid="7014388749752042863">"Mayelana noxhumana nabo"</string>
+    <string name="share_favorite_contacts" msgid="4280926751003081042">"Yabelana ngoxhumana nabo obathandayo"</string>
+    <string name="share_contacts" msgid="8109287987498711664">"Yabelana bonke oxhumana nabo"</string>
+    <string name="share_contacts_failure" msgid="1216431977330560559">"Yehlulekile ukwabelana ngoxhumana nabo."</string>
+    <string name="dialog_export" msgid="1628001095187741417">"Thekelisa othintana nabo"</string>
+    <string name="dialog_import" msgid="2423592905927819672">"Ngenisa oxhumana nabo kusuka ku-"</string>
+    <string name="share_error" msgid="948429331673358107">"Lona oxhumana naye ngeke ukwazi ukwabelana ngaye."</string>
+    <string name="no_contact_to_share" msgid="1276397530378323033">"Abekho oxhumana nabo ongabelana nabo."</string>
+    <string name="menu_contacts_filter" msgid="2165153460860262501">"Othintana nabo abazoboniswa"</string>
+    <string name="activity_title_contacts_filter" msgid="8275542497615516969">"Othintana nabo abazoboniswa"</string>
+    <string name="custom_list_filter" msgid="9048525797111024204">"Enza ngendlela ofisa ngayo ukubuka"</string>
+    <string name="menu_custom_filter_save" msgid="2679793632208086460">"Londoloza"</string>
+    <string name="hint_findContacts" msgid="7128627979899070325">"Sesha oxhumana nabo"</string>
+    <string name="contactsFavoritesLabel" msgid="8417039765586853670">"Izintandokazi"</string>
+    <string name="menu_import" msgid="6107961135813836467">"Ngenisa"</string>
+    <string name="menu_export" msgid="2658783911863503902">"Hambisa"</string>
+    <string name="menu_blocked_numbers" msgid="5272951629083025995">"Izinombolo ezivinjiwe"</string>
+    <string name="contact_status_update_attribution" msgid="752179367353018597">"nge <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
+    <string name="contact_status_update_attribution_with_date" msgid="7358045508107825068">"<xliff:g id="DATE">%1$s</xliff:g> nge- <xliff:g id="SOURCE">%2$s</xliff:g>"</string>
+    <string name="action_menu_back_from_search" msgid="8793348588949233348">"misa ukusesha"</string>
+    <string name="description_clear_search" msgid="688023606766232904">"Sula usesho"</string>
+    <string name="select_account_dialog_title" msgid="5478489655696599219">"I-Akhawunti"</string>
+    <string name="set_default_account" msgid="4311613760725609801">"Njalo sebenzisa lokhu kumakholi"</string>
+    <string name="call_with_a_note" msgid="8389827628360791676">"Shaya ngenothi"</string>
+    <string name="call_subject_hint" msgid="3043028982108363572">"Thayipha inothi ukuze uthumele ngekholi..."</string>
+    <string name="send_and_call_button" msgid="7740295432834590737">"THUMELA FUTHI USHAYE"</string>
+    <string name="call_subject_limit" msgid="4545212901205397669">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="about_build_version" msgid="1765533099416999801">"Yakha inguqulo"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Amalayisense womthombo ovulekile"</string>
+    <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Iminingwane yelayisensi yesofthiwe yomthombo ovulelekile"</string>
+    <string name="about_privacy_policy" msgid="3705518622499152626">"Inqubomgomo yemfihlo"</string>
+    <string name="about_terms_of_service" msgid="4642400812150296723">"Imigomo yesevisi"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Amalayisense womthombo ovulekile"</string>
+    <string name="url_open_error_toast" msgid="452592089815420457">"Yehlulekile ukuvula i-url."</string>
+    <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> kuhloliwe"</string>
+    <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> akuhloliwe"</string>
+    <string name="description_search_video_call" msgid="5841525580339803272">"Yenza ikholi yevidiyo"</string>
+    <string name="description_delete_contact" msgid="53835657343783663">"Susa"</string>
+    <string name="description_no_name_header" msgid="8884991311595943271">"Isiyingi"</string>
+    <string name="callDurationSecondFormat" msgid="7067644915903528776">"<xliff:g id="SECONDS">%s</xliff:g> isekhondi"</string>
+    <string name="callDurationMinuteFormat" msgid="4647095486747447674">"<xliff:g id="MINUTES">%1$s</xliff:g> iminithi <xliff:g id="SECONDS">%2$s</xliff:g> isekhondi"</string>
+    <string name="callDurationHourFormat" msgid="7392254193808506640">"<xliff:g id="MINUTES_0">%1$s</xliff:g> ihora <xliff:g id="MINUTES_1">%2$s</xliff:g> iminithi <xliff:g id="SECONDS">%3$s</xliff:g> isekhondi"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="249939425761315252">"Lesi sinqamuleli sikhutshaziwe"</string>
+    <string name="dynamic_shortcut_contact_removed_message" msgid="6845645831837615899">"Oxhumana naye ususiwe"</string>
+    <string name="sim_import_button_text" msgid="4270841592496619317">"Ngenisa"</string>
+    <string name="sim_import_title_none_selected" msgid="6910517331401970693">"Khetha oxhumana nabo"</string>
+    <string name="sim_import_empty_message" msgid="7743815244380189651">"Abekho oxhumana nabo kukhadi lakho le-SIM"</string>
+    <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"Oxhumana naye usuvele ulondoloziwe kuhlu lwakho"</string>
+    <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> oxhumana nabo be-SIM bangenisiwe</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> oxhumana nabo be-SIM bangenisiwe</item>
+    </plurals>
+    <string name="sim_import_failed_toast" msgid="5559267299793622705">"Yehlulekile ukungenisa oxhumana nabo be-SIM"</string>
+    <string name="sim_import_title" msgid="2511154832820812822">"Ngenisa kusuka ku-SIM"</string>
+    <string name="sim_import_cancel_content_description" msgid="1619832410253424452">"Khansela"</string>
+    <string name="auto_sync_off" msgid="2180147284456026587">"Ukuvumelanisa okuzenzekelelayo kuvaliwe.Thepha ukuze uvule."</string>
+    <string name="dismiss_sync_alert" msgid="8941131776605093596">"Cashisa"</string>
+    <string name="account_sync_off" msgid="7646143254066243924">"Ukuvumelanisa i-akhawunti kuvaliwe. Thepha ukuze ukuvule."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="333965456829670541">"Vula ukuvumelanisa okuzenzakalelayo?"</string>
+    <string name="turn_auto_sync_on_dialog_body" msgid="5025336917533693997">"Izinguquko ozenzayo kuzo zonke izinhlelo zokusebenza nama-akhawunti, hhayi oxhumana nabo nje kuphela, zizohlala zibuyekezwa phakathi kwewebhu namadivayisi akho."</string>
+    <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="1070332014838295599">"Vula"</string>
+    <string name="connection_error_message" msgid="7046408921529247089">"Akukho ukuxhumana"</string>
+    <string name="single_sim_display_label" msgid="6985770499439371497">"I-SIM"</string>
+    <string name="show_more_content_description" msgid="4277410425912984722">"Bonisa okuningi"</string>
+    <string name="importing_sim_finished_title" msgid="5196369441294050721">"Iqedile ukungenisa ikhadi le-SIM"</string>
+    <string name="importing_sim_failed_title" msgid="39706901030537985">"Ukungenisa kuhlulekile"</string>
+    <string name="importing_sim_failed_message" msgid="3345258302998021066">"Ayikwazanga ukungenisa oxhumana nabo kusukela ku-SIM card"</string>
+    <string name="importing_sim_in_progress_title" msgid="3638299581276676109">"Ingenisa i-SIM"</string>
+    <!-- no translation found for contacts_default_notification_channel (4754058700611188581) -->
     <skip />
 </resources>
diff --git a/res/values/animation_constants.xml b/res/values/animation_constants.xml
new file mode 100644
index 0000000..39f6ba6
--- /dev/null
+++ b/res/values/animation_constants.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+<resources>
+    <integer name="floating_action_button_animation_duration">175</integer>
+</resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 6da3b94..e979611 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -20,8 +20,6 @@
         <attr name="mimeType" format="string"/>
         <!-- RemoteViews XML that should be used to format this data -->
         <attr name="remoteViews" format="reference"/>
-        <!-- Icon that should be used to represent this data -->
-        <attr name="icon" format="reference"/>
         <!-- Column in data table to summarize this data -->
         <attr name="summaryColumn" format="string"/>
         <!-- Column in data table to show details of this data -->
@@ -51,4 +49,71 @@
         <attr name="layout_widePaddingRight" format="dimension"/>
     </declare-styleable>
 
+    <declare-styleable name="Theme">
+        <attr name="android:textColorSecondary" />
+    </declare-styleable>
+
+    <declare-styleable name="ContactsDataKind">
+        <!-- Mime-type handled by this mapping. -->
+        <attr name="android:mimeType" />
+        <!-- Icon used to represent data of this kind. -->
+        <attr name="android:icon" />
+        <!-- Column in data table that summarizes this data. -->
+        <attr name="android:summaryColumn" />
+        <!-- Column in data table that contains details for this data. -->
+        <attr name="android:detailColumn" />
+        <!-- Flag indicating that detail should be built from SocialProvider. -->
+        <attr name="android:detailSocialSummary" />
+        <!-- Resource representing the term "All Contacts" (e.g. "All Friends" or
+        "All connections"). Optional (Default is "All Contacts"). -->
+        <attr name="android:allContactsName" />
+    </declare-styleable>
+
+    <declare-styleable name="ContactListItemView">
+        <attr name="list_item_height" format="dimension"/>
+        <attr name="list_section_header_height" format="dimension"/>
+        <attr name="activated_background" format="reference"/>
+        <attr name="section_header_background" format="reference"/>
+        <attr name="list_item_padding_top" format="dimension"/>
+        <attr name="list_item_padding_right" format="dimension"/>
+        <attr name="list_item_padding_bottom" format="dimension"/>
+        <attr name="list_item_padding_left" format="dimension"/>
+        <attr name="list_item_gap_between_image_and_text" format="dimension"/>
+        <attr name="list_item_gap_between_indexer_and_image" format="dimension"/>
+        <attr name="list_item_gap_between_label_and_data" format="dimension"/>
+        <attr name="list_item_presence_icon_margin" format="dimension"/>
+        <attr name="list_item_presence_icon_size" format="dimension"/>
+        <attr name="list_item_photo_size" format="dimension"/>
+        <attr name="list_item_profile_photo_size" format="dimension"/>
+        <attr name="list_item_prefix_highlight_color" format="color"/>
+        <attr name="list_item_background_color" format="color"/>
+        <attr name="list_item_header_text_indent" format="dimension"/>
+        <attr name="list_item_header_text_color" format="color"/>
+        <attr name="list_item_header_text_size" format="dimension"/>
+        <attr name="list_item_header_height" format="dimension"/>
+        <attr name="list_item_name_text_color" format="color"/>
+        <attr name="list_item_name_text_size" format="dimension"/>
+        <attr name="list_item_text_indent" format="dimension"/>
+        <attr name="list_item_text_offset_top" format="dimension"/>
+        <attr name="list_item_avatar_offset_top" format="dimension"/>
+        <attr name="list_item_data_width_weight" format="integer"/>
+        <attr name="list_item_label_width_weight" format="integer"/>
+        <attr name="list_item_video_call_icon_size" format="dimension"/>
+        <attr name="list_item_video_call_icon_margin" format="dimension"/>
+    </declare-styleable>
+
+    <declare-styleable name="ContactBrowser">
+        <attr name="contact_browser_list_padding_left" format="dimension"/>
+        <attr name="contact_browser_list_padding_right" format="dimension"/>
+        <attr name="contact_browser_background" format="reference"/>
+    </declare-styleable>
+
+    <declare-styleable name="ProportionalLayout">
+        <attr name="direction" format="string"/>
+        <attr name="ratio" format="float"/>
+    </declare-styleable>
+
+    <declare-styleable name="Favorites">
+        <attr name="favorites_padding_bottom" format="dimension"/>
+    </declare-styleable>
 </resources>
diff --git a/res/values/bools.xml b/res/values/bools.xml
index eef3808..175aeb1 100644
--- a/res/values/bools.xml
+++ b/res/values/bools.xml
@@ -16,7 +16,6 @@
 <resources>
 
     <bool name="quickcontact_two_panel">false</bool>
-    <bool name="contact_all_list_show_card_frame">false</bool>
     <bool name="contacteditor_two_panel">false</bool>
 
 </resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 0025a41..1aa84c6 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -14,27 +14,38 @@
      limitations under the License.
 -->
 <resources>
+    <!-- Adaptive icon background layer color -->
+    <color name="ic_contacts_launcher_background">#2458CA</color>
 
-    <color name="quickcontact_name_detail_background">#66000000</color>
+    <!-- 87% black -->
+    <color name="quantum_black_text">#dd000000</color>
+
+    <!-- 54% black -->
+    <color name="quantum_black_secondary_text">#89000000</color>
+
+    <!-- 38% black -->
+    <color name="quantum_black_hint_text">#61000000</color>
+
     <color name="quickcontact_entry_sub_header_text_color">#737373</color>
     <color name="quickcontact_entry_header_text_color">#202020</color>
 
-    <color name="background_social_updates">#ffeeeeee</color>
+    <color name="action_bar_background">#2a56c6</color>
 
-    <!-- TODO: remove these colors once we delete the group code (b/16522929) -->
-    <color name="action_bar_background">#0288d1</color>
-    <color name="action_bar_background_highlight">#cecece</color>
+    <color name="nav_item_selected_background">#0f000000</color>
+
     <color name="action_bar_button_text_color">#FFFFFF</color>
 
     <color name="actionbar_background_color">@color/primary_color</color>
-    <color name="actionbar_background_color_dark">@color/primary_color_dark</color>
 
-    <color name="contextual_selection_bar_color">#616161</color>
+    <color name="contextual_selection_bar_color">#f6f6f6</color>
     <!-- Color of the status bar above the contextual selection bar. -->
-    <color name="contextual_selection_bar_status_bar_color">#424242</color>
+    <color name="contextual_selection_bar_status_bar_color">#bababa</color>
 
-    <color name="primary_color_dark">#0277bd</color>
-    <color name="primary_color">#0288d1</color>
+    <color name="primary_color_dark">#1c3aa9</color>
+    <color name="primary_color">#2a56c6</color>
+
+    <color name="group_primary_color_dark">#546E7A</color>
+    <color name="group_primary_color">#607D8B</color>
 
     <!-- Color of the selected tab underline -->
     <color name="contacts_accent_color">#FFFFFF</color>
@@ -65,15 +76,185 @@
     <!-- Color of disabled text and unfocused hint text inside the contact editor. 25% black. -->
     <color name="editor_disabled_text_color">#40000000</color>
 
-    <!-- Color of button background in compact photo picker. -->
-    <color name="google_grey_600">#757575</color>
-
-    <!-- Color of button text in compact photo picker, 85% white. -->
-    <color name="photo_action_button_color">#D9FFFFFF</color>
-
     <!-- Color of text on disabled link contacts button, 25% black. -->
     <color name="disabled_button_text">#40000000</color>
 
     <!-- Color of background of disabled link contacts button, 15% black. -->
     <color name="disabled_button_background">#26000000</color>
+
+    <!-- Color of text of people names in contact list when item is disabled. 30% black -->
+    <color name="disabled_contact_list_name_text">#4D000000</color>
+
+    <!-- Color of background of all empty states. -->
+    <color name="empty_state_background">#efefef</color>
+
+    <!-- Colors of swipeRefreshLayout's spinning circle. -->
+    <color name="swipe_refresh_color1">#0f9d58</color>
+    <color name="swipe_refresh_color2">#dd4b37</color>
+    <color name="swipe_refresh_color3">#4285f4</color>
+    <color name="swipe_refresh_color4">#f4b400</color>
+
+    <!-- Color of ripples used for views with dark backgrounds -->
+    <color name="ripple_material_dark">#a0ffffff</color>
+
+    <!-- Divider color for header separator -->
+    <color name="primary_text_color">#363636</color>
+
+    <color name="secondary_text_color">@color/dialtacts_secondary_text_color</color>
+
+    <!-- Text color for section header. -->
+    <color name="section_header_text_color">@color/dialtacts_theme_color</color>
+
+    <!-- Color of the theme of the People app -->
+    <color name="people_app_theme_color">#363636</color>
+
+    <!-- Color of the theme of the Dialer app -->
+    <color name="dialtacts_theme_color">#2a56c6</color>
+
+    <!-- Color of image view placeholder. -->
+    <color name="image_placeholder">#DDDDDD</color>
+
+    <!-- Primary text color in the Phone app -->
+    <color name="dialtacts_primary_text_color">#333333</color>
+
+    <!-- Secondary text color in the Phone app -->
+    <color name="dialtacts_secondary_text_color">#737373</color>
+
+    <color name="shortcut_overlay_text_background">#7f000000</color>
+
+    <color name="textColorIconOverlay">#fff</color>
+    <color name="textColorIconOverlayShadow">#000</color>
+
+    <!-- Background colors for LetterTileDrawables. This set of colors is a subset of
+        https://spec.googleplex.com/quantumpalette#extended which passes Google Accessibility
+        Requirements for the color in question on white with >= 3.0 contrast. We used
+        http://leaverou.github.io/contrast-ratio/#white-on-%23db4437 to double-check the contrast.
+
+        These colors are also used by MaterialColorMapUtils to generate primary activity colors.
+    -->
+    <array name="letter_tile_colors">
+        <item>#DB4437</item>
+        <item>#E91E63</item>
+        <item>#9C27B0</item>
+        <item>#673AB7</item>
+        <item>#3F51B5</item>
+        <item>#4285F4</item>
+        <item>#039BE5</item>
+        <item>#0097A7</item>
+        <item>#009688</item>
+        <item>#0F9D58</item>
+        <item>#689F38</item>
+        <item>#EF6C00</item>
+        <item>#FF5722</item>
+        <item>#757575</item>
+    </array>
+
+    <!-- Darker versions of letter_tile_colors, two shades darker. These colors are used
+        for settings secondary activity colors. -->
+    <array name="letter_tile_colors_dark">
+        <item>#C53929</item>
+        <item>#C2185B</item>
+        <item>#7B1FA2</item>
+        <item>#512DA8</item>
+        <item>#303F9F</item>
+        <item>#3367D6</item>
+        <item>#0277BD</item>
+        <item>#006064</item>
+        <item>#00796B</item>
+        <item>#0B8043</item>
+        <item>#33691E</item>
+        <item>#E65100</item>
+        <item>#E64A19</item>
+        <item>#424242</item>
+    </array>
+
+    <!-- The default color used for tinting photos when no color can be extracted via Palette,
+            this is Blue Grey 500 -->
+    <color name="quickcontact_default_photo_tint_color">#607D8B</color>
+    <!-- The default secondary color when no color can be extracted via Palette,
+            this is Blue Grey 700 -->
+    <color name="quickcontact_default_photo_tint_color_dark">#455A64</color>
+
+
+    <color name="letter_tile_default_color">#cccccc</color>
+
+    <color name="letter_tile_font_color">#ffffff</color>
+
+    <!-- Color for icons in the actionbar -->
+    <color name="actionbar_icon_color">#ffffff</color>
+
+    <!-- Color of the title to the Frequently Contacted section -->
+    <color name="frequently_contacted_title_color">@color/actionbar_background_color</color>
+
+    <!-- Color of action bar text. Ensure this stays in sync with packages/Telephony
+    phone_settings_actionbar_text_color-->
+    <color name="actionbar_text_color">#ffffff</color>
+    <!-- 54% black for icons -->
+    <color name="actionbar_icon_color_grey">#8C000000</color>
+    <!-- 87% black for actionbar text -->
+    <color name="actionbar_text_color_black">#DF000000</color>
+    <!-- Solid grey for status bar overlay-->
+    <color name="actionbar_color_grey_solid">#777777</color>
+
+    <!-- Text color of the search box text as entered by user  -->
+    <color name="searchbox_text_color">#000000</color>
+    <!-- Background color of the search box -->
+    <color name="searchbox_background_color">#ffffff</color>
+
+    <color name="searchbox_hint_text_color">#66000000</color>
+
+    <color name="search_shortcut_icon_color">@color/dialtacts_theme_color</color>
+
+    <!-- Color of the background of the contact detail and editor pages -->
+    <color name="background_primary">#f9f9f9</color>
+    <color name="contact_all_list_background_color">#FFFFFF</color>
+
+    <!-- Text color used for character counter when the max limit has been exceeded -->
+    <color name="call_subject_limit_exceeded">#d1041c</color>
+
+    <!-- Tint color for the call subject history icon. -->
+    <color name="call_subject_history_icon">#000000</color>
+
+    <!-- Divider line on the call subject dialog. -->
+    <color name="call_subject_divider">#d8d8d8</color>
+
+    <!-- Text color for the SEND & CALL button on the call subject dialog. -->
+    <color name="call_subject_button">#00c853</color>
+
+    <!-- Background color for the call subject history view. -->
+    <color name="call_subject_history_background">#ffffff</color>
+    <color name="search_video_call_icon_tint">@color/searchbox_hint_text_color</color>
+
+    <!-- Text color for an action in a snackbar. -->
+    <color name="snackbar_action_text">#ffffff</color>
+    <!-- Background color for a snackbar. -->
+    <color name="snackbar_background">#333333</color>
+
+    <!-- Color of account/custom filters -->
+    <color name="account_filter_text_color">@color/actionbar_text_color_black</color>
+    <color name="custom_filter_divider">#dbdbdb</color>
+
+    <color name="material_star_pink">#f50057</color>
+
+    <!-- Primary text color in Contacts app -->
+    <color name="contacts_text_color">#333333</color>
+
+    <!-- tint color for device account icons -->
+    <color name="device_account_tint_color">#7f7f7f</color>
+
+    <!-- Background color for sync-off alert. -->
+    <color name="alert_background">#e0e0e0</color>
+
+    <!-- Divider color in navigation drawer -->
+    <color name="drawer_divider_color">#E5E5E5</color>
+
+    <!-- Background color for the navigation drawer -->
+    <color name="navigation_drawer_background_color">#FAFAFA</color>
+
+    <!-- Background color for the current selected item in the navigation drawer -->
+    <color name="drawer_selected_color">#E8E8E8</color>
+
+    <!-- Highlight color used in places such as ripples -->
+    <color name="control_highlight_color">#1A000000</color>
+
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index e18156f..e9fe2ad 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -14,10 +14,10 @@
      limitations under the License.
 -->
 <resources>
-    <dimen name="account_selector_popup_width">400dip</dimen>
-
-    <!-- Account info left margin in Compact editor. -->
-    <dimen name="compact_editor_account_left_margin">4dp</dimen>
+    <!-- Copied from java/com/google/android/assets/launchscreens/res/values-port-v21/dimens.xml -->
+    <!-- Values adjusted for nav bar size due to windowDrawsSystemBarBackgrounds -->
+    <dimen name="launchscreens_product_logo_bottom">64dp</dimen>
+    <dimen name="launchscreens_google_logo_bottom">104dp</dimen>
 
     <!-- Initial height of transparent space above QuickContacts -->
     <dimen name="quickcontact_starting_empty_height">150dp</dimen>
@@ -40,7 +40,16 @@
         snaps to the top of the window. -->
     <dimen name="quickcontact_snap_to_top_slop_height">33dp</dimen>
 
-    <!-- The ratio of width:height (360:184) for the compact editor contact photo in portrait -->
+    <!-- Account info left margin in editor. -->
+    <dimen name="editor_account_left_margin">4dp</dimen>
+
+    <!-- Margin between name field and whatever fields are above it. -->
+    <dimen name="editor_name_top_margin">8dp</dimen>
+
+    <!-- Top margin for "Saving to" account header text field. -->
+    <dimen name="editor_account_header_top_margin">3dp</dimen>
+
+    <!-- The ratio of width:height (360:184) for the editor contact photo in portrait -->
     <item name="editor_portrait_photo_ratio" type="dimen" format="float">1.96</item>
 
     <!-- Padding of the rounded plus/minus/expand/collapse buttons in the editor  -->
@@ -53,9 +62,6 @@
         including the "More fields" button/row. -->
     <dimen name="editor_min_line_item_height">54dp</dimen>
 
-    <!-- Width of the delete button (X) in the raw contact editor -->
-    <dimen name="editor_delete_button_width">48dp</dimen>
-
     <!-- The height and width of the delete button should be the same size as an editor row -->
     <dimen name="editor_delete_button_size">@dimen/editor_min_line_item_height</dimen>
 
@@ -76,9 +82,6 @@
     <!-- Size of input form text inside the contact editor -->
     <dimen name="editor_form_text_size">16sp</dimen>
 
-    <!-- Width and height of the mime-type icons inside the editor -->
-    <dimen name="editor_kind_icon_size">24dp</dimen>
-
     <!-- Total width of data-kind icon, including its start and end padding -->
     <dimen name="editor_kind_icon_total_width">68dp</dimen>
 
@@ -90,110 +93,32 @@
         padding between TextView's in the readonly Raw Contact Editor. -->
     <dimen name="editor_padding_between_read_only_editor_views">9dp</dimen>
 
-    <!-- Padding above and below the photo editor. This value is chosen to give 19dp of apparent
-        padding between TextView's and the photo's ImageView. -->
-    <dimen name="editor_padding_around_read_only_photo_editor">15dp</dimen>
-
-    <!-- Padding below the photo editor. This value is larger than
-        editor_padding_between_editor_views, since ImageView's don't have space between the bottom
-        of their visual bottom, like an EditText does. -->
-    <dimen name="editor_padding_below_photo">9dp</dimen>
-
     <!-- Width of the Type-Label in the Editor -->
     <dimen name="editor_type_label_width">150dip</dimen>
 
-    <!-- Width of the drop down that appears when you click on the Type-Label spinner in the editor -->
-    <dimen name="editor_type_label_dropdown_width">150dp</dimen>
-
-    <!-- Left padding of the label in the add field button for the contact editor -->
-    <dimen name="editor_add_field_label_left_padding">16dip</dimen>
-
-    <!-- Top margin for the first field of the compact contact editor -->
-    <dimen name="editor_compact_first_field_padding">10dp</dimen>
-
-    <!-- Top and bottom padding for the two text views in editor account header expandable -->
-    <dimen name="editor_account_header_expandable_top_bottom_padding">24dp</dimen>
-
-    <!-- left padding for the two text views in editor account header expandable -->
-    <dimen name="editor_account_header_expandable_left_padding">4dp</dimen>
-
-    <!-- Width and height of the expanded contact photo on the contact detail page -->
-    <dimen name="detail_contact_photo_expanded_size">400dip</dimen>
-
-    <!-- This is the minimum amount of space to leave underneath an expanded contact detail
-         photo -->
-    <dimen name="expanded_photo_height_offset">100dip</dimen>
-
     <!-- Minimum width for the photo action popup options -->
     <dimen name="photo_action_popup_min_width">300dip</dimen>
 
-    <!-- Top and bottom padding for a contact detail item -->
-    <dimen name="detail_item_vertical_margin">8dip</dimen>
+    <!-- Minimum width for the custom label edit dialog -->
+    <dimen name="custom_dialog_min_width">300dip</dimen>
 
-    <!-- Minimum height of a row in the contact detail -->
-    <dimen name="detail_min_line_item_height">48dip</dimen>
+    <!-- Custom dialog padding dimens -->
+    <dimen name="custom_dialog_layout_padding">24dip</dimen>
 
-    <!-- Font size used for the contact name in the widget -->
-    <dimen name="widget_text_size_name">14sp</dimen>
-
-    <!-- Font size used for the social status in the widget -->
-    <dimen name="widget_text_size_snippet">13sp</dimen>
-
-    <!-- Height of list sections (A, B, C) that show the first character of the contacts -->
-    <dimen name="list_section_height">25dip</dimen>
-
-    <!-- Account title left padding -->
-    <dimen name="account_container_left_padding">16dip</dimen>
-
-    <!-- Left padding for a group member list item -->
-    <dimen name="group_member_item_left_padding">4dip</dimen>
-
-    <!-- Left and right padding for the group editor view -->
-    <dimen name="group_editor_side_padding">16dip</dimen>
-
-    <!-- Left margin for the group member list to match the built in margin in the autocomplete asset -->
-    <dimen name="group_editor_member_list_left_margin">4dip</dimen>
-
-    <!-- Right margin for the group member list to match the built in margin in the autocomplete asset -->
-    <dimen name="group_editor_member_list_right_margin">4dip</dimen>
-
-    <!-- Left padding of the auto complete field to line hint text up with member list -->
-    <dimen name="group_editor_autocomplete_left_padding">8dip</dimen>
-
-    <!-- Border padding for the group detail fragment -->
-    <dimen name="group_detail_border_padding">0dip</dimen>
-
-    <!-- Height of the quick contact photo container (for screens that are too large to use the screen width/height as a constraint)-->
-    <dimen name="quick_contact_photo_container_height">180dip</dimen>
-
-    <!-- Width of search view in action bar.  Use 0dip for MATCH_PARENT -->
-    <dimen name="search_view_width">0dip</dimen>
+    <!-- Custom dialog layout dimens -->
+    <dimen name="custom_dialog_layout">4dip</dimen>
 
     <!-- For join screen. Mainly for tablet. -->
     <dimen name="join_header_left_margin">@dimen/contact_browser_list_header_left_margin</dimen>
     <dimen name="join_header_right_margin">@dimen/contact_browser_list_header_right_margin</dimen>
-    <dimen name="join_header_top_margin">16dip</dimen>
-    <dimen name="join_header_bottom_margin">0dip</dimen>
-
-    <dimen name="no_accounts_message_margin">20dip</dimen>
+    <dimen name="join_header_top_margin">12dip</dimen>
+    <dimen name="join_header_bottom_margin">12dip</dimen>
 
     <dimen name="contact_filter_header_min_height">24dip</dimen>
 
-    <!-- Max width of the SearchView when the contact picker is a dialog (on wide
-         screen devices). -->
-    <dimen name="contact_picker_search_view_max_width">550dip</dimen>
-
-    <!-- Min height of the list of contacts when the contact picker is a dialog (on
-        wide screen devices). -->
-    <dimen name="contact_picker_contact_list_min_height">550dip</dimen>
-
-
     <!-- Margins for ExpandingEntryCardView -->
     <dimen name="expanding_entry_card_marginStartEnd">8dp</dimen>
     <dimen name="expanding_entry_card_marginBottom">12dp</dimen>
-    <!-- Width of the grey border surrounding the expanding entry cards. If we ever add
-         a rounded corner to the expanding entry cards, than we will need to increase this value -->
-    <dimen name="expanding_entry_card_border_width">12dp</dimen>
 
     <!-- Top margin for the communication card, used to add space from header. -->
     <dimen name="first_card_marginTop">12dp</dimen>
@@ -234,7 +159,6 @@
     <dimen name="expanding_entry_card_item_icon_margin_right">12dp</dimen>
     <dimen name="expanding_entry_card_item_header_only_margin_top">6dp</dimen>
 
-    <dimen name="expanding_entry_card_badge_separator_margin">8dp</dimen>
     <dimen name="expanding_entry_card_card_corner_radius">2dp</dimen>
     <dimen name="expanding_entry_card_header_margin_bottom">2dp</dimen>
     <!-- The top margin when the sub header and text views are both gone -->
@@ -245,7 +169,6 @@
     <dimen name="quickcontact_suggestion_card_icon_width">40dp</dimen>
     <dimen name="quickcontact_suggestion_card_image_spacing">20dp</dimen>
     <dimen name="quickcontact_suggestion_card_layout_margin">8dp</dimen>
-    <dimen name="quickcontact_suggestion_card_checkbox_right_margin">16dp</dimen>
     <dimen name="quickcontact_collapse_view_height">48dp</dimen>
     <dimen name="quickcontact_collapse_icon_size">24dp</dimen>
     <dimen name="quickcontact_collapse_text_padding">12dp</dimen>
@@ -253,42 +176,212 @@
     <dimen name="quickcontact_expanding_help_text_size">14sp</dimen>
     <dimen name="quickcontact_expanding_button_right_padding">16dp</dimen>
     <dimen name="quickcontact_expanding_item_height">72dp</dimen>
-    <dimen name="quickcontact_expanding_item_padding">8dp</dimen>
     <dimen name="quickcontact_expanding_item_image_padding">12dp</dimen>
     <dimen name="quickcontact_expanding_button_section_height">48dp</dimen>
     <dimen name="quickcontact_expanding_button_section_padding">8dp</dimen>
 
-    <!-- The width the that the tabs occupy in the ActionBar when in landscape mode.
-         426dp is the height of a "small" screen. We should leave 240dp for
-         the title and menu items -->
-    <dimen name="people_activity_landscape_tabs_width">186dip</dimen>
-    <!-- The size of the text displayed in the ActionBar tabs in landscape mode.
-         Text in the tabs should must be width dependent, otherwise it won't fit in the tabs.
-         In portrait mode, the tabs look okay when overflowing their allocated space.
-         We have to be more careful in landscape. -->
-    <dimen name="people_activity_landscape_tabs_text_size">8dp</dimen>
-
-    <dimen name="update_contact_list_top_margin">120dp</dimen>
-
     <dimen name="expanding_entry_card_item_icon_height">24dp</dimen>
     <dimen name="expanding_entry_card_item_icon_width">24dp</dimen>
 
-    <!-- Width of the box around a tab when the tab has focus -->
-    <dimen name="tab_focused_stroke_width">1dp</dimen>
+    <dimen name="contact_browser_list_item_padding_top_or_bottom">7dp</dimen>
 
-    <!-- This value should be kept at (?android:attr/listPreferredItemHeight -
-      @dimen/contact_browser_list_item_photo_size) / 2 or greater. Otherwise, this padding
-      will never take affect inside list items. As a result, the padding at the very top
-      of ListView's will not match the padding inside list items -->
-    <dimen name="contact_browser_list_item_padding_top_or_bottom">12dp</dimen>
+    <dimen name="contact_browser_list_item_height">56dp</dimen>
 
-    <!-- Ideal item width in photo picker -->
-    <dimen name="photo_picker_item_ideal_width">135dp</dimen>
+    <!-- Navigation drawer header height, the same as the status bar in landscape and portrait modes -->
+    <dimen name="nav_header_height">24dp</dimen>
 
-    <!-- Margin between name field and whatever fields are above it. -->
-    <dimen name="compact_editor_name_top_margin">8dp</dimen>
+    <!-- Default activity margins, per the Android Material Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
 
-    <!-- Top margin for "Saving to" account header text field. -->
-    <dimen name="compact_editor_account_header_top_margin">3dp</dimen>
+    <dimen name="nav_new_badge_corners">3dp</dimen>
+    <dimen name="nav_new_badge_vertical_pad">2dp</dimen>
+    <dimen name="nav_new_badge_horizontal_pad">5dp</dimen>
+    <dimen name="nav_new_badge_font_size">11sp</dimen>
+
+    <!-- Top padding for the image for empty group view-->
+    <dimen name="empty_group_view_image_padding_top">0dp</dimen>
+
+    <!-- Height for the image for empty group and main view-->
+    <dimen name="empty_view_image_height">150dp</dimen>
+
+    <!-- Top padding for the text for empty group view-->
+    <dimen name="empty_group_view_text_padding_top">14dp</dimen>
+
+    <!-- Top padding for the text for empty account view -->
+    <dimen name="empty_account_view_text_padding_top">24dp</dimen>
+
+    <!-- End margin of edit group title -->
+    <dimen name="edit_group_end_margin">72dp</dimen>
+
+    <!-- Minimum height for group name EditText -->
+    <dimen name="dialog_edit_text_min_height">48dp</dimen>
+
+    <!-- Distance to pull down before causing a refresh. -->
+    <dimen name="pull_to_refresh_distance">40dp</dimen>
+
+    <!-- Elevation of contact list header -->
+    <dimen name="contact_list_header_elevation">2dp</dimen>
+
+    <!-- Gap b/w image view and top of the screen in empty main view -->
+    <dimen name="empty_home_view_image_offset">210dp</dimen>
+
+    <!-- Top padding for the text for empty main view -->
+    <dimen name="empty_home_view_text_padding_top">32dp</dimen>
+
+    <!-- Extra margin above image in empty account view -->
+    <dimen name="empty_account_view_image_offset">30dp</dimen>
+
+    <!-- Margin offset b/w the image top and app bar bottom for no account empty view -->
+    <dimen name="contacts_no_account_empty_image_offset">230dp</dimen>
+
+    <!-- Width for the image for contacts no account empty view -->
+    <dimen name="contacts_no_account_empty_image_width">180dp</dimen>
+
+    <!-- Top padding for the text for no account empty view -->
+    <dimen name="contacts_no_account_empty_text_padding_top">32dp</dimen>
+
+    <!-- Top padding for add account button for no account empty view -->
+    <dimen name="contacts_no_account_empty_button_padding_top">16dp</dimen>
+
+    <!-- Margin b/w add account button and import contacts button for no account empty view -->
+    <dimen name="contacts_no_account_buttons_margin">8dp</dimen>
+
+    <!-- Padding between the action bar's bottom edge and the first header
+         in contacts/group lists. -->
+    <dimen name="list_header_extra_top_padding">0dip</dimen>
+
+    <dimen name="list_section_divider_min_height">32dip</dimen>
+
+    <dimen name="directory_header_extra_top_padding">18dp</dimen>
+    <dimen name="directory_header_extra_bottom_padding">8dp</dimen>
+    <dimen name="directory_header_left_padding">16dp</dimen>
+
+    <!--  Horizontal padding in between contact tiles -->
+    <dimen name="contact_tile_divider_padding">23dip</dimen>
+    <!--  Horizontal whitespace (both padding and margin) before the first tile and after the last tile -->
+    <dimen name="contact_tile_start_end_whitespace">16dip</dimen>
+
+    <!-- For contact filter setting screens -->
+    <dimen name="contact_filter_left_margin">8dp</dimen>
+    <dimen name="contact_filter_right_margin">16dip</dimen>
+    <dimen name="contact_filter_item_min_height">48dip</dimen>
+    <dimen name="contact_filter_icon_size">32dip</dimen>
+    <dimen name="contact_filter_list_item_height">56dp</dimen>
+    <dimen name="contact_filter_list_item_padding_start">16dp</dimen>
+    <!-- contact_filter_indicator is the arrow in expandable list view -->
+    <dimen name="contact_filter_indicator_padding_start">6dp</dimen>
+    <dimen name="contact_filter_indicator_padding_end">46dp</dimen>
+    <dimen name="contact_filter_action_button_width">72dp</dimen>
+
+    <!-- Padding to be used between a visible scrollbar and the contact list -->
+    <dimen name="list_visible_scrollbar_padding">32dip</dimen>
+
+    <dimen name="contact_browser_list_header_icon_left_margin">16dp</dimen>
+    <dimen name="contact_browser_list_header_icon_right_margin">14dp</dimen>
+    <dimen name="contact_browser_list_header_icon_left_margin_alt">18dp</dimen>
+    <dimen name="contact_browser_list_header_icon_right_margin_alt">16dp</dimen>
+    <dimen name="contact_browser_list_header_left_margin">16dip</dimen>
+    <dimen name="contact_browser_list_header_right_margin">@dimen/list_visible_scrollbar_padding</dimen>
+    <dimen name="contact_browser_list_item_text_indent">8dip</dimen>
+    <dimen name="contact_browser_list_header_height">48dp</dimen>
+    <dimen name="contact_browser_list_header_icon_size">24dp</dimen>
+    <dimen name="contact_browser_list_header_icon_size_alt">20dp</dimen>
+    <dimen name="contact_browser_list_header_text_margin">10dp</dimen>
+    <!-- Width of a contact list item section header. -->
+    <dimen name="contact_list_section_header_width">56dp</dimen>
+
+    <!-- Size of the shortcut icon. 0dip means: use the system default -->
+    <dimen name="shortcut_icon_size">0dip</dimen>
+
+    <!-- Text size of shortcut icon overlay text -->
+    <dimen name="shortcut_overlay_text_size">12dp</dimen>
+
+    <!-- Extra vertical padding for darkened background behind shortcut icon overlay text -->
+    <dimen name="shortcut_overlay_text_background_padding">1dp</dimen>
+
+    <!-- Width of height of an icon from a third-party app in the networks section of the contact card. -->
+    <dimen name="detail_network_icon_size">40dp</dimen>
+
+    <!-- contact browser list margins -->
+    <dimen name="contact_browser_list_item_text_size">16sp</dimen>
+    <dimen name="contact_browser_list_item_photo_size">40dp</dimen>
+    <dimen name="contact_browser_list_item_gap_between_image_and_text">15dp</dimen>
+    <dimen name="contact_browser_list_item_gap_between_indexer_and_image">16dp</dimen>
+
+    <!-- Dimensions for contact letter tiles -->
+    <item name="letter_to_tile_ratio" type="dimen">67%</item>
+
+    <!-- Height of the floating action button -->
+    <dimen name="floating_action_button_height">56dp</dimen>
+    <!-- Width of the floating action button -->
+    <dimen name="floating_action_button_width">56dp</dimen>
+    <!-- Z translation of the floating action button -->
+    <dimen name="floating_action_button_translation_z">8dp</dimen>
+    <!-- Padding to be applied to the bottom of lists to make space for the floating action
+         button -->
+    <dimen name="floating_action_button_list_bottom_padding">88dp</dimen>
+    <!-- Right margin of the floating action button -->
+    <dimen name="floating_action_button_margin_right">16dp</dimen>
+    <!-- Bottom margin of the floating action button -->
+    <dimen name="floating_action_button_margin_bottom">16dp</dimen>
+
+    <!-- Size of text in tabs. -->
+    <dimen name="tab_elevation">2dp</dimen>
+
+    <!-- Size of the icon (voice search, back arrow) in the search box. -->
+    <dimen name="search_box_icon_size">56dp</dimen>
+    <!-- Size of the close icon.-->
+    <dimen name="search_box_close_icon_size">56dp</dimen>
+    <!-- Padding around the close button. It's visible size without padding is 24dp. -->
+    <dimen name="search_box_close_icon_padding">16dp</dimen>
+    <!-- End margin of the back arrow icon in the search box -->
+    <dimen name="search_box_navigation_icon_margin">8dp</dimen>
+    <!-- Left margin of the text field in the search box. -->
+    <dimen name="search_box_text_left_margin">8dp</dimen>
+    <!-- Search box text size -->
+    <dimen name="search_text_size">16sp</dimen>
+
+    <!-- Size of the close icon in selection bar.-->
+    <dimen name="selection_bar_close_icon_size">56dp</dimen>
+
+    <!-- Top margin for the Frequently Contacted section title -->
+    <dimen name="frequently_contacted_title_top_margin_when_first_row">16dp</dimen>
+    <!-- Top margin for the Frequently Contacted section title, when the title is the first
+         item in the list -->
+    <dimen name="frequently_contacted_title_top_margin">57dp</dimen>
+
+    <dimen name="frequently_contacted_title_text_size">24sp</dimen>
+
+    <!-- Padding used around the periphery of the call subject dialog, as well as in between the
+         items. -->
+    <dimen name="call_subject_dialog_margin">20dp</dimen>
+    <!-- Padding used between lines of text in the call subject dialog. -->
+    <dimen name="call_subject_dialog_between_line_margin">8dp</dimen>
+    <!-- Size of the contact photo in the call subject dialog. -->
+    <dimen name="call_subject_dialog_contact_photo_size">50dp</dimen>
+    <!-- Margin above the edit text in the call subject dialog. -->
+    <dimen name="call_subject_dialog_edit_spacing">60dp</dimen>
+    <!-- Size of primary text in the call subject dialog. -->
+    <dimen name="call_subject_dialog_primary_text_size">16sp</dimen>
+    <!-- Size of secondary text in the call subject dialog. -->
+    <dimen name="call_subject_dialog_secondary_text_size">14sp</dimen>
+    <!-- Row padding for call subject history items. -->
+    <dimen name="call_subject_history_item_padding">15dp</dimen>
+
+    <!-- The width of the drawer -->
+    <dimen name="drawer_width">320dp</dimen>
+    <!-- Minimum height of items in navigation drawer -->
+    <dimen name="drawer_item_fixed_height">48dp</dimen>
+    <!-- Side padding within the navigation drawer -->
+    <dimen name="drawer_side_padding">16dp</dimen>
+    <!-- Size of the icon in navigation drawer -->
+    <dimen name="drawer_item_icon_size">32dp</dimen>
+    <!-- The side margin of the item text in navigation drawer -->
+    <dimen name="drawer_item_text_margin">32dp</dimen>
+    <!-- The height of the spacer in navigation drawer -->
+    <dimen name="nav_drawer_spacer_height">8dp</dimen>
+    <!-- Side padding within the navigation drawer -->
+    <dimen name="drawer_label_header_end_padding">24dp</dimen>
 
 </resources>
diff --git a/res/values/donottranslate_config.xml b/res/values/donottranslate_config.xml
index 1c776ab..2dd0e73 100644
--- a/res/values/donottranslate_config.xml
+++ b/res/values/donottranslate_config.xml
@@ -19,33 +19,60 @@
 
 <resources>
 
-    <!-- If true, phonetic name is included in the contact editor by default -->
-    <bool name="config_editor_include_phonetic_name">false</bool>
-
-    <!-- If true, the "home" icon on the action bar will be shown. -->
-    <bool name="show_home_icon">false</bool>
-
-    <!--
-      If true, the "view updates from group" button in the action bar will be
-      shown. Otherwise it will be part of the content on the group detail page.
-    -->
-    <bool name="config_show_group_action_in_action_bar">false</bool>
-
     <!-- Help URL pointing to main TOC for People. This is intentionally empty because
          the overlay will fill this in during build time. -->
     <string name="help_url_people_main"></string>
 
-    <!-- Help URL pointing to adding contacts in People. This is intentionally empty because
-         the overlay will fill this in during build time. -->
-    <string name="help_url_people_add"></string>
-
-    <!-- Help URL pointing to editing contacts in People. This is intentionally empty because
-         the overlay will fill this in during build time. -->
-    <string name="help_url_people_edit"></string>
-
     <!-- File Authority for the photo picker -->
     <string name="photo_file_provider_authority">com.android.contacts.files</string>
 
     <!-- File Authority for AOSP Contacts files -->
     <string name="contacts_file_provider_authority">com.android.contacts.files</string>
+    <!-- Flag indicating whether Contacts app is allowed to import contacts -->
+    <bool name="config_allow_import_from_vcf_file">true</bool>
+
+    <!-- If true, an option is shown in Display Options UI to choose a sort order -->
+    <bool name="config_sort_order_user_changeable">true</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_sort_order_primary">true</bool>
+
+    <!-- If true, an option is shown in Display Options UI to choose a name display order -->
+    <bool name="config_display_order_user_changeable">true</bool>
+
+    <!-- If true, the default sort order is primary (i.e. by given name) -->
+    <bool name="config_default_display_order_primary">true</bool>
+
+    <!-- If true, an option is shown in Display Options UI to choose a phonetic name display preference -->
+    <bool name="config_phonetic_name_display_user_changeable">true</bool>
+
+    <!-- If true, phonetic name fields are not visible when empty -->
+    <bool name="config_default_hide_phonetic_name_if_empty">true</bool>
+
+    <!-- If true, the order of name fields in the editor is primary (i.e. given name first) -->
+    <bool name="config_editor_field_order_primary">true</bool>
+
+    <!-- If true, an option is shown in Display Options UI to choose a default account -->
+    <bool name="config_default_account_user_changeable">true</bool>
+
+    <!-- Contacts preferences key for contact editor default account -->
+    <string name="contact_editor_default_account_key">ContactEditorUtils_default_account</string>
+
+    <!-- The type of VCard for export. If you want to let the app emit vCard which is
+    specific to some vendor (like DoCoMo), specify this type (e.g. "docomo") -->
+    <string name="config_export_vcard_type" translatable="false">default</string>
+
+    <!-- The filename that is suggested that users use when exporting vCards. Should include the .vcf extension. -->
+    <string name="exporting_vcard_filename" translatable="false">contacts.vcf</string>
+
+    <!-- Flag indicating whether Contacts app is allowed to export contacts -->
+    <bool name="config_allow_export">true</bool>
+
+    <!-- Flag indicating whether Contacts app is allowed to share contacts with devices outside -->
+    <bool name="config_allow_share_contacts">true</bool>
+
+    <string name="pref_build_version_key">pref_build_version</string>
+    <string name="pref_open_source_licenses_key">pref_open_source_licenses</string>
+    <string name="pref_privacy_policy_key">pref_privacy_policy</string>
+    <string name="pref_terms_of_service_key">pref_terms_of_service</string>
 </resources>
diff --git a/res/values/ids.xml b/res/values/ids.xml
index 7f6a51f..a4b8b4b 100644
--- a/res/values/ids.xml
+++ b/res/values/ids.xml
@@ -43,4 +43,59 @@
 
     <!-- An ID to be used for contents of a custom dialog so that its state be preserved -->
     <item type="id" name="custom_dialog_content" />
+
+    <!-- Menu group ID for settings and help & feedback  -->
+    <item type="id" name="nav_misc" />
+
+    <!-- Menu ID for Contacts menu -->
+    <item type="id" name="nav_all_contacts" />
+
+    <!-- Menu ID for Suggestions menu -->
+    <item type="id" name="nav_assistant" />
+
+    <!-- Menu ID for group header -->
+    <item type="id" name="nav_groups" />
+
+    <!-- Menu ID for each group menu item -->
+    <item type="id" name="nav_group" />
+
+    <!-- Menu ID for create label menu item -->
+    <item type="id" name="nav_create_label" />
+
+    <!-- Menu ID for filter header -->
+    <item type="id" name="nav_filters" />
+
+    <!-- Menu ID for each filter menu item -->
+    <item type="id" name="nav_filter" />
+
+    <!-- Menu ID for Settings menu -->
+    <item type="id" name="nav_settings" />
+
+    <!-- Menu ID for help & feedback  menu -->
+    <item type="id" name="nav_help" />
+
+    <!-- For vcard.ImportVCardActivity -->
+    <item type="id" name="dialog_cache_vcard"/>
+    <item type="id" name="dialog_error_with_message"/>
+
+    <!-- For vcard.CancelActivity -->
+    <item type="id" name="dialog_cancel_confirmation"/>
+    <item type="id" name="dialog_cancel_failed"/>
+
+    <!-- For ExportVCardActivity -->
+    <item type="id" name="dialog_exporting_vcard"/>
+    <item type="id" name="dialog_fail_to_export_with_reason"/>
+
+    <!-- For Debug Purpose -->
+    <item type="id" name="cliv_name_textview"/>
+    <item type="id" name="cliv_phoneticname_textview"/>
+    <item type="id" name="cliv_label_textview"/>
+    <item type="id" name="cliv_data_view"/>
+
+    <!-- For tag ids used by ContactPhotoManager to tag views with contact details -->
+    <item type="id" name="tag_display_name"/>
+    <item type="id" name="tag_identifier"/>
+    <item type="id" name="tag_contact_type"/>
+
+    <item type="id" name="menu_save"/>
 </resources>
diff --git a/res/values/integers.xml b/res/values/integers.xml
index 86a8e26..718e4f6 100644
--- a/res/values/integers.xml
+++ b/res/values/integers.xml
@@ -15,16 +15,41 @@
 -->
 
 <resources>
-    <!--  Determines the number of columns in a ContactTileRow in the favorites tab -->
-    <integer name="contact_tile_column_count_in_favorites">3</integer>
-
-    <!-- Determines the number of columns in a ContactTileRow -->
-    <integer name="contact_tile_column_count">2</integer>
 
     <!-- Number of lines the QuickContact title can have -->
     <integer name="quickcontact_title_lines">1</integer>
 
-    <!-- Max suggestions limit showing in quick contact suggestion card [CHAR LIMIT=30]-->
-    <integer name="quickcontact_suggestions_limit">10</integer>
+    <!-- The maximum allowed group name length -->
+    <integer name="group_name_max_length">40</integer>
 
+    <!-- Fade in/out duration of search and selection -->
+    <integer name="action_bar_animation_duration">195</integer>
+
+    <!-- Top margin ratio for the image for empty group view -->
+    <integer name="empty_group_view_image_margin_divisor">6</integer>
+
+    <!-- Top margin ratio for the image for empty account view -->
+    <integer name="empty_account_view_image_margin_divisor">4</integer>
+
+    <!-- Top margin ratio for the image for empty contacts view-->
+    <integer name="contacts_no_account_empty_image_margin_divisor">2</integer>
+
+    <!-- The number of characters in the snippet before we need to tokenize and ellipse. -->
+    <integer name="snippet_length_before_tokenize">30</integer>
+
+    <!-- Layout weight of space elements in contact list view.
+    Default to 0 to indicate no padding-->
+    <integer name="contact_list_space_layout_weight">0</integer>
+    <!-- Layout weight of card in contact list view.
+    Default to 0 to indicate no padding -->
+    <integer name="contact_list_card_layout_weight">0</integer>
+
+    <!-- Duration of the animations on the call subject dialog. -->
+    <integer name="call_subject_animation_duration">250</integer>
+
+    <!-- A big number to make sure "About contacts" always showing at the bottom of Settings.-->
+    <integer name="about_contacts_order_number">100</integer>
+
+    <!-- Duration of the animations when a contact list loads. -->
+    <integer name="lists_on_load_animation_duration">190</integer>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d8bcd57..1ea9708 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -19,19 +19,12 @@
          that don't specify a label. -->
     <string name="applicationLabel">Contacts</string>
 
-    <!-- Title for the activity that launches Contacts.  This is the name
-         used in the Launcher icon. -->
-    <string name="launcherActivityLabel">Contacts</string>
-
-    <!-- Title for Quick Contact activity. -->
-    <string name="quickContactActivityLabel">View Contact</string>
-
-    <!-- Title for Edit Contact activity. -->
-    <string name="editContactActivityLabel">Edit Contact</string>
-
     <!-- Directory partition name -->
     <string name="contactsList">Contacts</string>
 
+    <!-- Name of the dynamic shortcut that creates a new contact [CHAR LIMIT=30] -->
+    <string name="shortcut_add_contact">Add contact</string>
+
     <!-- Name of activity that allows users to create shortcuts on the home screen to a contact.
          This shows up in a list of things like bookmark, folder, music playlist, etc -->
     <string name="shortcutContact">Contact</string>
@@ -45,13 +38,7 @@
     <string name="shortcutMessageContact">Direct message</string>
 
     <!-- Activity title when the user is selecting a contact for a shortcut. -->
-    <string name="shortcutActivityTitle">Choose a contact shortcut</string>
-
-    <!-- Activity title when the user is selecting a contact for a direct dial shortcut. -->
-    <string name="callShortcutActivityTitle">Choose a number to call</string>
-
-    <!-- Activity title when the user is selecting a contact for a direct message shortcut. -->
-    <string name="messageShortcutActivityTitle">Choose a number to message</string>
+    <string name="shortcutActivityTitle">Choose contact</string>
 
     <!-- Activity title when the user is inserting into an existing contact, or creating a new one.  [CHAR LIMIT=128] -->
     <string name="contactInsertOrEditActivityTitle">Add to contact</string>
@@ -59,50 +46,15 @@
     <!-- Activity title when the user is selecting a contact.  [CHAR LIMIT=128] -->
     <string name="contactPickerActivityTitle">Choose a contact</string>
 
+    <!-- Activity title when the user is selecting a new label member. [CHAR LIMIT=128] -->
+    <string name="groupMemberPickerActivityTitle">Select</string>
+
     <!-- Entry that prompts user to select a newly created contact.  [CHAR LIMIT=30] -->
     <string name="header_entry_contact_list_adapter_header_title">Create new contact</string>
 
-    <!-- Title for the activity that shows only starred contacts -->
-    <string name="starredList">Starred</string>
-
-    <!-- Title for the activity that shows only frequently contacted contacts -->
-    <string name="frequentList">Frequent</string>
-
-    <!-- Title for the activity that shows a mix of starred contacts and frequently contacted
-         contacts. -->
-    <string name="strequentList">Favorites</string>
-
-    <!-- The title bar when viewing the contact details activity -->
-    <string name="viewContactTitle">Contact details</string>
-
-    <!-- The description presented to the user in the Intent choose when there are multiple activities that allow
-         editing a contact. This string represents the built in way to edit the contact. -->
-    <string name="editContactDescription">Edit contact</string>
-
-    <!-- The description presented to the user in the Intent choose when there are multiple activities that allow
-         creating a new contact. This string represents the built in way to create the contact. -->
-    <string name="insertContactDescription">Create contact</string>
-
-    <!-- The description presented to the user in the Intent choose when there are multiple activities that allow
-         editing a group. This string represents the built in way to edit the group. [CHAR LIMIT=NONE] -->
-    <string name="editGroupDescription">Edit group</string>
-
-    <!-- The description presented to the user in the Intent choose when there are multiple activities that allow
-         creating a new group. This string represents the built in way to create the group. [CHAR LIMIT=NONE] -->
-    <string name="insertGroupDescription">Create group</string>
-
-    <!-- The tab label for the contact detail activity that displays information about the contact [CHAR LIMIT=15] -->
-    <string name="contactDetailAbout">About</string>
-
-    <!-- The tab label for the contact detail activity that displays information about the contact [CHAR LIMIT=15] -->
-    <string name="contactDetailUpdates">Updates</string>
-
     <!-- Hint text in the search box when the user hits the Search key while in the contacts app -->
     <string name="searchHint">Search contacts</string>
 
-    <!-- Menu item used to view the details for a specific contact -->
-    <string name="menu_viewContact">View contact</string>
-
     <!-- Menu item used to add a star to a contact, which makes that contact show up at the top of favorites -->
     <string name="menu_addStar">Add to favorites</string>
 
@@ -124,28 +76,34 @@
     <string name="menu_change_photo">Change photo</string>
 
     <!-- Menu item used to create a contact shortcut when viewing contact details. [CHAR LIMIT=30] -->
-    <string name="menu_create_contact_shortcut">Place on Home screen</string>
-
-    <!-- Menu item used to call a specific contact when viewing the details of that contact. -->
-    <string name="menu_call">Call contact</string>
-
-    <!-- Menu item used to send an SMS or MMS message to a specific phone number or a contacts default phone number -->
-    <string name="menu_sendSMS">Text contact</string>
+    <string name="menu_create_contact_shortcut">Create shortcut</string>
 
     <!-- Menu item that splits an item from the contact detail into a separate aggregate -->
     <string name="menu_splitAggregate">Unlink</string>
 
-    <!-- Menu item that edits the currently selected group [CHAR LIMIT=30] -->
-    <string name="menu_editGroup">Edit</string>
+    <!-- Menu item that edits the currently selected label [CHAR LIMIT=30] -->
+    <string name="menu_editGroup">Remove contacts</string>
 
-    <!-- Menu item that deletes the currently selected group [CHAR LIMIT=30] -->
-    <string name="menu_deleteGroup">Delete</string>
+    <!-- Menu item to rename the currently selected label [CHAR LIMIT=30] -->
+    <string name="menu_renameGroup">Rename label</string>
 
-    <!-- Menu item (in the action bar) that creates a new contact [CHAR LIMIT=30] -->
-    <string name="menu_new_contact_action_bar">Add Contact</string>
+    <!-- Menu item that deletes the currently selected label [CHAR LIMIT=30] -->
+    <string name="menu_deleteGroup">Delete label</string>
 
-    <!-- Menu item (in the action bar) that creates a new group [CHAR LIMIT=30] -->
-    <string name="menu_new_group_action_bar">Add Group</string>
+    <!-- Menu item to search for contacts to add to the currently selected label. CHAR LIMIT=30] -->
+    <string name="menu_addToGroup">Add contact</string>
+
+    <!-- Menu item to select multiple contacts to add to the currently selected label. CHAR LIMIT=30] -->
+    <string name="menu_selectForGroup">Select contacts</string>
+
+    <!-- Menu item to add selected contacts to the currently selected label. CHAR LIMIT=30] -->
+    <string name="menu_addContactsToGroup">Add contacts</string>
+
+    <!-- Menu item to remove the currently selected contacts from the currently selected label. [CHAR LIMIT=60] -->
+    <string name="menu_removeFromGroup">Remove from label</string>
+
+    <!-- Menu item (in the action bar) that creates a new label [CHAR LIMIT=30] -->
+    <string name="menu_new_group_action_bar">Create label</string>
 
     <!-- Confirmation dialog for unlinking contacts into multiple instances [CHAR LIMIT=NONE] -->
     <string name="splitConfirmation">Unlink this contact into multiple contacts?</string>
@@ -165,9 +123,20 @@
     <!-- Positive button text from the confirmation dialog for joining contacts when there are unsaved changes. [CHAR LIMIT = 60] -->
     <string name="joinConfirmation_positive_button">Save and Link</string>
 
+    <!-- The text to show on on a ProgressDialog indicating we're currently linking
+         contacts [CHAR LIMIT=30]-->
+    <string name="contacts_linking_progress_bar">Linking</string>
+
+    <!-- The text to show on on a ProgressDialog indicating we're currently unlinking
+     contacts [CHAR LIMIT=30]-->
+    <string name="contacts_unlinking_progress_bar">Unlinking</string>
+
     <!-- Menu item that links an aggregate with another aggregate -->
     <string name="menu_joinAggregate">Link</string>
 
+    <!-- Menu item that opens a dialog that shows all linked contacts that make up this one. [CHAR LIMIT=35] -->
+    <string name="menu_linkedContacts">View linked contacts</string>
+
     <!-- Menu item (in the action bar) to indicate that changes should be saved [CHAR LIMIT=20] -->
     <string name="menu_save">Save</string>
 
@@ -178,47 +147,69 @@
     <string name="blurbJoinContactDataWith">Choose the contact you want to link with <xliff:g
         id="name">%s</xliff:g>:</string>
 
-    <!-- An item in the Join Contact activity that opens up the full contact A-Z list -->
-    <string name="showAllContactsJoinItem">Show all contacts</string>
-
     <!-- List separator for the Join Contact list: Suggestions -->
     <string name="separatorJoinAggregateSuggestions">Suggested contacts</string>
 
     <!-- List separator for the Join Contact list: A-Z -->
     <string name="separatorJoinAggregateAll">All contacts</string>
 
-    <!-- Toast shown after two contacts have been linked by a user action. [CHAR LIMIT=NONE] -->
+    <!-- Toast shown after two contacts have been linked by a user action with a name. [CHAR LIMIT=NONE] -->
+    <string name="contactsJoinedNamedMessage"><xliff:g id="name">%s</xliff:g> linked</string>
+
+    <!-- Toast shown after two contacts have been linked by a user action without a name. [CHAR LIMIT=NONE] -->
     <string name="contactsJoinedMessage">Contacts linked</string>
 
+    <!-- Toast shown with names after user selected contacts are deleted by user action. [CHAR LIMIT=50] -->
+    <string name="contacts_deleted_one_named_toast"><xliff:g id="name">%1$s</xliff:g> deleted</string>
+
+    <!-- Toast shown with names after user selected contacts are deleted by user action. [CHAR LIMIT=50] -->
+    <string name="contacts_deleted_two_named_toast"><xliff:g id="name">%1$s</xliff:g> and <xliff:g id="name">%2$s</xliff:g> deleted</string>
+
+    <!-- Toast shown with names after user selected contacts are deleted by user action. [CHAR LIMIT=50] -->
+    <string name="contacts_deleted_many_named_toast"><xliff:g id="name">%1$s</xliff:g>, <xliff:g id="name">%2$s</xliff:g>, <xliff:g id="name">%3$s</xliff:g>\u2026 deleted</string>
+
     <!-- Toast shown after contacts that the user has selected are deleted by a user action. [CHAR LIMIT=30] -->
     <plurals name="contacts_deleted_toast">
         <item quantity="one">Contact deleted</item>
         <item quantity="other">Contacts deleted</item>
     </plurals>
 
-    <!-- Menu item that opens the Options activity for a given contact [CHAR LIMIT=15] -->
+    <!-- List header indicating the number of contacts in the list [CHAR LIMIT=30] -->
+    <plurals name="contacts_count">
+        <item quantity="one"><xliff:g id="count">%d</xliff:g> contact</item>
+        <item quantity="other"><xliff:g id="count">%d</xliff:g> contacts</item>
+    </plurals>
+
+    <!-- List header indicating the number of contacts and account name in the list [CHAR LIMIT=30] -->
+    <plurals name="contacts_count_with_account">
+        <item quantity="one"><xliff:g id="count">%1$d</xliff:g> contact · <xliff:g id="account">%2$s</xliff:g></item>
+        <item quantity="other"><xliff:g id="count">%1$d</xliff:g> contacts · <xliff:g id="account">%2$s</xliff:g></item>
+    </plurals>
+
+    <!-- Activity title indicating contacts are from a Google account [CHAR LIMIT=30] -->
+    <string name="title_from_google">From Google</string>
+
+    <!-- Activity title indicating contacts are from a specific account [CHAR LIMIT=15] -->
+    <string name="title_from_other_accounts">From <xliff:g id="account">%s</xliff:g></string>
+
+    <!-- Menu item to set ring tone for a given contact [CHAR LIMIT=15] -->
     <string name="menu_set_ring_tone">Set ringtone</string>
 
-    <!-- Menu item that opens the Options activity for a given contact [CHAR LIMIT=30] -->
-    <string name="menu_redirect_calls_to_vm">All calls to voicemail</string>
+    <!-- Menu item to route all calls from a given contact to voice mail [CHAR LIMIT=30] -->
+    <string name="menu_redirect_calls_to_vm">Route to voicemail</string>
+
+    <!-- Menu item to unroute all calls from a given contact to voice mail [CHAR LIMIT=30] -->
+    <string name="menu_unredirect_calls_to_vm">Unroute to voicemail</string>
 
     <!-- Warning dialog contents after users select to delete a ReadOnly contact. [CHAR LIMIT=NONE] -->
-    <string name="readOnlyContactWarning">Contacts from your read-only accounts cannot be deleted, but they can be hidden.</string>
+    <string name="readOnlyContactWarning">This contact is read-only. It can\'t be deleted, but you can hide it.</string>
 
     <!-- Positive button text of the warning dialog contents after users select to delete a ReadOnly contact. [CHAR LIMIT=30]-->
-    <string name="readOnlyContactWarning_positive_button">Hide</string>
+    <string name="readOnlyContactWarning_positive_button">Hide Contact</string>
 
-    <!-- Warning dialog contents after users selects to delete a contact with ReadOnly and Writable sources. [CHAR LIMIT=NONE]-->
-    <string name="readOnlyContactDeleteConfirmation">The contact to be deleted has details from multiple accounts. Details from read-only accounts will be hidden, not deleted.</string>
-
-    <!-- Warning dialog. Shown if user selects a single contact to link. [CHAR LIMIT=NONE]  -->
-    <string name="batch_link_single_contact_warning">You need at least two contacts selected to perform a link.</string>
-
-    <!-- Confirmation dialog. Shown after user selects to link contacts. [CHAR LIMIT=NONE]  -->
-    <string name="batch_link_confirmation">Link selected contacts?</string>
-
-    <!-- Positive button text from confirmation dialog. Shown after user selects to link contacts. [CHAR LIMIT=40]  -->
-    <string name="batch_link_confirmation_positive_button">Link</string>
+    <!-- Warning dialog contents after users selects to delete a contact with ReadOnly and Writable data sources.
+         Tells the user that data from the read-only accounts will be hidden and not deleted. [CHAR LIMIT=NONE]-->
+    <string name="readOnlyContactDeleteConfirmation">Read-only accounts in this contact will be hidden, not deleted.</string>
 
     <!-- Confirmation dialog. Shown after user selects to delete one writable contact [CHAR LIMIT=NONE]  -->
     <string name="single_delete_confirmation">Delete this contact?</string>
@@ -241,9 +232,6 @@
     <!-- Positive button text of confirmation dialog contents after users selects to delete a Writable contact. [CHAR LIMIT=30] -->
     <string name="deleteConfirmation_positive_button">Delete</string>
 
-    <!-- Menu item to indicate you want to stop editing a contact and NOT save the changes you've made [CHAR LIMIT=30] -->
-    <string name="menu_discard">Discard changes</string>
-
     <!-- Message displayed in a toast when you try to view the details of a contact that
          for some reason doesn't exist anymore. [CHAR LIMIT=NONE]-->
     <string name="invalidContactMessage">The contact doesn\'t exist.</string>
@@ -254,29 +242,11 @@
     <!-- Message with name displayed in a toast after you create a contact shortcut in the launcher [CHAR LIMIT=NONE]-->
     <string name="createContactShortcutSuccessful"><xliff:g id="name">%s</xliff:g> added to Home screen.</string>
 
-    <!-- When picking a contact from a list of all contacts there is an entry at the top of the
-         list that allows the user to create a new contact, which this string is used for -->
-    <string name="pickerNewContactHeader">Create new contact</string>
-
-    <!-- Text for a "create new contact" button on the bottom of the contact picker screen.
-         The text will be all capitalized.
-         [CHAR LIMIT=30] -->
-    <string name="pickerNewContactText">Create new contact</string>
-
     <!-- The order of the items below is important, don't reorder without changing EditContactActivity.java -->
     <skip/>
-    <!-- The labels that are under the otherLabelsGroup when editing a contact. [CHAR LIMIT=20] -->
-    <string-array name="otherLabels">
-        <!-- An organization associated with a contact -->
-        <item>Organization</item>
-        <!-- A note associated with a contact -->
-        <item>Note</item>
-    </string-array>
 
     <!-- Description in the dialog that appears if there are no pictures from which to create an icon for a contact -->
-    <string name="photoPickerNotFoundText" product="tablet">No pictures are available on the tablet.</string>
-    <!-- Description in the dialog that appears if there are no pictures from which to create an icon for a contact -->
-    <string name="photoPickerNotFoundText" product="default">No pictures are available on the phone.</string>
+    <string name="photoPickerNotFoundText">No pictures are available on the device.</string>
 
     <!-- Description used in the attach photo Intent from third party apps [CHAR LIMIT=50] -->
     <string name="attach_photo_dialog_title">Contact photo</string>
@@ -285,29 +255,23 @@
          For example, this may be used to set a phone number's label to "Vaction house" -->
     <string name="customLabelPickerTitle">Custom label name</string>
 
-    <!-- Check box label that allows calls to the contact to be sent directly to voicemail -->
-    <string name="send_to_voicemail_checkbox">Send calls directly to voicemail</string>
-
     <!-- The menu item that allows you to remove a photo from a contact [CHAR LIMIT=50] -->
     <string name="removePhoto">Remove photo</string>
 
     <!-- The text displayed when the contacts list is empty while displaying all contacts [CHAR LIMIT=NONE] -->
-    <string name="noContacts">No contacts</string>
+    <string name="noContacts">Your contacts list is empty</string>
 
-    <!-- The text displayed when the groups list is empty while displaying all groups [CHAR LIMIT=NONE] -->
-    <string name="noGroups">No groups.</string>
+    <!-- The text displayed when there are no members that have this label while displaying the label detail page [CHAR LIMIT=70] -->
+    <string name="emptyGroup">No contacts with this label</string>
 
-    <!-- The text displayed when the groups list is empty and no accounts are set on the device while displaying all groups [CHAR LIMIT=NONE] -->
-    <string name="noAccounts">To create groups you need an account.</string>
+    <!-- The text displayed when there's no contacts in this account [CHAR LIMIT=70] -->
+    <string name="emptyAccount">No contacts in this account</string>
 
-    <!-- The text displayed when there are no members in the group while displaying the group detail page [CHAR LIMIT=40] -->
-    <string name="emptyGroup">No people in this group.</string>
+    <!-- The text displayed when there's no contacts in the main contacts list [CHAR LIMIT=70] -->
+    <string name="emptyMainList">Your contacts list is empty</string>
 
-    <!-- The text displayed to instruct users to add members to a group (when viewing a group detail page for a group with no members) [CHAR LIMIT=50] -->
-    <string name="addPeopleToGroup">To add some, edit the group.</string>
-
-    <!-- Displayed in a spinner dialog after the user creates a contact and it's being saved to the database -->
-    <string name="savingContact">Saving contact\u2026</string>
+    <!-- Toast displayed when a contact is saved [CHAR LIMIT=30] -->
+    <string name="contactSavedNamedToast"><xliff:g id="display_name">%s</xliff:g> saved</string>
 
     <!-- Toast displayed when a contact is saved [CHAR LIMIT=NONE] -->
     <string name="contactSavedToast">Contact saved</string>
@@ -316,90 +280,75 @@
     <string name="contactUnlinkedToast">Contacts unlinked</string>
 
     <!-- Toast displayed when saving a contact failed. [CHAR LIMIT=NONE] -->
-    <string name="contactSavedErrorToast">Couldn\'t save contact changes.</string>
+    <string name="contactSavedErrorToast">Couldn\'t save contact changes</string>
 
     <!-- Toast displayed when unlinking a contact failed. [CHAR LIMIT=NONE] -->
-    <string name="contactUnlinkErrorToast">Couldn\'t unlink contact.</string>
+    <string name="contactUnlinkErrorToast">Couldn\'t unlink contact</string>
 
     <!-- Toast displayed when linking a contact failed. [CHAR LIMIT=NONE] -->
-    <string name="contactJoinErrorToast">Couldn\'t link contact.</string>
+    <string name="contactJoinErrorToast">Couldn\'t link contact</string>
 
     <!-- Generic error default clause displayed when saving a contact failed. [CHAR LIMIT=NONE] -->
-    <string name="contactGenericErrorToast">Error saving contact.</string>
+    <string name="contactGenericErrorToast">Error saving contact</string>
 
     <!-- Toast displayed when saving a contact photo failed. [CHAR LIMIT=NONE] -->
-    <string name="contactPhotoSavedErrorToast">Couldn\'t save contact photo changes.</string>
+    <string name="contactPhotoSavedErrorToast">Couldn\'t save contact photo changes</string>
 
-    <!-- Toast displayed when a group is saved [CHAR LIMIT=NONE] -->
-    <string name="groupSavedToast">Group saved.</string>
+    <!-- Toast displayed when something goes wrong while loading a label. [CHAR LIMIT=70] -->
+    <string name="groupLoadErrorToast">Failed to load label</string>
 
-    <!-- Toast displayed when saving a group failed [CHAR LIMIT=NONE] -->
-    <string name="groupSavedErrorToast">Couldn\'t save group changes.</string>
+    <!-- Toast or snackbar displayed when a label name is deleted. [CHAR LIMIT=50] -->
+    <string name="groupDeletedToast">Label deleted</string>
 
-    <!-- Displayed at the top of the contacts showing the total number of contacts visible when "Only contacts with phones" is selected -->
-    <plurals name="listTotalPhoneContacts">
-        <item quantity="one">1 contact with phone number</item>
-        <item quantity="other"><xliff:g id="count">%d</xliff:g> contacts with phone numbers</item>
-    </plurals>
+    <!-- Toast displayed when a new label name is created. [CHAR LIMIT=50] -->
+    <string name="groupCreatedToast">Label created</string>
 
-    <!-- Displayed at the top of the contacts showing the zero as total number of contacts visible when "Only contacts with phones" is selected [CHAR LIMIT=64]-->
-    <string name="listTotalPhoneContactsZero">No contacts with phone numbers</string>
+    <!-- Toast displayed when a new label name cannot be created. [CHAR LIMIT=50] -->
+    <string name="groupCreateFailedToast">Can\'t create label</string>
 
-    <!-- Displayed at the top of the contacts showing the total number of contacts found when "Only contacts with phones" not selected [CHAR LIMIT=30] -->
-    <plurals name="listFoundAllContacts">
-        <item quantity="one">1 found</item>
-        <item quantity="other"><xliff:g id="count">%d</xliff:g> found</item>
-    </plurals>
+    <!-- Toast displayed when a new label is created. [CHAR LIMIT=50] -->
+    <string name="groupUpdatedToast">Label updated</string>
+
+    <!-- Toast displayed when contacts are removed from a label. [CHAR LIMIT=50] -->
+    <string name="groupMembersRemovedToast">Removed from label</string>
+
+    <!-- Toast displayed when one or more contacts is added to a label. [CHAR LIMIT=50] -->
+    <string name="groupMembersAddedToast">Added to label</string>
+
+    <!-- Toast displayed when saving a label failed [CHAR LIMIT=70] -->
+    <string name="groupSavedErrorToast">Couldn\'t save label changes</string>
+
+    <!-- Message displayed when creating a group with the same name as an existing group -->
+    <string name="groupExistsErrorMessage">That label already exists</string>
+
+    <!-- Toast displayed when some group contacts do not have any emails (for group send) [CHAR LIMIT=50] -->
+    <string name="groupSomeContactsNoEmailsToast">Some contacts do not have emails.</string>
+
+    <!-- Toast displayed when some group contacts do not have any phone numbers (for group send) [CHAR LIMIT=50] -->
+    <string name="groupSomeContactsNoPhonesToast">Some contacts do not have phone numbers.</string>
+
+    <!-- Option name to send email to all members of a group/selection [CHAR LIMIT=30] -->
+    <string name="menu_sendEmailOption">Send email</string>
+
+    <!-- Option name to send message to all members of a group/selection [CHAR LIMIT=30] -->
+    <string name="menu_sendMessageOption">Send message</string>
+
+    <!-- Activity title when the user is selecting items [CHAR LIMIT=40] -->
+    <string name="pickerSelectContactsActivityTitle">Choose Contacts</string>
+
+    <!-- The menu item to send the currently selected contacts to selected items [CHAR LIMIT=10] -->
+    <string name="send_to_selection">Send</string>
 
     <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30] -->
     <string name="listFoundAllContactsZero">No contacts</string>
 
-    <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-    <plurals name="searchFoundContacts">
-        <item quantity="one">1 found</item>
-        <item quantity="other"><xliff:g id="count">%d</xliff:g> found</item>
-    </plurals>
-
-    <!-- The title of "all contacts" tab. [CHAR LIMIT=14] -->
-    <string name="all_contacts_tab_label">All</string>
-
-    <!-- The title of "favorites" tab. [CHAR LIMIT=14] -->
-    <string name="favorites_tab_label">Favorites</string>
-
-    <!-- Action string for calling back a number in the call log -->
-    <string name="callBack">Call back</string>
-
-    <!-- Action string for calling a number in the call log again -->
-    <string name="callAgain">Call again</string>
-
-    <!-- Action string for returning a missed call in the call log -->
-    <string name="returnCall">Return call</string>
-
     <!-- Dialog message when prompting before creating a contact. Includes
          the email address, e.g. "Add xyz@foo.com to contacts?" -->
     <string name="add_contact_dlg_message_fmt">Add \"<xliff:g id="email">%s</xliff:g>\" to contacts?</string>
 
-    <!-- String describing the Contact Photo Image
-
-         Used by AccessibilityService to announce the purpose of the view.
-    -->
-    <string name="description_contact_photo">contact photo</string>
-
-    <!-- String describing the Contact Editor Plus button
-
-         Used by AccessibilityService to announce the purpose of the button.
-    -->
-    <string name="description_plus_button">plus</string>
-
-    <!-- Message in progress bar while exporting contact list to a file "(current number) of (total number) contacts" The order of "current number" and "total number" cannot be changed (like "total: (total number), current: (current number)")-->
-    <string name="exporting_contact_list_progress"><xliff:g id="current_number">%s</xliff:g> of <xliff:g id="total_number">%s</xliff:g> contacts</string>
-
     <!-- The string used to describe Contacts as a searchable item within system search settings. -->
     <string name="search_settings_description">Names of your contacts</string>
 
-    <!-- Shown as a toast when the user taps on a QuickContact icon, and no application
-         was found that could perform the selected action. [CHAR LIMIT=NONE] -->
-    <string name="quickcontact_missing_app">No app was found to handle this action.</string>
     <!-- Content description for the transparent views around the visible section of QuickContacts.
          Clicking this view causes Quick Contacts to close. [CHAR LIMIT=NONE] -->
     <string name="quickcontact_transparent_view_description">Click to return to previous screen</string>
@@ -420,44 +369,41 @@
     <!-- The menu item to add the the currently viewed contact to your contacts [CHAR LIMIT=30] -->
     <string name="menu_add_contact">Add to contacts</string>
 
-    <!-- Dialog title when picking the application to share a contact with. -->
-    <string name="share_via">Share contact via</string>
+    <!-- The menu item to add the the currently selected contacts to a label [CHAR LIMIT=10] -->
+    <string name="menu_add_contacts">Add</string>
 
-    <!-- Title for the disambiguation dialog that requests the user choose an account for the new group to be created under [CHAR LIMIT=NONE] -->
-    <string name="dialog_new_group_account">Create group under account</string>
+    <!-- Dialog title when picking the application to share one or multiple contacts with. [CHAR LIMIT=40] -->
+    <plurals name="title_share_via">
+        <item quantity="one">Share contact via</item>
+        <item quantity="other">Share contacts via</item>
+    </plurals>
+
+    <!-- Title for the disambiguation dialog that requests the user choose an account for the new label to be created under [CHAR LIMIT=NONE] -->
+    <string name="dialog_new_group_account">Choose account</string>
+
+    <!-- Title for the create new label dialog. CHAR LIMIT=40] -->
+    <string name="group_name_dialog_insert_title">Create label</string>
+
+    <!-- Title for the update label dialog. CHAR LIMIT=40] -->
+    <string name="group_name_dialog_update_title">Rename label</string>
+
+    <!-- Hint for the label name input field on the insert and update label dialogs [CHAR LIMIT=15] -->
+    <string name="group_name_dialog_hint">Label name</string>
+
+    <!-- Hint for the custom label name input filed on dialogs [CHAR LIMIT=15] -->
+    <string name="label_name_dialog_hint">Label name</string>
 
     <!-- Generic action string for starting an audio chat. Used by AccessibilityService to announce the purpose of the view. [CHAR LIMIT=NONE] -->
     <string name="audio_chat">Voice chat</string>
     <!-- Generic action string for starting a video chat. Used by AccessibilityService to announce the purpose of the view. [CHAR LIMIT=NONE] -->
     <string name="video_chat">Video chat</string>
 
-    <!-- Title for the list of all contact details that come from third-party sources (including a corporate directory) [CHAR LIMIT=20] -->
-    <string name="connections">Connections</string>
-
-    <!-- Label of the button to open the "add connection" popup where the user can invite a contact to other social networks or services [CHAR LIMIT=32] -->
-    <string name="add_connection_button">Add connection</string>
-
-    <!-- Section title for the page containing the contact's social updates on the contact card (this abbreviated version of "Recent updates" is used when "updates" is already shown as the title of the page) [CHAR LIMIT=20]-->
-    <string name="recent" msgid="2062236709538790412">Recent</string>
-
-    <!-- Section title for the page containing the contact's social updates on the contact card [CHAR LIMIT=20]-->
-    <string name="recent_updates" msgid="2018245636796411442">Recent updates</string>
-
     <!-- String describing which account type a contact came from when editing it -->
     <string name="account_type_format"><xliff:g id="source" example="Gmail">%1$s</xliff:g> contact</string>
 
     <!-- String describing that a contact came from the google account type when editing it.  -->
     <string name="google_account_type_format"><xliff:g id="source" example="Google">%1$s</xliff:g> account</string>
 
-    <!-- String describing which account a contact came from when editing it -->
-    <string name="from_account_format"><xliff:g id="source" example="user@gmail.com">%1$s</xliff:g></string>
-
-    <!-- Text used to explain that a contact cannot be edited from the People application since the data is read only [CHAR LIMIT=40] -->
-    <string name="contact_read_only">Not editable from this app.</string>
-
-    <!-- Text used to explain that a group cannot be edited since the data is read only [CHAR LIMIT=40] -->
-    <string name="group_read_only">Not editable on this device.</string>
-
     <!-- An option in the 'Contact photo' dialog, if there is no photo yet [CHAR LIMIT=50] -->
     <string name="take_photo">Take photo</string>
 
@@ -470,76 +416,33 @@
     <!-- An option in the 'Contact photo' dialog, if there is already a photo [CHAR LIMIT=50] -->
     <string name="pick_new_photo">Select new photo</string>
 
-    <!-- Text shown in the contacts app while the background process updates contacts after a system upgrade [CHAR LIMIT=300] -->
-    <string name="upgrade_in_progress">Contact list is being updated.</string>
-
     <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20] -->
     <string name="search_results_searching">Searching\u2026</string>
 
-    <!-- Label to display only selection in multiple picker -->
-    <string name="menu_display_selected">"Show selected"</string>
-
-    <!-- Label to display all recipients in multiple picker -->
-    <string name="menu_display_all">"Show all"</string>
-
-    <!-- Label to select all contacts in multiple picker -->
-    <string name="menu_select_all">"Select all"</string>
-
-    <!-- Label to clear all selection in multiple picker -->
-    <string name="menu_select_none">"Unselect all"</string>
-
-    <!-- The button to add another entry of a specific data type (i.e. email, phone, address) to a contact in the Raw Contact Editor [CHAR LIMIT=22] -->
-    <string name="add_new_entry_for_section">Add new</string>
-
-    <!-- The button to add an organization field to a contact in the Raw Contact Editor [CHAR LIMIT=22] -->
-    <string name="add_organization">Add organization</string>
-
     <!-- The button to add an organization field to a contact in the Raw Contact Editor [CHAR LIMIT=12] -->
     <string name="event_edit_field_hint_text">Date</string>
 
-    <!-- The button to add an organization field to a contact in the Raw Contact Editor [CHAR LIMIT=15] -->
-    <string name="group_edit_field_hint_text">Group name</string>
+    <!-- The button to add an label field to a contact in the Raw Contact Editor [CHAR LIMIT=15] -->
+    <string name="group_edit_field_hint_text">Label</string>
 
-    <!-- Button used for changing a photo in the Raw Contact Editor [CHAR LIMIT=15] -->
-    <string name="change_photo">Change</string>
+    <!-- Content description for a cancel button. [CHAR LIMIT=NONE] -->
+    <string name="cancel_button_content_description">Cancel</string>
 
-    <!-- RadioButton that determines whether a raw contact's photo should be used for the entire contact [CHAR LIMIT=25] -->
-    <string name="primary_photo">Primary photo</string>
+    <!-- Content description for a back button. [CHAR LIMIT=NONE] -->
+    <string name="back_arrow_content_description">Back</string>
 
-    <!-- String describing the Star/Favorite checkbox
-
-         Used by AccessibilityService to announce the purpose of the view.
-    -->
-    <string name="description_star">favorite</string>
-
-    <!-- The title of the Edit-Contact screen -->
-    <string name="edit_contact">Edit contact</string>
-
-    <!-- The message in a confirmation dialog shown when the user selects a
-        contact aggregation suggestion in Contact editor. [CHAR LIMIT=512]-->
-    <string name="aggregation_suggestion_join_dialog_message">Link
-        the current contact with the selected contact?</string>
+    <!-- Content description for the fake action menu up button as used
+         inside edit or select. [CHAR LIMIT=NONE] -->
+    <string name="action_menu_back_from_edit_select">close</string>
 
     <!-- The message in a confirmation dialog shown when the user selects a
         contact aggregation suggestion in Contact editor. [CHAR LIMIT=512]-->
     <string name="aggregation_suggestion_edit_dialog_message">Switch to editing
         the selected contact? Information you entered so far will be copied.</string>
 
-    <!-- The button that creates a local copy of a corporate contact. [CHAR LIMIT=40]-->
-    <string name="menu_copyContact">Copy to My Contacts</string>
-
-    <!-- The button that adds a contact to the predefined group "My Contacts" (as this is
-         mostly interesting for Google-contacts, this should have the same description as the
-         function of GMail/Contacts on the Web
-         [CHAR LIMIT=40] -->
-    <string name="add_to_my_contacts">Add to My Contacts</string>
-
     <!-- The description of the directory where the contact was found [CHAR LIMIT=100]-->
     <string name="contact_directory_description">Directory <xliff:g id="type" example="Corporate Directory">%1$s</xliff:g></string>
 
-    <!-- Contact list filter indicating that the list shows groups chosen by the user [CHAR LIMIT=64] -->
-    <string name="list_filter_custom">Custom</string>
-
     <!-- Title of the settings activity [CHAR LIMIT=64] -->
     <string name="activity_title_settings">Settings</string>
 
@@ -549,9 +452,6 @@
     <!-- Menu item for invoking contextual Help & Feedback [CHAR LIMIT=64] -->
     <string name="menu_help">Help &amp; feedback</string>
 
-    <!-- The preference section title for contact display options [CHAR LIMIT=128] -->
-    <string name="preference_displayOptions">Display options</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>
@@ -562,66 +462,29 @@
     <!-- Button to add a phone number to contacts [CHAR LIMIT=25] -->
     <string name="non_phone_add_to_contacts">Add to contacts</string>
 
-    <!-- Title of the activity that allows the user to confirm the addition of a detail to 1 existing contact [CHAR LIMIT=25] -->
-    <string name="activity_title_confirm_add_detail">Add to contact</string>
-
     <!-- Button to close without add a phone number to contacts [CHAR LIMIT=25] -->
     <string name="non_phone_close">Close</string>
 
-    <!-- Format string that combines the name and the phonetic name for the widget. if the phonetic name is empty, only the display name is used instead [CHAR LIMIT=25] -->
-    <string name="widget_name_and_phonetic"><xliff:g id="display_name" example="John Huber">%1$s</xliff:g> (<xliff:g id="phonetic_name">%2$s</xliff:g>)</string>
-
     <!-- Checkbox whether to include a year for a birthday [CHAR LIMIT=30] -->
     <string name="date_year_toggle">Include year</string>
 
-    <!-- Label for the widget that shows picture and social status of a contact [CHAR LIMIT=20] -->
-    <string name="social_widget_label">Contact</string>
-
-    <!-- Message of widget while it is loading data [CHAR LIMIT=20] -->
-    <string name="social_widget_loading">Loading\u2026</string>
-
-    <!-- Button shown on the main contacts screen when there are no contacts on the device.
-    Creates a new contact. [CHAR LIMIT=128] -->
-    <string name="contacts_unavailable_create_contact">Create a new contact</string>
-
     <!-- Button shown on the main contacts screen when there are no contacts on the device.
     Navigates to account setup [CHAR LIMIT=128] -->
     <string name="contacts_unavailable_add_account">Add account</string>
 
     <!-- Button shown on the main contacts screen when there are no contacts on the device.
     Initiates a contact import dialog [CHAR LIMIT=128] -->
-    <string name="contacts_unavailable_import_contacts">Import contacts</string>
+    <string name="contacts_unavailable_import_contacts">Import</string>
 
-    <!-- Title of the dialog that allows creation of a contact group [CHAR LIMIT=128] -->
-    <string name="create_group_dialog_title">Create new group</string>
+    <!-- An item in the popup list of labels that triggers creation of a contact label [CHAR LIMIT=128] -->
+    <string name="create_group_item_label">Create new&#8230;</string>
 
-    <!-- An item in the popup list of groups that triggers creation of a contact group [CHAR LIMIT=128] -->
-    <string name="create_group_item_label">Create new group</string>
-
-    <!-- Shows how many groups are from the specified account [CHAR LIMIT=15] -->
-    <plurals name="num_groups_in_account">
-        <item quantity="one">1 group</item>
-        <item quantity="other"><xliff:g id="count">%0$d</xliff:g> groups</item>
-    </plurals>
-
-    <!-- Confirmation message of the dialog that allows deletion of a contact group  [CHAR LIMIT=256] -->
-    <string name="delete_group_dialog_message">Delete the group
+    <!-- Confirmation message of the dialog that allows deletion of a contact label  [CHAR LIMIT=256] -->
+    <string name="delete_group_dialog_message">Delete the label
       \"<xliff:g id="group_label" example="Friends">%1$s</xliff:g>\"?
       (Contacts themselves will not be deleted.)
     </string>
 
-    <!-- Subtitle of the group detail page that describes how many people are in the current group [CHAR LIMIT=30] -->
-    <plurals name="num_contacts_in_group">
-        <item quantity="one"><xliff:g id="count">%1$d</xliff:g> person from <xliff:g id="account_type">%2$s</xliff:g></item>
-        <item quantity="other"><xliff:g id="count">%1$d</xliff:g> people from <xliff:g id="account_type">%2$s</xliff:g></item>
-    </plurals>
-
-    <!-- Subtitle of a group (in the group list) that describes how many people are in the current group [CHAR LIMIT=30] -->
-    <plurals name="group_list_num_contacts_in_group">
-        <item quantity="one"><xliff:g id="count">%1$d</xliff:g> person</item>
-        <item quantity="other"><xliff:g id="count">%1$d</xliff:g> people</item>
-    </plurals>
-
     <!-- Toast displayed when the user creates a new contact and attempts to link it
       with another before entering any data  [CHAR LIMIT=256] -->
     <string name="toast_join_with_empty_contact">Type contact name before linking
@@ -641,7 +504,7 @@
     <string name="toast_text_copied">Text copied</string>
 
     <!-- Contents of the alert dialog when the user hits the Cancel button in the editor [CHAR LIMIT=128] -->
-    <string name="cancel_confirmation_dialog_message">Discard your changes and quit editing?</string>
+    <string name="cancel_confirmation_dialog_message">Discard changes?</string>
 
     <!-- Positive button text for the cancel editing confirmation dialog.
       Pushing this button indicates that the user wishes to discard the changes they have already
@@ -651,22 +514,16 @@
     <!-- Negative button text for the cancel editing confirmation dialog.
       Pushing this button indicates that the user wishes to continue editing
       and return to the editor [CHAR LIMIT=30] -->
-    <string name="cancel_confirmation_dialog_keep_editing_button">Keep editing</string>
+    <string name="cancel_confirmation_dialog_keep_editing_button">Cancel</string>
 
-    <!-- Description of a call log entry, made of a call type and a date -->
-    <string name="call_type_and_date">
-        <xliff:g id="call_type" example="Friends">%1$s</xliff:g>  <xliff:g id="call_short_date" example="Friends">%2$s</xliff:g>
-    </string>
-
-    <!-- Text displayed in place of the display name for the contact that represents the user's
-      personal profile entry [CHAR LIMIT=64] -->
-    <string name="profile_display_name">Set up my profile</string>
+    <!-- Contents of the alert dialog when the user hits the Cancel button in the customize screen [CHAR LIMIT=128] -->
+    <string name="leave_customize_confirmation_dialog_message">Discard customizations?</string>
 
     <!-- Label to instruct the user to type in a contact's name to add the contact as a member of the current group. [CHAR LIMIT=64] -->
-    <string name="enter_contact_name">Type person\'s name</string>
+    <string name="enter_contact_name">Search contacts</string>
 
-    <!-- Hint text in the group name box in the edit group view. [CHAR LIMIT=20]-->
-    <string name="group_name_hint">Group\'s name</string>
+    <!-- Title of the edit label view in selection mode when contacts are being selected for removal.[CHAR LIMIT=40] -->
+    <string name="title_edit_group">Remove contacts</string>
 
     <!-- Header label in the contact editor for a profile that is local to the device only (and not associated with any account) [CHAR LIMIT=25] -->
     <string name="local_profile_title">My local profile</string>
@@ -674,18 +531,8 @@
     <!-- Header label in the contact editor for a profile that comes from an external third-party app whose name is given by source [CHAR LIMIT=20] -->
     <string name="external_profile_title">My <xliff:g id="external_source">%1$s</xliff:g> profile</string>
 
-    <!-- Toast shown when the app starts showing all contacts regardless of its current
-         contact filter state. [CHAR LIMIT=64] -->
-    <string name="toast_displaying_all_contacts">Displaying all contacts</string>
-
-    <!-- Message in the standard "no account" prompt that encourages the user to add any account (non Google-specific) before continuing to use the People app [CHAR LIMIT=NONE] -->
-    <string name="generic_no_account_prompt">Keep your contacts safe even if you lose your phone: synchronize with an online service.</string>
-
-    <!-- Title of the screen that encourages the user to add any account (non Google-specific) for a better Contacts app experience [CHAR LIMIT=20] -->
-    <string name="generic_no_account_prompt_title">Add an account</string>
-
     <!-- Message in the contact editor prompt that notifies the user that the newly created contact will not be saved to any account, and prompts addition of an account [CHAR LIMIT=NONE] -->
-    <string name="contact_editor_prompt_zero_accounts">Your new contact won\'t be backed up. Add an account that backs up contacts online?</string>
+    <string name="contact_editor_prompt_zero_accounts">Take a minute to add an account that will back up your contacts to Google.</string>
 
     <!-- Message in the contact editor prompt that asks the user if it's okay to save the newly created contact to the account shown. [CHAR LIMIT=NONE] -->
     <string name="contact_editor_prompt_one_account">New contacts will be saved to <xliff:g id="account_name">%1$s</xliff:g>.</string>
@@ -693,18 +540,32 @@
     <!-- Message in the contact editor prompt that asks the user which account they want to save the newly created contact to. [CHAR LIMIT=NONE] -->
     <string name="contact_editor_prompt_multiple_accounts">Choose a default account for new contacts:</string>
 
-    <!-- Title of the ContactEditorActivity when creating a new contact. The char
+    <!-- Title of the editor activity when creating a new contact. The char
          limit is short and cannot be increased, since this needs to be displayed in a single line
          at a pre-determined text size. [CHAR LIMIT=20] -->
-    <string name="contact_editor_title_new_contact">Add new contact</string>
+    <string name="contact_editor_title_new_contact">Create new contact</string>
 
-    <!-- Title of the ContactEditorActivity when editing a contact that already exists. The char
+    <!-- Title of the editor activity when editing a contact that already exists. The char
          limit is short and cannot be increased, since this needs to be displayed in a single line
          at a pre-determined text size. [CHAR LIMIT=20] -->
     <string name="contact_editor_title_existing_contact">Edit contact</string>
 
-    <!-- Button label to indicate that the user wants to save the newly created contact locally (instead of backing it up online) [CHAR LIMIT=20] -->
-    <string name="keep_local">Keep local</string>
+    <!-- Title of the editor activity when viewing a read-only raw contact. The char
+         limit is short and cannot be increased, since this needs to be displayed in a single line
+         at a pre-determined text size. [CHAR LIMIT=20] -->
+    <string name="contact_editor_title_read_only_contact">View only</string>
+
+    <!-- Dialog title when the user is selecting a raw contact to edit.  [CHAR LIMIT=128] -->
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title">Choose contact to edit</string>
+
+    <!-- Dialog title showing the user the list of contacts that are linked together to create the aggregate they are viewing.  [CHAR LIMIT=128] -->
+    <string name="contact_editor_pick_linked_contact_dialog_title">Linked contacts</string>
+
+    <!-- Dialog button label to prompt user to add more linked contacts to the one they're viewing. [CHAR LIMIT=15] -->
+    <string name="contact_editor_add_linked_contact">Add</string>
+
+    <!-- Dialog button label to prompt user to unlinked the contact they're looking at to it's constituent parts. [CHAR LIMIT=15] -->
+    <string name="contact_editor_unlink_contacts">Unlink</string>
 
     <!-- Button label to prompt the user to add an account (when there are 0 existing accounts on the device) [CHAR LIMIT=30] -->
     <string name="add_account">Add account</string>
@@ -712,18 +573,16 @@
     <!-- Button label to prompt the user to add another account (when there are already existing accounts on the device) [CHAR LIMIT=30] -->
     <string name="add_new_account">Add new account</string>
 
-    <!-- Menu item shown only when the special debug mode is enabled, which is used to send all contacts database files via email.  [CHAR LIMI=NONE] -->
+    <!-- Menu item shown only when the special debug mode is enabled, which is used to send all contacts database files via email.  [CHAR LIMIT=NONE] -->
     <string name="menu_export_database">Export database files</string>
 
     <!-- Content description for the button that adds a new contact
          [CHAR LIMIT=NONE] -->
-    <string name="action_menu_add_new_contact_button">add new contact</string>
+    <string name="action_menu_add_new_contact_button">Create new contact</string>
     <!-- Button Label to see more on an ExpandingEntryCardView [CHAR LIMIT=40] -->
     <string name="expanding_entry_card_view_see_more">See more</string>
     <!-- Button Label to see less on an ExpandingEntryCardView [CHAR LIMIT=40] -->
     <string name="expanding_entry_card_view_see_less">See less</string>
-    <!-- Button Label to see all on an ExpandingEntryCardView [CHAR LIMIT=40] -->
-    <string name="expanding_entry_card_view_see_all">See all</string>
 
     <!-- Title of recent card. [CHAR LIMIT=60] -->
     <string name="recent_card_title">Recent</string>
@@ -731,13 +590,9 @@
     <!-- Title of recent card. [CHAR LIMIT=40] -->
     <string name="about_card_title">About</string>
 
-    <!-- Title of sms action entry. [CHAR LIMIT=60] -->
-    <string name="send_message">Send message</string>
-
     <!-- Toast that appears when you are copying a directory contact into your personal contacts -->
-    <string name="toast_making_personal_copy">Creating a personal copy...</string>
-    <!-- Timestamp string for interactions from yesterday. [CHAR LIMIT=40] -->
-    <string name="yesterday">Yesterday</string>
+    <string name="toast_making_personal_copy">Creating a personal copy&#8230;</string>
+    <!-- Timestamp string for interactions from tomorrow. [CHAR LIMIT=40] -->
     <string name="tomorrow">Tomorrow</string>
     <!-- Timestamp string for interactions from today. [CHAR LIMIT=40] -->
     <string name="today">Today</string>
@@ -749,7 +604,7 @@
     <string name="tomorrow_at_time_fmt">"Tomorrow at <xliff:g id="time_interval">%s</xliff:g>"</string>
     <!-- Format string for a date and time description.  For ex:
          "April 19, 2012, 3:00pm - 4:00pm" [CHAR LIMIT=NONE] -->
-    <string name="date_time_fmt">"<xliff:g id="date">%s</xliff:g>, <xliff:g id="time_interval">%s</xliff:g>"</string>
+    <string name="date_time_fmt">"<xliff:g id="date">%1$s</xliff:g>, <xliff:g id="time_interval">%2$s</xliff:g>"</string>
     <!-- Title for untitled calendar interactions [CHAR LIMIT=40] -->
     <string name="untitled_event">(Untitled event)</string>
 
@@ -770,27 +625,18 @@
     <string name="header_event_entry">Event</string>
     <!-- Header for the Relation entry [CHAR LIMIT=40] -->
     <string name="header_relation_entry">Relation</string>
-    <!-- Content description for the account field header image. Example accounts listed in this field: Google, Hotmail and Exchange. [CHAR LIMIT=NONE] -->
-    <string name="header_account_entry">Account</string>
     <!-- Content description for the name fields header entry [CHAR LIMIT=NONE] -->
     <string name="header_name_entry">Name</string>
     <!-- Content description for the email fields header entry [CHAR LIMIT=NONE] -->
     <string name="header_email_entry">Email</string>
     <!-- Content description for the phone fields header entry [CHAR LIMIT=NONE] -->
     <string name="header_phone_entry">Phone</string>
-    <!-- Content description for the camera icon beside the photo section in the Raw Contact Editor [CHAR LIMIT=NONE] -->
-    <string name="header_photo_entry">Photo</string>
-
-    <!-- Content description for the expand button inside the raw contact editor's header. [CHAR LIMIT=NONE] -->
-    <string name="content_description_expand_editor">Click to expand contact editor.</string>
-    <!-- Content description for the collapse button inside the raw contact editor's header. [CHAR LIMIT=NONE] -->
-    <string name="content_description_collapse_editor">Click to collapse contact editor.</string>
 
     <!-- Content description for directions secondary button [CHAR LIMIT=NONE] -->
     <string name="content_description_directions">directions to location</string>
 
     <!-- Content description for recent sms interaction [CHAR LIMIT=NONE] -->
-    <string name="content_description_recent_sms">recent sms. <xliff:g id="message_body">%s</xliff:g>. <xliff:g id="phone_number">%s</xliff:g>. <xliff:g id="date">%s</xliff:g>. click to respond</string>
+    <string name="content_description_recent_sms">recent sms. <xliff:g id="message_body">%1$s</xliff:g>. <xliff:g id="phone_number">%2$s</xliff:g>. <xliff:g id="date">%3$s</xliff:g>. click to respond</string>
 
     <!-- Header for the Relation entry [CHAR LIMIT=NONE] -->
     <string name="content_description_recent_call_type_incoming">incoming</string>
@@ -800,40 +646,31 @@
     <string name="content_description_recent_call_type_missed">missed</string>
 
     <!-- Content description for recent sms interaction [CHAR LIMIT=NONE] -->
-    <string name="content_description_recent_call">recent call. <xliff:g id="call_type">%s</xliff:g>. <xliff:g id="phone_number">%s</xliff:g>. <xliff:g id="date">%s</xliff:g>. click to call back</string>
+    <string name="content_description_recent_call">recent call. <xliff:g id="call_type">%1$s</xliff:g>. <xliff:g id="phone_number">%2$s</xliff:g>. <xliff:g id="date">%3$s</xliff:g>. click to call back</string>
 
     <!-- Prefix for messages that you sent [CHAR LIMIT=40] -->
     <string name="message_from_you_prefix">You: <xliff:g id="sms_body">%s</xliff:g></string>
 
-    <!-- When a user tries to create an IM Hangouts field, an alert dialog pops up displaying this message. We don't want users entering email addresses of phone numbers into the IM field. [CHAR LIMIT=200] -->
-    <string name="contact_editor_hangouts_im_alert">Hangouts works better when you enter the person\'s Hangouts identifier into the email field or phone field.</string>
+    <!-- Button to expand the contact editor to show all available input fields. [CHAR LIMIT=60] -->
+    <string name="editor_more_fields">More fields</string>
 
-    <!-- Button to expand the compact contact editor to show all available input fields. [CHAR LIMIT=60] -->
-    <string name="compact_editor_more_fields">More fields</string>
+    <!-- Content description for the contact editor photo overlay which, when clicked, shows a dialog with the options for changing the contact photo. [CHAR LIMIT=NONE] -->
+    <string name="editor_change_photo_content_description">Change contact photo</string>
 
-    <!-- Content description for the compact contact editor photo overlay which, when clicked, shows a dialog with the options for changing the contact photo. [CHAR LIMIT=30] -->
-    <string name="compact_editor_change_photo_content_description">Change photo</string>
+    <!-- Content description for the contact editor photo overlay which, when clicked, shows a dialog with the options for adding a contact photo. [CHAR LIMIT=NONE] -->
+    <string name="editor_add_photo_content_description">Add contact photo</string>
+
+    <!-- Accessibility content description, describes the image as being the photo for the contact the user is viewing. [CHAR LIMIT=NONE] -->
+    <string name="editor_contact_photo_content_description">Contact photo</string>
 
     <!-- Toast message displayed when the editor fails to load for a contacts. [CHAR LIMIT=NONE] -->
-    <string name="compact_editor_failed_to_load">Failed to open editor.</string>
+    <string name="editor_failed_to_load">Failed to open editor.</string>
 
     <!-- Label for the account selector to indicate which account a contact will be saved to. [CHAR LIMIT=30] -->
-    <string name="compact_editor_account_selector_title">Saving to</string>
+    <string name="editor_account_selector_title">Saving to</string>
 
-    <!-- Content description for the account selector to indicate which account a contact will be saved to. [CHAR LIMIT=NONE] -->
-    <string name="compact_editor_account_selector_description">Currently saving to <xliff:g id="account_name">%s</xliff:g>. Double-tap to pick a different account.</string>
-
-    <!-- Label for the linked contacts selector which indicates the number of raw contacts which have been linked together into the aggregate being viewed. [CHAR LIMIT=40] -->
-    <plurals name="compact_editor_linked_contacts_selector_title">
-        <item quantity="one">Linked contact</item>
-        <item quantity="other">Linked contacts (<xliff:g id="count">%d</xliff:g>)</item>
-    </plurals>
-
-    <!-- Number of linked contacts of the current contact, only shown when there are more than 2 linked contacts (plural only!!!) [CHAR LIMIT=60] -->
-    <string name="quickcontact_contacts_number"><xliff:g id="count">%d</xliff:g> linked contacts</string>
-
-    <!-- Quick contact display name with phonetic name -->
-    <string name="quick_contact_display_name_with_phonetic"><xliff:g id="display_name">%s</xliff:g> (<xliff:g id="phonetic_name">%s</xliff:g>)</string>
+    <!-- Label for the account selector to indicate the current information (name, phone number, email etc.) about the contact comes from a read-only account. [CHAR LIMIT=55] -->
+    <string name="editor_account_selector_read_only_title">Contact info from <xliff:g id="account">%s</xliff:g> is not editable</string>
 
     <!-- Button used in quick contact suggestion card to link selected contacts. [CHAR LIMIT=30]-->
     <string name="quickcontact_suggestion_link_button">LINK CONTACTS</string>
@@ -841,27 +678,6 @@
     <!-- Button used in quick contact suggestion card to collapse suggestion card. [CHAR LIMIT=30]-->
     <string name="quickcontact_suggestion_cancel_button">CANCEL</string>
 
-    <!-- Suggestion card title in quick contact UI [CHAR LIMIT=100] -->
-    <plurals name="quickcontact_suggestion_card_title">
-        <item quantity="one">1 Possible duplicate</item>
-        <item quantity="other"><xliff:g id="count">%d</xliff:g> Possible duplicates</item>
-    </plurals>
-
-    <!-- Suggestions number in quick contact suggestion card [CHAR LIMIT=60] -->
-    <plurals name="quickcontact_suggestions_number">
-        <item quantity="one">1 linked contact</item>
-        <item quantity="other"><xliff:g id="count">%d</xliff:g> linked contacts</item>
-    </plurals>
-
-    <!-- Account type number for suggestions in quick contact suggestion card [CHAR LIMIT=30]-->
-    <plurals name="quickcontact_suggestion_account_type_number">
-        <item quantity="one"></item>
-        <item quantity="other">(<xliff:g id="count">%d</xliff:g>)</item>
-    </plurals>
-
-    <!-- Account type with number in quick contact suggestion card [CHAR LIMIT=30]-->
-    <string name="quickcontact_suggestion_account_type"><xliff:g id="account_type">%s</xliff:g><xliff:g id="account_type_number">%s</xliff:g></string>
-
     <!-- "This contact" title showing in suggestion card in Quick contact. [CHAR LIMIT=30]-->
     <string name="suggestion_card_this_contact_title">This contact</string>
 
@@ -871,49 +687,903 @@
     <!-- Help message showing in suggestion card in Quick contact. [CHAR LIMIT=NONE]-->
     <string name="suggestion_card_help_message">These contacts might be the same person. You can link them together as a single contact.</string>
 
-    <!-- Linked contacts title showing in contact editor UI. [CHAR LIMIT=30]-->
-    <string name="compact_editor_linked_contacts_title">Linked contacts</string>
-
-    <!-- Title of profile photos that are from your various accounts -->
-    <string name="from_your_accounts">From your accounts</string>
-
-    <!-- Button used in photo picker to open camera [CHAR LIMIT=30]-->
-    <string name="take_a_photo_button">Take a photo</string>
-
-    <!-- Button used in photo picker to open photo/gallery [CHAR LIMIT=20]-->
-    <string name="all_photos_button">All photos</string>
-
-    <!-- Title of photo picker [CHAR LIMIT=30]-->
-    <string name="photo_picker_title">Choose photo</string>
-
-    <!-- Message below contact name, showing from which account [CHAR LIMIT=NONE]-->
-    <string name="contact_from_account_name">From <xliff:g id="account_name">%s</xliff:g></string>
-
     <!-- Content description of delete button to the right of each section in editor, including
     data type. For example: Delete Home Phone, Delete Work Email, etc [CHAR LIMIT=30]-->
-    <string name="editor_delete_view_description">Delete <xliff:g id="data_type">%s </xliff:g><xliff:g id="data_kind">%s</xliff:g></string>
+    <string name="editor_delete_view_description">Delete <xliff:g id="data_type">%1$s </xliff:g><xliff:g id="data_kind">%2$s</xliff:g></string>
 
     <!-- Content description of delete button to the right of each section in editor, without data
     type. For example: Delete Website, Delete SIP, etc [CHAR LIMIT=30]-->
     <string name="editor_delete_view_description_short">Delete <xliff:g id="data_kind">%s</xliff:g></string>
 
-    <!-- Content description of photo in photo picker indicating a photo from a specific account is *not* selected.
-         For example: Photo from Google abc@gmail.com not checked. [CHAR LIMIT=60]-->
-    <string name="photo_view_description_not_checked">Photo from <xliff:g id="account_type">%s </xliff:g><xliff:g id="user_name">%s </xliff:g>not checked</string>
+    <!-- Left drawer menu item to open contacts assistant/suggestion cards. [CHAR LIMIT=20]-->
+    <string name="menu_assistant">Suggestions</string>
 
-    <!-- Content description of photo in photo picker indicating a photo from a specific account is selected.
-         For example: Photo from Google abc@gmail.com checked. [CHAR LIMIT=60]-->
-    <string name="photo_view_description_checked">Photo from <xliff:g id="account_type">%s </xliff:g><xliff:g id="user_name">%s </xliff:g>checked</string>
+    <!-- Badge shown next to Suggestions in left drawer menu when user has not visited it yet. [CHAR LIMIT=10] -->
+    <string name="menu_assistant_new_badge">New</string>
 
-    <!-- Content description of photo in photo picker indicating a photo from unknown account is *not* selected.-->
-    <string name="photo_view_description_not_checked_no_info">Photo from unknown account not checked</string>
+    <!-- Open drawer content descriptions [CHAR LIMIT=40] -->
+    <string name="navigation_drawer_open">Open navigation drawer</string>
 
-    <!-- Content description of photo in photo picker indicating a photo from unknown account is selected. -->
-    <string name="photo_view_description_checked_no_info">Photo from unknown account checked</string>
+    <!-- Close drawer content descriptions [CHAR LIMIT=40] -->
+    <string name="navigation_drawer_close">Close navigation drawer</string>
 
-    <!-- Text shown in the contacts app while the background process updates contacts after a locale change [CHAR LIMIT=150]-->
-    <string name="locale_change_in_progress">Contact list is being updated to reflect the change of language.\n\nPlease wait...</string>
+    <!-- Content description of label name in navigation drawer. For example: Coworker Label, Friends Label [CHAR LIMIT=30] -->
+    <string name="navigation_drawer_label"><xliff:g id="label_name">%s</xliff:g> label</string>
+
+    <!-- Menu section title of "labels" [CHAR LIMIT=20] -->
+    <string name="menu_title_groups">Labels</string>
+
+    <!-- Menu section title of "accounts" [CHAR LIMIT=20] -->
+    <string name="menu_title_filters">Accounts</string>
+
+    <!-- Contacts app asking for permissions in QuickContact activity,
+         in order to display calendar and SMS history [CHAR LIMIT=60] -->
+    <string name="permission_explanation_header">See your history together</string>
+
+    <!-- Content displayed in QuickContact activity after Contacts app receiving
+         Calendar and SMS permissions [CHAR LIMIT=60] -->
+    <string name="permission_explanation_subheader_calendar_and_SMS">Events and messages</string>
+
+    <!-- Content displayed in QuickContact activity after Contacts app receiving
+         Calendar permission [CHAR LIMIT=40] -->
+    <string name="permission_explanation_subheader_calendar">Events</string>
+
+    <!-- Content displayed in QuickContact activity after Contacts app receiving
+         SMS permission [CHAR LIMIT=40] -->
+    <string name="permission_explanation_subheader_SMS">Messages</string>
+
+    <!-- The header text for hamburger promo [CHAR LIMIT=60]-->
+    <string name="hamburger_feature_highlight_header">Suggestions</string>
+    <!-- The body text for hamburger promo [CHAR LIMIT=200]-->
+    <string name="hamburger_feature_highlight_body">Keep your contacts organized and useful</string>
+
+    <!-- The label for the action shown in a snackbar after an operation that modifies some data is performed.
+         The user can click on the action to rollback the modification-->
+    <string name="undo">Undo</string>
+
+    <!-- Action string for calling a custom phone number -->
+    <string name="call_custom">Call
+        <xliff:g id="custom_label" example="business">%s</xliff:g>
+    </string>
+    <!-- Action string for calling a home phone number -->
+    <string name="call_home">Call home</string>
+    <!-- Action string for calling a mobile phone number -->
+    <string name="call_mobile">Call mobile</string>
+    <!-- Action string for calling a work phone number -->
+    <string name="call_work">Call work</string>
+    <!-- Action string for calling a work fax phone number -->
+    <string name="call_fax_work">Call work fax</string>
+    <!-- Action string for calling a home fax phone number -->
+    <string name="call_fax_home">Call home fax</string>
+    <!-- Action string for calling a pager phone number -->
+    <string name="call_pager">Call pager</string>
+    <!-- Action string for calling an other phone number -->
+    <string name="call_other">Call</string>
+    <!-- Action string for calling a callback number -->
+    <string name="call_callback">Call callback</string>
+    <!-- Action string for calling a car phone number -->
+    <string name="call_car">Call car</string>
+    <!-- Action string for calling a company main phone number -->
+    <string name="call_company_main">Call company main</string>
+    <!-- Action string for calling a ISDN phone number -->
+    <string name="call_isdn">Call ISDN</string>
+    <!-- Action string for calling a main phone number -->
+    <string name="call_main">Call main</string>
+    <!-- Action string for calling an other fax phone number -->
+    <string name="call_other_fax">Call fax</string>
+    <!-- Action string for calling a radio phone number -->
+    <string name="call_radio">Call radio</string>
+    <!-- Action string for calling a Telex phone number -->
+    <string name="call_telex">Call telex</string>
+    <!-- Action string for calling a TTY/TDD phone number -->
+    <string name="call_tty_tdd">Call TTY/TDD</string>
+    <!-- Action string for calling a work mobile phone number -->
+    <string name="call_work_mobile">Call work mobile</string>
+    <!-- Action string for calling a work pager phone number -->
+    <string name="call_work_pager">Call work pager</string>
+    <!-- Action string for calling an assistant phone number -->
+    <string name="call_assistant">Call
+        <xliff:g id="custom_label" example="assistant">%s</xliff:g>
+    </string>
+    <!-- Action string for calling a MMS phone number -->
+    <string name="call_mms">Call MMS</string>
+    <!-- Action string for calling a contact by shortcut -->
+    <string name="call_by_shortcut"><xliff:g id="contact_name">%s</xliff:g> (Call)</string>
+
+    <!-- Action string for sending an SMS to a custom phone number -->
+    <string name="sms_custom">Text
+        <xliff:g id="custom_label" example="business">%s</xliff:g>
+    </string>
+    <!-- Action string for sending an SMS to a home phone number -->
+    <string name="sms_home">Text home</string>
+    <!-- Action string for sending an SMS to a mobile phone number -->
+    <string name="sms_mobile">Text mobile</string>
+    <!-- Action string for sending an SMS to a work phone number -->
+    <string name="sms_work">Text work</string>
+    <!-- Action string for sending an SMS to a work fax phone number -->
+    <string name="sms_fax_work">Text work fax</string>
+    <!-- Action string for sending an SMS to a home fax phone number -->
+    <string name="sms_fax_home">Text home fax</string>
+    <!-- Action string for sending an SMS to a pager phone number -->
+    <string name="sms_pager">Text pager</string>
+    <!-- Action string for sending an SMS to an other phone number -->
+    <string name="sms_other">Text</string>
+    <!-- Action string for sending an SMS to a callback number -->
+    <string name="sms_callback">Text callback</string>
+    <!-- Action string for sending an SMS to a car phone number -->
+    <string name="sms_car">Text car</string>
+    <!-- Action string for sending an SMS to a company main phone number -->
+    <string name="sms_company_main">Text company main</string>
+    <!-- Action string for sending an SMS to a ISDN phone number -->
+    <string name="sms_isdn">Text ISDN</string>
+    <!-- Action string for sending an SMS to a main phone number -->
+    <string name="sms_main">Text main</string>
+    <!-- Action string for sending an SMS to an other fax phone number -->
+    <string name="sms_other_fax">Text fax</string>
+    <!-- Action string for sending an SMS to a radio phone number -->
+    <string name="sms_radio">Text radio</string>
+    <!-- Action string for sending an SMS to a Telex phone number -->
+    <string name="sms_telex">Text telex</string>
+    <!-- Action string for sending an SMS to a TTY/TDD phone number -->
+    <string name="sms_tty_tdd">Text TTY/TDD</string>
+    <!-- Action string for sending an SMS to a work mobile phone number -->
+    <string name="sms_work_mobile">Text work mobile</string>
+    <!-- Action string for sending an SMS to a work pager phone number -->
+    <string name="sms_work_pager">Text work pager</string>
+    <!-- Action string for sending an SMS to an assistant phone number -->
+    <string name="sms_assistant">Text
+        <xliff:g id="assistant">%s</xliff:g>
+    </string>
+    <!-- Action string for sending an SMS to a MMS phone number -->
+    <string name="sms_mms">Text MMS</string>
+    <!-- Action string for sending an SMS to a contact by shortcut -->
+    <string name="sms_by_shortcut"><xliff:g id="contact_name">%s</xliff:g> (Message)</string>
+
+    <!-- Description string for an action button to initiate a video call. -->
+    <string name="description_video_call">Make video call</string>
+
+    <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=60] -->
+    <string name="clearFrequentsConfirmation_title">Clear frequently contacted?</string>
+
+    <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
+    <string name="clearFrequentsConfirmation">You\'ll clear the frequently contacted list in the
+        Contacts and Phone apps, and force email apps to learn your addressing preferences from
+        scratch.
+    </string>
+
+    <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=60] -->
+    <string name="clearFrequentsProgress_title">Clearing frequently contacted\u2026</string>
+
+    <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
+    <string name="status_available">Available</string>
+
+    <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
+    <string name="status_away">Away</string>
+
+    <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
+    <string name="status_busy">Busy</string>
+
+    <!-- The name of the invisible local contact directory -->
+    <string name="local_invisible_directory">Other</string>
+
+    <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
+    <string name="directory_search_label">Directory</string>
+
+    <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
+    <string name="directory_search_label_work">Work directory</string>
+
+    <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
+    <string name="local_search_label">All contacts</string>
+
+    <!-- String describing the text for photo of a contact in a contacts list.
+
+        Note: AccessibilityServices use this attribute to announce what the view represents.
+              This is especially valuable for views without textual representation like ImageView.
+    -->
+    <string name="description_quick_contact_for">Quick contact for <xliff:g id="name">%1$s</xliff:g></string>
+
+    <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
+    <string name="missing_name">(No name)</string>
+
+    <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
+    <string name="favoritesFrequentContacted">Frequently contacted</string>
+
+    <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
+    <string name="list_filter_phones">All contacts with phone numbers</string>
+
+    <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
+    <string name="list_filter_phones_work">Work profile contacts</string>
+
+    <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
+    <string name="view_updates_from_group">View updates</string>
+
+    <!-- Title for data source when creating or editing a contact that doesn't
+         belong to a specific account.  This contact will only exist on the phone
+         and will not be synced. [CHAR LIMIT=20]  -->
+    <string name="account_phone">Device</string>
+
+    <!-- Title for data source when creating or editing a contact that is stored on the
+         devices SIM card. This contact will only exist on the phone and will not be synced.
+         [CHAR LIMIT=20]  -->
+    <string name="account_sim">SIM</string>
+
+    <!-- Header that expands to list all name types when editing a structured name of a contact
+         [CHAR LIMIT=20] -->
+    <string name="nameLabelsGroup">Name</string>
+
+    <!-- Header that expands to list all nickname types when editing a nickname of a contact
+         [CHAR LIMIT=20] -->
+    <string name="nicknameLabelsGroup">Nickname</string>
+
+    <!-- Field title for the given name of a contact -->
+    <string name="name_given">First name</string>
+    <!-- Field title for the family name of a contact -->
+    <string name="name_family">Last name</string>
+    <!-- Field title for the prefix name of a contact -->
+    <string name="name_prefix">Name prefix</string>
+    <!-- Field title for the middle name of a contact -->
+    <string name="name_middle">Middle name</string>
+    <!-- Field title for the suffix name of a contact -->
+    <string name="name_suffix">Name suffix</string>
+
+    <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
+    <string name="name_phonetic">Phonetic name</string>
+
+    <!-- Field title for the phonetic given name of a contact -->
+    <string name="name_phonetic_given">Phonetic first name</string>
+    <!-- Field title for the phonetic middle name of a contact -->
+    <string name="name_phonetic_middle">Phonetic middle name</string>
+    <!-- Field title for the phonetic family name of a contact -->
+    <string name="name_phonetic_family">Phonetic last name</string>
+
+    <!-- Header that expands to list all of the types of phone numbers when editing or creating a
+         phone number for a contact [CHAR LIMIT=20] -->
+    <string name="phoneLabelsGroup">Phone</string>
+
+    <!-- Header that expands to list all of the types of email addresses when editing or creating
+         an email address for a contact [CHAR LIMIT=20] -->
+    <string name="emailLabelsGroup">Email</string>
+
+    <!-- Header that expands to list all of the types of postal addresses when editing or creating
+         an postal address for a contact [CHAR LIMIT=20] -->
+    <string name="postalLabelsGroup">Address</string>
+
+    <!-- Header that expands to list all of the types of IM account when editing or creating an IM
+         account for a contact [CHAR LIMIT=20] -->
+    <string name="imLabelsGroup">IM</string>
+
+    <!-- Header that expands to list all organization types when editing an organization of a
+         contact [CHAR LIMIT=20] -->
+    <string name="organizationLabelsGroup">Organization</string>
+
+    <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
+    <string name="relationLabelsGroup">Relationship</string>
+
+    <!-- Header that expands to list all event types when editing an event of a contact
+         [CHAR LIMIT=20] -->
+    <string name="eventLabelsGroup">Special date</string>
+
+    <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
+         announce the purpose of the view. [CHAR LIMIT=NONE] -->
+    <string name="sms">Text message</string>
+
+    <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
+    <string name="postal_address">Address</string>
+
+    <!-- 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 title when editing a business/work contact. [CHAR LIMIT=64] -->
+    <string name="ghostData_title">Title</string>
+
+    <!-- The label describing the Notes field of a contact. This field allows free form text entry
+         about a contact -->
+    <string name="label_notes">Notes</string>
+
+    <!-- The label describing the custom field of a contact. [CHAR LIMIT=20] -->
+    <string name="label_custom_field">Custom</string>
+
+    <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
+    <string name="label_sip_address">SIP</string>
+
+    <!-- Header that expands to list all website types when editing a website of a contact
+         [CHAR LIMIT=20] -->
+    <string name="websiteLabelsGroup">Website</string>
+
+    <!-- Header for the list of all labels for a contact [CHAR LIMIT=20] -->
+    <string name="groupsLabel">Labels</string>
+
+    <!-- Action string for sending an email to a home email address -->
+    <string name="email_home">Email home</string>
+    <!-- Action string for sending an email to a mobile email address -->
+    <string name="email_mobile">Email mobile</string>
+    <!-- Action string for sending an email to a work email address -->
+    <string name="email_work">Email work</string>
+    <!-- Action string for sending an email to an other email address -->
+    <string name="email_other">Email</string>
+    <!-- Action string for sending an email to a custom email address -->
+    <string name="email_custom">Email <xliff:g id="custom_label" example="business">%s</xliff:g></string>
+
+    <!-- Generic action string for sending an email -->
+    <string name="email">Email</string>
+
+    <!-- Field title for the street of a structured postal address of a contact -->
+    <string name="postal_street">Street</string>
+    <!-- Field title for the city of a structured postal address of a contact -->
+    <string name="postal_city">City</string>
+    <!-- Field title for the region, or state, of a structured postal address of a contact -->
+    <string name="postal_region">State</string>
+    <!-- Field title for the postal code of a structured postal address of a contact -->
+    <string name="postal_postcode">ZIP code</string>
+    <!-- Field title for the country of a structured postal address of a contact -->
+    <string name="postal_country">Country</string>
+
+    <!-- Action string for viewing a home postal address -->
+    <string name="map_home">View home address</string>
+    <!-- Action string for viewing a work postal address -->
+    <string name="map_work">View work address</string>
+    <!-- Action string for viewing an other postal address -->
+    <string name="map_other">View address</string>
+    <!-- Action string for viewing a custom postal address -->
+    <string name="map_custom">View <xliff:g id="custom_label" example="vacation">%s</xliff:g> address</string>
+
+    <!-- Action string for starting an IM chat with the AIM protocol -->
+    <string name="chat_aim">Chat using AIM</string>
+    <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
+    <string name="chat_msn">Chat using Windows Live</string>
+    <!-- Action string for starting an IM chat with the Yahoo protocol -->
+    <string name="chat_yahoo">Chat using Yahoo</string>
+    <!-- Action string for starting an IM chat with the Skype protocol -->
+    <string name="chat_skype">Chat using Skype</string>
+    <!-- Action string for starting an IM chat with the QQ protocol -->
+    <string name="chat_qq">Chat using QQ</string>
+    <!-- Action string for starting an IM chat with the Google Talk protocol -->
+    <string name="chat_gtalk">Chat using Google Talk</string>
+    <!-- Action string for starting an IM chat with the ICQ protocol -->
+    <string name="chat_icq">Chat using ICQ</string>
+    <!-- Action string for starting an IM chat with the Jabber protocol -->
+    <string name="chat_jabber">Chat using Jabber</string>
+
+    <!-- Generic action string for starting an IM chat -->
+    <string name="chat">Chat</string>
+
+    <!-- String describing the Contact Editor Minus button
+
+         Used by AccessibilityService to announce the purpose of the button.
+
+         [CHAR LIMIT=NONE]
+    -->
+    <string name="description_minus_button">delete</string>
+
+    <!-- Content description for the expand or collapse name fields button.
+         Clicking this button causes the name editor to toggle between showing
+         a single field where the entire name is edited at once, or multiple
+         fields corresponding to each part of the name (Name Prefix, First Name,
+         Middle Name, Last Name, Name Suffix).
+         [CHAR LIMIT=NONE] -->
+    <string name="expand_name_fields_description">Show more name fields</string>
+
+    <!-- Content description for the collapse name fields button. [CHAR LIMIT=NONE] -->
+    <string name="collapse_name_fields_description">Collapse name fields</string>
+
+    <!-- Content description for the expand phonetic name fields button. [CHAR LIMIT=NONE] -->
+    <string name="expand_phonetic_name_fields_description">Show more phonetic name fields</string>
+
+    <!-- Content description for the collapse phonetic name fields button. [CHAR LIMIT=NONE] -->
+    <string name="collapse_phonetic_name_fields_description">Collapse phonetic name fields</string>
+
+    <!-- Content description for a generic expand fields button. [CHAR LIMIT=NONE] -->
+    <string name="expand_fields_description">Expand</string>
+
+    <!-- Content description for a generic collapse fields button. [CHAR LIMIT=NONE] -->
+    <string name="collapse_fields_description">Collapse</string>
+
+    <!-- A11y announcement text for when a expand fields button is actioned. [CHAR LIMIT=NONE] -->
+    <string name="announce_expanded_fields">Expanded</string>
+
+    <!-- A11y announcement text for when a collapse fields button is actioned. [CHAR LIMIT=NONE] -->
+    <string name="announce_collapsed_fields">Collapsed</string>
+
+    <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
+    <string name="list_filter_all_accounts">All contacts</string>
+
+    <!-- Contact list filter label indicating that the list is showing all starred contacts [CHAR LIMIT=64] -->
+    <string name="list_filter_all_starred">Starred</string>
+
+    <!-- Contact list filter selection indicating that the list shows groups chosen by the user [CHAR LIMIT=64] -->
+    <string name="list_filter_customize">Customize</string>
+
+    <!-- Contact list filter selection indicating that the list shows only the selected contact [CHAR LIMIT=64] -->
+    <string name="list_filter_single">Contact</string>
+
+    <!-- List title for a special contacts group that covers all contacts. [CHAR LIMIT=25] -->
+    <string name="display_ungrouped">All other contacts</string>
+
+    <!-- List title for a special contacts group that covers all contacts that aren't members of any other group. [CHAR LIMIT=25] -->
+    <string name="display_all_contacts">All contacts</string>
+
+    <!-- Menu item to remove a contacts sync group. [CHAR LIMIT=40] -->
+    <string name="menu_sync_remove">Remove sync group</string>
+
+    <!-- Menu item to add a contacts sync group. [CHAR LIMIT=40] -->
+    <string name="dialog_sync_add">Add sync group</string>
+
+    <!-- Text displayed in the sync groups footer view for unknown sync groups. [CHAR LIMIT=40 -->
+    <string name="display_more_groups">More groups\u2026</string>
+
+    <!-- Warning message given to users just before they remove a currently syncing
+         group that would also cause all ungrouped contacts to stop syncing.  [CHAR LIMIT=NONE] -->
+    <string name="display_warn_remove_ungrouped">Removing \"<xliff:g id="group" example="Starred">%s</xliff:g>\" from sync will also remove any ungrouped contacts from sync.</string>
+
+    <!-- Displayed in a spinner dialog as user changes to display options are saved -->
+    <string name="savingDisplayGroups">Saving display options\u2026</string>
+
+    <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=50] -->
+    <string name="listCustomView">Customized view</string>
+
+    <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
+    <string name="dialog_new_contact_account">Save imported contacts to:</string>
+
+    <!-- Action string for selecting SIM for importing contacts -->
+    <string name="import_from_sim">SIM card</string>
+
+    <!-- Action string for selecting a SIM subscription for importing contacts -->
+    <string name="import_from_sim_summary_fmt">SIM <xliff:g id="sim_name">%1$s</xliff:g></string>
+
+    <!-- Secondary string showing the number of SIM contacts for the SIM card on the action for
+         importing from that SIM. Only shown if there is no phone number available for the SIM card
+         [CHAR LIMIT=25] -->
+    <plurals name="import_from_sim_secondary_contact_count_fmt">
+        <item quantity="one">1 contact</item>
+        <item quantity="other">%1$d contacts</item>
+    </plurals>
+
+    <!-- Secondary string showing the number of SIM contacts and phone number for the SIM card
+         on the action for importing that SIM. Note that the bullet character is purely a visual
+         separator between the contact count and phone number; it has no grammatical meaning in
+         this string [CHAR LIMIT=35]-->
+    <plurals name="import_from_sim_secondary_template">
+        <item quantity="one"><xliff:g id="count">^1</xliff:g> contact • <xliff:g id="phone_number">^2</xliff:g></item>
+        <item quantity="other"><xliff:g id="count">^1</xliff:g> contacts • <xliff:g id="phone_number">^2</xliff:g></item>
+    </plurals>
+
+
+
+    <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
+    <string name="import_from_vcf_file">.vcf file</string>
+
+    <!-- Message shown on Import from dialog when there is nothing available to import (no .vcf option or SIM cards) [CHAR LIMIT=NONE] -->
+    <string name="nothing_to_import_message">Nothing to import</string>
+
+    <!-- Dialog message asking the user for confirmation before starting to import contacts from a .vcf file. [CHAR LIMIT=NONE] -->
+    <string name="import_from_vcf_file_confirmation_message">Import contacts from vCard?</string>
+
+    <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
+         The argument is file name for the vCard import the user wants to cancel.
+         [CHAR LIMIT=128] -->
+    <string name="cancel_import_confirmation_message">Cancel import of <xliff:g id="filename" example="import.vcf">%s</xliff:g>?</string>
+
+    <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
+         The argument is file name for the vCard export the user wants to cancel.
+         [CHAR LIMIT=128] -->
+    <string name="cancel_export_confirmation_message">Cancel export of <xliff:g id="filename" example="export.vcf">%s</xliff:g>?</string>
+
+    <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=80] -->
+    <string name="cancel_vcard_import_or_export_failed">Couldn\'t cancel vCard import/export</string>
+
+    <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
+    <string name="fail_reason_unknown">Unknown error.</string>
+
+    <!-- The failed reason shown when vCard importer/exporter could not open the file
+         specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
+    <string name="fail_reason_could_not_open_file">Couldn\'t open \"<xliff:g id="file_name">%1$s</xliff:g>\": <xliff:g id="exact_reason">%2$s</xliff:g>.</string>
+
+    <!-- The failed reason shown when contacts exporter fails to be initialized.
+         Some exact reason must follow this. [CHAR LIMIT=NONE]-->
+    <string name="fail_reason_could_not_initialize_exporter">Couldn\'t start the exporter: \"<xliff:g id="exact_reason">%s</xliff:g>\".</string>
+
+    <!-- The failed reason shown when there's no contact which is allowed to be exported.
+         Note that user may have contacts data but all of them are probably not allowed to be
+         exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
+    <string name="fail_reason_no_exportable_contact">There is no exportable contact.</string>
+
+    <!-- The user doesn't have all permissions required to use the current screen. So
+         close the current screen and show the user this message. -->
+    <string name="missing_required_permission">You have disabled a required permission.</string>
+
+    <!-- The failed reason shown when some error happend during contacts export.
+         Some exact reason must follow this. [CHAR LIMIT=NONE] -->
+    <string name="fail_reason_error_occurred_during_export">An error occurred during export: \"<xliff:g id="exact_reason">%s</xliff:g>\".</string>
+
+    <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
+         emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
+    <string name="fail_reason_io_error">I/O error</string>
+
+    <!-- Failure reason show when Contacts app (especially vCard importer) encountered
+         low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
+    <string name="fail_reason_low_memory_during_import">Not enough memory. The file may be too large.</string>
+
+    <!-- The failed reason shown when vCard importer doesn't support the format.
+         This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
+    <string name="fail_reason_not_supported">The format isn\'t supported.</string>
+
+    <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
+    <string name="exporting_vcard_finished_title">Finished exporting <xliff:g id="filename" example="export.vcf">%s</xliff:g>.</string>
+
+    <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
+    <string name="exporting_vcard_finished_title_fallback">Finished exporting contacts.</string>
+
+    <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
+    <string name="exporting_vcard_finished_toast">Finished exporting contacts, click the notification to share contacts.</string>
+
+    <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
+    <string name="touch_to_share_contacts">Tap to share contacts.</string>
+
+    <!-- The title shown when exporting vCard is canceled (probably by a user)
+         The argument is file name the user canceled importing.
+         [CHAR LIMIT=40] -->
+    <string name="exporting_vcard_canceled_title">Exporting <xliff:g id="filename" example="export.vcf">%s</xliff:g> canceled.</string>
+
+    <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
+    <string name="exporting_contact_list_title">Exporting contact data</string>
+
+    <!-- Message shown when the application is exporting contact data outside -->
+    <string name="exporting_contact_list_message">Contact data is being exported.</string>
+
+    <!-- The error reason the vCard composer "may" emit when database is corrupted or
+         something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
+    <string name="composer_failed_to_get_database_infomation">Couldn\'t get database information.</string>
+
+    <!-- This error message shown when the user actually have no contact
+         (e.g. just after data-wiping), or, data providers of the contact list prohibits their
+         contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
+    <string name="composer_has_no_exportable_contact">There are no exportable contacts.</string>
+
+    <!-- The error reason the vCard composer may emit when vCard composer is not initialized
+         even when needed.
+         Users should not usually see this error message. [CHAR LIMIT=NONE] -->
+    <string name="composer_not_initialized">The vCard composer didn\'t start properly.</string>
+
+    <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
+    <string name="exporting_contact_failed_title">Couldn\'t export</string>
+
+    <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
+    <string name="exporting_contact_failed_message">The contact data wasn\'t exported.\nReason: \"<xliff:g id="fail_reason">%s</xliff:g>\"</string>
+
+    <!-- Description shown when importing vCard data.
+         The argument is the name of a contact which is being read.
+         [CHAR LIMIT=20] -->
+    <string name="importing_vcard_description">Importing <xliff:g id="name" example="Joe Due">%s</xliff:g></string>
+
+    <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
+    <string name="reading_vcard_failed_title">Couldn\'t read vCard data</string>
+
+    <!-- The title shown when reading vCard finished
+         The argument is file name the user imported.
+         [CHAR LIMIT=40] -->
+    <string name="importing_vcard_finished_title">Finished importing vCard <xliff:g id="filename" example="import.vcf">%s</xliff:g></string>
+
+    <!-- The title shown when importing vCard is canceled (probably by a user)
+         The argument is file name the user canceled importing.
+         [CHAR LIMIT=40] -->
+    <string name="importing_vcard_canceled_title">Importing <xliff:g id="filename" example="import.vcf">%s</xliff:g> canceled</string>
+
+    <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
+         when there are already other import/export requests.
+         The argument is file name the user imported.
+         [CHAR LIMIT=40] -->
+    <string name="vcard_import_will_start_message"><xliff:g id="filename" example="import.vcf">%s</xliff:g> will be imported shortly.</string>
+    <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
+         "The file" is what a user selected for importing.
+         [CHAR LIMIT=40] -->
+    <string name="vcard_import_will_start_message_with_default_name">The file will be imported shortly.</string>
+    <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
+    <string name="vcard_import_request_rejected_message">vCard import request was rejected. Try again later.</string>
+
+    <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
+    <string name="contacts_export_will_start_message">Contacts will be exported shortly.</string>
+
+    <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
+    <string name="vcard_export_request_rejected_message">vCard export request was rejected. Try again later.</string>
+    <!-- Used when file name is unknown in vCard processing. It typically happens
+         when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
+    <string name="vcard_unknown_filename">contact</string>
+
+    <!-- The message shown when vCard importer is caching files to be imported into local temporary
+         data storage. [CHAR LIMIT=NONE] -->
+    <string name="caching_vcard_message">Caching vCard(s) to local temporary storage. The actual import will start soon.</string>
+
+    <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
+    <string name="vcard_import_failed">Couldn\'t import vCard.</string>
+
+    <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=50] -->
+    <string name="nfc_vcard_file_name">Contact received over NFC</string>
+
+    <!-- The title shown when vCard importer is caching files to be imported into local temporary
+         data storage.  [CHAR LIMIT=40] -->
+    <string name="caching_vcard_title">Caching</string>
+
+    <!-- The message shown while importing vCard(s).
+         First argument is current index of contacts to be imported.
+         Second argument is the total number of contacts.
+         Third argument is the name of a contact which is being read.
+         [CHAR LIMIT=20] -->
+    <string name="progress_notifier_message">Importing <xliff:g id="current_number">%1$s</xliff:g>/<xliff:g id="total_number">%2$s</xliff:g>: <xliff:g id="name" example="Joe Due">%3$s</xliff:g></string>
+
+    <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
+    <string name="export_to_vcf_file">Export to .vcf file</string>
+
+    <!-- Contact preferences related strings -->
+
+    <!-- Label of the "sort by" display option -->
+    <string name="display_options_sort_list_by">Sort by</string>
+
+    <!-- Label of the "phonetic name fields" display option. [CHAR LIMIT=50] -->
+    <string name="display_options_phonetic_name_fields">Phonetic name</string>
+
+    <!-- Option to initially show the phonetic name input fields on the contact editor even if the
+    contact does not have a phonetic name. [CHAR LIMIT=25]  -->
+    <string name="editor_options_always_show_phonetic_names">Always show</string>
+
+    <!-- Option to initially hide the phonetic name input fields on the contact editor if the
+    contact being edited doesn't have a phonetic name. [CHAR LIMIT=25]  -->
+    <string name="editor_options_hide_phonetic_names_if_empty">Hide if empty</string>
+
+    <!-- An allowable value for the "sort list by" contact display option  -->
+    <string name="display_options_sort_by_given_name">First name</string>
+
+    <!-- An allowable value for the "sort list by" contact display option  -->
+    <string name="display_options_sort_by_family_name">Last name</string>
+
+    <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
+    <string name="display_options_view_names_as">Name format</string>
+
+    <!-- An allowable value for the "view names as" contact display option  -->
+    <string name="display_options_view_given_name_first">First name first</string>
+
+    <!-- An allowable value for the "view names as" contact display option  -->
+    <string name="display_options_view_family_name_first">Last name first</string>
+
+    <!--Lable of the "Accounts" in settings [CHAR LIMIT=30]-->
+    <string name="settings_accounts">Accounts</string>
+
+    <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
+    <string name="default_editor_account">Default account for new contacts</string>
+
+    <!-- Title of my info preference, showing the name of user's personal profile [CHAR LIMIT=30]-->
+    <string name="settings_my_info_title">My info</string>
+
+    <!-- Displayed below my info for user to set up the user's personal profile entry [CHAR LIMIT=64] -->
+    <string name="set_up_profile">Set up your profile</string>
+
+    <!-- Label of the "About" setting -->
+    <string name="setting_about">About Contacts</string>
+
+    <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
+    <string name="share_favorite_contacts">Share favorite contacts</string>
+
+    <!-- Action that shares contacts [CHAR LIMIT=30]-->
+    <string name="share_contacts">Share all contacts</string>
+
+    <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
+    <string name="share_contacts_failure">Failed to share contacts.</string>
+
+    <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
+    <string name="dialog_export">Export contacts</string>
+
+    <!-- Dialog title when importing contacts from an external source such as SIM card or a vcf file. [CHAR LIMIT=36] -->
+    <string name="dialog_import">Import contacts from</string>
+
+    <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
+    <string name="share_error">This contact can\'t be shared.</string>
+
+    <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
+    <string name="no_contact_to_share">There are no contacts to share.</string>
+
+    <!-- The menu item to filter the list of contacts displayed -->
+    <string name="menu_contacts_filter">Contacts to display</string>
+
+    <!-- Title of the activity that allows the uesr to filter the list of contacts displayed according to account [CHAR LIMIT=25] -->
+    <string name="activity_title_contacts_filter">Contacts to display</string>
+
+    <!-- Title of the activity that allows the user to customize filtering of contact list [CHAR LIMIT=128] -->
+    <string name="custom_list_filter">Customize view</string>
+
+    <!-- Menu item to save changes to custom filter. [CHAR LIMIT=15] -->
+    <string name="menu_custom_filter_save">Save</string>
+
+    <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
+    <string name="hint_findContacts">Search contacts</string>
+
+    <!-- The content description text for star icon in contacts list [CHAR LIMIT=30] -->
+    <string name="contactsFavoritesLabel">Favorites</string>
+
+    <!-- The menu item to bulk import contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
+    <string name="menu_import">Import</string>
+
+    <!-- The menu item to bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
+    <string name="menu_export">Export</string>
 
     <!-- The menu item to open blocked numbers activity [CHAR LIMIT=60]-->
     <string name="menu_blocked_numbers">Blocked numbers</string>
+
+    <!-- Attribution of a contact status update, when the time of update is unknown -->
+    <string name="contact_status_update_attribution">via <xliff:g id="source" example="Google Talk">%1$s</xliff:g></string>
+
+    <!-- Attribution of a contact status update, when the time of update is known -->
+    <string name="contact_status_update_attribution_with_date"><xliff:g id="date" example="3 hours ago">%1$s</xliff:g> via <xliff:g id="source" example="Google Talk">%2$s</xliff:g></string>
+
+    <!-- Font family used when drawing letters for letter tile avatars.
+         Do not translate. -->
+    <string name="letter_tile_letter_font_family">sans-serif-medium</string>
+
+    <!-- Content description for the fake action menu up button as used
+     inside search. [CHAR LIMIT=NONE] -->
+    <string name="action_menu_back_from_search">stop searching</string>
+
+    <!--  String describing the icon used to clear the search field -->
+    <string name="description_clear_search">Clear search</string>
+
+    <!-- The font-family to use for the text inside the searchbox.
+         Do not translate. -->
+    <string name="search_font_family">sans-serif</string>
+
+    <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
+    <string name="select_account_dialog_title">Account</string>
+
+    <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
+    <string name="set_default_account">Always use this for calls</string>
+
+    <!-- String used for actions in the dialer call log and the quick contact card to initiate
+         a call to an individual.  The user is prompted to enter a note which is sent along with
+         the call (e.g. a call subject). [CHAR LIMIT=40] -->
+    <string name="call_with_a_note">Call with a note</string>
+
+    <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
+    <string name="call_subject_hint">Type a note to send with call&#8230;</string>
+
+    <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
+    <string name="send_and_call_button">SEND &amp; CALL</string>
+
+    <!-- String used to represent the total number of characters entered for a call subject,
+         compared to the character limit.  Example: 2 / 64 -->
+    <string name="call_subject_limit"><xliff:g id="count" example="4">%1$s</xliff:g> / <xliff:g id="limit" example="64">%2$s</xliff:g></string>
+
+    <!-- String used to build a phone number bype and phone number string.
+         Example: Mobile • 650-555-1212  -->
+    <string name="call_subject_type_and_number"><xliff:g id="type" example="Mobile">%1$s</xliff:g> • <xliff:g id="number" example="(650) 555-1212">%2$s</xliff:g></string>
+
+    <!-- Build version title in About preference. [CHAR LIMIT=40]-->
+    <string name="about_build_version">Build version</string>
+
+    <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
+    <string name="about_open_source_licenses">Open source licenses</string>
+
+    <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
+    <string name="about_open_source_licenses_summary">License details for open source software</string>
+
+    <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
+    <string name="about_privacy_policy">Privacy policy</string>
+
+    <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
+    <string name="about_terms_of_service">Terms of service</string>
+
+    <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
+    <string name="activity_title_licenses">Open source licenses</string>
+
+    <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
+    <string name="url_open_error_toast">Failed to open the url.</string>
+
+    <!-- Content description of entries (including that radio button is checked) in contact
+         accounts list filter. For example: Google abc@gmail.com checked, etc [CHAR LIMIT=30]-->
+    <string name="account_filter_view_checked"><xliff:g id="account_info">%s</xliff:g> checked</string>
+
+    <!-- Content description of entries (including that the radio button is not checked) in contact
+         accounts list filter. For example: Google abc@gmail.com not checked, etc [CHAR LIMIT=30]-->
+    <string name="account_filter_view_not_checked"><xliff:g id="account_info">%s</xliff:g> not checked</string>
+
+    <!-- Description string for an action button to initiate a video call from search results.
+         Note: AccessibilityServices use this attribute to announce what the view represents.
+         This is especially valuable for views without textual representation like ImageView.
+
+         [CHAR LIMIT=NONE]-->
+    <string name="description_search_video_call">Place video call</string>
+
+    <!-- Content description of delete contact button [CHAR LIMIT=30]-->
+    <string name="description_delete_contact">Delete</string>
+
+    <!-- Content description for (...) in no name header [CHAR LIMIT=30]-->
+    <string name="description_no_name_header">Ellipsis</string>
+
+    <!-- Formatted call duration displayed in recent card in QuickContact, for duration less than 1 minute -->
+    <string name="callDurationSecondFormat"><xliff:g id="seconds">%s</xliff:g> sec</string>
+
+    <!-- Formatted call duration displayed in recent card in QuickContact, for duration less than 1 hour -->
+    <string name="callDurationMinuteFormat"><xliff:g id="minutes">%1$s</xliff:g> min <xliff:g id="seconds">%2$s</xliff:g> sec</string>
+
+    <!-- Formatted call duration displayed in recent card in QuickContact, for duration more than 1 hour -->
+    <string name="callDurationHourFormat"><xliff:g id="minutes">%1$s</xliff:g> hr <xliff:g id="minutes">%2$s</xliff:g> min <xliff:g id="seconds">%3$s</xliff:g> sec</string>
+
+    <!-- Toast shown when a dynamic shortcut is tapped after being disabled because the experiment was turned off on the device -->
+    <string name="dynamic_shortcut_disabled_message">This shortcut has been disabled</string>
+
+    <!-- Toast shown when a dynamic shortcut is tapped after being disabled because the contact was removed -->
+    <string name="dynamic_shortcut_contact_removed_message">Contact was removed</string>
+
+    <!-- Text for button shown in toolbar to start import of SIM contacts -->
+    <string name="sim_import_button_text">Import</string>
+
+    <!-- Toolbar title shown when importing SIM contacts and none are selected -->
+    <string name="sim_import_title_none_selected">Select contacts</string>
+
+    <!-- Message shown when the SIM import screen is displayed but there are no contacts on the
+         SIM card  -->
+    <string name="sim_import_empty_message">No contacts on your SIM card</string>
+
+    <!-- Snackbar message shown on the SIM import screen when the user taps on a contact that
+         is disabled because an exact duplicate already exists in their contacts [CHAR LIMIT=60] -->
+    <string name="sim_import_contact_exists_toast">Contact already exists in your list</string>
+
+    <!-- Toast shown on settings screen when importing from SIM completes successfully -->
+    <plurals name="sim_import_success_toast_fmt">
+        <item quantity="one">1 SIM contact imported</item>
+        <item quantity="other"><xliff:g id="count">%d</xliff:g> SIM contacts imported</item>
+    </plurals>
+
+    <!-- Toast shown on settings screen when importing from SIM completes with an error -->
+    <string name="sim_import_failed_toast">Failed to import SIM contacts</string>
+
+    <!-- Title of the SIM import activity; this isn't displayed but is announced by talkback
+         when the window is first opened [CHAR LIMIT=40] -->
+    <string name="sim_import_title">Import from SIM</string>
+
+    <!-- Content description of the cancel navigation icon shown in SIM import screen toolbar [CHAR LIMIT=NONE]-->
+    <string name="sim_import_cancel_content_description">Cancel</string>
+
+    <!-- Alert for letting user know that their device auto-sync setting is turned off,
+         in case they are wondering why they are not seeing any contact. [CHAR LIMIT=150] -->
+    <string name="auto_sync_off">Auto-sync is off. Tap to turn on.</string>
+
+    <!-- Content description for the "X" image icon for dismissing an alert.[CHAR LIMIT=50] -->
+    <string name="dismiss_sync_alert">Dismiss</string>
+
+    <!-- Alert for letting user know that their account level sync setting is turned off,
+         in case they are wondering why they are not seeing any contact. [CHAR LIMIT=150] -->
+    <string name="account_sync_off">Account sync is off. Tap to turn on.</string>
+
+    <!-- Title of dialog to turn auto-sync on [CHAR LIMIT=100] -->
+    <string name="turn_auto_sync_on_dialog_title">Turn on auto-sync?</string>
+
+    <!-- Text of dialog to turn auto-sync on [CHAR LIMIT=500] -->
+    <string name="turn_auto_sync_on_dialog_body">Changes you make to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices.</string>
+
+    <!-- Confirm button text for dialog to turn auto-sync on [CHAR LIMIT=30] -->
+    <string name="turn_auto_sync_on_dialog_confirm_btn">Turn on</string>
+
+    <!-- No network connection error message [CHAR LIMIT=50] -->
+    <string name="connection_error_message">No connection</string>
+
+    <!-- Generic label for the SIM card when there is only a single SIM in the device [CHAR LIMIT=10]-->
+    <string name="single_sim_display_label">SIM</string>
+
+    <!-- Content description for dropdown arrow (https://material.io/icons/#ic_arrow_drop_down)
+         This is used to indicate that a list of options can be opened by tapping on it.
+         [CHAR LIMIT=NONE] -->
+    <string name="show_more_content_description">Show more</string>
+
+    <!-- The notification title shown when importing a SIM card finishes [CHAR LIMIT=40] -->
+    <string name="importing_sim_finished_title">Finished importing SIM card</string>
+
+    <!-- Notification title shown when importing SIM contacts failed [CHAR LIMIT=40] -->
+    <string name="importing_sim_failed_title">Import failed</string>
+
+    <!-- Notification message shown when importing SIM contacts failed [CHAR LIMIT=NONE] -->
+    <string name="importing_sim_failed_message">Couldn\'t import contacts from SIM card</string>
+
+    <!-- The notification title shown while SIM contacts are being imported [CHAR LIMIT=40] -->
+    <string name="importing_sim_in_progress_title">Importing SIM</string>
+
+    <!-- Text shown when viewing channel settings for default Contacts notifications [CHAR LIMIT=50] -->
+    <string name="contacts_default_notification_channel">Notifications</string>
+
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 7402235..4c78136 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -13,26 +13,13 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+           xmlns:tools="http://schemas.android.com/tools">
 
-    <style name="DetailActivityTheme" parent="@android:style/Theme.Holo.Light">
-        <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
-        <item name="android:homeAsUpIndicator">@drawable/ic_menu_back</item>
-        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflow</item>
-        <item name="android:actionBarItemBackground">@drawable/action_bar_item_background</item>
-        <item name="android:actionBarWidgetTheme">@style/ContactsActionBarTheme</item>
-        <item name="android:textColorPrimary">@color/primary_text_color</item>
-        <item name="android:textColorSecondary">@color/secondary_text_color</item>
-        <item name="android:listViewStyle">@style/ListViewStyle</item>
-    </style>
-
-    <style name="EditorActivityTheme" parent="@style/PeopleTheme">
-        <item name="android:listViewStyle">@style/ListViewStyle</item>
-        <item name="android:actionBarStyle">@style/EditorActionBarStyle</item>
-        <item name="android:colorButtonNormal">@color/background_primary</item>
-    </style>
-
-    <style name="Theme">
+    <style name="EditorActivityTheme" parent="@style/PeopleActivityTheme">
+        <item name="actionBarStyle">@style/EditorActionBarStyle</item>
+        <item name="colorButtonNormal">@color/background_primary</item>
+        <item name="windowActionModeOverlay">true</item>
     </style>
 
     <style name="Theme.QuickContact" parent="@style/PeopleTheme">
@@ -47,22 +34,16 @@
         <item name="android:listViewStyle">@style/ListViewStyle</item>
         <!-- We need to use a light ripple behind ActionBar items in order for them to
              be visible when using some of the darker ActionBar tints -->
-        <item name="android:actionBarItemBackground">@drawable/item_background_material_borderless_dark</item>
+        <item name="android:actionBarItemBackground">
+            @drawable/item_background_material_borderless_dark
+        </item>
     </style>
 
-    <style name="PeopleTheme" parent="@android:style/Theme.Material.Light">
+    <style name="PeopleTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
         <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
-        <!-- Style for the tab bar (for the divider between tabs) -->
-        <item name="android:actionBarTabBarStyle">@style/ContactsActionBarTabBarStyle</item>
-        <!-- Style for the tab bar text (for text on tabs) -->
-        <item name="android:actionBarTabTextStyle">@style/ContactsActionBarTabTextStyle</item>
-        <!--  Drawable for the back button -->
-        <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
         <!-- Style for the overflow button in the actionbar. -->
         <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
-        <item name="android:actionModeCloseDrawable">@drawable/ic_close_lt</item>
-        <item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb</item>
-        <item name="android:fastScrollTrackDrawable">@null</item>
+        <item name="android:actionModeCloseDrawable">@drawable/quantum_ic_close_vd_theme_24</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
         <item name="android:icon">@android:color/transparent</item>
@@ -72,9 +53,7 @@
         <item name="android:colorPrimary">@color/primary_color</item>
         <item name="android:colorAccent">@color/primary_color</item>
         <item name="android:alertDialogTheme">@style/ContactsAlertDialogTheme</item>
-        <item name="list_item_height">?android:attr/listPreferredItemHeight</item>
-        <item name="activated_background">@drawable/list_item_activated_background</item>
-        <item name="section_header_background">@drawable/list_title_holo</item>
+        <item name="list_item_height">@dimen/contact_browser_list_item_height</item>
         <item name="list_section_header_height">24dip</item>
         <item name="list_item_padding_top">
             @dimen/contact_browser_list_item_padding_top_or_bottom
@@ -83,7 +62,7 @@
         <item name="list_item_padding_bottom">
             @dimen/contact_browser_list_item_padding_top_or_bottom
         </item>
-        <item name="list_item_padding_left">16dip</item>
+        <item name="list_item_padding_left">0dp</item>
         <item name="list_item_gap_between_image_and_text">
             @dimen/contact_browser_list_item_gap_between_image_and_text
         </item>
@@ -97,19 +76,114 @@
         <item name="list_item_header_text_color">@color/people_app_theme_color</item>
         <item name="list_item_header_text_size">14sp</item>
         <item name="list_item_header_height">30dip</item>
-        <item name="list_item_data_width_weight">5</item>
-        <item name="list_item_label_width_weight">3</item>
         <item name="list_item_header_text_indent">8dip</item>
         <item name="contact_browser_list_padding_left">0dip</item>
         <item name="contact_browser_list_padding_right">0dip</item>
         <item name="contact_browser_background">@color/background_primary</item>
         <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
+        <item name="list_item_text_offset_top">-2dp</item>
+        <item name="list_item_avatar_offset_top">-1dp</item>
         <!-- Favorites -->
         <item name="favorites_padding_bottom">0dip</item>
+        <!-- Popup menu -->
+        <item name="android:popupMenuStyle">@style/PopupMenuStyle</item>
     </style>
 
-    <style name="ContactsActionBarOverflow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
-        <item name="android:src">@drawable/ic_overflow_menu</item>
+    <style name="LaunchScreenTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+        <item name="android:windowBackground">@drawable/quantum_launchscreen_contacts</item>
+        <!-- Ensure the status bar color matches the background (grey 500) -->
+        <!-- TODO(yaolu): Switch to use quantum_grey if in Google3 -->
+        <item name="android:colorPrimaryDark">#9e9e9e</item>
+    </style>
+
+    <style name="PeopleActivityTheme" parent="@style/PeopleThemeAppCompat">
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+        <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
+    </style>
+
+    <style name="PeopleThemeAppCompat" parent="Theme.AppCompat.Light.DarkActionBar">
+        <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+        <item name="android:actionBarStyle">@style/ContactsActionBarStyleAppCompat</item>
+        <item name="actionBarStyle">@style/ContactsActionBarStyleAppCompat</item>
+        <item name="android:actionButtonStyle">@style/ContactsActionButtonStyle</item>
+        <item name="actionButtonStyle">@style/ContactsActionButtonStyle</item>
+        <!-- Style for the overflow button in the actionbar. -->
+        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
+        <item name="actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
+        <item name="toolbarNavigationButtonStyle">@style/ContactToolbarNavigationButtonStyle</item>
+        <item name="android:actionModeCloseDrawable">@drawable/quantum_ic_close_vd_theme_24</item>
+        <item name="android:textColorPrimary">@color/primary_text_color</item>
+        <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:icon">@android:color/transparent</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <item name="android:windowBackground">@color/background_primary</item>
+        <item name="android:colorPrimaryDark">@color/primary_color_dark</item>
+        <item name="colorPrimaryDark">@color/primary_color_dark</item>
+        <item name="android:colorPrimary">@color/primary_color</item>
+        <item name="colorPrimary">@color/primary_color</item>
+        <item name="android:colorAccent">@color/primary_color</item>
+        <item name="colorAccent">@color/primary_color</item>
+        <item name="android:alertDialogTheme">@style/ContactsAlertDialogThemeAppCompat</item>
+        <item name="alertDialogTheme">@style/ContactsAlertDialogThemeAppCompat</item>
+        <item name="list_item_height">@dimen/contact_browser_list_item_height</item>
+        <item name="list_section_header_height">24dip</item>
+        <item name="list_item_padding_top">
+            @dimen/contact_browser_list_item_padding_top_or_bottom
+        </item>
+        <item name="list_item_padding_right">32dp</item>
+        <item name="list_item_padding_bottom">
+            @dimen/contact_browser_list_item_padding_top_or_bottom
+        </item>
+        <item name="list_item_padding_left">0dp</item>
+        <item name="list_item_gap_between_image_and_text">
+            @dimen/contact_browser_list_item_gap_between_image_and_text
+        </item>
+        <item name="list_item_gap_between_indexer_and_image">
+            @dimen/contact_browser_list_item_gap_between_indexer_and_image
+        </item>
+        <item name="list_item_gap_between_label_and_data">5dip</item>
+        <item name="list_item_presence_icon_margin">4dip</item>
+        <item name="list_item_presence_icon_size">16dip</item>
+        <item name="list_item_photo_size">@dimen/contact_browser_list_item_photo_size</item>
+        <item name="list_item_profile_photo_size">70dip</item>
+        <item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
+        <item name="list_item_background_color">@color/list_item_pinned_header_color</item>
+        <item name="list_item_header_text_color">@color/people_app_theme_color</item>
+        <item name="list_item_header_text_size">14sp</item>
+        <item name="list_item_header_height">30dip</item>
+        <item name="list_item_header_text_indent">8dip</item>
+        <item name="contact_browser_list_padding_left">0dip</item>
+        <item name="contact_browser_list_padding_right">0dip</item>
+        <item name="contact_browser_background">@color/background_primary</item>
+        <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
+        <item name="list_item_text_offset_top">-2dp</item>
+        <item name="list_item_avatar_offset_top">-1dp</item>
+        <!-- Favorites -->
+        <item name="favorites_padding_bottom">0dip</item>
+        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
+        <!-- Popup menu -->
+        <item name="android:popupMenuStyle">@style/PopupMenuStyleAppCompat</item>
+        <item name="popupMenuStyle">@style/PopupMenuStyleAppCompat</item>
+    </style>
+
+    <style name="PopupMenuStyle" parent="@android:style/Widget.PopupMenu">
+        <item name="android:popupBackground">@android:color/white</item>
+    </style>
+
+    <style name="PopupMenuStyleAppCompat" parent="Widget.AppCompat.PopupMenu">
+        <item name="android:popupBackground">@android:color/white</item>
+    </style>
+
+    <style name="ContactsActionButtonStyle" parent="Widget.AppCompat.ActionButton">
+        <item name="android:paddingStart">16dp</item>
+        <item name="android:paddingEnd">16dp</item>
+    </style>
+
+    <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
+        <item name="spinBars">false</item>
+        <item name="color">@android:color/white</item>
+        <item name="android:color">@android:color/white</item>
     </style>
 
     <!-- Use the non-light style so that the up button & icons aren't black. If we use the
@@ -122,87 +196,87 @@
         <item name="android:icon">@android:color/transparent</item>
     </style>
 
-    <style name="EditorActionBarStyle" parent="@style/ContactsActionBarStyle">
+    <style name="ContactsActionBarStyleAppCompat"
+        parent="@style/Widget.AppCompat.ActionBar.Solid">
+        <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+        <item name="android:background">@color/actionbar_background_color</item>
+        <item name="background">@color/actionbar_background_color</item>
+        <item name="android:titleTextStyle">@style/ContactsActionBarTitleTextAppCompat</item>
+        <item name="titleTextStyle">@style/ContactsActionBarTitleTextAppCompat</item>
+        <item name="android:backgroundStacked">@color/actionbar_background_color</item>
+        <item name="backgroundStacked">@color/actionbar_background_color</item>
+        <!-- Empty icon -->
+        <item name="android:icon">@android:color/transparent</item>
+        <item name="icon">@android:color/transparent</item>
+    </style>
+
+    <style name="EditorActionBarStyle" parent="@style/ContactsToolbarStyle">
         <item name="android:contentInsetStart">72dp</item>
+        <item name="android:contentInsetStartWithNavigation">72dp</item>
+        <item name="android:titleTextAppearance">@style/ContactsActionBarTitleText</item>
     </style>
 
     <!-- When this style was added, android:toolbarStyle was private. Therefore, this style
          must be directly applied to every toolbar -->
-    <style name="ContactsToolbarStyle" parent="@android:style/Widget.Toolbar">
-        <item name="android:titleTextAppearance">@style/ContactsActionBarTitleText</item>
+    <style name="ContactsToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
+        <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+        <item name="android:titleTextAppearance">@style/ContactsActionBarTitleTextAppCompat</item>
+        <item name="titleTextAppearance">@style/ContactsActionBarTitleTextAppCompat</item>
     </style>
 
-    <style name="ContactsPickerActionBarStyle" parent="@style/ContactsActionBarStyle">
-        <!-- when first loading, don't show title or up button -->
-        <item name="android:displayOptions"></item>
+    <style name="LightToolbarNavigationButtonStyle" parent="@style/Widget.AppCompat.Toolbar.Button.Navigation">
+        <item name="android:tint">?android:textColorSecondary</item>
     </style>
 
-    <style name="ContactPickerSearchTheme" parent="@style/PeopleTheme">
-        <item name="android:textColorPrimary">@android:color/white</item>
-        <item name="android:textColorHint">?android:textColorHintInverse</item>
-        <item name="android:colorControlActivated">?android:textColorHintInverse</item>
-        <item name="android:colorControlNormal">@android:color/white</item>
+    <style name="LightToolbarThemeOverlay" parent="@style/ThemeOverlay.AppCompat.ActionBar">
+        <item name="toolbarNavigationButtonStyle">@style/LightToolbarNavigationButtonStyle</item>
+    </style>
+
+    <style name="LightToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
+        <item name="android:background">@color/contextual_selection_bar_color</item>
+        <item name="background">@color/contextual_selection_bar_color</item>
+        <item name="android:titleTextAppearance">@style/ContactsActionBarTitleTextBlack</item>
+        <item name="titleTextAppearance">@style/ContactsActionBarTitleTextBlack</item>
     </style>
 
     <!-- Text in the action bar at the top of the screen -->
     <style name="ContactsActionBarTitleText"
-           parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
+        parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
+        <item name="android:textSize">20dp</item>
         <item name="android:textColor">@color/actionbar_text_color</item>
     </style>
 
-    <!-- Styling for the tab bar; handles styling of the divider line. -->
-    <style name="ContactsActionBarTabBarStyle"
-           parent="@android:style/Widget.Material.ActionBar.TabBar">
-        <item name="android:showDividers">none</item>
+    <style name="ContactsActionBarTitleTextAppCompat" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
+        <item name="android:textSize">20dp</item>
+        <item name="android:textColor">@color/actionbar_text_color</item>
     </style>
 
-    <!-- Text style for tabs. -->
-    <style name="ContactsActionBarTabTextStyle"
-           parent="android:style/Widget.Material.Light.ActionBar.TabText">
-        <item name="android:textColor">@color/tab_text_color</item>
-        <item name="android:textSize">@dimen/tab_text_size</item>
-        <item name="android:fontFamily">@string/tab_font_family</item>
-        <item name="android:elevation">0dp</item>
-        <item name="android:textStyle">bold</item>
+    <style name="ContactsActionBarTitleTextBlack" parent="@style/ContactsActionBarTitleTextAppCompat">
+        <item name="android:textColor">@color/actionbar_text_color_black</item>
     </style>
 
     <!-- Action bar overflow menu icon. -->
     <style name="ContactsActionBarOverflowQP"
-           parent="@android:style/Widget.Material.Light.ActionButton.Overflow">
-        <item name="android:src">@drawable/ic_more_vert</item>
+        parent="Widget.AppCompat.Light.ActionButton.Overflow">
+        <item name="android:src">@drawable/quantum_ic_more_vert_vd_theme_24</item>
         <item name="android:tint">@color/action_bar_button_text_color</item>
     </style>
 
-    <style name="ContactsActionBarDropDownStyle" parent="@android:style/Widget.Holo.Light.Spinner">
-        <item name="android:background">@drawable/ab_dropdown_navigation_item_background</item>
+    <!-- Toolbar navigation button. -->
+    <style name="ContactToolbarNavigationButtonStyle" parent="@style/Widget.AppCompat.Toolbar.Button.Navigation">
+        <item name="android:tint">@color/action_bar_button_text_color</item>
     </style>
 
-    <style name="ContactsActionBarTheme" parent="@android:style/Theme.Holo.Light">
-        <item name="android:textColorHint">#CCCCCC</item>
-        <item name="android:textColor">@android:color/black</item>
-        <item name="android:popupMenuStyle">@android:style/Widget.Holo.Light.PopupMenu</item>
-        <item name="android:dropDownListViewStyle">@style/ListViewDropdownStyle</item>
+    <style name="ContactPickerTheme" parent="PeopleActivityTheme">
     </style>
 
-    <style name="ListViewDropdownStyle" parent="@android:style/Widget.ListView.DropDown">
-        <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
-    </style>
-
-    <style name="ContactPickerTheme" parent="@style/PeopleTheme" >
-        <item name="android:actionBarStyle">@style/ContactsPickerActionBarStyle</item>
-    </style>
-
-    <style name="ContactPickerLayout" parent="ContactPickerTheme">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">match_parent</item>
-    </style>
-
-    <style name="ContactsPreferencesTheme" parent="@style/PeopleTheme">
+    <style name="ContactsPreferencesTheme" parent="@style/PeopleThemeAppCompat">
         <item name="android:listViewStyle">@style/ListViewStyle</item>
     </style>
 
     <style name="ContactListFilterTheme" parent="@style/PeopleTheme">
         <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <item name="android:actionButtonStyle">@style/FilterActionButtonStyle</item>
     </style>
 
     <style name="NonPhoneActivityTheme" parent="@android:Theme.Translucent.NoTitleBar">
@@ -223,60 +297,10 @@
         <item name="android:colorAccent">@color/primary_color</item>
     </style>
 
-    <style name="SectionDivider">
-        <item name="android:background">#7e7e87</item>
-        <item name="android:layout_height">1dip</item>
-        <item name="android:layout_width">match_parent</item>
-    </style>
-
-    <style name="ConfirmAddDetailViewStyle">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">wrap_content</item>
-    </style>
-
-    <style name="ConfirmAddDetailHeaderViewStyle">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">150dip</item>
-    </style>
-
     <style name="SelectableItem" parent="@android:style/Theme.Material.Light">
         <item name="android:background">?android:attr/selectableItemBackground</item>
     </style>
 
-    <style name="QuickContactListItemTextWrapperStyle">
-        <item name="android:layout_width">0dip</item>
-        <item name="android:layout_height">wrap_content</item>
-        <item name="android:layout_weight">1</item>
-        <item name="android:paddingLeft">16dip</item>
-        <item name="android:paddingRight">16dip</item>
-        <item name="android:paddingStart">16dip</item>
-        <item name="android:paddingEnd">16dip</item>
-        <item name="android:gravity">center_vertical</item>
-        <item name="android:orientation">vertical</item>
-    </style>
-
-    <style name="Theme.PhotoSelector" parent="@android:style/Theme.Holo.Light">
-        <item name="android:windowBackground">@android:color/transparent</item>
-        <item name="android:windowFrame">@null</item>
-        <item name="android:windowContentOverlay">@null</item>
-        <item name="android:windowAnimationStyle">@null</item>
-        <item name="android:backgroundDimEnabled">false</item>
-        <item name="android:windowIsTranslucent">true</item>
-        <item name="android:windowNoTitle">true</item>
-    </style>
-
-    <style name="GroupMembershipSizeTextAppearance" parent="@android:style/TextAppearance.Small"/>
-
-    <style name="PeopleNavigationDropDownTextAppearance">
-        <item name="android:textColor">@color/primary_text_color</item>
-        <item name="android:textSize">18sp</item>
-    </style>
-
-    <style name="PeopleNavigationDropDownHeaderTextAppearance">
-        <item name="android:textColor">@color/primary_text_color</item>
-        <item name="android:textSize">18sp</item>
-    </style>
-
     <style name="ExpandingEntryCardStyle">
         <item name="android:elevation">@dimen/expanding_entry_card_elevation</item>
         <item name="android:background">@color/expanding_entry_card_background_color</item>
@@ -316,6 +340,11 @@
         <item name="android:colorAccent">@color/primary_color</item>
     </style>
 
+    <style name="ContactsAlertDialogThemeAppCompat" parent="Theme.AppCompat.Light.Dialog.MinWidth">
+        <item name="android:colorAccent">@color/primary_color</item>
+        <item name="colorAccent">@color/primary_color</item>
+    </style>
+
     <style name="EditKindIconStyle">
         <item name="android:layout_width">24dp</item>
         <item name="android:layout_height">24dp</item>
@@ -349,4 +378,218 @@
         <item name="android:textColor">#363636</item>
         <item name="android:fontFamily">sans-serif</item>
     </style>
+
+    <style name="NavigationDrawerMenuItemTextAppearance">
+        <item name="android:ellipsize">end</item>
+    </style>
+
+    <!-- Text style for empty states (no account view, empty label). -->
+    <style name="EmptyStateTextStyle">
+        <item name="android:textSize">18sp</item>
+        <item name="android:textColor">#000000</item>
+        <item name="android:alpha">0.54</item>
+        <item name="android:fontFamily">sans-serif</item>
+    </style>
+
+    <!-- Button style for main contacts no account empty view. -->
+    <style name="NoAccountViewButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">@color/primary_color</item>
+        <item name="android:fontFamily">sans-serif-medium</item>
+        <item name="android:textAllCaps">true</item>
+    </style>
+
+    <!-- Add contacts button style for empty states. -->
+    <style name="AddContactsButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless">
+        <item name="android:textSize">16sp</item>
+        <item name="android:textColor">@color/primary_color</item>
+        <item name="android:fontFamily">sans-serif-medium</item>
+        <item name="android:textAllCaps">true</item>
+    </style>
+
+    <style name="SectionHeaderStyle" parent="@android:style/TextAppearance.Large">
+        <item name="android:textSize">16sp</item>
+        <item name="android:textAllCaps">true</item>
+        <item name="android:textColor">@color/section_header_text_color</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="DirectoryHeaderStyle" parent="@android:style/TextAppearance.Small">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">@color/dialtacts_secondary_text_color</item>
+        <item name="android:fontFamily">sans-serif-medium</item>
+    </style>
+
+    <!-- TextView style used for headers.
+
+This is similar to ?android:attr/listSeparatorTextView but uses different
+background and text color. See also android:style/Widget.Holo.TextView.ListSeparator
+(which is private, so we cannot specify it as a parent style).  -->
+    <style name="ContactListSeparatorTextViewStyle">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <!-- See comments for @dimen/list_section_divider_min_height -->
+        <item name="android:minHeight">@dimen/list_section_divider_min_height</item>
+        <item name="android:textAppearance">@style/DirectoryHeaderStyle</item>
+        <item name="android:gravity">center_vertical</item>
+        <item name="android:paddingLeft">8dip</item>
+        <item name="android:paddingStart">8dip</item>
+        <item name="android:paddingTop">4dip</item>
+        <item name="android:paddingBottom">4dip</item>
+        <item name="android:ellipsize">end</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:textAllCaps">true</item>
+    </style>
+
+    <style name="TextAppearanceMedium" parent="@android:style/TextAppearance.Medium">
+        <item name="android:textSize">16sp</item>
+        <item name="android:textColor">#000000</item>
+    </style>
+
+    <style name="TextAppearanceSmall" parent="@android:style/TextAppearance.Small">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">#737373</item>
+    </style>
+
+    <style name="ListViewStyle" parent="@android:style/Widget.Material.Light.ListView">
+        <item name="android:overScrollMode">always</item>
+    </style>
+
+    <!-- Adding padding to action button doesn't move it to left, we increase the button width to
+     make margin between the button and screen edge 16dp -->
+    <style name="FilterActionButtonStyle" parent="@android:Widget.ActionButton">
+        <item name="android:minWidth">@dimen/contact_filter_action_button_width</item>
+        <item name="android:textColor">@color/actionbar_text_color</item>
+    </style>
+
+    <style name="CustomContactListFilterView" parent="ContactListFilterTheme">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+    </style>
+
+    <style name="BackgroundOnlyTheme" parent="@android:style/Theme.Material.Light">
+        <item name="android:windowBackground">@null</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@null</item>
+        <item name="android:windowNoTitle">true</item>
+        <!-- Activities that use this theme are background activities without obvious displays.
+            However, some also have dialogs. Therefore, it doesn't make sense to set this true.-->
+        <item name="android:windowNoDisplay">false</item>
+        <item name="android:windowIsFloating">true</item>
+    </style>
+
+    <style name="Theme.CallSubjectDialogTheme" parent="@android:style/Theme.Material.Light.Dialog">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+
+        <!-- No backgrounds, titles or window float -->
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowFullscreen">false</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowDrawsSystemBarBackgrounds">false</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowElevation">0dp</item>
+    </style>
+
+    <!-- Transparent/blank activity -->
+    <style name="TransparentThemeAppCompat" parent="@style/PeopleActivityTheme">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:backgroundDimEnabled">false</item>
+    </style>
+
+    <style name="FullScreenDialogAnimationStyle">
+        <item name="android:windowEnterAnimation">@anim/slide_and_fade_in</item>
+        <item name="android:windowExitAnimation">@anim/slide_and_fade_out</item>
+    </style>
+
+    <style name="PeopleThemeAppCompat.FullScreenDialog">
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+        <item name="windowActionBar">false</item>
+        <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
+        <item name="android:windowAnimationStyle">@style/FullScreenDialogAnimationStyle</item>
+    </style>
+
+    <style name="PeopleThemeAppCompat.FullScreenDialog.SimImportActivity">
+        <!-- This is necessary because the window is partially transparent during the enter
+             and exit animations -->
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:statusBarColor">@color/contextual_selection_bar_status_bar_color</item>
+    </style>
+
+    <!-- Style for item in navigation drawer -->
+    <style name="DrawerItemStyle">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">@dimen/drawer_item_fixed_height</item>
+        <item name="android:layout_gravity">center_vertical</item>
+        <item name="android:background">@drawable/drawer_item_background</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:paddingStart">@dimen/drawer_side_padding</item>
+    </style>
+
+    <style name="DrawerPrimaryItemStyle" parent="DrawerItemStyle">
+        <item name="android:paddingEnd">@dimen/drawer_item_text_margin</item>
+    </style>
+
+    <!-- Style for item icon in navigation drawer -->
+    <style name="DrawerItemIconStyle">
+        <item name="android:layout_width">@dimen/drawer_item_icon_size</item>
+        <item name="android:layout_height">@dimen/drawer_item_icon_size</item>
+        <item name="android:layout_gravity">center</item>
+        <item name="android:gravity">center</item>
+        <item name="android:scaleType">center</item>
+    </style>
+
+    <!-- Style for primary item text in navigation drawer -->
+    <style name="DrawerItemTextStyle" parent="DrawerTextStyle">
+        <item name="android:textColor">@color/primary_text_color</item>
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:layout_marginStart">@dimen/drawer_item_text_margin</item>
+        <item name="android:layout_marginEnd">@dimen/drawer_item_text_margin</item>
+    </style>
+
+    <style name="DrawerTextStyle">
+        <item name="android:fontFamily" tools:ignore="NewApi">sans-serif-medium</item>
+        <item name="android:gravity">center_vertical</item>
+        <item name="android:layout_gravity">center_vertical</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:ellipsize">end</item>
+    </style>
+
+    <style name="DrawerItemTextActiveStyle">
+        <item name="android:textColor">@color/primary_color</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="DrawerItemTextInactiveStyle">
+        <item name="android:textColor">@color/quantum_black_text</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="DrawerHeaderTextStyle" parent="DrawerTextStyle">
+        <item name="android:layout_gravity">center_vertical|start</item>
+        <item name="android:paddingTop">12dp</item>
+        <item name="android:paddingBottom">12dp</item>
+        <item name="android:textColor">@color/quantum_black_secondary_text</item>
+        <item name="android:textSize">14sp</item>
+    </style>
+
+    <style name="DrawerBadgeStyle" parent="DrawerHeaderTextStyle">
+        <item name="android:layout_gravity">center_vertical|end</item>
+    </style>
+
+    <style name="DrawerHeaderItemStyle">
+        <item name="android:paddingStart">@dimen/drawer_side_padding</item>
+        <item name="android:paddingEnd">@dimen/drawer_label_header_end_padding</item>
+    </style>
 </resources>
diff --git a/res/xml/preference_about.xml b/res/xml/preference_about.xml
new file mode 100644
index 0000000..a109db6
--- /dev/null
+++ b/res/xml/preference_about.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+    <Preference
+            android:icon="@null"
+            android:key="@string/pref_build_version_key"
+            android:title="@string/about_build_version"/>
+
+    <Preference
+            android:icon="@null"
+            android:key="@string/pref_open_source_licenses_key"
+            android:title="@string/about_open_source_licenses"
+            android:summary="@string/about_open_source_licenses_summary"/>
+
+    <Preference
+            android:icon="@null"
+            android:key="@string/pref_privacy_policy_key"
+            android:title="@string/about_privacy_policy">
+    </Preference>
+
+    <Preference
+            android:icon="@null"
+            android:key="@string/pref_terms_of_service_key"
+            android:title="@string/about_terms_of_service">
+    </Preference>
+</PreferenceScreen>
diff --git a/res/xml/preference_display_options.xml b/res/xml/preference_display_options.xml
new file mode 100644
index 0000000..c969cd2
--- /dev/null
+++ b/res/xml/preference_display_options.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+    <Preference
+        android:icon="@null"
+        android:key="myInfo"
+        android:title="@string/settings_my_info_title"/>
+
+    <Preference
+        android:icon="@null"
+        android:key="accounts"
+        android:title="@string/settings_accounts">
+    </Preference>
+
+    <com.android.contacts.preference.DefaultAccountPreference
+        android:icon="@null"
+        android:key="defaultAccount"
+        android:title="@string/default_editor_account"
+        android:dialogTitle="@string/default_editor_account" />
+
+    <Preference
+        android:icon="@null"
+        android:key="customContactsFilter"
+        android:title="@string/menu_contacts_filter"/>
+
+    <com.android.contacts.preference.SortOrderPreference
+        android:icon="@null"
+        android:key="sortOrder"
+        android:title="@string/display_options_sort_list_by"
+        android:dialogTitle="@string/display_options_sort_list_by" />
+
+    <com.android.contacts.preference.DisplayOrderPreference
+        android:icon="@null"
+        android:key="displayOrder"
+        android:title="@string/display_options_view_names_as"
+        android:dialogTitle="@string/display_options_view_names_as" />
+
+    <com.android.contacts.preference.PhoneticNameDisplayPreference
+        android:icon="@null"
+        android:key="phoneticNameDisplay"
+        android:title="@string/display_options_phonetic_name_fields"
+        android:dialogTitle="@string/display_options_phonetic_name_fields"/>
+
+    <Preference
+        android:icon="@null"
+        android:key="import"
+        android:title="@string/menu_import"/>
+
+    <Preference
+        android:icon="@null"
+        android:key="export"
+        android:title="@string/menu_export"/>
+
+    <Preference
+        android:icon="@null"
+        android:key="blockedNumbers"
+        android:title="@string/menu_blocked_numbers" />
+
+    <Preference
+        android:icon="@null"
+        android:key="about"
+        android:title="@string/setting_about"
+        android:order="@integer/about_contacts_order_number"/>
+</PreferenceScreen>
diff --git a/res/xml/shortcuts.xml b/res/xml/shortcuts.xml
new file mode 100644
index 0000000..c33893a
--- /dev/null
+++ b/res/xml/shortcuts.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
+    <shortcut
+        android:enabled="true"
+        android:icon="@drawable/ic_add_circle_24dp"
+        android:shortcutId="shortcut-add-contact"
+        android:shortcutShortLabel="@string/shortcut_add_contact">
+        <intent
+            android:action="android.intent.action.INSERT"
+            android:data="content://com.android.contacts/contacts"
+            android:targetPackage="com.android.contacts"
+            android:targetClass="com.android.contacts.activities.ContactEditorActivity"/>
+    </shortcut>
+</shortcuts>
diff --git a/src-bind/com/android/contactsbind/FeatureHighlightHelper.java b/src-bind/com/android/contactsbind/FeatureHighlightHelper.java
new file mode 100644
index 0000000..be1833d
--- /dev/null
+++ b/src-bind/com/android/contactsbind/FeatureHighlightHelper.java
@@ -0,0 +1,33 @@
+/*
+ * 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.contactsbind;
+
+import android.support.v4.app.FragmentActivity;
+
+public final class FeatureHighlightHelper {
+
+    private FeatureHighlightHelper () {
+    }
+
+    public static boolean showHamburgerFeatureHighlight(final FragmentActivity activity) {
+        return false;
+    }
+
+    public static boolean tryRemoveHighlight(final FragmentActivity activity) {
+        return false;
+    }
+}
diff --git a/src-bind/com/android/contactsbind/FeedbackHelper.java b/src-bind/com/android/contactsbind/FeedbackHelper.java
new file mode 100644
index 0000000..efa4791
--- /dev/null
+++ b/src-bind/com/android/contactsbind/FeedbackHelper.java
@@ -0,0 +1,27 @@
+/*
+ * 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.contactsbind;
+
+import android.content.Context;
+import android.util.Log;
+
+public final class FeedbackHelper {
+
+    public static void sendFeedback(Context context, String tag, String description, Throwable t) {
+        Log.e(tag, description == null ? t.getMessage() : description, t);
+    }
+
+    private FeedbackHelper() {
+    }
+}
diff --git a/src/com/android/contactsbind/HelpUtils.java b/src-bind/com/android/contactsbind/HelpUtils.java
similarity index 100%
rename from src/com/android/contactsbind/HelpUtils.java
rename to src-bind/com/android/contactsbind/HelpUtils.java
diff --git a/src-bind/com/android/contactsbind/ObjectFactory.java b/src-bind/com/android/contactsbind/ObjectFactory.java
new file mode 100644
index 0000000..1d579e6
--- /dev/null
+++ b/src-bind/com/android/contactsbind/ObjectFactory.java
@@ -0,0 +1,43 @@
+/*
+ * 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.contactsbind;
+
+import android.app.Fragment;
+import android.content.Context;
+import android.net.Uri;
+
+import com.android.contacts.logging.Logger;
+import com.android.contacts.util.DeviceLocalAccountTypeFactory;
+
+/**
+ * Creates default bindings for overlays.
+ */
+public class ObjectFactory {
+
+    public static Logger getLogger() {
+        return null;
+    }
+
+    public static DeviceLocalAccountTypeFactory getDeviceLocalAccountTypeFactory(Context context) {
+        return new DeviceLocalAccountTypeFactory.Default(context);
+    }
+
+    public static Fragment getAssistantFragment() {
+        return null;
+    }
+
+    public static Uri getWelcomeUri() {
+        return null;
+    }
+}
diff --git a/src-bind/com/android/contactsbind/analytics/AnalyticsUtil.java b/src-bind/com/android/contactsbind/analytics/AnalyticsUtil.java
new file mode 100644
index 0000000..4234ea1
--- /dev/null
+++ b/src-bind/com/android/contactsbind/analytics/AnalyticsUtil.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2015 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.contactsbind.analytics;
+
+import android.app.Application;
+
+public class AnalyticsUtil {
+
+    /**
+     * Initialize this class and setup automatic activity tracking.
+     */
+    public static void initialize(Application application) { }
+}
\ No newline at end of file
diff --git a/src-bind/com/android/contactsbind/experiments/Flags.java b/src-bind/com/android/contactsbind/experiments/Flags.java
new file mode 100644
index 0000000..3fda114
--- /dev/null
+++ b/src-bind/com/android/contactsbind/experiments/Flags.java
@@ -0,0 +1,49 @@
+/*
+ * 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.contactsbind.experiments;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Provides getters for experiment flags.
+ * This stub class is designed to be overwritten by an overlay.
+ */
+public final class Flags {
+
+    private static Flags sInstance;
+
+    private Map<String, Object> mMap;
+
+    public static Flags getInstance() {
+        if (sInstance == null) {
+            sInstance = new Flags();
+        }
+        return sInstance;
+    }
+
+    private Flags() {
+        mMap = new HashMap<>();
+    }
+
+    public boolean getBoolean(String flagName) {
+        return mMap.containsKey(flagName) ? (boolean) mMap.get(flagName) : false;
+    }
+
+    public int getInteger(String flagName) {
+        return mMap.containsKey(flagName) ? ((Integer) mMap.get(flagName)).intValue() : 0;
+    }
+}
diff --git a/src-bind/com/android/contactsbind/util/UserAgentGenerator.java b/src-bind/com/android/contactsbind/util/UserAgentGenerator.java
new file mode 100644
index 0000000..be985ee
--- /dev/null
+++ b/src-bind/com/android/contactsbind/util/UserAgentGenerator.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2015 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.contactsbind.util;
+
+import android.content.Context;
+
+/**
+ * Generates a user agent string for the application.
+ */
+public class UserAgentGenerator {
+    /**
+     * Builds a user agent string for the current application.  No default implementation.
+     *
+     * @param context The context.
+     * @return The user agent string.
+     */
+    public static String getUserAgent(Context context) {
+       return null;
+    }
+}
diff --git a/src/com/android/contacts/AppCompatContactsActivity.java b/src/com/android/contacts/AppCompatContactsActivity.java
new file mode 100644
index 0000000..27fbec9
--- /dev/null
+++ b/src/com/android/contacts/AppCompatContactsActivity.java
@@ -0,0 +1,130 @@
+/*
+ * 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;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.ContentResolver;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.view.View;
+
+import com.android.contacts.activities.AppCompatTransactionSafeActivity;
+import com.android.contacts.testing.InjectedServices;
+
+/**
+ * A common superclass for Contacts activities that handles application-wide services, copied from
+ * {@link com.android.contacts.ContactsActivity}, which will be deprecated after Kitkat backporting
+ * is done.
+ */
+public abstract class AppCompatContactsActivity extends AppCompatTransactionSafeActivity
+        implements ContactSaveService.Listener {
+
+    private ContentResolver mContentResolver;
+
+    @Override
+    public ContentResolver getContentResolver() {
+        if (mContentResolver == null) {
+            InjectedServices services = ContactsApplication.getInjectedServices();
+            if (services != null) {
+                mContentResolver = services.getContentResolver();
+            }
+            if (mContentResolver == null) {
+                mContentResolver = super.getContentResolver();
+            }
+        }
+        return mContentResolver;
+    }
+
+    @Override
+    public SharedPreferences getSharedPreferences(String name, int mode) {
+        InjectedServices services = ContactsApplication.getInjectedServices();
+        if (services != null) {
+            SharedPreferences prefs = services.getSharedPreferences();
+            if (prefs != null) {
+                return prefs;
+            }
+        }
+
+        return super.getSharedPreferences(name, mode);
+    }
+
+    @Override
+    public Object getSystemService(String name) {
+        Object service = super.getSystemService(name);
+        if (service != null) {
+            return service;
+        }
+
+        return getApplicationContext().getSystemService(name);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        ContactSaveService.registerListener(this);
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    protected void onDestroy() {
+        ContactSaveService.unregisterListener(this);
+        super.onDestroy();
+    }
+
+    @Override
+    public void onServiceCompleted(Intent callbackIntent) {
+        onNewIntent(callbackIntent);
+    }
+
+    /**
+     * Convenient version of {@link FragmentManager#findFragmentById(int)}, which throws
+     * an exception if the fragment doesn't exist.
+     */
+    @SuppressWarnings("unchecked")
+    public <T extends Fragment> T getFragment(int id) {
+        T result = (T)getFragmentManager().findFragmentById(id);
+        if (result == null) {
+            throw new IllegalArgumentException("fragment 0x" + Integer.toHexString(id)
+                    + " doesn't exist");
+        }
+        return result;
+    }
+
+    /**
+     * Convenient version of {@link #findViewById(int)}, which throws
+     * an exception if the view doesn't exist.
+     */
+    @SuppressWarnings("unchecked")
+    public <T extends View> T getView(int id) {
+        T result = (T)findViewById(id);
+        if (result == null) {
+            throw new IllegalArgumentException("view 0x" + Integer.toHexString(id)
+                    + " doesn't exist");
+        }
+        return result;
+    }
+
+    protected static void showFragment(FragmentTransaction ft, Fragment f) {
+        if ((f != null) && f.isHidden()) ft.show(f);
+    }
+
+    protected static void hideFragment(FragmentTransaction ft, Fragment f) {
+        if ((f != null) && !f.isHidden()) ft.hide(f);
+    }
+}
diff --git a/src/com/android/contacts/CallUtil.java b/src/com/android/contacts/CallUtil.java
new file mode 100644
index 0000000..ddde01c
--- /dev/null
+++ b/src/com/android/contacts/CallUtil.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2015 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;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telecom.VideoProfile;
+import android.text.TextUtils;
+
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.compat.PhoneAccountSdkCompat;
+import com.android.contacts.util.PermissionsUtil;
+import com.android.contacts.util.PhoneNumberHelper;
+import com.android.contactsbind.FeedbackHelper;
+import com.android.phone.common.PhoneConstants;
+
+import java.util.List;
+
+/**
+ * Utilities related to calls that can be used by non system apps. These
+ * use {@link Intent#ACTION_CALL} instead of ACTION_CALL_PRIVILEGED.
+ *
+ * The privileged version of this util exists inside Dialer.
+ */
+public class CallUtil {
+
+    public static final String TAG = "CallUtil";
+
+    /**
+     * Indicates that the video calling is not available.
+     */
+    public static final int VIDEO_CALLING_DISABLED = 0;
+
+    /**
+     * Indicates that video calling is enabled, regardless of presence status.
+     */
+    public static final int VIDEO_CALLING_ENABLED = 1;
+
+    /**
+     * Indicates that video calling is enabled, but the availability of video call affordances is
+     * determined by the presence status associated with contacts.
+     */
+    public static final int VIDEO_CALLING_PRESENCE = 2;
+
+    /**
+     * Return an Intent for making a phone call. Scheme (e.g. tel, sip) will be determined
+     * automatically.
+     */
+    public static Intent getCallWithSubjectIntent(String number,
+            PhoneAccountHandle phoneAccountHandle, String callSubject) {
+
+        final Intent intent = getCallIntent(getCallUri(number));
+        intent.putExtra(TelecomManager.EXTRA_CALL_SUBJECT, callSubject);
+        if (phoneAccountHandle != null) {
+            intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
+        }
+        return intent;
+    }
+
+    /**
+     * Return an Intent for making a phone call. Scheme (e.g. tel, sip) will be determined
+     * automatically.
+     */
+    public static Intent getCallIntent(String number) {
+        return getCallIntent(getCallUri(number));
+    }
+
+    /**
+     * Return an Intent for making a phone call. A given Uri will be used as is (without any
+     * sanity check).
+     */
+    public static Intent getCallIntent(Uri uri) {
+        return new Intent(Intent.ACTION_CALL, uri);
+    }
+
+    /**
+     * A variant of {@link #getCallIntent} for starting a video call.
+     */
+    public static Intent getVideoCallIntent(String number, String callOrigin) {
+        final Intent intent = new Intent(Intent.ACTION_CALL, getCallUri(number));
+        intent.putExtra(TelecomManager.EXTRA_START_CALL_WITH_VIDEO_STATE,
+                VideoProfile.STATE_BIDIRECTIONAL);
+        if (!TextUtils.isEmpty(callOrigin)) {
+            intent.putExtra(PhoneConstants.EXTRA_CALL_ORIGIN, callOrigin);
+        }
+        return intent;
+    }
+
+    /**
+     * Return Uri with an appropriate scheme, accepting both SIP and usual phone call
+     * numbers.
+     */
+    public static Uri getCallUri(String number) {
+        if (PhoneNumberHelper.isUriNumber(number)) {
+             return Uri.fromParts(PhoneAccount.SCHEME_SIP, number, null);
+        }
+        return Uri.fromParts(PhoneAccount.SCHEME_TEL, number, null);
+    }
+
+    /**
+     * Determines if video calling is available, and if so whether presence checking is available
+     * as well.
+     *
+     * Returns a bitmask with {@link #VIDEO_CALLING_ENABLED} to indicate that video calling is
+     * available, and {@link #VIDEO_CALLING_PRESENCE} if presence indication is also available.
+     *
+     * @param context The context
+     * @return A bit-mask describing the current video capabilities.
+     */
+    public static int getVideoCallingAvailability(Context context) {
+        if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)
+                || !CompatUtils.isVideoCompatible()) {
+            return VIDEO_CALLING_DISABLED;
+        }
+        TelecomManager telecommMgr = (TelecomManager)
+                context.getSystemService(Context.TELECOM_SERVICE);
+        if (telecommMgr == null) {
+            return VIDEO_CALLING_DISABLED;
+        }
+
+        try {
+            List<PhoneAccountHandle> accountHandles = telecommMgr.getCallCapablePhoneAccounts();
+            for (PhoneAccountHandle accountHandle : accountHandles) {
+                PhoneAccount account = telecommMgr.getPhoneAccount(accountHandle);
+                if (account != null) {
+                    if (account.hasCapabilities(PhoneAccount.CAPABILITY_VIDEO_CALLING)) {
+                        // Builds prior to N do not have presence support.
+                        if (!CompatUtils.isVideoPresenceCompatible()) {
+                            return VIDEO_CALLING_ENABLED;
+                        }
+
+                        int videoCapabilities = VIDEO_CALLING_ENABLED;
+                        if (account.hasCapabilities(PhoneAccountSdkCompat
+                                .CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE)) {
+                            videoCapabilities |= VIDEO_CALLING_PRESENCE;
+                        }
+                        return videoCapabilities;
+                    }
+                }
+            }
+            return VIDEO_CALLING_DISABLED;
+        } catch (SecurityException e) {
+            FeedbackHelper.sendFeedback(context, TAG,
+                    "Security exception when getting call capable phone accounts", e);
+            return VIDEO_CALLING_DISABLED;
+        }
+    }
+
+    /**
+     * Determines if one of the call capable phone accounts defined supports calling with a subject
+     * specified.
+     *
+     * @param context The context.
+     * @return {@code true} if one of the call capable phone accounts supports calling with a
+     *      subject specified, {@code false} otherwise.
+     */
+    public static boolean isCallWithSubjectSupported(Context context) {
+        if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)
+                || !CompatUtils.isCallSubjectCompatible()) {
+            return false;
+        }
+        TelecomManager telecommMgr = (TelecomManager)
+                context.getSystemService(Context.TELECOM_SERVICE);
+        if (telecommMgr == null) {
+            return false;
+        }
+
+        try {
+            List<PhoneAccountHandle> accountHandles = telecommMgr.getCallCapablePhoneAccounts();
+            for (PhoneAccountHandle accountHandle : accountHandles) {
+                PhoneAccount account = telecommMgr.getPhoneAccount(accountHandle);
+                if (account != null && account.hasCapabilities(PhoneAccount.CAPABILITY_CALL_SUBJECT)) {
+                    return true;
+                }
+            }
+            return false;
+        } catch (SecurityException e) {
+            FeedbackHelper.sendFeedback(context, TAG,
+                    "Security exception when getting call capable phone accounts", e);
+            return false;
+        }
+
+    }
+}
diff --git a/src/com/android/contacts/ClipboardUtils.java b/src/com/android/contacts/ClipboardUtils.java
new file mode 100644
index 0000000..647cb99
--- /dev/null
+++ b/src/com/android/contacts/ClipboardUtils.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2012 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;
+
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.content.Context;
+import android.text.TextUtils;
+import android.widget.Toast;
+
+public class ClipboardUtils {
+    private static final String TAG = "ClipboardUtils";
+
+    private ClipboardUtils() { }
+
+    /**
+     * Copy a text to clipboard.
+     *
+     * @param context Context
+     * @param label Label to show to the user describing this clip.
+     * @param text Text to copy.
+     * @param showToast If {@code true}, a toast is shown to the user.
+     */
+    public static void copyText(Context context, CharSequence label, CharSequence text,
+            boolean showToast) {
+        if (TextUtils.isEmpty(text)) return;
+
+        ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(
+                Context.CLIPBOARD_SERVICE);
+        ClipData clipData = ClipData.newPlainText(label == null ? "" : label, text);
+        clipboardManager.setPrimaryClip(clipData);
+
+        if (showToast) {
+            String toastText = context.getString(R.string.toast_text_copied);
+            Toast.makeText(context, toastText, Toast.LENGTH_SHORT).show();
+        }
+    }
+}
diff --git a/src/com/android/contacts/Collapser.java b/src/com/android/contacts/Collapser.java
new file mode 100644
index 0000000..b9d069f
--- /dev/null
+++ b/src/com/android/contacts/Collapser.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2009 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;
+
+import android.content.Context;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Class used for collapsing data items into groups of similar items. The data items that should be
+ * collapsible should implement the Collapsible interface. The class also contains a utility
+ * function that takes an ArrayList of items and returns a list of the same items collapsed into
+ * groups.
+ */
+public final class Collapser {
+
+    /*
+     * This utility class cannot be instantiated.
+     */
+    private Collapser() {}
+
+    /*
+     * The Collapser uses an n^2 algorithm so we don't want it to run on
+     * lists beyond a certain size. This specifies the maximum size to collapse.
+     */
+    private static final int MAX_LISTSIZE_TO_COLLAPSE = 20;
+
+    /*
+     * Interface implemented by data types that can be collapsed into groups of similar data. This
+     * can be used for example to collapse similar contact data items into a single item.
+     */
+    public interface Collapsible<T> {
+        public void collapseWith(T t);
+        public boolean shouldCollapseWith(T t, Context context);
+
+    }
+
+    /**
+     * Collapses a list of Collapsible items into a list of collapsed items. Items are collapsed
+     * if {@link Collapsible#shouldCollapseWith(Object)} returns true, and are collapsed
+     * through the {@Link Collapsible#collapseWith(Object)} function implemented by the data item.
+     *
+     * @param list List of Objects of type <T extends Collapsible<T>> to be collapsed.
+     */
+    public static <T extends Collapsible<T>> void collapseList(List<T> list, Context context) {
+
+        int listSize = list.size();
+        // The algorithm below is n^2 so don't run on long lists
+        if (listSize > MAX_LISTSIZE_TO_COLLAPSE) {
+            return;
+        }
+
+        for (int i = 0; i < listSize; i++) {
+            T iItem = list.get(i);
+            if (iItem != null) {
+                for (int j = i + 1; j < listSize; j++) {
+                    T jItem = list.get(j);
+                    if (jItem != null) {
+                        if (iItem.shouldCollapseWith(jItem, context)) {
+                            iItem.collapseWith(jItem);
+                            list.set(j, null);
+                        } else if (jItem.shouldCollapseWith(iItem, context)) {
+                            jItem.collapseWith(iItem);
+                            list.set(i, null);
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        // Remove the null items
+        Iterator<T> itr = list.iterator();
+        while (itr.hasNext()) {
+            if (itr.next() == null) {
+                itr.remove();
+            }
+        }
+
+    }
+}
diff --git a/src/com/android/contacts/ContactPhotoManager.java b/src/com/android/contacts/ContactPhotoManager.java
new file mode 100644
index 0000000..fdcc9b3
--- /dev/null
+++ b/src/com/android/contacts/ContactPhotoManager.java
@@ -0,0 +1,1749 @@
+/*
+ * Copyright (C) 2010 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;
+
+import android.app.ActivityManager;
+import android.content.ComponentCallbacks2;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Paint.Style;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.TransitionDrawable;
+import android.media.ThumbnailUtils;
+import android.net.TrafficStats;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.os.Handler;
+import android.os.Handler.Callback;
+import android.os.HandlerThread;
+import android.os.Message;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Contacts.Photo;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Directory;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
+import android.text.TextUtils;
+import android.util.Log;
+import android.util.LruCache;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import com.android.contacts.lettertiles.LetterTileDrawable;
+import com.android.contacts.util.BitmapUtil;
+import com.android.contacts.util.PermissionsUtil;
+import com.android.contacts.util.TrafficStatsTags;
+import com.android.contacts.util.UriUtils;
+import com.android.contactsbind.util.UserAgentGenerator;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.ref.Reference;
+import java.lang.ref.SoftReference;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Asynchronously loads contact photos and maintains a cache of photos.
+ */
+public abstract class ContactPhotoManager implements ComponentCallbacks2 {
+    static final String TAG = "ContactPhotoManager";
+    static final boolean DEBUG = false; // Don't submit with true
+    static final boolean DEBUG_SIZES = false; // Don't submit with true
+
+    /** Contact type constants used for default letter images */
+    public static final int TYPE_PERSON = LetterTileDrawable.TYPE_PERSON;
+    public static final int TYPE_BUSINESS = LetterTileDrawable.TYPE_BUSINESS;
+    public static final int TYPE_VOICEMAIL = LetterTileDrawable.TYPE_VOICEMAIL;
+    public static final int TYPE_DEFAULT = LetterTileDrawable.TYPE_DEFAULT;
+
+    /** Scale and offset default constants used for default letter images */
+    public static final float SCALE_DEFAULT = 1.0f;
+    public static final float OFFSET_DEFAULT = 0.0f;
+
+    public static final boolean IS_CIRCULAR_DEFAULT = false;
+
+    /** Uri-related constants used for default letter images */
+    private static final String DISPLAY_NAME_PARAM_KEY = "display_name";
+    private static final String IDENTIFIER_PARAM_KEY = "identifier";
+    private static final String CONTACT_TYPE_PARAM_KEY = "contact_type";
+    private static final String SCALE_PARAM_KEY = "scale";
+    private static final String OFFSET_PARAM_KEY = "offset";
+    private static final String IS_CIRCULAR_PARAM_KEY = "is_circular";
+    private static final String DEFAULT_IMAGE_URI_SCHEME = "defaultimage";
+    private static final Uri DEFAULT_IMAGE_URI = Uri.parse(DEFAULT_IMAGE_URI_SCHEME + "://");
+
+    // Static field used to cache the default letter avatar drawable that is created
+    // using a null {@link DefaultImageRequest}
+    private static Drawable sDefaultLetterAvatar = null;
+
+    private static ContactPhotoManager sInstance;
+
+    /**
+     * Given a {@link DefaultImageRequest}, returns a {@link Drawable}, that when drawn, will
+     * draw a letter tile avatar based on the request parameters defined in the
+     * {@link DefaultImageRequest}.
+     */
+    public static Drawable getDefaultAvatarDrawableForContact(Resources resources, boolean hires,
+            DefaultImageRequest defaultImageRequest) {
+        if (defaultImageRequest == null) {
+            if (sDefaultLetterAvatar == null) {
+                // Cache and return the letter tile drawable that is created by a null request,
+                // so that it doesn't have to be recreated every time it is requested again.
+                sDefaultLetterAvatar = LetterTileDefaultImageProvider.getDefaultImageForContact(
+                        resources, null);
+            }
+            return sDefaultLetterAvatar;
+        }
+        return LetterTileDefaultImageProvider.getDefaultImageForContact(resources,
+                defaultImageRequest);
+    }
+
+    /**
+     * Given a {@link DefaultImageRequest}, returns an Uri that can be used to request a
+     * letter tile avatar when passed to the {@link ContactPhotoManager}. The internal
+     * implementation of this uri is not guaranteed to remain the same across application
+     * versions, so the actual uri should never be persisted in long-term storage and reused.
+     *
+     * @param request A {@link DefaultImageRequest} object with the fields configured
+     * to return a
+     * @return A Uri that when later passed to the {@link ContactPhotoManager} via
+     * {@link #loadPhoto(ImageView, Uri, int, boolean, DefaultImageRequest)}, can be
+     * used to request a default contact image, drawn as a letter tile using the
+     * parameters as configured in the provided {@link DefaultImageRequest}
+     */
+    public static Uri getDefaultAvatarUriForContact(DefaultImageRequest request) {
+        final Builder builder = DEFAULT_IMAGE_URI.buildUpon();
+        if (request != null) {
+            if (!TextUtils.isEmpty(request.displayName)) {
+                builder.appendQueryParameter(DISPLAY_NAME_PARAM_KEY, request.displayName);
+            }
+            if (!TextUtils.isEmpty(request.identifier)) {
+                builder.appendQueryParameter(IDENTIFIER_PARAM_KEY, request.identifier);
+            }
+            if (request.contactType != TYPE_DEFAULT) {
+                builder.appendQueryParameter(CONTACT_TYPE_PARAM_KEY,
+                        String.valueOf(request.contactType));
+            }
+            if (request.scale != SCALE_DEFAULT) {
+                builder.appendQueryParameter(SCALE_PARAM_KEY, String.valueOf(request.scale));
+            }
+            if (request.offset != OFFSET_DEFAULT) {
+                builder.appendQueryParameter(OFFSET_PARAM_KEY, String.valueOf(request.offset));
+            }
+            if (request.isCircular != IS_CIRCULAR_DEFAULT) {
+                builder.appendQueryParameter(IS_CIRCULAR_PARAM_KEY,
+                        String.valueOf(request.isCircular));
+            }
+
+        }
+        return builder.build();
+    }
+
+    /**
+     * Adds a business contact type encoded fragment to the URL.  Used to ensure photo URLS
+     * from Nearby Places can be identified as business photo URLs rather than URLs for personal
+     * contact photos.
+     *
+     * @param photoUrl The photo URL to modify.
+     * @return URL with the contact type parameter added and set to TYPE_BUSINESS.
+     */
+    public static String appendBusinessContactType(String photoUrl) {
+        Uri uri = Uri.parse(photoUrl);
+        Builder builder = uri.buildUpon();
+        builder.encodedFragment(String.valueOf(TYPE_BUSINESS));
+        return builder.build().toString();
+    }
+
+    /**
+     * Removes the contact type information stored in the photo URI encoded fragment.
+     *
+     * @param photoUri The photo URI to remove the contact type from.
+     * @return The photo URI with contact type removed.
+     */
+    public static Uri removeContactType(Uri photoUri) {
+        String encodedFragment = photoUri.getEncodedFragment();
+        if (!TextUtils.isEmpty(encodedFragment)) {
+            Builder builder = photoUri.buildUpon();
+            builder.encodedFragment(null);
+            return builder.build();
+        }
+        return photoUri;
+    }
+
+    /**
+     * Inspects a photo URI to determine if the photo URI represents a business.
+     *
+     * @param photoUri The URI to inspect.
+     * @return Whether the URI represents a business photo or not.
+     */
+    public static boolean isBusinessContactUri(Uri photoUri) {
+        if (photoUri == null) {
+            return false;
+        }
+
+        String encodedFragment = photoUri.getEncodedFragment();
+        return !TextUtils.isEmpty(encodedFragment)
+                && encodedFragment.equals(String.valueOf(TYPE_BUSINESS));
+    }
+
+    protected static DefaultImageRequest getDefaultImageRequestFromUri(Uri uri) {
+        final DefaultImageRequest request = new DefaultImageRequest(
+                uri.getQueryParameter(DISPLAY_NAME_PARAM_KEY),
+                uri.getQueryParameter(IDENTIFIER_PARAM_KEY), false);
+        try {
+            String contactType = uri.getQueryParameter(CONTACT_TYPE_PARAM_KEY);
+            if (!TextUtils.isEmpty(contactType)) {
+                request.contactType = Integer.valueOf(contactType);
+            }
+
+            String scale = uri.getQueryParameter(SCALE_PARAM_KEY);
+            if (!TextUtils.isEmpty(scale)) {
+                request.scale = Float.valueOf(scale);
+            }
+
+            String offset = uri.getQueryParameter(OFFSET_PARAM_KEY);
+            if (!TextUtils.isEmpty(offset)) {
+                request.offset = Float.valueOf(offset);
+            }
+
+            String isCircular = uri.getQueryParameter(IS_CIRCULAR_PARAM_KEY);
+            if (!TextUtils.isEmpty(isCircular)) {
+                request.isCircular = Boolean.valueOf(isCircular);
+            }
+        } catch (NumberFormatException e) {
+            Log.w(TAG, "Invalid DefaultImageRequest image parameters provided, ignoring and using "
+                    + "defaults.");
+        }
+
+        return request;
+    }
+
+    protected boolean isDefaultImageUri(Uri uri) {
+        return DEFAULT_IMAGE_URI_SCHEME.equals(uri.getScheme());
+    }
+
+    /**
+     * Contains fields used to contain contact details and other user-defined settings that might
+     * be used by the ContactPhotoManager to generate a default contact image. This contact image
+     * takes the form of a letter or bitmap drawn on top of a colored tile.
+     */
+    public static class DefaultImageRequest {
+        /**
+         * The contact's display name. The display name is used to
+         */
+        public String displayName;
+
+        /**
+         * A unique and deterministic string that can be used to identify this contact. This is
+         * usually the contact's lookup key, but other contact details can be used as well,
+         * especially for non-local or temporary contacts that might not have a lookup key. This
+         * is used to determine the color of the tile.
+         */
+        public String identifier;
+
+        /**
+         * The type of this contact. This contact type may be used to decide the kind of
+         * image to use in the case where a unique letter cannot be generated from the contact's
+         * display name and identifier. See:
+         * {@link #TYPE_PERSON}
+         * {@link #TYPE_BUSINESS}
+         * {@link #TYPE_PERSON}
+         * {@link #TYPE_DEFAULT}
+         */
+        public int contactType = TYPE_DEFAULT;
+
+        /**
+         * The amount to scale the letter or bitmap to, as a ratio of its default size (from a
+         * range of 0.0f to 2.0f). The default value is 1.0f.
+         */
+        public float scale = SCALE_DEFAULT;
+
+        /**
+         * The amount to vertically offset the letter or image to within the tile.
+         * The provided offset must be within the range of -0.5f to 0.5f.
+         * If set to -0.5f, the letter will be shifted upwards by 0.5 times the height of the canvas
+         * it is being drawn on, which means it will be drawn with the center of the letter starting
+         * at the top edge of the canvas.
+         * If set to 0.5f, the letter will be shifted downwards by 0.5 times the height of the
+         * canvas it is being drawn on, which means it will be drawn with the center of the letter
+         * starting at the bottom edge of the canvas.
+         * The default is 0.0f, which means the letter is drawn in the exact vertical center of
+         * the tile.
+         */
+        public float offset = OFFSET_DEFAULT;
+
+        /**
+         * Whether or not to draw the default image as a circle, instead of as a square/rectangle.
+         */
+        public boolean isCircular = false;
+
+        /**
+         * Used to indicate that a drawable that represents a contact without any contact details
+         * should be returned.
+         */
+        public static DefaultImageRequest EMPTY_DEFAULT_IMAGE_REQUEST = new DefaultImageRequest();
+
+        /**
+         * Used to indicate that a drawable that represents a business without a business photo
+         * should be returned.
+         */
+        public static DefaultImageRequest EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST =
+                new DefaultImageRequest(null, null, TYPE_BUSINESS, false);
+
+        /**
+         * Used to indicate that a circular drawable that represents a contact without any contact
+         * details should be returned.
+         */
+        public static DefaultImageRequest EMPTY_CIRCULAR_DEFAULT_IMAGE_REQUEST =
+                new DefaultImageRequest(null, null, true);
+
+        /**
+         * Used to indicate that a circular drawable that represents a business without a business
+         * photo should be returned.
+         */
+        public static DefaultImageRequest EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST =
+                new DefaultImageRequest(null, null, TYPE_BUSINESS, true);
+
+        public DefaultImageRequest() {
+        }
+
+        public DefaultImageRequest(String displayName, String identifier, boolean isCircular) {
+            this(displayName, identifier, TYPE_DEFAULT, SCALE_DEFAULT, OFFSET_DEFAULT, isCircular);
+        }
+
+        public DefaultImageRequest(String displayName, String identifier, int contactType,
+                boolean isCircular) {
+            this(displayName, identifier, contactType, SCALE_DEFAULT, OFFSET_DEFAULT, isCircular);
+        }
+
+        public DefaultImageRequest(String displayName, String identifier, int contactType,
+                float scale, float offset, boolean isCircular) {
+            this.displayName = displayName;
+            this.identifier = identifier;
+            this.contactType = contactType;
+            this.scale = scale;
+            this.offset = offset;
+            this.isCircular = isCircular;
+        }
+    }
+
+    public static abstract class DefaultImageProvider {
+        /**
+         * Applies the default avatar to the ImageView. Extent is an indicator for the size (width
+         * or height). If darkTheme is set, the avatar is one that looks better on dark background
+         *
+         * @param defaultImageRequest {@link DefaultImageRequest} object that specifies how a
+         * default letter tile avatar should be drawn.
+         */
+        public abstract void applyDefaultImage(ImageView view, int extent, boolean darkTheme,
+                DefaultImageRequest defaultImageRequest);
+    }
+
+    /**
+     * A default image provider that applies a letter tile consisting of a colored background
+     * and a letter in the foreground as the default image for a contact. The color of the
+     * background and the type of letter is decided based on the contact's details.
+     */
+    private static class LetterTileDefaultImageProvider extends DefaultImageProvider {
+        @Override
+        public void applyDefaultImage(ImageView view, int extent, boolean darkTheme,
+                DefaultImageRequest defaultImageRequest) {
+            final Drawable drawable = getDefaultImageForContact(view.getResources(),
+                    defaultImageRequest);
+            view.setImageDrawable(drawable);
+        }
+
+        public static Drawable getDefaultImageForContact(Resources resources,
+                DefaultImageRequest defaultImageRequest) {
+            final LetterTileDrawable drawable = new LetterTileDrawable(resources);
+            if (defaultImageRequest != null) {
+                // If the contact identifier is null or empty, fallback to the
+                // displayName. In that case, use {@code null} for the contact's
+                // display name so that a default bitmap will be used instead of a
+                // letter
+                if (TextUtils.isEmpty(defaultImageRequest.identifier)) {
+                    drawable.setLetterAndColorFromContactDetails(null,
+                            defaultImageRequest.displayName);
+                } else {
+                    drawable.setLetterAndColorFromContactDetails(defaultImageRequest.displayName,
+                            defaultImageRequest.identifier);
+                }
+                drawable.setContactType(defaultImageRequest.contactType);
+                drawable.setScale(defaultImageRequest.scale);
+                drawable.setOffset(defaultImageRequest.offset);
+                drawable.setIsCircular(defaultImageRequest.isCircular);
+            }
+            return drawable;
+        }
+    }
+
+    private static class BlankDefaultImageProvider extends DefaultImageProvider {
+        private static Drawable sDrawable;
+
+        @Override
+        public void applyDefaultImage(ImageView view, int extent, boolean darkTheme,
+                DefaultImageRequest defaultImageRequest) {
+            if (sDrawable == null) {
+                Context context = view.getContext();
+                sDrawable = new ColorDrawable(context.getResources().getColor(
+                        R.color.image_placeholder));
+            }
+            view.setImageDrawable(sDrawable);
+        }
+    }
+
+    public static DefaultImageProvider DEFAULT_AVATAR = new LetterTileDefaultImageProvider();
+
+    public static final DefaultImageProvider DEFAULT_BLANK = new BlankDefaultImageProvider();
+
+    public static ContactPhotoManager getInstance(Context context) {
+        if (sInstance == null) {
+            Context applicationContext = context.getApplicationContext();
+            sInstance = createContactPhotoManager(applicationContext);
+            applicationContext.registerComponentCallbacks(sInstance);
+            if (PermissionsUtil.hasContactsPermissions(context)) {
+                sInstance.preloadPhotosInBackground();
+            }
+        }
+        return sInstance;
+    }
+
+    public static synchronized ContactPhotoManager createContactPhotoManager(Context context) {
+        return new ContactPhotoManagerImpl(context);
+    }
+
+    @VisibleForTesting
+    public static void injectContactPhotoManagerForTesting(ContactPhotoManager photoManager) {
+        sInstance = photoManager;
+    }
+
+    /**
+     * Load thumbnail image into the supplied image view. If the photo is already cached,
+     * it is displayed immediately.  Otherwise a request is sent to load the photo
+     * from the database.
+     */
+    public abstract void loadThumbnail(ImageView view, long photoId, boolean darkTheme,
+            boolean isCircular, DefaultImageRequest defaultImageRequest,
+            DefaultImageProvider defaultProvider);
+
+    /**
+     * Calls {@link #loadThumbnail(ImageView, long, boolean, DefaultImageRequest,
+     * DefaultImageProvider)} using the {@link DefaultImageProvider} {@link #DEFAULT_AVATAR}.
+     */
+    public final void loadThumbnail(ImageView view, long photoId, boolean darkTheme,
+            boolean isCircular, DefaultImageRequest defaultImageRequest) {
+        loadThumbnail(view, photoId, darkTheme, isCircular, defaultImageRequest, DEFAULT_AVATAR);
+    }
+
+
+    /**
+     * Load photo into the supplied image view. If the photo is already cached,
+     * it is displayed immediately. Otherwise a request is sent to load the photo
+     * from the location specified by the URI.
+     *
+     * @param view The target view
+     * @param photoUri The uri of the photo to load
+     * @param requestedExtent Specifies an approximate Max(width, height) of the targetView.
+     * This is useful if the source image can be a lot bigger that the target, so that the decoding
+     * is done using efficient sampling. If requestedExtent is specified, no sampling of the image
+     * is performed
+     * @param darkTheme Whether the background is dark. This is used for default avatars
+     * @param defaultImageRequest {@link DefaultImageRequest} object that specifies how a default
+     * letter tile avatar should be drawn.
+     * @param defaultProvider The provider of default avatars (this is used if photoUri doesn't
+     * refer to an existing image)
+     */
+    public abstract void loadPhoto(ImageView view, Uri photoUri, int requestedExtent,
+            boolean darkTheme, boolean isCircular, DefaultImageRequest defaultImageRequest,
+            DefaultImageProvider defaultProvider);
+
+    /**
+     * Calls {@link #loadPhoto(ImageView, Uri, int, boolean, DefaultImageRequest,
+     * DefaultImageProvider)} with {@link #DEFAULT_AVATAR} and {@code null} display names and
+     * lookup keys.
+     *
+     * @param defaultImageRequest {@link DefaultImageRequest} object that specifies how a default
+     * letter tile avatar should be drawn.
+     */
+    public final void loadPhoto(ImageView view, Uri photoUri, int requestedExtent,
+            boolean darkTheme, boolean isCircular, DefaultImageRequest defaultImageRequest) {
+        loadPhoto(view, photoUri, requestedExtent, darkTheme, isCircular,
+                defaultImageRequest, DEFAULT_AVATAR);
+    }
+
+    /**
+     * Calls {@link #loadPhoto(ImageView, Uri, boolean, boolean, DefaultImageRequest,
+     * DefaultImageProvider)} with {@link #DEFAULT_AVATAR} and with the assumption, that
+     * the image is a thumbnail.
+     *
+     * @param defaultImageRequest {@link DefaultImageRequest} object that specifies how a default
+     * letter tile avatar should be drawn.
+     */
+    public final void loadDirectoryPhoto(ImageView view, Uri photoUri, boolean darkTheme,
+            boolean isCircular, DefaultImageRequest defaultImageRequest) {
+        loadPhoto(view, photoUri, -1, darkTheme, isCircular, defaultImageRequest, DEFAULT_AVATAR);
+    }
+
+    /**
+     * Remove photo from the supplied image view. This also cancels current pending load request
+     * inside this photo manager.
+     */
+    public abstract void removePhoto(ImageView view);
+
+    /**
+     * Cancels all pending requests to load photos asynchronously.
+     */
+    public abstract void cancelPendingRequests(View fragmentRootView);
+
+    /**
+     * Temporarily stops loading photos from the database.
+     */
+    public abstract void pause();
+
+    /**
+     * Resumes loading photos from the database.
+     */
+    public abstract void resume();
+
+    /**
+     * Marks all cached photos for reloading.  We can continue using cache but should
+     * also make sure the photos haven't changed in the background and notify the views
+     * if so.
+     */
+    public abstract void refreshCache();
+
+    /**
+     * Stores the given bitmap directly in the LRU bitmap cache.
+     * @param photoUri The URI of the photo (for future requests).
+     * @param bitmap The bitmap.
+     * @param photoBytes The bytes that were parsed to create the bitmap.
+     */
+    public abstract void cacheBitmap(Uri photoUri, Bitmap bitmap, byte[] photoBytes);
+
+    /**
+     * Initiates a background process that over time will fill up cache with
+     * preload photos.
+     */
+    public abstract void preloadPhotosInBackground();
+
+    // ComponentCallbacks2
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+    }
+
+    // ComponentCallbacks2
+    @Override
+    public void onLowMemory() {
+    }
+
+    // ComponentCallbacks2
+    @Override
+    public void onTrimMemory(int level) {
+    }
+}
+
+class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback {
+    private static final String LOADER_THREAD_NAME = "ContactPhotoLoader";
+
+    private static final int FADE_TRANSITION_DURATION = 200;
+
+    /**
+     * Type of message sent by the UI thread to itself to indicate that some photos
+     * need to be loaded.
+     */
+    private static final int MESSAGE_REQUEST_LOADING = 1;
+
+    /**
+     * Type of message sent by the loader thread to indicate that some photos have
+     * been loaded.
+     */
+    private static final int MESSAGE_PHOTOS_LOADED = 2;
+
+    private static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+    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.
+     */
+    private static final BitmapHolder BITMAP_UNAVAILABLE;
+
+    static {
+        BITMAP_UNAVAILABLE = new BitmapHolder(new byte[0], 0);
+        BITMAP_UNAVAILABLE.bitmapRef = new SoftReference<Bitmap>(null);
+    }
+
+    /**
+     * Maintains the state of a particular photo.
+     */
+    private static class BitmapHolder {
+        final byte[] bytes;
+        final int originalSmallerExtent;
+
+        volatile boolean fresh;
+        Bitmap bitmap;
+        Reference<Bitmap> bitmapRef;
+        int decodedSampleSize;
+
+        public BitmapHolder(byte[] bytes, int originalSmallerExtent) {
+            this.bytes = bytes;
+            this.fresh = true;
+            this.originalSmallerExtent = originalSmallerExtent;
+        }
+    }
+
+    private final Context mContext;
+
+    /**
+     * An LRU cache for bitmap holders. The cache contains bytes for photos just
+     * as they come from the database. Each holder has a soft reference to the
+     * actual bitmap.
+     */
+    private final LruCache<Object, BitmapHolder> mBitmapHolderCache;
+
+    /**
+     * {@code true} if ALL entries in {@link #mBitmapHolderCache} are NOT fresh.
+     */
+    private volatile boolean mBitmapHolderCacheAllUnfresh = true;
+
+    /**
+     * Cache size threshold at which bitmaps will not be preloaded.
+     */
+    private final int mBitmapHolderCacheRedZoneBytes;
+
+    /**
+     * Level 2 LRU cache for bitmaps. This is a smaller cache that holds
+     * the most recently used bitmaps to save time on decoding
+     * them from bytes (the bytes are stored in {@link #mBitmapHolderCache}.
+     */
+    private final LruCache<Object, Bitmap> mBitmapCache;
+
+    /**
+     * A map from ImageView to the corresponding photo ID or uri, encapsulated in a request.
+     * The request may swapped out before the photo loading request is started.
+     */
+    private final ConcurrentHashMap<ImageView, Request> mPendingRequests =
+            new ConcurrentHashMap<ImageView, Request>();
+
+    /**
+     * Handler for messages sent to the UI thread.
+     */
+    private final Handler mMainThreadHandler = new Handler(this);
+
+    /**
+     * Thread responsible for loading photos from the database. Created upon
+     * the first request.
+     */
+    private LoaderThread mLoaderThread;
+
+    /**
+     * A gate to make sure we only send one instance of MESSAGE_PHOTOS_NEEDED at a time.
+     */
+    private boolean mLoadingRequested;
+
+    /**
+     * Flag indicating if the image loading is paused.
+     */
+    private boolean mPaused;
+
+    /** Cache size for {@link #mBitmapHolderCache} for devices with "large" RAM. */
+    private static final int HOLDER_CACHE_SIZE = 2000000;
+
+    /** Cache size for {@link #mBitmapCache} for devices with "large" RAM. */
+    private static final int BITMAP_CACHE_SIZE = 36864 * 48; // 1728K
+
+    /** Height/width of a thumbnail image */
+    private static int mThumbnailSize;
+
+    /** For debug: How many times we had to reload cached photo for a stale entry */
+    private final AtomicInteger mStaleCacheOverwrite = new AtomicInteger();
+
+    /** For debug: How many times we had to reload cached photo for a fresh entry.  Should be 0. */
+    private final AtomicInteger mFreshCacheOverwrite = new AtomicInteger();
+
+    /**
+     * The user agent string to use when loading URI based photos.
+     */
+    private String mUserAgent;
+
+    public ContactPhotoManagerImpl(Context context) {
+        mContext = context;
+
+        final ActivityManager am = ((ActivityManager) context.getSystemService(
+                Context.ACTIVITY_SERVICE));
+
+        final float cacheSizeAdjustment = (am.isLowRamDevice()) ? 0.5f : 1.0f;
+
+        final int bitmapCacheSize = (int) (cacheSizeAdjustment * BITMAP_CACHE_SIZE);
+        mBitmapCache = new LruCache<Object, Bitmap>(bitmapCacheSize) {
+            @Override protected int sizeOf(Object key, Bitmap value) {
+                return value.getByteCount();
+            }
+
+            @Override protected void entryRemoved(
+                    boolean evicted, Object key, Bitmap oldValue, Bitmap newValue) {
+                if (DEBUG) dumpStats();
+            }
+        };
+        final int holderCacheSize = (int) (cacheSizeAdjustment * HOLDER_CACHE_SIZE);
+        mBitmapHolderCache = new LruCache<Object, BitmapHolder>(holderCacheSize) {
+            @Override protected int sizeOf(Object key, BitmapHolder value) {
+                return value.bytes != null ? value.bytes.length : 0;
+            }
+
+            @Override protected void entryRemoved(
+                    boolean evicted, Object key, BitmapHolder oldValue, BitmapHolder newValue) {
+                if (DEBUG) dumpStats();
+            }
+        };
+        mBitmapHolderCacheRedZoneBytes = (int) (holderCacheSize * 0.75);
+        Log.i(TAG, "Cache adj: " + cacheSizeAdjustment);
+        if (DEBUG) {
+            Log.d(TAG, "Cache size: " + btk(mBitmapHolderCache.maxSize())
+                    + " + " + btk(mBitmapCache.maxSize()));
+        }
+
+        mThumbnailSize = context.getResources().getDimensionPixelSize(
+                R.dimen.contact_browser_list_item_photo_size);
+
+        // Get a user agent string to use for URI photo requests.
+        mUserAgent = UserAgentGenerator.getUserAgent(context);
+        if (mUserAgent == null) {
+            mUserAgent = "";
+        }
+    }
+
+    /** Converts bytes to K bytes, rounding up.  Used only for debug log. */
+    private static String btk(int bytes) {
+        return ((bytes + 1023) / 1024) + "K";
+    }
+
+    private static final int safeDiv(int dividend, int divisor) {
+        return (divisor  == 0) ? 0 : (dividend / divisor);
+    }
+
+    /**
+     * Dump cache stats on logcat.
+     */
+    private void dumpStats() {
+        if (!DEBUG) return;
+        {
+            int numHolders = 0;
+            int rawBytes = 0;
+            int bitmapBytes = 0;
+            int numBitmaps = 0;
+            for (BitmapHolder h : mBitmapHolderCache.snapshot().values()) {
+                numHolders++;
+                if (h.bytes != null) {
+                    rawBytes += h.bytes.length;
+                }
+                Bitmap b = h.bitmapRef != null ? h.bitmapRef.get() : null;
+                if (b != null) {
+                    numBitmaps++;
+                    bitmapBytes += b.getByteCount();
+                }
+            }
+            Log.d(TAG, "L1: " + btk(rawBytes) + " + " + btk(bitmapBytes) + " = "
+                    + btk(rawBytes + bitmapBytes) + ", " + numHolders + " holders, "
+                    + numBitmaps + " bitmaps, avg: "
+                    + btk(safeDiv(rawBytes, numHolders))
+                    + "," + btk(safeDiv(bitmapBytes,numBitmaps)));
+            Log.d(TAG, "L1 Stats: " + mBitmapHolderCache.toString()
+                    + ", overwrite: fresh=" + mFreshCacheOverwrite.get()
+                    + " stale=" + mStaleCacheOverwrite.get());
+        }
+
+        {
+            int numBitmaps = 0;
+            int bitmapBytes = 0;
+            for (Bitmap b : mBitmapCache.snapshot().values()) {
+                numBitmaps++;
+                bitmapBytes += b.getByteCount();
+            }
+            Log.d(TAG, "L2: " + btk(bitmapBytes) + ", " + numBitmaps + " bitmaps"
+                    + ", avg: " + btk(safeDiv(bitmapBytes, numBitmaps)));
+            // We don't get from L2 cache, so L2 stats is meaningless.
+        }
+    }
+
+    @Override
+    public void onTrimMemory(int level) {
+        if (DEBUG) Log.d(TAG, "onTrimMemory: " + level);
+        if (level >= ComponentCallbacks2.TRIM_MEMORY_MODERATE) {
+            // Clear the caches.  Note all pending requests will be removed too.
+            clear();
+        }
+    }
+
+    @Override
+    public void preloadPhotosInBackground() {
+        ensureLoaderThread();
+        mLoaderThread.requestPreloading();
+    }
+
+    @Override
+    public void loadThumbnail(ImageView view, long photoId, boolean darkTheme, boolean isCircular,
+            DefaultImageRequest defaultImageRequest, DefaultImageProvider defaultProvider) {
+        if (photoId == 0) {
+            // No photo is needed
+            defaultProvider.applyDefaultImage(view, -1, darkTheme, defaultImageRequest);
+            mPendingRequests.remove(view);
+        } else {
+            if (DEBUG) Log.d(TAG, "loadPhoto request: " + photoId);
+            loadPhotoByIdOrUri(view, Request.createFromThumbnailId(photoId, darkTheme, isCircular,
+                    defaultProvider, defaultImageRequest));
+        }
+    }
+
+    @Override
+    public void loadPhoto(ImageView view, Uri photoUri, int requestedExtent, boolean darkTheme,
+            boolean isCircular, DefaultImageRequest defaultImageRequest,
+            DefaultImageProvider defaultProvider) {
+        if (photoUri == null) {
+            // No photo is needed
+            defaultProvider.applyDefaultImage(view, requestedExtent, darkTheme,
+                    defaultImageRequest);
+            mPendingRequests.remove(view);
+        } else {
+            if (DEBUG) Log.d(TAG, "loadPhoto request: " + photoUri);
+            if (isDefaultImageUri(photoUri)) {
+                createAndApplyDefaultImageForUri(view, photoUri, requestedExtent, darkTheme,
+                        isCircular, defaultProvider);
+            } else {
+                loadPhotoByIdOrUri(view, Request.createFromUri(photoUri, requestedExtent,
+                        darkTheme, isCircular, defaultProvider, defaultImageRequest));
+            }
+        }
+    }
+
+    private void createAndApplyDefaultImageForUri(ImageView view, Uri uri, int requestedExtent,
+            boolean darkTheme, boolean isCircular, DefaultImageProvider defaultProvider) {
+        DefaultImageRequest request = getDefaultImageRequestFromUri(uri);
+        request.isCircular = isCircular;
+        defaultProvider.applyDefaultImage(view, requestedExtent, darkTheme, request);
+    }
+
+    private void loadPhotoByIdOrUri(ImageView view, Request request) {
+        boolean loaded = loadCachedPhoto(view, request, false);
+        if (loaded) {
+            mPendingRequests.remove(view);
+        } else {
+            mPendingRequests.put(view, request);
+            if (!mPaused) {
+                // Send a request to start loading photos
+                requestLoading();
+            }
+        }
+    }
+
+    @Override
+    public void removePhoto(ImageView view) {
+        view.setImageDrawable(null);
+        mPendingRequests.remove(view);
+    }
+
+
+    /**
+     * Cancels pending requests to load photos asynchronously for views inside
+     * {@param fragmentRootView}. If {@param fragmentRootView} is null, cancels all requests.
+     */
+    @Override
+    public void cancelPendingRequests(View fragmentRootView) {
+        if (fragmentRootView == null) {
+            mPendingRequests.clear();
+            return;
+        }
+        final Iterator<Entry<ImageView, Request>> iterator = mPendingRequests.entrySet().iterator();
+        while (iterator.hasNext()) {
+            final ImageView imageView = iterator.next().getKey();
+            // If an ImageView is orphaned (currently scrap) or a child of fragmentRootView, then
+            // we can safely remove its request.
+            if (imageView.getParent() == null || isChildView(fragmentRootView, imageView)) {
+                iterator.remove();
+            }
+        }
+    }
+
+    private static boolean isChildView(View parent, View potentialChild) {
+        return potentialChild.getParent() != null && (potentialChild.getParent() == parent || (
+                potentialChild.getParent() instanceof ViewGroup && isChildView(parent,
+                        (ViewGroup) potentialChild.getParent())));
+    }
+
+    @Override
+    public void refreshCache() {
+        if (mBitmapHolderCacheAllUnfresh) {
+            if (DEBUG) Log.d(TAG, "refreshCache -- no fresh entries.");
+            return;
+        }
+        if (DEBUG) Log.d(TAG, "refreshCache");
+        mBitmapHolderCacheAllUnfresh = true;
+        for (BitmapHolder holder : mBitmapHolderCache.snapshot().values()) {
+            if (holder != BITMAP_UNAVAILABLE) {
+                holder.fresh = false;
+            }
+        }
+    }
+
+    /**
+     * Checks if the photo is present in cache.  If so, sets the photo on the view.
+     *
+     * @return false if the photo needs to be (re)loaded from the provider.
+     */
+    private boolean loadCachedPhoto(ImageView view, Request request, boolean fadeIn) {
+        BitmapHolder holder = mBitmapHolderCache.get(request.getKey());
+        if (holder == null) {
+            // The bitmap has not been loaded ==> show default avatar
+            request.applyDefaultImage(view, request.mIsCircular);
+            return false;
+        }
+
+        if (holder.bytes == null || holder.bytes.length == 0) {
+            request.applyDefaultImage(view, request.mIsCircular);
+            return holder.fresh;
+        }
+
+        Bitmap cachedBitmap = holder.bitmapRef == null ? null : holder.bitmapRef.get();
+        if (cachedBitmap == null) {
+            if (holder.bytes.length < 8 * 1024) {
+                // Small thumbnails are usually quick to inflate. Let's do that on the UI thread
+                inflateBitmap(holder, request.getRequestedExtent());
+                cachedBitmap = holder.bitmap;
+                if (cachedBitmap == null) return false;
+            } else {
+                // This is bigger data. Let's send that back to the Loader so that we can
+                // inflate this in the background
+                request.applyDefaultImage(view, request.mIsCircular);
+                return false;
+            }
+        }
+
+        final Drawable previousDrawable = view.getDrawable();
+        if (fadeIn && previousDrawable != null) {
+            final Drawable[] layers = new Drawable[2];
+            // Prevent cascade of TransitionDrawables.
+            if (previousDrawable instanceof TransitionDrawable) {
+                final TransitionDrawable previousTransitionDrawable =
+                        (TransitionDrawable) previousDrawable;
+                layers[0] = previousTransitionDrawable.getDrawable(
+                        previousTransitionDrawable.getNumberOfLayers() - 1);
+            } else {
+                layers[0] = previousDrawable;
+            }
+            layers[1] = getDrawableForBitmap(mContext.getResources(), cachedBitmap, request);
+            TransitionDrawable drawable = new TransitionDrawable(layers);
+            view.setImageDrawable(drawable);
+            drawable.startTransition(FADE_TRANSITION_DURATION);
+        } else {
+            view.setImageDrawable(
+                    getDrawableForBitmap(mContext.getResources(), cachedBitmap, request));
+        }
+
+        // Put the bitmap in the LRU cache. But only do this for images that are small enough
+        // (we require that at least six of those can be cached at the same time)
+        if (cachedBitmap.getByteCount() < mBitmapCache.maxSize() / 6) {
+            mBitmapCache.put(request.getKey(), cachedBitmap);
+        }
+
+        // Soften the reference
+        holder.bitmap = null;
+
+        return holder.fresh;
+    }
+
+    /**
+     * Given a bitmap, returns a drawable that is configured to display the bitmap based on the
+     * specified request.
+     */
+    private Drawable getDrawableForBitmap(Resources resources, Bitmap bitmap, Request request) {
+        if (request.mIsCircular) {
+            final RoundedBitmapDrawable drawable =
+                    RoundedBitmapDrawableFactory.create(resources, bitmap);
+            drawable.setAntiAlias(true);
+            drawable.setCornerRadius(bitmap.getHeight() / 2);
+            return drawable;
+        } else {
+            return new BitmapDrawable(resources, bitmap);
+        }
+    }
+
+    /**
+     * If necessary, decodes bytes stored in the holder to Bitmap.  As long as the
+     * bitmap is held either by {@link #mBitmapCache} or by a soft reference in
+     * the holder, it will not be necessary to decode the bitmap.
+     */
+    private static void inflateBitmap(BitmapHolder holder, int requestedExtent) {
+        final int sampleSize =
+                BitmapUtil.findOptimalSampleSize(holder.originalSmallerExtent, requestedExtent);
+        byte[] bytes = holder.bytes;
+        if (bytes == null || bytes.length == 0) {
+            return;
+        }
+
+        if (sampleSize == holder.decodedSampleSize) {
+            // Check the soft reference.  If will be retained if the bitmap is also
+            // in the LRU cache, so we don't need to check the LRU cache explicitly.
+            if (holder.bitmapRef != null) {
+                holder.bitmap = holder.bitmapRef.get();
+                if (holder.bitmap != null) {
+                    return;
+                }
+            }
+        }
+
+        try {
+            Bitmap bitmap = BitmapUtil.decodeBitmapFromBytes(bytes, sampleSize);
+
+            // TODO: As a temporary workaround while framework support is being added to
+            // clip non-square bitmaps into a perfect circle, manually crop the bitmap into
+            // into a square if it will be displayed as a thumbnail so that it can be cropped
+            // into a circle.
+            final int height = bitmap.getHeight();
+            final int width = bitmap.getWidth();
+
+            // The smaller dimension of a scaled bitmap can range from anywhere from 0 to just
+            // below twice the length of a thumbnail image due to the way we calculate the optimal
+            // sample size.
+            if (height != width && Math.min(height, width) <= mThumbnailSize * 2) {
+                final int dimension = Math.min(height, width);
+                bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension);
+            }
+            // make bitmap mutable and draw size onto it
+            if (DEBUG_SIZES) {
+                Bitmap original = bitmap;
+                bitmap = bitmap.copy(bitmap.getConfig(), true);
+                original.recycle();
+                Canvas canvas = new Canvas(bitmap);
+                Paint paint = new Paint();
+                paint.setTextSize(16);
+                paint.setColor(Color.BLUE);
+                paint.setStyle(Style.FILL);
+                canvas.drawRect(0.0f, 0.0f, 50.0f, 20.0f, paint);
+                paint.setColor(Color.WHITE);
+                paint.setAntiAlias(true);
+                canvas.drawText(bitmap.getWidth() + "/" + sampleSize, 0, 15, paint);
+            }
+
+            holder.decodedSampleSize = sampleSize;
+            holder.bitmap = bitmap;
+            holder.bitmapRef = new SoftReference<Bitmap>(bitmap);
+            if (DEBUG) {
+                Log.d(TAG, "inflateBitmap " + btk(bytes.length) + " -> "
+                        + bitmap.getWidth() + "x" + bitmap.getHeight()
+                        + ", " + btk(bitmap.getByteCount()));
+            }
+        } catch (OutOfMemoryError e) {
+            // Do nothing - the photo will appear to be missing
+        }
+    }
+
+    public void clear() {
+        if (DEBUG) Log.d(TAG, "clear");
+        mPendingRequests.clear();
+        mBitmapHolderCache.evictAll();
+        mBitmapCache.evictAll();
+    }
+
+    @Override
+    public void pause() {
+        mPaused = true;
+    }
+
+    @Override
+    public void resume() {
+        mPaused = false;
+        if (DEBUG) dumpStats();
+        if (!mPendingRequests.isEmpty()) {
+            requestLoading();
+        }
+    }
+
+    /**
+     * Sends a message to this thread itself to start loading images.  If the current
+     * view contains multiple image views, all of those image views will get a chance
+     * to request their respective photos before any of those requests are executed.
+     * This allows us to load images in bulk.
+     */
+    private void requestLoading() {
+        if (!mLoadingRequested) {
+            mLoadingRequested = true;
+            mMainThreadHandler.sendEmptyMessage(MESSAGE_REQUEST_LOADING);
+        }
+    }
+
+    /**
+     * Processes requests on the main thread.
+     */
+    @Override
+    public boolean handleMessage(Message msg) {
+        switch (msg.what) {
+            case MESSAGE_REQUEST_LOADING: {
+                mLoadingRequested = false;
+                if (!mPaused) {
+                    ensureLoaderThread();
+                    mLoaderThread.requestLoading();
+                }
+                return true;
+            }
+
+            case MESSAGE_PHOTOS_LOADED: {
+                if (!mPaused) {
+                    processLoadedImages();
+                }
+                if (DEBUG) dumpStats();
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public void ensureLoaderThread() {
+        if (mLoaderThread == null) {
+            mLoaderThread = new LoaderThread(mContext.getContentResolver());
+            mLoaderThread.start();
+        }
+    }
+
+    /**
+     * Goes over pending loading requests and displays loaded photos.  If some of the
+     * photos still haven't been loaded, sends another request for image loading.
+     */
+    private void processLoadedImages() {
+        final Iterator<Entry<ImageView, Request>> iterator = mPendingRequests.entrySet().iterator();
+        while (iterator.hasNext()) {
+            final Entry<ImageView, Request> entry = iterator.next();
+            // TODO: Temporarily disable contact photo fading in, until issues with
+            // RoundedBitmapDrawables overlapping the default image drawables are resolved.
+            final boolean loaded = loadCachedPhoto(entry.getKey(), entry.getValue(), false);
+            if (loaded) {
+                iterator.remove();
+            }
+        }
+
+        softenCache();
+
+        if (!mPendingRequests.isEmpty()) {
+            requestLoading();
+        }
+    }
+
+    /**
+     * Removes strong references to loaded bitmaps to allow them to be garbage collected
+     * if needed.  Some of the bitmaps will still be retained by {@link #mBitmapCache}.
+     */
+    private void softenCache() {
+        for (BitmapHolder holder : mBitmapHolderCache.snapshot().values()) {
+            holder.bitmap = null;
+        }
+    }
+
+    /**
+     * Stores the supplied bitmap in cache.
+     * bytes should be null to indicate a failure to load the photo. An empty byte[] signifies
+     * a successful load but no photo was available.
+     */
+    private void cacheBitmap(Object key, byte[] bytes, boolean preloading, int requestedExtent) {
+        if (DEBUG) {
+            BitmapHolder prev = mBitmapHolderCache.get(key);
+            if (prev != null && prev.bytes != null) {
+                Log.d(TAG, "Overwriting cache: key=" + key + (prev.fresh ? " FRESH" : " stale"));
+                if (prev.fresh) {
+                    mFreshCacheOverwrite.incrementAndGet();
+                } else {
+                    mStaleCacheOverwrite.incrementAndGet();
+                }
+            }
+            Log.d(TAG, "Caching data: key=" + key + ", " +
+                    (bytes == null ? "<null>" : btk(bytes.length)));
+        }
+        BitmapHolder holder = new BitmapHolder(bytes,
+                bytes == null ? -1 : BitmapUtil.getSmallerExtentFromBytes(bytes));
+
+        // Unless this image is being preloaded, decode it right away while
+        // we are still on the background thread.
+        if (!preloading) {
+            inflateBitmap(holder, requestedExtent);
+        }
+
+        if (bytes != null) {
+            mBitmapHolderCache.put(key, holder);
+            if (mBitmapHolderCache.get(key) != holder) {
+                Log.w(TAG, "Bitmap too big to fit in cache.");
+                mBitmapHolderCache.put(key, BITMAP_UNAVAILABLE);
+            }
+        } else {
+            mBitmapHolderCache.put(key, BITMAP_UNAVAILABLE);
+        }
+
+        mBitmapHolderCacheAllUnfresh = false;
+    }
+
+    @Override
+    public void cacheBitmap(Uri photoUri, Bitmap bitmap, byte[] photoBytes) {
+        final int smallerExtent = Math.min(bitmap.getWidth(), bitmap.getHeight());
+        // We can pretend here that the extent of the photo was the size that we originally
+        // requested
+        Request request = Request.createFromUri(photoUri, smallerExtent, false /* darkTheme */,
+                false /* isCircular */ , DEFAULT_AVATAR);
+        BitmapHolder holder = new BitmapHolder(photoBytes, smallerExtent);
+        holder.bitmapRef = new SoftReference<Bitmap>(bitmap);
+        mBitmapHolderCache.put(request.getKey(), holder);
+        mBitmapHolderCacheAllUnfresh = false;
+        mBitmapCache.put(request.getKey(), bitmap);
+    }
+
+    /**
+     * Populates an array of photo IDs that need to be loaded. Also decodes bitmaps that we have
+     * already loaded
+     */
+    private void obtainPhotoIdsAndUrisToLoad(Set<Long> photoIds,
+            Set<String> photoIdsAsStrings, Set<Request> uris) {
+        photoIds.clear();
+        photoIdsAsStrings.clear();
+        uris.clear();
+
+        boolean jpegsDecoded = false;
+
+        /*
+         * Since the call is made from the loader thread, the map could be
+         * changing during the iteration. That's not really a problem:
+         * ConcurrentHashMap will allow those changes to happen without throwing
+         * exceptions. Since we may miss some requests in the situation of
+         * concurrent change, we will need to check the map again once loading
+         * is complete.
+         */
+        Iterator<Request> iterator = mPendingRequests.values().iterator();
+        while (iterator.hasNext()) {
+            Request request = iterator.next();
+            final BitmapHolder holder = mBitmapHolderCache.get(request.getKey());
+            if (holder == BITMAP_UNAVAILABLE) {
+                continue;
+            }
+            if (holder != null && holder.bytes != null && holder.fresh &&
+                    (holder.bitmapRef == null || holder.bitmapRef.get() == null)) {
+                // This was previously loaded but we don't currently have the inflated Bitmap
+                inflateBitmap(holder, request.getRequestedExtent());
+                jpegsDecoded = true;
+            } else {
+                if (holder == null || !holder.fresh) {
+                    if (request.isUriRequest()) {
+                        uris.add(request);
+                    } else {
+                        photoIds.add(request.getId());
+                        photoIdsAsStrings.add(String.valueOf(request.mId));
+                    }
+                }
+            }
+        }
+
+        if (jpegsDecoded) mMainThreadHandler.sendEmptyMessage(MESSAGE_PHOTOS_LOADED);
+    }
+
+    /**
+     * The thread that performs loading of photos from the database.
+     */
+    private class LoaderThread extends HandlerThread implements Callback {
+        private static final int BUFFER_SIZE = 1024*16;
+        private static final int MESSAGE_PRELOAD_PHOTOS = 0;
+        private static final int MESSAGE_LOAD_PHOTOS = 1;
+
+        /**
+         * A pause between preload batches that yields to the UI thread.
+         */
+        private static final int PHOTO_PRELOAD_DELAY = 1000;
+
+        /**
+         * Number of photos to preload per batch.
+         */
+        private static final int PRELOAD_BATCH = 25;
+
+        /**
+         * Maximum number of photos to preload.  If the cache size is 2Mb and
+         * the expected average size of a photo is 4kb, then this number should be 2Mb/4kb = 500.
+         */
+        private static final int MAX_PHOTOS_TO_PRELOAD = 100;
+
+        private final ContentResolver mResolver;
+        private final StringBuilder mStringBuilder = new StringBuilder();
+        private final Set<Long> mPhotoIds = Sets.newHashSet();
+        private final Set<String> mPhotoIdsAsStrings = Sets.newHashSet();
+        private final Set<Request> mPhotoUris = Sets.newHashSet();
+        private final List<Long> mPreloadPhotoIds = Lists.newArrayList();
+
+        private Handler mLoaderThreadHandler;
+        private byte mBuffer[];
+
+        private static final int PRELOAD_STATUS_NOT_STARTED = 0;
+        private static final int PRELOAD_STATUS_IN_PROGRESS = 1;
+        private static final int PRELOAD_STATUS_DONE = 2;
+
+        private int mPreloadStatus = PRELOAD_STATUS_NOT_STARTED;
+
+        public LoaderThread(ContentResolver resolver) {
+            super(LOADER_THREAD_NAME);
+            mResolver = resolver;
+        }
+
+        public void ensureHandler() {
+            if (mLoaderThreadHandler == null) {
+                mLoaderThreadHandler = new Handler(getLooper(), this);
+            }
+        }
+
+        /**
+         * Kicks off preloading of the next batch of photos on the background thread.
+         * Preloading will happen after a delay: we want to yield to the UI thread
+         * as much as possible.
+         * <p>
+         * If preloading is already complete, does nothing.
+         */
+        public void requestPreloading() {
+            if (mPreloadStatus == PRELOAD_STATUS_DONE) {
+                return;
+            }
+
+            ensureHandler();
+            if (mLoaderThreadHandler.hasMessages(MESSAGE_LOAD_PHOTOS)) {
+                return;
+            }
+
+            mLoaderThreadHandler.sendEmptyMessageDelayed(
+                    MESSAGE_PRELOAD_PHOTOS, PHOTO_PRELOAD_DELAY);
+        }
+
+        /**
+         * Sends a message to this thread to load requested photos.  Cancels a preloading
+         * request, if any: we don't want preloading to impede loading of the photos
+         * we need to display now.
+         */
+        public void requestLoading() {
+            ensureHandler();
+            mLoaderThreadHandler.removeMessages(MESSAGE_PRELOAD_PHOTOS);
+            mLoaderThreadHandler.sendEmptyMessage(MESSAGE_LOAD_PHOTOS);
+        }
+
+        /**
+         * Receives the above message, loads photos and then sends a message
+         * to the main thread to process them.
+         */
+        @Override
+        public boolean handleMessage(Message msg) {
+            switch (msg.what) {
+                case MESSAGE_PRELOAD_PHOTOS:
+                    preloadPhotosInBackground();
+                    break;
+                case MESSAGE_LOAD_PHOTOS:
+                    loadPhotosInBackground();
+                    break;
+            }
+            return true;
+        }
+
+        /**
+         * The first time it is called, figures out which photos need to be preloaded.
+         * Each subsequent call preloads the next batch of photos and requests
+         * another cycle of preloading after a delay.  The whole process ends when
+         * we either run out of photos to preload or fill up cache.
+         */
+        private void preloadPhotosInBackground() {
+            if (mPreloadStatus == PRELOAD_STATUS_DONE) {
+                return;
+            }
+
+            if (mPreloadStatus == PRELOAD_STATUS_NOT_STARTED) {
+                queryPhotosForPreload();
+                if (mPreloadPhotoIds.isEmpty()) {
+                    mPreloadStatus = PRELOAD_STATUS_DONE;
+                } else {
+                    mPreloadStatus = PRELOAD_STATUS_IN_PROGRESS;
+                }
+                requestPreloading();
+                return;
+            }
+
+            if (mBitmapHolderCache.size() > mBitmapHolderCacheRedZoneBytes) {
+                mPreloadStatus = PRELOAD_STATUS_DONE;
+                return;
+            }
+
+            mPhotoIds.clear();
+            mPhotoIdsAsStrings.clear();
+
+            int count = 0;
+            int preloadSize = mPreloadPhotoIds.size();
+            while(preloadSize > 0 && mPhotoIds.size() < PRELOAD_BATCH) {
+                preloadSize--;
+                count++;
+                Long photoId = mPreloadPhotoIds.get(preloadSize);
+                mPhotoIds.add(photoId);
+                mPhotoIdsAsStrings.add(photoId.toString());
+                mPreloadPhotoIds.remove(preloadSize);
+            }
+
+            loadThumbnails(true);
+
+            if (preloadSize == 0) {
+                mPreloadStatus = PRELOAD_STATUS_DONE;
+            }
+
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "Preloaded " + count + " photos.  Cached bytes: "
+                        + mBitmapHolderCache.size());
+            }
+
+            requestPreloading();
+        }
+
+        private void queryPhotosForPreload() {
+            Cursor cursor = null;
+            try {
+                Uri uri = Contacts.CONTENT_URI.buildUpon().appendQueryParameter(
+                        ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(Directory.DEFAULT))
+                        .appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY,
+                                String.valueOf(MAX_PHOTOS_TO_PRELOAD))
+                        .build();
+                cursor = mResolver.query(uri, new String[] { Contacts.PHOTO_ID },
+                        Contacts.PHOTO_ID + " NOT NULL AND " + Contacts.PHOTO_ID + "!=0",
+                        null,
+                        Contacts.STARRED + " DESC, " + Contacts.LAST_TIME_CONTACTED + " DESC");
+
+                if (cursor != null) {
+                    while (cursor.moveToNext()) {
+                        // Insert them in reverse order, because we will be taking
+                        // them from the end of the list for loading.
+                        mPreloadPhotoIds.add(0, cursor.getLong(0));
+                    }
+                }
+            } finally {
+                if (cursor != null) {
+                    cursor.close();
+                }
+            }
+        }
+
+        private void loadPhotosInBackground() {
+            if (!PermissionsUtil.hasPermission(mContext,
+                    android.Manifest.permission.READ_CONTACTS)) {
+                return;
+            }
+            obtainPhotoIdsAndUrisToLoad(mPhotoIds, mPhotoIdsAsStrings, mPhotoUris);
+            loadThumbnails(false);
+            loadUriBasedPhotos();
+            requestPreloading();
+        }
+
+        /** Loads thumbnail photos with ids */
+        private void loadThumbnails(boolean preloading) {
+            if (mPhotoIds.isEmpty()) {
+                return;
+            }
+
+            // Remove loaded photos from the preload queue: we don't want
+            // the preloading process to load them again.
+            if (!preloading && mPreloadStatus == PRELOAD_STATUS_IN_PROGRESS) {
+                for (Long id : mPhotoIds) {
+                    mPreloadPhotoIds.remove(id);
+                }
+                if (mPreloadPhotoIds.isEmpty()) {
+                    mPreloadStatus = PRELOAD_STATUS_DONE;
+                }
+            }
+
+            mStringBuilder.setLength(0);
+            mStringBuilder.append(Photo._ID + " IN(");
+            for (int i = 0; i < mPhotoIds.size(); i++) {
+                if (i != 0) {
+                    mStringBuilder.append(',');
+                }
+                mStringBuilder.append('?');
+            }
+            mStringBuilder.append(')');
+
+            Cursor cursor = null;
+            try {
+                if (DEBUG) Log.d(TAG, "Loading " + TextUtils.join(",", mPhotoIdsAsStrings));
+                cursor = mResolver.query(Data.CONTENT_URI,
+                        COLUMNS,
+                        mStringBuilder.toString(),
+                        mPhotoIdsAsStrings.toArray(EMPTY_STRING_ARRAY),
+                        null);
+
+                if (cursor != null) {
+                    while (cursor.moveToNext()) {
+                        Long id = cursor.getLong(0);
+                        byte[] bytes = cursor.getBlob(1);
+                        if (bytes == null) {
+                            bytes = new byte[0];
+                        }
+                        cacheBitmap(id, bytes, preloading, -1);
+                        mPhotoIds.remove(id);
+                    }
+                }
+            } finally {
+                if (cursor != null) {
+                    cursor.close();
+                }
+            }
+
+            // Remaining photos were not found in the contacts database (but might be in profile).
+            for (Long id : mPhotoIds) {
+                if (ContactsContract.isProfileId(id)) {
+                    Cursor profileCursor = null;
+                    try {
+                        profileCursor = mResolver.query(
+                                ContentUris.withAppendedId(Data.CONTENT_URI, id),
+                                COLUMNS, null, null, null);
+                        if (profileCursor != null && profileCursor.moveToFirst()) {
+                            byte[] bytes = profileCursor.getBlob(1);
+                            if (bytes == null) {
+                                bytes = new byte[0];
+                            }
+                            cacheBitmap(profileCursor.getLong(0), bytes, preloading, -1);
+                        } else {
+                            // Couldn't load a photo this way either.
+                            cacheBitmap(id, null, preloading, -1);
+                        }
+                    } finally {
+                        if (profileCursor != null) {
+                            profileCursor.close();
+                        }
+                    }
+                } else {
+                    // Not a profile photo and not found - mark the cache accordingly
+                    cacheBitmap(id, null, preloading, -1);
+                }
+            }
+
+            mMainThreadHandler.sendEmptyMessage(MESSAGE_PHOTOS_LOADED);
+        }
+
+        /**
+         * Loads photos referenced with Uris. Those can be remote thumbnails
+         * (from directory searches), display photos etc
+         */
+        private void loadUriBasedPhotos() {
+            for (Request uriRequest : mPhotoUris) {
+                // Keep the original URI and use this to key into the cache.  Failure to do so will
+                // result in an image being continually reloaded into cache if the original URI
+                // has a contact type encodedFragment (eg nearby places business photo URLs).
+                Uri originalUri = uriRequest.getUri();
+
+                // Strip off the "contact type" we added to the URI to ensure it was identifiable as
+                // a business photo -- there is no need to pass this on to the server.
+                Uri uri = ContactPhotoManager.removeContactType(originalUri);
+
+                if (mBuffer == null) {
+                    mBuffer = new byte[BUFFER_SIZE];
+                }
+                try {
+                    if (DEBUG) Log.d(TAG, "Loading " + uri);
+                    final String scheme = uri.getScheme();
+                    InputStream is = null;
+                    if (scheme.equals("http") || scheme.equals("https")) {
+                        TrafficStats.setThreadStatsTag(TrafficStatsTags.CONTACT_PHOTO_DOWNLOAD_TAG);
+                        final HttpURLConnection connection =
+                                (HttpURLConnection) new URL(uri.toString()).openConnection();
+
+                        // Include the user agent if it is specified.
+                        if (!TextUtils.isEmpty(mUserAgent)) {
+                            connection.setRequestProperty("User-Agent", mUserAgent);
+                        }
+                        try {
+                            is = connection.getInputStream();
+                        } catch (IOException e) {
+                            connection.disconnect();
+                            is = null;
+                        }
+                        TrafficStats.clearThreadStatsTag();
+                    } else {
+                        is = mResolver.openInputStream(uri);
+                    }
+                    if (is != null) {
+                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                        try {
+                            int size;
+                            while ((size = is.read(mBuffer)) != -1) {
+                                baos.write(mBuffer, 0, size);
+                            }
+                        } finally {
+                            is.close();
+                        }
+                        cacheBitmap(originalUri, baos.toByteArray(), false,
+                                uriRequest.getRequestedExtent());
+                        mMainThreadHandler.sendEmptyMessage(MESSAGE_PHOTOS_LOADED);
+                    } else {
+                        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                            Log.v(TAG, "Cannot load photo " + uri);
+                        }
+                        cacheBitmap(originalUri, null, false, uriRequest.getRequestedExtent());
+                    }
+                } catch (final Exception | OutOfMemoryError ex) {
+                    if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                        Log.v(TAG, "Cannot load photo " + uri, ex);
+                    }
+                    cacheBitmap(originalUri, null, false, uriRequest.getRequestedExtent());
+                }
+            }
+        }
+    }
+
+    /**
+     * A holder for either a Uri or an id and a flag whether this was requested for the dark or
+     * light theme
+     */
+    private static final class Request {
+        private final long mId;
+        private final Uri mUri;
+        private final boolean mDarkTheme;
+        private final int mRequestedExtent;
+        private final DefaultImageProvider mDefaultProvider;
+        private final DefaultImageRequest mDefaultRequest;
+        /**
+         * Whether or not the contact photo is to be displayed as a circle
+         */
+        private final boolean mIsCircular;
+
+        private Request(long id, Uri uri, int requestedExtent, boolean darkTheme,
+                boolean isCircular, DefaultImageProvider defaultProvider,
+                DefaultImageRequest defaultRequest) {
+            mId = id;
+            mUri = uri;
+            mDarkTheme = darkTheme;
+            mIsCircular = isCircular;
+            mRequestedExtent = requestedExtent;
+            mDefaultProvider = defaultProvider;
+            mDefaultRequest = defaultRequest;
+        }
+
+        public static Request createFromThumbnailId(long id, boolean darkTheme, boolean isCircular,
+                DefaultImageProvider defaultProvider, DefaultImageRequest defaultRequest) {
+            return new Request(id, null /* no URI */, -1, darkTheme, isCircular, defaultProvider,
+                    defaultRequest);
+        }
+
+        public static Request createFromUri(Uri uri, int requestedExtent, boolean darkTheme,
+                boolean isCircular, DefaultImageProvider defaultProvider) {
+            return createFromUri(uri, requestedExtent, darkTheme, isCircular, defaultProvider,
+                    /* defaultRequest */ null);
+        }
+
+        public static Request createFromUri(Uri uri, int requestedExtent, boolean darkTheme,
+                boolean isCircular, DefaultImageProvider defaultProvider,
+                DefaultImageRequest defaultRequest) {
+            return new Request(0 /* no ID */, uri, requestedExtent, darkTheme, isCircular,
+                    defaultProvider, defaultRequest);
+        }
+
+        public boolean isUriRequest() {
+            return mUri != null;
+        }
+
+        public Uri getUri() {
+            return mUri;
+        }
+
+        public long getId() {
+            return mId;
+        }
+
+        public int getRequestedExtent() {
+            return mRequestedExtent;
+        }
+
+        @Override
+        public int hashCode() {
+            final int prime = 31;
+            int result = 1;
+            result = prime * result + (int) (mId ^ (mId >>> 32));
+            result = prime * result + mRequestedExtent;
+            result = prime * result + ((mUri == null) ? 0 : mUri.hashCode());
+            return result;
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj) return true;
+            if (obj == null) return false;
+            if (getClass() != obj.getClass()) return false;
+            final Request that = (Request) obj;
+            if (mId != that.mId) return false;
+            if (mRequestedExtent != that.mRequestedExtent) return false;
+            if (!UriUtils.areEqual(mUri, that.mUri)) return false;
+            // Don't compare equality of mDarkTheme because it is only used in the default contact
+            // photo case. When the contact does have a photo, the contact photo is the same
+            // regardless of mDarkTheme, so we shouldn't need to put the photo request on the queue
+            // twice.
+            return true;
+        }
+
+        public Object getKey() {
+            return mUri == null ? mId : mUri;
+        }
+
+        /**
+         * Applies the default image to the current view. If the request is URI-based, looks for
+         * the contact type encoded fragment to determine if this is a request for a business photo,
+         * in which case we will load the default business photo.
+         *
+         * @param view The current image view to apply the image to.
+         * @param isCircular Whether the image is circular or not.
+         */
+        public void applyDefaultImage(ImageView view, boolean isCircular) {
+            final DefaultImageRequest request;
+
+            if (mDefaultRequest == null) {
+                if (isCircular) {
+                    request = ContactPhotoManager.isBusinessContactUri(mUri)
+                            ? DefaultImageRequest.EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST
+                            : DefaultImageRequest.EMPTY_CIRCULAR_DEFAULT_IMAGE_REQUEST;
+                } else {
+                    request = ContactPhotoManager.isBusinessContactUri(mUri)
+                            ? DefaultImageRequest.EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST
+                            : DefaultImageRequest.EMPTY_DEFAULT_IMAGE_REQUEST;
+                }
+            } else {
+                request = mDefaultRequest;
+            }
+            mDefaultProvider.applyDefaultImage(view, mRequestedExtent, mDarkTheme, request);
+        }
+    }
+}
diff --git a/src/com/android/contacts/ContactPresenceIconUtil.java b/src/com/android/contacts/ContactPresenceIconUtil.java
new file mode 100644
index 0000000..0cb5b93
--- /dev/null
+++ b/src/com/android/contacts/ContactPresenceIconUtil.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 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;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.provider.ContactsContract.StatusUpdates;
+
+/**
+ * Define the contact present show policy in Contacts
+ */
+public class ContactPresenceIconUtil {
+    /**
+     * Get the presence icon resource according the status.
+     *
+     * @return null means don't show the status icon.
+     */
+    public static Drawable getPresenceIcon (Context context, int status) {
+        // We don't show the offline status in Contacts
+        switch(status) {
+            case StatusUpdates.AVAILABLE:
+            case StatusUpdates.IDLE:
+            case StatusUpdates.AWAY:
+            case StatusUpdates.DO_NOT_DISTURB:
+            case StatusUpdates.INVISIBLE:
+                return context.getResources().getDrawable(
+                        StatusUpdates.getPresenceIconResourceId(status));
+            case StatusUpdates.OFFLINE:
+            // The undefined status is treated as OFFLINE in getPresenceIconResourceId();
+            default:
+                return null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index 5c9c899..4e2d178 100755
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -17,6 +17,7 @@
 package com.android.contacts;
 
 import static android.Manifest.permission.WRITE_CONTACTS;
+
 import android.app.Activity;
 import android.app.IntentService;
 import android.content.ContentProviderOperation;
@@ -29,6 +30,7 @@
 import android.content.Intent;
 import android.content.OperationApplicationException;
 import android.database.Cursor;
+import android.database.DatabaseUtils;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
@@ -45,27 +47,34 @@
 import android.provider.ContactsContract.Profile;
 import android.provider.ContactsContract.RawContacts;
 import android.provider.ContactsContract.RawContactsEntity;
+import android.support.v4.content.LocalBroadcastManager;
+import android.support.v4.os.ResultReceiver;
+import android.text.TextUtils;
 import android.util.Log;
 import android.widget.Toast;
 
-import com.android.contacts.activities.ContactEditorBaseActivity;
-import com.android.contacts.common.compat.CompatUtils;
-import com.android.contacts.common.database.ContactUpdateUtils;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.CPOWrapper;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.util.PermissionsUtil;
+import com.android.contacts.activities.ContactEditorActivity;
+import com.android.contacts.compat.CompatUtils;
 import com.android.contacts.compat.PinnedPositionsCompat;
-import com.android.contacts.activities.ContactEditorBaseActivity.ContactEditor.SaveMode;
+import com.android.contacts.database.ContactUpdateUtils;
+import com.android.contacts.database.SimContactDao;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.CPOWrapper;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactDeltaList;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.ContactDisplayUtils;
 import com.android.contacts.util.ContactPhotoUtils;
+import com.android.contacts.util.PermissionsUtil;
+import com.android.contactsbind.FeedbackHelper;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -84,8 +93,11 @@
     public static final String EXTRA_ACCOUNT_NAME = "accountName";
     public static final String EXTRA_ACCOUNT_TYPE = "accountType";
     public static final String EXTRA_DATA_SET = "dataSet";
+    public static final String EXTRA_ACCOUNT = "account";
     public static final String EXTRA_CONTENT_VALUES = "contentValues";
     public static final String EXTRA_CALLBACK_INTENT = "callbackIntent";
+    public static final String EXTRA_RESULT_RECEIVER = "resultReceiver";
+    public static final String EXTRA_RAW_CONTACT_IDS = "rawContactIds";
 
     public static final String ACTION_SAVE_CONTACT = "saveContact";
     public static final String EXTRA_CONTACT_STATE = "state";
@@ -109,11 +121,16 @@
     public static final String EXTRA_CONTACT_URI = "contactUri";
     public static final String EXTRA_CONTACT_IDS = "contactIds";
     public static final String EXTRA_STARRED_FLAG = "starred";
+    public static final String EXTRA_DISPLAY_NAME = "extraDisplayName";
+    public static final String EXTRA_DISPLAY_NAME_ARRAY = "extraDisplayNameArray";
 
     public static final String ACTION_SET_SUPER_PRIMARY = "setSuperPrimary";
     public static final String ACTION_CLEAR_PRIMARY = "clearPrimary";
     public static final String EXTRA_DATA_ID = "dataId";
 
+    public static final String ACTION_SPLIT_CONTACT = "splitContact";
+    public static final String EXTRA_HARD_SPLIT = "extraHardSplit";
+
     public static final String ACTION_JOIN_CONTACTS = "joinContacts";
     public static final String ACTION_JOIN_SEVERAL_CONTACTS = "joinSeveralContacts";
     public static final String EXTRA_CONTACT_ID1 = "contactId1";
@@ -125,6 +142,31 @@
     public static final String ACTION_SET_RINGTONE = "setRingtone";
     public static final String EXTRA_CUSTOM_RINGTONE = "customRingtone";
 
+    public static final String ACTION_UNDO = "undo";
+    public static final String EXTRA_UNDO_ACTION = "undoAction";
+    public static final String EXTRA_UNDO_DATA = "undoData";
+
+    // For debugging and testing what happens when requests are queued up.
+    public static final String ACTION_SLEEP = "sleep";
+    public static final String EXTRA_SLEEP_DURATION = "sleepDuration";
+
+    public static final String BROADCAST_GROUP_DELETED = "groupDeleted";
+    public static final String BROADCAST_LINK_COMPLETE = "linkComplete";
+    public static final String BROADCAST_UNLINK_COMPLETE = "unlinkComplete";
+
+    public static final String BROADCAST_SERVICE_STATE_CHANGED = "serviceStateChanged";
+
+    public static final String EXTRA_RESULT_CODE = "resultCode";
+    public static final String EXTRA_RESULT_COUNT = "count";
+
+    public static final int CP2_ERROR = 0;
+    public static final int CONTACTS_LINKED = 1;
+    public static final int CONTACTS_SPLIT = 2;
+    public static final int BAD_ARGUMENTS = 3;
+    public static final int RESULT_UNKNOWN = 0;
+    public static final int RESULT_SUCCESS = 1;
+    public static final int RESULT_FAILURE = 2;
+
     private static final HashSet<String> ALLOWED_DATA_COLUMNS = Sets.newHashSet(
         Data.MIMETYPE,
         Data.IS_PRIMARY,
@@ -156,7 +198,12 @@
     private static final CopyOnWriteArrayList<Listener> sListeners =
             new CopyOnWriteArrayList<Listener>();
 
+    // Holds the current state of the service
+    private static final State sState = new State();
+
     private Handler mMainHandler;
+    private GroupsDao mGroupsDao;
+    private SimContactDao mSimContactDao;
 
     public ContactSaveService() {
         super(TAG);
@@ -164,6 +211,13 @@
         mMainHandler = new Handler(Looper.getMainLooper());
     }
 
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mGroupsDao = new GroupsDaoImpl(this);
+        mSimContactDao = SimContactDao.create(this);
+    }
+
     public static void registerListener(Listener listener) {
         if (!(listener instanceof Activity)) {
             throw new ClassCastException("Only activities can be registered to"
@@ -172,10 +226,23 @@
         sListeners.add(0, listener);
     }
 
+    public static boolean canUndo(Intent resultIntent) {
+        return resultIntent.hasExtra(EXTRA_UNDO_DATA);
+    }
+
     public static void unregisterListener(Listener listener) {
         sListeners.remove(listener);
     }
 
+    public static State getState() {
+        return sState;
+    }
+
+    private void notifyStateChanged() {
+        LocalBroadcastManager.getInstance(this)
+                .sendBroadcast(new Intent(BROADCAST_SERVICE_STATE_CHANGED));
+    }
+
     /**
      * Returns true if the ContactSaveService was started successfully and false if an exception
      * was thrown and a Toast error message was displayed.
@@ -186,13 +253,13 @@
         } catch (Exception exception) {
             final int resId;
             switch (saveMode) {
-                case ContactEditorBaseActivity.ContactEditor.SaveMode.SPLIT:
+                case ContactEditorActivity.ContactEditor.SaveMode.SPLIT:
                     resId = R.string.contactUnlinkErrorToast;
                     break;
-                case ContactEditorBaseActivity.ContactEditor.SaveMode.RELOAD:
+                case ContactEditorActivity.ContactEditor.SaveMode.RELOAD:
                     resId = R.string.contactJoinErrorToast;
                     break;
-                case ContactEditorBaseActivity.ContactEditor.SaveMode.CLOSE:
+                case ContactEditorActivity.ContactEditor.SaveMode.CLOSE:
                     resId = R.string.contactSavedErrorToast;
                     break;
                 default:
@@ -225,10 +292,21 @@
         return getApplicationContext().getSystemService(name);
     }
 
+    // Parent classes Javadoc says not to override this method but we're doing it just to update
+    // our state which should be OK since we're still doing the work in onHandleIntent
     @Override
-    protected void onHandleIntent(Intent intent) {
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        sState.onStart(intent);
+        notifyStateChanged();
+        return super.onStartCommand(intent, flags, startId);
+    }
+
+    @Override
+    protected void onHandleIntent(final Intent intent) {
         if (intent == null) {
-            Log.d(TAG, "onHandleIntent: could not handle null intent");
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "onHandleIntent: could not handle null intent");
+            }
             return;
         }
         if (!PermissionsUtil.hasPermission(this, WRITE_CONTACTS)) {
@@ -264,6 +342,8 @@
             deleteMultipleContacts(intent);
         } else if (ACTION_DELETE_CONTACT.equals(action)) {
             deleteContact(intent);
+        } else if (ACTION_SPLIT_CONTACT.equals(action)) {
+            splitContact(intent);
         } else if (ACTION_JOIN_CONTACTS.equals(action)) {
             joinContacts(intent);
         } else if (ACTION_JOIN_SEVERAL_CONTACTS.equals(action)) {
@@ -272,7 +352,14 @@
             setSendToVoicemail(intent);
         } else if (ACTION_SET_RINGTONE.equals(action)) {
             setRingtone(intent);
+        } else if (ACTION_UNDO.equals(action)) {
+            undo(intent);
+        } else if (ACTION_SLEEP.equals(action)) {
+            sleepForDebugging(intent);
         }
+
+        sState.onFinish(intent);
+        notifyStateChanged();
     }
 
     /**
@@ -493,7 +580,7 @@
                                     rawContactId);
                     lookupUri = RawContacts.getContactLookupUri(resolver, rawContactUri);
                 }
-                if (lookupUri != null) {
+                if (lookupUri != null && Log.isLoggable(TAG, Log.VERBOSE)) {
                     Log.v(TAG, "Saved contact. New URI: " + lookupUri);
                 }
 
@@ -503,12 +590,12 @@
 
             } catch (RemoteException e) {
                 // Something went wrong, bail without success
-                Log.e(TAG, "Problem persisting user edits", e);
+                FeedbackHelper.sendFeedback(this, TAG, "Problem persisting user edits", e);
                 break;
 
             } catch (IllegalArgumentException e) {
                 // This is thrown by applyBatch on malformed requests
-                Log.e(TAG, "Problem persisting user edits", e);
+                FeedbackHelper.sendFeedback(this, TAG, "Problem persisting user edits", e);
                 showToast(R.string.contactSavedErrorToast);
                 break;
 
@@ -693,16 +780,10 @@
         String label = intent.getStringExtra(EXTRA_GROUP_LABEL);
         final long[] rawContactsToAdd = intent.getLongArrayExtra(EXTRA_RAW_CONTACTS_TO_ADD);
 
-        ContentValues values = new ContentValues();
-        values.put(Groups.ACCOUNT_TYPE, accountType);
-        values.put(Groups.ACCOUNT_NAME, accountName);
-        values.put(Groups.DATA_SET, dataSet);
-        values.put(Groups.TITLE, label);
-
-        final ContentResolver resolver = getContentResolver();
-
         // Create the new group
-        final Uri groupUri = resolver.insert(Groups.CONTENT_URI, values);
+        final Uri groupUri = mGroupsDao.create(label,
+                new AccountWithDataSet(accountName, accountType, dataSet));
+        final ContentResolver resolver = getContentResolver();
 
         // If there's no URI, then the insertion failed. Abort early because group members can't be
         // added if the group doesn't exist
@@ -714,8 +795,10 @@
         // Add new group members
         addMembersToGroup(resolver, rawContactsToAdd, ContentUris.parseId(groupUri));
 
+        ContentValues values = new ContentValues();
         // TODO: Move this into the contact editor where it belongs. This needs to be integrated
-        // with the way other intent extras that are passed to the {@link ContactEditorActivity}.
+        // with the way other intent extras that are passed to the
+        // {@link ContactEditorActivity}.
         values.clear();
         values.put(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE);
         values.put(GroupMembership.GROUP_ROW_ID, ContentUris.parseId(groupUri));
@@ -768,9 +851,10 @@
      * Creates an intent that can be sent to this service to delete a group.
      */
     public static Intent createGroupDeletionIntent(Context context, long groupId) {
-        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        final Intent serviceIntent = new Intent(context, ContactSaveService.class);
         serviceIntent.setAction(ContactSaveService.ACTION_DELETE_GROUP);
         serviceIntent.putExtra(ContactSaveService.EXTRA_GROUP_ID, groupId);
+
         return serviceIntent;
     }
 
@@ -780,11 +864,33 @@
             Log.e(TAG, "Invalid arguments for deleteGroup request");
             return;
         }
+        final Uri groupUri = ContentUris.withAppendedId(Groups.CONTENT_URI, groupId);
 
-        getContentResolver().delete(
-                ContentUris.withAppendedId(Groups.CONTENT_URI, groupId), null, null);
+        final Intent callbackIntent = new Intent(BROADCAST_GROUP_DELETED);
+        final Bundle undoData = mGroupsDao.captureDeletionUndoData(groupUri);
+        callbackIntent.putExtra(EXTRA_UNDO_ACTION, ACTION_DELETE_GROUP);
+        callbackIntent.putExtra(EXTRA_UNDO_DATA, undoData);
+
+        mGroupsDao.delete(groupUri);
+
+        LocalBroadcastManager.getInstance(this).sendBroadcast(callbackIntent);
     }
 
+    public static Intent createUndoIntent(Context context, Intent resultIntent) {
+        final Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_UNDO);
+        serviceIntent.putExtras(resultIntent);
+        return serviceIntent;
+    }
+
+    private void undo(Intent intent) {
+        final String actionToUndo = intent.getStringExtra(EXTRA_UNDO_ACTION);
+        if (ACTION_DELETE_GROUP.equals(actionToUndo)) {
+            mGroupsDao.undoDeletion(intent.getBundleExtra(EXTRA_UNDO_DATA));
+        }
+    }
+
+
     /**
      * Creates an intent that can be sent to this service to rename a group as
      * well as add and remove members from the group.
@@ -849,7 +955,7 @@
         deliverCallback(callbackIntent);
     }
 
-    private static void addMembersToGroup(ContentResolver resolver, long[] rawContactsToAdd,
+    private void addMembersToGroup(ContentResolver resolver, long[] rawContactsToAdd,
             long groupId) {
         if (rawContactsToAdd == null) {
             return;
@@ -889,14 +995,16 @@
                 }
             } catch (RemoteException e) {
                 // Something went wrong, bail without success
-                Log.e(TAG, "Problem persisting user edits for raw contact ID " +
-                        String.valueOf(rawContactId), e);
+                FeedbackHelper.sendFeedback(this, TAG,
+                        "Problem persisting user edits for raw contact ID " +
+                                String.valueOf(rawContactId), e);
             } catch (OperationApplicationException e) {
                 // The assert could have failed because the contact is already in the group,
                 // just continue to the next contact
-                Log.w(TAG, "Assert failed in adding raw contact ID " +
-                        String.valueOf(rawContactId) + ". Already exists in group " +
-                        String.valueOf(groupId), e);
+                FeedbackHelper.sendFeedback(this, TAG,
+                        "Assert failed in adding raw contact ID " +
+                                String.valueOf(rawContactId) + ". Already exists in group " +
+                                String.valueOf(groupId), e);
             }
         }
     }
@@ -1074,10 +1182,11 @@
      * Creates an intent that can be sent to this service to delete multiple contacts.
      */
     public static Intent createDeleteMultipleContactsIntent(Context context,
-            long[] contactIds) {
+            long[] contactIds, final String[] names) {
         Intent serviceIntent = new Intent(context, ContactSaveService.class);
         serviceIntent.setAction(ContactSaveService.ACTION_DELETE_MULTIPLE_CONTACTS);
         serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_IDS, contactIds);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_DISPLAY_NAME_ARRAY, names);
         return serviceIntent;
     }
 
@@ -1101,8 +1210,23 @@
             final Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
             getContentResolver().delete(contactUri, null, null);
         }
-        final String deleteToastMessage = getResources().getQuantityString(R.plurals
-                .contacts_deleted_toast, contactIds.length);
+        final String[] names = intent.getStringArrayExtra(
+                ContactSaveService.EXTRA_DISPLAY_NAME_ARRAY);
+        final String deleteToastMessage;
+        if (contactIds.length != names.length || names.length == 0) {
+            deleteToastMessage = getResources().getQuantityString(
+                    R.plurals.contacts_deleted_toast, contactIds.length);
+        } else if (names.length == 1) {
+            deleteToastMessage = getResources().getString(
+                    R.string.contacts_deleted_one_named_toast, names);
+        } else if (names.length == 2) {
+            deleteToastMessage = getResources().getString(
+                    R.string.contacts_deleted_two_named_toast, names);
+        } else {
+            deleteToastMessage = getResources().getString(
+                    R.string.contacts_deleted_many_named_toast, names);
+        }
+
         mMainHandler.post(new Runnable() {
             @Override
             public void run() {
@@ -1113,6 +1237,106 @@
     }
 
     /**
+     * Creates an intent that can be sent to this service to split a contact into it's constituent
+     * pieces. This will set the raw contact ids to {@link AggregationExceptions#TYPE_AUTOMATIC} so
+     * they may be re-merged by the auto-aggregator.
+     */
+    public static Intent createSplitContactIntent(Context context, long[][] rawContactIds,
+            ResultReceiver receiver) {
+        final Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_SPLIT_CONTACT);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_RAW_CONTACT_IDS, rawContactIds);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_RESULT_RECEIVER, receiver);
+        return serviceIntent;
+    }
+
+    /**
+     * Creates an intent that can be sent to this service to split a contact into it's constituent
+     * pieces. This will explicitly set the raw contact ids to
+     * {@link AggregationExceptions#TYPE_KEEP_SEPARATE}.
+     */
+    public static Intent createHardSplitContactIntent(Context context, long[][] rawContactIds) {
+        final Intent serviceIntent = new Intent(context, ContactSaveService.class);
+        serviceIntent.setAction(ContactSaveService.ACTION_SPLIT_CONTACT);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_RAW_CONTACT_IDS, rawContactIds);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_HARD_SPLIT, true);
+        return serviceIntent;
+    }
+
+    private void splitContact(Intent intent) {
+        final long rawContactIds[][] = (long[][]) intent
+                .getSerializableExtra(EXTRA_RAW_CONTACT_IDS);
+        final ResultReceiver receiver = intent.getParcelableExtra(EXTRA_RESULT_RECEIVER);
+        final boolean hardSplit = intent.getBooleanExtra(EXTRA_HARD_SPLIT, false);
+        if (rawContactIds == null) {
+            Log.e(TAG, "Invalid argument for splitContact request");
+            if (receiver != null) {
+                receiver.send(BAD_ARGUMENTS, new Bundle());
+            }
+            return;
+        }
+        final int batchSize = MAX_CONTACTS_PROVIDER_BATCH_SIZE;
+        final ContentResolver resolver = getContentResolver();
+        final ArrayList<ContentProviderOperation> operations = new ArrayList<>(batchSize);
+        for (int i = 0; i < rawContactIds.length; i++) {
+            for (int j = 0; j < rawContactIds.length; j++) {
+                if (i != j) {
+                    if (!buildSplitTwoContacts(operations, rawContactIds[i], rawContactIds[j],
+                            hardSplit)) {
+                        if (receiver != null) {
+                            receiver.send(CP2_ERROR, new Bundle());
+                            return;
+                        }
+                    }
+                }
+            }
+        }
+        if (operations.size() > 0 && !applyOperations(resolver, operations)) {
+            if (receiver != null) {
+                receiver.send(CP2_ERROR, new Bundle());
+            }
+            return;
+        }
+        LocalBroadcastManager.getInstance(this)
+                .sendBroadcast(new Intent(BROADCAST_UNLINK_COMPLETE));
+        if (receiver != null) {
+            receiver.send(CONTACTS_SPLIT, new Bundle());
+        } else {
+            showToast(R.string.contactUnlinkedToast);
+        }
+    }
+
+    /**
+     * Insert aggregation exception ContentProviderOperations between {@param rawContactIds1}
+     * and {@param rawContactIds2} to {@param operations}.
+     * @return false if an error occurred, true otherwise.
+     */
+    private boolean buildSplitTwoContacts(ArrayList<ContentProviderOperation> operations,
+            long[] rawContactIds1, long[] rawContactIds2, boolean hardSplit) {
+        if (rawContactIds1 == null || rawContactIds2 == null) {
+            Log.e(TAG, "Invalid arguments for splitContact request");
+            return false;
+        }
+        // For each pair of raw contacts, insert an aggregation exception
+        final ContentResolver resolver = getContentResolver();
+        // The maximum number of operations per batch (aka yield point) is 500. See b/22480225
+        final int batchSize = MAX_CONTACTS_PROVIDER_BATCH_SIZE;
+        for (int i = 0; i < rawContactIds1.length; i++) {
+            for (int j = 0; j < rawContactIds2.length; j++) {
+                buildSplitContactDiff(operations, rawContactIds1[i], rawContactIds2[j], hardSplit);
+                // Before we get to 500 we need to flush the operations list
+                if (operations.size() > 0 && operations.size() % batchSize == 0) {
+                    if (!applyOperations(resolver, operations)) {
+                        return false;
+                    }
+                    operations.clear();
+                }
+            }
+        }
+        return true;
+    }
+
+    /**
      * Creates an intent that can be sent to this service to join two contacts.
      * The resulting contact uses the name from {@param contactId1} if possible.
      */
@@ -1135,13 +1359,22 @@
      * Creates an intent to join all raw contacts inside {@param contactIds}'s contacts.
      * No special attention is paid to where the resulting contact's name is taken from.
      */
-    public static Intent createJoinSeveralContactsIntent(Context context, long[] contactIds) {
-        Intent serviceIntent = new Intent(context, ContactSaveService.class);
+    public static Intent createJoinSeveralContactsIntent(Context context, long[] contactIds,
+            ResultReceiver receiver) {
+        final Intent serviceIntent = new Intent(context, ContactSaveService.class);
         serviceIntent.setAction(ContactSaveService.ACTION_JOIN_SEVERAL_CONTACTS);
         serviceIntent.putExtra(ContactSaveService.EXTRA_CONTACT_IDS, contactIds);
+        serviceIntent.putExtra(ContactSaveService.EXTRA_RESULT_RECEIVER, receiver);
         return serviceIntent;
     }
 
+    /**
+     * Creates an intent to join all raw contacts inside {@param contactIds}'s contacts.
+     * No special attention is paid to where the resulting contact's name is taken from.
+     */
+    public static Intent createJoinSeveralContactsIntent(Context context, long[] contactIds) {
+        return createJoinSeveralContactsIntent(context, contactIds, /* receiver = */ null);
+    }
 
     private interface JoinContactQuery {
         String[] PROJECTION = {
@@ -1174,10 +1407,16 @@
     private void joinSeveralContacts(Intent intent) {
         final long[] contactIds = intent.getLongArrayExtra(EXTRA_CONTACT_IDS);
 
+        final ResultReceiver receiver = intent.getParcelableExtra(EXTRA_RESULT_RECEIVER);
+
         // Load raw contact IDs for all contacts involved.
-        long rawContactIds[] = getRawContactIdsForAggregation(contactIds);
+        final long rawContactIds[] = getRawContactIdsForAggregation(contactIds);
+        final long[][] separatedRawContactIds = getSeparatedRawContactIds(contactIds);
         if (rawContactIds == null) {
             Log.e(TAG, "Invalid arguments for joinSeveralContacts request");
+            if (receiver != null) {
+                receiver.send(BAD_ARGUMENTS, new Bundle());
+            }
             return;
         }
 
@@ -1193,33 +1432,108 @@
                 }
                 // Before we get to 500 we need to flush the operations list
                 if (operations.size() > 0 && operations.size() % batchSize == 0) {
-                    if (!applyJoinOperations(resolver, operations)) {
+                    if (!applyOperations(resolver, operations)) {
+                        if (receiver != null) {
+                            receiver.send(CP2_ERROR, new Bundle());
+                        }
                         return;
                     }
                     operations.clear();
                 }
             }
         }
-        if (operations.size() > 0 && !applyJoinOperations(resolver, operations)) {
+        if (operations.size() > 0 && !applyOperations(resolver, operations)) {
+            if (receiver != null) {
+                receiver.send(CP2_ERROR, new Bundle());
+            }
             return;
         }
-        showToast(R.string.contactsJoinedMessage);
+
+
+        final String name = queryNameOfLinkedContacts(contactIds);
+        if (name != null) {
+            if (receiver != null) {
+                final Bundle result = new Bundle();
+                result.putSerializable(EXTRA_RAW_CONTACT_IDS, separatedRawContactIds);
+                result.putString(EXTRA_DISPLAY_NAME, name);
+                receiver.send(CONTACTS_LINKED, result);
+            } else {
+                if (TextUtils.isEmpty(name)) {
+                    showToast(R.string.contactsJoinedMessage);
+                } else {
+                    showToast(R.string.contactsJoinedNamedMessage, name);
+                }
+            }
+            LocalBroadcastManager.getInstance(this)
+                    .sendBroadcast(new Intent(BROADCAST_LINK_COMPLETE));
+        } else {
+            if (receiver != null) {
+                receiver.send(CP2_ERROR, new Bundle());
+            }
+            showToast(R.string.contactJoinErrorToast);
+        }
+    }
+
+    /** Get the display name of the top-level contact after the contacts have been linked. */
+    private String queryNameOfLinkedContacts(long[] contactIds) {
+        final StringBuilder whereBuilder = new StringBuilder(Contacts._ID).append(" IN (");
+        final String[] whereArgs = new String[contactIds.length];
+        for (int i = 0; i < contactIds.length; i++) {
+            whereArgs[i] = String.valueOf(contactIds[i]);
+            whereBuilder.append("?,");
+        }
+        whereBuilder.deleteCharAt(whereBuilder.length() - 1).append(')');
+        final Cursor cursor = getContentResolver().query(Contacts.CONTENT_URI,
+                new String[]{Contacts._ID, Contacts.DISPLAY_NAME,
+                        Contacts.DISPLAY_NAME_ALTERNATIVE},
+                whereBuilder.toString(), whereArgs, null);
+
+        String name = null;
+        String nameAlt = null;
+        long contactId = 0;
+        try {
+            if (cursor.moveToFirst()) {
+                contactId = cursor.getLong(0);
+                name = cursor.getString(1);
+                nameAlt = cursor.getString(2);
+            }
+            while(cursor.moveToNext()) {
+                if (cursor.getLong(0) != contactId) {
+                    return null;
+                }
+            }
+
+            final String formattedName = ContactDisplayUtils.getPreferredDisplayName(name, nameAlt,
+                    new ContactsPreferences(getApplicationContext()));
+            return formattedName == null ? "" : formattedName;
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
     }
 
     /** Returns true if the batch was successfully applied and false otherwise. */
-    private boolean applyJoinOperations(ContentResolver resolver,
+    private boolean applyOperations(ContentResolver resolver,
             ArrayList<ContentProviderOperation> operations) {
         try {
-            resolver.applyBatch(ContactsContract.AUTHORITY, operations);
+            final ContentProviderResult[] result =
+                    resolver.applyBatch(ContactsContract.AUTHORITY, operations);
+            for (int i = 0; i < result.length; ++i) {
+                // if no rows were modified in the operation then we count it as fail.
+                if (result[i].count < 0) {
+                    throw new OperationApplicationException();
+                }
+            }
             return true;
         } catch (RemoteException | OperationApplicationException e) {
-            Log.e(TAG, "Failed to apply aggregation exception batch", e);
+            FeedbackHelper.sendFeedback(this, TAG,
+                    "Failed to apply aggregation exception batch", e);
             showToast(R.string.contactSavedErrorToast);
             return false;
         }
     }
 
-
     private void joinContacts(Intent intent) {
         long contactId1 = intent.getLongExtra(EXTRA_CONTACT_ID1, -1);
         long contactId2 = intent.getLongExtra(EXTRA_CONTACT_ID2, -1);
@@ -1276,33 +1590,81 @@
             operations.add(builder.build());
         }
 
-        boolean success = false;
         // Apply all aggregation exceptions as one batch
-        try {
-            resolver.applyBatch(ContactsContract.AUTHORITY, operations);
-            showToast(R.string.contactsJoinedMessage);
-            success = true;
-        } catch (RemoteException | OperationApplicationException e) {
-            Log.e(TAG, "Failed to apply aggregation exception batch", e);
-            showToast(R.string.contactSavedErrorToast);
-        }
+        final boolean success = applyOperations(resolver, operations);
 
+        final String name = queryNameOfLinkedContacts(new long[] {contactId1, contactId2});
         Intent callbackIntent = intent.getParcelableExtra(EXTRA_CALLBACK_INTENT);
-        if (success) {
+        if (success && name != null) {
+            if (TextUtils.isEmpty(name)) {
+                showToast(R.string.contactsJoinedMessage);
+            } else {
+                showToast(R.string.contactsJoinedNamedMessage, name);
+            }
             Uri uri = RawContacts.getContactLookupUri(resolver,
                     ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactIds[0]));
             callbackIntent.setData(uri);
+            LocalBroadcastManager.getInstance(this)
+                    .sendBroadcast(new Intent(BROADCAST_LINK_COMPLETE));
         }
         deliverCallback(callbackIntent);
     }
 
+    /**
+     * Gets the raw contact ids for each contact id in {@param contactIds}. Each index of the outer
+     * array of the return value holds an array of raw contact ids for one contactId.
+     * @param contactIds
+     * @return
+     */
+    private long[][] getSeparatedRawContactIds(long[] contactIds) {
+        final long[][] rawContactIds = new long[contactIds.length][];
+        for (int i = 0; i < contactIds.length; i++) {
+            rawContactIds[i] = getRawContactIds(contactIds[i]);
+        }
+        return rawContactIds;
+    }
+
+    /**
+     * Gets the raw contact ids associated with {@param contactId}.
+     * @param contactId
+     * @return Array of raw contact ids.
+     */
+    private long[] getRawContactIds(long contactId) {
+        final ContentResolver resolver = getContentResolver();
+        long rawContactIds[];
+
+        final StringBuilder queryBuilder = new StringBuilder();
+            queryBuilder.append(RawContacts.CONTACT_ID)
+                    .append("=")
+                    .append(String.valueOf(contactId));
+
+        final Cursor c = resolver.query(RawContacts.CONTENT_URI,
+                JoinContactQuery.PROJECTION,
+                queryBuilder.toString(),
+                null, null);
+        if (c == null) {
+            Log.e(TAG, "Unable to open Contacts DB cursor");
+            return null;
+        }
+        try {
+            rawContactIds = new long[c.getCount()];
+            for (int i = 0; i < rawContactIds.length; i++) {
+                c.moveToPosition(i);
+                final long rawContactId = c.getLong(JoinContactQuery._ID);
+                rawContactIds[i] = rawContactId;
+            }
+        } finally {
+            c.close();
+        }
+        return rawContactIds;
+    }
+
     private long[] getRawContactIdsForAggregation(long[] contactIds) {
         if (contactIds == null) {
             return null;
         }
 
         final ContentResolver resolver = getContentResolver();
-        long rawContactIds[];
 
         final StringBuilder queryBuilder = new StringBuilder();
         final String stringContactIds[] = new String[contactIds.length];
@@ -1327,6 +1689,7 @@
             showToast(R.string.contactSavedErrorToast);
             return null;
         }
+        long rawContactIds[];
         try {
             if (c.getCount() < 2) {
                 Log.e(TAG, "Not enough raw contacts to aggregate together.");
@@ -1362,6 +1725,67 @@
     }
 
     /**
+     * Construct a {@link AggregationExceptions#TYPE_AUTOMATIC} or a
+     * {@link AggregationExceptions#TYPE_KEEP_SEPARATE} ContentProviderOperation if a hard split is
+     * requested.
+     */
+    private void buildSplitContactDiff(ArrayList<ContentProviderOperation> operations,
+            long rawContactId1, long rawContactId2, boolean hardSplit) {
+        final Builder builder =
+                ContentProviderOperation.newUpdate(AggregationExceptions.CONTENT_URI);
+        builder.withValue(AggregationExceptions.TYPE,
+                hardSplit
+                        ? AggregationExceptions.TYPE_KEEP_SEPARATE
+                        : AggregationExceptions.TYPE_AUTOMATIC);
+        builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, rawContactId1);
+        builder.withValue(AggregationExceptions.RAW_CONTACT_ID2, rawContactId2);
+        operations.add(builder.build());
+    }
+
+    /**
+     * Returns an intent that can start this service and cause it to sleep for the specified time.
+     *
+     * This exists purely for debugging and manual testing. Since this service uses a single thread
+     * it is useful to have a way to test behavior when work is queued up and most of the other
+     * operations complete too quickly to simulate that under normal conditions.
+     */
+    public static Intent createSleepIntent(Context context, long millis) {
+        return new Intent(context, ContactSaveService.class).setAction(ACTION_SLEEP)
+                .putExtra(EXTRA_SLEEP_DURATION, millis);
+    }
+
+    private void sleepForDebugging(Intent intent) {
+        long duration = intent.getLongExtra(EXTRA_SLEEP_DURATION, 1000);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "sleeping for " + duration + "ms");
+        }
+        try {
+            Thread.sleep(duration);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "finished sleeping");
+        }
+    }
+
+    /**
+     * Shows a toast on the UI thread by formatting messageId using args.
+     * @param messageId id of message string
+     * @param args args to format string
+     */
+    private void showToast(final int messageId, final Object... args) {
+        final String message = getResources().getString(messageId, args);
+        mMainHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(ContactSaveService.this, message, Toast.LENGTH_LONG).show();
+            }
+        });
+    }
+
+
+    /**
      * Shows a toast on the UI thread.
      */
     private void showToast(final int message) {
@@ -1396,4 +1820,164 @@
             }
         }
     }
+
+    public interface GroupsDao {
+        Uri create(String title, AccountWithDataSet account);
+        int delete(Uri groupUri);
+        Bundle captureDeletionUndoData(Uri groupUri);
+        Uri undoDeletion(Bundle undoData);
+    }
+
+    public static class GroupsDaoImpl implements GroupsDao {
+        public static final String KEY_GROUP_DATA = "groupData";
+        public static final String KEY_GROUP_MEMBERS = "groupMemberIds";
+
+        private static final String TAG = "GroupsDao";
+        private final Context context;
+        private final ContentResolver contentResolver;
+
+        public GroupsDaoImpl(Context context) {
+            this(context, context.getContentResolver());
+        }
+
+        public GroupsDaoImpl(Context context, ContentResolver contentResolver) {
+            this.context = context;
+            this.contentResolver = contentResolver;
+        }
+
+        public Bundle captureDeletionUndoData(Uri groupUri) {
+            final long groupId = ContentUris.parseId(groupUri);
+            final Bundle result = new Bundle();
+
+            final Cursor cursor = contentResolver.query(groupUri,
+                    new String[]{
+                            Groups.TITLE, Groups.NOTES, Groups.GROUP_VISIBLE,
+                            Groups.ACCOUNT_TYPE, Groups.ACCOUNT_NAME, Groups.DATA_SET,
+                            Groups.SHOULD_SYNC
+                    },
+                    Groups.DELETED + "=?", new String[] { "0" }, null);
+            try {
+                if (cursor.moveToFirst()) {
+                    final ContentValues groupValues = new ContentValues();
+                    DatabaseUtils.cursorRowToContentValues(cursor, groupValues);
+                    result.putParcelable(KEY_GROUP_DATA, groupValues);
+                } else {
+                    // Group doesn't exist.
+                    return result;
+                }
+            } finally {
+                cursor.close();
+            }
+
+            final Cursor membersCursor = contentResolver.query(
+                    Data.CONTENT_URI, new String[] { Data.RAW_CONTACT_ID },
+                    Data.MIMETYPE + "=? AND " + GroupMembership.GROUP_ROW_ID + "=?",
+                    new String[] { GroupMembership.CONTENT_ITEM_TYPE, String.valueOf(groupId) }, null);
+            final long[] memberIds = new long[membersCursor.getCount()];
+            int i = 0;
+            while (membersCursor.moveToNext()) {
+                memberIds[i++] = membersCursor.getLong(0);
+            }
+            result.putLongArray(KEY_GROUP_MEMBERS, memberIds);
+            return result;
+        }
+
+        public Uri undoDeletion(Bundle deletedGroupData) {
+            final ContentValues groupData = deletedGroupData.getParcelable(KEY_GROUP_DATA);
+            if (groupData == null) {
+                return null;
+            }
+            final Uri groupUri = contentResolver.insert(Groups.CONTENT_URI, groupData);
+            final long groupId = ContentUris.parseId(groupUri);
+
+            final long[] memberIds = deletedGroupData.getLongArray(KEY_GROUP_MEMBERS);
+            if (memberIds == null) {
+                return groupUri;
+            }
+            final ContentValues[] memberInsertions = new ContentValues[memberIds.length];
+            for (int i = 0; i < memberIds.length; i++) {
+                memberInsertions[i] = new ContentValues();
+                memberInsertions[i].put(Data.RAW_CONTACT_ID, memberIds[i]);
+                memberInsertions[i].put(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE);
+                memberInsertions[i].put(GroupMembership.GROUP_ROW_ID, groupId);
+            }
+            final int inserted = contentResolver.bulkInsert(Data.CONTENT_URI, memberInsertions);
+            if (inserted != memberIds.length) {
+                Log.e(TAG, "Could not recover some members for group deletion undo");
+            }
+
+            return groupUri;
+        }
+
+        public Uri create(String title, AccountWithDataSet account) {
+            final ContentValues values = new ContentValues();
+            values.put(Groups.TITLE, title);
+            values.put(Groups.ACCOUNT_NAME, account.name);
+            values.put(Groups.ACCOUNT_TYPE, account.type);
+            values.put(Groups.DATA_SET, account.dataSet);
+            return contentResolver.insert(Groups.CONTENT_URI, values);
+        }
+
+        public int delete(Uri groupUri) {
+            return contentResolver.delete(groupUri, null, null);
+        }
+    }
+
+    /**
+     * Keeps track of which operations have been requested but have not yet finished for this
+     * service.
+     */
+    public static class State {
+        private final CopyOnWriteArrayList<Intent> mPending;
+
+        public State() {
+            mPending = new CopyOnWriteArrayList<>();
+        }
+
+        public State(Collection<Intent> pendingActions) {
+            mPending = new CopyOnWriteArrayList<>(pendingActions);
+        }
+
+        public boolean isIdle() {
+            return mPending.isEmpty();
+        }
+
+        public Intent getCurrentIntent() {
+            return mPending.isEmpty() ? null : mPending.get(0);
+        }
+
+        /**
+         * Returns the first intent requested that has the specified action or null if no intent
+         * with that action has been requested.
+         */
+        public Intent getNextIntentWithAction(String action) {
+            for (Intent intent : mPending) {
+                if (action.equals(intent.getAction())) {
+                    return intent;
+                }
+            }
+            return null;
+        }
+
+        public boolean isActionPending(String action) {
+            return getNextIntentWithAction(action) != null;
+        }
+
+        private void onFinish(Intent intent) {
+            if (mPending.isEmpty()) {
+                return;
+            }
+            final String action = mPending.get(0).getAction();
+            if (action.equals(intent.getAction())) {
+                mPending.remove(0);
+            }
+        }
+
+        private void onStart(Intent intent) {
+            if (intent.getAction() == null) {
+                return;
+            }
+            mPending.add(intent);
+        }
+    }
 }
diff --git a/src/com/android/contacts/ContactStatusUtil.java b/src/com/android/contacts/ContactStatusUtil.java
new file mode 100644
index 0000000..4aa24b0
--- /dev/null
+++ b/src/com/android/contacts/ContactStatusUtil.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2011 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;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.provider.ContactsContract.StatusUpdates;
+
+/**
+ * Provides static function to get default contact status message.
+ */
+public class ContactStatusUtil {
+
+    private static final String TAG = "ContactStatusUtil";
+
+    public static String getStatusString(Context context, int presence) {
+        Resources resources = context.getResources();
+        switch (presence) {
+            case StatusUpdates.AVAILABLE:
+                return resources.getString(R.string.status_available);
+            case StatusUpdates.IDLE:
+            case StatusUpdates.AWAY:
+                return resources.getString(R.string.status_away);
+            case StatusUpdates.DO_NOT_DISTURB:
+                return resources.getString(R.string.status_busy);
+            case StatusUpdates.OFFLINE:
+            case StatusUpdates.INVISIBLE:
+            default:
+                return null;
+        }
+    }
+
+}
diff --git a/src/com/android/contacts/ContactTileLoaderFactory.java b/src/com/android/contacts/ContactTileLoaderFactory.java
new file mode 100644
index 0000000..566ebae
--- /dev/null
+++ b/src/com/android/contacts/ContactTileLoaderFactory.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2011 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;
+
+import android.content.Context;
+import android.content.CursorLoader;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Contacts;
+
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+ * Used to create {@link CursorLoader}s to load different groups of
+ * {@link com.android.contacts.list.ContactTileView}.
+ */
+public final class ContactTileLoaderFactory {
+
+    public final static int CONTACT_ID = 0;
+    public final static int DISPLAY_NAME = 1;
+    public final static int STARRED = 2;
+    public final static int PHOTO_URI = 3;
+    public final static int LOOKUP_KEY = 4;
+    public final static int CONTACT_PRESENCE = 5;
+    public final static int CONTACT_STATUS = 6;
+
+    // Only used for StrequentPhoneOnlyLoader
+    public final static int PHONE_NUMBER = 5;
+    public final static int PHONE_NUMBER_TYPE = 6;
+    public final static int PHONE_NUMBER_LABEL = 7;
+    public final static int IS_DEFAULT_NUMBER = 8;
+    public final static int PINNED = 9;
+    // The _ID field returned for strequent items actually contains data._id instead of
+    // contacts._id because the query is performed on the data table. In order to obtain the
+    // contact id for strequent items, we thus have to use Phone.contact_id instead.
+    public final static int CONTACT_ID_FOR_DATA = 10;
+    public final static int DISPLAY_NAME_ALTERNATIVE = 11;
+
+    private static final String[] COLUMNS = new String[] {
+        Contacts._ID, // ..........................................0
+        Contacts.DISPLAY_NAME, // .................................1
+        Contacts.STARRED, // ......................................2
+        Contacts.PHOTO_URI, // ....................................3
+        Contacts.LOOKUP_KEY, // ...................................4
+        Contacts.CONTACT_PRESENCE, // .............................5
+        Contacts.CONTACT_STATUS, // ...............................6
+    };
+
+    /**
+     * Projection used for the {@link Contacts#CONTENT_STREQUENT_URI}
+     * query when {@link ContactsContract#STREQUENT_PHONE_ONLY} flag
+     * is set to true. The main difference is the lack of presence
+     * and status data and the addition of phone number and label.
+     */
+    @VisibleForTesting
+    public static final String[] COLUMNS_PHONE_ONLY = new String[] {
+        Contacts._ID, // ..........................................0
+        Contacts.DISPLAY_NAME_PRIMARY, // .........................1
+        Contacts.STARRED, // ......................................2
+        Contacts.PHOTO_URI, // ....................................3
+        Contacts.LOOKUP_KEY, // ...................................4
+        Phone.NUMBER, // ..........................................5
+        Phone.TYPE, // ............................................6
+        Phone.LABEL, // ...........................................7
+        Phone.IS_SUPER_PRIMARY, //.................................8
+        Contacts.PINNED, // .......................................9
+        Phone.CONTACT_ID, //.......................................10
+        Contacts.DISPLAY_NAME_ALTERNATIVE, // .....................11
+    };
+
+    private static final String STARRED_ORDER = Contacts.DISPLAY_NAME+" COLLATE NOCASE ASC";
+
+    public static CursorLoader createStrequentLoader(Context context) {
+        return new CursorLoader(context, Contacts.CONTENT_STREQUENT_URI, COLUMNS, null, null,
+                STARRED_ORDER);
+    }
+
+    public static CursorLoader createStrequentPhoneOnlyLoader(Context context) {
+        Uri uri = Contacts.CONTENT_STREQUENT_URI.buildUpon()
+                .appendQueryParameter(ContactsContract.STREQUENT_PHONE_ONLY, "true").build();
+
+        return new CursorLoader(context, uri, COLUMNS_PHONE_ONLY, null, null, null);
+    }
+
+    public static CursorLoader createStarredLoader(Context context) {
+        return new CursorLoader(context, Contacts.CONTENT_URI, COLUMNS, Contacts.STARRED + "=?",
+                new String[]{"1"},  STARRED_ORDER);
+    }
+
+    public static CursorLoader createFrequentLoader(Context context) {
+        return new CursorLoader(context, Contacts.CONTENT_FREQUENT_URI, COLUMNS,
+                 Contacts.STARRED + "=?", new String[]{"0"}, null);
+    }
+}
diff --git a/src/com/android/contacts/ContactsActivity.java b/src/com/android/contacts/ContactsActivity.java
index 82d1f98..87c0d62 100644
--- a/src/com/android/contacts/ContactsActivity.java
+++ b/src/com/android/contacts/ContactsActivity.java
@@ -25,8 +25,8 @@
 import android.os.Bundle;
 import android.view.View;
 
-import com.android.contacts.common.activity.TransactionSafeActivity;
-import com.android.contacts.common.testing.InjectedServices;
+import com.android.contacts.activities.TransactionSafeActivity;
+import com.android.contacts.testing.InjectedServices;
 
 /**
  * A common superclass for Contacts activities that handles application-wide services.
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index 0ba1f02..1507ace 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -29,14 +29,12 @@
 import android.provider.ContactsContract.Contacts;
 import android.util.Log;
 
-import com.android.contacts.common.testing.InjectedServices;
-import com.android.contacts.common.util.Constants;
-import com.android.contacts.commonbind.analytics.AnalyticsUtil;
+import com.android.contacts.testing.InjectedServices;
+import com.android.contacts.util.Constants;
+import com.android.contactsbind.analytics.AnalyticsUtil;
 
-import com.android.contacts.common.testing.NeededForTesting;
 import com.google.common.annotations.VisibleForTesting;
 
-@NeededForTesting
 public class ContactsApplication extends Application {
     private static final boolean ENABLE_LOADER_LOG = false; // Don't submit with true
     private static final boolean ENABLE_FRAGMENT_LOG = false; // Don't submit with true
diff --git a/src/com/android/contacts/ContactsJobService.java b/src/com/android/contacts/ContactsJobService.java
new file mode 100644
index 0000000..c60a0a7
--- /dev/null
+++ b/src/com/android/contacts/ContactsJobService.java
@@ -0,0 +1,44 @@
+/*
+ * 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;
+
+import android.app.job.JobParameters;
+import android.app.job.JobService;
+
+/**
+ * Service to run {@link android.app.job.JobScheduler} jobs.
+ */
+public class ContactsJobService extends JobService {
+
+    public static final int DYNAMIC_SHORTCUTS_JOB_ID = 1;
+
+    @Override
+    public boolean onStartJob(JobParameters jobParameters) {
+        switch (jobParameters.getJobId()) {
+            case DYNAMIC_SHORTCUTS_JOB_ID:
+                DynamicShortcuts.updateFromJob(this, jobParameters);
+                return true;
+            default:
+                break;
+        }
+        return false;
+    }
+
+    @Override
+    public boolean onStopJob(JobParameters jobParameters) {
+        return false;
+    }
+}
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
new file mode 100644
index 0000000..69890b4
--- /dev/null
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2009 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;
+
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Build;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.DisplayPhoto;
+import android.support.annotation.IntDef;
+import android.text.TextUtils;
+import android.util.Pair;
+
+import com.android.contacts.compat.ContactsCompat;
+import com.android.contacts.compat.DirectoryCompat;
+import com.android.contacts.model.dataitem.ImDataItem;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+public class ContactsUtils {
+    private static final String TAG = "ContactsUtils";
+
+    // Telecomm related schemes are in CallUtil
+    public static final String SCHEME_IMTO = "imto";
+    public static final String SCHEME_MAILTO = "mailto";
+    public static final String SCHEME_SMSTO = "smsto";
+
+    private static final int DEFAULT_THUMBNAIL_SIZE = 96;
+
+    private static int sThumbnailSize = -1;
+
+    public static final boolean FLAG_N_FEATURE = Build.VERSION.SDK_INT >= 24;
+
+    // TODO find a proper place for the canonical version of these
+    public interface ProviderNames {
+        String YAHOO = "Yahoo";
+        String GTALK = "GTalk";
+        String MSN = "MSN";
+        String ICQ = "ICQ";
+        String AIM = "AIM";
+        String XMPP = "XMPP";
+        String JABBER = "JABBER";
+        String SKYPE = "SKYPE";
+        String QQ = "QQ";
+    }
+
+    /**
+     * This looks up the provider name defined in
+     * ProviderNames from the predefined IM protocol id.
+     * This is used for interacting with the IM application.
+     *
+     * @param protocol the protocol ID
+     * @return the provider name the IM app uses for the given protocol, or null if no
+     * provider is defined for the given protocol
+     * @hide
+     */
+    public static String lookupProviderNameFromId(int protocol) {
+        switch (protocol) {
+            case Im.PROTOCOL_GOOGLE_TALK:
+                return ProviderNames.GTALK;
+            case Im.PROTOCOL_AIM:
+                return ProviderNames.AIM;
+            case Im.PROTOCOL_MSN:
+                return ProviderNames.MSN;
+            case Im.PROTOCOL_YAHOO:
+                return ProviderNames.YAHOO;
+            case Im.PROTOCOL_ICQ:
+                return ProviderNames.ICQ;
+            case Im.PROTOCOL_JABBER:
+                return ProviderNames.JABBER;
+            case Im.PROTOCOL_SKYPE:
+                return ProviderNames.SKYPE;
+            case Im.PROTOCOL_QQ:
+                return ProviderNames.QQ;
+        }
+        return null;
+    }
+
+
+    public static final long USER_TYPE_CURRENT = 0;
+    public static final long USER_TYPE_WORK = 1;
+
+    /**
+     * UserType indicates the user type of the contact. If the contact is from Work User (Work
+     * Profile in Android Multi-User System), it's {@link #USER_TYPE_WORK}, otherwise,
+     * {@link #USER_TYPE_CURRENT}. Please note that current user can be in work profile, where the
+     * dialer is running inside Work Profile.
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({USER_TYPE_CURRENT, USER_TYPE_WORK})
+    public @interface UserType {}
+
+    /**
+     * Test if the given {@link CharSequence} contains any graphic characters,
+     * first checking {@link TextUtils#isEmpty(CharSequence)} to handle null.
+     */
+    public static boolean isGraphic(CharSequence str) {
+        return !TextUtils.isEmpty(str) && TextUtils.isGraphic(str);
+    }
+
+    /**
+     * Returns true if two objects are considered equal.  Two null references are equal here.
+     */
+    public static boolean areObjectsEqual(Object a, Object b) {
+        return a == b || (a != null && a.equals(b));
+    }
+
+    /**
+     * Returns true if two {@link Intent}s are both null, or have the same action.
+     */
+    public static final boolean areIntentActionEqual(Intent a, Intent b) {
+        if (a == b) {
+            return true;
+        }
+        if (a == null || b == null) {
+            return false;
+        }
+        return TextUtils.equals(a.getAction(), b.getAction());
+    }
+
+    /**
+     * Returns the size (width and height) of thumbnail pictures as configured in the provider. This
+     * can safely be called from the UI thread, as the provider can serve this without performing
+     * a database access
+     */
+    public static int getThumbnailSize(Context context) {
+        if (sThumbnailSize == -1) {
+            final Cursor c = context.getContentResolver().query(
+                    DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI,
+                    new String[] { DisplayPhoto.THUMBNAIL_MAX_DIM }, null, null, null);
+            if (c != null) {
+                try {
+                    if (c.moveToFirst()) {
+                        sThumbnailSize = c.getInt(0);
+                    }
+                } finally {
+                    c.close();
+                }
+            }
+        }
+        return sThumbnailSize != -1 ? sThumbnailSize : DEFAULT_THUMBNAIL_SIZE;
+    }
+
+    private static Intent getCustomImIntent(ImDataItem im, int protocol) {
+        String host = im.getCustomProtocol();
+        final String data = im.getData();
+        if (TextUtils.isEmpty(data)) {
+            return null;
+        }
+        if (protocol != Im.PROTOCOL_CUSTOM) {
+            // Try bringing in a well-known host for specific protocols
+            host = ContactsUtils.lookupProviderNameFromId(protocol);
+        }
+        if (TextUtils.isEmpty(host)) {
+            return null;
+        }
+        final String authority = host.toLowerCase();
+        final Uri imUri = new Uri.Builder().scheme(SCHEME_IMTO).authority(
+                authority).appendPath(data).build();
+        final Intent intent = new Intent(Intent.ACTION_SENDTO, imUri);
+        return intent;
+    }
+
+    /**
+     * Returns the proper Intent for an ImDatItem. If available, a secondary intent is stored
+     * in the second Pair slot
+     */
+    public static Pair<Intent, Intent> buildImIntent(Context context, ImDataItem im) {
+        Intent intent = null;
+        Intent secondaryIntent = null;
+        final boolean isEmail = im.isCreatedFromEmail();
+
+        if (!isEmail && !im.isProtocolValid()) {
+            return new Pair<>(null, null);
+        }
+
+        final String data = im.getData();
+        if (TextUtils.isEmpty(data)) {
+            return new Pair<>(null, null);
+        }
+
+        final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol();
+
+        if (protocol == Im.PROTOCOL_GOOGLE_TALK) {
+            final int chatCapability = im.getChatCapability();
+            if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) {
+                intent = new Intent(Intent.ACTION_SENDTO,
+                                Uri.parse("xmpp:" + data + "?message"));
+                secondaryIntent = new Intent(Intent.ACTION_SENDTO,
+                        Uri.parse("xmpp:" + data + "?call"));
+            } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) {
+                // Allow Talking and Texting
+                intent =
+                    new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
+                secondaryIntent =
+                    new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
+            } else {
+                intent =
+                    new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
+            }
+        } else {
+            // Build an IM Intent
+            intent = getCustomImIntent(im, protocol);
+        }
+        return new Pair<>(intent, secondaryIntent);
+    }
+
+    /**
+     * Determine UserType from directory id and contact id.
+     *
+     * 3 types of query
+     *
+     * 1. 2 profile query: content://com.android.contacts/phone_lookup_enterprise/1234567890
+     * personal and work contact are mixed into one cursor. no directory id. contact_id indicates if
+     * it's work contact
+     *
+     * 2. work local query:
+     * content://com.android.contacts/phone_lookup_enterprise/1234567890?directory=1000000000
+     * either directory_id or contact_id is enough to identify work contact
+     *
+     * 3. work remote query:
+     * content://com.android.contacts/phone_lookup_enterprise/1234567890?directory=1000000003
+     * contact_id is random. only directory_id is available
+     *
+     * Summary: If directory_id is not null, always use directory_id to identify work contact.
+     * (which is the case here) Otherwise, use contact_id.
+     *
+     * @param directoryId directory id of ContactsProvider query
+     * @param contactId contact id
+     * @return UserType indicates the user type of the contact. A directory id or contact id larger
+     *         than a thredshold indicates that the contact is stored in Work Profile, but not in
+     *         current user. It's a contract by ContactsProvider and check by
+     *         Contacts.isEnterpriseDirectoryId and Contacts.isEnterpriseContactId. Currently, only
+     *         2 kinds of users can be detected from the directoryId and contactId as
+     *         ContactsProvider can only access current and work user's contacts
+     */
+    public static @UserType long determineUserType(Long directoryId, Long contactId) {
+        // First check directory id
+        if (directoryId != null) {
+            return DirectoryCompat.isEnterpriseDirectoryId(directoryId) ? USER_TYPE_WORK
+                    : USER_TYPE_CURRENT;
+        }
+        // Only check contact id if directory id is null
+        if (contactId != null && contactId != 0L
+                && ContactsCompat.isEnterpriseContactId(contactId)) {
+            return USER_TYPE_WORK;
+        } else {
+            return USER_TYPE_CURRENT;
+        }
+
+    }
+}
diff --git a/src/com/android/contacts/DynamicShortcuts.java b/src/com/android/contacts/DynamicShortcuts.java
new file mode 100644
index 0000000..e287e4a
--- /dev/null
+++ b/src/com/android/contacts/DynamicShortcuts.java
@@ -0,0 +1,599 @@
+/*
+ * 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;
+
+import android.annotation.TargetApi;
+import android.app.job.JobInfo;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.BitmapRegionDecoder;
+import android.graphics.Canvas;
+import android.graphics.Rect;
+import android.graphics.drawable.AdaptiveIconDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Build;
+import android.os.PersistableBundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.support.annotation.VisibleForTesting;
+import android.support.v4.content.LocalBroadcastManager;
+import android.support.v4.os.BuildCompat;
+import android.util.Log;
+
+import com.android.contacts.activities.RequestPermissionsActivity;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.util.BitmapUtil;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.util.PermissionsUtil;
+import com.android.contactsbind.experiments.Flags;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * This class creates and updates the dynamic shortcuts displayed on the Nexus launcher for the
+ * Contacts app.
+ *
+ * Currently it adds shortcuts for the top 3 contacts in the {@link Contacts#CONTENT_STREQUENT_URI}
+ *
+ * Usage: DynamicShortcuts.initialize should be called during Application creation. This will
+ * schedule a Job to keep the shortcuts up-to-date so no further interactions should be necessary.
+ */
+@TargetApi(Build.VERSION_CODES.N_MR1)
+public class DynamicShortcuts {
+    private static final String TAG = "DynamicShortcuts";
+
+    // Must be the same as shortcutId in res/xml/shortcuts.xml
+    // Note: This doesn't fit very well because this is a "static" shortcut but it's still the most
+    // sensible place to put it right now.
+    public static final String SHORTCUT_ADD_CONTACT = "shortcut-add-contact";
+
+    // Note the Nexus launcher automatically truncates shortcut labels if they exceed these limits
+    // however, we implement our own truncation in case the shortcut is shown on a launcher that
+    // has different behavior
+    private static final int SHORT_LABEL_MAX_LENGTH = 12;
+    private static final int LONG_LABEL_MAX_LENGTH = 30;
+    private static final int MAX_SHORTCUTS = 3;
+
+    private static final String EXTRA_SHORTCUT_TYPE = "extraShortcutType";
+
+    // Because pinned shortcuts persist across app upgrades these values should not be changed
+    // though new ones may be added
+    private static final int SHORTCUT_TYPE_UNKNOWN = 0;
+    private static final int SHORTCUT_TYPE_CONTACT_URI = 1;
+    private static final int SHORTCUT_TYPE_ACTION_URI = 2;
+
+    // The spec specifies that it should be 44dp @ xxxhdpi
+    // Note that ShortcutManager.getIconMaxWidth and ShortcutManager.getMaxHeight return different
+    // (larger) values.
+    private static final int RECOMMENDED_ICON_PIXEL_LENGTH = 176;
+
+    @VisibleForTesting
+    static final String[] PROJECTION = new String[] {
+            Contacts._ID, Contacts.LOOKUP_KEY, Contacts.DISPLAY_NAME_PRIMARY
+    };
+
+    private final Context mContext;
+    private final ContentResolver mContentResolver;
+    private final ShortcutManager mShortcutManager;
+    private int mShortLabelMaxLength = SHORT_LABEL_MAX_LENGTH;
+    private int mLongLabelMaxLength = LONG_LABEL_MAX_LENGTH;
+    private final int mContentChangeMinUpdateDelay;
+    private final int mContentChangeMaxUpdateDelay;
+    private final JobScheduler mJobScheduler;
+
+    public DynamicShortcuts(Context context) {
+        this(context, context.getContentResolver(), (ShortcutManager)
+                context.getSystemService(Context.SHORTCUT_SERVICE),
+                (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE));
+    }
+
+    @VisibleForTesting
+    public DynamicShortcuts(Context context, ContentResolver contentResolver,
+            ShortcutManager shortcutManager, JobScheduler jobScheduler) {
+        mContext = context;
+        mContentResolver = contentResolver;
+        mShortcutManager = shortcutManager;
+        mJobScheduler = jobScheduler;
+        mContentChangeMinUpdateDelay = Flags.getInstance()
+                .getInteger(Experiments.DYNAMIC_MIN_CONTENT_CHANGE_UPDATE_DELAY_MILLIS);
+        mContentChangeMaxUpdateDelay = Flags.getInstance()
+                .getInteger(Experiments.DYNAMIC_MAX_CONTENT_CHANGE_UPDATE_DELAY_MILLIS);
+    }
+
+    @VisibleForTesting
+    void setShortLabelMaxLength(int length) {
+        this.mShortLabelMaxLength = length;
+    }
+
+    @VisibleForTesting
+    void setLongLabelMaxLength(int length) {
+        this.mLongLabelMaxLength = length;
+    }
+
+    @VisibleForTesting
+    void refresh() {
+        // Guard here in addition to initialize because this could be run by the JobScheduler
+        // after permissions are revoked (maybe)
+        if (!hasRequiredPermissions()) return;
+
+        final List<ShortcutInfo> shortcuts = getStrequentShortcuts();
+        mShortcutManager.setDynamicShortcuts(shortcuts);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "set dynamic shortcuts " + shortcuts);
+        }
+        updatePinned();
+    }
+
+    @VisibleForTesting
+    void updatePinned() {
+        final List<ShortcutInfo> updates = new ArrayList<>();
+        final List<String> removedIds = new ArrayList<>();
+        final List<String> enable = new ArrayList<>();
+
+        for (ShortcutInfo shortcut : mShortcutManager.getPinnedShortcuts()) {
+            final PersistableBundle extras = shortcut.getExtras();
+
+            if (extras == null || extras.getInt(EXTRA_SHORTCUT_TYPE, SHORTCUT_TYPE_UNKNOWN) !=
+                    SHORTCUT_TYPE_CONTACT_URI) {
+                continue;
+            }
+
+            // The contact ID may have changed but that's OK because it is just an optimization
+            final long contactId = extras.getLong(Contacts._ID);
+
+            final ShortcutInfo update = createShortcutForUri(
+                    Contacts.getLookupUri(contactId, shortcut.getId()));
+            if (update != null) {
+                updates.add(update);
+                if (!shortcut.isEnabled()) {
+                    // Handle the case that a contact is disabled because it doesn't exist but
+                    // later is created (for instance by a sync)
+                    enable.add(update.getId());
+                }
+            } else if (shortcut.isEnabled()) {
+                removedIds.add(shortcut.getId());
+            }
+        }
+
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "updating " + updates);
+            Log.d(TAG, "enabling " + enable);
+            Log.d(TAG, "disabling " + removedIds);
+        }
+
+        mShortcutManager.updateShortcuts(updates);
+        mShortcutManager.enableShortcuts(enable);
+        mShortcutManager.disableShortcuts(removedIds,
+                mContext.getString(R.string.dynamic_shortcut_contact_removed_message));
+    }
+
+    private ShortcutInfo createShortcutForUri(Uri contactUri) {
+        final Cursor cursor = mContentResolver.query(contactUri, PROJECTION, null, null, null);
+        if (cursor == null) return null;
+
+        try {
+            if (cursor.moveToFirst()) {
+                return createShortcutFromRow(cursor);
+            }
+        } finally {
+            cursor.close();
+        }
+        return null;
+    }
+
+    public List<ShortcutInfo> getStrequentShortcuts() {
+        // The limit query parameter doesn't seem to work for this uri but we'll leave it because in
+        // case it does work on some phones or platform versions.
+        final Uri uri = Contacts.CONTENT_STREQUENT_URI.buildUpon()
+                .appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY,
+                        String.valueOf(MAX_SHORTCUTS))
+                .build();
+        final Cursor cursor = mContentResolver.query(uri, PROJECTION, null, null, null);
+
+        if (cursor == null) return Collections.emptyList();
+
+        final List<ShortcutInfo> result = new ArrayList<>();
+
+        try {
+            int i = 0;
+            while (i < MAX_SHORTCUTS && cursor.moveToNext()) {
+                final ShortcutInfo shortcut = createShortcutFromRow(cursor);
+                if (shortcut == null) {
+                    continue;
+                }
+                result.add(shortcut);
+                i++;
+            }
+        } finally {
+            cursor.close();
+        }
+        return result;
+    }
+
+
+    @VisibleForTesting
+    ShortcutInfo createShortcutFromRow(Cursor cursor) {
+        final ShortcutInfo.Builder builder = builderForContactShortcut(cursor);
+        if (builder == null) {
+            return null;
+        }
+        addIconForContact(cursor, builder);
+        return builder.build();
+    }
+
+    @VisibleForTesting
+    ShortcutInfo.Builder builderForContactShortcut(Cursor cursor) {
+        final long id = cursor.getLong(0);
+        final String lookupKey = cursor.getString(1);
+        final String displayName = cursor.getString(2);
+        return builderForContactShortcut(id, lookupKey, displayName);
+    }
+
+    @VisibleForTesting
+    ShortcutInfo.Builder builderForContactShortcut(long id, String lookupKey, String displayName) {
+        if (lookupKey == null || displayName == null) {
+            return null;
+        }
+        final PersistableBundle extras = new PersistableBundle();
+        extras.putLong(Contacts._ID, id);
+        extras.putInt(EXTRA_SHORTCUT_TYPE, SHORTCUT_TYPE_CONTACT_URI);
+
+        final ShortcutInfo.Builder builder = new ShortcutInfo.Builder(mContext, lookupKey)
+                .setIntent(ImplicitIntentsUtil.getIntentForQuickContactLauncherShortcut(mContext,
+                        Contacts.getLookupUri(id, lookupKey)))
+                .setDisabledMessage(mContext.getString(R.string.dynamic_shortcut_disabled_message))
+                .setExtras(extras);
+
+        setLabel(builder, displayName);
+        return builder;
+    }
+
+    @VisibleForTesting
+    ShortcutInfo getActionShortcutInfo(String id, String label, Intent action, Icon icon) {
+        if (id == null || label == null) {
+            return null;
+        }
+        final PersistableBundle extras = new PersistableBundle();
+        extras.putInt(EXTRA_SHORTCUT_TYPE, SHORTCUT_TYPE_ACTION_URI);
+
+        final ShortcutInfo.Builder builder = new ShortcutInfo.Builder(mContext, id)
+                .setIntent(action)
+                .setIcon(icon)
+                .setDisabledMessage(mContext.getString(R.string.dynamic_shortcut_disabled_message));
+
+        setLabel(builder, label);
+        return builder.build();
+    }
+
+    public ShortcutInfo getQuickContactShortcutInfo(long id, String lookupKey, String displayName) {
+        final ShortcutInfo.Builder builder = builderForContactShortcut(id, lookupKey, displayName);
+        addIconForContact(id, lookupKey, displayName, builder);
+        return builder.build();
+    }
+
+    private void setLabel(ShortcutInfo.Builder builder, String label) {
+        if (label.length() < mLongLabelMaxLength) {
+            builder.setLongLabel(label);
+        } else {
+            builder.setLongLabel(label.substring(0, mLongLabelMaxLength - 1).trim() + "…");
+        }
+
+        if (label.length() < mShortLabelMaxLength) {
+            builder.setShortLabel(label);
+        } else {
+            builder.setShortLabel(label.substring(0, mShortLabelMaxLength - 1).trim() + "…");
+        }
+    }
+
+    private void addIconForContact(Cursor cursor, ShortcutInfo.Builder builder) {
+        final long id = cursor.getLong(0);
+        final String lookupKey = cursor.getString(1);
+        final String displayName = cursor.getString(2);
+        addIconForContact(id, lookupKey, displayName, builder);
+    }
+
+    private void addIconForContact(long id, String lookupKey, String displayName,
+            ShortcutInfo.Builder builder) {
+        Bitmap bitmap = getContactPhoto(id);
+        if (bitmap == null) {
+            bitmap = getFallbackAvatar(displayName, lookupKey);
+        }
+        final Icon icon;
+        if (BuildCompat.isAtLeastO()) {
+            icon = Icon.createWithAdaptiveBitmap(bitmap);
+        } else {
+            icon = Icon.createWithBitmap(bitmap);
+        }
+
+        builder.setIcon(icon);
+    }
+
+    private Bitmap getContactPhoto(long id) {
+        final InputStream photoStream = Contacts.openContactPhotoInputStream(
+                mContext.getContentResolver(),
+                ContentUris.withAppendedId(Contacts.CONTENT_URI, id), true);
+
+        if (photoStream == null) return null;
+        try {
+            final Bitmap bitmap = decodeStreamForShortcut(photoStream);
+            photoStream.close();
+            return bitmap;
+        } catch (IOException e) {
+            Log.e(TAG, "Failed to decode contact photo for shortcut. ID=" + id, e);
+            return null;
+        } finally {
+            try {
+                photoStream.close();
+            } catch (IOException e) {
+                // swallow
+            }
+        }
+    }
+
+    private Bitmap decodeStreamForShortcut(InputStream stream) throws IOException {
+        final BitmapRegionDecoder bitmapDecoder = BitmapRegionDecoder.newInstance(stream, false);
+
+        final int sourceWidth = bitmapDecoder.getWidth();
+        final int sourceHeight = bitmapDecoder.getHeight();
+
+        final int iconMaxWidth = mShortcutManager.getIconMaxWidth();
+        final int iconMaxHeight = mShortcutManager.getIconMaxHeight();
+
+        final int sampleSize = Math.min(
+                BitmapUtil.findOptimalSampleSize(sourceWidth,
+                        RECOMMENDED_ICON_PIXEL_LENGTH),
+                BitmapUtil.findOptimalSampleSize(sourceHeight,
+                        RECOMMENDED_ICON_PIXEL_LENGTH));
+        final BitmapFactory.Options opts = new BitmapFactory.Options();
+        opts.inSampleSize = sampleSize;
+
+        final int scaledWidth = sourceWidth / opts.inSampleSize;
+        final int scaledHeight = sourceHeight / opts.inSampleSize;
+
+        final int targetWidth = Math.min(scaledWidth, iconMaxWidth);
+        final int targetHeight = Math.min(scaledHeight, iconMaxHeight);
+
+        // Make it square.
+        final int targetSize = Math.min(targetWidth, targetHeight);
+
+        // The region is defined in the coordinates of the source image then the sampling is
+        // done on the extracted region.
+        final int prescaledXOffset = ((scaledWidth - targetSize) * opts.inSampleSize) / 2;
+        final int prescaledYOffset = ((scaledHeight - targetSize) * opts.inSampleSize) / 2;
+
+        final Bitmap bitmap = bitmapDecoder.decodeRegion(new Rect(
+                prescaledXOffset, prescaledYOffset,
+                sourceWidth - prescaledXOffset, sourceHeight - prescaledYOffset
+        ), opts);
+        bitmapDecoder.recycle();
+
+        if (!BuildCompat.isAtLeastO()) {
+            return BitmapUtil.getRoundedBitmap(bitmap, targetSize, targetSize);
+        }
+
+        // If on O or higher, add padding around the bitmap.
+        final int paddingW = (int) (bitmap.getWidth() *
+                AdaptiveIconDrawable.getExtraInsetFraction());
+        final int paddingH = (int) (bitmap.getHeight() *
+                AdaptiveIconDrawable.getExtraInsetFraction());
+
+        final Bitmap scaledBitmap = Bitmap.createBitmap(bitmap.getWidth() + paddingW,
+                bitmap.getHeight() + paddingH, bitmap.getConfig());
+
+        final Canvas scaledCanvas = new Canvas(scaledBitmap);
+        scaledCanvas.drawBitmap(bitmap, paddingW / 2, paddingH / 2, null);
+
+        return scaledBitmap;
+    }
+
+    private Bitmap getFallbackAvatar(String displayName, String lookupKey) {
+        final int width;
+        final int height;
+        final int padding;
+        if (BuildCompat.isAtLeastO()) {
+            // Add padding on >= O
+            padding = (int) (RECOMMENDED_ICON_PIXEL_LENGTH *
+                    AdaptiveIconDrawable.getExtraInsetFraction());
+            width = RECOMMENDED_ICON_PIXEL_LENGTH + padding;
+            height = RECOMMENDED_ICON_PIXEL_LENGTH + padding;
+        } else {
+            padding = 0;
+            width = RECOMMENDED_ICON_PIXEL_LENGTH;
+            height = RECOMMENDED_ICON_PIXEL_LENGTH;
+        }
+
+        final ContactPhotoManager.DefaultImageRequest request =
+                new ContactPhotoManager.DefaultImageRequest(displayName, lookupKey, true);
+        final Drawable avatar = ContactPhotoManager.getDefaultAvatarDrawableForContact(
+                mContext.getResources(), true, request);
+        final Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+        // The avatar won't draw unless it thinks it is visible
+        avatar.setVisible(true, true);
+        final Canvas canvas = new Canvas(result);
+        avatar.setBounds(padding, padding, width - padding, height - padding);
+        avatar.draw(canvas);
+        return result;
+    }
+
+    @VisibleForTesting
+    void handleFlagDisabled() {
+        removeAllShortcuts();
+        mJobScheduler.cancel(ContactsJobService.DYNAMIC_SHORTCUTS_JOB_ID);
+    }
+
+    private void removeAllShortcuts() {
+        mShortcutManager.removeAllDynamicShortcuts();
+
+        final List<ShortcutInfo> pinned = mShortcutManager.getPinnedShortcuts();
+        final List<String> ids = new ArrayList<>(pinned.size());
+        for (ShortcutInfo shortcut : pinned) {
+            ids.add(shortcut.getId());
+        }
+        mShortcutManager.disableShortcuts(ids, mContext
+                .getString(R.string.dynamic_shortcut_disabled_message));
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "DynamicShortcuts have been removed.");
+        }
+    }
+
+    @VisibleForTesting
+    void scheduleUpdateJob() {
+        final JobInfo job = new JobInfo.Builder(
+                ContactsJobService.DYNAMIC_SHORTCUTS_JOB_ID,
+                new ComponentName(mContext, ContactsJobService.class))
+                // We just observe all changes to contacts. It would be better to be more granular
+                // but CP2 only notifies using this URI anyway so there isn't any point in adding
+                // that complexity.
+                .addTriggerContentUri(new JobInfo.TriggerContentUri(ContactsContract.AUTHORITY_URI,
+                        JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS))
+                .setTriggerContentUpdateDelay(mContentChangeMinUpdateDelay)
+                .setTriggerContentMaxDelay(mContentChangeMaxUpdateDelay)
+                .build();
+        mJobScheduler.schedule(job);
+    }
+
+    void updateInBackground() {
+        new ShortcutUpdateTask(this).execute();
+    }
+
+    public synchronized static void initialize(Context context) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            final Flags flags = Flags.getInstance();
+            Log.d(TAG, "DyanmicShortcuts.initialize\nVERSION >= N_MR1? " +
+                    (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) +
+                    "\nisJobScheduled? " +
+                    (CompatUtils.isLauncherShortcutCompatible() && isJobScheduled(context)) +
+                    "\nminDelay=" +
+                    flags.getInteger(Experiments.DYNAMIC_MIN_CONTENT_CHANGE_UPDATE_DELAY_MILLIS) +
+                    "\nmaxDelay=" +
+                    flags.getInteger(Experiments.DYNAMIC_MAX_CONTENT_CHANGE_UPDATE_DELAY_MILLIS));
+        }
+
+        if (!CompatUtils.isLauncherShortcutCompatible()) return;
+
+        final DynamicShortcuts shortcuts = new DynamicShortcuts(context);
+
+        if (!shortcuts.hasRequiredPermissions()) {
+            final IntentFilter filter = new IntentFilter();
+            filter.addAction(RequestPermissionsActivity.BROADCAST_PERMISSIONS_GRANTED);
+            LocalBroadcastManager.getInstance(shortcuts.mContext).registerReceiver(
+                    new PermissionsGrantedReceiver(), filter);
+        } else if (!isJobScheduled(context)) {
+            // Update the shortcuts. If the job is already scheduled then either the app is being
+            // launched to run the job in which case the shortcuts will get updated when it runs or
+            // it has been launched for some other reason and the data we care about for shortcuts
+            // hasn't changed. Because the job reschedules itself after completion this check
+            // essentially means that this will run on each app launch that happens after a reboot.
+            // Note: the task schedules the job after completing.
+            new ShortcutUpdateTask(shortcuts).execute();
+        }
+    }
+
+    @VisibleForTesting
+    public static void reset(Context context) {
+        final JobScheduler jobScheduler =
+                (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+        jobScheduler.cancel(ContactsJobService.DYNAMIC_SHORTCUTS_JOB_ID);
+
+        if (!CompatUtils.isLauncherShortcutCompatible()) {
+            return;
+        }
+        new DynamicShortcuts(context).removeAllShortcuts();
+    }
+
+    @VisibleForTesting
+    boolean hasRequiredPermissions() {
+        return PermissionsUtil.hasContactsPermissions(mContext);
+    }
+
+    public static void updateFromJob(final JobService service, final JobParameters jobParams) {
+        new ShortcutUpdateTask(new DynamicShortcuts(service)) {
+            @Override
+            protected void onPostExecute(Void aVoid) {
+                // Must call super first which will reschedule the job before we call jobFinished
+                super.onPostExecute(aVoid);
+                service.jobFinished(jobParams, false);
+            }
+        }.execute();
+    }
+
+    @VisibleForTesting
+    public static boolean isJobScheduled(Context context) {
+        final JobScheduler scheduler = (JobScheduler) context
+                .getSystemService(Context.JOB_SCHEDULER_SERVICE);
+        return scheduler.getPendingJob(ContactsJobService.DYNAMIC_SHORTCUTS_JOB_ID) != null;
+    }
+
+    public static void reportShortcutUsed(Context context, String lookupKey) {
+        if (!CompatUtils.isLauncherShortcutCompatible() || lookupKey == null) return;
+        final ShortcutManager shortcutManager = (ShortcutManager) context
+                .getSystemService(Context.SHORTCUT_SERVICE);
+        shortcutManager.reportShortcutUsed(lookupKey);
+    }
+
+    private static class ShortcutUpdateTask extends AsyncTask<Void, Void, Void> {
+        private DynamicShortcuts mDynamicShortcuts;
+
+        public ShortcutUpdateTask(DynamicShortcuts shortcuts) {
+            mDynamicShortcuts = shortcuts;
+        }
+
+        @Override
+        protected Void doInBackground(Void... voids) {
+            mDynamicShortcuts.refresh();
+            return null;
+        }
+
+        @Override
+        protected void onPostExecute(Void aVoid) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "ShorcutUpdateTask.onPostExecute");
+            }
+            // The shortcuts may have changed so update the job so that we are observing the
+            // correct Uris
+            mDynamicShortcuts.scheduleUpdateJob();
+        }
+    }
+
+    private static class PermissionsGrantedReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            // Clear the receiver.
+            LocalBroadcastManager.getInstance(context).unregisterReceiver(this);
+            DynamicShortcuts.initialize(context);
+        }
+    }
+}
diff --git a/src/com/android/contacts/Experiments.java b/src/com/android/contacts/Experiments.java
new file mode 100644
index 0000000..b53ced3
--- /dev/null
+++ b/src/com/android/contacts/Experiments.java
@@ -0,0 +1,49 @@
+/*
+ * 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;
+
+/**
+ * Experiment flag names.
+ */
+public final class Experiments {
+
+    /**
+     * Experiment to enable device account detection using CP2 queries
+     */
+    public static final String CP2_DEVICE_ACCOUNT_DETECTION_ENABLED =
+            "Account__cp2_device_account_detection_enabled";
+
+    /**
+     * Flags for maximum content update time
+     */
+    public static final String DYNAMIC_MAX_CONTENT_CHANGE_UPDATE_DELAY_MILLIS =
+            "Shortcuts__dynamic_max_content_change_update_delay_millis";
+
+    /**
+     * Flags for minimum content update time
+     */
+    public static final String DYNAMIC_MIN_CONTENT_CHANGE_UPDATE_DELAY_MILLIS =
+            "Shortcuts__dynamic_min_content_change_update_delay_millis";
+
+    /**
+     * Flags for maximum time to show spinner for a contacts sync.
+     */
+    public static final String PULL_TO_REFRESH_CANCEL_REFRESH_MILLIS =
+            "PullToRefresh__cancel_refresh_millis";
+
+    private Experiments() {
+    }
+}
diff --git a/src/com/android/contacts/GeoUtil.java b/src/com/android/contacts/GeoUtil.java
new file mode 100644
index 0000000..a4c2ed8
--- /dev/null
+++ b/src/com/android/contacts/GeoUtil.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2012 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;
+
+import android.app.Application;
+import android.content.Context;
+
+import com.android.contacts.location.CountryDetector;
+
+import com.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+import com.google.i18n.phonenumbers.Phonenumber;
+import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
+
+import java.util.Locale;
+
+/**
+ * Static methods related to Geo.
+ */
+public class GeoUtil {
+
+    /**
+     * Returns the country code of the country the user is currently in. Before calling this
+     * method, make sure that {@link CountryDetector#initialize(Context)} has already been called
+     * in {@link Application#onCreate()}.
+     * @return The ISO 3166-1 two letters country code of the country the user
+     *         is in.
+     */
+    public static String getCurrentCountryIso(Context context) {
+        // The {@link CountryDetector} should never return null so this is safe to return as-is.
+        return CountryDetector.getInstance(context).getCurrentCountryIso();
+    }
+
+    public static String getGeocodedLocationFor(Context context,  String phoneNumber) {
+        final PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
+        final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
+        try {
+            final Phonenumber.PhoneNumber structuredPhoneNumber =
+                    phoneNumberUtil.parse(phoneNumber, getCurrentCountryIso(context));
+            final Locale locale = context.getResources().getConfiguration().locale;
+            return geocoder.getDescriptionForNumber(structuredPhoneNumber, locale);
+        } catch (NumberParseException e) {
+            return null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/GroupListLoader.java b/src/com/android/contacts/GroupListLoader.java
index 2589c9b..51695f5 100644
--- a/src/com/android/contacts/GroupListLoader.java
+++ b/src/com/android/contacts/GroupListLoader.java
@@ -20,6 +20,8 @@
 import android.net.Uri;
 import android.provider.ContactsContract.Groups;
 
+import com.android.contacts.group.GroupUtil;
+
 /**
  * Group loader for the group list that includes details such as the number of contacts per group
  * and number of groups per account. This list is sorted by account type, account name, where the
@@ -27,7 +29,6 @@
  * groups.
  */
 public final class GroupListLoader extends CursorLoader {
-
     private final static String[] COLUMNS = new String[] {
         Groups.ACCOUNT_NAME,
         Groups.ACCOUNT_TYPE,
@@ -35,6 +36,8 @@
         Groups._ID,
         Groups.TITLE,
         Groups.SUMMARY_COUNT,
+        Groups.GROUP_IS_READ_ONLY,
+        Groups.SYSTEM_ID,
     };
 
     public final static int ACCOUNT_NAME = 0;
@@ -43,14 +46,17 @@
     public final static int GROUP_ID = 3;
     public final static int TITLE = 4;
     public final static int MEMBER_COUNT = 5;
+    public final static int IS_READ_ONLY = 6;
+    public final static int SYSTEM_ID = 7;
 
     private static final Uri GROUP_LIST_URI = Groups.CONTENT_SUMMARY_URI;
 
     public GroupListLoader(Context context) {
-        super(context, GROUP_LIST_URI, COLUMNS, Groups.ACCOUNT_TYPE + " NOT NULL AND "
-                + Groups.ACCOUNT_NAME + " NOT NULL AND " + Groups.AUTO_ADD + "=0 AND " +
-                Groups.FAVORITES + "=0 AND " + Groups.DELETED + "=0", null,
-                Groups.ACCOUNT_TYPE + ", " + Groups.ACCOUNT_NAME + ", " + Groups.DATA_SET + ", " +
-                Groups.TITLE + " COLLATE LOCALIZED ASC");
+        super(context,
+                GROUP_LIST_URI,
+                COLUMNS,
+                GroupUtil.DEFAULT_SELECTION,
+                null,
+                GroupUtil.getGroupsSortOrder());
     }
 }
diff --git a/src/com/android/contacts/GroupMemberLoader.java b/src/com/android/contacts/GroupMemberLoader.java
deleted file mode 100644
index 6001f2c..0000000
--- a/src/com/android/contacts/GroupMemberLoader.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2011 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;
-
-import android.content.Context;
-import android.content.CursorLoader;
-import android.net.Uri;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.Directory;
-
-import com.android.contacts.common.preference.ContactsPreferences;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Group Member loader. Loads all group members from the given groupId
- */
-public final class GroupMemberLoader extends CursorLoader {
-
-    public static class GroupEditorQuery {
-        private static final String[] PROJECTION = new String[] {
-            Data.CONTACT_ID,                        // 0
-            Data.RAW_CONTACT_ID,                    // 1
-            Data.DISPLAY_NAME_PRIMARY,              // 2
-            Data.PHOTO_URI,                         // 3
-            Data.LOOKUP_KEY,                        // 4
-        };
-
-        public static final int CONTACT_ID                   = 0;
-        public static final int RAW_CONTACT_ID               = 1;
-        public static final int CONTACT_DISPLAY_NAME_PRIMARY = 2;
-        public static final int CONTACT_PHOTO_URI            = 3;
-        public static final int CONTACT_LOOKUP_KEY           = 4;
-    }
-
-    public static class GroupDetailQuery {
-        private static final String[] PROJECTION = new String[] {
-            Data.CONTACT_ID,                        // 0
-            Data.PHOTO_URI,                         // 1
-            Data.LOOKUP_KEY,                        // 2
-            Data.DISPLAY_NAME_PRIMARY,              // 3
-            Data.CONTACT_PRESENCE,                  // 4
-            Data.CONTACT_STATUS,                    // 5
-        };
-
-        public static final int CONTACT_ID                   = 0;
-        public static final int CONTACT_PHOTO_URI            = 1;
-        public static final int CONTACT_LOOKUP_KEY           = 2;
-        public static final int CONTACT_DISPLAY_NAME_PRIMARY = 3;
-        public static final int CONTACT_PRESENCE_STATUS      = 4;
-        public static final int CONTACT_STATUS               = 5;
-    }
-
-    private final long mGroupId;
-
-    /**
-     * @return GroupMemberLoader object which can be used in group editor.
-     */
-    public static GroupMemberLoader constructLoaderForGroupEditorQuery(
-            Context context, long groupId) {
-        return new GroupMemberLoader(context, groupId, GroupEditorQuery.PROJECTION);
-    }
-
-    /**
-     * @return GroupMemberLoader object used in group detail page.
-     */
-    public static GroupMemberLoader constructLoaderForGroupDetailQuery(
-            Context context, long groupId) {
-        return new GroupMemberLoader(context, groupId, GroupDetailQuery.PROJECTION);
-    }
-
-    private GroupMemberLoader(Context context, long groupId, String[] projection) {
-        super(context);
-        mGroupId = groupId;
-        setUri(createUri());
-        setProjection(projection);
-        setSelection(createSelection());
-        setSelectionArgs(createSelectionArgs());
-
-        ContactsPreferences prefs = new ContactsPreferences(context);
-        if (prefs.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
-            setSortOrder(Contacts.SORT_KEY_PRIMARY);
-        } else {
-            setSortOrder(Contacts.SORT_KEY_ALTERNATIVE);
-        }
-    }
-
-    private Uri createUri() {
-        Uri uri = Data.CONTENT_URI;
-        uri = uri.buildUpon().appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
-                String.valueOf(Directory.DEFAULT)).build();
-        return uri;
-    }
-
-    private String createSelection() {
-        StringBuilder selection = new StringBuilder();
-        selection.append(Data.MIMETYPE + "=?" + " AND " + GroupMembership.GROUP_ROW_ID + "=?");
-        return selection.toString();
-    }
-
-    private String[] createSelectionArgs() {
-        List<String> selectionArgs = new ArrayList<String>();
-        selectionArgs.add(GroupMembership.CONTENT_ITEM_TYPE);
-        selectionArgs.add(String.valueOf(mGroupId));
-        return selectionArgs.toArray(new String[0]);
-    }
-}
diff --git a/src/com/android/contacts/GroupMetaDataLoader.java b/src/com/android/contacts/GroupMetaDataLoader.java
index 8344041..200d919 100644
--- a/src/com/android/contacts/GroupMetaDataLoader.java
+++ b/src/com/android/contacts/GroupMetaDataLoader.java
@@ -20,13 +20,15 @@
 import android.net.Uri;
 import android.provider.ContactsContract.Groups;
 
+import com.android.contacts.group.GroupUtil;
+
 /**
  * Group meta-data loader. Loads all groups or just a single group from the
  * database (if given a {@link Uri}).
  */
 public final class GroupMetaDataLoader extends CursorLoader {
 
-    private final static String[] COLUMNS = new String[] {
+    public final static String[] COLUMNS = new String[] {
         Groups.ACCOUNT_NAME,
         Groups.ACCOUNT_TYPE,
         Groups.DATA_SET,
@@ -49,8 +51,13 @@
     public final static int DELETED = 8;
 
     public GroupMetaDataLoader(Context context, Uri groupUri) {
-        super(context, ensureIsGroupUri(groupUri), COLUMNS, Groups.ACCOUNT_TYPE + " NOT NULL AND "
-                + Groups.ACCOUNT_NAME + " NOT NULL", null, null);
+        super(context, ensureIsGroupUri(groupUri), COLUMNS, GroupUtil.DEFAULT_SELECTION, null,
+                GroupUtil.getGroupsSortOrder());
+    }
+
+    public GroupMetaDataLoader(Context context, Uri groupUri, String selection) {
+        super(context, ensureIsGroupUri(groupUri), COLUMNS, selection, null,
+                GroupUtil.getGroupsSortOrder());
     }
 
     /**
@@ -62,7 +69,7 @@
         if (groupUri == null) {
             throw new IllegalArgumentException("Uri must not be null");
         }
-        if (!groupUri.toString().startsWith(Groups.CONTENT_URI.toString())) {
+        if (!GroupUtil.isGroupUri(groupUri)) {
             throw new IllegalArgumentException("Invalid group Uri: " + groupUri);
         }
         return groupUri;
diff --git a/src/com/android/contacts/MoreContactUtils.java b/src/com/android/contacts/MoreContactUtils.java
new file mode 100644
index 0000000..7f000ec
--- /dev/null
+++ b/src/com/android/contacts/MoreContactUtils.java
@@ -0,0 +1,243 @@
+/*
+ * Copyright (C) 2012 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;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Rect;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.contacts.model.account.AccountType;
+
+import com.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+
+/**
+ * Shared static contact utility methods.
+ */
+public class MoreContactUtils {
+
+    private static final String WAIT_SYMBOL_AS_STRING = String.valueOf(PhoneNumberUtils.WAIT);
+
+    /**
+     * Returns true if two data with mimetypes which represent values in contact entries are
+     * considered equal for collapsing in the GUI. For caller-id, use
+     * {@link android.telephony.PhoneNumberUtils#compare(android.content.Context, String, String)}
+     * instead
+     */
+    public static boolean shouldCollapse(CharSequence mimetype1, CharSequence data1,
+              CharSequence mimetype2, CharSequence data2) {
+        // different mimetypes? don't collapse
+        if (!TextUtils.equals(mimetype1, mimetype2)) return false;
+
+        // exact same string? good, bail out early
+        if (TextUtils.equals(data1, data2)) return true;
+
+        // so if either is null, these two must be different
+        if (data1 == null || data2 == null) return false;
+
+        // if this is not about phone numbers, we know this is not a match (of course, some
+        // mimetypes could have more sophisticated matching is the future, e.g. addresses)
+        if (!TextUtils.equals(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE,
+                mimetype1)) {
+            return false;
+        }
+
+        return shouldCollapsePhoneNumbers(data1.toString(), data2.toString());
+    }
+
+    // TODO: Move this to PhoneDataItem.shouldCollapse override
+    private static boolean shouldCollapsePhoneNumbers(String number1, String number2) {
+        // Work around to address b/20724444. We want to distinguish between #555, *555 and 555.
+        // This makes no attempt to distinguish between 555 and 55*5, since 55*5 is an improbable
+        // number. PhoneNumberUtil already distinguishes between 555 and 55#5.
+        if (number1.contains("#") != number2.contains("#")
+                || number1.contains("*") != number2.contains("*")) {
+            return false;
+        }
+
+        // Now do the full phone number thing. split into parts, separated by waiting symbol
+        // and compare them individually
+        final String[] dataParts1 = number1.split(WAIT_SYMBOL_AS_STRING);
+        final String[] dataParts2 = number2.split(WAIT_SYMBOL_AS_STRING);
+        if (dataParts1.length != dataParts2.length) return false;
+        final PhoneNumberUtil util = PhoneNumberUtil.getInstance();
+        for (int i = 0; i < dataParts1.length; i++) {
+            // Match phone numbers represented by keypad letters, in which case prefer the
+            // phone number with letters.
+            final String dataPart1 = PhoneNumberUtils.convertKeypadLettersToDigits(dataParts1[i]);
+            final String dataPart2 = dataParts2[i];
+
+            // substrings equal? shortcut, don't parse
+            if (TextUtils.equals(dataPart1, dataPart2)) continue;
+
+            // do a full parse of the numbers
+            final PhoneNumberUtil.MatchType result = util.isNumberMatch(dataPart1, dataPart2);
+            switch (result) {
+                case NOT_A_NUMBER:
+                    // don't understand the numbers? let's play it safe
+                    return false;
+                case NO_MATCH:
+                    return false;
+                case EXACT_MATCH:
+                    break;
+                case NSN_MATCH:
+                    try {
+                        // For NANP phone numbers, match when one has +1 and the other does not.
+                        // In this case, prefer the +1 version.
+                        if (util.parse(dataPart1, null).getCountryCode() == 1) {
+                            // At this point, the numbers can be either case 1 or 2 below....
+                            //
+                            // case 1)
+                            // +14155551212    <--- country code 1
+                            //  14155551212    <--- 1 is trunk prefix, not country code
+                            //
+                            // and
+                            //
+                            // case 2)
+                            // +14155551212
+                            //   4155551212
+                            //
+                            // From b/7519057, case 2 needs to be equal.  But also that bug, case 3
+                            // below should not be equal.
+                            //
+                            // case 3)
+                            // 14155551212
+                            //  4155551212
+                            //
+                            // So in order to make sure transitive equality is valid, case 1 cannot
+                            // be equal.  Otherwise, transitive equality breaks and the following
+                            // would all be collapsed:
+                            //   4155551212  |
+                            //  14155551212  |---->   +14155551212
+                            // +14155551212  |
+                            //
+                            // With transitive equality, the collapsed values should be:
+                            //   4155551212  |         14155551212
+                            //  14155551212  |---->   +14155551212
+                            // +14155551212  |
+
+                            // Distinguish between case 1 and 2 by checking for trunk prefix '1'
+                            // at the start of number 2.
+                            if (dataPart2.trim().charAt(0) == '1') {
+                                // case 1
+                                return false;
+                            }
+                            break;
+                        }
+                    } catch (NumberParseException e) {
+                        // This is the case where the first number does not have a country code.
+                        // examples:
+                        // (123) 456-7890   &   123-456-7890  (collapse)
+                        // 0049 (8092) 1234   &   +49/80921234  (unit test says do not collapse)
+
+                        // Check the second number.  If it also does not have a country code, then
+                        // we should collapse.  If it has a country code, then it's a different
+                        // number and we should not collapse (this conclusion is based on an
+                        // existing unit test).
+                        try {
+                            util.parse(dataPart2, null);
+                        } catch (NumberParseException e2) {
+                            // Number 2 also does not have a country.  Collapse.
+                            break;
+                        }
+                    }
+                    return false;
+                case SHORT_NSN_MATCH:
+                    return false;
+                default:
+                    throw new IllegalStateException("Unknown result value from phone number " +
+                            "library");
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Returns the {@link android.graphics.Rect} with left, top, right, and bottom coordinates
+     * that are equivalent to the given {@link android.view.View}'s bounds. This is equivalent to
+     * how the target {@link android.graphics.Rect} is calculated in
+     * {@link android.provider.ContactsContract.QuickContact#showQuickContact}.
+     */
+    public static Rect getTargetRectFromView(View view) {
+        final int[] pos = new int[2];
+        view.getLocationOnScreen(pos);
+
+        final Rect rect = new Rect();
+        rect.left = pos[0];
+        rect.top = pos[1];
+        rect.right = pos[0] + view.getWidth();
+        rect.bottom = pos[1] + view.getHeight();
+        return rect;
+    }
+
+    /**
+     * Returns a header view based on the R.layout.list_separator, where the
+     * containing {@link android.widget.TextView} is set using the given textResourceId.
+     */
+    public static TextView createHeaderView(Context context, int textResourceId) {
+        final TextView textView = (TextView) View.inflate(context, R.layout.list_separator, null);
+        textView.setText(context.getString(textResourceId));
+        return textView;
+    }
+
+    /**
+     * Set the top padding on the header view dynamically, based on whether the header is in
+     * the first row or not.
+     */
+    public static void setHeaderViewBottomPadding(Context context, TextView textView,
+            boolean isFirstRow) {
+        final int topPadding;
+        if (isFirstRow) {
+            topPadding = (int) context.getResources().getDimension(
+                    R.dimen.frequently_contacted_title_top_margin_when_first_row);
+        } else {
+            topPadding = (int) context.getResources().getDimension(
+                    R.dimen.frequently_contacted_title_top_margin);
+        }
+        textView.setPaddingRelative(textView.getPaddingStart(), topPadding,
+                textView.getPaddingEnd(), textView.getPaddingBottom());
+    }
+
+
+    /**
+     * Returns the intent to launch for the given invitable account type and contact lookup URI.
+     * This will return null if the account type is not invitable (i.e. there is no
+     * {@link AccountType#getInviteContactActivityClassName()} or
+     * {@link AccountType#syncAdapterPackageName}).
+     */
+    public static Intent getInvitableIntent(AccountType accountType, Uri lookupUri) {
+        String syncAdapterPackageName = accountType.syncAdapterPackageName;
+        String className = accountType.getInviteContactActivityClassName();
+        if (TextUtils.isEmpty(syncAdapterPackageName) || TextUtils.isEmpty(className)) {
+            return null;
+        }
+        Intent intent = new Intent();
+        intent.setClassName(syncAdapterPackageName, className);
+
+        intent.setAction(ContactsContract.Intents.INVITE_CONTACT);
+
+        // Data is the lookup URI.
+        intent.setData(lookupUri);
+        return intent;
+    }
+}
diff --git a/src/com/android/contacts/NonPhoneActivity.java b/src/com/android/contacts/NonPhoneActivity.java
index 05c556b..ba56d70 100644
--- a/src/com/android/contacts/NonPhoneActivity.java
+++ b/src/com/android/contacts/NonPhoneActivity.java
@@ -16,9 +16,6 @@
 
 package com.android.contacts;
 
-import com.android.contacts.common.activity.RequestPermissionsActivity;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
@@ -33,6 +30,9 @@
 import android.telecom.PhoneAccount;
 import android.text.TextUtils;
 
+import com.android.contacts.activities.RequestPermissionsActivity;
+import com.android.contacts.util.ImplicitIntentsUtil;
+
 /**
  * Activity that intercepts DIAL and VIEW intents for phone numbers for devices that can not
  * be used as a phone. This allows the user to see the phone number
@@ -44,9 +44,7 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        if (RequestPermissionsActivity.startPermissionActivity(this)) {
-            return;
-        }
+        RequestPermissionsActivity.startPermissionActivityIfNeeded(this);
 
         final String phoneNumber = getPhoneNumber();
         if (TextUtils.isEmpty(phoneNumber)) {
diff --git a/src/com/android/contacts/ShortcutIntentBuilder.java b/src/com/android/contacts/ShortcutIntentBuilder.java
new file mode 100644
index 0000000..3a0b36b
--- /dev/null
+++ b/src/com/android/contacts/ShortcutIntentBuilder.java
@@ -0,0 +1,442 @@
+/*
+ * Copyright (C) 2010 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;
+
+import android.app.ActivityManager;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Paint.FontMetricsInt;
+import android.graphics.Rect;
+import android.graphics.drawable.AdaptiveIconDrawable;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
+import android.support.v4.os.BuildCompat;
+import android.telecom.PhoneAccount;
+import android.text.TextPaint;
+import android.text.TextUtils;
+import android.text.TextUtils.TruncateAt;
+
+import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.util.BitmapUtil;
+import com.android.contacts.util.ImplicitIntentsUtil;
+
+/**
+ * Constructs shortcut intents.
+ */
+public class ShortcutIntentBuilder {
+
+    private static final String[] CONTACT_COLUMNS = {
+        Contacts.DISPLAY_NAME,
+        Contacts.PHOTO_ID,
+        Contacts.LOOKUP_KEY
+    };
+
+    private static final int CONTACT_DISPLAY_NAME_COLUMN_INDEX = 0;
+    private static final int CONTACT_PHOTO_ID_COLUMN_INDEX = 1;
+    private static final int CONTACT_LOOKUP_KEY_COLUMN_INDEX = 2;
+
+    private static final String[] PHONE_COLUMNS = {
+        Phone.DISPLAY_NAME,
+        Phone.PHOTO_ID,
+        Phone.NUMBER,
+        Phone.TYPE,
+        Phone.LABEL,
+        Phone.LOOKUP_KEY
+    };
+
+    private static final int PHONE_DISPLAY_NAME_COLUMN_INDEX = 0;
+    private static final int PHONE_PHOTO_ID_COLUMN_INDEX = 1;
+    private static final int PHONE_NUMBER_COLUMN_INDEX = 2;
+    private static final int PHONE_TYPE_COLUMN_INDEX = 3;
+    private static final int PHONE_LABEL_COLUMN_INDEX = 4;
+    private static final int PHONE_LOOKUP_KEY_COLUMN_INDEX = 5;
+
+    private static final String[] PHOTO_COLUMNS = {
+        Photo.PHOTO,
+    };
+
+    private static final int PHOTO_PHOTO_COLUMN_INDEX = 0;
+
+    private static final String PHOTO_SELECTION = Photo._ID + "=?";
+
+    private final OnShortcutIntentCreatedListener mListener;
+    private final Context mContext;
+    private int mIconSize;
+    private final int mIconDensity;
+    private final int mOverlayTextBackgroundColor;
+    private final Resources mResources;
+
+    /**
+     * This is a hidden API of the launcher in JellyBean that allows us to disable the animation
+     * that it would usually do, because it interferes with our own animation for QuickContact.
+     * This is needed since some versions of the launcher override the intent flags and therefore
+     * ignore Intent.FLAG_ACTIVITY_NO_ANIMATION.
+     */
+    public static final String INTENT_EXTRA_IGNORE_LAUNCH_ANIMATION =
+            "com.android.launcher.intent.extra.shortcut.INGORE_LAUNCH_ANIMATION";
+
+    /**
+     * Listener interface.
+     */
+    public interface OnShortcutIntentCreatedListener {
+
+        /**
+         * Callback for shortcut intent creation.
+         *
+         * @param uri the original URI for which the shortcut intent has been
+         *            created.
+         * @param shortcutIntent resulting shortcut intent.
+         */
+        void onShortcutIntentCreated(Uri uri, Intent shortcutIntent);
+    }
+
+    public ShortcutIntentBuilder(Context context, OnShortcutIntentCreatedListener listener) {
+        mContext = context;
+        mListener = listener;
+
+        mResources = context.getResources();
+        final ActivityManager am = (ActivityManager) context
+                .getSystemService(Context.ACTIVITY_SERVICE);
+        mIconSize = mResources.getDimensionPixelSize(R.dimen.shortcut_icon_size);
+        if (mIconSize == 0) {
+            mIconSize = am.getLauncherLargeIconSize();
+        }
+        mIconDensity = am.getLauncherLargeIconDensity();
+        mOverlayTextBackgroundColor = mResources.getColor(R.color.shortcut_overlay_text_background);
+    }
+
+    public void createContactShortcutIntent(Uri contactUri) {
+        new ContactLoadingAsyncTask(contactUri).execute();
+    }
+
+    public void createPhoneNumberShortcutIntent(Uri dataUri, String shortcutAction) {
+        new PhoneNumberLoadingAsyncTask(dataUri, shortcutAction).execute();
+    }
+
+    /**
+     * An asynchronous task that loads name, photo and other data from the database.
+     */
+    private abstract class LoadingAsyncTask extends AsyncTask<Void, Void, Void> {
+        protected Uri mUri;
+        protected String mContentType;
+        protected String mDisplayName;
+        protected String mLookupKey;
+        protected byte[] mBitmapData;
+        protected long mPhotoId;
+
+        public LoadingAsyncTask(Uri uri) {
+            mUri = uri;
+        }
+
+        @Override
+        protected Void doInBackground(Void... params) {
+            mContentType = mContext.getContentResolver().getType(mUri);
+            loadData();
+            loadPhoto();
+            return null;
+        }
+
+        protected abstract void loadData();
+
+        private void loadPhoto() {
+            if (mPhotoId == 0) {
+                return;
+            }
+
+            ContentResolver resolver = mContext.getContentResolver();
+            Cursor cursor = resolver.query(Data.CONTENT_URI, PHOTO_COLUMNS, PHOTO_SELECTION,
+                    new String[] { String.valueOf(mPhotoId) }, null);
+            if (cursor != null) {
+                try {
+                    if (cursor.moveToFirst()) {
+                        mBitmapData = cursor.getBlob(PHOTO_PHOTO_COLUMN_INDEX);
+                    }
+                } finally {
+                    cursor.close();
+                }
+            }
+        }
+    }
+
+    private final class ContactLoadingAsyncTask extends LoadingAsyncTask {
+        public ContactLoadingAsyncTask(Uri uri) {
+            super(uri);
+        }
+
+        @Override
+        protected void loadData() {
+            ContentResolver resolver = mContext.getContentResolver();
+            Cursor cursor = resolver.query(mUri, CONTACT_COLUMNS, null, null, null);
+            if (cursor != null) {
+                try {
+                    if (cursor.moveToFirst()) {
+                        mDisplayName = cursor.getString(CONTACT_DISPLAY_NAME_COLUMN_INDEX);
+                        mPhotoId = cursor.getLong(CONTACT_PHOTO_ID_COLUMN_INDEX);
+                        mLookupKey = cursor.getString(CONTACT_LOOKUP_KEY_COLUMN_INDEX);
+                    }
+                } finally {
+                    cursor.close();
+                }
+            }
+        }
+        @Override
+        protected void onPostExecute(Void result) {
+            createContactShortcutIntent(mUri, mContentType, mDisplayName, mLookupKey, mBitmapData);
+        }
+    }
+
+    private final class PhoneNumberLoadingAsyncTask extends LoadingAsyncTask {
+        private final String mShortcutAction;
+        private String mPhoneNumber;
+        private int mPhoneType;
+        private String mPhoneLabel;
+
+        public PhoneNumberLoadingAsyncTask(Uri uri, String shortcutAction) {
+            super(uri);
+            mShortcutAction = shortcutAction;
+        }
+
+        @Override
+        protected void loadData() {
+            ContentResolver resolver = mContext.getContentResolver();
+            Cursor cursor = resolver.query(mUri, PHONE_COLUMNS, null, null, null);
+            if (cursor != null) {
+                try {
+                    if (cursor.moveToFirst()) {
+                        mDisplayName = cursor.getString(PHONE_DISPLAY_NAME_COLUMN_INDEX);
+                        mPhotoId = cursor.getLong(PHONE_PHOTO_ID_COLUMN_INDEX);
+                        mPhoneNumber = cursor.getString(PHONE_NUMBER_COLUMN_INDEX);
+                        mPhoneType = cursor.getInt(PHONE_TYPE_COLUMN_INDEX);
+                        mPhoneLabel = cursor.getString(PHONE_LABEL_COLUMN_INDEX);
+                        mLookupKey = cursor.getString(PHONE_LOOKUP_KEY_COLUMN_INDEX);
+                    }
+                } finally {
+                    cursor.close();
+                }
+            }
+        }
+
+        @Override
+        protected void onPostExecute(Void result) {
+            createPhoneNumberShortcutIntent(mUri, mDisplayName, mLookupKey, mBitmapData,
+                    mPhoneNumber, mPhoneType, mPhoneLabel, mShortcutAction);
+        }
+    }
+
+    private Drawable getPhotoDrawable(byte[] bitmapData, String displayName, String lookupKey) {
+        if (bitmapData != null) {
+            Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapData, 0, bitmapData.length, null);
+            return new BitmapDrawable(mContext.getResources(), bitmap);
+        } else {
+            return ContactPhotoManager.getDefaultAvatarDrawableForContact(mContext.getResources(),
+                    false, new DefaultImageRequest(displayName, lookupKey, false));
+        }
+    }
+
+    private void createContactShortcutIntent(Uri contactUri, String contentType, String displayName,
+            String lookupKey, byte[] bitmapData) {
+        Intent intent = null;
+        if (BuildCompat.isAtLeastO()) {
+            final long contactId = ContentUris.parseId(contactUri);
+            final ShortcutManager sm = (ShortcutManager)
+                    mContext.getSystemService(Context.SHORTCUT_SERVICE);
+            final DynamicShortcuts dynamicShortcuts = new DynamicShortcuts(mContext);
+            final ShortcutInfo shortcutInfo = dynamicShortcuts.getQuickContactShortcutInfo(
+                    contactId, lookupKey, displayName);
+            intent = sm.createShortcutResultIntent(shortcutInfo);
+        }
+        final Drawable drawable = getPhotoDrawable(bitmapData, displayName, lookupKey);
+        if (TextUtils.isEmpty(displayName)) {
+            displayName = mContext.getResources().getString(R.string.missing_name);
+        }
+
+        final Intent shortcutIntent = ImplicitIntentsUtil.getIntentForQuickContactLauncherShortcut(
+                mContext, contactUri);
+
+        final Bitmap icon = generateQuickContactIcon(drawable);
+
+
+        intent = intent == null ? new Intent() : intent;
+        intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
+        intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
+        intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, displayName);
+
+        mListener.onShortcutIntentCreated(contactUri, intent);
+    }
+
+    private void createPhoneNumberShortcutIntent(Uri uri, String displayName, String lookupKey,
+            byte[] bitmapData, String phoneNumber, int phoneType, String phoneLabel,
+            String shortcutAction) {
+        final Drawable drawable = getPhotoDrawable(bitmapData, displayName, lookupKey);
+        final Bitmap icon;
+        final Uri phoneUri;
+        final String shortcutName;
+        if (TextUtils.isEmpty(displayName)) {
+            displayName = mContext.getResources().getString(R.string.missing_name);
+        }
+
+        if (Intent.ACTION_CALL.equals(shortcutAction)) {
+            // Make the URI a direct tel: URI so that it will always continue to work
+            phoneUri = Uri.fromParts(PhoneAccount.SCHEME_TEL, phoneNumber, null);
+            icon = generatePhoneNumberIcon(drawable, phoneType, phoneLabel,
+                    R.drawable.quantum_ic_phone_vd_theme_24);
+            shortcutName = mContext.getResources()
+                    .getString(R.string.call_by_shortcut, displayName);
+        } else {
+            phoneUri = Uri.fromParts(ContactsUtils.SCHEME_SMSTO, phoneNumber, null);
+            icon = generatePhoneNumberIcon(drawable, phoneType, phoneLabel,
+                    R.drawable.quantum_ic_message_vd_theme_24);
+            shortcutName = mContext.getResources().getString(R.string.sms_by_shortcut, displayName);
+        }
+
+        final Intent shortcutIntent = new Intent(shortcutAction, phoneUri);
+        shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+
+        Intent intent = null;
+        if (BuildCompat.isAtLeastO()) {
+            final ShortcutManager sm = (ShortcutManager)
+                    mContext.getSystemService(Context.SHORTCUT_SERVICE);
+            final String id = shortcutAction + lookupKey;
+            final DynamicShortcuts dynamicShortcuts = new DynamicShortcuts(mContext);
+            final ShortcutInfo shortcutInfo = dynamicShortcuts.getActionShortcutInfo(
+                    id, displayName, shortcutIntent, Icon.createWithAdaptiveBitmap(icon));
+            intent = sm.createShortcutResultIntent(shortcutInfo);
+        }
+
+        intent = intent == null ? new Intent() : intent;
+        intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
+        intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
+        intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutName);
+
+        mListener.onShortcutIntentCreated(uri, intent);
+    }
+
+    private Bitmap generateQuickContactIcon(Drawable photo) {
+
+        // Setup the drawing classes
+        Bitmap bitmap = Bitmap.createBitmap(mIconSize, mIconSize, Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(bitmap);
+
+        // Copy in the photo
+        Rect dst = new Rect(0,0, mIconSize, mIconSize);
+        photo.setBounds(dst);
+        photo.draw(canvas);
+
+        // Draw the icon with a rounded border
+        RoundedBitmapDrawable roundedDrawable =
+                RoundedBitmapDrawableFactory.create(mResources, bitmap);
+        roundedDrawable.setAntiAlias(true);
+        roundedDrawable.setCornerRadius(mIconSize / 2);
+        Bitmap roundedBitmap = Bitmap.createBitmap(mIconSize, mIconSize, Bitmap.Config.ARGB_8888);
+        canvas.setBitmap(roundedBitmap);
+        roundedDrawable.setBounds(dst);
+        roundedDrawable.draw(canvas);
+        canvas.setBitmap(null);
+
+        return roundedBitmap;
+    }
+
+    /**
+     * Generates a phone number shortcut icon. Adds an overlay describing the type of the phone
+     * number, and if there is a photo also adds the call action icon.
+     */
+    private Bitmap generatePhoneNumberIcon(Drawable photo, int phoneType, String phoneLabel,
+            int actionResId) {
+        final Resources r = mContext.getResources();
+        final float density = r.getDisplayMetrics().density;
+
+        final Drawable phoneDrawable = r.getDrawableForDensity(actionResId, mIconDensity);
+        // These icons have the same height and width so either is fine for the size.
+        final Bitmap phoneIcon =
+                BitmapUtil.drawableToBitmap(phoneDrawable, phoneDrawable.getIntrinsicHeight());
+
+        Bitmap icon = generateQuickContactIcon(photo);
+        Canvas canvas = new Canvas(icon);
+
+        // Copy in the photo
+        Paint photoPaint = new Paint();
+        photoPaint.setDither(true);
+        photoPaint.setFilterBitmap(true);
+        Rect dst = new Rect(0, 0, mIconSize, mIconSize);
+
+        // Create an overlay for the phone number type if we're pre-O. O created shortcuts have the
+        // app badge which overlaps the type overlay.
+        CharSequence overlay = Phone.getTypeLabel(r, phoneType, phoneLabel);
+        if (!BuildCompat.isAtLeastO() && overlay != null) {
+            TextPaint textPaint = new TextPaint(
+                    Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
+            textPaint.setTextSize(r.getDimension(R.dimen.shortcut_overlay_text_size));
+            textPaint.setColor(r.getColor(R.color.textColorIconOverlay));
+            textPaint.setShadowLayer(4f, 0, 2f, r.getColor(R.color.textColorIconOverlayShadow));
+
+            final FontMetricsInt fmi = textPaint.getFontMetricsInt();
+
+            // First fill in a darker background around the text to be drawn
+            final Paint workPaint = new Paint();
+            workPaint.setColor(mOverlayTextBackgroundColor);
+            workPaint.setStyle(Paint.Style.FILL);
+            final int textPadding = r
+                    .getDimensionPixelOffset(R.dimen.shortcut_overlay_text_background_padding);
+            final int textBandHeight = (fmi.descent - fmi.ascent) + textPadding * 2;
+            dst.set(0, mIconSize - textBandHeight, mIconSize, mIconSize);
+            canvas.drawRect(dst, workPaint);
+
+            overlay = TextUtils.ellipsize(overlay, textPaint, mIconSize, TruncateAt.END);
+            final float textWidth = textPaint.measureText(overlay, 0, overlay.length());
+            canvas.drawText(overlay, 0, overlay.length(), (mIconSize - textWidth) / 2, mIconSize
+                    - fmi.descent - textPadding, textPaint);
+        }
+
+        // Draw the phone action icon as an overlay
+        int iconWidth = icon.getWidth();
+        dst.set(iconWidth - ((int) (20 * density)), -1,
+                iconWidth, ((int) (19 * density)));
+        canvas.drawBitmap(phoneIcon, null, dst, photoPaint);
+
+        canvas.setBitmap(null);
+        if (!BuildCompat.isAtLeastO()) {
+            return icon;
+        }
+
+        // On >= O scale image up by AdaptiveIconDrawable.DEFAULT_VIEW_PORT_SCALE.
+        final int scale = (int) (icon.getHeight() *
+                (1f / (1 + 2 * AdaptiveIconDrawable.getExtraInsetFraction())));
+        final Bitmap scaledBitmap = Bitmap.createBitmap(icon.getWidth() + scale,
+                icon.getHeight() + scale, icon.getConfig());
+        Canvas scaledCanvas = new Canvas(scaledBitmap);
+        scaledCanvas.drawBitmap(icon, scale / 2, scale / 2, null);
+        return scaledBitmap;
+    }
+}
diff --git a/src/com/android/contacts/SimImportFragment.java b/src/com/android/contacts/SimImportFragment.java
new file mode 100644
index 0000000..9393e1a
--- /dev/null
+++ b/src/com/android/contacts/SimImportFragment.java
@@ -0,0 +1,502 @@
+/*
+ * 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;
+
+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;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.design.widget.Snackbar;
+import android.support.v4.content.LocalBroadcastManager;
+import android.support.v4.util.ArrayMap;
+import android.support.v4.view.ViewCompat;
+import android.support.v4.widget.ContentLoadingProgressBar;
+import android.support.v7.widget.Toolbar;
+import android.util.SparseBooleanArray;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AbsListView;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.database.SimContactDao;
+import com.android.contacts.editor.AccountHeaderPresenter;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.concurrent.ContactsExecutors;
+import com.android.contacts.util.concurrent.ListenableFutureLoader;
+import com.google.common.base.Function;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Callable;
+
+/**
+ * Dialog that presents a list of contacts from a SIM card that can be imported into a selected
+ * account
+ */
+public class SimImportFragment extends Fragment
+        implements LoaderManager.LoaderCallbacks<SimImportFragment.LoaderResult>,
+        AdapterView.OnItemClickListener, AbsListView.OnScrollListener {
+
+    private static final String KEY_SUFFIX_SELECTED_IDS = "_selectedIds";
+    private static final String ARG_SUBSCRIPTION_ID = "subscriptionId";
+
+    private ContactsPreferences mPreferences;
+    private AccountTypeManager mAccountTypeManager;
+    private SimContactAdapter mAdapter;
+    private View mAccountHeaderContainer;
+    private AccountHeaderPresenter mAccountHeaderPresenter;
+    private float mAccountScrolledElevationPixels;
+    private ContentLoadingProgressBar mLoadingIndicator;
+    private Toolbar mToolbar;
+    private ListView mListView;
+    private View mImportButton;
+
+    private Bundle mSavedInstanceState;
+
+    private final Map<AccountWithDataSet, long[]> mPerAccountCheckedIds = new ArrayMap<>();
+
+    private int mSubscriptionId;
+
+    @Override
+    public void onCreate(final Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mSavedInstanceState = savedInstanceState;
+        mPreferences = new ContactsPreferences(getContext());
+        mAccountTypeManager = AccountTypeManager.getInstance(getActivity());
+        mAdapter = new SimContactAdapter(getActivity());
+
+        final Bundle args = getArguments();
+        mSubscriptionId = args == null ? SimCard.NO_SUBSCRIPTION_ID :
+                args.getInt(ARG_SUBSCRIPTION_ID, SimCard.NO_SUBSCRIPTION_ID);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        getLoaderManager().initLoader(0, null, this);
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final View view = inflater.inflate(R.layout.fragment_sim_import, container, false);
+
+        mAccountHeaderContainer = view.findViewById(R.id.account_header_container);
+        mAccountScrolledElevationPixels = getResources()
+                .getDimension(R.dimen.contact_list_header_elevation);
+        mAccountHeaderPresenter = new AccountHeaderPresenter(
+                mAccountHeaderContainer);
+        if (savedInstanceState != null) {
+            mAccountHeaderPresenter.onRestoreInstanceState(savedInstanceState);
+        } else {
+            // Default may be null in which case the first account in the list will be selected
+            // after they are loaded.
+            mAccountHeaderPresenter.setCurrentAccount(mPreferences.getDefaultAccount());
+        }
+        mAccountHeaderPresenter.setObserver(new AccountHeaderPresenter.Observer() {
+            @Override
+            public void onChange(AccountHeaderPresenter sender) {
+                rememberSelectionsForCurrentAccount();
+                mAdapter.setAccount(sender.getCurrentAccount());
+                showSelectionsForCurrentAccount();
+                updateToolbarWithCurrentSelections();
+            }
+        });
+        mAdapter.setAccount(mAccountHeaderPresenter.getCurrentAccount());
+
+        mListView = (ListView) view.findViewById(R.id.list);
+        mListView.setOnScrollListener(this);
+        mListView.setAdapter(mAdapter);
+        mListView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
+        mListView.setOnItemClickListener(this);
+        mImportButton = view.findViewById(R.id.import_button);
+        mImportButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                importCurrentSelections();
+                // Do we wait for import to finish?
+                getActivity().setResult(Activity.RESULT_OK);
+                getActivity().finish();
+            }
+        });
+
+        mToolbar = (Toolbar) view.findViewById(R.id.toolbar);
+        mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getActivity().setResult(Activity.RESULT_CANCELED);
+                getActivity().finish();
+            }
+        });
+
+        mLoadingIndicator = (ContentLoadingProgressBar) view.findViewById(R.id.loading_progress);
+
+        return view;
+    }
+
+    private void rememberSelectionsForCurrentAccount() {
+        final AccountWithDataSet current = mAdapter.getAccount();
+        if (current == null) {
+            return;
+        }
+        final long[] ids = mListView.getCheckedItemIds();
+        Arrays.sort(ids);
+        mPerAccountCheckedIds.put(current, ids);
+    }
+
+    private void showSelectionsForCurrentAccount() {
+        final long[] ids = mPerAccountCheckedIds.get(mAdapter.getAccount());
+        if (ids == null) {
+            selectAll();
+            return;
+        }
+        for (int i = 0, len = mListView.getCount(); i < len; i++) {
+            mListView.setItemChecked(i,
+                    Arrays.binarySearch(ids, mListView.getItemIdAtPosition(i)) >= 0);
+        }
+    }
+
+    private void selectAll() {
+        for (int i = 0, len = mListView.getCount(); i < len; i++) {
+            mListView.setItemChecked(i, true);
+        }
+    }
+
+    private void updateToolbarWithCurrentSelections() {
+        // The ListView keeps checked state for items that are disabled but we only want  to
+        // consider items that don't exist in the current account when updating the toolbar
+        int importableCount = 0;
+        final SparseBooleanArray checked = mListView.getCheckedItemPositions();
+        for (int i = 0; i < checked.size(); i++) {
+            if (checked.valueAt(i) && !mAdapter.existsInCurrentAccount(checked.keyAt(i))) {
+                importableCount++;
+            }
+        }
+
+        if (importableCount == 0) {
+            mImportButton.setVisibility(View.GONE);
+            mToolbar.setTitle(R.string.sim_import_title_none_selected);
+        } else {
+            mToolbar.setTitle(String.valueOf(importableCount));
+            mImportButton.setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (mAdapter.isEmpty() && getLoaderManager().getLoader(0).isStarted()) {
+            mLoadingIndicator.show();
+        }
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        rememberSelectionsForCurrentAccount();
+        // We'll restore this manually so we don't need the list to preserve it's own state.
+        mListView.clearChoices();
+        super.onSaveInstanceState(outState);
+        mAccountHeaderPresenter.onSaveInstanceState(outState);
+        saveAdapterSelectedStates(outState);
+    }
+
+    @Override
+    public Loader<LoaderResult> onCreateLoader(int id, Bundle args) {
+        return new SimContactLoader(getContext(), mSubscriptionId);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<LoaderResult> loader,
+            LoaderResult data) {
+        mLoadingIndicator.hide();
+        if (data == null) {
+            return;
+        }
+        mAccountHeaderPresenter.setAccounts(data.accounts);
+        restoreAdapterSelectedStates(data.accounts);
+        mAdapter.setData(data);
+        mListView.setEmptyView(getView().findViewById(R.id.empty_message));
+
+        showSelectionsForCurrentAccount();
+        updateToolbarWithCurrentSelections();
+    }
+
+    @Override
+    public void onLoaderReset(Loader<LoaderResult> loader) {
+    }
+
+    private void restoreAdapterSelectedStates(List<AccountInfo> accounts) {
+        if (mSavedInstanceState == null) {
+            return;
+        }
+
+        for (AccountInfo account : accounts) {
+            final long[] selections = mSavedInstanceState.getLongArray(
+                    account.getAccount().stringify() + KEY_SUFFIX_SELECTED_IDS);
+            mPerAccountCheckedIds.put(account.getAccount(), selections);
+        }
+        mSavedInstanceState = null;
+    }
+
+    private void saveAdapterSelectedStates(Bundle outState) {
+        if (mAdapter == null) {
+            return;
+        }
+
+        // Make sure the selections are up-to-date
+        for (Map.Entry<AccountWithDataSet, long[]> entry : mPerAccountCheckedIds.entrySet()) {
+            outState.putLongArray(entry.getKey().stringify() + KEY_SUFFIX_SELECTED_IDS,
+                    entry.getValue());
+        }
+    }
+
+    private void importCurrentSelections() {
+        final SparseBooleanArray checked = mListView.getCheckedItemPositions();
+        final ArrayList<SimContact> importableContacts = new ArrayList<>(checked.size());
+        for (int i = 0; i < checked.size(); i++) {
+            // It's possible for existing contacts to be "checked" but we only want to import the
+            // ones that don't already exist
+            if (checked.valueAt(i) && !mAdapter.existsInCurrentAccount(i)) {
+                importableContacts.add(mAdapter.getItem(checked.keyAt(i)));
+            }
+        }
+        SimImportService.startImport(getContext(), mSubscriptionId, importableContacts,
+                mAccountHeaderPresenter.getCurrentAccount());
+    }
+
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        if (mAdapter.existsInCurrentAccount(position)) {
+            Snackbar.make(getView(), R.string.sim_import_contact_exists_toast,
+                    Snackbar.LENGTH_LONG).show();
+        } else {
+            updateToolbarWithCurrentSelections();
+        }
+    }
+
+    public Context getContext() {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return super.getContext();
+        }
+        return getActivity();
+    }
+
+    @Override
+    public void onScrollStateChanged(AbsListView view, int scrollState) { }
+
+    @Override
+    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
+            int totalItemCount) {
+        int firstCompletelyVisibleItem = firstVisibleItem;
+        if (view != null && view.getChildAt(0) != null && view.getChildAt(0).getTop() < 0) {
+            firstCompletelyVisibleItem++;
+        }
+
+        if (firstCompletelyVisibleItem == 0) {
+            ViewCompat.setElevation(mAccountHeaderContainer, 0);
+        } else {
+            ViewCompat.setElevation(mAccountHeaderContainer, mAccountScrolledElevationPixels);
+        }
+    }
+
+    /**
+     * Creates a fragment that will display contacts stored on the default SIM card
+     */
+    public static SimImportFragment newInstance() {
+        return new SimImportFragment();
+    }
+
+    /**
+     * Creates a fragment that will display the contacts stored on the SIM card that has the
+     * provided subscriptionId
+     */
+    public static SimImportFragment newInstance(int subscriptionId) {
+        final SimImportFragment fragment = new SimImportFragment();
+        final Bundle args = new Bundle();
+        args.putInt(ARG_SUBSCRIPTION_ID, subscriptionId);
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    private static class SimContactAdapter extends ArrayAdapter<SimContact> {
+        private Map<AccountWithDataSet, Set<SimContact>> mExistingMap;
+        private AccountWithDataSet mSelectedAccount;
+        private LayoutInflater mInflater;
+
+        public SimContactAdapter(Context context) {
+            super(context, 0);
+            mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            // This can be called by the framework when the adapter hasn't been initialized for
+            // checking the checked state of items. See b/33108913
+            if (position < 0 || position >= getCount()) {
+                return View.NO_ID;
+            }
+            return getItem(position).getId();
+        }
+
+        @Override
+        public boolean hasStableIds() {
+            return true;
+        }
+
+        @Override
+        public int getViewTypeCount() {
+            return 2;
+        }
+
+        @Override
+        public int getItemViewType(int position) {
+            return !existsInCurrentAccount(position) ? 0 : 1;
+        }
+
+        @NonNull
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            TextView text = (TextView) convertView;
+            if (text == null) {
+                final int layoutRes = existsInCurrentAccount(position) ?
+                        R.layout.sim_import_list_item_disabled :
+                        R.layout.sim_import_list_item;
+                text = (TextView) mInflater.inflate(layoutRes, parent, false);
+            }
+            text.setText(getItemLabel(getItem(position)));
+
+            return text;
+        }
+
+        public void setData(LoaderResult result) {
+            clear();
+            addAll(result.contacts);
+            mExistingMap = result.accountsMap;
+        }
+
+        public void setAccount(AccountWithDataSet account) {
+            mSelectedAccount = account;
+            notifyDataSetChanged();
+        }
+
+        public AccountWithDataSet getAccount() {
+            return mSelectedAccount;
+        }
+
+        public boolean existsInCurrentAccount(int position) {
+            return existsInCurrentAccount(getItem(position));
+        }
+
+        public boolean existsInCurrentAccount(SimContact contact) {
+            if (mSelectedAccount == null || !mExistingMap.containsKey(mSelectedAccount)) {
+                return false;
+            }
+            return mExistingMap.get(mSelectedAccount).contains(contact);
+        }
+
+        private String getItemLabel(SimContact contact) {
+            if (contact.hasName()) {
+                return contact.getName();
+            } else if (contact.hasPhone()) {
+                return contact.getPhone();
+            } else if (contact.hasEmails()) {
+                return contact.getEmails()[0];
+            } else {
+                // This isn't really possible because we skip empty SIM contacts during loading
+                return "";
+            }
+        }
+    }
+
+
+    private static class SimContactLoader extends ListenableFutureLoader<LoaderResult> {
+        private SimContactDao mDao;
+        private AccountTypeManager mAccountTypeManager;
+        private final int mSubscriptionId;
+
+        public SimContactLoader(Context context, int subscriptionId) {
+            super(context, new IntentFilter(AccountTypeManager.BROADCAST_ACCOUNTS_CHANGED));
+            mDao = SimContactDao.create(context);
+            mAccountTypeManager = AccountTypeManager.getInstance(getContext());
+            mSubscriptionId = subscriptionId;
+        }
+
+        @Override
+        protected ListenableFuture<LoaderResult> loadData() {
+            final ListenableFuture<List<Object>> future = Futures.<Object>allAsList(
+                    mAccountTypeManager
+                            .filterAccountsAsync(AccountTypeManager.writableFilter()),
+                    ContactsExecutors.getSimReadExecutor().<Object>submit(
+                            new Callable<Object>() {
+                        @Override
+                        public LoaderResult call() throws Exception {
+                            return loadFromSim();
+                        }
+                    }));
+            return Futures.transform(future, new Function<List<Object>, LoaderResult>() {
+                @Override
+                public LoaderResult apply(List<Object> input) {
+                    final List<AccountInfo> accounts = (List<AccountInfo>) input.get(0);
+                    final LoaderResult simLoadResult = (LoaderResult) input.get(1);
+                    simLoadResult.accounts = accounts;
+                    return simLoadResult;
+                }
+            });
+        }
+
+        private LoaderResult loadFromSim() {
+            final SimCard sim = mDao.getSimBySubscriptionId(mSubscriptionId);
+            LoaderResult result = new LoaderResult();
+            if (sim == null) {
+                result.contacts = new ArrayList<>();
+                result.accountsMap = Collections.emptyMap();
+                return result;
+            }
+            result.contacts = mDao.loadContactsForSim(sim);
+            result.accountsMap = mDao.findAccountsOfExistingSimContacts(result.contacts);
+            return result;
+        }
+    }
+
+    public static class LoaderResult {
+        public List<AccountInfo> accounts;
+        public ArrayList<SimContact> contacts;
+        public Map<AccountWithDataSet, Set<SimContact>> accountsMap;
+    }
+}
diff --git a/src/com/android/contacts/SimImportService.java b/src/com/android/contacts/SimImportService.java
new file mode 100644
index 0000000..60de982
--- /dev/null
+++ b/src/com/android/contacts/SimImportService.java
@@ -0,0 +1,346 @@
+/*
+ * 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;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.content.OperationApplicationException;
+import android.os.AsyncTask;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.support.annotation.Nullable;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.content.LocalBroadcastManager;
+import android.util.TimingLogger;
+
+import com.android.contacts.activities.PeopleActivity;
+import com.android.contacts.database.SimContactDao;
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.util.ContactsNotificationChannelsUtil;
+import com.android.contactsbind.FeedbackHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * Imports {@link SimContact}s from a background thread
+ */
+public class SimImportService extends Service {
+
+    private static final String TAG = "SimImportService";
+
+    /**
+     * Wrapper around the service state for testability
+     */
+    public interface StatusProvider {
+
+        /**
+         * Returns whether there is any imports still pending
+         *
+         * <p>This should be called from the UI thread</p>
+         */
+        boolean isRunning();
+
+        /**
+         * Returns whether an import for sim has been requested
+         *
+         * <p>This should be called from the UI thread</p>
+         */
+        boolean isImporting(SimCard sim);
+    }
+
+    public static final String EXTRA_ACCOUNT = "account";
+    public static final String EXTRA_SIM_CONTACTS = "simContacts";
+    public static final String EXTRA_SIM_SUBSCRIPTION_ID = "simSubscriptionId";
+    public static final String EXTRA_RESULT_CODE = "resultCode";
+    public static final String EXTRA_RESULT_COUNT = "count";
+    public static final String EXTRA_OPERATION_REQUESTED_AT_TIME = "requestedTime";
+
+    public static final String BROADCAST_SERVICE_STATE_CHANGED =
+            SimImportService.class.getName() + "#serviceStateChanged";
+    public static final String BROADCAST_SIM_IMPORT_COMPLETE =
+            SimImportService.class.getName() + "#simImportComplete";
+
+    public static final int RESULT_UNKNOWN = 0;
+    public static final int RESULT_SUCCESS = 1;
+    public static final int RESULT_FAILURE = 2;
+
+    // VCardService uses jobIds for it's notifications which count up from 0 so we just use a
+    // bigger number to prevent overlap.
+    private static final int NOTIFICATION_ID = 100;
+
+    private ExecutorService mExecutor = Executors.newSingleThreadExecutor();
+
+    // Keeps track of current tasks. This is only modified from the UI thread.
+    private static List<ImportTask> sPending = new ArrayList<>();
+
+    private static StatusProvider sStatusProvider = new StatusProvider() {
+        @Override
+        public boolean isRunning() {
+            return !sPending.isEmpty();
+        }
+
+        @Override
+        public boolean isImporting(SimCard sim) {
+            return SimImportService.isImporting(sim);
+        }
+    };
+
+    /**
+     * Returns whether an import for sim has been requested
+     *
+     * <p>This should be called from the UI thread</p>
+     */
+    private static boolean isImporting(SimCard sim) {
+        for (ImportTask task : sPending) {
+            if (task.getSim().equals(sim)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public static StatusProvider getStatusProvider() {
+        return sStatusProvider;
+    }
+
+    /**
+     * Starts an import of the contacts from the sim into the target account
+     *
+     * @param context context to use for starting the service
+     * @param subscriptionId the subscriptionId of the SIM card that is being imported. See
+     *                       {@link android.telephony.SubscriptionInfo#getSubscriptionId()}.
+     *                       Upon completion the SIM for that subscription ID will be marked as
+     *                       imported
+     * @param contacts the contacts to import
+     * @param targetAccount the account import the contacts into
+     */
+    public static void startImport(Context context, int subscriptionId,
+            ArrayList<SimContact> contacts, AccountWithDataSet targetAccount) {
+        context.startService(new Intent(context, SimImportService.class)
+                .putExtra(EXTRA_SIM_CONTACTS, contacts)
+                .putExtra(EXTRA_SIM_SUBSCRIPTION_ID, subscriptionId)
+                .putExtra(EXTRA_ACCOUNT, targetAccount));
+    }
+
+
+    @Nullable
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, final int startId) {
+        ContactsNotificationChannelsUtil.createDefaultChannel(this);
+        final ImportTask task = createTaskForIntent(intent, startId);
+        if (task == null) {
+            new StopTask(this, startId).executeOnExecutor(mExecutor);
+            return START_NOT_STICKY;
+        }
+        sPending.add(task);
+        task.executeOnExecutor(mExecutor);
+        notifyStateChanged();
+        return START_REDELIVER_INTENT;
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        mExecutor.shutdown();
+    }
+
+    private ImportTask createTaskForIntent(Intent intent, int startId) {
+        final AccountWithDataSet targetAccount = intent.getParcelableExtra(EXTRA_ACCOUNT);
+        final ArrayList<SimContact> contacts =
+                intent.getParcelableArrayListExtra(EXTRA_SIM_CONTACTS);
+
+        final int subscriptionId = intent.getIntExtra(EXTRA_SIM_SUBSCRIPTION_ID,
+                SimCard.NO_SUBSCRIPTION_ID);
+        final SimContactDao dao = SimContactDao.create(this);
+        final SimCard sim = dao.getSimBySubscriptionId(subscriptionId);
+        if (sim != null) {
+            return new ImportTask(sim, contacts, targetAccount, dao, startId);
+        } else {
+            return null;
+        }
+    }
+
+    private Notification getCompletedNotification() {
+        final Intent intent = new Intent(this, PeopleActivity.class);
+        final NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
+        builder.setOngoing(false)
+                .setChannel(ContactsNotificationChannelsUtil.DEFAULT_CHANNEL)
+                .setAutoCancel(true)
+                .setContentTitle(this.getString(R.string.importing_sim_finished_title))
+                .setColor(this.getResources().getColor(R.color.dialtacts_theme_color))
+                .setSmallIcon(R.drawable.quantum_ic_done_vd_theme_24)
+                .setContentIntent(PendingIntent.getActivity(this, 0, intent, 0));
+        return builder.build();
+    }
+
+    private Notification getFailedNotification() {
+        final Intent intent = new Intent(this, PeopleActivity.class);
+        final NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
+        builder.setOngoing(false)
+                .setChannel(ContactsNotificationChannelsUtil.DEFAULT_CHANNEL)
+                .setAutoCancel(true)
+                .setContentTitle(this.getString(R.string.importing_sim_failed_title))
+                .setContentText(this.getString(R.string.importing_sim_failed_message))
+                .setColor(this.getResources().getColor(R.color.dialtacts_theme_color))
+                .setSmallIcon(R.drawable.quantum_ic_error_vd_theme_24)
+                .setContentIntent(PendingIntent.getActivity(this, 0, intent, 0));
+        return builder.build();
+    }
+
+    private Notification getImportingNotification() {
+        final NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
+        final String description = getString(R.string.importing_sim_in_progress_title);
+        builder.setOngoing(true)
+                .setChannel(ContactsNotificationChannelsUtil.DEFAULT_CHANNEL)
+                .setProgress(/* current */ 0, /* max */ 100, /* indeterminate */ true)
+                .setContentTitle(description)
+                .setColor(this.getResources().getColor(R.color.dialtacts_theme_color))
+                .setSmallIcon(android.R.drawable.stat_sys_download);
+        return builder.build();
+    }
+
+    private void notifyStateChanged() {
+        LocalBroadcastManager.getInstance(this).sendBroadcast(
+                new Intent(BROADCAST_SERVICE_STATE_CHANGED));
+    }
+
+    // Schedule a task that calls stopSelf when it completes. This is used to ensure that the
+    // calls to stopSelf occur in the correct order (because this service uses a single thread
+    // executor this won't run until all work that was requested before it has finished)
+    private static class StopTask extends AsyncTask<Void, Void, Void> {
+        private Service mHost;
+        private final int mStartId;
+
+        private StopTask(Service host, int startId) {
+            mHost = host;
+            mStartId = startId;
+        }
+
+        @Override
+        protected Void doInBackground(Void... params) {
+            return null;
+        }
+
+        @Override
+        protected void onPostExecute(Void aVoid) {
+            super.onPostExecute(aVoid);
+            mHost.stopSelf(mStartId);
+        }
+    }
+
+    private class ImportTask extends AsyncTask<Void, Void, Boolean> {
+        private final SimCard mSim;
+        private final List<SimContact> mContacts;
+        private final AccountWithDataSet mTargetAccount;
+        private final SimContactDao mDao;
+        private final NotificationManager mNotificationManager;
+        private final int mStartId;
+        private final long mStartTime;
+
+        public ImportTask(SimCard sim, List<SimContact> contacts, AccountWithDataSet targetAccount,
+                SimContactDao dao, int startId) {
+            mSim = sim;
+            mContacts = contacts;
+            mTargetAccount = targetAccount;
+            mDao = dao;
+            mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+            mStartId = startId;
+            mStartTime = System.currentTimeMillis();
+        }
+
+        @Override
+        protected void onPreExecute() {
+            super.onPreExecute();
+            startForeground(NOTIFICATION_ID, getImportingNotification());
+        }
+
+        @Override
+        protected Boolean doInBackground(Void... params) {
+            final TimingLogger timer = new TimingLogger(TAG, "import");
+            try {
+                // Just import them all at once.
+                // Experimented with using smaller batches (e.g. 25 and 50) so that percentage
+                // progress could be displayed however this slowed down the import by over a factor
+                // of 2. If the batch size is over a 100 then most cases will only require a single
+                // batch so we don't even worry about displaying accurate progress
+                mDao.importContacts(mContacts, mTargetAccount);
+                mDao.persistSimState(mSim.withImportedState(true));
+                timer.addSplit("done");
+                timer.dumpToLog();
+            } catch (RemoteException|OperationApplicationException e) {
+                FeedbackHelper.sendFeedback(SimImportService.this, TAG,
+                        "Failed to import contacts from SIM card", e);
+                return false;
+            }
+            return true;
+        }
+
+        public SimCard getSim() {
+            return mSim;
+        }
+
+        @Override
+        protected void onPostExecute(Boolean success) {
+            super.onPostExecute(success);
+            stopSelf(mStartId);
+
+            Intent result;
+            final Notification notification;
+            if (success) {
+                result = new Intent(BROADCAST_SIM_IMPORT_COMPLETE)
+                        .putExtra(EXTRA_RESULT_CODE, RESULT_SUCCESS)
+                        .putExtra(EXTRA_RESULT_COUNT, mContacts.size())
+                        .putExtra(EXTRA_OPERATION_REQUESTED_AT_TIME, mStartTime)
+                        .putExtra(EXTRA_SIM_SUBSCRIPTION_ID, mSim.getSubscriptionId());
+
+                notification = getCompletedNotification();
+            } else {
+                result = new Intent(BROADCAST_SIM_IMPORT_COMPLETE)
+                        .putExtra(EXTRA_RESULT_CODE, RESULT_FAILURE)
+                        .putExtra(EXTRA_OPERATION_REQUESTED_AT_TIME, mStartTime)
+                        .putExtra(EXTRA_SIM_SUBSCRIPTION_ID, mSim.getSubscriptionId());
+
+                notification = getFailedNotification();
+            }
+            LocalBroadcastManager.getInstance(SimImportService.this).sendBroadcast(result);
+
+            sPending.remove(this);
+
+            // Only notify of completion if all the import requests have finished. We're using
+            // the same notification for imports so in the rare case that a user has started
+            // multiple imports the notification won't go away until all of them complete.
+            if (sPending.isEmpty()) {
+                stopForeground(false);
+                mNotificationManager.notify(NOTIFICATION_ID, notification);
+            }
+            notifyStateChanged();
+        }
+    }
+}
diff --git a/src/com/android/contacts/SplitAggregateView.java b/src/com/android/contacts/SplitAggregateView.java
index 2281ec6..5c822ba 100644
--- a/src/com/android/contacts/SplitAggregateView.java
+++ b/src/com/android/contacts/SplitAggregateView.java
@@ -35,8 +35,8 @@
 import android.widget.ListView;
 import android.widget.TextView;
 
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/src/com/android/contacts/TypePrecedence.java b/src/com/android/contacts/TypePrecedence.java
index 0a193b5..53b8343 100644
--- a/src/com/android/contacts/TypePrecedence.java
+++ b/src/com/android/contacts/TypePrecedence.java
@@ -23,7 +23,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 
-import com.android.contacts.common.model.RawContactModifier;
+import com.android.contacts.model.RawContactModifier;
 
 /**
  * This class contains utility functions for determining the precedence of
diff --git a/src/com/android/contacts/ViewNotificationService.java b/src/com/android/contacts/ViewNotificationService.java
index 0f2922a..3bc5ed2 100644
--- a/src/com/android/contacts/ViewNotificationService.java
+++ b/src/com/android/contacts/ViewNotificationService.java
@@ -23,8 +23,8 @@
 import android.os.IBinder;
 import android.util.Log;
 
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.ContactLoader;
+import com.android.contacts.model.Contact;
+import com.android.contacts.model.ContactLoader;
 
 
 /**
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index 9862b6f..27bcc7a 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -16,35 +16,42 @@
 
 package com.android.contacts.activities;
 
+import android.animation.ArgbEvaluator;
 import android.animation.ValueAnimator;
-import android.app.ActionBar;
 import android.app.Activity;
 import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.res.TypedArray;
+import android.content.res.ColorStateList;
 import android.os.Bundle;
-import android.preference.PreferenceManager;
 import android.support.v4.content.ContextCompat;
+import android.support.v7.app.ActionBar;
+import android.support.v7.widget.Toolbar;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.View.OnClickListener;
 import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.view.Window;
 import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
 import android.widget.FrameLayout;
+import android.widget.ImageButton;
+import android.widget.ImageView;
 import android.widget.LinearLayout.LayoutParams;
 import android.widget.SearchView.OnCloseListener;
-import android.view.View.OnClickListener;
-import android.widget.EditText;
 import android.widget.TextView;
-import android.widget.Toolbar;
 
 import com.android.contacts.R;
 import com.android.contacts.activities.ActionBarAdapter.Listener.Action;
-import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.activities.PeopleActivity;
+import com.android.contacts.compat.CompatUtils;
 import com.android.contacts.list.ContactsRequest;
+import com.android.contacts.util.MaterialColorMapUtils;
+
+import java.util.ArrayList;
 
 /**
  * Adapter for the action bar at the top of the Contacts activity.
@@ -62,40 +69,26 @@
 
         void onAction(int action);
 
-        /**
-         * Called when the user selects a tab.  The new tab can be obtained using
-         * {@link #getCurrentTab}.
-         */
-        void onSelectedTabChanged();
-
         void onUpButtonPressed();
     }
 
     private static final String EXTRA_KEY_SEARCH_MODE = "navBar.searchMode";
     private static final String EXTRA_KEY_QUERY = "navBar.query";
-    private static final String EXTRA_KEY_SELECTED_TAB = "navBar.selectedTab";
     private static final String EXTRA_KEY_SELECTED_MODE = "navBar.selectionMode";
 
-    private static final String PERSISTENT_LAST_TAB = "actionBarAdapter.lastTab";
-
     private boolean mSelectionMode;
     private boolean mSearchMode;
     private String mQueryString;
 
     private EditText mSearchView;
     private View mClearSearchView;
-    /** The view that represents tabs when we are in portrait mode **/
-    private View mPortraitTabs;
-    /** The view that represents tabs when we are in landscape mode **/
-    private View mLandscapeTabs;
     private View mSearchContainer;
     private View mSelectionContainer;
 
-    private int mMaxPortraitTabHeight;
     private int mMaxToolbarContentInsetStart;
+    private int mActionBarAnimationDuration;
 
     private final Activity mActivity;
-    private final SharedPreferences mPrefs;
 
     private Listener mListener;
 
@@ -108,40 +101,42 @@
     private final FrameLayout mToolBarFrame;
 
     private boolean mShowHomeIcon;
+    private boolean mShowHomeAsUp;
 
-    public interface TabState {
-        public static int FAVORITES = 0;
-        public static int ALL = 1;
+    private int mSearchHintResId;
 
-        public static int COUNT = 2;
-        public static int DEFAULT = ALL;
-    }
-
-    private int mCurrentTab = TabState.DEFAULT;
+    private ValueAnimator mStatusBarAnimator;
 
     public ActionBarAdapter(Activity activity, Listener listener, ActionBar actionBar,
-            View portraitTabs, View landscapeTabs, Toolbar toolbar) {
+            Toolbar toolbar) {
+        this(activity, listener, actionBar, toolbar, R.string.hint_findContacts);
+    }
+
+    public ActionBarAdapter(Activity activity, Listener listener, ActionBar actionBar,
+            Toolbar toolbar, int searchHintResId) {
         mActivity = activity;
         mListener = listener;
         mActionBar = actionBar;
-        mPrefs = PreferenceManager.getDefaultSharedPreferences(mActivity);
-        mPortraitTabs = portraitTabs;
-        mLandscapeTabs = landscapeTabs;
         mToolbar = toolbar;
         mToolBarFrame = (FrameLayout) mToolbar.getParent();
         mMaxToolbarContentInsetStart = mToolbar.getContentInsetStart();
-        mShowHomeIcon = mActivity.getResources().getBoolean(R.bool.show_home_icon);
+        mSearchHintResId = searchHintResId;
+        mActionBarAnimationDuration =
+                mActivity.getResources().getInteger(R.integer.action_bar_animation_duration);
 
         setupSearchAndSelectionViews();
-        setupTabs(mActivity);
     }
 
-    private void setupTabs(Context context) {
-        final TypedArray attributeArray = context.obtainStyledAttributes(
-                new int[]{android.R.attr.actionBarSize});
-        mMaxPortraitTabHeight = attributeArray.getDimensionPixelSize(0, 0);
-        // Hide tabs initially
-        setPortraitTabHeight(0);
+    public void setShowHomeIcon(boolean showHomeIcon) {
+        mShowHomeIcon = showHomeIcon;
+    }
+
+    public void setShowHomeAsUp(boolean showHomeAsUp) {
+        mShowHomeAsUp = showHomeAsUp;
+    }
+
+    public View getSelectionContainer() {
+        return mSelectionContainer;
     }
 
     private void setupSearchAndSelectionViews() {
@@ -156,9 +151,11 @@
         mSearchContainer.setBackgroundColor(mActivity.getResources().getColor(
                 R.color.searchbox_background_color));
         mSearchView = (EditText) mSearchContainer.findViewById(R.id.search_view);
-        mSearchView.setHint(mActivity.getString(R.string.hint_findContacts));
+        mSearchView.setHint(mActivity.getString(mSearchHintResId));
         mSearchView.addTextChangedListener(new SearchTextWatcher());
-        mSearchContainer.findViewById(R.id.search_back_button).setOnClickListener(
+        final ImageButton searchBackButton = (ImageButton) mSearchContainer
+                .findViewById(R.id.search_back_button);
+        searchBackButton.setOnClickListener(
                 new OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -167,6 +164,7 @@
                 }
             }
         });
+        searchBackButton.getDrawable().setAutoMirrored(true);
 
         mClearSearchView = mSearchContainer.findViewById(R.id.search_close_button);
         mClearSearchView.setOnClickListener(
@@ -198,19 +196,11 @@
         if (savedState == null) {
             mSearchMode = request.isSearchMode();
             mQueryString = request.getQueryString();
-            mCurrentTab = loadLastTabPreference();
             mSelectionMode = false;
         } else {
             mSearchMode = savedState.getBoolean(EXTRA_KEY_SEARCH_MODE);
             mSelectionMode = savedState.getBoolean(EXTRA_KEY_SELECTED_MODE);
             mQueryString = savedState.getString(EXTRA_KEY_QUERY);
-
-            // Just set to the field here.  The listener will be notified by update().
-            mCurrentTab = savedState.getInt(EXTRA_KEY_SELECTED_TAB);
-        }
-        if (mCurrentTab >= TabState.COUNT || mCurrentTab < 0) {
-            // Invalid tab index was saved (b/12938207). Restore the default.
-            mCurrentTab = TabState.DEFAULT;
         }
         // Show tabs or the expanded {@link SearchView}, depending on whether or not we are in
         // search mode.
@@ -253,30 +243,6 @@
     }
 
     /**
-     * Save the current tab selection, and notify the listener.
-     */
-    public void setCurrentTab(int tab) {
-        setCurrentTab(tab, true);
-    }
-
-    /**
-     * Save the current tab selection.
-     */
-    public void setCurrentTab(int tab, boolean notifyListener) {
-        if (tab == mCurrentTab) {
-            return;
-        }
-        mCurrentTab = tab;
-
-        if (notifyListener && mListener != null) mListener.onSelectedTabChanged();
-        saveLastTabPreference(mCurrentTab);
-    }
-
-    public int getCurrentTab() {
-        return mCurrentTab;
-    }
-
-    /**
      * @return Whether in search mode, i.e. if the search view is visible/expanded.
      *
      * Note even if the action bar is in search mode, if the query is empty, the search fragment
@@ -355,6 +321,9 @@
         int newFlags = 0;
         if (mShowHomeIcon && !isSearchOrSelectionMode) {
             newFlags |= ActionBar.DISPLAY_SHOW_HOME;
+            if (mShowHomeAsUp) {
+                newFlags |= ActionBar.DISPLAY_HOME_AS_UP;
+            }
         }
         if (mSearchMode && !mSelectionMode) {
             // The search container is placed inside the toolbar. So we need to disable the
@@ -366,6 +335,9 @@
             newFlags |= ActionBar.DISPLAY_SHOW_TITLE;
             mToolbar.setContentInsetsRelative(mMaxToolbarContentInsetStart,
                     mToolbar.getContentInsetEnd());
+            mToolbar.setNavigationIcon(R.drawable.quantum_ic_menu_vd_theme_24);
+        } else {
+            mToolbar.setNavigationIcon(null);
         }
 
         if (mSelectionMode) {
@@ -389,7 +361,7 @@
     }
 
     private void update(boolean skipAnimation) {
-        updateStatusBarColor();
+        updateOverflowButtonColor();
 
         final boolean isSelectionModeChanging
                 = (mSelectionContainer.getParent() == null) == mSelectionMode;
@@ -399,23 +371,21 @@
                 = (mSearchContainer.getParent() == null) == mSearchMode;
         final boolean isTabHeightChanging = isSearchModeChanging || isSelectionModeChanging;
 
+        // Update toolbar and status bar color.
+        mToolBarFrame.setBackgroundColor(MaterialColorMapUtils.getToolBarColor(mActivity));
+        updateStatusBarColor(isSelectionModeChanging && !isSearchModeChanging);
+
         // When skipAnimation=true, it is possible that we will switch from search mode
         // to selection mode directly. So we need to remove the undesired container in addition
         // to adding the desired container.
         if (skipAnimation || isSwitchingFromSearchToSelection) {
             if (isTabHeightChanging || isSwitchingFromSearchToSelection) {
-                mToolbar.removeView(mLandscapeTabs);
                 mToolbar.removeView(mSearchContainer);
                 mToolBarFrame.removeView(mSelectionContainer);
                 if (mSelectionMode) {
-                    setPortraitTabHeight(0);
                     addSelectionContainer();
                 } else if (mSearchMode) {
-                    setPortraitTabHeight(0);
                     addSearchContainer();
-                } else {
-                    setPortraitTabHeight(mMaxPortraitTabHeight);
-                    addLandscapeViewPagerTabs();
                 }
                 updateDisplayOptions(isSearchModeChanging);
             }
@@ -424,24 +394,21 @@
 
         // Handle a switch to/from selection mode, due to UI interaction.
         if (isSelectionModeChanging) {
-            mToolbar.removeView(mLandscapeTabs);
             if (mSelectionMode) {
                 addSelectionContainer();
                 mSelectionContainer.setAlpha(0);
-                mSelectionContainer.animate().alpha(1);
-                animateTabHeightChange(mMaxPortraitTabHeight, 0);
+                mSelectionContainer.animate().alpha(1).setDuration(mActionBarAnimationDuration);
                 updateDisplayOptions(isSearchModeChanging);
             } else {
                 if (mListener != null) {
                     mListener.onAction(Action.BEGIN_STOPPING_SEARCH_AND_SELECTION_MODE);
                 }
                 mSelectionContainer.setAlpha(1);
-                animateTabHeightChange(0, mMaxPortraitTabHeight);
-                mSelectionContainer.animate().alpha(0).withEndAction(new Runnable() {
+                mSelectionContainer.animate().alpha(0).setDuration(mActionBarAnimationDuration)
+                        .withEndAction(new Runnable() {
                     @Override
                     public void run() {
                         updateDisplayOptions(isSearchModeChanging);
-                        addLandscapeViewPagerTabs();
                         mToolBarFrame.removeView(mSelectionContainer);
                     }
                 });
@@ -450,21 +417,18 @@
 
         // Handle a switch to/from search mode, due to UI interaction.
         if (isSearchModeChanging) {
-            mToolbar.removeView(mLandscapeTabs);
             if (mSearchMode) {
                 addSearchContainer();
                 mSearchContainer.setAlpha(0);
-                mSearchContainer.animate().alpha(1);
-                animateTabHeightChange(mMaxPortraitTabHeight, 0);
+                mSearchContainer.animate().alpha(1).setDuration(mActionBarAnimationDuration);
                 updateDisplayOptions(isSearchModeChanging);
             } else {
                 mSearchContainer.setAlpha(1);
-                animateTabHeightChange(0, mMaxPortraitTabHeight);
-                mSearchContainer.animate().alpha(0).withEndAction(new Runnable() {
+                mSearchContainer.animate().alpha(0).setDuration(mActionBarAnimationDuration)
+                        .withEndAction(new Runnable() {
                     @Override
                     public void run() {
                         updateDisplayOptions(isSearchModeChanging);
-                        addLandscapeViewPagerTabs();
                         mToolbar.removeView(mSearchContainer);
                     }
                 });
@@ -472,6 +436,47 @@
         }
     }
 
+    /**
+     * Find overflow menu ImageView by its content description and update its color.
+     */
+    public void updateOverflowButtonColor() {
+        final String overflowDescription = mActivity.getResources().getString(
+                R.string.abc_action_menu_overflow_description);
+        final ViewGroup decorView = (ViewGroup) mActivity.getWindow().getDecorView();
+        final ViewTreeObserver viewTreeObserver = decorView.getViewTreeObserver();
+        viewTreeObserver.addOnGlobalLayoutListener(
+                new ViewTreeObserver.OnGlobalLayoutListener() {
+                    @Override
+                    public void onGlobalLayout() {
+                        // Find the overflow ImageView.
+                        final ArrayList<View> outViews = new ArrayList<>();
+                        decorView.findViewsWithText(outViews, overflowDescription,
+                                View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
+
+                        for (View view : outViews) {
+                            if (!(view instanceof ImageView)) {
+                                continue;
+                            }
+                            final ImageView overflow = (ImageView) view;
+
+                            // Update the overflow image color.
+                            final int iconColor;
+                            if (mSelectionMode) {
+                                iconColor = mActivity.getResources().getColor(
+                                        R.color.actionbar_color_grey_solid);
+                            } else {
+                                iconColor = mActivity.getResources().getColor(
+                                        R.color.actionbar_text_color);
+                            }
+                            overflow.setImageTintList(ColorStateList.valueOf(iconColor));
+                        }
+
+                        // We're done, remove the listener.
+                        decorView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+                    }
+                });
+    }
+
     public void setSelectionCount(int selectionCount) {
         TextView textView = (TextView) mSelectionContainer.findViewById(R.id.selection_count_text);
         if (selectionCount == 0) {
@@ -482,25 +487,52 @@
         textView.setText(String.valueOf(selectionCount));
     }
 
-    private void updateStatusBarColor() {
+    public void setActionBarTitle(String title) {
+        final TextView textView =
+                (TextView) mSelectionContainer.findViewById(R.id.selection_count_text);
+        textView.setVisibility(View.VISIBLE);
+        textView.setText(title);
+    }
+
+    private void updateStatusBarColor(boolean shouldAnimate) {
         if (!CompatUtils.isLollipopCompatible()) {
             return; // we can't change the status bar color prior to Lollipop
         }
+
         if (mSelectionMode) {
-            final int cabStatusBarColor = mActivity.getResources().getColor(
-                    R.color.contextual_selection_bar_status_bar_color);
-            mActivity.getWindow().setStatusBarColor(cabStatusBarColor);
+            final int cabStatusBarColor = ContextCompat.getColor(
+                    mActivity, R.color.contextual_selection_bar_status_bar_color);
+            runStatusBarAnimation(/* colorTo */ cabStatusBarColor);
         } else {
-            final int normalStatusBarColor = ContextCompat.getColor(
-                    mActivity, R.color.primary_color_dark);
-            mActivity.getWindow().setStatusBarColor(normalStatusBarColor);
+            if (shouldAnimate) {
+                runStatusBarAnimation(/* colorTo */
+                        MaterialColorMapUtils.getStatusBarColor(mActivity));
+            } else if (mActivity instanceof PeopleActivity) {
+                ((PeopleActivity) mActivity).updateStatusBarBackground();
+            }
         }
     }
 
-    private void addLandscapeViewPagerTabs() {
-        if (mLandscapeTabs != null) {
-            mToolbar.removeView(mLandscapeTabs);
-            mToolbar.addView(mLandscapeTabs);
+    private void runStatusBarAnimation(int colorTo) {
+        final Window window = mActivity.getWindow();
+        if (window.getStatusBarColor() != colorTo) {
+            // Cancel running animation.
+            if (mStatusBarAnimator != null && mStatusBarAnimator.isRunning()) {
+                mStatusBarAnimator.cancel();
+            }
+            final int from = window.getStatusBarColor();
+            // Set up mStatusBarAnimator and run animation.
+            mStatusBarAnimator = ValueAnimator.ofObject(new ArgbEvaluator(), from, colorTo);
+            mStatusBarAnimator.addUpdateListener(
+                    new ValueAnimator.AnimatorUpdateListener() {
+                        @Override
+                        public void onAnimationUpdate(ValueAnimator animator) {
+                            window.setStatusBarColor((Integer) animator.getAnimatedValue());
+                        }
+                    });
+            mStatusBarAnimator.setDuration(mActionBarAnimationDuration);
+            mStatusBarAnimator.setStartDelay(0);
+            mStatusBarAnimator.start();
         }
     }
 
@@ -538,7 +570,6 @@
             }
             if (!mSearchMode && !mSelectionMode) {
                 mListener.onAction(Action.STOP_SEARCH_AND_SELECTION_MODE);
-                mListener.onSelectedTabChanged();
             }
         }
         updateDisplayOptionsInner();
@@ -554,7 +585,6 @@
         outState.putBoolean(EXTRA_KEY_SEARCH_MODE, mSearchMode);
         outState.putBoolean(EXTRA_KEY_SELECTED_MODE, mSelectionMode);
         outState.putString(EXTRA_KEY_QUERY, mQueryString);
-        outState.putInt(EXTRA_KEY_SELECTED_TAB, mCurrentTab);
     }
 
     public void setFocusOnSearchView() {
@@ -569,41 +599,4 @@
             imm.showSoftInput(view, 0);
         }
     }
-
-    private void saveLastTabPreference(int tab) {
-        mPrefs.edit().putInt(PERSISTENT_LAST_TAB, tab).apply();
-    }
-
-    private int loadLastTabPreference() {
-        try {
-            return mPrefs.getInt(PERSISTENT_LAST_TAB, TabState.DEFAULT);
-        } catch (IllegalArgumentException e) {
-            // Preference is corrupt?
-            return TabState.DEFAULT;
-        }
-    }
-
-    private void animateTabHeightChange(int start, int end) {
-        if (mPortraitTabs == null) {
-            return;
-        }
-        final ValueAnimator animator = ValueAnimator.ofInt(start, end);
-        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
-            @Override
-            public void onAnimationUpdate(ValueAnimator valueAnimator) {
-                int value = (Integer) valueAnimator.getAnimatedValue();
-                setPortraitTabHeight(value);
-            }
-        });
-        animator.setDuration(100).start();
-    }
-
-    private void setPortraitTabHeight(int height) {
-        if (mPortraitTabs == null) {
-            return;
-        }
-        ViewGroup.LayoutParams layoutParams = mPortraitTabs.getLayoutParams();
-        layoutParams.height = height;
-        mPortraitTabs.setLayoutParams(layoutParams);
-    }
 }
diff --git a/src/com/android/contacts/activities/AppCompatTransactionSafeActivity.java b/src/com/android/contacts/activities/AppCompatTransactionSafeActivity.java
new file mode 100644
index 0000000..c638e26
--- /dev/null
+++ b/src/com/android/contacts/activities/AppCompatTransactionSafeActivity.java
@@ -0,0 +1,66 @@
+/*
+ * 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.activities;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+
+/**
+ * A common superclass that keeps track of whether an {@link AppCompatActivity} has saved its state
+ * yet or not, copied from {@link TransactionSafeActivity},
+ * which will be deprecated after Kitkat backporting is done.
+ */
+public abstract class AppCompatTransactionSafeActivity extends AppCompatActivity {
+
+    private boolean mIsSafeToCommitTransactions;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        mIsSafeToCommitTransactions = false;
+    }
+
+    /**
+     * Returns true if it is safe to commit {@link FragmentTransaction}s at this time, based on
+     * whether {@link FragmentActivity#onSaveInstanceState} has been called or not.
+     *
+     * Make sure that the current activity calls into
+     * {@link super.onSaveInstanceState(Bundle outState)} (if that method is overridden),
+     * so the flag is properly set.
+     */
+    public boolean isSafeToCommitTransactions() {
+        return mIsSafeToCommitTransactions;
+    }
+}
diff --git a/src/com/android/contacts/activities/AttachPhotoActivity.java b/src/com/android/contacts/activities/AttachPhotoActivity.java
index 1abbecf..b25c306 100644
--- a/src/com/android/contacts/activities/AttachPhotoActivity.java
+++ b/src/com/android/contacts/activities/AttachPhotoActivity.java
@@ -39,19 +39,23 @@
 
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.ContactsActivity;
+import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.common.activity.RequestPermissionsActivity;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.ContactLoader;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountWithDataSet;
 import com.android.contacts.editor.ContactEditorUtils;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.Contact;
+import com.android.contacts.model.ContactLoader;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactDeltaList;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
 import com.android.contacts.util.ContactPhotoUtils;
+import com.google.common.base.Preconditions;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
 
 import java.io.FileNotFoundException;
 import java.util.List;
@@ -78,6 +82,8 @@
 
     private ContentResolver mContentResolver;
 
+    private ListenableFuture<List<AccountInfo>> mAccountsFuture;
+
     // Height and width (in pixels) to request for the photo - queried from the provider.
     private static int mPhotoDim;
     // Default photo dimension to use if unable to query the provider.
@@ -89,7 +95,7 @@
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+        if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
             return;
         }
 
@@ -125,6 +131,10 @@
                 }
             }
         }
+
+        // Start loading accounts in case they are needed.
+        mAccountsFuture = AccountTypeManager.getInstance(this).filterAccountsAsync(
+                AccountTypeManager.writableFilter());
     }
 
     @Override
@@ -327,7 +337,9 @@
         values.setPhoto(compressed);
 
         // Finally, invoke the ContactSaveService.
-        Log.v(TAG, "all prerequisites met, about to save photo to contact");
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "all prerequisites met, about to save photo to contact");
+        }
         Intent intent = ContactSaveService.createSaveContactIntent(
                 this,
                 deltaList,
@@ -342,17 +354,28 @@
     }
 
     private void selectAccountAndCreateContact() {
+        Preconditions.checkNotNull(mAccountsFuture, "Accounts future must be initialized first");
         // If there is no default account or the accounts have changed such that we need to
         // prompt the user again, then launch the account prompt.
-        final ContactEditorUtils editorUtils = ContactEditorUtils.getInstance(this);
-        if (editorUtils.shouldShowAccountChangedNotification()) {
-            Intent intent = new Intent(this, ContactEditorAccountsChangedActivity.class);
+        final ContactEditorUtils editorUtils = ContactEditorUtils.create(this);
+
+        // Technically this could block but in reality this method won't be called until the user
+        // presses the save button which should allow plenty of time for the accounts to
+        // finish loading. Note also that this could be stale if the accounts have changed since
+        // we requested them but that's OK since ContactEditorAccountsChangedActivity will reload
+        // the accounts
+        final List<AccountInfo> accountInfos = Futures.getUnchecked(mAccountsFuture);
+
+        final List<AccountWithDataSet> accounts = AccountInfo.extractAccounts(accountInfos);
+        if (editorUtils.shouldShowAccountChangedNotification(accounts)) {
+            Intent intent = new Intent(this, ContactEditorAccountsChangedActivity.class)
+                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
             startActivityForResult(intent, REQUEST_PICK_DEFAULT_ACCOUNT_FOR_NEW_CONTACT);
         } else {
-            // Otherwise, there should be a default account. Then either create a local contact
+            // Otherwise, there should be a default account. Then either create a null contact
             // (if default account is null) or create a contact with the specified account.
-            AccountWithDataSet defaultAccount = editorUtils.getDefaultAccount();
-            createNewRawContact(defaultAccount);
+            final AccountWithDataSet targetAccount = editorUtils.getOnlyOrDefaultAccount(accounts);
+            createNewRawContact(targetAccount);
         }
     }
 
diff --git a/src/com/android/contacts/activities/CompactContactEditorActivity.java b/src/com/android/contacts/activities/CompactContactEditorActivity.java
deleted file mode 100644
index dc16049..0000000
--- a/src/com/android/contacts/activities/CompactContactEditorActivity.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Copyright (C) 2015 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.activities;
-
-import com.android.contacts.R;
-import com.android.contacts.common.activity.RequestPermissionsActivity;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.detail.PhotoSelectionHandler;
-import com.android.contacts.editor.CompactContactEditorFragment;
-import com.android.contacts.editor.CompactPhotoSelectionFragment;
-import com.android.contacts.editor.PhotoSourceDialogFragment;
-
-import android.app.FragmentTransaction;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-
-import java.io.FileNotFoundException;
-import java.util.ArrayList;
-
-/**
- * Contact editor with only the most important fields displayed initially.
- */
-public class CompactContactEditorActivity extends ContactEditorBaseActivity implements
-        PhotoSourceDialogFragment.Listener, CompactPhotoSelectionFragment.Listener {
-
-    private static final String TAG_COMPACT_EDITOR = "compact_editor";
-    private static final String TAG_PHOTO_SELECTION = "photo_selector";
-
-    private static final String STATE_PHOTO_MODE = "photo_mode";
-    private static final String STATE_IS_PHOTO_SELECTION = "is_photo_selection";
-    private static final String STATE_ACTION_BAR_TITLE = "action_bar_title";
-    private static final String STATE_PHOTO_URI = "photo_uri";
-
-    /**
-     * Displays a PopupWindow with photo edit options.
-     */
-    private final class CompactPhotoSelectionHandler extends PhotoSelectionHandler {
-
-        /**
-         * Receiver of photo edit option callbacks.
-         */
-        private final class CompactPhotoActionListener extends PhotoActionListener {
-
-            @Override
-            public void onRemovePictureChosen() {
-                getEditorFragment().removePhoto();
-                if (mIsPhotoSelection) {
-                    showEditorFragment();
-                }
-            }
-
-            @Override
-            public void onPhotoSelected(Uri uri) throws FileNotFoundException {
-                mPhotoUri = uri;
-                getEditorFragment().updatePhoto(uri);
-                if (mIsPhotoSelection) {
-                    showEditorFragment();
-                }
-
-                // Re-create the photo handler the next time we need it so that additional photo
-                // selections create a new temp file (and don't hit the one that was just added
-                // to the cache).
-                mPhotoSelectionHandler = null;
-            }
-
-            @Override
-            public Uri getCurrentPhotoUri() {
-                return mPhotoUri;
-            }
-
-            @Override
-            public void onPhotoSelectionDismissed() {
-                if (mIsPhotoSelection) {
-                    showEditorFragment();
-                }
-            }
-        }
-
-        private final CompactPhotoActionListener mPhotoActionListener;
-        private boolean mIsPhotoSelection;
-
-        public CompactPhotoSelectionHandler(int photoMode, boolean isPhotoSelection) {
-            // We pass a null changeAnchorView since we are overriding onClick so that we
-            // can show the photo options in a dialog instead of a ListPopupWindow (which would
-            // be anchored at changeAnchorView).
-
-            // TODO: empty raw contact delta list
-            super(CompactContactEditorActivity.this, /* changeAnchorView =*/ null, photoMode,
-                    /* isDirectoryContact =*/ false, new RawContactDeltaList());
-            mPhotoActionListener = new CompactPhotoActionListener();
-            mIsPhotoSelection = isPhotoSelection;
-        }
-
-        @Override
-        public PhotoActionListener getListener() {
-            return mPhotoActionListener;
-        }
-
-        @Override
-        protected void startPhotoActivity(Intent intent, int requestCode, Uri photoUri) {
-            mPhotoUri = photoUri;
-            startActivityForResult(intent, requestCode);
-        }
-    }
-
-    private CompactPhotoSelectionFragment mPhotoSelectionFragment;
-    private CompactPhotoSelectionHandler mPhotoSelectionHandler;
-    private Uri mPhotoUri;
-    private int mPhotoMode;
-    private boolean mIsPhotoSelection;
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        super.onCreate(savedState);
-
-        if (RequestPermissionsActivity.startPermissionActivity(this)) {
-            return;
-        }
-
-        setContentView(R.layout.compact_contact_editor_activity);
-
-        if (savedState == null) {
-            // Create the editor and photo selection fragments
-            mFragment = new CompactContactEditorFragment();
-            mPhotoSelectionFragment = new CompactPhotoSelectionFragment();
-            getFragmentManager().beginTransaction()
-                    .add(R.id.fragment_container, getEditorFragment(), TAG_COMPACT_EDITOR)
-                    .add(R.id.fragment_container, mPhotoSelectionFragment, TAG_PHOTO_SELECTION)
-                    .hide(mPhotoSelectionFragment)
-                    .commit();
-        } else {
-            // Restore state
-            mPhotoMode = savedState.getInt(STATE_PHOTO_MODE);
-            mIsPhotoSelection = savedState.getBoolean(STATE_IS_PHOTO_SELECTION);
-            mActionBarTitleResId = savedState.getInt(STATE_ACTION_BAR_TITLE);
-            mPhotoUri = Uri.parse(savedState.getString(STATE_PHOTO_URI));
-
-            // Show/hide the editor and photo selection fragments (w/o animations)
-            mFragment = (CompactContactEditorFragment) getFragmentManager()
-                    .findFragmentByTag(TAG_COMPACT_EDITOR);
-            mPhotoSelectionFragment = (CompactPhotoSelectionFragment) getFragmentManager()
-                    .findFragmentByTag(TAG_PHOTO_SELECTION);
-            final FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
-            if (mIsPhotoSelection) {
-                fragmentTransaction.hide(getEditorFragment()).show(mPhotoSelectionFragment);
-                getActionBar().setTitle(getResources().getString(R.string.photo_picker_title));
-            } else {
-                fragmentTransaction.show(getEditorFragment()).hide(mPhotoSelectionFragment);
-                getActionBar().setTitle(getResources().getString(mActionBarTitleResId));
-            }
-            fragmentTransaction.commit();
-        }
-
-        // Set listeners
-        mFragment.setListener(mFragmentListener);
-        mPhotoSelectionFragment.setListener(this);
-
-        // Load editor data (even if it's hidden)
-        final String action = getIntent().getAction();
-        final Uri uri = Intent.ACTION_EDIT.equals(action) ? getIntent().getData() : null;
-        mFragment.load(action, uri, getIntent().getExtras());
-    }
-
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt(STATE_PHOTO_MODE, mPhotoMode);
-        outState.putBoolean(STATE_IS_PHOTO_SELECTION, mIsPhotoSelection);
-        outState.putInt(STATE_ACTION_BAR_TITLE, mActionBarTitleResId);
-        outState.putString(STATE_PHOTO_URI,
-                mPhotoUri != null ? mPhotoUri.toString() : Uri.EMPTY.toString());
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (mPhotoSelectionHandler == null) {
-            mPhotoSelectionHandler = (CompactPhotoSelectionHandler) getPhotoSelectionHandler();
-        }
-        if (mPhotoSelectionHandler.handlePhotoActivityResult(requestCode, resultCode, data)) {
-            return;
-        }
-        super.onActivityResult(requestCode, resultCode, data);
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (mIsPhotoSelection) {
-            mIsPhotoSelection = false;
-            showEditorFragment();
-        } else {
-            super.onBackPressed();
-        }
-    }
-
-    /**
-     * Displays photos from all raw contacts, clicking one set it as the super primary photo.
-     */
-    public void selectPhoto(ArrayList<CompactPhotoSelectionFragment.Photo> photos, int photoMode) {
-        mPhotoMode = photoMode;
-        mIsPhotoSelection = true;
-        mPhotoSelectionFragment.setPhotos(photos, photoMode);
-        showPhotoSelectionFragment();
-    }
-
-    /**
-     * Opens a dialog showing options for the user to change their photo (take, choose, or remove
-     * photo).
-     */
-    public void changePhoto(int photoMode) {
-        mPhotoMode = photoMode;
-        mIsPhotoSelection = false;
-        PhotoSourceDialogFragment.show(this, mPhotoMode);
-    }
-
-    private void showPhotoSelectionFragment() {
-        getFragmentManager().beginTransaction()
-                .setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
-                .hide(getEditorFragment())
-                .show(mPhotoSelectionFragment)
-                .commit();
-        getActionBar().setTitle(getResources().getString(R.string.photo_picker_title));
-    }
-
-    private void showEditorFragment() {
-        getFragmentManager().beginTransaction()
-                .setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
-                .hide(mPhotoSelectionFragment)
-                .show((CompactContactEditorFragment) mFragment)
-                .commit();
-        getActionBar().setTitle(getResources().getString(mActionBarTitleResId));
-        mIsPhotoSelection = false;
-    }
-
-    @Override
-    public void onRemovePictureChosen() {
-        getPhotoSelectionHandler().getListener().onRemovePictureChosen();
-    }
-
-    @Override
-    public void onTakePhotoChosen() {
-        getPhotoSelectionHandler().getListener().onTakePhotoChosen();
-    }
-
-    @Override
-    public void onPickFromGalleryChosen() {
-        getPhotoSelectionHandler().getListener().onPickFromGalleryChosen();
-    }
-
-    @Override
-    public void onPhotoSelected(CompactPhotoSelectionFragment.Photo photo) {
-        getEditorFragment().setPrimaryPhoto(photo);
-        showEditorFragment();
-    }
-
-    private PhotoSelectionHandler getPhotoSelectionHandler() {
-        if (mPhotoSelectionHandler == null) {
-            mPhotoSelectionHandler = new CompactPhotoSelectionHandler(
-                    mPhotoMode, mIsPhotoSelection);
-        }
-        return mPhotoSelectionHandler;
-    }
-
-    private CompactContactEditorFragment getEditorFragment() {
-        return (CompactContactEditorFragment) mFragment;
-    }
-}
diff --git a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
deleted file mode 100644
index f4e8c78..0000000
--- a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
+++ /dev/null
@@ -1,909 +0,0 @@
-/*
- * Copyright (C) 2011 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.activities;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.app.ProgressDialog;
-import android.content.AsyncQueryHandler;
-import android.content.ContentProviderOperation;
-import android.content.ContentProviderResult;
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.Context;
-import android.content.Intent;
-import android.content.OperationApplicationException;
-import android.database.Cursor;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.net.Uri;
-import android.net.Uri.Builder;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.Im;
-import android.provider.ContactsContract.CommonDataKinds.Nickname;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.RawContacts;
-import android.provider.ContactsContract.RawContactsEntity;
-import android.telephony.PhoneNumberUtils;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.android.contacts.R;
-import com.android.contacts.editor.Editor;
-import com.android.contacts.editor.EditorUiUtils;
-import com.android.contacts.editor.ViewIdGenerator;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.RawContact;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.util.DialogManager;
-import com.android.contacts.common.util.EmptyService;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * This is a dialog-themed activity for confirming the addition of a detail to an existing contact
- * (once the user has selected this contact from a list of all contacts). The incoming intent
- * must have an extra with max 1 phone or email specified, using
- * {@link android.provider.ContactsContract.Intents.Insert#PHONE} with type
- * {@link android.provider.ContactsContract.Intents.Insert#PHONE_TYPE} or
- * {@link android.provider.ContactsContract.Intents.Insert#EMAIL} with type
- * {@link android.provider.ContactsContract.Intents.Insert#EMAIL_TYPE} intent keys.
- *
- * If the selected contact doesn't contain editable raw_contacts, it'll create a new raw_contact
- * on the first editable account found, and the data will be added to this raw_contact.  The newly
- * created raw_contact will be joined with the selected contact with aggregation-exceptions.
- *
- * TODO: Don't open this activity if there's no editable accounts.
- * If there's no editable accounts on the system, we'll set {@link #mIsReadOnly} and the dialog
- * just says "contact is not editable".  It's slightly misleading because this really means
- * "there's no editable accounts", but in this case we shouldn't show the contact picker in the
- * first place.
- * Note when there's no accounts, it *is* okay to show the picker / dialog, because the local-only
- * contacts are writable.
- */
-public class ConfirmAddDetailActivity extends Activity implements
-        DialogManager.DialogShowingViewActivity {
-
-    private static final String TAG = "ConfirmAdd"; // The class name is too long to be a tag.
-    private static final boolean VERBOSE_LOGGING = Log.isLoggable(TAG, Log.VERBOSE);
-
-    private LayoutInflater mInflater;
-    private View mRootView;
-    private TextView mDisplayNameView;
-    private TextView mReadOnlyWarningView;
-    private ImageView mPhotoView;
-    private ViewGroup mEditorContainerView;
-    private static WeakReference<ProgressDialog> sProgressDialog;
-
-    private AccountTypeManager mAccountTypeManager;
-    private ContentResolver mContentResolver;
-
-    private AccountType mEditableAccountType;
-    private Uri mContactUri;
-    private long mContactId;
-    private String mDisplayName;
-    private String mLookupKey;
-    private boolean mIsReadOnly;
-
-    private QueryHandler mQueryHandler;
-
-    /** {@link RawContactDeltaList} for the entire selected contact. */
-    private RawContactDeltaList mEntityDeltaList;
-
-    /** {@link RawContactDeltaList} for the editable account */
-    private RawContactDelta mRawContactDelta;
-
-    private String mMimetype = Phone.CONTENT_ITEM_TYPE;
-
-    /**
-     * DialogManager may be needed if the user wants to apply a "custom" label to the contact detail
-     */
-    private final DialogManager mDialogManager = new DialogManager(this);
-
-    /**
-     * PhotoQuery contains the projection used for retrieving the name and photo
-     * ID of a contact.
-     */
-    private interface ContactQuery {
-        final String[] COLUMNS = new String[] {
-            Contacts._ID,
-            Contacts.LOOKUP_KEY,
-            Contacts.PHOTO_ID,
-            Contacts.DISPLAY_NAME,
-        };
-        final int _ID = 0;
-        final int LOOKUP_KEY = 1;
-        final int PHOTO_ID = 2;
-        final int DISPLAY_NAME = 3;
-    }
-
-    /**
-     * PhotoQuery contains the projection used for retrieving the raw bytes of
-     * the contact photo.
-     */
-    private interface PhotoQuery {
-        final String[] COLUMNS = new String[] {
-            Photo.PHOTO
-        };
-
-        final int PHOTO = 0;
-    }
-
-    /**
-     * ExtraInfoQuery contains the projection used for retrieving the extra info
-     * on a contact (only needed if someone else exists with the same name as
-     * this contact).
-     */
-    private interface ExtraInfoQuery {
-        final String[] COLUMNS = new String[] {
-            RawContacts.CONTACT_ID,
-            Data.MIMETYPE,
-            Data.DATA1,
-        };
-        final int CONTACT_ID = 0;
-        final int MIMETYPE = 1;
-        final int DATA1 = 2;
-    }
-
-    /**
-     * List of mimetypes to use in order of priority to display for a contact in
-     * a disambiguation case. For example, if the contact does not have a
-     * nickname, use the email field, and etc.
-     */
-    private static final String[] MIME_TYPE_PRIORITY_LIST = new String[] {
-            Nickname.CONTENT_ITEM_TYPE, Email.CONTENT_ITEM_TYPE, Im.CONTENT_ITEM_TYPE,
-            StructuredPostal.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE };
-
-    private static final int TOKEN_CONTACT_INFO = 0;
-    private static final int TOKEN_PHOTO_QUERY = 1;
-    private static final int TOKEN_DISAMBIGUATION_QUERY = 2;
-    private static final int TOKEN_EXTRA_INFO_QUERY = 3;
-
-    private final OnClickListener mDetailsButtonClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            if (mIsReadOnly) {
-                onSaveCompleted(true);
-            } else {
-                doSaveAction();
-            }
-        }
-    };
-
-    private final OnClickListener mDoneButtonClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            doSaveAction();
-        }
-    };
-
-    private final OnClickListener mCancelButtonClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            setResult(RESULT_CANCELED);
-            finish();
-        }
-    };
-
-    @Override
-    protected void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        mContentResolver = getContentResolver();
-
-        final Intent intent = getIntent();
-        mContactUri = intent.getData();
-
-        if (mContactUri == null) {
-            setResult(RESULT_CANCELED);
-            finish();
-        }
-
-        Bundle extras = intent.getExtras();
-        if (extras != null) {
-            if (extras.containsKey(ContactsContract.Intents.Insert.PHONE)) {
-                mMimetype = Phone.CONTENT_ITEM_TYPE;
-            } else if (extras.containsKey(ContactsContract.Intents.Insert.EMAIL)) {
-                mMimetype = Email.CONTENT_ITEM_TYPE;
-            } else {
-                throw new IllegalStateException("Error: No valid mimetype found in intent extras");
-            }
-        }
-
-        mAccountTypeManager = AccountTypeManager.getInstance(this);
-
-        setContentView(R.layout.confirm_add_detail_activity);
-
-        mRootView = findViewById(R.id.root_view);
-        mReadOnlyWarningView = (TextView) findViewById(R.id.read_only_warning);
-
-        // Setup "header" (containing contact info) to save the detail and then go to the editor
-        findViewById(R.id.open_details_push_layer).setOnClickListener(mDetailsButtonClickListener);
-
-        // Setup "done" button to save the detail to the contact and exit.
-        findViewById(R.id.btn_done).setOnClickListener(mDoneButtonClickListener);
-
-        // Setup "cancel" button to return to previous activity.
-        findViewById(R.id.btn_cancel).setOnClickListener(mCancelButtonClickListener);
-
-        // Retrieve references to all the Views in the dialog activity.
-        mDisplayNameView = (TextView) findViewById(R.id.name);
-        mPhotoView = (ImageView) findViewById(R.id.photo);
-        mPhotoView.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
-                getResources(), false, null));
-
-        mEditorContainerView = (ViewGroup) findViewById(R.id.editor_container);
-
-        resetAsyncQueryHandler();
-        startContactQuery(mContactUri);
-
-        new QueryEntitiesTask(this).execute(intent);
-    }
-
-    @Override
-    public DialogManager getDialogManager() {
-        return mDialogManager;
-    }
-
-    @Override
-    protected Dialog onCreateDialog(int id, Bundle args) {
-        if (DialogManager.isManagedId(id)) return mDialogManager.onCreateDialog(id, args);
-
-        // Nobody knows about the Dialog
-        Log.w(TAG, "Unknown dialog requested, id: " + id + ", args: " + args);
-        return null;
-    }
-
-    /**
-     * Reset the query handler by creating a new QueryHandler instance.
-     */
-    private void resetAsyncQueryHandler() {
-        // the api AsyncQueryHandler.cancelOperation() doesn't really work. Since we really
-        // need the old async queries to be cancelled, let's do it the hard way.
-        mQueryHandler = new QueryHandler(mContentResolver);
-    }
-
-    /**
-     * Internal method to query contact by Uri.
-     *
-     * @param contactUri the contact uri
-     */
-    private void startContactQuery(Uri contactUri) {
-        mQueryHandler.startQuery(TOKEN_CONTACT_INFO, contactUri, contactUri, ContactQuery.COLUMNS,
-                null, null, null);
-    }
-
-    /**
-     * Internal method to query contact photo by photo id and uri.
-     *
-     * @param photoId the photo id.
-     * @param lookupKey the lookup uri.
-     */
-    private void startPhotoQuery(long photoId, Uri lookupKey) {
-        mQueryHandler.startQuery(TOKEN_PHOTO_QUERY, lookupKey,
-                ContentUris.withAppendedId(Data.CONTENT_URI, photoId),
-                PhotoQuery.COLUMNS, null, null, null);
-    }
-
-    /**
-     * Internal method to query for contacts with a given display name.
-     *
-     * @param contactDisplayName the display name to look for.
-     */
-    private void startDisambiguationQuery(String contactDisplayName) {
-        // Apply a limit of 1 result to the query because we only need to
-        // determine whether or not at least one other contact has the same
-        // name. We don't need to find ALL other contacts with the same name.
-        final Builder builder = Contacts.CONTENT_URI.buildUpon();
-        builder.appendQueryParameter("limit", String.valueOf(1));
-        final Uri uri = builder.build();
-
-        final String displayNameSelection;
-        final String[] selectionArgs;
-        if (TextUtils.isEmpty(contactDisplayName)) {
-            displayNameSelection = Contacts.DISPLAY_NAME_PRIMARY + " IS NULL";
-            selectionArgs = new String[] { String.valueOf(mContactId) };
-        } else {
-            displayNameSelection = Contacts.DISPLAY_NAME_PRIMARY + " = ?";
-            selectionArgs = new String[] { contactDisplayName, String.valueOf(mContactId) };
-        }
-        mQueryHandler.startQuery(TOKEN_DISAMBIGUATION_QUERY, null, uri,
-                new String[] { Contacts._ID } /* unused projection but a valid one was needed */,
-                displayNameSelection + " AND " + Contacts.PHOTO_ID + " IS NULL AND "
-                + Contacts._ID + " <> ?", selectionArgs, null);
-    }
-
-    /**
-     * Internal method to query for extra data fields for this contact.
-     */
-    private void startExtraInfoQuery() {
-        mQueryHandler.startQuery(TOKEN_EXTRA_INFO_QUERY, null, Data.CONTENT_URI,
-                ExtraInfoQuery.COLUMNS, RawContacts.CONTACT_ID + " = ?",
-                new String[] { String.valueOf(mContactId) }, null);
-    }
-
-    private static class QueryEntitiesTask extends AsyncTask<Intent, Void, RawContactDeltaList> {
-
-        private ConfirmAddDetailActivity activityTarget;
-        private String mSelection;
-
-        public QueryEntitiesTask(ConfirmAddDetailActivity target) {
-            activityTarget = target;
-        }
-
-        @Override
-        protected RawContactDeltaList doInBackground(Intent... params) {
-
-            final Intent intent = params[0];
-
-            final ContentResolver resolver = activityTarget.getContentResolver();
-
-            // Handle both legacy and new authorities
-            final Uri data = intent.getData();
-            final String authority = data.getAuthority();
-            final String mimeType = intent.resolveType(resolver);
-
-            mSelection = "0";
-            String selectionArg = null;
-            if (ContactsContract.AUTHORITY.equals(authority)) {
-                if (Contacts.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                    // Handle selected aggregate
-                    final long contactId = ContentUris.parseId(data);
-                    selectionArg = String.valueOf(contactId);
-                    mSelection = RawContacts.CONTACT_ID + "=?";
-                } else if (RawContacts.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                    final long rawContactId = ContentUris.parseId(data);
-                    final long contactId = queryForContactId(resolver, rawContactId);
-                    selectionArg = String.valueOf(contactId);
-                    mSelection = RawContacts.CONTACT_ID + "=?";
-                }
-            } else if (android.provider.Contacts.AUTHORITY.equals(authority)) {
-                final long rawContactId = ContentUris.parseId(data);
-                selectionArg = String.valueOf(rawContactId);
-                mSelection = Data.RAW_CONTACT_ID + "=?";
-            }
-
-            // Note that this query does not need to concern itself with whether the contact is
-            // the user's profile, since the profile does not show up in the picker.
-            return RawContactDeltaList.fromQuery(RawContactsEntity.CONTENT_URI,
-                    activityTarget.getContentResolver(), mSelection,
-                    new String[] { selectionArg }, null);
-        }
-
-        private static long queryForContactId(ContentResolver resolver, long rawContactId) {
-            Cursor contactIdCursor = null;
-            long contactId = -1;
-            try {
-                contactIdCursor = resolver.query(RawContacts.CONTENT_URI,
-                        new String[] { RawContacts.CONTACT_ID },
-                        RawContacts._ID + "=?", new String[] { String.valueOf(rawContactId) },
-                        null);
-                if (contactIdCursor != null && contactIdCursor.moveToFirst()) {
-                    contactId = contactIdCursor.getLong(0);
-                }
-            } finally {
-                if (contactIdCursor != null) {
-                    contactIdCursor.close();
-                }
-            }
-            return contactId;
-        }
-
-        @Override
-        protected void onPostExecute(RawContactDeltaList entityList) {
-            if (activityTarget.isFinishing()) {
-                return;
-            }
-            if ((entityList == null) || (entityList.size() == 0)) {
-                Log.e(TAG, "Contact not found.");
-                activityTarget.finish();
-                return;
-            }
-
-            activityTarget.setEntityDeltaList(entityList);
-        }
-    }
-
-    private class QueryHandler extends AsyncQueryHandler {
-
-        public QueryHandler(ContentResolver cr) {
-            super(cr);
-        }
-
-        @Override
-        protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
-            try {
-                if (this != mQueryHandler) {
-                    Log.d(TAG, "onQueryComplete: discard result, the query handler is reset!");
-                    return;
-                }
-                if (ConfirmAddDetailActivity.this.isFinishing()) {
-                    return;
-                }
-
-                switch (token) {
-                    case TOKEN_PHOTO_QUERY: {
-                        // Set the photo
-                        Bitmap photoBitmap = null;
-                        if (cursor != null && cursor.moveToFirst()
-                                && !cursor.isNull(PhotoQuery.PHOTO)) {
-                            byte[] photoData = cursor.getBlob(PhotoQuery.PHOTO);
-                            photoBitmap = BitmapFactory.decodeByteArray(photoData, 0,
-                                    photoData.length, null);
-                        }
-
-                        if (photoBitmap != null) {
-                            mPhotoView.setImageBitmap(photoBitmap);
-                        }
-
-                        break;
-                    }
-                    case TOKEN_CONTACT_INFO: {
-                        // Set the contact's name
-                        if (cursor != null && cursor.moveToFirst()) {
-                            // Get the cursor values
-                            mDisplayName = cursor.getString(ContactQuery.DISPLAY_NAME);
-                            mLookupKey = cursor.getString(ContactQuery.LOOKUP_KEY);
-                            setDefaultContactImage(mDisplayName, mLookupKey);
-                            final long photoId = cursor.getLong(ContactQuery.PHOTO_ID);
-
-                            // If there is no photo ID, then do a disambiguation
-                            // query because other contacts could have the same
-                            // name as this contact.
-                            if (photoId == 0) {
-                                mContactId = cursor.getLong(ContactQuery._ID);
-                                startDisambiguationQuery(mDisplayName);
-                            } else if (TextUtils.isEmpty(mLookupKey)) {
-                                finish();
-                                return;
-                            } else {
-                                // Otherwise do the photo query.
-                                Uri lookupUri = Contacts.getLookupUri(mContactId, mLookupKey);
-                                startPhotoQuery(photoId, lookupUri);
-                                // Display the name because there is no
-                                // disambiguation query.
-                                setDisplayName();
-                                showDialogContent();
-                            }
-                        }
-                        break;
-                    }
-                    case TOKEN_DISAMBIGUATION_QUERY: {
-                        // If a cursor was returned with more than 0 results,
-                        // then at least one other contact exists with the same
-                        // name as this contact. Extra info on this contact must
-                        // be displayed to disambiguate the contact, so retrieve
-                        // those additional fields. Otherwise, no other contacts
-                        // with this name exists, so do nothing further.
-                        if (cursor != null && cursor.getCount() > 0) {
-                            startExtraInfoQuery();
-                        } else {
-                            // If there are no other contacts with this name,
-                            // then display the name.
-                            setDisplayName();
-                            showDialogContent();
-                        }
-                        break;
-                    }
-                    case TOKEN_EXTRA_INFO_QUERY: {
-                        // This case should only occur if there are one or more
-                        // other contacts with the same contact name.
-                        if (cursor != null && cursor.moveToFirst()) {
-                            HashMap<String, String> hashMapCursorData = new
-                                    HashMap<String, String>();
-
-                            // Convert the cursor data into a hashmap of
-                            // (mimetype, data value) pairs. If a contact has
-                            // multiple values with the same mimetype, it's fine
-                            // to override that hashmap entry because we only
-                            // need one value of that type.
-                            while (!cursor.isAfterLast()) {
-                                final String mimeType = cursor.getString(ExtraInfoQuery.MIMETYPE);
-                                if (!TextUtils.isEmpty(mimeType)) {
-                                    String value = cursor.getString(ExtraInfoQuery.DATA1);
-                                    if (!TextUtils.isEmpty(value)) {
-                                        // As a special case, phone numbers
-                                        // should be formatted in a specific way.
-                                        if (Phone.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                                            value = PhoneNumberUtils.formatNumber(value);
-                                        }
-                                        hashMapCursorData.put(mimeType, value);
-                                    }
-                                }
-                                cursor.moveToNext();
-                            }
-
-                            // Find the first non-empty field according to the
-                            // mimetype priority list and display this under the
-                            // contact's display name to disambiguate the contact.
-                            for (String mimeType : MIME_TYPE_PRIORITY_LIST) {
-                                if (hashMapCursorData.containsKey(mimeType)) {
-                                    setDisplayName();
-                                    setExtraInfoField(hashMapCursorData.get(mimeType));
-                                    break;
-                                }
-                            }
-                            showDialogContent();
-                        }
-                        break;
-                    }
-                }
-            } finally {
-                if (cursor != null) {
-                    cursor.close();
-                }
-            }
-        }
-    }
-
-    private void setEntityDeltaList(RawContactDeltaList entityList) {
-        if (entityList == null) {
-            throw new IllegalStateException();
-        }
-        if (VERBOSE_LOGGING) {
-            Log.v(TAG, "setEntityDeltaList: " + entityList);
-        }
-
-        mEntityDeltaList = entityList;
-
-        // Find the editable raw_contact.
-        mRawContactDelta = mEntityDeltaList.getFirstWritableRawContact(this);
-
-        // If no editable raw_contacts are found, create one.
-        if (mRawContactDelta == null) {
-            mRawContactDelta = addEditableRawContact(this, mEntityDeltaList);
-
-            if ((mRawContactDelta != null) && VERBOSE_LOGGING) {
-                Log.v(TAG, "setEntityDeltaList: created editable raw_contact " + entityList);
-            }
-        }
-
-        if (mRawContactDelta == null) {
-            // Selected contact is read-only, and there's no editable account.
-            mIsReadOnly = true;
-            mEditableAccountType = null;
-        } else {
-            mIsReadOnly = false;
-
-            mEditableAccountType = mRawContactDelta.getRawContactAccountType(this);
-
-            // Handle any incoming values that should be inserted
-            final Bundle extras = getIntent().getExtras();
-            if (extras != null && extras.size() > 0) {
-                // If there are any intent extras, add them as additional fields in the
-                // RawContactDelta.
-                RawContactModifier.parseExtras(this, mEditableAccountType, mRawContactDelta,
-                        extras);
-            }
-        }
-
-        bindEditor();
-    }
-
-    /**
-     * Create an {@link RawContactDelta} for a raw_contact on the first editable account found, and add
-     * to the list.  Also copy the structured name from an existing (read-only) raw_contact to the
-     * new one, if any of the read-only contacts has a name.
-     */
-    private static RawContactDelta addEditableRawContact(Context context,
-            RawContactDeltaList entityDeltaList) {
-        // First, see if there's an editable account.
-        final AccountTypeManager accounts = AccountTypeManager.getInstance(context);
-        final List<AccountWithDataSet> editableAccounts = accounts.getAccounts(true);
-        if (editableAccounts.size() == 0) {
-            // No editable account type found.  The dialog will be read-only mode.
-            return null;
-        }
-        final AccountWithDataSet editableAccount = editableAccounts.get(0);
-        final AccountType accountType = accounts.getAccountType(
-                editableAccount.type, editableAccount.dataSet);
-
-        // Create a new RawContactDelta for the new raw_contact.
-        final RawContact rawContact = new RawContact();
-        rawContact.setAccount(editableAccount);
-
-        final RawContactDelta entityDelta = new RawContactDelta(ValuesDelta.fromAfter(
-                rawContact.getValues()));
-
-        // Then, copy the structure name from an existing (read-only) raw_contact.
-        for (RawContactDelta entity : entityDeltaList) {
-            final ArrayList<ValuesDelta> readOnlyNames =
-                    entity.getMimeEntries(StructuredName.CONTENT_ITEM_TYPE);
-            if ((readOnlyNames != null) && (readOnlyNames.size() > 0)) {
-                final ValuesDelta readOnlyName = readOnlyNames.get(0);
-                final ValuesDelta newName = RawContactModifier.ensureKindExists(entityDelta,
-                        accountType, StructuredName.CONTENT_ITEM_TYPE);
-
-                // Copy all the data fields.
-                newName.copyStructuredNameFieldsFrom(readOnlyName);
-                break;
-            }
-        }
-
-        // Add the new RawContactDelta to the list.
-        entityDeltaList.add(entityDelta);
-
-        return entityDelta;
-    }
-
-    /**
-     * Rebuild the editor to match our underlying {@link #mEntityDeltaList} object.
-     */
-    private void bindEditor() {
-        if (mEntityDeltaList == null) {
-            throw new IllegalStateException();
-        }
-
-        // If no valid raw contact (to insert the data) was found, we won't have an editable
-        // account type to use. In this case, display an error message and hide the "OK" button.
-        if (mIsReadOnly) {
-            mReadOnlyWarningView.setText(getString(R.string.contact_read_only));
-            mReadOnlyWarningView.setVisibility(View.VISIBLE);
-            mEditorContainerView.setVisibility(View.GONE);
-            findViewById(R.id.btn_done).setVisibility(View.GONE);
-            // Nothing more to be done, just show the UI
-            showDialogContent();
-            return;
-        }
-
-        // Otherwise display an editor that allows the user to add the data to this raw contact.
-        for (DataKind kind : mEditableAccountType.getSortedDataKinds()) {
-            // Skip kind that are not editable
-            if (!kind.editable) continue;
-            if (mMimetype.equals(kind.mimeType)) {
-                final ArrayList<ValuesDelta> deltas = mRawContactDelta.getMimeEntries(mMimetype);
-                if (deltas != null) {
-                    for (ValuesDelta valuesDelta : deltas) {
-                        // Skip entries that aren't visible
-                        if (!valuesDelta.isVisible()) continue;
-                        if (valuesDelta.isInsert()) {
-                            inflateEditorView(kind, valuesDelta, mRawContactDelta);
-                            return;
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Creates an EditorView for the given entry. This function must be used while constructing
-     * the views corresponding to the the object-model. The resulting EditorView is also added
-     * to the end of mEditors
-     */
-    private void inflateEditorView(DataKind dataKind, ValuesDelta valuesDelta, RawContactDelta state) {
-        final int layoutResId = EditorUiUtils.getLayoutResourceId(dataKind.mimeType);
-        final View view = mInflater.inflate(layoutResId, mEditorContainerView,
-                false);
-
-        if (view instanceof Editor) {
-            Editor editor = (Editor) view;
-            // Don't allow deletion of the field because there is only 1 detail in this editor.
-            editor.setDeletable(false);
-            editor.setValues(dataKind, valuesDelta, state, false, new ViewIdGenerator());
-        }
-
-        mEditorContainerView.addView(view);
-    }
-
-    /**
-     * Set the display name to the correct TextView. Don't do this until it is
-     * certain there is no need for a disambiguation field (otherwise the screen
-     * will flicker because the name will be centered and then moved upwards).
-     */
-    private void setDisplayName() {
-        mDisplayNameView.setText(mDisplayName);
-    }
-
-    /**
-     * Set the TextView (for extra contact info) with the given value and make the
-     * TextView visible.
-     */
-    private void setExtraInfoField(String value) {
-        TextView extraTextView = (TextView) findViewById(R.id.extra_info);
-        extraTextView.setVisibility(View.VISIBLE);
-        extraTextView.setText(value);
-    }
-
-    private void setDefaultContactImage(String displayName, String lookupKey) {
-        mPhotoView.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
-                getResources(), false,
-                new DefaultImageRequest(displayName, lookupKey, false /* isCircular */)));
-    }
-
-    /**
-     * Shows all the contents of the dialog to the user at one time. This should only be called
-     * once all the queries have completed, otherwise the screen will flash as additional data
-     * comes in.
-     */
-    private void showDialogContent() {
-        mRootView.setVisibility(View.VISIBLE);
-    }
-
-    /**
-     * Saves or creates the contact based on the mode, and if successful
-     * finishes the activity.
-     */
-    private void doSaveAction() {
-        final PersistTask task = new PersistTask(this, mAccountTypeManager);
-        task.execute(mEntityDeltaList);
-    }
-
-    /**
-     * Background task for persisting edited contact data, using the changes
-     * defined by a set of {@link RawContactDelta}. This task starts
-     * {@link EmptyService} to make sure the background thread can finish
-     * persisting in cases where the system wants to reclaim our process.
-     */
-    private static class PersistTask extends AsyncTask<RawContactDeltaList, Void, Integer> {
-        // In the future, use ContactSaver instead of WeakAsyncTask because of
-        // the danger of the activity being null during a save action
-        private static final int PERSIST_TRIES = 3;
-
-        private static final int RESULT_UNCHANGED = 0;
-        private static final int RESULT_SUCCESS = 1;
-        private static final int RESULT_FAILURE = 2;
-
-        private ConfirmAddDetailActivity activityTarget;
-
-        private AccountTypeManager mAccountTypeManager;
-
-        public PersistTask(ConfirmAddDetailActivity target, AccountTypeManager accountTypeManager) {
-            activityTarget = target;
-            mAccountTypeManager = accountTypeManager;
-        }
-
-        @Override
-        protected void onPreExecute() {
-            sProgressDialog = new WeakReference<ProgressDialog>(ProgressDialog.show(activityTarget,
-                    null, activityTarget.getText(R.string.savingContact)));
-
-            // Before starting this task, start an empty service to protect our
-            // process from being reclaimed by the system.
-            final Context context = activityTarget;
-            context.startService(new Intent(context, EmptyService.class));
-        }
-
-        @Override
-        protected Integer doInBackground(RawContactDeltaList... params) {
-            final Context context = activityTarget;
-            final ContentResolver resolver = context.getContentResolver();
-
-            RawContactDeltaList state = params[0];
-
-            if (state == null) {
-                return RESULT_FAILURE;
-            }
-
-            // Trim any empty fields, and RawContacts, before persisting
-            RawContactModifier.trimEmpty(state, mAccountTypeManager);
-
-            // Attempt to persist changes
-            int tries = 0;
-            Integer result = RESULT_FAILURE;
-            while (tries++ < PERSIST_TRIES) {
-                try {
-                    // Build operations and try applying
-                    // Note: In case we've created a new raw_contact because the selected contact
-                    // is read-only, buildDiff() will create aggregation exceptions to join
-                    // the new one to the existing contact.
-                    final ArrayList<ContentProviderOperation> diff = state.buildDiff();
-                    ContentProviderResult[] results = null;
-                    if (!diff.isEmpty()) {
-                         results = resolver.applyBatch(ContactsContract.AUTHORITY, diff);
-                    }
-
-                    result = (diff.size() > 0) ? RESULT_SUCCESS : RESULT_UNCHANGED;
-                    break;
-
-                } catch (RemoteException e) {
-                    // Something went wrong, bail without success
-                    Log.e(TAG, "Problem persisting user edits", e);
-                    break;
-
-                } catch (OperationApplicationException e) {
-                    // Version consistency failed, bail without success
-                    Log.e(TAG, "Version consistency failed", e);
-                    break;
-                }
-            }
-
-            return result;
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        protected void onPostExecute(Integer result) {
-            final Context context = activityTarget;
-
-            dismissProgressDialog();
-
-            // Show a toast message based on the success or failure of the save action.
-            if (result == RESULT_SUCCESS) {
-                Toast.makeText(context, R.string.contactSavedToast, Toast.LENGTH_SHORT).show();
-            } else if (result == RESULT_FAILURE) {
-                Toast.makeText(context, R.string.contactSavedErrorToast, Toast.LENGTH_LONG).show();
-            }
-
-            // Stop the service that was protecting us
-            context.stopService(new Intent(context, EmptyService.class));
-            activityTarget.onSaveCompleted(result != RESULT_FAILURE);
-        }
-    }
-
-    @Override
-    protected void onStop() {
-        super.onStop();
-        // Dismiss the progress dialog here to prevent leaking the window on orientation change.
-        dismissProgressDialog();
-    }
-
-    /**
-     * Dismiss the progress dialog (check if it is null because it is a {@link WeakReference}).
-     */
-    private static void dismissProgressDialog() {
-        ProgressDialog dialog = (sProgressDialog == null) ? null : sProgressDialog.get();
-        if (dialog != null) {
-            dialog.dismiss();
-        }
-        sProgressDialog = null;
-    }
-
-    /**
-     * This method is intended to be executed after the background task for saving edited info has
-     * finished. The method sets the activity result (and intent if applicable) and finishes the
-     * activity.
-     * @param success is true if the save task completed successfully, or false otherwise.
-     */
-    private void onSaveCompleted(boolean success) {
-        if (success) {
-            Intent intent = new Intent(Intent.ACTION_VIEW, mContactUri);
-            setResult(RESULT_OK, intent);
-        } else {
-            setResult(RESULT_CANCELED);
-        }
-        finish();
-    }
-}
diff --git a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
index 78b0a3b..dea134b 100644
--- a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
@@ -32,11 +32,12 @@
 
 import com.android.contacts.R;
 import com.android.contacts.editor.ContactEditorUtils;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.util.AccountsListAdapter;
-import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.AccountsLoader;
+import com.android.contacts.util.AccountsListAdapter;
+import com.android.contacts.util.ImplicitIntentsUtil;
 
 import java.util.List;
 
@@ -48,14 +49,13 @@
  * the new contact in. If the activity result doesn't contain intent data, then there is no
  * account for this contact.
  */
-public class ContactEditorAccountsChangedActivity extends Activity {
-
-    private static final String TAG = ContactEditorAccountsChangedActivity.class.getSimpleName();
-
+public class ContactEditorAccountsChangedActivity extends Activity
+        implements AccountsLoader.AccountsListener {
     private static final int SUBACTIVITY_ADD_NEW_ACCOUNT = 1;
 
     private AccountsListAdapter mAccountListAdapter;
     private ContactEditorUtils mEditorUtils;
+    private AlertDialog mDialog;
 
     private final OnItemClickListener mAccountListItemClickListener = new OnItemClickListener() {
         @Override
@@ -70,112 +70,32 @@
     private final OnClickListener mAddAccountClickListener = new OnClickListener() {
         @Override
         public void onClick(View v) {
-            final Intent intent = ImplicitIntentsUtil.getIntentForAddingAccount();
+            final Intent intent = ImplicitIntentsUtil.getIntentForAddingGoogleAccount();
             startActivityForResult(intent, SUBACTIVITY_ADD_NEW_ACCOUNT);
         }
     };
 
     @Override
+    protected void onResume() {
+        super.onResume();
+        if (mDialog != null && !mDialog.isShowing()) {
+            mDialog.show();
+        }
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        if (mDialog != null) {
+            mDialog.dismiss();
+        }
+    }
+
+    @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
-        mEditorUtils = ContactEditorUtils.getInstance(this);
-        final List<AccountWithDataSet> accounts = AccountTypeManager.getInstance(this).
-                getAccounts(true);
-        final int numAccounts = accounts.size();
-        if (numAccounts < 0) {
-            throw new IllegalStateException("Cannot have a negative number of accounts");
-        }
-
-        final View view;
-        if (numAccounts >= 2) {
-            // When the user has 2+ writable accounts, show a list of accounts so the user can pick
-            // which account to create a contact in.
-            view = View.inflate(this,
-                    R.layout.contact_editor_accounts_changed_activity_with_picker, null);
-
-            final TextView textView = (TextView) view.findViewById(R.id.text);
-            textView.setText(getString(R.string.contact_editor_prompt_multiple_accounts));
-
-            final Button button = (Button) view.findViewById(R.id.add_account_button);
-            button.setText(getString(R.string.add_new_account));
-            button.setOnClickListener(mAddAccountClickListener);
-
-            final ListView accountListView = (ListView) view.findViewById(R.id.account_list);
-            mAccountListAdapter = new AccountsListAdapter(this,
-                    AccountListFilter.ACCOUNTS_CONTACT_WRITABLE);
-            accountListView.setAdapter(mAccountListAdapter);
-            accountListView.setOnItemClickListener(mAccountListItemClickListener);
-        } else if (numAccounts == 1) {
-            // If the user has 1 writable account we will just show the user a message with 2
-            // possible action buttons.
-            view = View.inflate(this,
-                    R.layout.contact_editor_accounts_changed_activity_with_text, null);
-
-            final TextView textView = (TextView) view.findViewById(R.id.text);
-            final Button leftButton = (Button) view.findViewById(R.id.left_button);
-            final Button rightButton = (Button) view.findViewById(R.id.right_button);
-
-            final AccountWithDataSet account = accounts.get(0);
-            textView.setText(getString(R.string.contact_editor_prompt_one_account,
-                    account.name));
-
-            // This button allows the user to add a new account to the device and return to
-            // this app afterwards.
-            leftButton.setText(getString(R.string.add_new_account));
-            leftButton.setOnClickListener(mAddAccountClickListener);
-
-            // This button allows the user to continue creating the contact in the specified
-            // account.
-            rightButton.setText(getString(android.R.string.ok));
-            rightButton.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    saveAccountAndReturnResult(account);
-                }
-            });
-        } else {
-            // If the user has 0 writable accounts, we will just show the user a message with 2
-            // possible action buttons.
-            view = View.inflate(this,
-                    R.layout.contact_editor_accounts_changed_activity_with_text, null);
-
-            final TextView textView = (TextView) view.findViewById(R.id.text);
-            final Button leftButton = (Button) view.findViewById(R.id.left_button);
-            final Button rightButton = (Button) view.findViewById(R.id.right_button);
-
-            textView.setText(getString(R.string.contact_editor_prompt_zero_accounts));
-
-            // This button allows the user to continue editing the contact as a phone-only
-            // local contact.
-            leftButton.setText(getString(R.string.keep_local));
-            leftButton.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    // Remember that the user wants to create local contacts, so the user is not
-                    // prompted again with this activity.
-                    mEditorUtils.saveDefaultAndAllAccounts(null);
-                    setResult(RESULT_OK);
-                    finish();
-                }
-            });
-
-            // This button allows the user to add a new account to the device and return to
-            // this app afterwards.
-            rightButton.setText(getString(R.string.add_account));
-            rightButton.setOnClickListener(mAddAccountClickListener);
-        }
-
-        new AlertDialog.Builder(this)
-                .setView(view)
-                .setOnCancelListener(new DialogInterface.OnCancelListener() {
-                    @Override
-                    public void onCancel(DialogInterface dialog) {
-                        finish();
-                    }
-                })
-                .create()
-                .show();
+        mEditorUtils = ContactEditorUtils.create(this);
+        AccountsLoader.loadAccounts(this, 0, AccountTypeManager.writableFilter());
     }
 
     @Override
@@ -197,9 +117,107 @@
         }
     }
 
+    private void updateDisplayedAccounts(List<AccountInfo> accounts) {
+        final int numAccounts = accounts.size();
+        if (numAccounts < 0) {
+            throw new IllegalStateException("Cannot have a negative number of accounts");
+        }
+
+        final View view;
+        if (numAccounts >= 2) {
+            // When the user has 2+ writable accounts, show a list of accounts so the user can pick
+            // which account to create a contact in.
+            view = View.inflate(this,
+                    R.layout.contact_editor_accounts_changed_activity_with_picker, null);
+
+            final TextView textView = (TextView) view.findViewById(R.id.text);
+            textView.setText(getString(R.string.contact_editor_prompt_multiple_accounts));
+
+            final Button button = (Button) view.findViewById(R.id.add_account_button);
+            button.setText(getString(R.string.add_new_account));
+            button.setOnClickListener(mAddAccountClickListener);
+
+            final ListView accountListView = (ListView) view.findViewById(R.id.account_list);
+            mAccountListAdapter = new AccountsListAdapter(this, accounts);
+            accountListView.setAdapter(mAccountListAdapter);
+            accountListView.setOnItemClickListener(mAccountListItemClickListener);
+        } else if (numAccounts == 1 && !accounts.get(0).getAccount().isNullAccount()) {
+            // If the user has 1 writable account we will just show the user a message with 2
+            // possible action buttons.
+            view = View.inflate(this,
+                    R.layout.contact_editor_accounts_changed_activity_with_text, null);
+
+            final TextView textView = (TextView) view.findViewById(R.id.text);
+            final Button leftButton = (Button) view.findViewById(R.id.left_button);
+            final Button rightButton = (Button) view.findViewById(R.id.right_button);
+
+            final AccountInfo accountInfo = accounts.get(0);
+            textView.setText(getString(R.string.contact_editor_prompt_one_account,
+                    accountInfo.getNameLabel()));
+
+            // This button allows the user to add a new account to the device and return to
+            // this app afterwards.
+            leftButton.setText(getString(R.string.add_new_account));
+            leftButton.setOnClickListener(mAddAccountClickListener);
+
+            // This button allows the user to continue creating the contact in the specified
+            // account.
+            rightButton.setText(getString(android.R.string.ok));
+            rightButton.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    saveAccountAndReturnResult(accountInfo.getAccount());
+                }
+            });
+        } else {
+            // If the user has 0 writable accounts, we will just show the user a message with 2
+            // possible action buttons.
+            view = View.inflate(this,
+                    R.layout.contact_editor_accounts_changed_activity_with_text, null);
+
+            final TextView textView = (TextView) view.findViewById(R.id.text);
+            final Button leftButton = (Button) view.findViewById(R.id.left_button);
+            final Button rightButton = (Button) view.findViewById(R.id.right_button);
+
+            textView.setText(getString(R.string.contact_editor_prompt_zero_accounts));
+
+            // This button allows the user to continue editing the contact as a phone-only
+            // local contact.
+            leftButton.setText(getString(android.R.string.cancel));
+            leftButton.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    // Remember that the user wants to create local contacts, so the user is not
+                    // prompted again with this activity.
+                    saveAccountAndReturnResult(AccountWithDataSet.getNullAccount());
+                    finish();
+                }
+            });
+
+            // This button allows the user to add a new account to the device and return to
+            // this app afterwards.
+            rightButton.setText(getString(R.string.add_account));
+            rightButton.setOnClickListener(mAddAccountClickListener);
+        }
+
+        if (mDialog != null && mDialog.isShowing()) {
+            mDialog.dismiss();
+        }
+        mDialog = new AlertDialog.Builder(this)
+                .setView(view)
+                .setOnCancelListener(new DialogInterface.OnCancelListener() {
+                    @Override
+                    public void onCancel(DialogInterface dialog) {
+                        finish();
+                    }
+                })
+                .create();
+        mDialog.show();
+    }
+
     private void saveAccountAndReturnResult(AccountWithDataSet account) {
         // Save this as the default account
-        mEditorUtils.saveDefaultAndAllAccounts(account);
+        mEditorUtils.saveDefaultAccount(account);
 
         // Pass account info in activity result intent
         Intent intent = new Intent();
@@ -207,4 +225,9 @@
         setResult(RESULT_OK, intent);
         finish();
     }
+
+    @Override
+    public void onAccountsLoaded(List<AccountInfo> accounts) {
+        updateDisplayedAccounts(accounts);
+    }
 }
diff --git a/src/com/android/contacts/activities/ContactEditorActivity.java b/src/com/android/contacts/activities/ContactEditorActivity.java
index 293e8c0..ec49d48 100644
--- a/src/com/android/contacts/activities/ContactEditorActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorActivity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2015 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.
@@ -16,38 +16,492 @@
 
 package com.android.contacts.activities;
 
-import com.android.contacts.R;
-import com.android.contacts.common.activity.RequestPermissionsActivity;
-import com.android.contacts.editor.ContactEditorFragment;
-import com.android.contacts.util.DialogManager;
-
+import android.app.Dialog;
+import android.app.FragmentTransaction;
+import android.content.ComponentName;
+import android.content.ContentValues;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
+import android.provider.ContactsContract.QuickContact;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+
+import com.android.contacts.AppCompatContactsActivity;
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.DynamicShortcuts;
+import com.android.contacts.R;
+import com.android.contacts.detail.PhotoSelectionHandler;
+import com.android.contacts.editor.ContactEditorFragment;
+import com.android.contacts.editor.EditorIntents;
+import com.android.contacts.editor.PhotoSourceDialogFragment;
+import com.android.contacts.interactions.ContactDeletionInteraction;
+import com.android.contacts.model.RawContactDeltaList;
+import com.android.contacts.util.DialogManager;
+import com.android.contacts.util.ImplicitIntentsUtil;
+
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
 
 /**
- * Contact editor with all fields displayed.
+ * Contact editor with only the most important fields displayed initially.
  */
-public class ContactEditorActivity extends ContactEditorBaseActivity
-        implements DialogManager.DialogShowingViewActivity {
+public class ContactEditorActivity extends AppCompatContactsActivity implements
+        PhotoSourceDialogFragment.Listener,
+        DialogManager.DialogShowingViewActivity {
+    private static final String TAG = "ContactEditorActivity";
+
+    public static final String ACTION_JOIN_COMPLETED = "joinCompleted";
+    public static final String ACTION_SAVE_COMPLETED = "saveCompleted";
+
+    public static final int RESULT_CODE_SPLIT = 2;
+    // 3 used for ContactDeletionInteraction.RESULT_CODE_DELETED
+    public static final int RESULT_CODE_EDITED = 4;
+
+    /**
+     * The contact will be saved to this account when this is set for an insert. This
+     * is necessary because {@link android.accounts.Account} cannot be created with null values
+     * for the name and type and an Account is needed for
+     * {@link android.provider.ContactsContract.Intents.Insert#EXTRA_ACCOUNT}
+     */
+    public static final String EXTRA_ACCOUNT_WITH_DATA_SET =
+            "com.android.contacts.ACCOUNT_WITH_DATA_SET";
+
+    private static final String TAG_EDITOR_FRAGMENT = "editor_fragment";
+
+    private static final String STATE_PHOTO_MODE = "photo_mode";
+    private static final String STATE_ACTION_BAR_TITLE = "action_bar_title";
+    private static final String STATE_PHOTO_URI = "photo_uri";
+
+    /**
+     * Boolean intent key that specifies that this activity should finish itself
+     * (instead of launching a new view intent) after the editor changes have been
+     * saved.
+     */
+    public static final String INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED =
+            "finishActivityOnSaveCompleted";
+
+    /**
+     * Contract for contact editors Fragments that are managed by this Activity.
+     */
+    public interface ContactEditor {
+
+        /**
+         * Modes that specify what the AsyncTask has to perform after saving
+         */
+        interface SaveMode {
+            /**
+             * Close the editor after saving
+             */
+            int CLOSE = 0;
+
+            /**
+             * Reload the data so that the user can continue editing
+             */
+            int RELOAD = 1;
+
+            /**
+             * Split the contact after saving
+             */
+            int SPLIT = 2;
+
+            /**
+             * Join another contact after saving
+             */
+            int JOIN = 3;
+
+            /**
+             * Navigate to the editor view after saving.
+             */
+            int EDITOR = 4;
+        }
+
+        /**
+         * The status of the contact editor.
+         */
+        interface Status {
+            /**
+             * The loader is fetching data
+             */
+            int LOADING = 0;
+
+            /**
+             * Not currently busy. We are waiting for the user to enter data
+             */
+            int EDITING = 1;
+
+            /**
+             * The data is currently being saved. This is used to prevent more
+             * auto-saves (they shouldn't overlap)
+             */
+            int SAVING = 2;
+
+            /**
+             * Prevents any more saves. This is used if in the following cases:
+             * - After Save/Close
+             * - After Revert
+             * - After the user has accepted an edit suggestion
+             * - After the user chooses to expand the editor
+             */
+            int CLOSING = 3;
+
+            /**
+             * Prevents saving while running a child activity.
+             */
+            int SUB_ACTIVITY = 4;
+        }
+
+        /**
+         * Sets the hosting Activity that will receive callbacks from the contact editor.
+         */
+        void setListener(ContactEditorFragment.Listener listener);
+
+        /**
+         * Initialize the contact editor.
+         */
+        void load(String action, Uri lookupUri, Bundle intentExtras);
+
+        /**
+         * Applies extras from the hosting Activity to the writable raw contact.
+         */
+        void setIntentExtras(Bundle extras);
+
+        /**
+         * Saves or creates the contact based on the mode, and if successful
+         * finishes the activity.
+         */
+        boolean save(int saveMode);
+
+        /**
+         * If there are no unsaved changes, just close the editor, otherwise the user is prompted
+         * before discarding unsaved changes.
+         */
+        boolean revert();
+
+        /**
+         * Invoked after the contact is saved.
+         */
+        void onSaveCompleted(boolean hadChanges, int saveMode, boolean saveSucceeded,
+                Uri contactLookupUri, Long joinContactId);
+
+        /**
+         * Invoked after the contact is joined.
+         */
+        void onJoinCompleted(Uri uri);
+    }
+
+    /**
+     * Displays a PopupWindow with photo edit options.
+     */
+    private final class EditorPhotoSelectionHandler extends PhotoSelectionHandler {
+
+        /**
+         * Receiver of photo edit option callbacks.
+         */
+        private final class EditorPhotoActionListener extends PhotoActionListener {
+
+            @Override
+            public void onRemovePictureChosen() {
+                getEditorFragment().removePhoto();
+            }
+
+            @Override
+            public void onPhotoSelected(Uri uri) throws FileNotFoundException {
+                mPhotoUri = uri;
+                getEditorFragment().updatePhoto(uri);
+
+                // Re-create the photo handler the next time we need it so that additional photo
+                // selections create a new temp file (and don't hit the one that was just added
+                // to the cache).
+                mPhotoSelectionHandler = null;
+            }
+
+            @Override
+            public Uri getCurrentPhotoUri() {
+                return mPhotoUri;
+            }
+
+            @Override
+            public void onPhotoSelectionDismissed() {
+            }
+        }
+
+        private final EditorPhotoActionListener mPhotoActionListener;
+
+        public EditorPhotoSelectionHandler(int photoMode) {
+            // We pass a null changeAnchorView since we are overriding onClick so that we
+            // can show the photo options in a dialog instead of a ListPopupWindow (which would
+            // be anchored at changeAnchorView).
+
+            // TODO: empty raw contact delta list
+            super(ContactEditorActivity.this, /* changeAnchorView =*/ null, photoMode,
+                    /* isDirectoryContact =*/ false, new RawContactDeltaList());
+            mPhotoActionListener = new EditorPhotoActionListener();
+        }
+
+        @Override
+        public PhotoActionListener getListener() {
+            return mPhotoActionListener;
+        }
+
+        @Override
+        protected void startPhotoActivity(Intent intent, int requestCode, Uri photoUri) {
+            mPhotoUri = photoUri;
+            startActivityForResult(intent, requestCode);
+        }
+    }
+
+    private int mActionBarTitleResId;
+    private ContactEditor mFragment;
+    private Toolbar mToolbar;
+    private boolean mFinishActivityOnSaveCompleted;
+    private DialogManager mDialogManager = new DialogManager(this);
+
+    private EditorPhotoSelectionHandler mPhotoSelectionHandler;
+    private Uri mPhotoUri;
+    private int mPhotoMode;
+
+    private final ContactEditorFragment.Listener  mFragmentListener =
+            new ContactEditorFragment.Listener() {
+
+                @Override
+                public void onDeleteRequested(Uri contactUri) {
+                    ContactDeletionInteraction.start(
+                            ContactEditorActivity.this, contactUri, true);
+                }
+
+                @Override
+                public void onReverted() {
+                    finish();
+                }
+
+                @Override
+                public void onSaveFinished(Intent resultIntent) {
+                    if (mFinishActivityOnSaveCompleted) {
+                        setResult(resultIntent == null ? RESULT_CANCELED : RESULT_OK, resultIntent);
+                    } else if (resultIntent != null) {
+                        ImplicitIntentsUtil.startActivityInApp(
+                                ContactEditorActivity.this, resultIntent);
+                    }
+                    finish();
+                }
+
+                @Override
+                public void onContactSplit(Uri newLookupUri) {
+                    setResult(RESULT_CODE_SPLIT, /* data */ null);
+                    finish();
+                }
+
+                @Override
+                public void onContactNotFound() {
+                    finish();
+                }
+
+                @Override
+                public void onEditOtherRawContactRequested(
+                        Uri contactLookupUri, long rawContactId, ArrayList<ContentValues> values) {
+                    final Intent intent = EditorIntents.createEditOtherRawContactIntent(
+                            ContactEditorActivity.this, contactLookupUri, rawContactId, values);
+                    ImplicitIntentsUtil.startActivityInApp(
+                            ContactEditorActivity.this, intent);
+                    finish();
+                }
+            };
 
     @Override
     public void onCreate(Bundle savedState) {
         super.onCreate(savedState);
 
-        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+        RequestPermissionsActivity.startPermissionActivityIfNeeded(this);
+
+        final Intent intent = getIntent();
+        final String action = intent.getAction();
+
+        // Update the component name of our intent to be this class to clear out any activity
+        // aliases. Otherwise ContactSaveService won't notify this activity once a save is finished.
+        // See b/34154706 for more info.
+        intent.setComponent(new ComponentName(this, ContactEditorActivity.class));
+
+        // Determine whether or not this activity should be finished after the user is done
+        // editing the contact or if this activity should launch another activity to view the
+        // contact's details.
+        mFinishActivityOnSaveCompleted = intent.getBooleanExtra(
+                INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, false);
+
+        // The only situation where action could be ACTION_JOIN_COMPLETED is if the
+        // user joined the contact with another and closed the activity before
+        // the save operation was completed.  The activity should remain closed then.
+        if (ACTION_JOIN_COMPLETED.equals(action)) {
+            finish();
+            return;
+        }
+
+        if (ACTION_SAVE_COMPLETED.equals(action)) {
+            finish();
             return;
         }
 
         setContentView(R.layout.contact_editor_activity);
+        mToolbar = (Toolbar) findViewById(R.id.toolbar);
+        setSupportActionBar(mToolbar);
+        if (Intent.ACTION_EDIT.equals(action)) {
+            mActionBarTitleResId = R.string.contact_editor_title_existing_contact;
+        } else {
+            mActionBarTitleResId = R.string.contact_editor_title_new_contact;
+        }
+        mToolbar.setTitle(mActionBarTitleResId);
+        // Set activity title for Talkback
+        setTitle(mActionBarTitleResId);
 
-        mFragment = (ContactEditorFragment) getFragmentManager().findFragmentById(
-                R.id.contact_editor_fragment);
+        if (savedState == null) {
+            // Create the editor and photo selection fragments
+            mFragment = new ContactEditorFragment();
+            getFragmentManager().beginTransaction()
+                    .add(R.id.fragment_container, getEditorFragment(), TAG_EDITOR_FRAGMENT)
+                    .commit();
+        } else {
+            // Restore state
+            mPhotoMode = savedState.getInt(STATE_PHOTO_MODE);
+            mActionBarTitleResId = savedState.getInt(STATE_ACTION_BAR_TITLE);
+            mPhotoUri = Uri.parse(savedState.getString(STATE_PHOTO_URI));
+
+            // Show/hide the editor and photo selection fragments (w/o animations)
+            mFragment = (ContactEditorFragment) getFragmentManager()
+                    .findFragmentByTag(TAG_EDITOR_FRAGMENT);
+            final FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
+            fragmentTransaction.show(getEditorFragment()).commit();
+            mToolbar.setTitle(mActionBarTitleResId);
+        }
+
+        // Set listeners
         mFragment.setListener(mFragmentListener);
 
-        final String action = getIntent().getAction();
-        final Uri uri = ContactEditorBaseActivity.ACTION_EDIT.equals(action)
-                || Intent.ACTION_EDIT.equals(action) ? getIntent().getData() : null;
+        // Load editor data (even if it's hidden)
+        final Uri uri = Intent.ACTION_EDIT.equals(action) ? getIntent().getData() : null;
         mFragment.load(action, uri, getIntent().getExtras());
+
+        if (Intent.ACTION_INSERT.equals(action)) {
+            DynamicShortcuts.reportShortcutUsed(this, DynamicShortcuts.SHORTCUT_ADD_CONTACT);
+        }
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        final InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
+        final View currentFocus = getCurrentFocus();
+        if (imm != null && currentFocus != null) {
+            imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
+        }
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+
+        if (mFragment == null) {
+            return;
+        }
+
+        final String action = intent.getAction();
+        if (Intent.ACTION_EDIT.equals(action)) {
+            mFragment.setIntentExtras(intent.getExtras());
+        } else if (ACTION_SAVE_COMPLETED.equals(action)) {
+            mFragment.onSaveCompleted(true,
+                    intent.getIntExtra(ContactEditorFragment.SAVE_MODE_EXTRA_KEY,
+                            ContactEditor.SaveMode.CLOSE),
+                    intent.getBooleanExtra(ContactSaveService.EXTRA_SAVE_SUCCEEDED, false),
+                    intent.getData(),
+                    intent.getLongExtra(ContactEditorFragment.JOIN_CONTACT_ID_EXTRA_KEY, -1));
+        } else if (ACTION_JOIN_COMPLETED.equals(action)) {
+            mFragment.onJoinCompleted(intent.getData());
+        }
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id, Bundle args) {
+        if (DialogManager.isManagedId(id)) return mDialogManager.onCreateDialog(id, args);
+
+        // Nobody knows about the Dialog
+        Log.w(TAG, "Unknown dialog requested, id: " + id + ", args: " + args);
+        return null;
+    }
+
+    @Override
+    public DialogManager getDialogManager() {
+        return mDialogManager;
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putInt(STATE_PHOTO_MODE, mPhotoMode);
+        outState.putInt(STATE_ACTION_BAR_TITLE, mActionBarTitleResId);
+        outState.putString(STATE_PHOTO_URI,
+                mPhotoUri != null ? mPhotoUri.toString() : Uri.EMPTY.toString());
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (mPhotoSelectionHandler == null) {
+            mPhotoSelectionHandler = (EditorPhotoSelectionHandler) getPhotoSelectionHandler();
+        }
+        if (mPhotoSelectionHandler.handlePhotoActivityResult(requestCode, resultCode, data)) {
+            return;
+        }
+        super.onActivityResult(requestCode, resultCode, data);
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (mFragment != null) {
+            mFragment.revert();
+        }
+    }
+
+    /**
+     * Opens a dialog showing options for the user to change their photo (take, choose, or remove
+     * photo).
+     */
+    public void changePhoto(int photoMode) {
+        mPhotoMode = photoMode;
+        // This method is called from an onClick handler in the PhotoEditorView. It's possible for
+        // onClick methods to run after onSaveInstanceState is called for the activity, so check
+        // if it's safe to commit transactions before trying.
+        if (isSafeToCommitTransactions()) {
+            PhotoSourceDialogFragment.show(this, mPhotoMode);
+        }
+    }
+
+    public Toolbar getToolbar() {
+        return mToolbar;
+    }
+
+    @Override
+    public void onRemovePictureChosen() {
+        getPhotoSelectionHandler().getListener().onRemovePictureChosen();
+    }
+
+    @Override
+    public void onTakePhotoChosen() {
+        getPhotoSelectionHandler().getListener().onTakePhotoChosen();
+    }
+
+    @Override
+    public void onPickFromGalleryChosen() {
+        getPhotoSelectionHandler().getListener().onPickFromGalleryChosen();
+    }
+
+    private PhotoSelectionHandler getPhotoSelectionHandler() {
+        if (mPhotoSelectionHandler == null) {
+            mPhotoSelectionHandler = new EditorPhotoSelectionHandler(mPhotoMode);
+        }
+        return mPhotoSelectionHandler;
+    }
+
+    private ContactEditorFragment getEditorFragment() {
+        return (ContactEditorFragment) mFragment;
     }
 }
diff --git a/src/com/android/contacts/activities/ContactEditorBaseActivity.java b/src/com/android/contacts/activities/ContactEditorBaseActivity.java
deleted file mode 100644
index ffbeb49..0000000
--- a/src/com/android/contacts/activities/ContactEditorBaseActivity.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- * Copyright (C) 2015 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.activities;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.ContactsActivity;
-import com.android.contacts.R;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-import com.android.contacts.editor.ContactEditorBaseFragment;
-import com.android.contacts.editor.ContactEditorFragment;
-import com.android.contacts.editor.EditorIntents;
-import com.android.contacts.interactions.ContactDeletionInteraction;
-import com.android.contacts.util.DialogManager;
-
-import android.app.ActionBar;
-import android.app.Dialog;
-import android.content.ContentValues;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.RawContacts;
-import android.util.Log;
-import android.view.View;
-import android.view.inputmethod.InputMethodManager;
-
-import java.util.ArrayList;
-
-/**
- * Base Activity for contact editors.
- */
-abstract public class ContactEditorBaseActivity extends ContactsActivity
-        implements DialogManager.DialogShowingViewActivity {
-    protected static final String TAG = "ContactEditorActivity";
-
-    /**
-     * Intent action to edit a contact with all available field inputs displayed.
-     *
-     * Only used to open the "fully expanded" editor -- {@link ContactEditorActivity}.
-     */
-    public static final String ACTION_EDIT = "com.android.contacts.action.FULL_EDIT";
-
-    /**
-     * Intent action to insert a new contact with all available field inputs displayed.
-     *
-     * Only used to open the "fully expanded" editor -- {@link ContactEditorActivity}.
-     */
-    public static final String ACTION_INSERT = "com.android.contacts.action.FULL_INSERT";
-
-    public static final String ACTION_JOIN_COMPLETED = "joinCompleted";
-    public static final String ACTION_SAVE_COMPLETED = "saveCompleted";
-
-    public static final int RESULT_CODE_SPLIT = 2;
-
-    protected int mActionBarTitleResId;
-
-    /**
-     * Contract for contact editors Fragments that are managed by this Activity.
-     */
-    public interface ContactEditor {
-
-        /**
-         * Modes that specify what the AsyncTask has to perform after saving
-         */
-        public interface SaveMode {
-            /**
-             * Close the editor after saving
-             */
-            public static final int CLOSE = 0;
-
-            /**
-             * Reload the data so that the user can continue editing
-             */
-            public static final int RELOAD = 1;
-
-            /**
-             * Split the contact after saving
-             */
-            public static final int SPLIT = 2;
-
-            /**
-             * Join another contact after saving
-             */
-            public static final int JOIN = 3;
-
-            /**
-             * Navigate to the compact editor view after saving.
-             */
-            public static final int COMPACT = 4;
-        }
-
-        /**
-         * The status of the contact editor.
-         */
-        public interface Status {
-            /**
-             * The loader is fetching data
-             */
-            public static final int LOADING = 0;
-
-            /**
-             * Not currently busy. We are waiting for the user to enter data
-             */
-            public static final int EDITING = 1;
-
-            /**
-             * The data is currently being saved. This is used to prevent more
-             * auto-saves (they shouldn't overlap)
-             */
-            public static final int SAVING = 2;
-
-            /**
-             * Prevents any more saves. This is used if in the following cases:
-             * - After Save/Close
-             * - After Revert
-             * - After the user has accepted an edit suggestion
-             * - After the user chooses to expand the compact editor
-             */
-            public static final int CLOSING = 3;
-
-            /**
-             * Prevents saving while running a child activity.
-             */
-            public static final int SUB_ACTIVITY = 4;
-        }
-
-        /**
-         * Sets the hosting Activity that will receive callbacks from the contact editor.
-         */
-        void setListener(ContactEditorBaseFragment.Listener listener);
-
-        /**
-         * Initialize the contact editor.
-         */
-        void load(String action, Uri lookupUri, Bundle intentExtras);
-
-        /**
-         * Applies extras from the hosting Activity to the first writable raw contact.
-         */
-        void setIntentExtras(Bundle extras);
-
-        /**
-         * Saves or creates the contact based on the mode, and if successful
-         * finishes the activity.
-         */
-        boolean save(int saveMode);
-
-        /**
-         * If there are no unsaved changes, just close the editor, otherwise the user is prompted
-         * before discarding unsaved changes.
-         */
-        boolean revert();
-
-        /**
-         * Invoked after the contact is saved.
-         */
-        void onSaveCompleted(boolean hadChanges, int saveMode, boolean saveSucceeded,
-                Uri contactLookupUri, Long joinContactId);
-
-        /**
-         * Invoked after the contact is joined.
-         */
-        void onJoinCompleted(Uri uri);
-    }
-
-    /**
-     * Boolean intent key that specifies that this activity should finish itself
-     * (instead of launching a new view intent) after the editor changes have been
-     * saved.
-     */
-    public static final String INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED =
-            "finishActivityOnSaveCompleted";
-
-    protected ContactEditor mFragment;
-    private boolean mFinishActivityOnSaveCompleted;
-
-    private DialogManager mDialogManager = new DialogManager(this);
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        super.onCreate(savedState);
-
-        final Intent intent = getIntent();
-        final String action = intent.getAction();
-
-        // Determine whether or not this activity should be finished after the user is done
-        // editing the contact or if this activity should launch another activity to view the
-        // contact's details.
-        mFinishActivityOnSaveCompleted = intent.getBooleanExtra(
-                INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, false);
-
-        // The only situation where action could be ACTION_JOIN_COMPLETED is if the
-        // user joined the contact with another and closed the activity before
-        // the save operation was completed.  The activity should remain closed then.
-        if (ACTION_JOIN_COMPLETED.equals(action)) {
-            finish();
-            return;
-        }
-
-        if (ACTION_SAVE_COMPLETED.equals(action)) {
-            finish();
-            return;
-        }
-
-        ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            if (Intent.ACTION_EDIT.equals(action) || ACTION_EDIT.equals(action)) {
-                mActionBarTitleResId = R.string.contact_editor_title_existing_contact;
-            } else {
-                mActionBarTitleResId = R.string.contact_editor_title_new_contact;
-            }
-            actionBar.setTitle(getResources().getString(mActionBarTitleResId));
-            actionBar.setDisplayShowHomeEnabled(true);
-            actionBar.setDisplayHomeAsUpEnabled(true);
-        }
-    }
-
-    @Override
-    protected void onPause() {
-        super.onPause();
-        final InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
-        final View currentFocus = getCurrentFocus();
-        if (imm != null && currentFocus != null) {
-            imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
-        }
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
-
-        if (mFragment == null) {
-            return;
-        }
-
-        String action = intent.getAction();
-        if (Intent.ACTION_EDIT.equals(action) || ACTION_EDIT.equals(action)) {
-            mFragment.setIntentExtras(intent.getExtras());
-        } else if (ACTION_SAVE_COMPLETED.equals(action)) {
-            mFragment.onSaveCompleted(true,
-                    intent.getIntExtra(ContactEditorFragment.SAVE_MODE_EXTRA_KEY,
-                            ContactEditor.SaveMode.CLOSE),
-                    intent.getBooleanExtra(ContactSaveService.EXTRA_SAVE_SUCCEEDED, false),
-                    intent.getData(),
-                    intent.getLongExtra(ContactEditorFragment.JOIN_CONTACT_ID_EXTRA_KEY, -1));
-        } else if (ACTION_JOIN_COMPLETED.equals(action)) {
-            mFragment.onJoinCompleted(intent.getData());
-        }
-    }
-
-    @Override
-    protected Dialog onCreateDialog(int id, Bundle args) {
-        if (DialogManager.isManagedId(id)) return mDialogManager.onCreateDialog(id, args);
-
-        // Nobody knows about the Dialog
-        Log.w(TAG, "Unknown dialog requested, id: " + id + ", args: " + args);
-        return null;
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (mFragment != null) {
-            mFragment.revert();
-        }
-    }
-
-    protected final ContactEditorBaseFragment.Listener  mFragmentListener =
-            new ContactEditorBaseFragment.Listener() {
-
-        @Override
-        public void onDeleteRequested(Uri contactUri) {
-            ContactDeletionInteraction.start(ContactEditorBaseActivity.this, contactUri, true);
-        }
-
-        @Override
-        public void onReverted() {
-            finish();
-        }
-
-        @Override
-        public void onSaveFinished(Intent resultIntent) {
-            if (mFinishActivityOnSaveCompleted) {
-                setResult(resultIntent == null ? RESULT_CANCELED : RESULT_OK, resultIntent);
-            } else if (resultIntent != null) {
-                ImplicitIntentsUtil.startActivityInApp(ContactEditorBaseActivity.this,
-                        resultIntent);
-            }
-            finish();
-        }
-
-        @Override
-        public void onContactSplit(Uri newLookupUri) {
-            setResult(RESULT_CODE_SPLIT, /* data */ null);
-            finish();
-        }
-
-        @Override
-        public void onContactNotFound() {
-            finish();
-        }
-
-        @Override
-        public void onEditOtherContactRequested(
-                Uri contactLookupUri, ArrayList<ContentValues> values) {
-            final Intent intent = EditorIntents.createEditOtherContactIntent(
-                    contactLookupUri, values);
-            ImplicitIntentsUtil.startActivityInApp(ContactEditorBaseActivity.this, intent);
-            finish();
-        }
-
-        @Override
-        public void onCustomCreateContactActivityRequested(AccountWithDataSet account,
-                Bundle intentExtras) {
-            final AccountTypeManager accountTypes =
-                    AccountTypeManager.getInstance(ContactEditorBaseActivity.this);
-            final AccountType accountType = accountTypes.getAccountType(
-                    account.type, account.dataSet);
-
-            Intent intent = new Intent();
-            intent.setClassName(accountType.syncAdapterPackageName,
-                    accountType.getCreateContactActivityClassName());
-            intent.setAction(Intent.ACTION_INSERT);
-            intent.setType(Contacts.CONTENT_ITEM_TYPE);
-            if (intentExtras != null) {
-                intent.putExtras(intentExtras);
-            }
-            intent.putExtra(RawContacts.ACCOUNT_NAME, account.name);
-            intent.putExtra(RawContacts.ACCOUNT_TYPE, account.type);
-            intent.putExtra(RawContacts.DATA_SET, account.dataSet);
-            intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
-                    | Intent.FLAG_ACTIVITY_FORWARD_RESULT);
-            startActivity(intent);
-            finish();
-        }
-
-        @Override
-        public void onCustomEditContactActivityRequested(AccountWithDataSet account,
-                Uri rawContactUri, Bundle intentExtras, boolean redirect) {
-            final AccountTypeManager accountTypes =
-                    AccountTypeManager.getInstance(ContactEditorBaseActivity.this);
-            final AccountType accountType = accountTypes.getAccountType(
-                    account.type, account.dataSet);
-
-            Intent intent = new Intent();
-            intent.setClassName(accountType.syncAdapterPackageName,
-                    accountType.getEditContactActivityClassName());
-            intent.setAction(Intent.ACTION_EDIT);
-            intent.setData(rawContactUri);
-            if (intentExtras != null) {
-                intent.putExtras(intentExtras);
-            }
-
-            if (redirect) {
-                intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
-                        | Intent.FLAG_ACTIVITY_FORWARD_RESULT);
-                startActivity(intent);
-                finish();
-            } else {
-                startActivity(intent);
-            }
-        }
-    };
-
-    @Override
-    public DialogManager getDialogManager() {
-        return mDialogManager;
-    }
-}
diff --git a/src/com/android/contacts/activities/ContactEditorSpringBoardActivity.java b/src/com/android/contacts/activities/ContactEditorSpringBoardActivity.java
new file mode 100644
index 0000000..cf2ce9c
--- /dev/null
+++ b/src/com/android/contacts/activities/ContactEditorSpringBoardActivity.java
@@ -0,0 +1,292 @@
+package com.android.contacts.activities;
+
+import android.app.Activity;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.app.LoaderManager;
+import android.content.ContentUris;
+import android.content.Intent;
+import android.content.Loader;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.RawContacts;
+import android.widget.Toast;
+
+import com.android.contacts.AppCompatContactsActivity;
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.R;
+import com.android.contacts.editor.ContactEditorFragment;
+import com.android.contacts.editor.EditorIntents;
+import com.android.contacts.editor.PickRawContactDialogFragment;
+import com.android.contacts.editor.PickRawContactLoader;
+import com.android.contacts.editor.PickRawContactLoader.RawContactsMetadata;
+import com.android.contacts.editor.SplitContactConfirmationDialogFragment;
+import com.android.contacts.logging.EditorEvent;
+import com.android.contacts.logging.Logger;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.quickcontact.QuickContactActivity;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.contactsbind.FeedbackHelper;
+
+/**
+ * Transparent springboard activity that hosts a dialog to select a raw contact to edit.
+ * All intents coming out from this activity have {@code FLAG_ACTIVITY_FORWARD_RESULT} set.
+ */
+public class ContactEditorSpringBoardActivity extends AppCompatContactsActivity implements
+        PickRawContactDialogFragment.PickRawContactListener,
+        SplitContactConfirmationDialogFragment.Listener {
+
+    private static final String TAG = "EditorSpringBoard";
+    private static final String TAG_RAW_CONTACTS_DIALOG = "rawContactsDialog";
+    private static final String KEY_RAW_CONTACTS_METADATA = "rawContactsMetadata";
+    private static final int LOADER_RAW_CONTACTS = 1;
+
+    public static final String EXTRA_SHOW_READ_ONLY = "showReadOnly";
+
+    private Uri mUri;
+    private RawContactsMetadata mResult;
+    private MaterialPalette mMaterialPalette;
+    private boolean mHasWritableAccount;
+    private boolean mShowReadOnly;
+    private int mWritableAccountPosition;
+
+    /**
+     * The contact data loader listener.
+     */
+    protected final LoaderManager.LoaderCallbacks<RawContactsMetadata> mRawContactLoaderListener =
+            new LoaderManager.LoaderCallbacks<RawContactsMetadata>() {
+
+                @Override
+                public Loader<RawContactsMetadata> onCreateLoader(int id, Bundle args) {
+                    return new PickRawContactLoader(ContactEditorSpringBoardActivity.this, mUri);
+                }
+
+                @Override
+                public void onLoadFinished(Loader<RawContactsMetadata> loader,
+                        RawContactsMetadata result) {
+                    if (result == null) {
+                        toastErrorAndFinish();
+                        return;
+                    }
+                    mResult = result;
+                    onLoad();
+                }
+
+                @Override
+                public void onLoaderReset(Loader<RawContactsMetadata> loader) {
+                }
+            };
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
+            return;
+        }
+
+        final Intent intent = getIntent();
+        final String action = intent.getAction();
+
+        if (!Intent.ACTION_EDIT.equals(action)) {
+            finish();
+            return;
+        }
+        // Just for shorter variable names.
+        final String primary = ContactEditorFragment.INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR;
+        final String secondary =
+                ContactEditorFragment.INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR;
+        if (intent.hasExtra(primary) && intent.hasExtra(secondary)) {
+            mMaterialPalette = new MaterialPalette(intent.getIntExtra(primary, -1),
+                    intent.getIntExtra(secondary, -1));
+        }
+        mShowReadOnly = intent.getBooleanExtra(EXTRA_SHOW_READ_ONLY, false);
+
+        mUri = intent.getData();
+        final String authority = mUri.getAuthority();
+        final String type = getContentResolver().getType(mUri);
+        // Go straight to editor if we're passed a raw contact Uri.
+        if (ContactsContract.AUTHORITY.equals(authority) &&
+                RawContacts.CONTENT_ITEM_TYPE.equals(type)) {
+            Logger.logEditorEvent(
+                    EditorEvent.EventType.SHOW_RAW_CONTACT_PICKER, /* numberRawContacts */ 0);
+            final long rawContactId = ContentUris.parseId(mUri);
+            startEditorAndForwardExtras(getIntentForRawContact(rawContactId));
+        } else if (android.provider.Contacts.AUTHORITY.equals(authority)) {
+            // Fail if given a legacy URI.
+            FeedbackHelper.sendFeedback(this, TAG,
+                    "Legacy Uri was passed to editor.", new IllegalArgumentException());
+            toastErrorAndFinish();
+        } else {
+            getLoaderManager().initLoader(LOADER_RAW_CONTACTS, null, mRawContactLoaderListener);
+        }
+    }
+
+    @Override
+    public void onPickRawContact(long rawContactId) {
+        startEditorAndForwardExtras(getIntentForRawContact(rawContactId));
+    }
+
+    /**
+     * Once the load is finished, decide whether to show the dialog or load the editor directly.
+     */
+    private void onLoad() {
+        maybeTrimReadOnly();
+        setHasWritableAccount();
+        if (mShowReadOnly || (mResult.rawContacts.size() > 1 && mHasWritableAccount)) {
+            showDialog();
+        } else {
+            loadEditor();
+        }
+    }
+
+    /**
+     * If not configured to show read only raw contact, trim them from the result.
+     */
+    private void maybeTrimReadOnly() {
+        mResult.showReadOnly = mShowReadOnly;
+        if (mShowReadOnly) {
+            return;
+        }
+
+        mResult.trimReadOnly(AccountTypeManager.getInstance(this));
+    }
+
+    /**
+     * Start the dialog to pick the raw contact to edit.
+     */
+    private void showDialog() {
+        final FragmentManager fm = getFragmentManager();
+        final SplitContactConfirmationDialogFragment split =
+                (SplitContactConfirmationDialogFragment) fm
+                        .findFragmentByTag(SplitContactConfirmationDialogFragment.TAG);
+        // If we were showing the split confirmation before show it again.
+        if (split != null && split.isAdded()) {
+            fm.beginTransaction().show(split).commitAllowingStateLoss();
+            return;
+        }
+        PickRawContactDialogFragment pick = (PickRawContactDialogFragment) fm
+                .findFragmentByTag(TAG_RAW_CONTACTS_DIALOG);
+        if (pick == null) {
+            pick = PickRawContactDialogFragment.getInstance(mResult);
+            final FragmentTransaction ft = fm.beginTransaction();
+            ft.add(pick, TAG_RAW_CONTACTS_DIALOG);
+            // commitAllowingStateLoss is safe in this activity because the fragment entirely
+            // depends on the result of the loader. Even if we lose the fragment because the
+            // activity was in the background, when it comes back onLoadFinished will be called
+            // again which will have all the state the picker needs. This situation should be
+            // very rare, since the load should be quick.
+            ft.commitAllowingStateLoss();
+        }
+    }
+
+    /**
+     * Starts the editor for the only writable raw contact in the cursor if one exists. Otherwise,
+     * the editor is started normally and handles creation of a new writable raw contact.
+     */
+    private void loadEditor() {
+        Logger.logEditorEvent(
+                EditorEvent.EventType.SHOW_RAW_CONTACT_PICKER, /* numberRawContacts */ 0);
+        final Intent intent;
+        if (mHasWritableAccount) {
+            intent = getIntentForRawContact(mResult.rawContacts.get(mWritableAccountPosition).id);
+        } else {
+            // If the contact has only read-only raw contacts, we'll want to let the editor create
+            // the writable raw contact for it.
+            intent = EditorIntents.createEditContactIntent(this, mUri, mMaterialPalette, -1);
+            intent.setClass(this, ContactEditorActivity.class);
+        }
+        startEditorAndForwardExtras(intent);
+    }
+
+    /**
+     * Determines if this contact has a writable account.
+     */
+    private void setHasWritableAccount() {
+        mWritableAccountPosition = mResult.getIndexOfFirstWritableAccount(
+                AccountTypeManager.getInstance(this));
+        mHasWritableAccount = mWritableAccountPosition != -1;
+    }
+
+    /**
+     * Returns an intent to load the editor for the given raw contact. Sets
+     * {@code FLAG_ACTIVITY_FORWARD_RESULT} in case the activity that started us expects a result.
+     * @param rawContactId Raw contact to edit
+     */
+    private Intent getIntentForRawContact(long rawContactId) {
+        final Intent intent = EditorIntents.createEditContactIntentForRawContact(
+                this, mUri, rawContactId, mMaterialPalette);
+        intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+        return intent;
+    }
+
+    /**
+     * Starts the given intent within the app, attaching any extras to it that were passed to us.
+     */
+    private void startEditorAndForwardExtras(Intent intent) {
+        final Bundle extras = getIntent().getExtras();
+        if (extras != null) {
+            intent.putExtras(extras);
+        }
+        ImplicitIntentsUtil.startActivityInApp(this, intent);
+        finish();
+    }
+
+    private void toastErrorAndFinish() {
+        Toast.makeText(ContactEditorSpringBoardActivity.this,
+                R.string.editor_failed_to_load, Toast.LENGTH_SHORT).show();
+        setResult(RESULT_CANCELED, null);
+        finish();
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        // Ignore failed requests
+        if (resultCode != Activity.RESULT_OK) {
+            finish();
+        }
+        if (data != null) {
+            final Intent intent = ContactSaveService.createJoinContactsIntent(
+                    this, mResult.contactId, ContentUris.parseId(data.getData()),
+                    QuickContactActivity.class, Intent.ACTION_VIEW);
+            startService(intent);
+            finish();
+        }
+    }
+
+    @Override
+    public void onSplitContactConfirmed(boolean hasPendingChanges) {
+        final long[][] rawContactIds = getRawContactIds();
+        final Intent intent = ContactSaveService.createHardSplitContactIntent(this, rawContactIds);
+        startService(intent);
+        finish();
+    }
+
+    @Override
+    public void onSplitContactCanceled() {
+        finish();
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelable(KEY_RAW_CONTACTS_METADATA, mResult);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Bundle savedInstanceState) {
+        super.onRestoreInstanceState(savedInstanceState);
+        mResult = savedInstanceState.getParcelable(KEY_RAW_CONTACTS_METADATA);
+    }
+
+    private long[][] getRawContactIds() {
+        final long[][] result = new long[mResult.rawContacts.size()][1];
+        for (int i = 0; i < mResult.rawContacts.size(); i++) {
+            result[i][0] = mResult.rawContacts.get(i).id;
+        }
+        return result;
+    }
+}
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index ba1e0dd..eaa89a1 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -16,62 +16,64 @@
 
 package com.android.contacts.activities;
 
-import android.app.ActionBar;
-import android.app.ActionBar.LayoutParams;
-import android.app.Activity;
 import android.app.Fragment;
 import android.content.ActivityNotFoundException;
-import android.content.Context;
 import android.content.Intent;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
 import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Intents.Insert;
+import android.support.v4.content.ContextCompat;
+import android.support.v7.widget.Toolbar;
 import android.text.TextUtils;
 import android.util.Log;
-import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.View.OnFocusChangeListener;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.SearchView;
-import android.widget.SearchView.OnCloseListener;
-import android.widget.SearchView.OnQueryTextListener;
+import android.widget.TextView;
 import android.widget.Toast;
 
-import com.android.contacts.ContactsActivity;
+import com.android.contacts.AppCompatContactsActivity;
 import com.android.contacts.R;
-import com.android.contacts.common.activity.RequestPermissionsActivity;
-import com.android.contacts.common.list.ContactEntryListFragment;
 import com.android.contacts.editor.EditorIntents;
+import com.android.contacts.list.ContactEntryListFragment;
 import com.android.contacts.list.ContactPickerFragment;
 import com.android.contacts.list.ContactsIntentResolver;
 import com.android.contacts.list.ContactsRequest;
-import com.android.contacts.common.list.DirectoryListLoader;
+import com.android.contacts.list.DirectoryListLoader;
 import com.android.contacts.list.EmailAddressPickerFragment;
+import com.android.contacts.list.GroupMemberPickerFragment;
 import com.android.contacts.list.JoinContactListFragment;
 import com.android.contacts.list.LegacyPhoneNumberPickerFragment;
+import com.android.contacts.list.MultiSelectContactsListFragment;
+import com.android.contacts.list.MultiSelectContactsListFragment.OnCheckBoxListActionListener;
+import com.android.contacts.list.MultiSelectEmailAddressesListFragment;
+import com.android.contacts.list.MultiSelectPhoneNumbersListFragment;
 import com.android.contacts.list.OnContactPickerActionListener;
 import com.android.contacts.list.OnEmailAddressPickerActionListener;
-import com.android.contacts.list.UiIntentActions;
-import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
+import com.android.contacts.list.OnPhoneNumberPickerActionListener;
 import com.android.contacts.list.OnPostalAddressPickerActionListener;
-import com.android.contacts.common.list.PhoneNumberPickerFragment;
+import com.android.contacts.list.PhoneNumberPickerFragment;
 import com.android.contacts.list.PostalAddressPickerFragment;
+import com.android.contacts.list.UiIntentActions;
+import com.android.contacts.logging.ListEvent;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.util.ViewUtil;
 
-import java.util.Set;
+import java.util.ArrayList;
 
 /**
  * Displays a list of contacts (or phone numbers or postal addresses) for the
  * purposes of selecting one.
  */
-public class ContactSelectionActivity extends ContactsActivity
-        implements View.OnCreateContextMenuListener, OnQueryTextListener, OnClickListener,
-                OnCloseListener, OnFocusChangeListener {
-    private static final String TAG = "ContactSelectionActivity";
+public class ContactSelectionActivity extends AppCompatContactsActivity implements
+        View.OnCreateContextMenuListener, ActionBarAdapter.Listener, OnClickListener,
+        OnFocusChangeListener, OnCheckBoxListActionListener {
+    private static final String TAG = "ContactSelection";
 
     private static final String KEY_ACTION_CODE = "actionCode";
     private static final String KEY_SEARCH_MODE = "searchMode";
@@ -85,8 +87,9 @@
     private boolean mIsSearchSupported;
 
     private ContactsRequest mRequest;
-    private SearchView mSearchView;
-    private View mSearchViewContainer;
+
+    private ActionBarAdapter mActionBarAdapter;
+    private Toolbar mToolbar;
 
     public ContactSelectionActivity() {
         mIntentResolver = new ContactsIntentResolver(this);
@@ -104,9 +107,7 @@
     protected void onCreate(Bundle savedState) {
         super.onCreate(savedState);
 
-        if (RequestPermissionsActivity.startPermissionActivity(this)) {
-            return;
-        }
+        RequestPermissionsActivity.startPermissionActivityIfNeeded(this);
 
         if (savedState != null) {
             mActionCode = savedState.getInt(KEY_ACTION_CODE);
@@ -121,8 +122,6 @@
             return;
         }
 
-        configureActivityTitle();
-
         setContentView(R.layout.contact_picker);
 
         if (mActionCode != mRequest.getActionCode()) {
@@ -130,80 +129,58 @@
             configureListFragment();
         }
 
-        prepareSearchViewAndActionBar();
+        prepareSearchViewAndActionBar(savedState);
+        configureActivityTitle();
     }
 
-    private void prepareSearchViewAndActionBar() {
-        final ActionBar actionBar = getActionBar();
-        mSearchViewContainer = LayoutInflater.from(actionBar.getThemedContext())
-                .inflate(R.layout.custom_action_bar, null);
-        mSearchView = (SearchView) mSearchViewContainer.findViewById(R.id.search_view);
+    public boolean isSelectionMode() {
+        return mActionBarAdapter.isSelectionMode();
+    }
+
+    public boolean isSearchMode() {
+        return mActionBarAdapter.isSearchMode();
+    }
+
+    private void prepareSearchViewAndActionBar(Bundle savedState) {
+        mToolbar = getView(R.id.toolbar);
+        setSupportActionBar(mToolbar);
+
+        // Add a shadow under the toolbar.
+        ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
+
+        mActionBarAdapter = new ActionBarAdapter(this, this, getSupportActionBar(), mToolbar,
+                R.string.enter_contact_name);
+        mActionBarAdapter.setShowHomeIcon(true);
+        mActionBarAdapter.setShowHomeAsUp(true);
+        mActionBarAdapter.initialize(savedState, mRequest);
 
         // Postal address pickers (and legacy pickers) don't support search, so just show
         // "HomeAsUp" button and title.
-        if (mRequest.getActionCode() == ContactsRequest.ACTION_PICK_POSTAL ||
-                mRequest.isLegacyCompatibilityMode()) {
-            mSearchView.setVisibility(View.GONE);
-            if (actionBar != null) {
-                actionBar.setDisplayShowHomeEnabled(true);
-                actionBar.setDisplayHomeAsUpEnabled(true);
-                actionBar.setDisplayShowTitleEnabled(true);
-            }
-            mIsSearchSupported = false;
-            configureSearchMode();
-            return;
-        }
-
-        actionBar.setDisplayShowHomeEnabled(true);
-        actionBar.setDisplayHomeAsUpEnabled(true);
-
-        // In order to make the SearchView look like "shown via search menu", we need to
-        // manually setup its state. See also DialtactsActivity.java and ActionBarAdapter.java.
-        mSearchView.setIconifiedByDefault(true);
-        mSearchView.setQueryHint(getString(R.string.hint_findContacts));
-        mSearchView.setIconified(false);
-        mSearchView.setFocusable(true);
-
-        mSearchView.setOnQueryTextListener(this);
-        mSearchView.setOnCloseListener(this);
-        mSearchView.setOnQueryTextFocusChangeListener(this);
-
-        actionBar.setCustomView(mSearchViewContainer,
-                new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
-        actionBar.setDisplayShowCustomEnabled(true);
-
-        mIsSearchSupported = true;
+        mIsSearchSupported = mRequest.getActionCode() != ContactsRequest.ACTION_PICK_POSTAL
+                && mRequest.getActionCode() != ContactsRequest.ACTION_PICK_EMAILS
+                && mRequest.getActionCode() != ContactsRequest.ACTION_PICK_PHONES
+                && !mRequest.isLegacyCompatibilityMode();
         configureSearchMode();
     }
 
     private void configureSearchMode() {
-        final ActionBar actionBar = getActionBar();
-        if (mIsSearchMode) {
-            actionBar.setDisplayShowTitleEnabled(false);
-            mSearchViewContainer.setVisibility(View.VISIBLE);
-            mSearchView.requestFocus();
-        } else {
-            actionBar.setDisplayShowTitleEnabled(true);
-            mSearchViewContainer.setVisibility(View.GONE);
-            mSearchView.setQuery(null, true);
-        }
+        mActionBarAdapter.setSearchMode(mIsSearchMode);
         invalidateOptionsMenu();
     }
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case android.R.id.home:
-                // Go back to previous screen, intending "cancel"
-                setResult(RESULT_CANCELED);
-                onBackPressed();
-                return true;
-            case R.id.menu_search:
-                mIsSearchMode = !mIsSearchMode;
-                configureSearchMode();
-                return true;
+        final int id = item.getItemId();
+        if (id == android.R.id.home) {// Go back to previous screen, intending "cancel"
+            setResult(RESULT_CANCELED);
+            onBackPressed();
+        } else if (id == R.id.menu_search) {
+            mIsSearchMode = !mIsSearchMode;
+            configureSearchMode();
+        } else {
+            return super.onOptionsItemSelected(item);
         }
-        return super.onOptionsItemSelected(item);
+        return true;
     }
 
     @Override
@@ -211,65 +188,74 @@
         super.onSaveInstanceState(outState);
         outState.putInt(KEY_ACTION_CODE, mActionCode);
         outState.putBoolean(KEY_SEARCH_MODE, mIsSearchMode);
+        if (mActionBarAdapter != null) {
+            mActionBarAdapter.onSaveInstanceState(outState);
+        }
     }
 
     private void configureActivityTitle() {
         if (!TextUtils.isEmpty(mRequest.getActivityTitle())) {
-            setTitle(mRequest.getActivityTitle());
+            getSupportActionBar().setTitle(mRequest.getActivityTitle());
             return;
         }
-
+        int titleResId = -1;
         int actionCode = mRequest.getActionCode();
         switch (actionCode) {
             case ContactsRequest.ACTION_INSERT_OR_EDIT_CONTACT: {
-                setTitle(R.string.contactInsertOrEditActivityTitle);
+                titleResId = R.string.contactInsertOrEditActivityTitle;
                 break;
             }
-
             case ContactsRequest.ACTION_PICK_CONTACT: {
-                setTitle(R.string.contactPickerActivityTitle);
+                titleResId = R.string.contactPickerActivityTitle;
                 break;
             }
-
             case ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT: {
-                setTitle(R.string.contactPickerActivityTitle);
+                titleResId = R.string.contactPickerActivityTitle;
                 break;
             }
-
             case ContactsRequest.ACTION_CREATE_SHORTCUT_CONTACT: {
-                setTitle(R.string.shortcutActivityTitle);
+                titleResId = R.string.shortcutActivityTitle;
                 break;
             }
-
             case ContactsRequest.ACTION_PICK_PHONE: {
-                setTitle(R.string.contactPickerActivityTitle);
+                titleResId = R.string.contactPickerActivityTitle;
                 break;
             }
-
             case ContactsRequest.ACTION_PICK_EMAIL: {
-                setTitle(R.string.contactPickerActivityTitle);
+                titleResId = R.string.contactPickerActivityTitle;
                 break;
             }
-
+            case ContactsRequest.ACTION_PICK_PHONES: {
+                titleResId = R.string.pickerSelectContactsActivityTitle;
+                break;
+            }
+            case ContactsRequest.ACTION_PICK_EMAILS: {
+                titleResId = R.string.pickerSelectContactsActivityTitle;
+                break;
+            }
             case ContactsRequest.ACTION_CREATE_SHORTCUT_CALL: {
-                setTitle(R.string.callShortcutActivityTitle);
+                titleResId = R.string.shortcutActivityTitle;
                 break;
             }
-
             case ContactsRequest.ACTION_CREATE_SHORTCUT_SMS: {
-                setTitle(R.string.messageShortcutActivityTitle);
+                titleResId = R.string.shortcutActivityTitle;
                 break;
             }
-
             case ContactsRequest.ACTION_PICK_POSTAL: {
-                setTitle(R.string.contactPickerActivityTitle);
+                titleResId = R.string.contactPickerActivityTitle;
                 break;
             }
-
             case ContactsRequest.ACTION_PICK_JOIN: {
-                setTitle(R.string.titleJoinContactDataWith);
+                titleResId = R.string.titleJoinContactDataWith;
                 break;
             }
+            case ContactsRequest.ACTION_PICK_GROUP_MEMBERS: {
+                titleResId = R.string.groupMemberPickerActivityTitle;
+                break;
+            }
+        }
+        if (titleResId > 0) {
+            getSupportActionBar().setTitle(titleResId);
         }
     }
 
@@ -283,6 +269,7 @@
                 fragment.setEditMode(true);
                 fragment.setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
                 fragment.setCreateContactEnabled(!mRequest.isSearchMode());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
                 mListFragment = fragment;
                 break;
             }
@@ -290,7 +277,8 @@
             case ContactsRequest.ACTION_DEFAULT:
             case ContactsRequest.ACTION_PICK_CONTACT: {
                 ContactPickerFragment fragment = new ContactPickerFragment();
-                fragment.setIncludeProfile(mRequest.shouldIncludeProfile());
+                fragment.setIncludeFavorites(mRequest.shouldIncludeFavorites());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
                 mListFragment = fragment;
                 break;
             }
@@ -298,6 +286,7 @@
             case ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT: {
                 ContactPickerFragment fragment = new ContactPickerFragment();
                 fragment.setCreateContactEnabled(!mRequest.isSearchMode());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
                 mListFragment = fragment;
                 break;
             }
@@ -305,25 +294,39 @@
             case ContactsRequest.ACTION_CREATE_SHORTCUT_CONTACT: {
                 ContactPickerFragment fragment = new ContactPickerFragment();
                 fragment.setShortcutRequested(true);
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT_FOR_SHORTCUT);
                 mListFragment = fragment;
                 break;
             }
 
             case ContactsRequest.ACTION_PICK_PHONE: {
                 PhoneNumberPickerFragment fragment = getPhoneNumberPickerFragment(mRequest);
+                fragment.setListType(ListEvent.ListType.PICK_PHONE);
                 mListFragment = fragment;
                 break;
             }
 
             case ContactsRequest.ACTION_PICK_EMAIL: {
                 mListFragment = new EmailAddressPickerFragment();
+                mListFragment.setListType(ListEvent.ListType.PICK_EMAIL);
                 break;
             }
 
+            case ContactsRequest.ACTION_PICK_PHONES: {
+                mListFragment = new MultiSelectPhoneNumbersListFragment();
+                mListFragment.setArguments(getIntent().getExtras());
+                break;
+            }
+
+            case ContactsRequest.ACTION_PICK_EMAILS: {
+                mListFragment = new MultiSelectEmailAddressesListFragment();
+                mListFragment.setArguments(getIntent().getExtras());
+                break;
+            }
             case ContactsRequest.ACTION_CREATE_SHORTCUT_CALL: {
                 PhoneNumberPickerFragment fragment = getPhoneNumberPickerFragment(mRequest);
                 fragment.setShortcutAction(Intent.ACTION_CALL);
-
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT_FOR_SHORTCUT);
                 mListFragment = fragment;
                 break;
             }
@@ -331,14 +334,14 @@
             case ContactsRequest.ACTION_CREATE_SHORTCUT_SMS: {
                 PhoneNumberPickerFragment fragment = getPhoneNumberPickerFragment(mRequest);
                 fragment.setShortcutAction(Intent.ACTION_SENDTO);
-
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT_FOR_SHORTCUT);
                 mListFragment = fragment;
                 break;
             }
 
             case ContactsRequest.ACTION_PICK_POSTAL: {
                 PostalAddressPickerFragment fragment = new PostalAddressPickerFragment();
-
+                fragment.setListType(ListEvent.ListType.PICK_POSTAL);
                 mListFragment = fragment;
                 break;
             }
@@ -346,10 +349,26 @@
             case ContactsRequest.ACTION_PICK_JOIN: {
                 JoinContactListFragment joinFragment = new JoinContactListFragment();
                 joinFragment.setTargetContactId(getTargetContactId());
+                joinFragment.setListType(ListEvent.ListType.PICK_JOIN);
                 mListFragment = joinFragment;
                 break;
             }
 
+            case ContactsRequest.ACTION_PICK_GROUP_MEMBERS: {
+                final String accountName = getIntent().getStringExtra(
+                        UiIntentActions.GROUP_ACCOUNT_NAME);
+                final String accountType = getIntent().getStringExtra(
+                        UiIntentActions.GROUP_ACCOUNT_TYPE);
+                final String accountDataSet = getIntent().getStringExtra(
+                        UiIntentActions.GROUP_ACCOUNT_DATA_SET);
+                final ArrayList<String> contactIds = getIntent().getStringArrayListExtra(
+                        UiIntentActions.GROUP_CONTACT_IDS);
+                mListFragment = GroupMemberPickerFragment.newInstance(
+                        accountName, accountType, accountDataSet, contactIds);
+                mListFragment.setListType(ListEvent.ListType.PICK_GROUP_MEMBERS);
+                break;
+            }
+
             default:
                 throw new IllegalStateException("Invalid action code: " + mActionCode);
         }
@@ -386,14 +405,103 @@
         } else if (mListFragment instanceof EmailAddressPickerFragment) {
             ((EmailAddressPickerFragment) mListFragment).setOnEmailAddressPickerActionListener(
                     new EmailAddressPickerActionListener());
+        } else if (mListFragment instanceof MultiSelectEmailAddressesListFragment) {
+            ((MultiSelectEmailAddressesListFragment) mListFragment).setCheckBoxListListener(this);
+        } else if (mListFragment instanceof MultiSelectPhoneNumbersListFragment) {
+            ((MultiSelectPhoneNumbersListFragment) mListFragment).setCheckBoxListListener(this);
         } else if (mListFragment instanceof JoinContactListFragment) {
             ((JoinContactListFragment) mListFragment).setOnContactPickerActionListener(
                     new JoinContactActionListener());
+        } else if (mListFragment instanceof GroupMemberPickerFragment) {
+            ((GroupMemberPickerFragment) mListFragment).setListener(
+                    new GroupMemberPickerListener());
+            getMultiSelectListFragment().setCheckBoxListListener(this);
         } else {
             throw new IllegalStateException("Unsupported list fragment type: " + mListFragment);
         }
     }
 
+    private MultiSelectContactsListFragment getMultiSelectListFragment() {
+        if (mListFragment instanceof MultiSelectContactsListFragment) {
+            return (MultiSelectContactsListFragment) mListFragment;
+        }
+        return null;
+    }
+
+    @Override
+    public void onAction(int action) {
+        switch (action) {
+            case ActionBarAdapter.Listener.Action.START_SEARCH_MODE:
+                mIsSearchMode = true;
+                configureSearchMode();
+                break;
+            case ActionBarAdapter.Listener.Action.CHANGE_SEARCH_QUERY:
+                final String queryString = mActionBarAdapter.getQueryString();
+                mListFragment.setQueryString(queryString, /* delaySelection */ false);
+                break;
+            case ActionBarAdapter.Listener.Action.START_SELECTION_MODE:
+                if (getMultiSelectListFragment() != null) {
+                    getMultiSelectListFragment().displayCheckBoxes(true);
+                }
+                invalidateOptionsMenu();
+                break;
+            case ActionBarAdapter.Listener.Action.STOP_SEARCH_AND_SELECTION_MODE:
+                mListFragment.setQueryString("", /* delaySelection */ false);
+                mActionBarAdapter.setSearchMode(false);
+                if (getMultiSelectListFragment() != null) {
+                    getMultiSelectListFragment().displayCheckBoxes(false);
+                }
+                invalidateOptionsMenu();
+                break;
+        }
+    }
+
+    @Override
+    public void onUpButtonPressed() {
+        onBackPressed();
+    }
+
+    @Override
+    public void onStartDisplayingCheckBoxes() {
+        mActionBarAdapter.setSelectionMode(true);
+    }
+
+    @Override
+    public void onSelectedContactIdsChanged() {
+        if (mListFragment instanceof MultiSelectContactsListFragment) {
+            final int count = getMultiSelectListFragment().getSelectedContactIds().size();
+            mActionBarAdapter.setSelectionCount(count);
+            updateAddContactsButton(count);
+
+            // Show or hide the multi select "Done" button
+            invalidateOptionsMenu();
+        }
+    }
+
+    private void updateAddContactsButton(int count) {
+        final TextView textView = (TextView) mActionBarAdapter.getSelectionContainer()
+                .findViewById(R.id.add_contacts);
+        if (count > 0) {
+            textView.setVisibility(View.VISIBLE);
+            textView.setAllCaps(true);
+            textView.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    final long[] contactIds =
+                            getMultiSelectListFragment().getSelectedContactIdsArray();
+                    returnSelectedContacts(contactIds);
+                }
+            });
+        } else {
+            textView.setVisibility(View.GONE);
+        }
+    }
+
+    @Override
+    public void onStopDisplayingCheckBoxes() {
+        mActionBarAdapter.setSelectionMode(false);
+    }
+
     private final class ContactPickerActionListener implements OnContactPickerActionListener {
         @Override
         public void onCreateNewContactAction() {
@@ -403,7 +511,8 @@
         @Override
         public void onEditContactAction(Uri contactLookupUri) {
             startActivityAndForwardResult(EditorIntents.createEditContactIntent(
-                    contactLookupUri, /* materialPalette =*/ null, /* photoId =*/ -1));
+                    ContactSelectionActivity.this, contactLookupUri, /* materialPalette =*/ null,
+                    /* photoId =*/ -1));
         }
 
         @Override
@@ -462,6 +571,27 @@
         }
     }
 
+    private final class GroupMemberPickerListener implements GroupMemberPickerFragment.Listener {
+
+        @Override
+        public void onGroupMemberClicked(long contactId) {
+            final Intent intent = new Intent();
+            intent.putExtra(UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY, contactId);
+            returnPickerResult(intent);
+        }
+
+        @Override
+        public void onSelectGroupMembers() {
+            mActionBarAdapter.setSelectionMode(true);
+        }
+    }
+
+    private void returnSelectedContacts(long[] contactIds) {
+        final Intent intent = new Intent();
+        intent.putExtra(UiIntentActions.TARGET_CONTACT_IDS_EXTRA_KEY, contactIds);
+        returnPickerResult(intent);
+    }
+
     private final class PostalAddressPickerActionListener implements
             OnPostalAddressPickerActionListener {
         @Override
@@ -487,7 +617,7 @@
             intent.putExtras(extras);
         }
         try {
-            startActivity(intent);
+            ImplicitIntentsUtil.startActivityInApp(ContactSelectionActivity.this, intent);
         } catch (ActivityNotFoundException e) {
             Log.e(TAG, "startActivity() failed: " + e);
             Toast.makeText(ContactSelectionActivity.this, R.string.missing_app,
@@ -497,31 +627,10 @@
     }
 
     @Override
-    public boolean onQueryTextChange(String newText) {
-        mListFragment.setQueryString(newText, true);
-        return false;
-    }
-
-    @Override
-    public boolean onQueryTextSubmit(String query) {
-        return false;
-    }
-
-    @Override
-    public boolean onClose() {
-        if (!TextUtils.isEmpty(mSearchView.getQuery())) {
-            mSearchView.setQuery(null, true);
-        }
-        return true;
-    }
-
-    @Override
     public void onFocusChange(View view, boolean hasFocus) {
-        switch (view.getId()) {
-            case R.id.search_view: {
-                if (hasFocus) {
-                    showInputMethod(mSearchView.findFocus());
-                }
+        if (view.getId() == R.id.search_view) {
+            if (hasFocus) {
+                mActionBarAdapter.setFocusOnSearchView();
             }
         }
     }
@@ -540,11 +649,8 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.floating_action_button: {
-                startCreateNewContactActivity();
-                break;
-            }
+        if (view.getId() == R.id.floating_action_button) {
+            startCreateNewContactActivity();
         }
     }
 
@@ -564,20 +670,11 @@
 
     private void startCreateNewContactActivity() {
         Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
-        intent.putExtra(ContactEditorActivity.INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, true);
+        intent.putExtra(ContactEditorActivity.
+                INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, true);
         startActivityAndForwardResult(intent);
     }
 
-    private void showInputMethod(View view) {
-        final InputMethodManager imm = (InputMethodManager)
-                getSystemService(Context.INPUT_METHOD_SERVICE);
-        if (imm != null) {
-            if (!imm.showSoftInput(view, 0)) {
-                Log.w(TAG, "Failed to show soft input method.");
-            }
-        }
-    }
-
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         super.onCreateOptionsMenu(menu);
@@ -587,6 +684,12 @@
 
         final MenuItem searchItem = menu.findItem(R.id.menu_search);
         searchItem.setVisible(!mIsSearchMode && mIsSearchSupported);
+
+        final Drawable searchIcon = searchItem.getIcon();
+        if (searchIcon != null) {
+            searchIcon.mutate().setColorFilter(ContextCompat.getColor(this,
+                    R.color.actionbar_icon_color), PorterDuff.Mode.SRC_ATOP);
+        }
         return true;
     }
 
@@ -596,7 +699,12 @@
             return;
         }
 
-        if (mIsSearchMode) {
+        if (isSelectionMode()) {
+            mActionBarAdapter.setSelectionMode(false);
+            if (getMultiSelectListFragment() != null) {
+                getMultiSelectListFragment().displayCheckBoxes(false);
+            }
+        } else if (mIsSearchMode) {
             mIsSearchMode = false;
             configureSearchMode();
         } else {
diff --git a/src/com/android/contacts/activities/GroupDetailActivity.java b/src/com/android/contacts/activities/GroupDetailActivity.java
deleted file mode 100644
index 394e5e5..0000000
--- a/src/com/android/contacts/activities/GroupDetailActivity.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (C) 2011 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.activities;
-
-import android.app.ActionBar;
-import android.content.ContentUris;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract.Groups;
-import android.text.TextUtils;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-
-import com.android.contacts.ContactsActivity;
-import com.android.contacts.R;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-import com.android.contacts.group.GroupDetailDisplayUtils;
-import com.android.contacts.group.GroupDetailFragment;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-
-public class GroupDetailActivity extends ContactsActivity {
-
-    private static final String TAG = "GroupDetailActivity";
-
-    private boolean mShowGroupSourceInActionBar;
-
-    private String mAccountTypeString;
-    private String mDataSet;
-
-    private GroupDetailFragment mFragment;
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        super.onCreate(savedState);
-
-        // TODO: Create Intent Resolver to handle the different ways users can get to this list.
-        // TODO: Handle search or key down
-
-        setContentView(R.layout.group_detail_activity);
-
-        mShowGroupSourceInActionBar = getResources().getBoolean(
-                R.bool.config_show_group_action_in_action_bar);
-
-        mFragment = (GroupDetailFragment) getFragmentManager().findFragmentById(
-                R.id.group_detail_fragment);
-        mFragment.setListener(mFragmentListener);
-        mFragment.setShowGroupSourceInActionBar(mShowGroupSourceInActionBar);
-        mFragment.loadGroup(getIntent().getData());
-        mFragment.closeActivityAfterDelete(true);
-
-        // We want the UP affordance but no app icon.
-        ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE,
-                    ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE
-                    | ActionBar.DISPLAY_SHOW_HOME);
-        }
-    }
-
-    private final GroupDetailFragment.Listener mFragmentListener =
-            new GroupDetailFragment.Listener() {
-
-        @Override
-        public void onGroupSizeUpdated(String size) {
-            getActionBar().setSubtitle(size);
-        }
-
-        @Override
-        public void onGroupTitleUpdated(String title) {
-            getActionBar().setTitle(title);
-        }
-
-        @Override
-        public void onAccountTypeUpdated(String accountTypeString, String dataSet) {
-            mAccountTypeString = accountTypeString;
-            mDataSet = dataSet;
-            invalidateOptionsMenu();
-        }
-
-        @Override
-        public void onEditRequested(Uri groupUri) {
-            final Intent intent = new Intent(GroupDetailActivity.this, GroupEditorActivity.class);
-            intent.setData(groupUri);
-            intent.setAction(Intent.ACTION_EDIT);
-            startActivity(intent);
-        }
-
-        @Override
-        public void onContactSelected(Uri contactUri) {
-            Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
-            ImplicitIntentsUtil.startActivityInApp(GroupDetailActivity.this, intent);
-        }
-
-    };
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
-        if (mShowGroupSourceInActionBar) {
-            MenuInflater inflater = getMenuInflater();
-            inflater.inflate(R.menu.group_source, menu);
-        }
-        return true;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        if (!mShowGroupSourceInActionBar) {
-            return false;
-        }
-        MenuItem groupSourceMenuItem = menu.findItem(R.id.menu_group_source);
-        if (groupSourceMenuItem == null) {
-            return false;
-        }
-        final AccountTypeManager manager = AccountTypeManager.getInstance(this);
-        final AccountType accountType =
-                manager.getAccountType(mAccountTypeString, mDataSet);
-        if (TextUtils.isEmpty(mAccountTypeString)
-                || TextUtils.isEmpty(accountType.getViewGroupActivity())) {
-            groupSourceMenuItem.setVisible(false);
-            return false;
-        }
-        View groupSourceView = GroupDetailDisplayUtils.getNewGroupSourceView(this);
-        GroupDetailDisplayUtils.bindGroupSourceView(this, groupSourceView,
-                mAccountTypeString, mDataSet);
-        groupSourceView.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                final Uri uri = ContentUris.withAppendedId(Groups.CONTENT_URI,
-                        mFragment.getGroupId());
-                final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
-                intent.setClassName(accountType.syncAdapterPackageName,
-                        accountType.getViewGroupActivity());
-                ImplicitIntentsUtil.startActivityInApp(GroupDetailActivity.this, intent);
-            }
-        });
-        groupSourceMenuItem.setActionView(groupSourceView);
-        groupSourceMenuItem.setVisible(true);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case android.R.id.home:
-                Intent intent = new Intent(this, PeopleActivity.class);
-                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                startActivity(intent);
-                finish();
-                return true;
-            default:
-                break;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-}
diff --git a/src/com/android/contacts/activities/GroupEditorActivity.java b/src/com/android/contacts/activities/GroupEditorActivity.java
deleted file mode 100644
index b204418..0000000
--- a/src/com/android/contacts/activities/GroupEditorActivity.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2011 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.activities;
-
-import android.app.ActionBar;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-
-import com.android.contacts.ContactsActivity;
-import com.android.contacts.R;
-import com.android.contacts.group.GroupEditorFragment;
-import com.android.contacts.util.DialogManager;
-import com.android.contacts.util.PhoneCapabilityTester;
-
-public class GroupEditorActivity extends ContactsActivity
-        implements DialogManager.DialogShowingViewActivity {
-
-    private static final String TAG = "GroupEditorActivity";
-
-    public static final String ACTION_SAVE_COMPLETED = "saveCompleted";
-    public static final String ACTION_ADD_MEMBER_COMPLETED = "addMemberCompleted";
-    public static final String ACTION_REMOVE_MEMBER_COMPLETED = "removeMemberCompleted";
-
-    private GroupEditorFragment mFragment;
-
-    private DialogManager mDialogManager = new DialogManager(this);
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        super.onCreate(savedState);
-        String action = getIntent().getAction();
-
-        if (ACTION_SAVE_COMPLETED.equals(action)) {
-            finish();
-            return;
-        }
-
-        setContentView(R.layout.group_editor_activity);
-
-        ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            // Inflate a custom action bar that contains the "done" button for saving changes
-            // to the group
-            LayoutInflater inflater = (LayoutInflater) getSystemService
-                    (Context.LAYOUT_INFLATER_SERVICE);
-            View customActionBarView = inflater.inflate(R.layout.editor_custom_action_bar,
-                    null);
-            View saveMenuItem = customActionBarView.findViewById(R.id.save_menu_item);
-            saveMenuItem.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    mFragment.onDoneClicked();
-                }
-            });
-            // Show the custom action bar but hide the home icon and title
-            actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
-                    ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME |
-                    ActionBar.DISPLAY_SHOW_TITLE);
-            actionBar.setCustomView(customActionBarView);
-        }
-
-        mFragment = (GroupEditorFragment) getFragmentManager().findFragmentById(
-                R.id.group_editor_fragment);
-        mFragment.setListener(mFragmentListener);
-        mFragment.setContentResolver(getContentResolver());
-
-        // NOTE The fragment will restore its state by itself after orientation changes, so
-        // we need to do this only for a new instance.
-        if (savedState == null) {
-            Uri uri = Intent.ACTION_EDIT.equals(action) ? getIntent().getData() : null;
-            mFragment.load(action, uri, getIntent().getExtras());
-        }
-    }
-
-    @Override
-    protected Dialog onCreateDialog(int id, Bundle args) {
-        if (DialogManager.isManagedId(id)) {
-            return mDialogManager.onCreateDialog(id, args);
-        } else {
-            // Nobody knows about the Dialog
-            Log.w(TAG, "Unknown dialog requested, id: " + id + ", args: " + args);
-            return null;
-        }
-    }
-
-    @Override
-    public void onBackPressed() {
-        // If the change could not be saved, then revert to the default "back" button behavior.
-        if (!mFragment.save()) {
-            super.onBackPressed();
-        }
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
-
-        if (mFragment == null) {
-            return;
-        }
-
-        String action = intent.getAction();
-        if (ACTION_SAVE_COMPLETED.equals(action)) {
-            mFragment.onSaveCompleted(true, intent.getData());
-        }
-    }
-
-    private final GroupEditorFragment.Listener mFragmentListener =
-            new GroupEditorFragment.Listener() {
-        @Override
-        public void onGroupNotFound() {
-            finish();
-        }
-
-        @Override
-        public void onReverted() {
-            finish();
-        }
-
-        @Override
-        public void onAccountsNotFound() {
-            finish();
-        }
-
-        @Override
-        public void onSaveFinished(int resultCode, Intent resultIntent) {
-            if (resultIntent != null) {
-                Intent intent = new Intent(GroupEditorActivity.this, GroupDetailActivity.class);
-                intent.setData(resultIntent.getData());
-                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                startActivity(intent);
-                finish();
-            }
-        }
-    };
-
-    @Override
-    public DialogManager getDialogManager() {
-        return mDialogManager;
-    }
-}
diff --git a/src/com/android/contacts/activities/LicenseActivity.java b/src/com/android/contacts/activities/LicenseActivity.java
new file mode 100644
index 0000000..4ccaa93
--- /dev/null
+++ b/src/com/android/contacts/activities/LicenseActivity.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2015 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.activities;
+
+import android.os.Bundle;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.view.MenuItem;
+import android.webkit.WebView;
+
+import com.android.contacts.R;
+
+/**
+ * Displays the licenses for all open source libraries.
+ */
+public class LicenseActivity extends AppCompatActivity {
+    private static final String LICENSE_FILE = "file:///android_asset/licenses.html";
+    private WebView mWebView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.licenses);
+        mWebView = (WebView) findViewById(R.id.webview);
+        mWebView.loadUrl(LICENSE_FILE);
+        final ActionBar actionBar = getSupportActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        mWebView.destroy();
+        super.onDestroy();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            finish();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index a6c7b8b..5a38043 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -16,169 +16,315 @@
 
 package com.android.contacts.activities;
 
+import android.accounts.Account;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
-import android.content.ActivityNotFoundException;
+import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
 import android.content.ContentUris;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.graphics.Rect;
+import android.content.IntentFilter;
+import android.content.SyncStatusObserver;
+import android.content.res.Configuration;
+import android.graphics.Color;
 import android.net.Uri;
 import android.os.Bundle;
-import android.os.Parcelable;
-import android.provider.BlockedNumberContract;
+import android.os.Handler;
 import android.provider.ContactsContract;
-import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Intents;
 import android.provider.ContactsContract.ProviderStatus;
-import android.provider.ContactsContract.QuickContact;
-import android.provider.Settings;
-import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.telecom.TelecomManager;
-import android.text.TextUtils;
+import android.support.annotation.LayoutRes;
+import android.support.design.widget.CoordinatorLayout;
+import android.support.design.widget.Snackbar;
+import android.support.v4.content.ContextCompat;
+import android.support.v4.content.LocalBroadcastManager;
+import android.support.v4.view.GravityCompat;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
 import android.util.Log;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.Window;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
 import android.widget.ImageButton;
 import android.widget.Toast;
-import android.widget.Toolbar;
 
-import com.android.contacts.ContactsActivity;
+import com.android.contacts.AppCompatContactsActivity;
+import com.android.contacts.ContactSaveService;
 import com.android.contacts.R;
-import com.android.contacts.activities.ActionBarAdapter.TabState;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.activity.RequestPermissionsActivity;
-import com.android.contacts.common.compat.TelecomManagerUtil;
-import com.android.contacts.common.dialog.ClearFrequentsDialog;
-import com.android.contacts.common.interactions.ImportExportDialogFragment;
-import com.android.contacts.common.list.ContactEntryListFragment;
-import com.android.contacts.common.list.ContactListFilter;
-import com.android.contacts.common.list.ContactListFilterController;
-import com.android.contacts.common.list.ContactTileAdapter.DisplayType;
-import com.android.contacts.common.list.DirectoryListLoader;
-import com.android.contacts.common.list.ViewPagerTabs;
-import com.android.contacts.common.logging.Logger;
-import com.android.contacts.common.logging.ScreenEvent.ScreenType;
-import com.android.contacts.common.preference.ContactsPreferenceActivity;
-import com.android.contacts.common.util.AccountFilterUtil;
-import com.android.contacts.common.util.Constants;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-import com.android.contacts.common.util.ViewUtil;
-import com.android.contacts.common.widget.FloatingActionButtonController;
-import com.android.contacts.editor.EditorIntents;
-import com.android.contacts.interactions.ContactDeletionInteraction;
-import com.android.contacts.interactions.ContactMultiDeletionInteraction;
-import com.android.contacts.interactions.ContactMultiDeletionInteraction.MultiContactDeleteListener;
-import com.android.contacts.interactions.JoinContactsDialogFragment;
-import com.android.contacts.interactions.JoinContactsDialogFragment.JoinContactsListener;
-import com.android.contacts.list.ContactTileListFragment;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.drawer.DrawerFragment;
+import com.android.contacts.drawer.DrawerFragment.DrawerFragmentListener;
+import com.android.contacts.editor.ContactEditorFragment;
+import com.android.contacts.editor.SelectAccountDialogFragment;
+import com.android.contacts.group.GroupListItem;
+import com.android.contacts.group.GroupMembersFragment;
+import com.android.contacts.group.GroupNameEditDialogFragment;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.list.AccountFilterActivity;
+import com.android.contacts.list.ContactListFilter;
+import com.android.contacts.list.ContactListFilterController;
+import com.android.contacts.list.ContactListFilterController.ContactListFilterListener;
 import com.android.contacts.list.ContactsIntentResolver;
 import com.android.contacts.list.ContactsRequest;
 import com.android.contacts.list.ContactsUnavailableFragment;
+import com.android.contacts.list.DefaultContactBrowseListFragment;
 import com.android.contacts.list.MultiSelectContactsListFragment;
-import com.android.contacts.list.MultiSelectContactsListFragment.OnCheckBoxListActionListener;
-import com.android.contacts.list.OnContactBrowserActionListener;
-import com.android.contacts.list.OnContactsUnavailableActionListener;
 import com.android.contacts.list.ProviderStatusWatcher;
 import com.android.contacts.list.ProviderStatusWatcher.ProviderStatusListener;
-import com.android.contacts.quickcontact.QuickContactActivity;
-import com.android.contacts.util.DialogManager;
-import com.android.contacts.util.PhoneCapabilityTester;
+import com.android.contacts.logging.Logger;
+import com.android.contacts.logging.ScreenEvent.ScreenType;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.preference.ContactsPreferenceActivity;
+import com.android.contacts.util.AccountFilterUtil;
+import com.android.contacts.util.Constants;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.util.MaterialColorMapUtils;
+import com.android.contacts.util.SharedPreferenceUtil;
+import com.android.contacts.util.SyncUtil;
+import com.android.contacts.util.ViewUtil;
+import com.android.contacts.widget.FloatingActionButtonController;
+import com.android.contactsbind.FeatureHighlightHelper;
 import com.android.contactsbind.HelpUtils;
+import com.android.contactsbind.ObjectFactory;
 
+import com.google.common.util.concurrent.Futures;
+
+import java.util.Collections;
 import java.util.List;
-import java.util.Locale;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Displays a list to browse contacts.
  */
-public class PeopleActivity extends ContactsActivity implements
-        View.OnCreateContextMenuListener,
-        View.OnClickListener,
-        ActionBarAdapter.Listener,
-        DialogManager.DialogShowingViewActivity,
-        ContactListFilterController.ContactListFilterListener,
-        ProviderStatusListener,
-        MultiContactDeleteListener,
-        JoinContactsListener {
+public class PeopleActivity extends AppCompatContactsActivity implements
+        DrawerFragmentListener,
+        SelectAccountDialogFragment.Listener {
+
+    /** Possible views of Contacts app. */
+    public enum ContactsView {
+        NONE,
+        ALL_CONTACTS,
+        ASSISTANT,
+        GROUP_VIEW,
+        ACCOUNT_VIEW,
+    }
 
     private static final String TAG = "PeopleActivity";
+    private static final String TAG_ALL = "contacts-all";
+    private static final String TAG_UNAVAILABLE = "contacts-unavailable";
+    private static final String TAG_GROUP_VIEW = "contacts-groups";
+    private static final String TAG_SELECT_ACCOUNT_DIALOG = "selectAccountDialog";
+    private static final String TAG_GROUP_NAME_EDIT_DIALOG = "groupNameEditDialog";
 
-    private static final String ENABLE_DEBUG_OPTIONS_HIDDEN_CODE = "debug debug!";
+    public static final String TAG_ASSISTANT = "contacts-assistant";
+    public static final String TAG_SECOND_LEVEL = "second-level";
+    public static final String TAG_THIRD_LEVEL = "third-level";
+    public static final String TAG_ASSISTANT_HELPER = "assistant-helper";
+    public static final String TAG_DUPLICATES = "DuplicatesFragment";
+    public static final String TAG_DUPLICATES_UTIL = "DuplicatesUtilFragment";
 
-    // These values needs to start at 2. See {@link ContactEntryListFragment}.
-    private static final int SUBACTIVITY_ACCOUNT_FILTER = 2;
+    private static final String KEY_GROUP_URI = "groupUri";
+    private static final String KEY_CONTACTS_VIEW = "contactsView";
+    private static final String KEY_NEW_GROUP_ACCOUNT = "newGroupAccount";
 
-    private final DialogManager mDialogManager = new DialogManager(this);
+    private static final long DRAWER_CLOSE_DELAY = 300L;
 
     private ContactsIntentResolver mIntentResolver;
     private ContactsRequest mRequest;
+    private AccountTypeManager mAccountTypeManager;
 
-    private ActionBarAdapter mActionBarAdapter;
     private FloatingActionButtonController mFloatingActionButtonController;
     private View mFloatingActionButtonContainer;
     private boolean wasLastFabAnimationScaleIn = false;
 
-    private ContactTileListFragment.Listener mFavoritesFragmentListener =
-            new StrequentContactListFragmentListener();
-
-    private ContactListFilterController mContactListFilterController;
-
-    private ContactsUnavailableFragment mContactsUnavailableFragment;
     private ProviderStatusWatcher mProviderStatusWatcher;
     private Integer mProviderStatus;
 
-    private boolean mOptionsMenuContactsAvailable;
+    private BroadcastReceiver mSaveServiceListener;
+
+    private boolean mShouldSwitchToGroupView;
+
+    private ContactsView mCurrentView;
+
+    private CoordinatorLayout mLayoutRoot;
 
     /**
      * Showing a list of Contacts. Also used for showing search results in search mode.
      */
-    private MultiSelectContactsListFragment mAllFragment;
-    private ContactTileListFragment mFavoritesFragment;
+    private DefaultContactBrowseListFragment mContactsListFragment;
 
-    /** ViewPager for swipe */
-    private ViewPager mTabPager;
-    private ViewPagerTabs mViewPagerTabs;
-    private TabPagerAdapter mTabPagerAdapter;
-    private String[] mTabTitles;
-    private final TabPagerListener mTabPagerListener = new TabPagerListener();
-
-    private boolean mEnableDebugMenuOptions;
+    private GroupMembersFragment mMembersFragment;
+    private Uri mGroupUri;
 
     /**
      * True if this activity instance is a re-created one.  i.e. set true after orientation change.
-     * This is set in {@link #onCreate} for later use in {@link #onStart}.
      */
     private boolean mIsRecreatedInstance;
 
-    /**
-     * If {@link #configureFragments(boolean)} is already called.  Used to avoid calling it twice
-     * in {@link #onStart}.
-     * (This initialization only needs to be done once in onStart() when the Activity was just
-     * created from scratch -- i.e. onCreate() was just called)
-     */
-    private boolean mFragmentInitialized;
-
-    /**
-     * This is to disable {@link #onOptionsItemSelected} when we trying to stop the activity.
-     */
-    private boolean mDisableOptionItemSelected;
+    private boolean mShouldSwitchToAllContacts;
 
     /** Sequential ID assigned to each instance; used for logging */
     private final int mInstanceId;
     private static final AtomicInteger sNextInstanceId = new AtomicInteger();
 
+    private ContactListFilterController mContactListFilterController;
+
+    /** Navigation drawer related */
+    private DrawerLayout mDrawerLayout;
+    private DrawerFragment mDrawerFragment;
+    private ContactsActionBarDrawerToggle mToggle;
+    private Toolbar mToolbar;
+
+    // The account the new group will be created under.
+    private AccountWithDataSet mNewGroupAccount;
+
+    private Object mStatusChangeListenerHandle;
+
+    private final Handler mHandler = new Handler();
+
+    private SyncStatusObserver mSyncStatusObserver = new SyncStatusObserver() {
+        public void onStatusChanged(int which) {
+            mHandler.post(new Runnable() {
+                public void run() {
+                    onSyncStateUpdated();
+                }
+            });
+        }
+    };
+
+    // Update sync status for accounts in current ContactListFilter
+    private void onSyncStateUpdated() {
+        if (isListFragmentInSearchMode() || isListFragmentInSelectionMode()) {
+            return;
+        }
+
+        final ContactListFilter filter = mContactListFilterController.getFilter();
+        if (filter != null) {
+            final SwipeRefreshLayout swipeRefreshLayout =
+                    mContactsListFragment.getSwipeRefreshLayout();
+            if (swipeRefreshLayout == null) {
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Can not load swipeRefreshLayout, swipeRefreshLayout is null");
+                }
+                return;
+            }
+
+            final List<AccountWithDataSet> accounts;
+            if (filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT &&
+                    filter.isGoogleAccountType()) {
+                accounts = Collections.singletonList(new AccountWithDataSet(filter.accountName,
+                        filter.accountType, null));
+            } else if (filter.shouldShowSyncState()) {
+                accounts = AccountInfo.extractAccounts(
+                        mAccountTypeManager.getWritableGoogleAccounts());
+            } else {
+                accounts = Collections.emptyList();
+            }
+            if (SyncUtil.isAnySyncing(accounts)) {
+                return;
+            }
+            swipeRefreshLayout.setRefreshing(false);
+        }
+    }
+
+    public void showConnectionErrorMsg() {
+        Snackbar.make(mLayoutRoot, R.string.connection_error_message, Snackbar.LENGTH_LONG).show();
+    }
+
+    private final ContactListFilterListener mFilterListener = new ContactListFilterListener() {
+        @Override
+        public void onContactListFilterChanged() {
+            final ContactListFilter filter = mContactListFilterController.getFilter();
+            handleFilterChangeForFragment(filter);
+            handleFilterChangeForActivity(filter);
+        }
+    };
+
+    private final ProviderStatusListener mProviderStatusListener = new ProviderStatusListener() {
+        @Override
+        public void onProviderStatusChange() {
+            // TODO see if it works with drawer fragment.
+            updateViewConfiguration(false);
+        }
+    };
+
+    private class ContactsActionBarDrawerToggle extends ActionBarDrawerToggle {
+        private boolean mMenuClickedBefore = SharedPreferenceUtil.getHamburgerMenuClickedBefore(
+                PeopleActivity.this);
+
+        public ContactsActionBarDrawerToggle(AppCompatActivity activity, DrawerLayout drawerLayout,
+                Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes) {
+            super(activity, drawerLayout, toolbar, openDrawerContentDescRes,
+                    closeDrawerContentDescRes);
+        }
+
+        @Override
+        public void onDrawerOpened(View drawerView) {
+            super.onDrawerOpened(drawerView);
+            if (!mMenuClickedBefore) {
+                SharedPreferenceUtil.setHamburgerMenuClickedBefore(PeopleActivity.this);
+                mMenuClickedBefore = true;
+            }
+            drawerView.requestFocus();
+            invalidateOptionsMenu();
+            // Stop search and selection mode like Gmail and Keep. Otherwise, if user switches to
+            // another fragment in navigation drawer, the current search/selection mode will be
+            // overlaid by the action bar of the newly-created fragment.
+            stopSearchAndSelection();
+            updateStatusBarBackground();
+        }
+
+        private void stopSearchAndSelection() {
+            final MultiSelectContactsListFragment listFragment;
+            if (isAllContactsView() || isAccountView()) {
+                listFragment = getListFragment();
+            } else if (isGroupView()) {
+                listFragment = getGroupFragment();
+            } else {
+                listFragment = null;
+            }
+            if (listFragment == null) {
+                return;
+            }
+            final ActionBarAdapter actionBarAdapter = listFragment.getActionBarAdapter();
+            if (actionBarAdapter == null) {
+                return;
+            }
+            if (actionBarAdapter.isSearchMode()) {
+                actionBarAdapter.setSearchMode(false);
+            } else if (actionBarAdapter.isSelectionMode()) {
+                actionBarAdapter.setSelectionMode(false);
+            }
+        }
+
+        @Override
+        public void onDrawerClosed(View view) {
+            super.onDrawerClosed(view);
+            invalidateOptionsMenu();
+        }
+
+        @Override
+        public void onDrawerStateChanged(int newState) {
+            super.onDrawerStateChanged(newState);
+            // Set transparent status bar when drawer starts to move.
+            if (newState != DrawerLayout.STATE_IDLE) {
+                updateStatusBarBackground();
+            }
+        }
+    }
+
+
     public PeopleActivity() {
         mInstanceId = sNextInstanceId.getAndIncrement();
         mIntentResolver = new ContactsIntentResolver(this);
@@ -191,57 +337,77 @@
         return String.format("%s@%d", getClass().getSimpleName(), mInstanceId);
     }
 
-    public boolean areContactsAvailable() {
+    private boolean areContactsAvailable() {
         return (mProviderStatus != null) && mProviderStatus.equals(ProviderStatus.STATUS_NORMAL);
     }
 
-    private boolean areGroupWritableAccountsAvailable() {
-        return ContactsUtils.areGroupWritableAccountsAvailable(this);
-    }
-
-    /**
-     * Initialize fragments that are (or may not be) in the layout.
-     *
-     * For the fragments that are in the layout, we initialize them in
-     * {@link #createViewsAndFragments(Bundle)} after inflating the layout.
-     *
-     * However, the {@link ContactsUnavailableFragment} is a special fragment which may not
-     * be in the layout, so we have to do the initialization here.
-     *
-     * The ContactsUnavailableFragment is always created at runtime.
-     */
-    @Override
-    public void onAttachFragment(Fragment fragment) {
-        if (fragment instanceof ContactsUnavailableFragment) {
-            mContactsUnavailableFragment = (ContactsUnavailableFragment)fragment;
-            mContactsUnavailableFragment.setOnContactsUnavailableActionListener(
-                    new ContactsUnavailableFragmentListener());
-        }
-    }
-
     @Override
     protected void onCreate(Bundle savedState) {
         if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
             Log.d(Constants.PERFORMANCE_TAG, "PeopleActivity.onCreate start");
         }
+
+        // Make sure this is *before* calling super.onCreate
+        setTheme(R.style.PeopleActivityTheme);
         super.onCreate(savedState);
 
-        if (RequestPermissionsActivity.startPermissionActivity(this)) {
-            return;
-        }
+        mAccountTypeManager = AccountTypeManager.getInstance(this);
+        mContactListFilterController = ContactListFilterController.getInstance(this);
+
+        RequestPermissionsActivity.startPermissionActivityIfNeeded(this);
 
         if (!processIntent(false)) {
             finish();
             return;
         }
-        mContactListFilterController = ContactListFilterController.getInstance(this);
-        mContactListFilterController.checkFilterValidity(false);
-        mContactListFilterController.addListener(this);
 
-        mProviderStatusWatcher.addListener(this);
+        mContactListFilterController.checkFilterValidity(false);
+
+        super.setContentView(R.layout.contacts_drawer_activity);
+
+        // Set up the action bar.
+        mToolbar = getView(R.id.toolbar);
+        setSupportActionBar(mToolbar);
+
+        // Add shadow under toolbar.
+        ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
+
+        // Set up hamburger button.
+        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
+        mDrawerFragment = (DrawerFragment) getFragmentManager().findFragmentById(R.id.drawer);
+        mToggle = new ContactsActionBarDrawerToggle(this, mDrawerLayout, mToolbar,
+                R.string.navigation_drawer_open, R.string.navigation_drawer_close);
+        mDrawerLayout.setDrawerListener(mToggle);
+        // Set fallback handler for when drawer is disabled.
+        mToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onBackPressed();
+            }
+        });
+
+        // Set up navigation mode.
+        if (savedState != null) {
+            mCurrentView = ContactsView.values()[savedState.getInt(KEY_CONTACTS_VIEW)];
+        } else {
+            mCurrentView = ContactsView.ALL_CONTACTS;
+        }
+
+        if (savedState != null && savedState.containsKey(KEY_NEW_GROUP_ACCOUNT)) {
+            mNewGroupAccount = AccountWithDataSet.unstringify(
+                    savedState.getString(KEY_NEW_GROUP_ACCOUNT));
+        }
+
+        mContactListFilterController.addListener(mFilterListener);
+        mProviderStatusWatcher.addListener(mProviderStatusListener);
 
         mIsRecreatedInstance = (savedState != null);
-        createViewsAndFragments(savedState);
+
+        if (mIsRecreatedInstance) {
+            mGroupUri = savedState.getParcelable(KEY_GROUP_URI);
+        }
+
+        createViewsAndFragments();
 
         if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
             Log.d(Constants.PERFORMANCE_TAG, "PeopleActivity.onCreate finish");
@@ -251,21 +417,72 @@
 
     @Override
     protected void onNewIntent(Intent intent) {
+        final String action = intent.getAction();
+        if (GroupUtil.ACTION_CREATE_GROUP.equals(action)) {
+            mGroupUri = intent.getData();
+            if (mGroupUri == null) {
+                toast(R.string.groupSavedErrorToast);
+                return;
+            }
+            if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "Received group URI " + mGroupUri);
+            switchView(ContactsView.GROUP_VIEW);
+            mMembersFragment.toastForSaveAction(action);
+            return;
+        }
+
+        if (isGroupSaveAction(action)) {
+            mGroupUri = intent.getData();
+            if (mGroupUri == null) {
+                popSecondLevel();
+                toast(R.string.groupSavedErrorToast);
+                return;
+            }
+            if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "Received group URI " + mGroupUri);
+            // ACTION_REMOVE_FROM_GROUP doesn't reload data, so it shouldn't cause b/32223934
+            // but it's necessary to use the previous fragment since
+            // GroupMembersFragment#mIsEditMode needs to be persisted between remove actions.
+            if (GroupUtil.ACTION_REMOVE_FROM_GROUP.equals(action)) {
+                switchToOrUpdateGroupView(action);
+            } else {
+                switchView(ContactsView.GROUP_VIEW);
+            }
+            mMembersFragment.toastForSaveAction(action);
+        }
+
         setIntent(intent);
+
         if (!processIntent(true)) {
             finish();
             return;
         }
-        mActionBarAdapter.initialize(null, mRequest);
 
         mContactListFilterController.checkFilterValidity(false);
 
-        // Re-configure fragments.
-        configureFragments(true /* from request */);
+        if (!isInSecondLevel()) {
+            // Re-initialize ActionBarAdapter because {@link #onNewIntent(Intent)} doesn't invoke
+            // {@link Fragment#onActivityCreated(Bundle)} where we initialize ActionBarAdapter
+            // initially.
+            mContactsListFragment.setParameters(/* ContactsRequest */ mRequest,
+                    /* fromOnNewIntent */ true);
+            mContactsListFragment.initializeActionBarAdapter(null);
+        }
+
         initializeFabVisibility();
         invalidateOptionsMenuIfNeeded();
     }
 
+    private static boolean isGroupSaveAction(String action) {
+        return GroupUtil.ACTION_UPDATE_GROUP.equals(action)
+                || GroupUtil.ACTION_ADD_TO_GROUP.equals(action)
+                || GroupUtil.ACTION_REMOVE_FROM_GROUP.equals(action);
+    }
+
+    private void toast(int resId) {
+        if (resId >= 0) {
+            Toast.makeText(this, resId, Toast.LENGTH_SHORT).show();
+        }
+    }
+
     /**
      * Resolve the intent and initialize {@link #mRequest}, and launch another activity if redirect
      * is needed.
@@ -287,235 +504,182 @@
             return false;
         }
 
-        if (mRequest.getActionCode() == ContactsRequest.ACTION_VIEW_CONTACT) {
-            final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
-                    mRequest.getContactUri(), QuickContactActivity.MODE_FULLY_EXPANDED);
-            intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.UNKNOWN);
-            ImplicitIntentsUtil.startActivityInApp(this, intent);
-            return false;
+        switch (mRequest.getActionCode()) {
+            case ContactsRequest.ACTION_VIEW_CONTACT: {
+                ImplicitIntentsUtil.startQuickContact(
+                        this, mRequest.getContactUri(), ScreenType.UNKNOWN);
+                return false;
+            }
+            case ContactsRequest.ACTION_INSERT_GROUP: {
+                onCreateGroupMenuItemClicked();
+                return true;
+            }
+            case ContactsRequest.ACTION_VIEW_GROUP:
+            case ContactsRequest.ACTION_EDIT_GROUP: {
+                mShouldSwitchToGroupView = true;
+                return true;
+            }
         }
         return true;
     }
 
-    private void createViewsAndFragments(Bundle savedState) {
-        // Disable the ActionBar so that we can use a Toolbar. This needs to be called before
-        // setContentView().
-        getWindow().requestFeature(Window.FEATURE_NO_TITLE);
-
+    private void createViewsAndFragments() {
         setContentView(R.layout.people_activity);
 
         final FragmentManager fragmentManager = getFragmentManager();
 
-        // Hide all tabs (the current tab will later be reshown once a tab is selected)
-        final FragmentTransaction transaction = fragmentManager.beginTransaction();
+        setUpListFragment(fragmentManager);
 
-        mTabTitles = new String[TabState.COUNT];
-        mTabTitles[TabState.FAVORITES] = getString(R.string.favorites_tab_label);
-        mTabTitles[TabState.ALL] = getString(R.string.all_contacts_tab_label);
-        mTabPager = getView(R.id.tab_pager);
-        mTabPagerAdapter = new TabPagerAdapter();
-        mTabPager.setAdapter(mTabPagerAdapter);
-        mTabPager.setOnPageChangeListener(mTabPagerListener);
-
-        // Configure toolbar and toolbar tabs. If in landscape mode, we  configure tabs differntly.
-        final Toolbar toolbar = getView(R.id.toolbar);
-        setActionBar(toolbar);
-        final ViewPagerTabs portraitViewPagerTabs
-                = (ViewPagerTabs) findViewById(R.id.lists_pager_header);
-        ViewPagerTabs landscapeViewPagerTabs = null;
-        if (portraitViewPagerTabs ==  null) {
-            landscapeViewPagerTabs = (ViewPagerTabs) getLayoutInflater().inflate(
-                    R.layout.people_activity_tabs_lands, toolbar, /* attachToRoot = */ false);
-            mViewPagerTabs = landscapeViewPagerTabs;
-        } else {
-            mViewPagerTabs = portraitViewPagerTabs;
-        }
-        mViewPagerTabs.setViewPager(mTabPager);
-
-        final String FAVORITE_TAG = "tab-pager-favorite";
-        final String ALL_TAG = "tab-pager-all";
-
-        // Create the fragments and add as children of the view pager.
-        // The pager adapter will only change the visibility; it'll never create/destroy
-        // fragments.
-        // However, if it's after screen rotation, the fragments have been re-created by
-        // the fragment manager, so first see if there're already the target fragments
-        // existing.
-        mFavoritesFragment = (ContactTileListFragment)
-                fragmentManager.findFragmentByTag(FAVORITE_TAG);
-        mAllFragment = (MultiSelectContactsListFragment)
-                fragmentManager.findFragmentByTag(ALL_TAG);
-
-        if (mFavoritesFragment == null) {
-            mFavoritesFragment = new ContactTileListFragment();
-            mAllFragment = new MultiSelectContactsListFragment();
-
-            transaction.add(R.id.tab_pager, mFavoritesFragment, FAVORITE_TAG);
-            transaction.add(R.id.tab_pager, mAllFragment, ALL_TAG);
-        }
-
-        mFavoritesFragment.setListener(mFavoritesFragmentListener);
-
-        mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener());
-        mAllFragment.setCheckBoxListListener(new CheckBoxListListener());
-
-        // Hide all fragments for now.  We adjust visibility when we get onSelectedTabChanged()
-        // from ActionBarAdapter.
-        transaction.hide(mFavoritesFragment);
-        transaction.hide(mAllFragment);
-
-        transaction.commitAllowingStateLoss();
-        fragmentManager.executePendingTransactions();
-
-        // Setting Properties after fragment is created
-        mFavoritesFragment.setDisplayType(DisplayType.STREQUENT);
-
-        mActionBarAdapter = new ActionBarAdapter(this, this, getActionBar(),
-                portraitViewPagerTabs, landscapeViewPagerTabs, toolbar);
-        mActionBarAdapter.initialize(savedState, mRequest);
-
-        // Add shadow under toolbar
-        ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
+        mMembersFragment = (GroupMembersFragment) fragmentManager.findFragmentByTag(TAG_GROUP_VIEW);
 
         // Configure floating action button
         mFloatingActionButtonContainer = findViewById(R.id.floating_action_button_container);
         final ImageButton floatingActionButton
                 = (ImageButton) findViewById(R.id.floating_action_button);
-        floatingActionButton.setOnClickListener(this);
+        floatingActionButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                AccountFilterUtil.startEditorIntent(PeopleActivity.this, getIntent(),
+                        mContactListFilterController.getFilter());
+            }
+        });
         mFloatingActionButtonController = new FloatingActionButtonController(this,
                 mFloatingActionButtonContainer, floatingActionButton);
-        initializeFabVisibility();
 
         invalidateOptionsMenuIfNeeded();
+
+        mLayoutRoot = (CoordinatorLayout) findViewById(R.id.root);
+
+        if (mShouldSwitchToGroupView && !mIsRecreatedInstance) {
+            mGroupUri = mRequest.getContactUri();
+            switchToOrUpdateGroupView(GroupUtil.ACTION_SWITCH_GROUP);
+            mShouldSwitchToGroupView = false;
+        }
     }
 
     @Override
-    protected void onStart() {
-        if (!mFragmentInitialized) {
-            mFragmentInitialized = true;
-            /* Configure fragments if we haven't.
-             *
-             * Note it's a one-shot initialization, so we want to do this in {@link #onCreate}.
-             *
-             * However, because this method may indirectly touch views in fragments but fragments
-             * created in {@link #configureContentView} using a {@link FragmentTransaction} will NOT
-             * have views until {@link Activity#onCreate} finishes (they would if they were inflated
-             * from a layout), we need to do it here in {@link #onStart()}.
-             *
-             * (When {@link Fragment#onCreateView} is called is different in the former case and
-             * in the latter case, unfortunately.)
-             *
-             * Also, we skip most of the work in it if the activity is a re-created one.
-             * (so the argument.)
-             */
-            configureFragments(!mIsRecreatedInstance);
+    public void setContentView(@LayoutRes int layoutResID) {
+        final ViewGroup parent = (ViewGroup) findViewById(R.id.content_frame);
+        if (parent != null) {
+            parent.removeAllViews();
         }
-        super.onStart();
+        LayoutInflater.from(this).inflate(layoutResID, parent);
+    }
+
+    private void setUpListFragment(FragmentManager fragmentManager) {
+        mContactsListFragment = (DefaultContactBrowseListFragment)
+                fragmentManager.findFragmentByTag(TAG_ALL);
+
+        if (mContactsListFragment == null) {
+            mContactsListFragment = new DefaultContactBrowseListFragment();
+            mContactsListFragment.setAnimateOnLoad(true);
+            fragmentManager.beginTransaction()
+                    .add(R.id.contacts_list_container, mContactsListFragment, TAG_ALL)
+                    .commit();
+            fragmentManager.executePendingTransactions();
+        }
+
+        mContactsListFragment.setContactsAvailable(areContactsAvailable());
+        mContactsListFragment.setListType(mContactListFilterController.getFilterListType());
+        mContactsListFragment.setParameters(/* ContactsRequest */ mRequest,
+                /* fromOnNewIntent */ false);
     }
 
     @Override
     protected void onPause() {
-        mOptionsMenuContactsAvailable = false;
         mProviderStatusWatcher.stop();
+
+        LocalBroadcastManager.getInstance(this).unregisterReceiver(mSaveServiceListener);
+
         super.onPause();
+
+        ContentResolver.removeStatusChangeListener(mStatusChangeListenerHandle);
+        onSyncStateUpdated();
+    }
+
+    @Override
+    public void onMultiWindowModeChanged(boolean entering) {
+        initializeHomeVisibility();
     }
 
     @Override
     protected void onResume() {
         super.onResume();
 
+        if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+            updateStatusBarBackground();
+        }
+
+        if (mShouldSwitchToAllContacts) {
+            switchToAllContacts();
+        }
+
         mProviderStatusWatcher.start();
         updateViewConfiguration(true);
 
-        // Re-register the listener, which may have been cleared when onSaveInstanceState was
-        // called.  See also: onSaveInstanceState
-        mActionBarAdapter.setListener(this);
-        mDisableOptionItemSelected = false;
-        if (mTabPager != null) {
-            mTabPager.setOnPageChangeListener(mTabPagerListener);
+        mStatusChangeListenerHandle = ContentResolver.addStatusChangeListener(
+                ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE
+                        | ContentResolver.SYNC_OBSERVER_TYPE_PENDING
+                        | ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS,
+                mSyncStatusObserver);
+        onSyncStateUpdated();
+
+        initializeFabVisibility();
+        initializeHomeVisibility();
+
+        mSaveServiceListener = new SaveServiceListener();
+        LocalBroadcastManager.getInstance(this).registerReceiver(mSaveServiceListener,
+                new IntentFilter(ContactSaveService.BROADCAST_GROUP_DELETED));
+    }
+
+    public void updateStatusBarBackground() {
+        updateStatusBarBackground(/* color */ -1);
+    }
+
+    public void updateStatusBarBackground(int color) {
+        if (!CompatUtils.isLollipopCompatible()) return;
+        if (color == -1) {
+            mDrawerLayout.setStatusBarBackgroundColor(
+                    MaterialColorMapUtils.getStatusBarColor(this));
+        } else {
+            mDrawerLayout.setStatusBarBackgroundColor(color);
         }
-        // Current tab may have changed since the last onSaveInstanceState().  Make sure
-        // the actual contents match the tab.
-        updateFragmentsVisibility();
+        mDrawerLayout.invalidate();
+        getWindow().setStatusBarColor(Color.TRANSPARENT);
     }
 
     @Override
     protected void onDestroy() {
-        mProviderStatusWatcher.removeListener(this);
-
-        // Some of variables will be null if this Activity redirects Intent.
-        // See also onCreate() or other methods called during the Activity's initialization.
-        if (mActionBarAdapter != null) {
-            mActionBarAdapter.setListener(null);
-        }
-        if (mContactListFilterController != null) {
-            mContactListFilterController.removeListener(this);
-        }
-
+        mProviderStatusWatcher.removeListener(mProviderStatusListener);
+        mContactListFilterController.removeListener(mFilterListener);
         super.onDestroy();
     }
 
-    private void configureFragments(boolean fromRequest) {
-        if (fromRequest) {
-            ContactListFilter filter = null;
-            int actionCode = mRequest.getActionCode();
-            boolean searchMode = mRequest.isSearchMode();
-            final int tabToOpen;
-            switch (actionCode) {
-                case ContactsRequest.ACTION_ALL_CONTACTS:
-                    filter = ContactListFilter.createFilterWithType(
-                            ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
-                    tabToOpen = TabState.ALL;
-                    break;
-                case ContactsRequest.ACTION_CONTACTS_WITH_PHONES:
-                    filter = ContactListFilter.createFilterWithType(
-                            ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY);
-                    tabToOpen = TabState.ALL;
-                    break;
-
-                case ContactsRequest.ACTION_FREQUENT:
-                case ContactsRequest.ACTION_STREQUENT:
-                case ContactsRequest.ACTION_STARRED:
-                    tabToOpen = TabState.FAVORITES;
-                    break;
-                case ContactsRequest.ACTION_VIEW_CONTACT:
-                    tabToOpen = TabState.ALL;
-                    break;
-                default:
-                    tabToOpen = -1;
-                    break;
-            }
-            if (tabToOpen != -1) {
-                mActionBarAdapter.setCurrentTab(tabToOpen);
-            }
-
-            if (filter != null) {
-                mContactListFilterController.setContactListFilter(filter, false);
-                searchMode = false;
-            }
-
-            if (mRequest.getContactUri() != null) {
-                searchMode = false;
-            }
-
-            mActionBarAdapter.setSearchMode(searchMode);
-            configureContactListFragmentForRequest();
-        }
-
-        configureContactListFragment();
-
-        invalidateOptionsMenuIfNeeded();
-    }
-
     private void initializeFabVisibility() {
-        final boolean hideFab = mActionBarAdapter.isSearchMode()
-                || mActionBarAdapter.isSelectionMode();
-        mFloatingActionButtonContainer.setVisibility(hideFab ? View.GONE : View.VISIBLE);
+        mFloatingActionButtonContainer.setVisibility(shouldHideFab() ? View.GONE : View.VISIBLE);
         mFloatingActionButtonController.resetIn();
-        wasLastFabAnimationScaleIn = !hideFab;
+        wasLastFabAnimationScaleIn = !shouldHideFab();
     }
 
-    private void showFabWithAnimation(boolean showFab) {
+    private void initializeHomeVisibility() {
+        // Remove the navigation icon if we return to the fragment in a search or select state
+        if (getToolbar() != null && (isListFragmentInSelectionMode()
+                || isListFragmentInSearchMode() || isGroupsFragmentInSelectionMode()
+                || isGroupsFragmentInSearchMode())) {
+            getToolbar().setNavigationIcon(null);
+        }
+    }
+
+    private boolean shouldHideFab() {
+        if (mContactsListFragment != null && mContactsListFragment.getActionBarAdapter() == null
+                || isInSecondLevel()) {
+            return true;
+        }
+        return isListFragmentInSearchMode()
+                || isListFragmentInSelectionMode();
+    }
+
+    public void showFabWithAnimation(boolean showFab) {
         if (mFloatingActionButtonContainer == null) {
             return;
         }
@@ -535,819 +699,82 @@
         }
     }
 
-    @Override
-    public void onContactListFilterChanged() {
-        if (mAllFragment == null || !mAllFragment.isAdded()) {
-            return;
-        }
-
-        mAllFragment.setFilter(mContactListFilterController.getFilter());
-
-        invalidateOptionsMenuIfNeeded();
-    }
-
-    /**
-     * Handler for action bar actions.
-     */
-    @Override
-    public void onAction(int action) {
-        switch (action) {
-            case ActionBarAdapter.Listener.Action.START_SELECTION_MODE:
-                mAllFragment.displayCheckBoxes(true);
-                startSearchOrSelectionMode();
-                break;
-            case ActionBarAdapter.Listener.Action.START_SEARCH_MODE:
-                if (!mIsRecreatedInstance) {
-                    Logger.logScreenView(this, ScreenType.SEARCH);
-                }
-                startSearchOrSelectionMode();
-                break;
-            case ActionBarAdapter.Listener.Action.BEGIN_STOPPING_SEARCH_AND_SELECTION_MODE:
-                showFabWithAnimation(/* showFabWithAnimation = */ true);
-                break;
-            case ActionBarAdapter.Listener.Action.STOP_SEARCH_AND_SELECTION_MODE:
-                setQueryTextToFragment("");
-                updateFragmentsVisibility();
-                invalidateOptionsMenu();
-                showFabWithAnimation(/* showFabWithAnimation = */ true);
-                break;
-            case ActionBarAdapter.Listener.Action.CHANGE_SEARCH_QUERY:
-                final String queryString = mActionBarAdapter.getQueryString();
-                setQueryTextToFragment(queryString);
-                updateDebugOptionsVisibility(
-                        ENABLE_DEBUG_OPTIONS_HIDDEN_CODE.equals(queryString));
-                break;
-            default:
-                throw new IllegalStateException("Unkonwn ActionBarAdapter action: " + action);
-        }
-    }
-
-    private void startSearchOrSelectionMode() {
-        configureFragments(false /* from request */);
-        updateFragmentsVisibility();
-        invalidateOptionsMenu();
-        showFabWithAnimation(/* showFabWithAnimation = */ false);
-    }
-
-    @Override
-    public void onSelectedTabChanged() {
-        updateFragmentsVisibility();
-    }
-
-    @Override
-    public void onUpButtonPressed() {
-        onBackPressed();
-    }
-
-    private void updateDebugOptionsVisibility(boolean visible) {
-        if (mEnableDebugMenuOptions != visible) {
-            mEnableDebugMenuOptions = visible;
-            invalidateOptionsMenu();
-        }
-    }
-
-    /**
-     * Updates the fragment/view visibility according to the current mode, such as
-     * {@link ActionBarAdapter#isSearchMode()} and {@link ActionBarAdapter#getCurrentTab()}.
-     */
-    private void updateFragmentsVisibility() {
-        int tab = mActionBarAdapter.getCurrentTab();
-
-        if (mActionBarAdapter.isSearchMode() || mActionBarAdapter.isSelectionMode()) {
-            mTabPagerAdapter.setTabsHidden(true);
-        } else {
-            // No smooth scrolling if quitting from the search/selection mode.
-            final boolean wereTabsHidden = mTabPagerAdapter.areTabsHidden()
-                    || mActionBarAdapter.isSelectionMode();
-            mTabPagerAdapter.setTabsHidden(false);
-            if (mTabPager.getCurrentItem() != tab) {
-                mTabPager.setCurrentItem(tab, !wereTabsHidden);
-            }
-        }
-        if (!mActionBarAdapter.isSelectionMode()) {
-            mAllFragment.displayCheckBoxes(false);
-        }
-        invalidateOptionsMenu();
-        showEmptyStateForTab(tab);
-    }
-
-    private void showEmptyStateForTab(int tab) {
-        if (mContactsUnavailableFragment != null) {
-            switch (getTabPositionForTextDirection(tab)) {
-                case TabState.FAVORITES:
-                    mContactsUnavailableFragment.setTabInfo(
-                            R.string.listTotalAllContactsZeroStarred, TabState.FAVORITES);
-                    break;
-                case TabState.ALL:
-                    mContactsUnavailableFragment.setTabInfo(R.string.noContacts, TabState.ALL);
-                    break;
-            }
-            // When using the mContactsUnavailableFragment the ViewPager doesn't contain two views.
-            // Therefore, we have to trick the ViewPagerTabs into thinking we have changed tabs
-            // when the mContactsUnavailableFragment changes. Otherwise the tab strip won't move.
-            mViewPagerTabs.onPageScrolled(tab, 0, 0);
-        }
-    }
-
-    private class TabPagerListener implements ViewPager.OnPageChangeListener {
-
-        // This package-protected constructor is here because of a possible compiler bug.
-        // PeopleActivity$1.class should be generated due to the private outer/inner class access
-        // needed here.  But for some reason, PeopleActivity$1.class is missing.
-        // Since $1 class is needed as a jvm work around to get access to the inner class,
-        // changing the constructor to package-protected or public will solve the problem.
-        // To verify whether $1 class is needed, javap PeopleActivity$TabPagerListener and look for
-        // references to PeopleActivity$1.
-        //
-        // When the constructor is private and PeopleActivity$1.class is missing, proguard will
-        // correctly catch this and throw warnings and error out the build on user/userdebug builds.
-        //
-        // All private inner classes below also need this fix.
-        TabPagerListener() {}
-
-        @Override
-        public void onPageScrollStateChanged(int state) {
-            if (!mTabPagerAdapter.areTabsHidden()) {
-                mViewPagerTabs.onPageScrollStateChanged(state);
-            }
-        }
-
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-            if (!mTabPagerAdapter.areTabsHidden()) {
-                mViewPagerTabs.onPageScrolled(position, positionOffset, positionOffsetPixels);
-            }
-        }
-
-        @Override
-        public void onPageSelected(int position) {
-            // Make sure not in the search mode, in which case position != TabState.ordinal().
-            if (!mTabPagerAdapter.areTabsHidden()) {
-                mActionBarAdapter.setCurrentTab(position, false);
-                mViewPagerTabs.onPageSelected(position);
-                showEmptyStateForTab(position);
-                invalidateOptionsMenu();
-            }
-        }
-    }
-
-    /**
-     * Adapter for the {@link ViewPager}.  Unlike {@link FragmentPagerAdapter},
-     * {@link #instantiateItem} returns existing fragments, and {@link #instantiateItem}/
-     * {@link #destroyItem} show/hide fragments instead of attaching/detaching.
-     *
-     * In search mode, we always show the "all" fragment, and disable the swipe.  We change the
-     * number of items to 1 to disable the swipe.
-     *
-     * TODO figure out a more straight way to disable swipe.
-     */
-    private class TabPagerAdapter extends PagerAdapter {
-        private final FragmentManager mFragmentManager;
-        private FragmentTransaction mCurTransaction = null;
-
-        private boolean mAreTabsHiddenInTabPager;
-
-        private Fragment mCurrentPrimaryItem;
-
-        public TabPagerAdapter() {
-            mFragmentManager = getFragmentManager();
-        }
-
-        public boolean areTabsHidden() {
-            return mAreTabsHiddenInTabPager;
-        }
-
-        public void setTabsHidden(boolean hideTabs) {
-            if (hideTabs == mAreTabsHiddenInTabPager) {
-                return;
-            }
-            mAreTabsHiddenInTabPager = hideTabs;
-            notifyDataSetChanged();
-        }
-
-        @Override
-        public int getCount() {
-            return mAreTabsHiddenInTabPager ? 1 : TabState.COUNT;
-        }
-
-        /** Gets called when the number of items changes. */
-        @Override
-        public int getItemPosition(Object object) {
-            if (mAreTabsHiddenInTabPager) {
-                if (object == mAllFragment) {
-                    return 0; // Only 1 page in search mode
-                }
-            } else {
-                if (object == mFavoritesFragment) {
-                    return getTabPositionForTextDirection(TabState.FAVORITES);
-                }
-                if (object == mAllFragment) {
-                    return getTabPositionForTextDirection(TabState.ALL);
-                }
-            }
-            return POSITION_NONE;
-        }
-
-        @Override
-        public void startUpdate(ViewGroup container) {
-        }
-
-        private Fragment getFragment(int position) {
-            position = getTabPositionForTextDirection(position);
-            if (mAreTabsHiddenInTabPager) {
-                if (position != 0) {
-                    // This has only been observed in monkey tests.
-                    // Let's log this issue, but not crash
-                    Log.w(TAG, "Request fragment at position=" + position + ", eventhough we " +
-                            "are in search mode");
-                }
-                return mAllFragment;
-            } else {
-                if (position == TabState.FAVORITES) {
-                    return mFavoritesFragment;
-                } else if (position == TabState.ALL) {
-                    return mAllFragment;
-                }
-            }
-            throw new IllegalArgumentException("position: " + position);
-        }
-
-        @Override
-        public Object instantiateItem(ViewGroup container, int position) {
-            if (mCurTransaction == null) {
-                mCurTransaction = mFragmentManager.beginTransaction();
-            }
-            Fragment f = getFragment(position);
-            mCurTransaction.show(f);
-
-            // Non primary pages are not visible.
-            f.setUserVisibleHint(f == mCurrentPrimaryItem);
-            return f;
-        }
-
-        @Override
-        public void destroyItem(ViewGroup container, int position, Object object) {
-            if (mCurTransaction == null) {
-                mCurTransaction = mFragmentManager.beginTransaction();
-            }
-            mCurTransaction.hide((Fragment) object);
-        }
-
-        @Override
-        public void finishUpdate(ViewGroup container) {
-            if (mCurTransaction != null) {
-                mCurTransaction.commitAllowingStateLoss();
-                mCurTransaction = null;
-                mFragmentManager.executePendingTransactions();
-            }
-        }
-
-        @Override
-        public boolean isViewFromObject(View view, Object object) {
-            return ((Fragment) object).getView() == view;
-        }
-
-        @Override
-        public void setPrimaryItem(ViewGroup container, int position, Object object) {
-            Fragment fragment = (Fragment) object;
-            if (mCurrentPrimaryItem != fragment) {
-                if (mCurrentPrimaryItem != null) {
-                    mCurrentPrimaryItem.setUserVisibleHint(false);
-                }
-                if (fragment != null) {
-                    fragment.setUserVisibleHint(true);
-                }
-                mCurrentPrimaryItem = fragment;
-            }
-        }
-
-        @Override
-        public Parcelable saveState() {
-            return null;
-        }
-
-        @Override
-        public void restoreState(Parcelable state, ClassLoader loader) {
-        }
-
-        @Override
-        public CharSequence getPageTitle(int position) {
-            return mTabTitles[position];
-        }
-    }
-
-    private void setQueryTextToFragment(String query) {
-        mAllFragment.setQueryString(query, true);
-        mAllFragment.setVisibleScrollbarEnabled(!mAllFragment.isSearchMode());
-    }
-
-    private void configureContactListFragmentForRequest() {
-        Uri contactUri = mRequest.getContactUri();
-        if (contactUri != null) {
-            mAllFragment.setSelectedContactUri(contactUri);
-        }
-
-        mAllFragment.setFilter(mContactListFilterController.getFilter());
-        setQueryTextToFragment(mActionBarAdapter.getQueryString());
-
-        if (mRequest.isDirectorySearchEnabled()) {
-            mAllFragment.setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_DEFAULT);
-        } else {
-            mAllFragment.setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
-        }
-    }
-
-    private void configureContactListFragment() {
-        // Filter may be changed when this Activity is in background.
-        mAllFragment.setFilter(mContactListFilterController.getFilter());
-
-        mAllFragment.setVerticalScrollbarPosition(getScrollBarPosition());
-        mAllFragment.setSelectionVisible(false);
-    }
-
-    private int getScrollBarPosition() {
-        return isRTL() ? View.SCROLLBAR_POSITION_LEFT : View.SCROLLBAR_POSITION_RIGHT;
-    }
-
-    private boolean isRTL() {
-        final Locale locale = Locale.getDefault();
-        return TextUtils.getLayoutDirectionFromLocale(locale) == View.LAYOUT_DIRECTION_RTL;
-    }
-
-    @Override
-    public void onProviderStatusChange() {
-        updateViewConfiguration(false);
-    }
-
     private void updateViewConfiguration(boolean forceUpdate) {
         int providerStatus = mProviderStatusWatcher.getProviderStatus();
         if (!forceUpdate && (mProviderStatus != null)
                 && (mProviderStatus.equals(providerStatus))) return;
         mProviderStatus = providerStatus;
 
-        View contactsUnavailableView = findViewById(R.id.contacts_unavailable_view);
+        final FragmentManager fragmentManager= getFragmentManager();
+        final FragmentTransaction transaction = fragmentManager.beginTransaction();
 
-        if (mProviderStatus.equals(ProviderStatus.STATUS_NORMAL)) {
-            // Ensure that the mTabPager is visible; we may have made it invisible below.
-            contactsUnavailableView.setVisibility(View.GONE);
-            if (mTabPager != null) {
-                mTabPager.setVisibility(View.VISIBLE);
-            }
-
-            if (mAllFragment != null) {
-                mAllFragment.setEnabled(true);
+        // Change in CP2's provider status may not take effect immediately, see b/30566908.
+        // So we need to handle the case where provider status is STATUS_EMPTY and there is
+        // actually at least one real account (not "local" account) on device.
+        if (shouldShowList()) {
+            if (mContactsListFragment != null) {
+                final Fragment unavailableFragment = fragmentManager
+                        .findFragmentByTag(TAG_UNAVAILABLE);
+                if (unavailableFragment != null) {
+                    transaction.remove(unavailableFragment);
+                }
+                if (mContactsListFragment.isHidden()) {
+                    transaction.show(mContactsListFragment);
+                }
+                mContactsListFragment.setContactsAvailable(areContactsAvailable());
+                mContactsListFragment.setEnabled(true);
             }
         } else {
             // Setting up the page so that the user can still use the app
             // even without an account.
-            if (mAllFragment != null) {
-                mAllFragment.setEnabled(false);
+            if (mContactsListFragment != null) {
+                mContactsListFragment.setEnabled(false);
             }
-            if (mContactsUnavailableFragment == null) {
-                mContactsUnavailableFragment = new ContactsUnavailableFragment();
-                mContactsUnavailableFragment.setOnContactsUnavailableActionListener(
-                        new ContactsUnavailableFragmentListener());
-                getFragmentManager().beginTransaction()
-                        .replace(R.id.contacts_unavailable_container, mContactsUnavailableFragment)
-                        .commitAllowingStateLoss();
-            }
-            mContactsUnavailableFragment.updateStatus(mProviderStatus);
-
-            // Show the contactsUnavailableView, and hide the mTabPager so that we don't
-            // see it sliding in underneath the contactsUnavailableView at the edges.
-            contactsUnavailableView.setVisibility(View.VISIBLE);
-            if (mTabPager != null) {
-                mTabPager.setVisibility(View.GONE);
-            }
-
-            showEmptyStateForTab(mActionBarAdapter.getCurrentTab());
+            final ContactsUnavailableFragment fragment = new ContactsUnavailableFragment();
+            transaction.hide(mContactsListFragment);
+            transaction.replace(R.id.contacts_unavailable_container, fragment, TAG_UNAVAILABLE);
+            fragment.updateStatus(mProviderStatus);
+        }
+        if (!transaction.isEmpty()) {
+            transaction.commit();
+            fragmentManager.executePendingTransactions();
         }
 
         invalidateOptionsMenuIfNeeded();
     }
 
-    private final class ContactBrowserActionListener implements OnContactBrowserActionListener {
-        ContactBrowserActionListener() {}
-
-        @Override
-        public void onSelectionChange() {
-
-        }
-
-        @Override
-        public void onViewContactAction(Uri contactLookupUri, boolean isEnterpriseContact) {
-            if (isEnterpriseContact) {
-                // No implicit intent as user may have a different contacts app in work profile.
-                QuickContact.showQuickContact(PeopleActivity.this, new Rect(), contactLookupUri,
-                        QuickContactActivity.MODE_FULLY_EXPANDED, null);
-            } else {
-                final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
-                        contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED);
-                intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
-                        mAllFragment.isSearchMode() ? ScreenType.SEARCH : ScreenType.ALL_CONTACTS);
-                ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
-            }
-        }
-
-        @Override
-        public void onDeleteContactAction(Uri contactUri) {
-            ContactDeletionInteraction.start(PeopleActivity.this, contactUri, false);
-        }
-
-        @Override
-        public void onFinishAction() {
-            onBackPressed();
-        }
-
-        @Override
-        public void onInvalidSelection() {
-            ContactListFilter filter;
-            ContactListFilter currentFilter = mAllFragment.getFilter();
-            if (currentFilter != null
-                    && currentFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
-                filter = ContactListFilter.createFilterWithType(
-                        ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
-                mAllFragment.setFilter(filter);
-            } else {
-                filter = ContactListFilter.createFilterWithType(
-                        ContactListFilter.FILTER_TYPE_SINGLE_CONTACT);
-                mAllFragment.setFilter(filter, false);
-            }
-            mContactListFilterController.setContactListFilter(filter, true);
-        }
-    }
-
-    private final class CheckBoxListListener implements OnCheckBoxListActionListener {
-        @Override
-        public void onStartDisplayingCheckBoxes() {
-            mActionBarAdapter.setSelectionMode(true);
-            invalidateOptionsMenu();
-        }
-
-        @Override
-        public void onSelectedContactIdsChanged() {
-            mActionBarAdapter.setSelectionCount(mAllFragment.getSelectedContactIds().size());
-            invalidateOptionsMenu();
-        }
-
-        @Override
-        public void onStopDisplayingCheckBoxes() {
-            mActionBarAdapter.setSelectionMode(false);
-        }
-    }
-
-    private class ContactsUnavailableFragmentListener
-            implements OnContactsUnavailableActionListener {
-        ContactsUnavailableFragmentListener() {}
-
-        @Override
-        public void onCreateNewContactAction() {
-            ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this,
-                    EditorIntents.createCompactInsertContactIntent());
-        }
-
-        @Override
-        public void onAddAccountAction() {
-            final Intent intent = ImplicitIntentsUtil.getIntentForAddingAccount();
-            ImplicitIntentsUtil.startActivityOutsideApp(PeopleActivity.this, intent);
-        }
-
-        @Override
-        public void onImportContactsFromFileAction() {
-            showImportExportDialogFragment();
-        }
-    }
-
-    private final class StrequentContactListFragmentListener
-            implements ContactTileListFragment.Listener {
-        StrequentContactListFragmentListener() {}
-
-        @Override
-        public void onContactSelected(Uri contactUri, Rect targetRect) {
-            final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(contactUri,
-                    QuickContactActivity.MODE_FULLY_EXPANDED);
-            intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.FAVORITES);
-            ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
-        }
-
-        @Override
-        public void onCallNumberDirectly(String phoneNumber) {
-            // No need to call phone number directly from People app.
-            Log.w(TAG, "unexpected invocation of onCallNumberDirectly()");
-        }
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        if (!areContactsAvailable()) {
-            // If contacts aren't available, hide all menu items.
-            return false;
-        }
-        super.onCreateOptionsMenu(menu);
-
-        MenuInflater inflater = getMenuInflater();
-        inflater.inflate(R.menu.people_options, menu);
-
-        return true;
+    private boolean shouldShowList() {
+        return mProviderStatus != null
+                && ((mProviderStatus.equals(ProviderStatus.STATUS_EMPTY)
+                && mAccountTypeManager.hasNonLocalAccount())
+                || mProviderStatus.equals(ProviderStatus.STATUS_NORMAL));
     }
 
     private void invalidateOptionsMenuIfNeeded() {
-        if (isOptionsMenuChanged()) {
+        if (mContactsListFragment != null
+                && mContactsListFragment.getOptionsMenuContactsAvailable()
+                != areContactsAvailable()) {
             invalidateOptionsMenu();
         }
     }
 
-    public boolean isOptionsMenuChanged() {
-        if (mOptionsMenuContactsAvailable != areContactsAvailable()) {
-            return true;
-        }
-
-        if (mAllFragment != null && mAllFragment.isOptionsMenuChanged()) {
-            return true;
-        }
-
-        return false;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        mOptionsMenuContactsAvailable = areContactsAvailable();
-        if (!mOptionsMenuContactsAvailable) {
-            return false;
-        }
-
-        // Get references to individual menu items in the menu
-        final MenuItem contactsFilterMenu = menu.findItem(R.id.menu_contacts_filter);
-        final MenuItem clearFrequentsMenu = menu.findItem(R.id.menu_clear_frequents);
-        final MenuItem helpMenu = menu.findItem(R.id.menu_help);
-
-        final boolean isSearchOrSelectionMode = mActionBarAdapter.isSearchMode()
-                || mActionBarAdapter.isSelectionMode();
-        if (isSearchOrSelectionMode) {
-            contactsFilterMenu.setVisible(false);
-            clearFrequentsMenu.setVisible(false);
-            helpMenu.setVisible(false);
-        } else {
-            switch (getTabPositionForTextDirection(mActionBarAdapter.getCurrentTab())) {
-                case TabState.FAVORITES:
-                    contactsFilterMenu.setVisible(false);
-                    clearFrequentsMenu.setVisible(hasFrequents());
-                    break;
-                case TabState.ALL:
-                    contactsFilterMenu.setVisible(true);
-                    clearFrequentsMenu.setVisible(false);
-                    break;
-            }
-            helpMenu.setVisible(HelpUtils.isHelpAndFeedbackAvailable());
-        }
-        final boolean showMiscOptions = !isSearchOrSelectionMode;
-        final boolean showBlockedNumbers = PhoneCapabilityTester.isPhone(this)
-                && ContactsUtils.FLAG_N_FEATURE
-                && BlockedNumberContract.canCurrentUserBlockNumbers(this);
-        makeMenuItemVisible(menu, R.id.menu_search, showMiscOptions);
-        makeMenuItemVisible(menu, R.id.menu_import_export, showMiscOptions);
-        makeMenuItemVisible(menu, R.id.menu_accounts, showMiscOptions);
-        makeMenuItemVisible(menu, R.id.menu_blocked_numbers, showMiscOptions && showBlockedNumbers);
-        makeMenuItemVisible(menu, R.id.menu_settings,
-                showMiscOptions && !ContactsPreferenceActivity.isEmpty(this));
-
-        final boolean showSelectedContactOptions = mActionBarAdapter.isSelectionMode()
-                && mAllFragment.getSelectedContactIds().size() != 0;
-        makeMenuItemVisible(menu, R.id.menu_share, showSelectedContactOptions);
-        makeMenuItemVisible(menu, R.id.menu_delete, showSelectedContactOptions);
-        final boolean showLinkContactsOptions = mActionBarAdapter.isSelectionMode()
-                && mAllFragment.getSelectedContactIds().size() > 1;
-        makeMenuItemVisible(menu, R.id.menu_join, showLinkContactsOptions);
-
-        // Debug options need to be visible even in search mode.
-        makeMenuItemVisible(menu, R.id.export_database, mEnableDebugMenuOptions &&
-                hasExportIntentHandler());
-
-        return true;
-    }
-
-    private boolean hasExportIntentHandler() {
-        final Intent intent = new Intent();
-        intent.setAction("com.android.providers.contacts.DUMP_DATABASE");
-        final List<ResolveInfo> receivers = getPackageManager().queryIntentActivities(intent,
-                PackageManager.MATCH_DEFAULT_ONLY);
-        return receivers != null && receivers.size() > 0;
-    }
-
-    /**
-     * Returns whether there are any frequently contacted people being displayed
-     * @return
-     */
-    private boolean hasFrequents() {
-        return mFavoritesFragment.hasFrequents();
-    }
-
-    private void makeMenuItemVisible(Menu menu, int itemId, boolean visible) {
-        final MenuItem item = menu.findItem(itemId);
-        if (item != null) {
-            item.setVisible(visible);
-        }
-    }
-
-    private void makeMenuItemEnabled(Menu menu, int itemId, boolean visible) {
-        final MenuItem item = menu.findItem(itemId);
-        if (item != null) {
-            item.setEnabled(visible);
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (mDisableOptionItemSelected) {
-            return false;
-        }
-
-        switch (item.getItemId()) {
-            case android.R.id.home: {
-                // The home icon on the action bar is pressed
-                if (mActionBarAdapter.isUpShowing()) {
-                    // "UP" icon press -- should be treated as "back".
-                    onBackPressed();
-                }
-                return true;
-            }
-            case R.id.menu_settings: {
-                startActivity(new Intent(this, ContactsPreferenceActivity.class));
-                return true;
-            }
-            case R.id.menu_contacts_filter: {
-                AccountFilterUtil.startAccountFilterActivityForResult(
-                        this, SUBACTIVITY_ACCOUNT_FILTER,
-                        mContactListFilterController.getFilter());
-                return true;
-            }
-            case R.id.menu_search: {
-                onSearchRequested();
-                return true;
-            }
-            case R.id.menu_share:
-                shareSelectedContacts();
-                return true;
-            case R.id.menu_join:
-                joinSelectedContacts();
-                return true;
-            case R.id.menu_delete:
-                deleteSelectedContacts();
-                return true;
-            case R.id.menu_import_export: {
-                showImportExportDialogFragment();
-                return true;
-            }
-            case R.id.menu_clear_frequents: {
-                ClearFrequentsDialog.show(getFragmentManager());
-                return true;
-            }
-            case R.id.menu_help:
-                HelpUtils.launchHelpAndFeedbackForMainScreen(this);
-                return true;
-            case R.id.menu_accounts: {
-                final Intent intent = new Intent(Settings.ACTION_SYNC_SETTINGS);
-                intent.putExtra(Settings.EXTRA_AUTHORITIES, new String[] {
-                    ContactsContract.AUTHORITY
-                });
-                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
-                ImplicitIntentsUtil.startActivityInAppIfPossible(this, intent);
-                return true;
-            }
-            case R.id.menu_blocked_numbers: {
-                final Intent intent = TelecomManagerUtil.createManageBlockedNumbersIntent(
-                        (TelecomManager) getSystemService(Context.TELECOM_SERVICE));
-                if (intent != null) {
-                    startActivity(intent);
-                }
-                return true;
-            }
-            case R.id.export_database: {
-                final Intent intent = new Intent("com.android.providers.contacts.DUMP_DATABASE");
-                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
-                ImplicitIntentsUtil.startActivityOutsideApp(this, intent);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private void showImportExportDialogFragment(){
-        final boolean isOnFavoriteTab = mTabPagerAdapter.mCurrentPrimaryItem == mFavoritesFragment;
-        if (isOnFavoriteTab) {
-            ImportExportDialogFragment.show(getFragmentManager(), areContactsAvailable(),
-                    PeopleActivity.class, ImportExportDialogFragment.EXPORT_MODE_FAVORITES);
-        } else {
-            ImportExportDialogFragment.show(getFragmentManager(), areContactsAvailable(),
-                    PeopleActivity.class, ImportExportDialogFragment.EXPORT_MODE_ALL_CONTACTS);
-        }
-    }
-
-    @Override
-    public boolean onSearchRequested() { // Search key pressed.
-        if (!mActionBarAdapter.isSelectionMode()) {
-            mActionBarAdapter.setSearchMode(true);
-        }
-        return true;
-    }
-
-    /**
-     * Share all contacts that are currently selected in mAllFragment. This method is pretty
-     * inefficient for handling large numbers of contacts. I don't expect this to be a problem.
-     */
-    private void shareSelectedContacts() {
-        final StringBuilder uriListBuilder = new StringBuilder();
-        for (Long contactId : mAllFragment.getSelectedContactIds()) {
-            final Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
-            final Uri lookupUri = Contacts.getLookupUri(getContentResolver(), contactUri);
-            if (lookupUri == null) {
-                continue;
-            }
-            final List<String> pathSegments = lookupUri.getPathSegments();
-            if (pathSegments.size() < 2) {
-                continue;
-            }
-            final String lookupKey = pathSegments.get(pathSegments.size() - 2);
-            if (uriListBuilder.length() > 0) {
-                uriListBuilder.append(':');
-            }
-            uriListBuilder.append(Uri.encode(lookupKey));
-        }
-        if (uriListBuilder.length() == 0) {
-            return;
-        }
-        final Uri uri = Uri.withAppendedPath(
-                Contacts.CONTENT_MULTI_VCARD_URI,
-                Uri.encode(uriListBuilder.toString()));
-        final Intent intent = new Intent(Intent.ACTION_SEND);
-        intent.setType(Contacts.CONTENT_VCARD_TYPE);
-        intent.putExtra(Intent.EXTRA_STREAM, uri);
-        ImplicitIntentsUtil.startActivityOutsideApp(this, intent);
-    }
-
-    private void joinSelectedContacts() {
-        JoinContactsDialogFragment.start(this, mAllFragment.getSelectedContactIds());
-    }
-
-    @Override
-    public void onContactsJoined() {
-        mActionBarAdapter.setSelectionMode(false);
-    }
-
-    private void deleteSelectedContacts() {
-        ContactMultiDeletionInteraction.start(PeopleActivity.this,
-                mAllFragment.getSelectedContactIds());
-    }
-
-    @Override
-    public void onDeletionFinished() {
-        mActionBarAdapter.setSelectionMode(false);
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        switch (requestCode) {
-            case SUBACTIVITY_ACCOUNT_FILTER: {
-                AccountFilterUtil.handleAccountFilterResult(
-                        mContactListFilterController, resultCode, data);
-                break;
-            }
-
-            // TODO: Using the new startActivityWithResultFromFragment API this should not be needed
-            // anymore
-            case ContactEntryListFragment.ACTIVITY_REQUEST_CODE_PICKER:
-                if (resultCode == RESULT_OK) {
-                    mAllFragment.onPickerResult(data);
-                }
-
-// TODO fix or remove multipicker code
-//                else if (resultCode == RESULT_CANCELED && mMode == MODE_PICK_MULTIPLE_PHONES) {
-//                    // Finish the activity if the sub activity was canceled as back key is used
-//                    // to confirm user selection in MODE_PICK_MULTIPLE_PHONES.
-//                    finish();
-//                }
-//                break;
-        }
-    }
-
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
-        // TODO move to the fragment
-
+        // If the drawer is open, consume KEYCODE_BACK event only.
+        if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+            if (keyCode == KeyEvent.KEYCODE_BACK) {
+                // Should eventually go to onBackPressed().
+                return super.onKeyDown(keyCode, event);
+            }
+            return false;
+        }
         // Bring up the search UI if the user starts typing
         final int unicodeChar = event.getUnicodeChar();
         if ((unicodeChar != 0)
                 // If COMBINING_ACCENT is set, it's not a unicode character.
                 && ((unicodeChar & KeyCharacterMap.COMBINING_ACCENT) == 0)
                 && !Character.isWhitespace(unicodeChar)) {
-            if (mActionBarAdapter.isSelectionMode()) {
-                // Ignore keyboard input when in selection mode.
-                return true;
-            }
-            String query = new String(new int[]{unicodeChar}, 0, 1);
-            if (!mActionBarAdapter.isSearchMode()) {
-                mActionBarAdapter.setSearchMode(true);
-                mActionBarAdapter.setQueryString(query);
+            if (mContactsListFragment.onKeyDown(unicodeChar)) {
                 return true;
             }
         }
@@ -1361,82 +788,480 @@
             return;
         }
 
-        if (mActionBarAdapter.isSelectionMode()) {
-            mActionBarAdapter.setSelectionMode(false);
-            mAllFragment.displayCheckBoxes(false);
-        } else if (mActionBarAdapter.isSearchMode()) {
-            mActionBarAdapter.setSearchMode(false);
+        // Handle the back event in drawer first.
+        if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+            closeDrawer();
+            return;
+        }
 
-            if (mAllFragment.wasSearchResultClicked()) {
-                mAllFragment.resetSearchResultClicked();
-            } else {
-                Logger.logScreenView(this, ScreenType.SEARCH_EXIT);
-                Logger.logSearchEvent(mAllFragment.createSearchState());
-            }
+        // Handle the back event in "second level".
+        if (isGroupView()) {
+            onBackPressedGroupView();
+            return;
+        }
+
+        if (isAssistantView()) {
+            onBackPressedAssistantView();
+            return;
+        }
+
+        // If feature highlight is present, let it handle the back event before
+        // mContactsListFragment.
+        if (FeatureHighlightHelper.tryRemoveHighlight(this)) {
+            return;
+        }
+
+        // Handle the back event in "first level" - mContactsListFragment.
+        if (maybeHandleInListFragment()) {
+            return;
+        }
+
+        super.onBackPressed();
+    }
+
+    private void onBackPressedGroupView() {
+        if (mMembersFragment.isEditMode()) {
+            mMembersFragment.exitEditMode();
+        } else if (mMembersFragment.getActionBarAdapter().isSelectionMode()) {
+            mMembersFragment.getActionBarAdapter().setSelectionMode(false);
+            mMembersFragment.displayCheckBoxes(false);
+        } else if (mMembersFragment.getActionBarAdapter().isSearchMode()) {
+            mMembersFragment.getActionBarAdapter().setSearchMode(false);
         } else {
+            switchToAllContacts();
+        }
+    }
+
+    private void onBackPressedAssistantView() {
+        if (!isInThirdLevel()) {
+            switchToAllContacts();
+        } else {
+            setDrawerLockMode(/* enabled */ true);
             super.onBackPressed();
         }
     }
 
+    // Returns true if back event is handled in this method.
+    private boolean maybeHandleInListFragment() {
+        if (isListFragmentInSelectionMode()) {
+            mContactsListFragment.getActionBarAdapter().setSelectionMode(false);
+            return true;
+        }
+
+        if (isListFragmentInSearchMode()) {
+            mContactsListFragment.getActionBarAdapter().setSearchMode(false);
+            if (mContactsListFragment.wasSearchResultClicked()) {
+                mContactsListFragment.resetSearchResultClicked();
+            } else {
+                Logger.logScreenView(this, ScreenType.SEARCH_EXIT);
+                Logger.logSearchEvent(mContactsListFragment.createSearchState());
+            }
+            return true;
+        }
+
+        if (!AccountFilterUtil.isAllContactsFilter(mContactListFilterController.getFilter())
+                && !mContactsListFragment.isHidden()) {
+            // If mContactsListFragment is hidden, then mContactsUnavailableFragment is visible so we
+            // don't need to switch to all contacts.
+            switchToAllContacts();
+            return true;
+        }
+
+        return false;
+    }
+
+    private boolean isListFragmentInSelectionMode() {
+        return mContactsListFragment != null && mContactsListFragment.getActionBarAdapter() != null
+                && mContactsListFragment.getActionBarAdapter().isSelectionMode();
+    }
+
+    private boolean isListFragmentInSearchMode() {
+        return mContactsListFragment != null && mContactsListFragment.getActionBarAdapter() != null
+                && mContactsListFragment.getActionBarAdapter().isSearchMode();
+    }
+
+    private boolean isGroupsFragmentInSelectionMode() {
+        return mMembersFragment != null && mMembersFragment.getActionBarAdapter() != null
+                && mMembersFragment.getActionBarAdapter().isSelectionMode();
+    }
+
+    private boolean isGroupsFragmentInSearchMode() {
+        return mMembersFragment != null && mMembersFragment.getActionBarAdapter() != null
+                && mMembersFragment.getActionBarAdapter().isSearchMode();
+    }
+
     @Override
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
-        mActionBarAdapter.onSaveInstanceState(outState);
-
-        // Clear the listener to make sure we don't get callbacks after onSaveInstanceState,
-        // in order to avoid doing fragment transactions after it.
-        // TODO Figure out a better way to deal with the issue.
-        mDisableOptionItemSelected = true;
-        mActionBarAdapter.setListener(null);
-        if (mTabPager != null) {
-            mTabPager.setOnPageChangeListener(null);
+        if (mNewGroupAccount != null) {
+            outState.putString(KEY_NEW_GROUP_ACCOUNT, mNewGroupAccount.stringify());
         }
+        outState.putInt(KEY_CONTACTS_VIEW, mCurrentView.ordinal());
+        outState.putParcelable(KEY_GROUP_URI, mGroupUri);
     }
 
     @Override
     protected void onRestoreInstanceState(Bundle savedInstanceState) {
         super.onRestoreInstanceState(savedInstanceState);
-        // In our own lifecycle, the focus is saved and restore but later taken away by the
-        // ViewPager. As a hack, we force focus on the SearchView if we know that we are searching.
-        // This fixes the keyboard going away on screen rotation
-        if (mActionBarAdapter.isSearchMode()) {
-            mActionBarAdapter.setFocusOnSearchView();
+        mGroupUri = savedInstanceState.getParcelable(KEY_GROUP_URI);
+    }
+
+    private void onGroupDeleted(final Intent intent) {
+        if (!ContactSaveService.canUndo(intent)) return;
+
+        final AccessibilityManager am =
+                (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);
+        //TODO set to INDEFINITE and track user interaction to dismiss b/33208886
+        final int accessibilityLength = 15000;
+        final int length = am.isEnabled() ? accessibilityLength : Snackbar.LENGTH_LONG;
+        final String message = getString(R.string.groupDeletedToast);
+
+        final Snackbar snackbar = Snackbar.make(mLayoutRoot, message, length)
+                .setAction(R.string.undo, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        ContactSaveService.startService(PeopleActivity.this,
+                                ContactSaveService.createUndoIntent(PeopleActivity.this, intent));
+                    }
+                }).setActionTextColor(ContextCompat.getColor(this, R.color.snackbar_action_text));
+
+        // Announce for a11y talkback
+        mLayoutRoot.announceForAccessibility(message);
+        mLayoutRoot.announceForAccessibility(getString(R.string.undo));
+
+        snackbar.show();
+    }
+
+    private class SaveServiceListener extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            switch (intent.getAction()) {
+                case ContactSaveService.BROADCAST_GROUP_DELETED:
+                    onGroupDeleted(intent);
+                    break;
+            }
+        }
+    }
+
+    private void onGroupMenuItemClicked(long groupId) {
+        if (isGroupView() && mMembersFragment != null
+                && mMembersFragment.isCurrentGroup(groupId)) {
+            return;
+        }
+        mGroupUri = ContentUris.withAppendedId(ContactsContract.Groups.CONTENT_URI, groupId);
+        switchToOrUpdateGroupView(GroupUtil.ACTION_SWITCH_GROUP);
+    }
+
+    private void onFilterMenuItemClicked(Intent intent) {
+        // We must pop second level first to "restart" mContactsListFragment before changing filter.
+        if (isInSecondLevel()) {
+            popSecondLevel();
+            showFabWithAnimation(/* showFab */ true);
+            // HACK: swap the current filter to force listeners to update because the group
+            // member view no longer changes the filter. Fix for b/32223767
+            final ContactListFilter current = mContactListFilterController.getFilter();
+            mContactListFilterController.setContactListFilter(
+                    AccountFilterUtil.createContactsFilter(this), false);
+            mContactListFilterController.setContactListFilter(current, false);
+        }
+        mCurrentView = ContactsView.ACCOUNT_VIEW;
+        AccountFilterUtil.handleAccountFilterResult(mContactListFilterController,
+                AppCompatActivity.RESULT_OK, intent);
+    }
+
+    private void switchToOrUpdateGroupView(String action) {
+        // If group fragment is active and visible, we simply update it.
+        if (mMembersFragment != null && !mMembersFragment.isInactive()) {
+            mMembersFragment.updateExistingGroupFragment(mGroupUri, action);
+        } else {
+            switchView(ContactsView.GROUP_VIEW);
+        }
+    }
+
+    protected void launchAssistant() {
+        switchView(ContactsView.ASSISTANT);
+    }
+
+    private void switchView(ContactsView contactsView) {
+        mCurrentView = contactsView;
+
+        final FragmentManager fragmentManager =  getFragmentManager();
+        final FragmentTransaction transaction = fragmentManager.beginTransaction();
+        popSecondLevel();
+        if (isGroupView()) {
+            mMembersFragment = GroupMembersFragment.newInstance(mGroupUri);
+            transaction.replace(
+                    R.id.contacts_list_container, mMembersFragment, TAG_GROUP_VIEW);
+        } else if (isAssistantView()) {
+            Fragment uiFragment = fragmentManager.findFragmentByTag(TAG_ASSISTANT);
+            Fragment unavailableFragment = fragmentManager.findFragmentByTag(TAG_UNAVAILABLE);
+            if (uiFragment == null) {
+                uiFragment = ObjectFactory.getAssistantFragment();
+            }
+            if (unavailableFragment != null) {
+                transaction.remove(unavailableFragment);
+            }
+            transaction.replace(R.id.contacts_list_container, uiFragment, TAG_ASSISTANT);
+            resetToolBarStatusBarColor();
+        }
+        transaction.addToBackStack(TAG_SECOND_LEVEL);
+        transaction.commit();
+        fragmentManager.executePendingTransactions();
+
+        showFabWithAnimation(/* showFab */ false);
+    }
+
+    public void switchToAllContacts() {
+        popSecondLevel();
+        mShouldSwitchToAllContacts = false;
+        mCurrentView = ContactsView.ALL_CONTACTS;
+        mDrawerFragment.setNavigationItemChecked(ContactsView.ALL_CONTACTS);
+        showFabWithAnimation(/* showFab */ true);
+        mContactsListFragment.scrollToTop();
+        resetFilter();
+        setTitle(getString(R.string.contactsList));
+    }
+
+    private void resetFilter() {
+        final Intent intent = new Intent();
+        final ContactListFilter filter = AccountFilterUtil.createContactsFilter(this);
+        intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
+        AccountFilterUtil.handleAccountFilterResult(
+                mContactListFilterController, AppCompatActivity.RESULT_OK, intent);
+    }
+
+    // Reset toolbar and status bar color to Contacts theme color.
+    private void resetToolBarStatusBarColor() {
+        findViewById(R.id.toolbar_frame).setBackgroundColor(
+                ContextCompat.getColor(this, R.color.primary_color));
+        updateStatusBarBackground(ContextCompat.getColor(this, R.color.primary_color_dark));
+    }
+
+    protected DefaultContactBrowseListFragment getListFragment() {
+        return mContactsListFragment;
+    }
+
+    protected GroupMembersFragment getGroupFragment() {
+        return mMembersFragment;
+    }
+
+    private void handleFilterChangeForFragment(ContactListFilter filter) {
+        if (mContactsListFragment.canSetActionBar()) {
+            mContactsListFragment.setFilterAndUpdateTitle(filter);
+            // Scroll to top after filter is changed.
+            mContactsListFragment.scrollToTop();
+        }
+    }
+
+    private void handleFilterChangeForActivity(ContactListFilter filter) {
+        // The filter was changed while this activity was in the background. If we're in the
+        // assistant view Switch to the main contacts list when we resume to prevent
+        // b/31838582 and b/31829161
+        // TODO: this is a hack; we need to do some cleanup of the contact list filter stuff
+        if (isAssistantView() && filter.isContactsFilterType()) {
+            mShouldSwitchToAllContacts = true;
+        }
+
+        if (CompatUtils.isNCompatible()) {
+            getWindow().getDecorView()
+                    .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+        }
+        invalidateOptionsMenu();
+    }
+
+    public void updateDrawerGroupMenu(long groupId) {
+        if (mDrawerFragment != null) {
+            mDrawerFragment.updateGroupMenu(groupId);
+        }
+    }
+
+    public void setDrawerLockMode(boolean enabled) {
+        // Prevent drawer from being opened by sliding from the start of screen.
+        mDrawerLayout.setDrawerLockMode(enabled ? DrawerLayout.LOCK_MODE_UNLOCKED
+                : DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
+
+        // Order of these statements matter.
+        // Display back button and disable drawer indicator.
+        if (enabled) {
+            getSupportActionBar().setDisplayHomeAsUpEnabled(false);
+            mToggle.setDrawerIndicatorEnabled(true);
+        } else {
+            mToggle.setDrawerIndicatorEnabled(false);
+            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    public Toolbar getToolbar() {
+        return mToolbar;
+    }
+
+    @Override
+    protected void onPostCreate(Bundle savedInstanceState) {
+        super.onPostCreate(savedInstanceState);
+        mToggle.syncState();
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        mToggle.onConfigurationChanged(newConfig);
+    }
+
+    protected void onCreateGroupMenuItemClicked() {
+        // Select the account to create the group
+        final Bundle extras = getIntent().getExtras();
+        final Account account = extras == null ? null :
+                (Account) extras.getParcelable(Intents.Insert.EXTRA_ACCOUNT);
+        if (account == null) {
+            selectAccountForNewGroup();
+        } else {
+            final String dataSet = extras == null
+                    ? null : extras.getString(Intents.Insert.EXTRA_DATA_SET);
+            final AccountWithDataSet accountWithDataSet = new AccountWithDataSet(
+                    account.name, account.type, dataSet);
+            onAccountChosen(accountWithDataSet, /* extraArgs */ null);
+        }
+    }
+
+    private void selectAccountForNewGroup() {
+        // This should never block because the DrawerFragment loads the accounts and the
+        // "Create Label" item only exists when that loading finishes
+        final List<AccountInfo> accounts = Futures.getUnchecked(AccountTypeManager.getInstance(this)
+                .filterAccountsAsync(AccountTypeManager.AccountFilter.GROUPS_WRITABLE));
+        if (accounts.isEmpty()) {
+            // We shouldn't present the add group button if there are no writable accounts
+            // but check it since it's possible we are started with an Intent.
+            Toast.makeText(this, R.string.groupCreateFailedToast, Toast.LENGTH_SHORT).show();
+            return;
+        }
+        // If there is a single writable account, use it w/o showing a dialog.
+        if (accounts.size() == 1) {
+            onAccountChosen(accounts.get(0).getAccount(), /* extraArgs */ null);
+            return;
+        }
+        SelectAccountDialogFragment.show(getFragmentManager(), R.string.dialog_new_group_account,
+                AccountTypeManager.AccountFilter.GROUPS_WRITABLE, /* extraArgs */ null,
+                TAG_SELECT_ACCOUNT_DIALOG);
+    }
+
+    // Implementation of SelectAccountDialogFragment.Listener
+    @Override
+    public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
+        mNewGroupAccount = account;
+        GroupNameEditDialogFragment.newInstanceForCreation(
+                mNewGroupAccount, GroupUtil.ACTION_CREATE_GROUP)
+                .show(getFragmentManager(), TAG_GROUP_NAME_EDIT_DIALOG);
+    }
+
+    @Override
+    public void onAccountSelectorCancelled() {
+    }
+
+    // Implementation of DrawerFragmentListener
+    @Override
+    public void onDrawerItemClicked(){
+        closeDrawer();
+    }
+
+    @Override
+    public void onContactsViewSelected(ContactsView mode) {
+        if (mode == ContactsView.ALL_CONTACTS) {
+            switchToAllContacts();
+        } else if (mode == ContactsView.ASSISTANT) {
+            launchAssistant();
+        } else {
+            throw new IllegalStateException("Unknown view " + mode);
         }
     }
 
     @Override
-    public DialogManager getDialogManager() {
-        return mDialogManager;
+    public void onCreateLabelButtonClicked() {
+        onCreateGroupMenuItemClicked();
     }
 
     @Override
-    public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.floating_action_button:
-                Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
-                Bundle extras = getIntent().getExtras();
-                if (extras != null) {
-                    intent.putExtras(extras);
-                }
-                try {
-                    ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
-                } catch (ActivityNotFoundException ex) {
-                    Toast.makeText(PeopleActivity.this, R.string.missing_app,
-                            Toast.LENGTH_SHORT).show();
-                }
-                break;
-        default:
-            Log.wtf(TAG, "Unexpected onClick event from " + view);
-        }
+    public void onOpenSettings() {
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                startActivity(createPreferenceIntent());
+            }
+        }, DRAWER_CLOSE_DELAY);
     }
 
-    /**
-     * Returns the tab position adjusted for the text direction.
-     */
-    private int getTabPositionForTextDirection(int position) {
-        if (isRTL()) {
-            return TabState.COUNT - 1 - position;
-        }
-        return position;
+    @Override
+    public void onLaunchHelpFeedback() {
+        HelpUtils.launchHelpAndFeedbackForMainScreen(this);
     }
+
+    @Override
+    public void onGroupViewSelected(GroupListItem groupListItem) {
+        onGroupMenuItemClicked(groupListItem.getGroupId());
+    }
+
+    @Override
+    public void onAccountViewSelected(ContactListFilter filter) {
+        final Intent intent = new Intent();
+        intent.putExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER, filter);
+        onFilterMenuItemClicked(intent);
+    }
+
+    public boolean isGroupView() {
+        return mCurrentView == ContactsView.GROUP_VIEW;
+    }
+
+    protected boolean isAssistantView() {
+        return mCurrentView == ContactsView.ASSISTANT;
+    }
+
+    protected boolean isAllContactsView() {
+        return mCurrentView == ContactsView.ALL_CONTACTS;
+    }
+
+    protected boolean isAccountView() {
+        return mCurrentView == ContactsView.ACCOUNT_VIEW;
+    }
+
+    public boolean isInSecondLevel() {
+        return isGroupView() || isAssistantView();
+    }
+
+    private boolean isInThirdLevel() {
+        return isLastBackStackTag(TAG_THIRD_LEVEL);
+    }
+
+    private boolean isLastBackStackTag(String tag) {
+        final int count = getFragmentManager().getBackStackEntryCount();
+        if (count > 0) {
+            final FragmentManager.BackStackEntry last =
+                    getFragmentManager().getBackStackEntryAt(count - 1);
+            if (tag == null) {
+                return last.getName() == null;
+            }
+            return tag.equals(last.getName());
+        }
+        return false;
+    }
+
+    private void popSecondLevel() {
+        getFragmentManager().popBackStackImmediate(
+                TAG_ASSISTANT_HELPER, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+        getFragmentManager().popBackStackImmediate(
+                TAG_SECOND_LEVEL, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+        mMembersFragment = null;
+        resetToolBarStatusBarColor();
+    }
+
+    public void closeDrawer() {
+        mDrawerLayout.closeDrawer(GravityCompat.START);
+    }
+
+    private Intent createPreferenceIntent() {
+        final Intent intent = new Intent(this, ContactsPreferenceActivity.class);
+        intent.putExtra(ContactsPreferenceActivity.EXTRA_NEW_LOCAL_PROFILE,
+                ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE);
+        return intent;
+    }
+
+
 }
diff --git a/src/com/android/contacts/activities/RequestDesiredPermissionsActivity.java b/src/com/android/contacts/activities/RequestDesiredPermissionsActivity.java
new file mode 100644
index 0000000..0e0d5da
--- /dev/null
+++ b/src/com/android/contacts/activities/RequestDesiredPermissionsActivity.java
@@ -0,0 +1,88 @@
+/*
+ * 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.activities;
+
+import android.Manifest.permission;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Requests permissions that are not absolutely required by the calling Activity;
+ * if permissions are denied, the calling Activity is still restarted.
+ *
+ * Activities that have a set of permissions that must be granted in order for the Activity to
+ * function propertly should call
+ * {@link RequestPermissionsActivity#startPermissionActivity(Activity, String[], Class)}
+ * before calling {@link RequestDesiredPermissionsActivity#startPermissionActivity(Activity)}.
+ */
+public class RequestDesiredPermissionsActivity extends RequestPermissionsActivityBase {
+
+    private static String[] sDesiredPermissions;
+
+    @Override
+    protected String[] getPermissions() {
+        return getPermissions(getPackageManager());
+    }
+
+    /**
+     * If any desired permission that Contacts app needs are missing, open an Activity
+     * to prompt user for these permissions. After that calling activity is restarted
+     * and in the second run permission check is skipped.
+     *
+     * This is designed to be called inside {@link android.app.Activity#onCreate}
+     */
+    public static boolean startPermissionActivity(Activity activity) {
+        final Bundle extras = activity.getIntent().getExtras();
+        if (extras != null && extras.getBoolean(EXTRA_STARTED_PERMISSIONS_ACTIVITY, false)) {
+            return false;
+        }
+        return startPermissionActivity(activity,
+                getPermissions(activity.getPackageManager()),
+                RequestDesiredPermissionsActivity.class);
+    }
+
+    private static String[] getPermissions(PackageManager packageManager) {
+        if (sDesiredPermissions == null) {
+            final List<String> permissions = new ArrayList<>();
+            // Calendar group
+            permissions.add(permission.READ_CALENDAR);
+
+            if (packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
+                // SMS group
+                permissions.add(permission.READ_SMS);
+            }
+            sDesiredPermissions = permissions.toArray(new String[0]);
+        }
+        return sDesiredPermissions;
+    }
+
+    @Override
+    public void onRequestPermissionsResult(
+            int requestCode, String permissions[], int[] grantResults) {
+        mPreviousActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
+        startActivity(mPreviousActivityIntent);
+        overridePendingTransition(0, 0);
+
+        finish();
+        overridePendingTransition(0, 0);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/activities/RequestImportVCardPermissionsActivity.java b/src/com/android/contacts/activities/RequestImportVCardPermissionsActivity.java
new file mode 100644
index 0000000..224339a
--- /dev/null
+++ b/src/com/android/contacts/activities/RequestImportVCardPermissionsActivity.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2015 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.activities;
+
+import android.Manifest.permission;
+import android.app.Activity;
+
+/**
+ * Activity that requests permissions needed for ImportVCardActivity.
+ */
+public class RequestImportVCardPermissionsActivity extends RequestPermissionsActivity {
+
+    private static final String[] REQUIRED_PERMISSIONS = new String[] {
+            // Contacts group
+            permission.GET_ACCOUNTS,
+            permission.READ_CONTACTS,
+            permission.WRITE_CONTACTS,
+            // Storage group
+            permission.READ_EXTERNAL_STORAGE,
+    };
+
+    @Override
+    protected String[] getPermissions() {
+        return REQUIRED_PERMISSIONS;
+    }
+
+    /**
+     * If any permissions the Contacts app needs are missing, open an Activity
+     * to prompt the user for these permissions. Moreover, finish the current activity.
+     *
+     * This is designed to be called inside {@link android.app.Activity#onCreate}
+     *
+     * @param isCallerSelf whether the vcard import was started from the contacts app itself.
+     */
+    public static boolean startPermissionActivity(Activity activity, boolean isCallerSelf) {
+        return startPermissionActivity(activity, REQUIRED_PERMISSIONS, isCallerSelf,
+                RequestImportVCardPermissionsActivity.class);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/activities/RequestPermissionsActivity.java b/src/com/android/contacts/activities/RequestPermissionsActivity.java
new file mode 100644
index 0000000..bcfa128
--- /dev/null
+++ b/src/com/android/contacts/activities/RequestPermissionsActivity.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2015 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.activities;
+
+import android.Manifest.permission;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.support.v4.content.LocalBroadcastManager;
+import android.widget.Toast;
+
+import com.android.contacts.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Activity that requests permissions needed for activities exported from Contacts.
+ */
+public class RequestPermissionsActivity extends RequestPermissionsActivityBase {
+
+    public static final String BROADCAST_PERMISSIONS_GRANTED = "broadcastPermissionsGranted";
+
+    private static String[] sRequiredPermissions;
+
+    @Override
+    protected String[] getPermissions() {
+        return getPermissions(getPackageManager());
+    }
+
+    /**
+     * Method to check if the required permissions are given.
+     */
+    public static boolean hasRequiredPermissions(Context context) {
+        return hasPermissions(context, getPermissions(context.getPackageManager()));
+    }
+
+    public static boolean startPermissionActivityIfNeeded(Activity activity) {
+        return startPermissionActivity(activity,
+                getPermissions(activity.getPackageManager()),
+                RequestPermissionsActivity.class);
+    }
+
+    private static String[] getPermissions(PackageManager packageManager) {
+        if (sRequiredPermissions == null) {
+            final List<String> permissions = new ArrayList<>();
+            // Contacts group
+            permissions.add(permission.GET_ACCOUNTS);
+            permissions.add(permission.READ_CONTACTS);
+            permissions.add(permission.WRITE_CONTACTS);
+
+            if (packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
+                // Phone group
+                // These are only used in a few places such as QuickContactActivity and
+                // ImportExportDialogFragment.  We work around missing this permission when
+                // telephony is not available on the device (i.e. on tablets).
+                permissions.add(permission.CALL_PHONE);
+                permissions.add(permission.READ_CALL_LOG);
+                permissions.add(permission.READ_PHONE_STATE);
+            }
+            sRequiredPermissions = permissions.toArray(new String[0]);
+        }
+        return sRequiredPermissions;
+    }
+
+    @Override
+    public void onRequestPermissionsResult(
+            int requestCode, String permissions[], int[] grantResults) {
+        if (permissions != null && permissions.length > 0
+                && isAllGranted(permissions, grantResults)) {
+            mPreviousActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
+            if (mIsCallerSelf) {
+                startActivityForResult(mPreviousActivityIntent, 0);
+            } else {
+                startActivity(mPreviousActivityIntent);
+            }
+            finish();
+            overridePendingTransition(0, 0);
+
+            LocalBroadcastManager.getInstance(this).sendBroadcast(
+                    new Intent(BROADCAST_PERMISSIONS_GRANTED));
+        } else {
+            Toast.makeText(this, R.string.missing_required_permission, Toast.LENGTH_SHORT).show();
+            finish();
+        }
+    }
+}
diff --git a/src/com/android/contacts/activities/RequestPermissionsActivityBase.java b/src/com/android/contacts/activities/RequestPermissionsActivityBase.java
new file mode 100644
index 0000000..1c11905
--- /dev/null
+++ b/src/com/android/contacts/activities/RequestPermissionsActivityBase.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2015 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.activities;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.os.Trace;
+import android.support.v4.app.ActivityCompat;
+
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.util.PermissionsUtil;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+/**
+ * Activity that asks the user for all {@link #getPermissions} if any are missing.
+ *
+ * NOTE: As a result of b/22095159, this can behave oddly in the case where the final permission
+ * you are requesting causes an application restart.
+ */
+public abstract class RequestPermissionsActivityBase extends Activity
+        implements ActivityCompat.OnRequestPermissionsResultCallback {
+
+    public static final String PREVIOUS_ACTIVITY_INTENT = "previous_intent";
+
+    /** Whether the permissions activity was already started. */
+    protected static final String EXTRA_STARTED_PERMISSIONS_ACTIVITY =
+            "started_permissions_activity";
+
+    protected static final String EXTRA_IS_CALLER_SELF = "is_caller_self";
+
+    private static final int PERMISSIONS_REQUEST_ALL_PERMISSIONS = 1;
+
+    /**
+     * @return list of permissions that are needed in order for {@link #PREVIOUS_ACTIVITY_INTENT}
+     * to operate. You only need to return a single permission per permission group you care about.
+     */
+    protected abstract String[] getPermissions();
+
+    protected Intent mPreviousActivityIntent;
+
+    /** If true then start the target activity "for result" after permissions are granted. */
+    protected boolean mIsCallerSelf;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mPreviousActivityIntent = (Intent) getIntent().getExtras().get(PREVIOUS_ACTIVITY_INTENT);
+        mIsCallerSelf = getIntent().getBooleanExtra(EXTRA_IS_CALLER_SELF, false);
+
+        // Only start a requestPermissions() flow when first starting this activity the first time.
+        // The process is likely to be restarted during the permission flow (necessary to enable
+        // permissions) so this is important to track.
+        if (savedInstanceState == null) {
+            requestPermissions();
+        }
+    }
+
+    /**
+     * If any permissions the Contacts app needs are missing, open an Activity
+     * to prompt the user for these permissions. Moreover, finish the current activity.
+     *
+     * This is designed to be called inside {@link android.app.Activity#onCreate}
+     */
+    protected static boolean startPermissionActivity(Activity activity,
+            String[] requiredPermissions, Class<?> newActivityClass) {
+        return startPermissionActivity(activity, requiredPermissions, /* isCallerSelf */ false,
+                newActivityClass);
+    }
+
+    protected static boolean startPermissionActivity(Activity activity,
+                String[] requiredPermissions, boolean isCallerSelf, Class<?> newActivityClass) {
+        if (!hasPermissions(activity, requiredPermissions)) {
+            final Intent intent = new Intent(activity,  newActivityClass);
+            activity.getIntent().putExtra(EXTRA_STARTED_PERMISSIONS_ACTIVITY, true);
+            intent.putExtra(PREVIOUS_ACTIVITY_INTENT, activity.getIntent());
+            intent.putExtra(EXTRA_IS_CALLER_SELF, isCallerSelf);
+            activity.startActivity(intent);
+            activity.finish();
+            return true;
+        }
+
+        // Account type initialization must be delayed until the Contacts permission group
+        // has been granted (since GET_ACCOUNTS) falls under that groups.  Previously it
+        // was initialized in ContactApplication which would cause problems as
+        // AccountManager.getAccounts would return an empty array. See b/22690336
+        AccountTypeManager.getInstance(activity);
+
+        return false;
+    }
+
+    protected boolean isAllGranted(String permissions[], int[] grantResult) {
+        for (int i = 0; i < permissions.length; i++) {
+            if (grantResult[i] != PackageManager.PERMISSION_GRANTED
+                    && isPermissionRequired(permissions[i])) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private boolean isPermissionRequired(String p) {
+        return Arrays.asList(getPermissions()).contains(p);
+    }
+
+    private void requestPermissions() {
+        Trace.beginSection("requestPermissions");
+        try {
+            // Construct a list of missing permissions
+            final ArrayList<String> unsatisfiedPermissions = new ArrayList<>();
+            for (String permission : getPermissions()) {
+                if (!PermissionsUtil.hasPermission(this, permission)) {
+                    unsatisfiedPermissions.add(permission);
+                }
+            }
+            if (unsatisfiedPermissions.size() == 0) {
+                throw new RuntimeException("Request permission activity was called even"
+                        + " though all permissions are satisfied.");
+            }
+            ActivityCompat.requestPermissions(
+                    this,
+                    unsatisfiedPermissions.toArray(new String[unsatisfiedPermissions.size()]),
+                    PERMISSIONS_REQUEST_ALL_PERMISSIONS);
+        } finally {
+            Trace.endSection();
+        }
+    }
+
+    protected static boolean hasPermissions(Context context, String[] permissions) {
+        Trace.beginSection("hasPermission");
+        try {
+            for (String permission : permissions) {
+                if (!PermissionsUtil.hasPermission(context, permission)) {
+                    return false;
+                }
+            }
+            return true;
+        } finally {
+            Trace.endSection();
+        }
+    }
+}
diff --git a/src/com/android/contacts/activities/ShowOrCreateActivity.java b/src/com/android/contacts/activities/ShowOrCreateActivity.java
index 6a516ad..8c94364 100755
--- a/src/com/android/contacts/activities/ShowOrCreateActivity.java
+++ b/src/com/android/contacts/activities/ShowOrCreateActivity.java
@@ -34,11 +34,10 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.ContactsActivity;
+import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.common.activity.RequestPermissionsActivity;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
+import com.android.contacts.util.ImplicitIntentsUtil;
 import com.android.contacts.util.NotifyingAsyncQueryHandler;
 
 /**
@@ -88,7 +87,7 @@
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        if (RequestPermissionsActivity.startPermissionActivity(this)) {
+        if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
             return;
         }
 
diff --git a/src/com/android/contacts/activities/SimImportActivity.java b/src/com/android/contacts/activities/SimImportActivity.java
new file mode 100644
index 0000000..2dff45b
--- /dev/null
+++ b/src/com/android/contacts/activities/SimImportActivity.java
@@ -0,0 +1,49 @@
+/*
+ * 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.activities;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.os.Bundle;
+
+import com.android.contacts.AppCompatContactsActivity;
+import com.android.contacts.R;
+import com.android.contacts.SimImportFragment;
+import com.android.contacts.model.SimCard;
+
+/**
+ * Host activity for SimImportFragment
+ *
+ * Initially SimImportFragment was a DialogFragment but there were accessibility issues with
+ * that so it was changed to an activity
+ */
+public class SimImportActivity extends AppCompatContactsActivity {
+
+    public static final String EXTRA_SUBSCRIPTION_ID = "extraSubscriptionId";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.sim_import_activity);
+        final FragmentManager fragmentManager = getFragmentManager();
+        Fragment fragment = fragmentManager.findFragmentByTag("SimImport");
+        if (fragment == null) {
+            fragment = SimImportFragment.newInstance(getIntent().getIntExtra(EXTRA_SUBSCRIPTION_ID,
+                    SimCard.NO_SUBSCRIPTION_ID));
+            fragmentManager.beginTransaction().add(R.id.root, fragment, "SimImport").commit();
+        }
+    }
+}
diff --git a/src/com/android/contacts/activities/TransactionSafeActivity.java b/src/com/android/contacts/activities/TransactionSafeActivity.java
new file mode 100644
index 0000000..b177665
--- /dev/null
+++ b/src/com/android/contacts/activities/TransactionSafeActivity.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2011 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.activities;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+/**
+ * A common superclass that keeps track of whether an {@link Activity} has saved its state yet or
+ * not.
+ */
+public abstract class TransactionSafeActivity extends Activity {
+
+    private boolean mIsSafeToCommitTransactions;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mIsSafeToCommitTransactions = true;
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        mIsSafeToCommitTransactions = false;
+    }
+
+    /**
+     * Returns true if it is safe to commit {@link FragmentTransaction}s at this time, based on
+     * whether {@link Activity#onSaveInstanceState} has been called or not.
+     *
+     * Make sure that the current activity calls into
+     * {@link super.onSaveInstanceState(Bundle outState)} (if that method is overridden),
+     * so the flag is properly set.
+     */
+    public boolean isSafeToCommitTransactions() {
+        return mIsSafeToCommitTransactions;
+    }
+}
diff --git a/src/com/android/contacts/compat/CallSdkCompat.java b/src/com/android/contacts/compat/CallSdkCompat.java
new file mode 100644
index 0000000..d8fbc9a
--- /dev/null
+++ b/src/com/android/contacts/compat/CallSdkCompat.java
@@ -0,0 +1,57 @@
+/*
+ * 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.compat;
+
+import android.telecom.Call;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class CallSdkCompat {
+    public static class Details {
+        // TODO: This property is hidden in the N release; replace with actual when the API is
+        // made public.
+        public static final int PROPERTY_IS_EXTERNAL_CALL = 0x00000040;
+        public static final int PROPERTY_ENTERPRISE_CALL = Call.Details.PROPERTY_ENTERPRISE_CALL;
+        // TODO: This capability is hidden in the N release; replace with actual when the API is
+        // made public.
+        public static final int CAPABILITY_CAN_PULL_CALL = 0x00800000;
+        public static final int CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO =
+                Call.Details.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO;
+    }
+
+    /**
+     * TODO: This API is hidden in the N release; replace the implementation with a call to the
+     * actual once it is made public.
+     */
+    public static void pullExternalCall(Call call) {
+        if (!CompatUtils.isNCompatible()) {
+            return;
+        }
+        Class<?> callClass = Call.class;
+        try {
+            Method pullExternalCallMethod = callClass.getDeclaredMethod("pullExternalCall");
+            pullExternalCallMethod.invoke(call);
+        } catch (NoSuchMethodException e) {
+            // Ignore requests to pull call if there is a problem.
+        } catch (InvocationTargetException e) {
+            // Ignore requests to pull call if there is a problem.
+        } catch (IllegalAccessException e) {
+            // Ignore requests to pull call if there is a problem.
+        }
+    }
+}
diff --git a/src/com/android/contacts/compat/CallableCompat.java b/src/com/android/contacts/compat/CallableCompat.java
new file mode 100644
index 0000000..bcc675c
--- /dev/null
+++ b/src/com/android/contacts/compat/CallableCompat.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Callable;
+
+import com.android.contacts.ContactsUtils;
+
+public class CallableCompat {
+
+    // TODO: Use N APIs
+    private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
+            Uri.withAppendedPath(Callable.CONTENT_URI, "filter_enterprise");
+
+    public static Uri getContentFilterUri() {
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            return ENTERPRISE_CONTENT_FILTER_URI;
+        }
+        return Callable.CONTENT_FILTER_URI;
+    }
+}
diff --git a/src/com/android/contacts/compat/CompatUtils.java b/src/com/android/contacts/compat/CompatUtils.java
new file mode 100644
index 0000000..10b627b
--- /dev/null
+++ b/src/com/android/contacts/compat/CompatUtils.java
@@ -0,0 +1,286 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.os.Build;
+import android.os.Build.VERSION;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.model.CPOWrapper;
+
+import java.lang.reflect.InvocationTargetException;
+
+public final class CompatUtils {
+
+    private static final String TAG = CompatUtils.class.getSimpleName();
+
+    /**
+     * These 4 variables are copied from ContentProviderOperation for compatibility.
+     */
+    public final static int TYPE_INSERT = 1;
+
+    public final static int TYPE_UPDATE = 2;
+
+    public final static int TYPE_DELETE = 3;
+
+    public final static int TYPE_ASSERT = 4;
+
+    /**
+     * Returns whether the operation in CPOWrapper is of TYPE_INSERT;
+     */
+    public static boolean isInsertCompat(CPOWrapper cpoWrapper) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return cpoWrapper.getOperation().isInsert();
+        }
+        return (cpoWrapper.getType() == TYPE_INSERT);
+    }
+
+    /**
+     * Returns whether the operation in CPOWrapper is of TYPE_UPDATE;
+     */
+    public static boolean isUpdateCompat(CPOWrapper cpoWrapper) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return cpoWrapper.getOperation().isUpdate();
+        }
+        return (cpoWrapper.getType() == TYPE_UPDATE);
+    }
+
+    /**
+     * Returns whether the operation in CPOWrapper is of TYPE_DELETE;
+     */
+    public static boolean isDeleteCompat(CPOWrapper cpoWrapper) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return cpoWrapper.getOperation().isDelete();
+        }
+        return (cpoWrapper.getType() == TYPE_DELETE);
+    }
+    /**
+     * Returns whether the operation in CPOWrapper is of TYPE_ASSERT;
+     */
+    public static boolean isAssertQueryCompat(CPOWrapper cpoWrapper) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return cpoWrapper.getOperation().isAssertQuery();
+        }
+        return (cpoWrapper.getType() == TYPE_ASSERT);
+    }
+
+    /**
+     * PrioritizedMimeType is added in API level 23.
+     */
+    public static boolean hasPrioritizedMimeType() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
+                >= Build.VERSION_CODES.M;
+    }
+
+    /**
+     * Determines if this version is compatible with multi-SIM and the phone account APIs. Can also
+     * force the version to be lower through SdkVersionOverride.
+     *
+     * @return {@code true} if multi-SIM capability is available, {@code false} otherwise.
+     */
+    public static boolean isMSIMCompatible() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
+                >= Build.VERSION_CODES.LOLLIPOP_MR1;
+    }
+
+    /**
+     * Determines if this version is compatible with video calling. Can also force the version to be
+     * lower through SdkVersionOverride.
+     *
+     * @return {@code true} if video calling is allowed, {@code false} otherwise.
+     */
+    public static boolean isVideoCompatible() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
+                >= Build.VERSION_CODES.M;
+    }
+
+    /**
+     * Determines if this version is capable of using presence checking for video calling. Support
+     * for video call presence indication is added in SDK 24.
+     *
+     * @return {@code true} if video presence checking is allowed, {@code false} otherwise.
+     */
+    public static boolean isVideoPresenceCompatible() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
+                > Build.VERSION_CODES.M;
+    }
+
+    /**
+     * Determines if this version is compatible with call subject. Can also force the version to be
+     * lower through SdkVersionOverride.
+     *
+     * @return {@code true} if call subject is a feature on this device, {@code false} otherwise.
+     */
+    public static boolean isCallSubjectCompatible() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
+                >= Build.VERSION_CODES.M;
+    }
+
+    /**
+     * Determines if this version is compatible with a default dialer. Can also force the version to
+     * be lower through {@link SdkVersionOverride}.
+     *
+     * @return {@code true} if default dialer is a feature on this device, {@code false} otherwise.
+     */
+    public static boolean isDefaultDialerCompatible() {
+        return isMarshmallowCompatible();
+    }
+
+    /**
+     * Determines if this version is compatible with Lollipop Mr1-specific APIs. Can also force the
+     * version to be lower through SdkVersionOverride.
+     *
+     * @return {@code true} if runtime sdk is compatible with Lollipop MR1, {@code false} otherwise.
+     */
+    public static boolean isLollipopMr1Compatible() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP_MR1)
+                >= Build.VERSION_CODES.LOLLIPOP_MR1;
+    }
+
+    /**
+     * Determines if this version is compatible with Marshmallow-specific APIs. Can also force the
+     * version to be lower through SdkVersionOverride.
+     *
+     * @return {@code true} if runtime sdk is compatible with Marshmallow, {@code false} otherwise.
+     */
+    public static boolean isMarshmallowCompatible() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
+                >= Build.VERSION_CODES.M;
+    }
+
+    /**
+     * Determines if this version is compatible with N-specific APIs.
+     *
+     * @return {@code true} if runtime sdk is compatible with N and the app is built with N, {@code
+     * false} otherwise.
+     */
+    public static boolean isNCompatible() {
+        return VERSION.SDK_INT >= 24;
+    }
+
+
+    public static boolean isNougatMr1Compatible() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.N_MR1)
+                >= Build.VERSION_CODES.N_MR1;
+    }
+
+    public static boolean isLauncherShortcutCompatible() {
+        return isNougatMr1Compatible();
+    }
+
+    /**
+     * Determines if the given class is available. Can be used to check if system apis exist at
+     * runtime.
+     *
+     * @param className the name of the class to look for.
+     * @return {@code true} if the given class is available, {@code false} otherwise or if className
+     * is empty.
+     */
+    public static boolean isClassAvailable(@Nullable String className) {
+        if (TextUtils.isEmpty(className)) {
+            return false;
+        }
+        try {
+            Class.forName(className);
+            return true;
+        } catch (ClassNotFoundException e) {
+            return false;
+        } catch (Throwable t) {
+            Log.e(TAG, "Unexpected exception when checking if class:" + className + " exists at "
+                    + "runtime", t);
+            return false;
+        }
+    }
+
+    /**
+     * Determines if the given class's method is available to call. Can be used to check if system
+     * apis exist at runtime.
+     *
+     * @param className the name of the class to look for
+     * @param methodName the name of the method to look for
+     * @param parameterTypes the needed parameter types for the method to look for
+     * @return {@code true} if the given class is available, {@code false} otherwise or if className
+     * or methodName are empty.
+     */
+    public static boolean isMethodAvailable(@Nullable String className, @Nullable String methodName,
+            Class<?>... parameterTypes) {
+        if (TextUtils.isEmpty(className) || TextUtils.isEmpty(methodName)) {
+            return false;
+        }
+
+        try {
+            Class.forName(className).getMethod(methodName, parameterTypes);
+            return true;
+        } catch (ClassNotFoundException | NoSuchMethodException e) {
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "Could not find method: " + className + "#" + methodName);
+            }
+            return false;
+        } catch (Throwable t) {
+            Log.e(TAG, "Unexpected exception when checking if method: " + className + "#"
+                    + methodName + " exists at runtime", t);
+            return false;
+        }
+    }
+
+    /**
+     * Invokes a given class's method using reflection. Can be used to call system apis that exist
+     * at runtime but not in the SDK.
+     *
+     * @param instance The instance of the class to invoke the method on.
+     * @param methodName The name of the method to invoke.
+     * @param parameterTypes The needed parameter types for the method.
+     * @param parameters The parameter values to pass into the method.
+     * @return The result of the invocation or {@code null} if instance or methodName are empty, or
+     * if the reflection fails.
+     */
+    @Nullable
+    public static Object invokeMethod(@Nullable Object instance, @Nullable String methodName,
+            Class<?>[] parameterTypes, Object[] parameters) {
+        if (instance == null || TextUtils.isEmpty(methodName)) {
+            return null;
+        }
+
+        String className = instance.getClass().getName();
+        try {
+            return Class.forName(className).getMethod(methodName, parameterTypes)
+                    .invoke(instance, parameters);
+        } catch (ClassNotFoundException | NoSuchMethodException | IllegalArgumentException
+                | IllegalAccessException | InvocationTargetException e) {
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "Could not invoke method: " + className + "#" + methodName);
+            }
+            return null;
+        } catch (Throwable t) {
+            Log.e(TAG, "Unexpected exception when invoking method: " + className
+                    + "#" + methodName + " at runtime", t);
+            return null;
+        }
+    }
+
+    /**
+     * Determines if this version is compatible with Lollipop-specific APIs. Can also force the
+     * version to be lower through SdkVersionOverride.
+     *
+     * @return {@code true} if call subject is a feature on this device, {@code false} otherwise.
+     */
+    public static boolean isLollipopCompatible() {
+        return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
+                >= Build.VERSION_CODES.LOLLIPOP;
+    }
+}
diff --git a/src/com/android/contacts/compat/ContactsCompat.java b/src/com/android/contacts/compat/ContactsCompat.java
new file mode 100644
index 0000000..3b090b5
--- /dev/null
+++ b/src/com/android/contacts/compat/ContactsCompat.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+
+import com.android.contacts.ContactsUtils;
+
+/**
+ * Compatibility class for {@link ContactsContract.Contacts}
+ */
+public class ContactsCompat {
+    /**
+     * Not instantiable.
+     */
+    private ContactsCompat() {
+    }
+
+    // TODO: Use N APIs
+    private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
+            Uri.withAppendedPath(Contacts.CONTENT_URI, "filter_enterprise");
+
+    // Copied from ContactsContract.Contacts#ENTERPRISE_CONTACT_ID_BASE, which is hidden.
+    private static final long ENTERPRISE_CONTACT_ID_BASE = 1000000000;
+
+    public static Uri getContentUri() {
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            return ENTERPRISE_CONTENT_FILTER_URI;
+        }
+        return Contacts.CONTENT_FILTER_URI;
+    }
+
+    /**
+     * Return {@code true} if a contact ID is from the contacts provider on the enterprise profile.
+     */
+    public static boolean isEnterpriseContactId(long contactId) {
+        if (CompatUtils.isLollipopCompatible()) {
+            return Contacts.isEnterpriseContactId(contactId);
+        } else {
+            // copied from ContactsContract.Contacts.isEnterpriseContactId
+            return (contactId >= ENTERPRISE_CONTACT_ID_BASE) &&
+                    (contactId < ContactsContract.Profile.MIN_ID);
+        }
+    }
+}
diff --git a/src/com/android/contacts/compat/DirectoryCompat.java b/src/com/android/contacts/compat/DirectoryCompat.java
new file mode 100644
index 0000000..95e021f
--- /dev/null
+++ b/src/com/android/contacts/compat/DirectoryCompat.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.net.Uri;
+import android.provider.ContactsContract.Directory;
+
+import com.android.contacts.ContactsUtils;
+
+public class DirectoryCompat {
+
+    public static Uri getContentUri() {
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            return DirectorySdkCompat.ENTERPRISE_CONTENT_URI;
+        }
+        return Directory.CONTENT_URI;
+    }
+
+    public static boolean isInvisibleDirectory(long directoryId) {
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            return (directoryId == Directory.LOCAL_INVISIBLE
+                    || directoryId == DirectorySdkCompat.ENTERPRISE_LOCAL_INVISIBLE);
+        }
+        return directoryId == Directory.LOCAL_INVISIBLE;
+    }
+
+    public static boolean isRemoteDirectoryId(long directoryId) {
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            return DirectorySdkCompat.isRemoteDirectoryId(directoryId);
+        }
+        return !(directoryId == Directory.DEFAULT || directoryId == Directory.LOCAL_INVISIBLE);
+    }
+
+    public static boolean isEnterpriseDirectoryId(long directoryId) {
+        return ContactsUtils.FLAG_N_FEATURE
+                ? DirectorySdkCompat.isEnterpriseDirectoryId(directoryId)
+                : false;
+    }
+}
diff --git a/src/com/android/contacts/compat/DirectorySdkCompat.java b/src/com/android/contacts/compat/DirectorySdkCompat.java
new file mode 100644
index 0000000..32b918c
--- /dev/null
+++ b/src/com/android/contacts/compat/DirectorySdkCompat.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.net.Uri;
+import android.provider.ContactsContract.Directory;
+
+public class DirectorySdkCompat {
+
+    private static final String TAG = "DirectorySdkCompat";
+
+    public static final Uri ENTERPRISE_CONTENT_URI = Directory.ENTERPRISE_CONTENT_URI;
+    public static final long ENTERPRISE_LOCAL_DEFAULT = Directory.ENTERPRISE_DEFAULT;
+    public static final long ENTERPRISE_LOCAL_INVISIBLE = Directory.ENTERPRISE_LOCAL_INVISIBLE;
+
+    public static boolean isRemoteDirectoryId(long directoryId) {
+        return CompatUtils.isNCompatible() ? Directory.isRemoteDirectoryId(directoryId) : false;
+    }
+
+    public static boolean isEnterpriseDirectoryId(long directoryId) {
+        return CompatUtils.isNCompatible() ? Directory.isEnterpriseDirectoryId(directoryId) : false;
+    }
+}
diff --git a/src/com/android/contacts/compat/EdgeEffectCompat.java b/src/com/android/contacts/compat/EdgeEffectCompat.java
index 92999a0..b93ff90 100644
--- a/src/com/android/contacts/compat/EdgeEffectCompat.java
+++ b/src/com/android/contacts/compat/EdgeEffectCompat.java
@@ -17,7 +17,6 @@
 package com.android.contacts.compat;
 
 import android.widget.EdgeEffect;
-import com.android.contacts.common.compat.CompatUtils;
 
 /**
  * Compatibility class for {@link android.widget.EdgeEffect}
diff --git a/src/com/android/contacts/compat/EventCompat.java b/src/com/android/contacts/compat/EventCompat.java
new file mode 100644
index 0000000..2ce8148
--- /dev/null
+++ b/src/com/android/contacts/compat/EventCompat.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.content.res.Resources;
+import android.provider.ContactsContract.CommonDataKinds.BaseTypes;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.text.TextUtils;
+
+/**
+ * Compatibility class for {@link Event}
+ */
+public class EventCompat {
+    /**
+     * Not instantiable.
+     */
+    private EventCompat() {
+    }
+
+    /**
+     * Return a {@link CharSequence} that best describes the given type, possibly substituting
+     * the given label value for TYPE_CUSTOM.
+     */
+    public static CharSequence getTypeLabel(Resources res, int type, CharSequence label) {
+        if (CompatUtils.isLollipopCompatible()) {
+            return Event.getTypeLabel(res, type, label);
+        } else {
+            return getTypeLabelInternal(res, type, label);
+        }
+    }
+
+    /**
+     * The method was added in API level 21, and below is the implementation copied from
+     * {@link Event#getTypeLabel(Resources, int, CharSequence)}
+     */
+    private static CharSequence getTypeLabelInternal(Resources res, int type, CharSequence label) {
+        if (type == BaseTypes.TYPE_CUSTOM && !TextUtils.isEmpty(label)) {
+            return label;
+        } else {
+            return res.getText(Event.getTypeResource(type));
+        }
+    }
+
+}
diff --git a/src/com/android/contacts/compat/MultiWindowCompat.java b/src/com/android/contacts/compat/MultiWindowCompat.java
new file mode 100644
index 0000000..61af516
--- /dev/null
+++ b/src/com/android/contacts/compat/MultiWindowCompat.java
@@ -0,0 +1,28 @@
+/*
+ * 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.compat;
+
+import android.app.Activity;
+
+public class MultiWindowCompat {
+    /**
+     * Returns true if the activity is currently in multi-window mode.
+     */
+    public static boolean isInMultiWindowMode(Activity activity) {
+        return CompatUtils.isNCompatible() ? activity.isInMultiWindowMode() : false;
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/compat/PhoneAccountCompat.java b/src/com/android/contacts/compat/PhoneAccountCompat.java
new file mode 100644
index 0000000..5c396f5
--- /dev/null
+++ b/src/com/android/contacts/compat/PhoneAccountCompat.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
+import android.support.annotation.Nullable;
+import android.telecom.PhoneAccount;
+import android.util.Log;
+
+/**
+ * Compatiblity class for {@link android.telecom.PhoneAccount}
+ */
+public class PhoneAccountCompat {
+
+    private static final String TAG = PhoneAccountCompat.class.getSimpleName();
+
+    /**
+     * Gets the {@link Icon} associated with the given {@link PhoneAccount}
+     *
+     * @param phoneAccount the PhoneAccount from which to retrieve the Icon
+     * @return the Icon, or null
+     */
+    @Nullable
+    public static Icon getIcon(@Nullable PhoneAccount phoneAccount) {
+        if (phoneAccount == null) {
+            return null;
+        }
+
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return phoneAccount.getIcon();
+        }
+
+        return null;
+    }
+
+    /**
+     * Builds and returns an icon {@code Drawable} to represent this {@code PhoneAccount} in a user
+     * interface.
+     *
+     * @param phoneAccount the PhoneAccount from which to build the icon.
+     * @param context A {@code Context} to use for loading Drawables.
+     *
+     * @return An icon for this PhoneAccount, or null
+     */
+    @Nullable
+    public static Drawable createIconDrawable(@Nullable PhoneAccount phoneAccount,
+            @Nullable Context context) {
+        if (phoneAccount == null || context == null) {
+            return null;
+        }
+
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return createIconDrawableMarshmallow(phoneAccount, context);
+        }
+
+        if (CompatUtils.isLollipopMr1Compatible()) {
+            return createIconDrawableLollipopMr1(phoneAccount, context);
+        }
+        return null;
+    }
+
+    @Nullable
+    private static Drawable createIconDrawableMarshmallow(PhoneAccount phoneAccount,
+            Context context) {
+        Icon accountIcon = getIcon(phoneAccount);
+        if (accountIcon == null) {
+            return null;
+        }
+        return accountIcon.loadDrawable(context);
+    }
+
+    @Nullable
+    private static Drawable createIconDrawableLollipopMr1(PhoneAccount phoneAccount,
+            Context context) {
+        try {
+            return (Drawable) PhoneAccount.class.getMethod("createIconDrawable", Context.class)
+                    .invoke(phoneAccount, context);
+        } catch (ReflectiveOperationException e) {
+            return null;
+        } catch (Throwable t) {
+            Log.e(TAG, "Unexpected exception when attempting to call "
+                    + "android.telecom.PhoneAccount#createIconDrawable", t);
+            return null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/compat/PhoneAccountSdkCompat.java b/src/com/android/contacts/compat/PhoneAccountSdkCompat.java
new file mode 100644
index 0000000..cb150c0
--- /dev/null
+++ b/src/com/android/contacts/compat/PhoneAccountSdkCompat.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.os.Bundle;
+import android.telecom.PhoneAccount;
+
+public class PhoneAccountSdkCompat {
+
+    private static final String TAG = "PhoneAccountSdkCompat";
+
+    public static final String EXTRA_CALL_SUBJECT_MAX_LENGTH =
+            PhoneAccount.EXTRA_CALL_SUBJECT_MAX_LENGTH;
+    public static final String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING =
+            PhoneAccount.EXTRA_CALL_SUBJECT_CHARACTER_ENCODING;
+
+    public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE =
+            PhoneAccount.CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE;
+
+    public static Bundle getExtras(PhoneAccount account) {
+        return CompatUtils.isNCompatible() ? account.getExtras() : null;
+    }
+}
diff --git a/src/com/android/contacts/compat/PhoneCompat.java b/src/com/android/contacts/compat/PhoneCompat.java
new file mode 100644
index 0000000..67ef558
--- /dev/null
+++ b/src/com/android/contacts/compat/PhoneCompat.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+
+import com.android.contacts.ContactsUtils;
+
+public class PhoneCompat {
+
+    // TODO: Use N APIs
+    private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
+            Uri.withAppendedPath(Phone.CONTENT_URI, "filter_enterprise");
+
+    public static Uri getContentFilterUri() {
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            return ENTERPRISE_CONTENT_FILTER_URI;
+        }
+        return Phone.CONTENT_FILTER_URI;
+    }
+}
diff --git a/src/com/android/contacts/compat/PhoneLookupSdkCompat.java b/src/com/android/contacts/compat/PhoneLookupSdkCompat.java
new file mode 100644
index 0000000..770216f
--- /dev/null
+++ b/src/com/android/contacts/compat/PhoneLookupSdkCompat.java
@@ -0,0 +1,23 @@
+/*
+ * 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.compat;
+
+import android.provider.ContactsContract;
+
+public class PhoneLookupSdkCompat {
+    public static final String CONTACT_ID = ContactsContract.PhoneLookup.CONTACT_ID;
+}
diff --git a/src/com/android/contacts/compat/PhoneNumberFormattingTextWatcherCompat.java b/src/com/android/contacts/compat/PhoneNumberFormattingTextWatcherCompat.java
new file mode 100644
index 0000000..46d727e
--- /dev/null
+++ b/src/com/android/contacts/compat/PhoneNumberFormattingTextWatcherCompat.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.telephony.PhoneNumberFormattingTextWatcher;
+
+public class PhoneNumberFormattingTextWatcherCompat {
+    public static PhoneNumberFormattingTextWatcher newInstance(String countryCode) {
+        if (CompatUtils.isLollipopCompatible()) {
+            return new PhoneNumberFormattingTextWatcher(countryCode);
+        }
+        return new PhoneNumberFormattingTextWatcher();
+    }
+}
diff --git a/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java b/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java
new file mode 100644
index 0000000..0399b68
--- /dev/null
+++ b/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java
@@ -0,0 +1,188 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.telephony.PhoneNumberUtils;
+import android.text.Spannable;
+import android.text.TextUtils;
+import android.text.style.TtsSpan;
+
+import com.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
+
+/**
+ * This class contains static utility methods extracted from PhoneNumberUtils, and the
+ * methods were added in API level 23. In this way, we could enable the corresponding functionality
+ * for pre-M devices. We need maintain this class and keep it synced with PhoneNumberUtils.
+ * Another thing to keep in mind is that we use com.google.i18n rather than com.android.i18n in
+ * here, so we need make sure the application behavior is preserved.
+ */
+public class PhoneNumberUtilsCompat {
+    /**
+     * Not instantiable.
+     */
+    private PhoneNumberUtilsCompat() {}
+
+    public static String normalizeNumber(String phoneNumber) {
+        if (CompatUtils.isLollipopCompatible()) {
+            return PhoneNumberUtils.normalizeNumber(phoneNumber);
+        } else {
+            return normalizeNumberInternal(phoneNumber);
+        }
+    }
+
+    /**
+     * Implementation copied from {@link PhoneNumberUtils#normalizeNumber}
+     */
+    private static String normalizeNumberInternal(String phoneNumber) {
+        if (TextUtils.isEmpty(phoneNumber)) {
+            return "";
+        }
+        StringBuilder sb = new StringBuilder();
+        int len = phoneNumber.length();
+        for (int i = 0; i < len; i++) {
+            char c = phoneNumber.charAt(i);
+            // Character.digit() supports ASCII and Unicode digits (fullwidth, Arabic-Indic, etc.)
+            int digit = Character.digit(c, 10);
+            if (digit != -1) {
+                sb.append(digit);
+            } else if (sb.length() == 0 && c == '+') {
+                sb.append(c);
+            } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
+                return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber));
+            }
+        }
+        return sb.toString();
+    }
+
+    public static String formatNumber(
+            String phoneNumber, String phoneNumberE164, String defaultCountryIso) {
+        if (CompatUtils.isLollipopCompatible()) {
+            return PhoneNumberUtils.formatNumber(phoneNumber, phoneNumberE164, defaultCountryIso);
+        } else {
+            // This method was deprecated in API level 21, so it's only used on pre-L SDKs.
+            return PhoneNumberUtils.formatNumber(phoneNumber);
+        }
+    }
+
+    public static CharSequence createTtsSpannable(CharSequence phoneNumber) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return PhoneNumberUtils.createTtsSpannable(phoneNumber);
+        } else {
+            return createTtsSpannableInternal(phoneNumber);
+        }
+    }
+
+    public static TtsSpan createTtsSpan(String phoneNumber) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return PhoneNumberUtils.createTtsSpan(phoneNumber);
+        } else if (CompatUtils.isLollipopCompatible()) {
+            return createTtsSpanLollipop(phoneNumber);
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Copied from {@link PhoneNumberUtils#createTtsSpannable}
+     */
+    private static CharSequence createTtsSpannableInternal(CharSequence phoneNumber) {
+        if (phoneNumber == null) {
+            return null;
+        }
+        Spannable spannable = Spannable.Factory.getInstance().newSpannable(phoneNumber);
+        addTtsSpanInternal(spannable, 0, spannable.length());
+        return spannable;
+    }
+
+    /**
+     * Compat method for addTtsSpan, see {@link PhoneNumberUtils#addTtsSpan}
+     */
+    public static void addTtsSpan(Spannable s, int start, int endExclusive) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            PhoneNumberUtils.addTtsSpan(s, start, endExclusive);
+        } else {
+            addTtsSpanInternal(s, start, endExclusive);
+        }
+    }
+
+    /**
+     * Copied from {@link PhoneNumberUtils#addTtsSpan}
+     */
+    private static void addTtsSpanInternal(Spannable s, int start, int endExclusive) {
+        s.setSpan(createTtsSpan(s.subSequence(start, endExclusive).toString()),
+                start,
+                endExclusive,
+                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+    }
+
+    /**
+     * Copied from {@link PhoneNumberUtils#createTtsSpan}
+     */
+    private static TtsSpan createTtsSpanLollipop(String phoneNumberString) {
+        if (phoneNumberString == null) {
+            return null;
+        }
+
+        // Parse the phone number
+        final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
+        PhoneNumber phoneNumber = null;
+        try {
+            // Don't supply a defaultRegion so this fails for non-international numbers because
+            // we don't want to TalkBalk to read a country code (e.g. +1) if it is not already
+            // present
+            phoneNumber = phoneNumberUtil.parse(phoneNumberString, /* defaultRegion */ null);
+        } catch (NumberParseException ignored) {
+        }
+
+        // Build a telephone tts span
+        final TtsSpan.TelephoneBuilder builder = new TtsSpan.TelephoneBuilder();
+        if (phoneNumber == null) {
+            // Strip separators otherwise TalkBack will be silent
+            // (this behavior was observed with TalkBalk 4.0.2 from their alpha channel)
+            builder.setNumberParts(splitAtNonNumerics(phoneNumberString));
+        } else {
+            if (phoneNumber.hasCountryCode()) {
+                builder.setCountryCode(Integer.toString(phoneNumber.getCountryCode()));
+            }
+            builder.setNumberParts(Long.toString(phoneNumber.getNationalNumber()));
+        }
+        return builder.build();
+    }
+
+
+
+    /**
+     * Split a phone number using spaces, ignoring anything that is not a digit
+     * @param number A {@code CharSequence} before splitting, e.g., "+20(123)-456#"
+     * @return A {@code String} after splitting, e.g., "20 123 456".
+     */
+    private static String splitAtNonNumerics(CharSequence number) {
+        StringBuilder sb = new StringBuilder(number.length());
+        for (int i = 0; i < number.length(); i++) {
+            sb.append(PhoneNumberUtils.isISODigit(number.charAt(i))
+                    ? number.charAt(i)
+                    : " ");
+        }
+        // It is very important to remove extra spaces. At time of writing, any leading or trailing
+        // spaces, or any sequence of more than one space, will confuse TalkBack and cause the TTS
+        // span to be non-functional!
+        return sb.toString().replaceAll(" +", " ").trim();
+    }
+
+}
diff --git a/src/com/android/contacts/compat/PinnedPositionsCompat.java b/src/com/android/contacts/compat/PinnedPositionsCompat.java
index 044ef20..59a48e3 100644
--- a/src/com/android/contacts/compat/PinnedPositionsCompat.java
+++ b/src/com/android/contacts/compat/PinnedPositionsCompat.java
@@ -20,8 +20,6 @@
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.PinnedPositions;
 
-import com.android.contacts.common.compat.CompatUtils;
-
 /**
  * Compatibility class for {@link android.provider.ContactsContract.PinnedPositions}
  */
diff --git a/src/com/android/contacts/compat/ProviderStatusCompat.java b/src/com/android/contacts/compat/ProviderStatusCompat.java
index 2b5c820..35d514e 100644
--- a/src/com/android/contacts/compat/ProviderStatusCompat.java
+++ b/src/com/android/contacts/compat/ProviderStatusCompat.java
@@ -1,3 +1,4 @@
+
 /*
  * Copyright (C) 2015 The Android Open Source Project
  *
@@ -16,12 +17,8 @@
 
 package com.android.contacts.compat;
 
-import android.os.Build;
 import android.provider.ContactsContract.ProviderStatus;
 
-import com.android.contacts.common.compat.CompatUtils;
-import com.android.contacts.common.compat.SdkVersionOverride;
-
 /**
  * This class contains constants from the pre-M version of ContactsContract.ProviderStatus class
  * and also the mappings between pre-M constants and M constants for compatibility purpose,
diff --git a/src/com/android/contacts/compat/SdkVersionOverride.java b/src/com/android/contacts/compat/SdkVersionOverride.java
new file mode 100644
index 0000000..5f50fef
--- /dev/null
+++ b/src/com/android/contacts/compat/SdkVersionOverride.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.os.Build.VERSION;
+
+/**
+ * Class used to override the current sdk version to test specific branches of compatibility
+ * logic. When such branching occurs, use {@link #getSdkVersion(int)} rather than explicitly
+ * calling {@link VERSION#SDK_INT}. This allows the sdk version to be forced to a specific value.
+ */
+public class SdkVersionOverride {
+
+    /**
+     * Flag used to determine if override sdk versions are returned.
+     */
+    private static final boolean ALLOW_OVERRIDE_VERSION = false;
+
+    private SdkVersionOverride() {}
+
+    /**
+     * Gets the sdk version
+     *
+     * @param overrideVersion the version to attempt using
+     * @return overrideVersion if the {@link #ALLOW_OVERRIDE_VERSION} flag is set to {@code true},
+     * otherwise the current version
+     */
+    public static int getSdkVersion(int overrideVersion) {
+        return ALLOW_OVERRIDE_VERSION ? overrideVersion : VERSION.SDK_INT;
+    }
+}
diff --git a/src/com/android/contacts/compat/TelecomManagerUtil.java b/src/com/android/contacts/compat/TelecomManagerUtil.java
new file mode 100644
index 0000000..b6a030a
--- /dev/null
+++ b/src/com/android/contacts/compat/TelecomManagerUtil.java
@@ -0,0 +1,31 @@
+/*
+ * 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.compat;
+
+import android.content.Intent;
+import android.telecom.TelecomManager;
+
+/**
+ * Utility class for TelecomManager
+ */
+public class TelecomManagerUtil {
+    /**
+     * Creates {@link Intent} to launch the activity to manage blocked numbers.
+     */
+    public static Intent createManageBlockedNumbersIntent(TelecomManager tm) {
+        return CompatUtils.isNCompatible() ? tm.createManageBlockedNumbersIntent() : null;
+    }
+}
diff --git a/src/com/android/contacts/compat/TelephonyManagerCompat.java b/src/com/android/contacts/compat/TelephonyManagerCompat.java
new file mode 100644
index 0000000..07523b1
--- /dev/null
+++ b/src/com/android/contacts/compat/TelephonyManagerCompat.java
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.net.Uri;
+import android.support.annotation.Nullable;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.TelephonyManager;
+
+public class TelephonyManagerCompat {
+    public static final String TELEPHONY_MANAGER_CLASS = "android.telephony.TelephonyManager";
+
+    /**
+     * @param telephonyManager The telephony manager instance to use for method calls.
+     * @return true if the current device is "voice capable".
+     * <p>
+     * "Voice capable" means that this device supports circuit-switched
+     * (i.e. voice) phone calls over the telephony network, and is allowed
+     * to display the in-call UI while a cellular voice call is active.
+     * This will be false on "data only" devices which can't make voice
+     * calls and don't support any in-call UI.
+     * <p>
+     * Note: the meaning of this flag is subtly different from the
+     * PackageManager.FEATURE_TELEPHONY system feature, which is available
+     * on any device with a telephony radio, even if the device is
+     * data-only.
+     */
+    public static boolean isVoiceCapable(@Nullable TelephonyManager telephonyManager) {
+        if (telephonyManager == null) {
+            return false;
+        }
+        if (CompatUtils.isLollipopMr1Compatible()
+                || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isVoiceCapable")) {
+            // isVoiceCapable was unhidden in L-MR1
+            return telephonyManager.isVoiceCapable();
+        }
+        final int phoneType = telephonyManager.getPhoneType();
+        return phoneType == TelephonyManager.PHONE_TYPE_CDMA ||
+                phoneType == TelephonyManager.PHONE_TYPE_GSM;
+    }
+
+    /**
+     * Returns the number of phones available.
+     * Returns 1 for Single standby mode (Single SIM functionality)
+     * Returns 2 for Dual standby mode.(Dual SIM functionality)
+     *
+     * Returns 1 if the method or telephonyManager is not available.
+     *
+     * @param telephonyManager The telephony manager instance to use for method calls.
+     */
+    public static int getPhoneCount(@Nullable TelephonyManager telephonyManager) {
+        if (telephonyManager == null) {
+            return 1;
+        }
+        if (CompatUtils.isMarshmallowCompatible() || CompatUtils
+                .isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getPhoneCount")) {
+            return telephonyManager.getPhoneCount();
+        }
+        return 1;
+    }
+
+    /**
+     * Returns the unique device ID of a subscription, for example, the IMEI for
+     * GSM and the MEID for CDMA phones. Return null if device ID is not available.
+     *
+     * <p>Requires Permission:
+     *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
+     *
+     * @param telephonyManager The telephony manager instance to use for method calls.
+     * @param slotId of which deviceID is returned
+     */
+    public static String getDeviceId(@Nullable TelephonyManager telephonyManager, int slotId) {
+        if (telephonyManager == null) {
+            return null;
+        }
+        if (CompatUtils.isMarshmallowCompatible()
+                || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS,
+                        "getDeviceId", Integer.class)) {
+            return telephonyManager.getDeviceId(slotId);
+        }
+        return null;
+    }
+
+    /**
+     * Whether the phone supports TTY mode.
+     *
+     * @param telephonyManager The telephony manager instance to use for method calls.
+     * @return {@code true} if the device supports TTY mode, and {@code false} otherwise.
+     */
+
+    public static boolean isTtyModeSupported(@Nullable TelephonyManager telephonyManager) {
+        if (telephonyManager == null) {
+            return false;
+        }
+        if (CompatUtils.isMarshmallowCompatible()
+                || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isTtyModeSupported")) {
+            return telephonyManager.isTtyModeSupported();
+        }
+        return false;
+    }
+
+    /**
+     * Whether the phone supports hearing aid compatibility.
+     *
+     * @param telephonyManager The telephony manager instance to use for method calls.
+     * @return {@code true} if the device supports hearing aid compatibility, and {@code false}
+     * otherwise.
+     */
+    public static boolean isHearingAidCompatibilitySupported(
+            @Nullable TelephonyManager telephonyManager) {
+        if (telephonyManager == null) {
+            return false;
+        }
+        if (CompatUtils.isMarshmallowCompatible()
+                || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS,
+                        "isHearingAidCompatibilitySupported")) {
+            return telephonyManager.isHearingAidCompatibilitySupported();
+        }
+        return false;
+    }
+
+    /**
+     * Returns the URI for the per-account voicemail ringtone set in Phone settings.
+     *
+     * @param telephonyManager The telephony manager instance to use for method calls.
+     * @param accountHandle The handle for the {@link android.telecom.PhoneAccount} for which to
+     * retrieve the voicemail ringtone.
+     * @return The URI for the ringtone to play when receiving a voicemail from a specific
+     * PhoneAccount.
+     */
+    @Nullable
+    public static Uri getVoicemailRingtoneUri(TelephonyManager telephonyManager,
+            PhoneAccountHandle accountHandle) {
+        if (!CompatUtils.isNCompatible()) {
+            return null;
+        }
+        return TelephonyManagerSdkCompat
+                .getVoicemailRingtoneUri(telephonyManager, accountHandle);
+    }
+
+    /**
+     * Returns whether vibration is set for voicemail notification in Phone settings.
+     *
+     * @param telephonyManager The telephony manager instance to use for method calls.
+     * @param accountHandle The handle for the {@link android.telecom.PhoneAccount} for which to
+     * retrieve the voicemail vibration setting.
+     * @return {@code true} if the vibration is set for this PhoneAccount, {@code false} otherwise.
+     */
+    public static boolean isVoicemailVibrationEnabled(TelephonyManager telephonyManager,
+            PhoneAccountHandle accountHandle) {
+        if (!CompatUtils.isNCompatible()) {
+            return true;
+        }
+        return TelephonyManagerSdkCompat
+                .isVoicemailVibrationEnabled(telephonyManager, accountHandle);
+    }
+}
diff --git a/src/com/android/contacts/compat/TelephonyManagerSdkCompat.java b/src/com/android/contacts/compat/TelephonyManagerSdkCompat.java
new file mode 100644
index 0000000..dec486b
--- /dev/null
+++ b/src/com/android/contacts/compat/TelephonyManagerSdkCompat.java
@@ -0,0 +1,38 @@
+/*
+ * 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.compat;
+
+import android.net.Uri;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.TelephonyManager;
+
+/**
+ * On N and above, this will look up voicemail notification settings from Telephony.
+ */
+public class TelephonyManagerSdkCompat {
+    public static Uri getVoicemailRingtoneUri(TelephonyManager telephonyManager,
+            PhoneAccountHandle accountHandle) {
+        return CompatUtils.isNCompatible()
+                ? telephonyManager.getVoicemailRingtoneUri(accountHandle) : null;
+    }
+
+    public static boolean isVoicemailVibrationEnabled(TelephonyManager telephonyManager,
+            PhoneAccountHandle accountHandle) {
+        return CompatUtils.isNCompatible()
+                ? telephonyManager.isVoicemailVibrationEnabled(accountHandle) : false;
+    }
+}
diff --git a/src/com/android/contacts/compat/TelephonyThreadsCompat.java b/src/com/android/contacts/compat/TelephonyThreadsCompat.java
new file mode 100644
index 0000000..545e185
--- /dev/null
+++ b/src/com/android/contacts/compat/TelephonyThreadsCompat.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Build;
+import android.provider.BaseColumns;
+import android.provider.Telephony;
+import android.text.TextUtils;
+import android.util.Log;
+import android.util.Patterns;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * This class contains static utility methods and variables extracted from Telephony and
+ * SqliteWrapper, and the methods were made visible in API level 23. In this way, we could
+ * enable the corresponding functionality for pre-M devices. We need maintain this class and keep
+ * it synced with Telephony and SqliteWrapper.
+ */
+public class TelephonyThreadsCompat {
+    /**
+     * Not instantiable.
+     */
+    private TelephonyThreadsCompat() {}
+
+    private static final String TAG = "TelephonyThreadsCompat";
+
+    public static long getOrCreateThreadId(Context context, String recipient) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return Telephony.Threads.getOrCreateThreadId(context, recipient);
+        } else {
+            return getOrCreateThreadIdInternal(context, recipient);
+        }
+    }
+
+    // Below is code copied from Telephony and SqliteWrapper
+    /**
+     * Private {@code content://} style URL for this table. Used by
+     * {@link #getOrCreateThreadId(Context, Set)}.
+     */
+    private static final Uri THREAD_ID_CONTENT_URI = Uri.parse("content://mms-sms/threadID");
+
+    private static final String[] ID_PROJECTION = { BaseColumns._ID };
+
+    /**
+     * Regex pattern for names and email addresses.
+     * <ul>
+     *     <li><em>mailbox</em> = {@code name-addr}</li>
+     *     <li><em>name-addr</em> = {@code [display-name] angle-addr}</li>
+     *     <li><em>angle-addr</em> = {@code [CFWS] "<" addr-spec ">" [CFWS]}</li>
+     * </ul>
+     */
+    private static final Pattern NAME_ADDR_EMAIL_PATTERN =
+            Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*");
+
+    /**
+     * Copied from {@link Telephony.Threads#getOrCreateThreadId(Context, String)}
+     */
+    private static long getOrCreateThreadIdInternal(Context context, String recipient) {
+        Set<String> recipients = new HashSet<String>();
+
+        recipients.add(recipient);
+        return getOrCreateThreadIdInternal(context, recipients);
+    }
+
+    /**
+     * Given the recipients list and subject of an unsaved message,
+     * return its thread ID.  If the message starts a new thread,
+     * allocate a new thread ID.  Otherwise, use the appropriate
+     * existing thread ID.
+     *
+     * <p>Find the thread ID of the same set of recipients (in any order,
+     * without any additions). If one is found, return it. Otherwise,
+     * return a unique thread ID.</p>
+     */
+    private static long getOrCreateThreadIdInternal(Context context, Set<String> recipients) {
+        Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon();
+
+        for (String recipient : recipients) {
+            if (isEmailAddress(recipient)) {
+                recipient = extractAddrSpec(recipient);
+            }
+
+            uriBuilder.appendQueryParameter("recipient", recipient);
+        }
+
+        Uri uri = uriBuilder.build();
+
+        Cursor cursor = query(
+                context.getContentResolver(), uri, ID_PROJECTION, null, null, null);
+        if (cursor != null) {
+            try {
+                if (cursor.moveToFirst()) {
+                    return cursor.getLong(0);
+                } else {
+                    Log.e(TAG, "getOrCreateThreadId returned no rows!");
+                }
+            } finally {
+                cursor.close();
+            }
+        }
+
+        Log.e(TAG, "getOrCreateThreadId failed with uri " + uri.toString());
+        throw new IllegalArgumentException("Unable to find or allocate a thread ID.");
+    }
+
+    /**
+     * Copied from {@link SqliteWrapper#query}
+     */
+    private static Cursor query(ContentResolver resolver, Uri uri, String[] projection,
+            String selection, String[] selectionArgs, String sortOrder) {
+        try {
+            return resolver.query(uri, projection, selection, selectionArgs, sortOrder);
+        } catch (Exception e) {
+            Log.e(TAG, "Catch an exception when query: ", e);
+            return null;
+        }
+    }
+
+    /**
+     * Is the specified address an email address?
+     *
+     * @param address the input address to test
+     * @return true if address is an email address; false otherwise.
+     */
+    private static boolean isEmailAddress(String address) {
+        if (TextUtils.isEmpty(address)) {
+            return false;
+        }
+
+        String s = extractAddrSpec(address);
+        Matcher match = Patterns.EMAIL_ADDRESS.matcher(s);
+        return match.matches();
+    }
+
+    /**
+     * Helper method to extract email address from address string.
+     */
+    private static String extractAddrSpec(String address) {
+        Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(address);
+
+        if (match.matches()) {
+            return match.group(2);
+        }
+        return address;
+    }
+}
diff --git a/src/com/android/contacts/compat/telecom/TelecomManagerCompat.java b/src/com/android/contacts/compat/telecom/TelecomManagerCompat.java
new file mode 100644
index 0000000..881c1a4
--- /dev/null
+++ b/src/com/android/contacts/compat/telecom/TelecomManagerCompat.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2015 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.compat.telecom;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.support.annotation.Nullable;
+import android.telecom.TelecomManager;
+
+import com.android.contacts.compat.CompatUtils;
+
+/**
+ * Compatibility class for {@link android.telecom.TelecomManager}.
+ */
+public class TelecomManagerCompat {
+    /**
+     * Places a new outgoing call to the provided address using the system telecom service with
+     * the specified intent.
+     *
+     * @param activity {@link Activity} used to start another activity for the given intent
+     * @param telecomManager the {@link TelecomManager} used to place a call, if possible
+     * @param intent the intent for the call
+     */
+    public static void placeCall(@Nullable Activity activity,
+            @Nullable TelecomManager telecomManager, @Nullable Intent intent) {
+        if (activity == null || telecomManager == null || intent == null) {
+            return;
+        }
+        if (CompatUtils.isMarshmallowCompatible()) {
+            telecomManager.placeCall(intent.getData(), intent.getExtras());
+            return;
+        }
+        activity.startActivityForResult(intent, 0);
+    }
+}
diff --git a/src/com/android/contacts/database/ContactUpdateUtils.java b/src/com/android/contacts/database/ContactUpdateUtils.java
new file mode 100644
index 0000000..2333688
--- /dev/null
+++ b/src/com/android/contacts/database/ContactUpdateUtils.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2012 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.database;
+
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.provider.ContactsContract;
+import android.util.Log;
+
+/**
+ * Static methods to update contact information.
+ */
+public class ContactUpdateUtils {
+
+    private static final String TAG = ContactUpdateUtils.class.getSimpleName();
+
+    public static void setSuperPrimary(Context context, long dataId) {
+        if (dataId == -1) {
+            Log.e(TAG, "Invalid arguments for setSuperPrimary request");
+            return;
+        }
+
+        // Update the primary values in the data record.
+        ContentValues values = new ContentValues(2);
+        values.put(ContactsContract.Data.IS_SUPER_PRIMARY, 1);
+        values.put(ContactsContract.Data.IS_PRIMARY, 1);
+
+        context.getContentResolver().update(
+                ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, dataId),
+                values, null, null);
+    }
+}
diff --git a/src/com/android/contacts/database/EmptyCursor.java b/src/com/android/contacts/database/EmptyCursor.java
new file mode 100644
index 0000000..a6c1760
--- /dev/null
+++ b/src/com/android/contacts/database/EmptyCursor.java
@@ -0,0 +1,84 @@
+/*
+* Copyright (C) 2012 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.database;
+
+import android.database.AbstractCursor;
+import android.database.CursorIndexOutOfBoundsException;
+
+/**
+ * A cursor that is empty.
+ * <p>
+ * If you want an empty cursor, this class is better than a MatrixCursor because it has less
+ * overhead.
+ */
+final public class EmptyCursor extends AbstractCursor {
+
+    private String[] mColumns;
+
+    public EmptyCursor(String[] columns) {
+        this.mColumns = columns;
+    }
+
+    @Override
+    public int getCount() {
+        return 0;
+    }
+
+    @Override
+    public String[] getColumnNames() {
+        return mColumns;
+    }
+
+    @Override
+    public String getString(int column) {
+        throw cursorException();
+    }
+
+    @Override
+    public short getShort(int column) {
+        throw cursorException();
+    }
+
+    @Override
+    public int getInt(int column) {
+        throw cursorException();
+    }
+
+    @Override
+    public long getLong(int column) {
+        throw cursorException();
+    }
+
+    @Override
+    public float getFloat(int column) {
+        throw cursorException();
+    }
+
+    @Override
+    public double getDouble(int column) {
+        throw cursorException();
+    }
+
+    @Override
+    public boolean isNull(int column) {
+        throw cursorException();
+    }
+
+    private CursorIndexOutOfBoundsException cursorException() {
+        return new CursorIndexOutOfBoundsException("Operation not permitted on an empty cursor.");
+    }
+}
diff --git a/src/com/android/contacts/database/NoNullCursorAsyncQueryHandler.java b/src/com/android/contacts/database/NoNullCursorAsyncQueryHandler.java
new file mode 100644
index 0000000..a7ff261
--- /dev/null
+++ b/src/com/android/contacts/database/NoNullCursorAsyncQueryHandler.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2012 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.database;
+
+import android.content.AsyncQueryHandler;
+import android.content.ContentResolver;
+import android.database.Cursor;
+import android.net.Uri;
+
+/**
+ * An {@AsyncQueryHandler} that will never return a null cursor.
+ * <p>
+ * Instead, will return a {@link Cursor} with 0 records.
+ */
+public abstract class NoNullCursorAsyncQueryHandler extends AsyncQueryHandler {
+
+    public NoNullCursorAsyncQueryHandler(ContentResolver cr) {
+        super(cr);
+    }
+
+    @Override
+    public void startQuery(int token, Object cookie, Uri uri, String[] projection, String selection,
+            String[] selectionArgs, String orderBy) {
+        final CookieWithProjection projectionCookie = new CookieWithProjection(cookie, projection);
+        super.startQuery(token, projectionCookie, uri, projection, selection, selectionArgs,
+                orderBy);
+    }
+
+    @Override
+    protected final void onQueryComplete(int token, Object cookie, Cursor cursor) {
+        CookieWithProjection projectionCookie = (CookieWithProjection) cookie;
+
+        super.onQueryComplete(token, projectionCookie.originalCookie, cursor);
+
+        if (cursor == null) {
+            cursor = new EmptyCursor(projectionCookie.projection);
+        }
+        onNotNullableQueryComplete(token, projectionCookie.originalCookie, cursor);
+    }
+
+    protected abstract void onNotNullableQueryComplete(int token, Object cookie, Cursor cursor);
+
+    /**
+     * Class to add projection to an existing cookie.
+     */
+    private static class CookieWithProjection {
+        public final Object originalCookie;
+        public final String[] projection;
+
+        public CookieWithProjection(Object cookie, String[] projection) {
+            this.originalCookie = cookie;
+            this.projection = projection;
+        }
+    }
+}
diff --git a/src/com/android/contacts/database/SimContactDao.java b/src/com/android/contacts/database/SimContactDao.java
new file mode 100644
index 0000000..d6ed88d
--- /dev/null
+++ b/src/com/android/contacts/database/SimContactDao.java
@@ -0,0 +1,110 @@
+/*
+ * 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.database;
+
+import android.content.ContentProviderResult;
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.os.RemoteException;
+import android.support.annotation.VisibleForTesting;
+
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import com.google.common.base.Function;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Provides data access methods for loading contacts from a SIM card and and migrating these
+ * SIM contacts to a CP2 account.
+ */
+public abstract class SimContactDao {
+
+    // Set to true for manual testing on an emulator or phone without a SIM card
+    // DO NOT SUBMIT if set to true
+    private static final boolean USE_FAKE_INSTANCE = false;
+
+    public static final Function<Context, SimContactDao> DEFAULT_FACTORY =
+            new Function<Context, SimContactDao>() {
+                @Override
+                public SimContactDao apply(Context context) {
+                    return USE_FAKE_INSTANCE ?
+                            createDebugInstance(context) :
+                            new SimContactDaoImpl(context);
+                }
+            };
+    private static Function<? super Context, SimContactDao> sInstanceFactory = DEFAULT_FACTORY;
+
+    private static SimContactDao createDebugInstance(Context context) {
+        return new SimContactDaoImpl.DebugImpl(context)
+                .addSimCard(new SimCard("fake-sim-id1", 1, "Fake Carrier",
+                        "Card 1", "15095550101", "us").withContacts(
+                        new SimContact(1, "Sim One", "15095550111", null),
+                        new SimContact(2, "Sim Two", "15095550112", null),
+                        new SimContact(3, "Sim Three", "15095550113", null),
+                        new SimContact(4, "Sim Four", "15095550114", null),
+                        new SimContact(5, "411 & more", "411", null)
+                ))
+                .addSimCard(new SimCard("fake-sim-id2", 2, "Carrier Two",
+                        "Card 2", "15095550102", "us").withContacts(
+                        new SimContact(1, "John Sim", "15095550121", null),
+                        new SimContact(2, "Bob Sim", "15095550122", null),
+                        new SimContact(3, "Mary Sim", "15095550123", null),
+                        new SimContact(4, "Alice Sim", "15095550124", null),
+                        new SimContact(5, "Sim Duplicate", "15095550121", null)
+                ));
+    }
+
+    public static synchronized SimContactDao create(Context context) {
+        return sInstanceFactory.apply(context);
+    }
+
+    /**
+     * Sets the factory function used by {@link SimContactDao#create}
+     */
+    @VisibleForTesting
+    public static synchronized void setFactoryForTest(
+            Function<? super Context, SimContactDao> factory) {
+        sInstanceFactory = factory;
+    }
+
+    public abstract boolean canReadSimContacts();
+
+    public abstract List<SimCard> getSimCards();
+
+    public abstract ArrayList<SimContact> loadContactsForSim(SimCard sim);
+
+    public abstract ContentProviderResult[] importContacts(List<SimContact> contacts,
+            AccountWithDataSet targetAccount)
+            throws RemoteException, OperationApplicationException;
+
+    public abstract void persistSimStates(List<SimCard> simCards);
+
+    public abstract SimCard getSimBySubscriptionId(int subscriptionId);
+
+    public abstract Map<AccountWithDataSet, Set<SimContact>> findAccountsOfExistingSimContacts(
+            List<SimContact> contacts);
+
+    public void persistSimState(SimCard sim) {
+        persistSimStates(Collections.singletonList(sim));
+    }
+}
diff --git a/src/com/android/contacts/database/SimContactDaoImpl.java b/src/com/android/contacts/database/SimContactDaoImpl.java
new file mode 100644
index 0000000..be6b323
--- /dev/null
+++ b/src/com/android/contacts/database/SimContactDaoImpl.java
@@ -0,0 +1,485 @@
+/*
+ * 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.database;
+
+import android.annotation.TargetApi;
+import android.content.ContentProviderOperation;
+import android.content.ContentProviderResult;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.content.pm.PackageManager;
+import android.database.Cursor;
+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 android.support.annotation.VisibleForTesting;
+import android.support.v4.util.ArrayMap;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.util.SparseArray;
+
+import com.android.contacts.R;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+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;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Provides data access methods for loading contacts from a SIM card and and migrating these
+ * SIM contacts to a CP2 account.
+ */
+public class SimContactDaoImpl extends SimContactDao {
+    private static final String TAG = "SimContactDao";
+
+    // Maximum number of SIM contacts to import in a single ContentResolver.applyBatch call.
+    // This is necessary to avoid TransactionTooLargeException when there are a large number of
+    // contacts. This has been tested on Nexus 6 NME70B and is probably be conservative enough
+    // to work on any phone.
+    private static final int IMPORT_MAX_BATCH_SIZE = 300;
+
+    // How many SIM contacts to consider in a single query. This prevents hitting the SQLite
+    // 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;
+
+    public SimContactDaoImpl(Context context) {
+        this(context, context.getContentResolver(),
+                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE));
+    }
+
+    public SimContactDaoImpl(Context context, ContentResolver resolver,
+            TelephonyManager telephonyManager) {
+        mContext = context;
+        mResolver = resolver;
+        mTelephonyManager = telephonyManager;
+    }
+
+    public Context getContext() {
+        return mContext;
+    }
+
+    @Override
+    public boolean canReadSimContacts() {
+        // Require SIM_STATE_READY because the TelephonyManager methods related to SIM require
+        // this state
+        return hasTelephony() && hasPermissions() &&
+                mTelephonyManager.getSimState() == TelephonyManager.SIM_STATE_READY;
+    }
+
+    @Override
+    public List<SimCard> getSimCards() {
+        if (!canReadSimContacts()) {
+            return Collections.emptyList();
+        }
+        final List<SimCard> sims = CompatUtils.isMSIMCompatible() ?
+                getSimCardsFromSubscriptions() :
+                Collections.singletonList(SimCard.create(mTelephonyManager,
+                        mContext.getString(R.string.single_sim_display_label)));
+        return SharedPreferenceUtil.restoreSimStates(mContext, sims);
+    }
+
+    @Override
+    public ArrayList<SimContact> loadContactsForSim(SimCard sim) {
+        if (sim.hasValidSubscriptionId()) {
+            return loadSimContacts(sim.getSubscriptionId());
+        }
+        return loadSimContacts();
+    }
+
+    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);
+    }
+
+    @Override
+    public ContentProviderResult[] importContacts(List<SimContact> contacts,
+            AccountWithDataSet targetAccount)
+            throws RemoteException, OperationApplicationException {
+        if (contacts.size() < IMPORT_MAX_BATCH_SIZE) {
+            return importBatch(contacts, targetAccount);
+        }
+        final List<ContentProviderResult> results = new ArrayList<>();
+        for (int i = 0; i < contacts.size(); i += IMPORT_MAX_BATCH_SIZE) {
+            results.addAll(Arrays.asList(importBatch(
+                    contacts.subList(i, Math.min(contacts.size(), i + IMPORT_MAX_BATCH_SIZE)),
+                    targetAccount)));
+        }
+        return results.toArray(new ContentProviderResult[results.size()]);
+    }
+
+    public void persistSimState(SimCard sim) {
+        SharedPreferenceUtil.persistSimStates(mContext, Collections.singletonList(sim));
+    }
+
+    @Override
+    public void persistSimStates(List<SimCard> simCards) {
+        SharedPreferenceUtil.persistSimStates(mContext, simCards);
+    }
+
+    @Override
+    public SimCard getSimBySubscriptionId(int subscriptionId) {
+        final List<SimCard> sims = SharedPreferenceUtil.restoreSimStates(mContext, getSimCards());
+        if (subscriptionId == SimCard.NO_SUBSCRIPTION_ID && !sims.isEmpty()) {
+            return sims.get(0);
+        }
+        for (SimCard sim : getSimCards()) {
+            if (sim.getSubscriptionId() == subscriptionId) {
+                return sim;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Finds SIM contacts that exist in CP2 and associates the account of the CP2 contact with
+     * the SIM contact
+     */
+    public Map<AccountWithDataSet, Set<SimContact>> findAccountsOfExistingSimContacts(
+            List<SimContact> contacts) {
+        final Map<AccountWithDataSet, Set<SimContact>> result = new ArrayMap<>();
+        for (int i = 0; i < contacts.size(); i += QUERY_MAX_BATCH_SIZE) {
+            findAccountsOfExistingSimContacts(
+                    contacts.subList(i, Math.min(contacts.size(), i + QUERY_MAX_BATCH_SIZE)),
+                    result);
+        }
+        return result;
+    }
+
+    private void findAccountsOfExistingSimContacts(List<SimContact> contacts,
+            Map<AccountWithDataSet, Set<SimContact>> result) {
+        final Map<Long, List<SimContact>> rawContactToSimContact = new HashMap<>();
+        Collections.sort(contacts, SimContact.compareByPhoneThenName());
+
+        final Cursor dataCursor = queryRawContactsForSimContacts(contacts);
+
+        try {
+            while (dataCursor.moveToNext()) {
+                final String number = DataQuery.getPhoneNumber(dataCursor);
+                final String name = DataQuery.getDisplayName(dataCursor);
+
+                final int index = SimContact.findByPhoneAndName(contacts, number, name);
+                if (index < 0) {
+                    continue;
+                }
+                final SimContact contact = contacts.get(index);
+                final long id = DataQuery.getRawContactId(dataCursor);
+                if (!rawContactToSimContact.containsKey(id)) {
+                    rawContactToSimContact.put(id, new ArrayList<SimContact>());
+                }
+                rawContactToSimContact.get(id).add(contact);
+            }
+        } finally {
+            dataCursor.close();
+        }
+
+        final Cursor accountsCursor = queryAccountsOfRawContacts(rawContactToSimContact.keySet());
+        try {
+            while (accountsCursor.moveToNext()) {
+                final AccountWithDataSet account = AccountQuery.getAccount(accountsCursor);
+                final long id = AccountQuery.getId(accountsCursor);
+                if (!result.containsKey(account)) {
+                    result.put(account, new HashSet<SimContact>());
+                }
+                for (SimContact contact : rawContactToSimContact.get(id)) {
+                    result.get(account).add(contact);
+                }
+            }
+        } finally {
+            accountsCursor.close();
+        }
+    }
+
+
+    private ContentProviderResult[] importBatch(List<SimContact> contacts,
+            AccountWithDataSet targetAccount)
+            throws RemoteException, OperationApplicationException {
+        final ArrayList<ContentProviderOperation> ops =
+                createImportOperations(contacts, targetAccount);
+        return mResolver.applyBatch(ContactsContract.AUTHORITY, ops);
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
+    private List<SimCard> getSimCardsFromSubscriptions() {
+        final SubscriptionManager subscriptionManager = (SubscriptionManager)
+                mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
+        final List<SubscriptionInfo> subscriptions = subscriptionManager
+                .getActiveSubscriptionInfoList();
+        final ArrayList<SimCard> result = new ArrayList<>();
+        for (SubscriptionInfo subscriptionInfo : subscriptions) {
+            result.add(SimCard.create(subscriptionInfo));
+        }
+        return result;
+    }
+
+    private List<SimContact> getContactsForSim(SimCard sim) {
+        final List<SimContact> contacts = sim.getContacts();
+        return contacts != null ? contacts : loadContactsForSim(sim);
+    }
+
+    // See b/32831092
+    // Sometimes the SIM contacts provider seems to get stuck if read from multiple threads
+    // concurrently. So we just have a global lock around it to prevent potential issues.
+    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);
+            if (cursor == null) {
+                // Assume null means there are no SIM contacts.
+                return new ArrayList<>(0);
+            }
+
+            try {
+                return loadFromCursor(cursor);
+            } finally {
+                cursor.close();
+            }
+        }
+    }
+
+    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 ArrayList<SimContact> result = new ArrayList<>();
+
+        while (cursor.moveToNext()) {
+            final long id = cursor.getLong(colId);
+            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));
+            // Only include contact if it has some useful data
+            if (contact.hasName() || contact.hasPhone() || contact.hasEmails()) {
+                result.add(contact);
+            }
+        }
+        return result;
+    }
+
+    private Cursor queryRawContactsForSimContacts(List<SimContact> contacts) {
+        final StringBuilder selectionBuilder = new StringBuilder();
+
+        int phoneCount = 0;
+        int nameCount = 0;
+        for (SimContact contact : contacts) {
+            if (contact.hasPhone()) {
+                phoneCount++;
+            } else if (contact.hasName()) {
+                nameCount++;
+            }
+        }
+        List<String> selectionArgs = new ArrayList<>(phoneCount + 1);
+
+        selectionBuilder.append('(');
+        selectionBuilder.append(Data.MIMETYPE).append("=? AND ");
+        selectionArgs.add(Phone.CONTENT_ITEM_TYPE);
+
+        selectionBuilder.append(Phone.NUMBER).append(" IN (")
+                .append(Joiner.on(',').join(Collections.nCopies(phoneCount, '?')))
+                .append(')');
+        for (SimContact contact : contacts) {
+            if (contact.hasPhone()) {
+                selectionArgs.add(contact.getPhone());
+            }
+        }
+        selectionBuilder.append(')');
+
+        if (nameCount > 0) {
+            selectionBuilder.append(" OR (");
+
+            selectionBuilder.append(Data.MIMETYPE).append("=? AND ");
+            selectionArgs.add(StructuredName.CONTENT_ITEM_TYPE);
+
+            selectionBuilder.append(Data.DISPLAY_NAME).append(" IN (")
+                    .append(Joiner.on(',').join(Collections.nCopies(nameCount, '?')))
+                    .append(')');
+            for (SimContact contact : contacts) {
+                if (!contact.hasPhone() && contact.hasName()) {
+                    selectionArgs.add(contact.getName());
+                }
+            }
+            selectionBuilder.append(')');
+        }
+
+        return mResolver.query(Data.CONTENT_URI.buildUpon()
+                        .appendQueryParameter(Data.VISIBLE_CONTACTS_ONLY, "true")
+                        .build(),
+                DataQuery.PROJECTION,
+                selectionBuilder.toString(),
+                selectionArgs.toArray(new String[selectionArgs.size()]),
+                null);
+    }
+
+    private Cursor queryAccountsOfRawContacts(Set<Long> ids) {
+        final StringBuilder selectionBuilder = new StringBuilder();
+
+        final String[] args = new String[ids.size()];
+
+        selectionBuilder.append(RawContacts._ID).append(" IN (")
+                .append(Joiner.on(',').join(Collections.nCopies(args.length, '?')))
+                .append(")");
+        int i = 0;
+        for (long id : ids) {
+            args[i++] = String.valueOf(id);
+        }
+        return mResolver.query(RawContacts.CONTENT_URI,
+                AccountQuery.PROJECTION,
+                selectionBuilder.toString(),
+                args,
+                null);
+    }
+
+    private ArrayList<ContentProviderOperation> createImportOperations(List<SimContact> contacts,
+            AccountWithDataSet targetAccount) {
+        final ArrayList<ContentProviderOperation> ops = new ArrayList<>();
+        for (SimContact contact : contacts) {
+            contact.appendCreateContactOperations(ops, targetAccount);
+        }
+        return ops;
+    }
+
+    private String[] parseEmails(String emails) {
+        return !TextUtils.isEmpty(emails) ? emails.split(",") : null;
+    }
+
+    private boolean hasTelephony() {
+        return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
+    }
+
+    private boolean hasPermissions() {
+        return PermissionsUtil.hasContactsPermissions(mContext) &&
+                PermissionsUtil.hasPhonePermissions(mContext);
+    }
+
+    // TODO remove this class and the USE_FAKE_INSTANCE flag once this code is not under
+    // active development or anytime after 3/1/2017
+    public static class DebugImpl extends SimContactDaoImpl {
+
+        private List<SimCard> mSimCards = new ArrayList<>();
+        private SparseArray<SimCard> mCardsBySubscription = new SparseArray<>();
+
+        public DebugImpl(Context context) {
+            super(context);
+        }
+
+        public DebugImpl addSimCard(SimCard sim) {
+            mSimCards.add(sim);
+            mCardsBySubscription.put(sim.getSubscriptionId(), sim);
+            return this;
+        }
+
+        @Override
+        public List<SimCard> getSimCards() {
+            return SharedPreferenceUtil.restoreSimStates(getContext(), mSimCards);
+        }
+
+        @Override
+        public ArrayList<SimContact> loadContactsForSim(SimCard card) {
+            return new ArrayList<>(card.getContacts());
+        }
+
+        @Override
+        public boolean canReadSimContacts() {
+            return true;
+        }
+    }
+
+    // Query used for detecting existing contacts that may match a SimContact.
+    private static final class DataQuery {
+
+        public static final String[] PROJECTION = new String[] {
+                Data.RAW_CONTACT_ID, Phone.NUMBER, Data.DISPLAY_NAME, Data.MIMETYPE
+        };
+
+        public static final int RAW_CONTACT_ID = 0;
+        public static final int PHONE_NUMBER = 1;
+        public static final int DISPLAY_NAME = 2;
+        public static final int MIMETYPE = 3;
+
+        public static long getRawContactId(Cursor cursor) {
+            return cursor.getLong(RAW_CONTACT_ID);
+        }
+
+        public static String getPhoneNumber(Cursor cursor) {
+            return isPhoneNumber(cursor) ? cursor.getString(PHONE_NUMBER) : null;
+        }
+
+        public static String getDisplayName(Cursor cursor) {
+            return cursor.getString(DISPLAY_NAME);
+        }
+
+        public static boolean isPhoneNumber(Cursor cursor) {
+            return Phone.CONTENT_ITEM_TYPE.equals(cursor.getString(MIMETYPE));
+        }
+    }
+
+    private static final class AccountQuery {
+        public static final String[] PROJECTION = new String[] {
+                RawContacts._ID, RawContacts.ACCOUNT_NAME, RawContacts.ACCOUNT_TYPE,
+                RawContacts.DATA_SET
+        };
+
+        public static long getId(Cursor cursor) {
+            return cursor.getLong(0);
+        }
+
+        public static AccountWithDataSet getAccount(Cursor cursor) {
+            return new AccountWithDataSet(cursor.getString(1), cursor.getString(2),
+                    cursor.getString(3));
+        }
+    }
+}
diff --git a/src/com/android/contacts/datepicker/DatePickerDialog.java b/src/com/android/contacts/datepicker/DatePickerDialog.java
index 1ae1e61..82eed24 100644
--- a/src/com/android/contacts/datepicker/DatePickerDialog.java
+++ b/src/com/android/contacts/datepicker/DatePickerDialog.java
@@ -28,8 +28,8 @@
 import android.view.View;
 
 import com.android.contacts.R;
-import com.android.contacts.common.util.DateUtils;
 import com.android.contacts.datepicker.DatePicker.OnDateChangedListener;
+import com.android.contacts.util.DateUtils;
 
 import java.text.DateFormat;
 import java.util.Calendar;
diff --git a/src/com/android/contacts/detail/ContactDisplayUtils.java b/src/com/android/contacts/detail/ContactDisplayUtils.java
index 85e6026..ef9124a 100644
--- a/src/com/android/contacts/detail/ContactDisplayUtils.java
+++ b/src/com/android/contacts/detail/ContactDisplayUtils.java
@@ -16,16 +16,6 @@
 
 package com.android.contacts.detail;
 
-import com.google.common.collect.Iterables;
-
-import com.android.contacts.R;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.RawContact;
-import com.android.contacts.common.model.dataitem.DataItem;
-import com.android.contacts.common.model.dataitem.OrganizationDataItem;
-import com.android.contacts.common.preference.ContactsPreferences;
-import com.android.contacts.util.MoreMath;
-
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
@@ -41,10 +31,18 @@
 import android.util.Log;
 import android.view.MenuItem;
 import android.view.View;
-import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.TextView;
 
+import com.android.contacts.R;
+import com.android.contacts.model.Contact;
+import com.android.contacts.model.RawContact;
+import com.android.contacts.model.dataitem.DataItem;
+import com.android.contacts.model.dataitem.OrganizationDataItem;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.MoreMath;
+import com.google.common.collect.Iterables;
+
 import java.util.List;
 
 /**
@@ -156,34 +154,14 @@
     /**
      * Sets the starred state of this contact.
      */
-    public static void configureStarredImageView(ImageView starredView, boolean isDirectoryEntry,
-            boolean isUserProfile, boolean isStarred) {
-        // Check if the starred state should be visible
-        if (!isDirectoryEntry && !isUserProfile) {
-            starredView.setVisibility(View.VISIBLE);
-            final int resId = isStarred
-                    ? R.drawable.btn_star_on_normal_holo_light
-                    : R.drawable.btn_star_off_normal_holo_light;
-            starredView.setImageResource(resId);
-            starredView.setTag(isStarred);
-            starredView.setContentDescription(starredView.getResources().getString(
-                    isStarred ? R.string.menu_removeStar : R.string.menu_addStar));
-        } else {
-            starredView.setVisibility(View.GONE);
-        }
-    }
-
-    /**
-     * Sets the starred state of this contact.
-     */
     public static void configureStarredMenuItem(MenuItem starredMenuItem, boolean isDirectoryEntry,
             boolean isUserProfile, boolean isStarred) {
         // Check if the starred state should be visible
         if (!isDirectoryEntry && !isUserProfile) {
             starredMenuItem.setVisible(true);
             final int resId = isStarred
-                    ? R.drawable.ic_star_24dp
-                    : R.drawable.ic_star_outline_24dp;
+                    ? R.drawable.quantum_ic_star_vd_theme_24
+                    : R.drawable.quantum_ic_star_border_vd_theme_24;
             starredMenuItem.setIcon(resId);
             starredMenuItem.setChecked(isStarred);
             starredMenuItem.setTitle(isStarred ? R.string.menu_removeStar : R.string.menu_addStar);
@@ -277,11 +255,15 @@
             try {
                 uri = Uri.parse(source);
             } catch (Throwable e) {
-                Log.d(TAG, "Could not parse image source: " + source);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Could not parse image source: " + source);
+                }
                 return null;
             }
             if (!RES_SCHEME.equals(uri.getScheme())) {
-                Log.d(TAG, "Image source does not correspond to a resource: " + source);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Image source does not correspond to a resource: " + source);
+                }
                 return null;
             }
             // The URI authority represents the package name.
@@ -289,13 +271,17 @@
 
             Resources resources = getResourcesForResourceName(packageName);
             if (resources == null) {
-                Log.d(TAG, "Could not parse image source: " + source);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Could not parse image source: " + source);
+                }
                 return null;
             }
 
             List<String> pathSegments = uri.getPathSegments();
             if (pathSegments.size() != 1) {
-                Log.d(TAG, "Could not parse image source: " + source);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Could not parse image source: " + source);
+                }
                 return null;
             }
 
@@ -304,14 +290,18 @@
 
             if (resId == 0) {
                 // Use the default image icon in this case.
-                Log.d(TAG, "Cannot resolve resource identifier: " + source);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Cannot resolve resource identifier: " + source);
+                }
                 return null;
             }
 
             try {
                 return getResourceDrawable(resources, resId);
             } catch (NotFoundException e) {
-                Log.d(TAG, "Resource not found: " + source, e);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Resource not found: " + source, e);
+                }
                 return null;
             }
         }
@@ -329,7 +319,9 @@
             try {
                 return mPackageManager.getResourcesForApplication(packageName);
             } catch (NameNotFoundException e) {
-                Log.d(TAG, "Could not find package: " + packageName);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Could not find package: " + packageName);
+                }
                 return null;
             }
         }
diff --git a/src/com/android/contacts/detail/PhotoSelectionHandler.java b/src/com/android/contacts/detail/PhotoSelectionHandler.java
index d2e5763..053ee22 100644
--- a/src/com/android/contacts/detail/PhotoSelectionHandler.java
+++ b/src/com/android/contacts/detail/PhotoSelectionHandler.java
@@ -38,12 +38,12 @@
 
 import com.android.contacts.R;
 import com.android.contacts.editor.PhotoActionPopup;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.RawContactDeltaList;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactDeltaList;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountType;
 import com.android.contacts.util.ContactPhotoUtils;
 import com.android.contacts.util.UiClosables;
 
@@ -127,17 +127,16 @@
             switch (requestCode) {
                 // Cropped photo was returned
                 case REQUEST_CROP_PHOTO: {
-                    final Uri uri;
                     if (data != null && data.getData() != null) {
-                        uri = data.getData();
-                    } else {
-                        uri = mCroppedPhotoUri;
+                        final Uri croppedUri = data.getData();
+                        ContactPhotoUtils.savePhotoFromUriToUri(mContext, croppedUri,
+                                mCroppedPhotoUri, /* deleteAfterSave */ false);
                     }
 
                     try {
                         // delete the original temporary photo if it exists
                         mContext.getContentResolver().delete(mTempPhotoUri, null, null);
-                        listener.onPhotoSelected(uri);
+                        listener.onPhotoSelected(mCroppedPhotoUri);
                         return true;
                     } catch (FileNotFoundException e) {
                         return false;
@@ -169,7 +168,9 @@
                                 return false;
                             }
                         } catch (SecurityException e) {
-                            Log.d(TAG, "Did not have read-access to uri : " + uri);
+                            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                                Log.d(TAG, "Did not have read-access to uri : " + uri);
+                            }
                             return false;
                         }
                     }
diff --git a/src/com/android/contacts/dialog/CallSubjectDialog.java b/src/com/android/contacts/dialog/CallSubjectDialog.java
new file mode 100644
index 0000000..036a0f3
--- /dev/null
+++ b/src/com/android/contacts/dialog/CallSubjectDialog.java
@@ -0,0 +1,623 @@
+/*
+ * Copyright (C) 2015 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.dialog;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.net.Uri;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.text.Editable;
+import android.text.InputFilter;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.QuickContactBadge;
+import android.widget.TextView;
+
+import com.android.contacts.CallUtil;
+import com.android.contacts.ContactPhotoManager;
+import com.android.contacts.R;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.compat.PhoneAccountSdkCompat;
+import com.android.contacts.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.util.UriUtils;
+import com.android.phone.common.animation.AnimUtils;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Implements a dialog which prompts for a call subject for an outgoing call.  The dialog includes
+ * a pop up list of historical call subjects.
+ */
+public class CallSubjectDialog extends Activity {
+    private static final String TAG = "CallSubjectDialog";
+    private static final int CALL_SUBJECT_LIMIT = 16;
+    private static final int CALL_SUBJECT_HISTORY_SIZE = 5;
+
+    private static final int REQUEST_SUBJECT = 1001;
+
+    public static final String PREF_KEY_SUBJECT_HISTORY_COUNT = "subject_history_count";
+    public static final String PREF_KEY_SUBJECT_HISTORY_ITEM = "subject_history_item";
+
+    /**
+     * Activity intent argument bundle keys:
+     */
+    public static final String ARG_PHOTO_ID = "PHOTO_ID";
+    public static final String ARG_PHOTO_URI = "PHOTO_URI";
+    public static final String ARG_CONTACT_URI = "CONTACT_URI";
+    public static final String ARG_NAME_OR_NUMBER = "NAME_OR_NUMBER";
+    public static final String ARG_IS_BUSINESS = "IS_BUSINESS";
+    public static final String ARG_NUMBER = "NUMBER";
+    public static final String ARG_DISPLAY_NUMBER = "DISPLAY_NUMBER";
+    public static final String ARG_NUMBER_LABEL = "NUMBER_LABEL";
+    public static final String ARG_PHONE_ACCOUNT_HANDLE = "PHONE_ACCOUNT_HANDLE";
+
+    private int mAnimationDuration;
+    private Charset mMessageEncoding;
+    private View mBackgroundView;
+    private View mDialogView;
+    private QuickContactBadge mContactPhoto;
+    private TextView mNameView;
+    private TextView mNumberView;
+    private EditText mCallSubjectView;
+    private TextView mCharacterLimitView;
+    private View mHistoryButton;
+    private View mSendAndCallButton;
+    private ListView mSubjectList;
+
+    private int mLimit = CALL_SUBJECT_LIMIT;
+    private int mPhotoSize;
+    private SharedPreferences mPrefs;
+    private List<String> mSubjectHistory;
+
+    private long mPhotoID;
+    private Uri mPhotoUri;
+    private Uri mContactUri;
+    private String mNameOrNumber;
+    private boolean mIsBusiness;
+    private String mNumber;
+    private String mDisplayNumber;
+    private String mNumberLabel;
+    private PhoneAccountHandle mPhoneAccountHandle;
+
+    /**
+     * Handles changes to the text in the subject box.  Ensures the character limit is updated.
+     */
+    private final TextWatcher mTextWatcher = new TextWatcher() {
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            // no-op
+        }
+
+        @Override
+        public void onTextChanged(CharSequence s, int start, int before, int count) {
+            updateCharacterLimit();
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+            // no-op
+        }
+    };
+
+    /**
+     * Click listener which handles user clicks outside of the dialog.
+     */
+    private View.OnClickListener mBackgroundListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            finish();
+        }
+    };
+
+    /**
+     * Handles displaying the list of past call subjects.
+     */
+    private final View.OnClickListener mHistoryOnClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            hideSoftKeyboard(CallSubjectDialog.this, mCallSubjectView);
+            showCallHistory(mSubjectList.getVisibility() == View.GONE);
+        }
+    };
+
+    /**
+     * Handles starting a call with a call subject specified.
+     */
+    private final View.OnClickListener mSendAndCallOnClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            String subject = mCallSubjectView.getText().toString();
+            Intent intent = CallUtil.getCallWithSubjectIntent(mNumber, mPhoneAccountHandle,
+                    subject);
+
+            TelecomManagerCompat.placeCall(
+                    CallSubjectDialog.this,
+                    (TelecomManager) getSystemService(Context.TELECOM_SERVICE),
+                    intent);
+
+            mSubjectHistory.add(subject);
+            saveSubjectHistory(mSubjectHistory);
+            finish();
+        }
+    };
+
+    /**
+     * Handles auto-hiding the call history when user clicks in the call subject field to give it
+     * focus.
+     */
+    private final View.OnClickListener mCallSubjectClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            if (mSubjectList.getVisibility() == View.VISIBLE) {
+                showCallHistory(false);
+            }
+        }
+    };
+
+    /**
+     * Item click listener which handles user clicks on the items in the list view.  Dismisses
+     * the activity, returning the subject to the caller and closing the activity with the
+     * {@link Activity#RESULT_OK} result code.
+     */
+    private AdapterView.OnItemClickListener mItemClickListener =
+            new AdapterView.OnItemClickListener() {
+                @Override
+                public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
+                    mCallSubjectView.setText(mSubjectHistory.get(position));
+                    showCallHistory(false);
+                }
+            };
+
+    /**
+     * Show the call subject dialog given a phone number to dial (e.g. from the dialpad).
+     *
+     * @param activity The activity.
+     * @param number The number to dial.
+     */
+    public static void start(Activity activity, String number) {
+        start(activity,
+                -1 /* photoId */,
+                null /* photoUri */,
+                null /* contactUri */,
+                number /* nameOrNumber */,
+                false /* isBusiness */,
+                number /* number */,
+                null /* displayNumber */,
+                null /* numberLabel */,
+                null /* phoneAccountHandle */);
+    }
+
+    /**
+     * Creates a call subject dialog.
+     *
+     * @param activity The current activity.
+     * @param photoId The photo ID (used to populate contact photo).
+     * @param photoUri The photo Uri (used to populate contact photo).
+     * @param contactUri The Contact URI (used so quick contact can be invoked from contact photo).
+     * @param nameOrNumber The name or number of the callee.
+     * @param isBusiness {@code true} if a business is being called (used for contact photo).
+     * @param number The raw number to dial.
+     * @param displayNumber The number to dial, formatted for display.
+     * @param numberLabel The label for the number (if from a contact).
+     * @param phoneAccountHandle The phone account handle.
+     */
+    public static void start(Activity activity, long photoId, Uri photoUri, Uri contactUri,
+            String nameOrNumber, boolean isBusiness, String number, String displayNumber,
+            String numberLabel, PhoneAccountHandle phoneAccountHandle) {
+        Bundle arguments = new Bundle();
+        arguments.putLong(ARG_PHOTO_ID, photoId);
+        arguments.putParcelable(ARG_PHOTO_URI, photoUri);
+        arguments.putParcelable(ARG_CONTACT_URI, contactUri);
+        arguments.putString(ARG_NAME_OR_NUMBER, nameOrNumber);
+        arguments.putBoolean(ARG_IS_BUSINESS, isBusiness);
+        arguments.putString(ARG_NUMBER, number);
+        arguments.putString(ARG_DISPLAY_NUMBER, displayNumber);
+        arguments.putString(ARG_NUMBER_LABEL, numberLabel);
+        arguments.putParcelable(ARG_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
+        start(activity, arguments);
+    }
+
+    /**
+     * Shows the call subject dialog given a Bundle containing all the arguments required to
+     * display the dialog (e.g. from Quick Contacts).
+     *
+     * @param activity The activity.
+     * @param arguments The arguments bundle.
+     */
+    public static void start(Activity activity, Bundle arguments) {
+        Intent intent = new Intent(activity, CallSubjectDialog.class);
+        intent.putExtras(arguments);
+        activity.startActivity(intent);
+    }
+
+    /**
+     * Creates the dialog, inflating the layout and populating it with the name and phone number.
+     *
+     * @param savedInstanceState The last saved instance state of the Fragment,
+     * or null if this is a freshly created Fragment.
+     *
+     * @return Dialog instance.
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mAnimationDuration = getResources().getInteger(R.integer.call_subject_animation_duration);
+        mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
+        mPhotoSize = getResources().getDimensionPixelSize(
+                R.dimen.call_subject_dialog_contact_photo_size);
+        readArguments();
+        loadConfiguration();
+        mSubjectHistory = loadSubjectHistory(mPrefs);
+
+        setContentView(R.layout.dialog_call_subject);
+        getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT,
+                ViewGroup.LayoutParams.MATCH_PARENT);
+        mBackgroundView = findViewById(R.id.call_subject_dialog);
+        mBackgroundView.setOnClickListener(mBackgroundListener);
+        mDialogView = findViewById(R.id.dialog_view);
+        mContactPhoto = (QuickContactBadge) findViewById(R.id.contact_photo);
+        mNameView = (TextView) findViewById(R.id.name);
+        mNumberView = (TextView) findViewById(R.id.number);
+        mCallSubjectView = (EditText) findViewById(R.id.call_subject);
+        mCallSubjectView.addTextChangedListener(mTextWatcher);
+        mCallSubjectView.setOnClickListener(mCallSubjectClickListener);
+        InputFilter[] filters = new InputFilter[1];
+        filters[0] = new InputFilter.LengthFilter(mLimit);
+        mCallSubjectView.setFilters(filters);
+        mCharacterLimitView = (TextView) findViewById(R.id.character_limit);
+        mHistoryButton = findViewById(R.id.history_button);
+        mHistoryButton.setOnClickListener(mHistoryOnClickListener);
+        mHistoryButton.setVisibility(mSubjectHistory.isEmpty() ? View.GONE : View.VISIBLE);
+        mSendAndCallButton = findViewById(R.id.send_and_call_button);
+        mSendAndCallButton.setOnClickListener(mSendAndCallOnClickListener);
+        mSubjectList = (ListView) findViewById(R.id.subject_list);
+        mSubjectList.setOnItemClickListener(mItemClickListener);
+        mSubjectList.setVisibility(View.GONE);
+
+        updateContactInfo();
+        updateCharacterLimit();
+    }
+
+    /**
+     * Populates the contact info fields based on the current contact information.
+     */
+    private void updateContactInfo() {
+        if (mContactUri != null) {
+            setPhoto(mPhotoID, mPhotoUri, mContactUri, mNameOrNumber, mIsBusiness);
+        } else {
+            mContactPhoto.setVisibility(View.GONE);
+        }
+        mNameView.setText(mNameOrNumber);
+        if (!TextUtils.isEmpty(mNumberLabel) && !TextUtils.isEmpty(mDisplayNumber)) {
+            mNumberView.setVisibility(View.VISIBLE);
+            mNumberView.setText(getString(R.string.call_subject_type_and_number,
+                    mNumberLabel, mDisplayNumber));
+        } else {
+            mNumberView.setVisibility(View.GONE);
+            mNumberView.setText(null);
+        }
+    }
+
+    /**
+     * Reads arguments from the fragment arguments and populates the necessary instance variables.
+     */
+    private void readArguments() {
+        Bundle arguments = getIntent().getExtras();
+        if (arguments == null) {
+            Log.e(TAG, "Arguments cannot be null.");
+            return;
+        }
+        mPhotoID = arguments.getLong(ARG_PHOTO_ID);
+        mPhotoUri = arguments.getParcelable(ARG_PHOTO_URI);
+        mContactUri = arguments.getParcelable(ARG_CONTACT_URI);
+        mNameOrNumber = arguments.getString(ARG_NAME_OR_NUMBER);
+        mIsBusiness = arguments.getBoolean(ARG_IS_BUSINESS);
+        mNumber = arguments.getString(ARG_NUMBER);
+        mDisplayNumber = arguments.getString(ARG_DISPLAY_NUMBER);
+        mNumberLabel = arguments.getString(ARG_NUMBER_LABEL);
+        mPhoneAccountHandle = arguments.getParcelable(ARG_PHONE_ACCOUNT_HANDLE);
+    }
+
+    /**
+     * Updates the character limit display, coloring the text RED when the limit is reached or
+     * exceeded.
+     */
+    private void updateCharacterLimit() {
+        String subjectText = mCallSubjectView.getText().toString();
+        final int length;
+
+        // If a message encoding is specified, use that to count bytes in the message.
+        if (mMessageEncoding != null) {
+            length = subjectText.getBytes(mMessageEncoding).length;
+        } else {
+            // No message encoding specified, so just count characters entered.
+            length = subjectText.length();
+        }
+
+        mCharacterLimitView.setText(
+                getString(R.string.call_subject_limit, length, mLimit));
+        if (length >= mLimit) {
+            mCharacterLimitView.setTextColor(getResources().getColor(
+                    R.color.call_subject_limit_exceeded));
+        } else {
+            mCharacterLimitView.setTextColor(getResources().getColor(
+                    R.color.dialtacts_secondary_text_color));
+        }
+    }
+
+    /**
+     * Sets the photo on the quick contact photo.
+     *
+     * @param photoId
+     * @param photoUri
+     * @param contactUri
+     * @param displayName
+     * @param isBusiness
+     */
+    private void setPhoto(long photoId, Uri photoUri, Uri contactUri, String displayName,
+            boolean isBusiness) {
+        mContactPhoto.assignContactUri(contactUri);
+        if (CompatUtils.isLollipopCompatible()) {
+            mContactPhoto.setOverlay(null);
+        }
+
+        int contactType;
+        if (isBusiness) {
+            contactType = ContactPhotoManager.TYPE_BUSINESS;
+        } else {
+            contactType = ContactPhotoManager.TYPE_DEFAULT;
+        }
+
+        String lookupKey = null;
+        if (contactUri != null) {
+            lookupKey = UriUtils.getLookupKeyFromUri(contactUri);
+        }
+
+        ContactPhotoManager.DefaultImageRequest
+                request = new ContactPhotoManager.DefaultImageRequest(
+                displayName, lookupKey, contactType, true /* isCircular */);
+
+        if (photoId == 0 && photoUri != null) {
+            ContactPhotoManager.getInstance(this).loadPhoto(mContactPhoto, photoUri,
+                    mPhotoSize, false /* darkTheme */, true /* isCircular */, request);
+        } else {
+            ContactPhotoManager.getInstance(this).loadThumbnail(mContactPhoto, photoId,
+                    false /* darkTheme */, true /* isCircular */, request);
+        }
+    }
+
+    /**
+     * Loads the subject history from shared preferences.
+     *
+     * @param prefs Shared preferences.
+     * @return List of subject history strings.
+     */
+    public static List<String> loadSubjectHistory(SharedPreferences prefs) {
+        int historySize = prefs.getInt(PREF_KEY_SUBJECT_HISTORY_COUNT, 0);
+        List<String> subjects = new ArrayList(historySize);
+
+        for (int ix = 0 ; ix < historySize; ix++) {
+            String historyItem = prefs.getString(PREF_KEY_SUBJECT_HISTORY_ITEM + ix, null);
+            if (!TextUtils.isEmpty(historyItem)) {
+                subjects.add(historyItem);
+            }
+        }
+
+        return subjects;
+    }
+
+    /**
+     * Saves the subject history list to shared prefs, removing older items so that there are only
+     * {@link #CALL_SUBJECT_HISTORY_SIZE} items at most.
+     *
+     * @param history The history.
+     */
+    private void saveSubjectHistory(List<String> history) {
+        // Remove oldest subject(s).
+        while (history.size() > CALL_SUBJECT_HISTORY_SIZE) {
+            history.remove(0);
+        }
+
+        SharedPreferences.Editor editor = mPrefs.edit();
+        int historyCount = 0;
+        for (String subject : history) {
+            if (!TextUtils.isEmpty(subject)) {
+                editor.putString(PREF_KEY_SUBJECT_HISTORY_ITEM + historyCount,
+                        subject);
+                historyCount++;
+            }
+        }
+        editor.putInt(PREF_KEY_SUBJECT_HISTORY_COUNT, historyCount);
+        editor.apply();
+    }
+
+    /**
+     * Hide software keyboard for the given {@link View}.
+     */
+    public void hideSoftKeyboard(Context context, View view) {
+        InputMethodManager imm = (InputMethodManager) context.getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        if (imm != null) {
+            imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
+        }
+    }
+
+    /**
+     * Hides or shows the call history list.
+     *
+     * @param show {@code true} if the call history should be shown, {@code false} otherwise.
+     */
+    private void showCallHistory(final boolean show) {
+        // Bail early if the visibility has not changed.
+        if ((show && mSubjectList.getVisibility() == View.VISIBLE) ||
+                (!show && mSubjectList.getVisibility() == View.GONE)) {
+            return;
+        }
+
+        final int dialogStartingBottom = mDialogView.getBottom();
+        if (show) {
+            // Showing the subject list; bind the list of history items to the list and show it.
+            ArrayAdapter<String> adapter = new ArrayAdapter<String>(CallSubjectDialog.this,
+                    R.layout.call_subject_history_list_item, mSubjectHistory);
+            mSubjectList.setAdapter(adapter);
+            mSubjectList.setVisibility(View.VISIBLE);
+        } else {
+            // Hiding the subject list.
+            mSubjectList.setVisibility(View.GONE);
+        }
+
+        // Use a ViewTreeObserver so that we can animate between the pre-layout and post-layout
+        // states.
+        final ViewTreeObserver observer = mBackgroundView.getViewTreeObserver();
+        observer.addOnPreDrawListener(
+                new ViewTreeObserver.OnPreDrawListener() {
+                    @Override
+                    public boolean onPreDraw() {
+                        // We don't want to continue getting called.
+                        if (observer.isAlive()) {
+                            observer.removeOnPreDrawListener(this);
+                        }
+
+                        // Determine the amount the dialog has shifted due to the relayout.
+                        int shiftAmount = dialogStartingBottom - mDialogView.getBottom();
+
+                        // If the dialog needs to be shifted, do that now.
+                        if (shiftAmount != 0) {
+                            // Start animation in translated state and animate to translationY 0.
+                            mDialogView.setTranslationY(shiftAmount);
+                            mDialogView.animate()
+                                    .translationY(0)
+                                    .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                                    .setDuration(mAnimationDuration)
+                                    .start();
+                        }
+
+                        if (show) {
+                            // Show the subhect list.
+                            mSubjectList.setTranslationY(mSubjectList.getHeight());
+
+                            mSubjectList.animate()
+                                    .translationY(0)
+                                    .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                                    .setDuration(mAnimationDuration)
+                                    .setListener(new AnimatorListenerAdapter() {
+                                        @Override
+                                        public void onAnimationEnd(Animator animation) {
+                                            super.onAnimationEnd(animation);
+                                        }
+
+                                        @Override
+                                        public void onAnimationStart(Animator animation) {
+                                            super.onAnimationStart(animation);
+                                            mSubjectList.setVisibility(View.VISIBLE);
+                                        }
+                                    })
+                                    .start();
+                        } else {
+                            // Hide the subject list.
+                            mSubjectList.setTranslationY(0);
+
+                            mSubjectList.animate()
+                                    .translationY(mSubjectList.getHeight())
+                                    .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                                    .setDuration(mAnimationDuration)
+                                    .setListener(new AnimatorListenerAdapter() {
+                                        @Override
+                                        public void onAnimationEnd(Animator animation) {
+                                            super.onAnimationEnd(animation);
+                                            mSubjectList.setVisibility(View.GONE);
+                                        }
+
+                                        @Override
+                                        public void onAnimationStart(Animator animation) {
+                                            super.onAnimationStart(animation);
+                                        }
+                                    })
+                                    .start();
+                        }
+                        return true;
+                    }
+                }
+        );
+    }
+
+    /**
+     * Loads the message encoding and maximum message length from the phone account extras for the
+     * current phone account.
+     */
+    private void loadConfiguration() {
+        // Only attempt to load configuration from the phone account extras if the SDK is N or
+        // later.  If we've got a prior SDK the default encoding and message length will suffice.
+        int sdk = android.os.Build.VERSION.SDK_INT;
+        if(sdk <= android.os.Build.VERSION_CODES.M) {
+            return;
+        }
+
+        if (mPhoneAccountHandle == null) {
+            return;
+        }
+
+        TelecomManager telecomManager =
+                (TelecomManager) getSystemService(Context.TELECOM_SERVICE);
+        final PhoneAccount account = telecomManager.getPhoneAccount(mPhoneAccountHandle);
+
+        Bundle phoneAccountExtras = PhoneAccountSdkCompat.getExtras(account);
+        if (phoneAccountExtras == null) {
+            return;
+        }
+
+        // Get limit, if provided; otherwise default to existing value.
+        mLimit = phoneAccountExtras
+                .getInt(PhoneAccountSdkCompat.EXTRA_CALL_SUBJECT_MAX_LENGTH, mLimit);
+
+        // Get charset; default to none (e.g. count characters 1:1).
+        String charsetName = phoneAccountExtras.getString(
+                PhoneAccountSdkCompat.EXTRA_CALL_SUBJECT_CHARACTER_ENCODING);
+
+        if (!TextUtils.isEmpty(charsetName)) {
+            try {
+                mMessageEncoding = Charset.forName(charsetName);
+            } catch (java.nio.charset.UnsupportedCharsetException uce) {
+                // Character set was invalid; log warning and fallback to none.
+                Log.w(TAG, "Invalid charset: " + charsetName);
+                mMessageEncoding = null;
+            }
+        } else {
+            // No character set specified, so count characters 1:1.
+            mMessageEncoding = null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/dialog/ClearFrequentsDialog.java b/src/com/android/contacts/dialog/ClearFrequentsDialog.java
new file mode 100644
index 0000000..7591de3
--- /dev/null
+++ b/src/com/android/contacts/dialog/ClearFrequentsDialog.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2012 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.dialog;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.FragmentManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+
+import com.android.contacts.R;
+import com.android.contacts.util.PermissionsUtil;
+
+/**
+ * Dialog that clears the frequently contacted list after confirming with the user.
+ */
+public class ClearFrequentsDialog extends DialogFragment {
+    /** Preferred way to show this dialog */
+    public static void show(FragmentManager fragmentManager) {
+        ClearFrequentsDialog dialog = new ClearFrequentsDialog();
+        dialog.show(fragmentManager, "clearFrequents");
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final Context context = getActivity().getApplicationContext();
+        final ContentResolver resolver = getActivity().getContentResolver();
+        final OnClickListener okListener = new OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                if (!PermissionsUtil.hasContactsPermissions(context)) {
+                    return;
+                }
+                final IndeterminateProgressDialog progressDialog = IndeterminateProgressDialog.show(
+                        getFragmentManager(), getString(R.string.clearFrequentsProgress_title),
+                        null, 500);
+                final AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        resolver.delete(ContactsContract.DataUsageFeedback.DELETE_USAGE_URI,
+                                null, null);
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void result) {
+                        progressDialog.dismiss();
+                    }
+                };
+                task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+            }
+        };
+        return new AlertDialog.Builder(getActivity())
+            .setTitle(R.string.clearFrequentsConfirmation_title)
+            .setMessage(R.string.clearFrequentsConfirmation)
+            .setNegativeButton(android.R.string.cancel, null)
+            .setPositiveButton(android.R.string.ok, okListener)
+            .setCancelable(true)
+            .create();
+    }
+}
diff --git a/src/com/android/contacts/dialog/IndeterminateProgressDialog.java b/src/com/android/contacts/dialog/IndeterminateProgressDialog.java
new file mode 100644
index 0000000..f0b7eec
--- /dev/null
+++ b/src/com/android/contacts/dialog/IndeterminateProgressDialog.java
@@ -0,0 +1,208 @@
+/*
+ * Copyright (C) 2012 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.dialog;
+
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.FragmentManager;
+import android.app.ProgressDialog;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.os.Handler;
+
+/**
+ * Indeterminate progress dialog wrapped up in a DialogFragment to work even when the device
+ * orientation is changed. Currently, only supports adding a title and/or message to the progress
+ * dialog.  There is an additional parameter of the minimum amount of time to display the progress
+ * dialog even after a call to dismiss the dialog {@link #dismiss()} or
+ * {@link #dismissAllowingStateLoss()}.
+ * <p>
+ * To create and show the progress dialog, use
+ * {@link #show(FragmentManager, CharSequence, CharSequence, long)} and retain the reference to the
+ * IndeterminateProgressDialog instance.
+ * <p>
+ * To dismiss the dialog, use {@link #dismiss()} or {@link #dismissAllowingStateLoss()} on the
+ * instance.  The instance returned by
+ * {@link #show(FragmentManager, CharSequence, CharSequence, long)} is guaranteed to be valid
+ * after a device orientation change because the {@link #setRetainInstance(boolean)} is called
+ * internally with true.
+ */
+public class IndeterminateProgressDialog extends DialogFragment {
+    private static final String TAG = "IndeterminateProgress";
+
+    private CharSequence mTitle;
+    private CharSequence mMessage;
+    private long mMinDisplayTime;
+    private long mShowTime = 0;
+    private boolean mActivityReady = false;
+    private Dialog mOldDialog;
+    private final Handler mHandler = new Handler();
+    private boolean mCalledSuperDismiss = false;
+    private boolean mAllowStateLoss;
+    private final Runnable mDismisser = new Runnable() {
+        @Override
+        public void run() {
+            superDismiss();
+        }
+    };
+
+    /**
+     * Creates and shows an indeterminate progress dialog.  Once the progress dialog is shown, it
+     * will be shown for at least the minDisplayTime (in milliseconds), so that the progress dialog
+     * does not flash in and out to quickly.
+     */
+    public static IndeterminateProgressDialog show(FragmentManager fragmentManager,
+            CharSequence title, CharSequence message, long minDisplayTime) {
+        IndeterminateProgressDialog dialogFragment = new IndeterminateProgressDialog();
+        dialogFragment.mTitle = title;
+        dialogFragment.mMessage = message;
+        dialogFragment.mMinDisplayTime = minDisplayTime;
+        dialogFragment.show(fragmentManager, TAG);
+        dialogFragment.mShowTime = System.currentTimeMillis();
+        dialogFragment.setCancelable(false);
+
+        return dialogFragment;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setRetainInstance(true);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        // Create the progress dialog and set its properties
+        final ProgressDialog dialog = new ProgressDialog(getActivity());
+        dialog.setIndeterminate(true);
+        dialog.setIndeterminateDrawable(null);
+        dialog.setTitle(mTitle);
+        dialog.setMessage(mMessage);
+
+        return dialog;
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        mActivityReady = true;
+
+        // Check if superDismiss() had been called before.  This can happen if in a long
+        // running operation, the user hits the home button and closes this fragment's activity.
+        // Upon returning, we want to dismiss this progress dialog fragment.
+        if (mCalledSuperDismiss) {
+            superDismiss();
+        }
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        mActivityReady = false;
+    }
+
+    /**
+     * There is a race condition that is not handled properly by the DialogFragment class.
+     * If we don't check that this onDismiss callback isn't for the old progress dialog from before
+     * the device orientation change, then this will cause the newly created dialog after the
+     * orientation change to be dismissed immediately.
+     */
+    @Override
+    public void onDismiss(DialogInterface dialog) {
+        if (mOldDialog != null && mOldDialog == dialog) {
+            // This is the callback from the old progress dialog that was already dismissed before
+            // the device orientation change, so just ignore it.
+            return;
+        }
+        super.onDismiss(dialog);
+    }
+
+    /**
+     * Save the old dialog that is about to get destroyed in case this is due to a change
+     * in device orientation.  This will allow us to intercept the callback to
+     * {@link #onDismiss(DialogInterface)} in case the callback happens after a new progress dialog
+     * instance was created.
+     */
+    @Override
+    public void onDestroyView() {
+        mOldDialog = getDialog();
+        super.onDestroyView();
+    }
+
+    /**
+     * This tells the progress dialog to dismiss itself after guaranteeing to be shown for the
+     * specified time in {@link #show(FragmentManager, CharSequence, CharSequence, long)}.
+     */
+    @Override
+    public void dismiss() {
+        mAllowStateLoss = false;
+        dismissWhenReady();
+    }
+
+    /**
+     * This tells the progress dialog to dismiss itself (with state loss) after guaranteeing to be
+     * shown for the specified time in
+     * {@link #show(FragmentManager, CharSequence, CharSequence, long)}.
+     */
+    @Override
+    public void dismissAllowingStateLoss() {
+        mAllowStateLoss = true;
+        dismissWhenReady();
+    }
+
+    /**
+     * Tells the progress dialog to dismiss itself after guaranteeing that the dialog had been
+     * showing for at least the minimum display time as set in
+     * {@link #show(FragmentManager, CharSequence, CharSequence, long)}.
+     */
+    private void dismissWhenReady() {
+        // Compute how long the dialog has been showing
+        final long shownTime = System.currentTimeMillis() - mShowTime;
+        if (shownTime >= mMinDisplayTime) {
+            // dismiss immediately
+            mHandler.post(mDismisser);
+        } else {
+            // Need to wait some more, so compute the amount of time to sleep.
+            final long sleepTime = mMinDisplayTime - shownTime;
+            mHandler.postDelayed(mDismisser, sleepTime);
+        }
+    }
+
+    /**
+     * Actually dismiss the dialog fragment.
+     */
+    private void superDismiss() {
+        mCalledSuperDismiss = true;
+        if (mActivityReady) {
+            // The fragment is either in onStart or past it, but has not gotten to onStop yet.
+            // It is safe to dismiss this dialog fragment.
+            if (mAllowStateLoss) {
+                super.dismissAllowingStateLoss();
+            } else {
+                super.dismiss();
+            }
+        }
+        // If mActivityReady is false, then this dialog fragment has already passed the onStop
+        // state. This can happen if the user hit the 'home' button before this dialog fragment was
+        // dismissed or if there is a configuration change.
+        // In the event that this dialog fragment is re-attached and reaches onStart (e.g.,
+        // because the user returns to this fragment's activity or the device configuration change
+        // has re-attached this dialog fragment), because the mCalledSuperDismiss flag was set to
+        // true, this dialog fragment will be dismissed within onStart.  So, there's nothing else
+        // that needs to be done.
+    }
+}
diff --git a/src/com/android/contacts/drawer/DrawerAdapter.java b/src/com/android/contacts/drawer/DrawerAdapter.java
new file mode 100644
index 0000000..963c125
--- /dev/null
+++ b/src/com/android/contacts/drawer/DrawerAdapter.java
@@ -0,0 +1,447 @@
+/*
+ * Copyright (C) 2017 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.drawer;
+
+import android.app.Activity;
+import android.graphics.PorterDuff;
+import android.support.annotation.LayoutRes;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.PeopleActivity.ContactsView;
+import com.android.contacts.group.GroupListItem;
+import com.android.contacts.list.ContactListFilter;
+import com.android.contacts.model.account.AccountDisplayInfo;
+import com.android.contacts.model.account.AccountDisplayInfoFactory;
+import com.android.contacts.util.SharedPreferenceUtil;
+import com.android.contactsbind.ObjectFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DrawerAdapter extends BaseAdapter {
+
+    private static final int VIEW_TYPE_PRIMARY_ITEM = 0;
+    private static final int VIEW_TYPE_MISC_ITEM = 1;
+    private static final int VIEW_TYPE_HEADER_ITEM = 2;
+    private static final int VIEW_TYPE_GROUP_ENTRY = 3;
+    private static final int VIEW_TYPE_ACCOUNT_ENTRY = 4;
+    private static final int VIEW_TYPE_CREATE_LABEL = 5;
+    private static final int VIEW_TYPE_NAV_SPACER = 6;
+    private static final int VIEW_TYPE_STATUS_SPACER = 7;
+    private static final int VIEW_TYPE_NAV_DIVIDER = 8;
+
+    // This count must be updated if we add more view types.
+    private static final int VIEW_TYPE_COUNT = 9;
+
+    private static final int TYPEFACE_STYLE_ACTIVATE = R.style.DrawerItemTextActiveStyle;
+    private static final int TYPEFACE_STYLE_INACTIVE = R.style.DrawerItemTextInactiveStyle;
+
+    private final Activity mActivity;
+    private final LayoutInflater mInflater;
+    private ContactsView mSelectedView;
+    private boolean mAreGroupWritableAccountsAvailable;
+
+    // The group/account that was last clicked.
+    private long mSelectedGroupId;
+    private ContactListFilter mSelectedAccount;
+
+    // Adapter elements, ordered in this way mItemsList. The ordering is based on:
+    //  [Status bar spacer item]
+    //  [Navigation spacer item]
+    //  [Primary items] (Contacts, Suggestions)
+    //  [Group Header]
+    //  [Groups]
+    //  [Create Label button]
+    //  [Account Header]
+    //  [Accounts]
+    //  [Misc items] (a divider, Settings, Help & Feedback)
+    //  [Navigation spacer item]
+    private StatusBarSpacerItem mStatusBarSpacerItem = null;
+    private NavSpacerItem mNavSpacerItem = null;
+    private List<PrimaryItem> mPrimaryItems = new ArrayList<>();
+    private HeaderItem mGroupHeader = null;
+    private List<GroupEntryItem> mGroupEntries = new ArrayList<>();
+    private BaseDrawerItem mCreateLabelButton = null;
+    private HeaderItem mAccountHeader = null;
+    private List<AccountEntryItem> mAccountEntries = new ArrayList<>();
+    private List<BaseDrawerItem> mMiscItems = new ArrayList<>();
+
+    private List<BaseDrawerItem> mItemsList = new ArrayList<>();
+    private AccountDisplayInfoFactory mAccountDisplayFactory;
+
+    public DrawerAdapter(Activity activity) {
+        super();
+        mInflater = LayoutInflater.from(activity);
+        mActivity = activity;
+        initializeDrawerMenuItems();
+    }
+
+    private void initializeDrawerMenuItems() {
+        // Spacer item for dividing sections in drawer
+        mNavSpacerItem = new NavSpacerItem(R.id.nav_drawer_spacer);
+        mStatusBarSpacerItem = new StatusBarSpacerItem(R.id.nav_status_bar_spacer);
+        // Primary items
+        mPrimaryItems.add(new PrimaryItem(R.id.nav_all_contacts, R.string.contactsList,
+                R.drawable.quantum_ic_account_circle_vd_theme_24, ContactsView.ALL_CONTACTS));
+        if (ObjectFactory.getAssistantFragment() != null) {
+            mPrimaryItems.add(new PrimaryItem(R.id.nav_assistant, R.string.menu_assistant,
+                    R.drawable.quantum_ic_assistant_vd_theme_24, ContactsView.ASSISTANT));
+        }
+        // Group Header
+        mGroupHeader = new HeaderItem(R.id.nav_groups, R.string.menu_title_groups);
+        // Account Header
+        mAccountHeader = new HeaderItem(R.id.nav_filters, R.string.menu_title_filters);
+        // Create Label Button
+        mCreateLabelButton = new BaseDrawerItem(VIEW_TYPE_CREATE_LABEL, R.id.nav_create_label,
+                R.string.menu_new_group_action_bar, R.drawable.quantum_ic_add_vd_theme_24);
+        // Misc Items
+        mMiscItems.add(new DividerItem());
+        mMiscItems.add(new MiscItem(R.id.nav_settings, R.string.menu_settings,
+                R.drawable.quantum_ic_settings_vd_theme_24));
+        mMiscItems.add(new MiscItem(R.id.nav_help, R.string.menu_help,
+                R.drawable.quantum_ic_help_vd_theme_24));
+        rebuildItemsList();
+    }
+
+    private void rebuildItemsList() {
+        mItemsList.clear();
+        mItemsList.add(mStatusBarSpacerItem);
+        mItemsList.add(mNavSpacerItem);
+        mItemsList.addAll(mPrimaryItems);
+        if (mAreGroupWritableAccountsAvailable || !mGroupEntries.isEmpty()) {
+            mItemsList.add(mGroupHeader);
+        }
+        mItemsList.addAll(mGroupEntries);
+        if (mAreGroupWritableAccountsAvailable) {
+            mItemsList.add(mCreateLabelButton);
+        }
+        if (mAccountEntries.size() > 0) {
+            mItemsList.add(mAccountHeader);
+        }
+        mItemsList.addAll(mAccountEntries);
+        mItemsList.addAll(mMiscItems);
+        mItemsList.add(mNavSpacerItem);
+    }
+
+    public void setGroups(List<GroupListItem> groupListItems, boolean areGroupWritable) {
+        final ArrayList<GroupEntryItem> groupEntries = new ArrayList<GroupEntryItem>();
+        for (GroupListItem group : groupListItems) {
+            groupEntries.add(new GroupEntryItem(R.id.nav_group, group));
+        }
+        mGroupEntries.clear();
+        mGroupEntries.addAll(groupEntries);
+        mAreGroupWritableAccountsAvailable = areGroupWritable;
+        notifyChangeAndRebuildList();
+    }
+
+    public void setAccounts(List<ContactListFilter> accountFilterItems) {
+        ArrayList<AccountEntryItem> accountItems = new ArrayList<AccountEntryItem>();
+        for (ContactListFilter filter : accountFilterItems) {
+            accountItems.add(new AccountEntryItem(R.id.nav_filter, filter));
+        }
+        mAccountDisplayFactory = AccountDisplayInfoFactory.fromListFilters(mActivity,
+                accountFilterItems);
+        mAccountEntries.clear();
+        mAccountEntries.addAll(accountItems);
+        // TODO investigate performance of calling notifyDataSetChanged
+        notifyChangeAndRebuildList();
+    }
+
+    @Override
+    public int getCount() {
+        return  mItemsList.size();
+    }
+
+    public BaseDrawerItem getItem(int position) {
+        return mItemsList.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return getItem(position).id;
+    }
+
+    @Override
+    public int getViewTypeCount() {
+        return VIEW_TYPE_COUNT;
+    }
+
+    @Override
+    public View getView(int position, View view, ViewGroup viewGroup) {
+        final BaseDrawerItem drawerItem = getItem(position);
+        switch (drawerItem.viewType) {
+            case VIEW_TYPE_STATUS_SPACER:
+                return getBaseItemView(R.layout.nav_header_main, view, viewGroup);
+            case VIEW_TYPE_PRIMARY_ITEM:
+                return getPrimaryItemView((PrimaryItem) drawerItem, view, viewGroup);
+            case VIEW_TYPE_HEADER_ITEM:
+                return getHeaderItemView((HeaderItem) drawerItem, view, viewGroup);
+            case VIEW_TYPE_CREATE_LABEL:
+                return getDrawerItemView(drawerItem, view, viewGroup);
+            case VIEW_TYPE_GROUP_ENTRY:
+                return getGroupEntryView((GroupEntryItem) drawerItem, view, viewGroup);
+            case VIEW_TYPE_ACCOUNT_ENTRY:
+                return getAccountItemView((AccountEntryItem) drawerItem, view, viewGroup);
+            case VIEW_TYPE_MISC_ITEM:
+                return getDrawerItemView(drawerItem, view, viewGroup);
+            case VIEW_TYPE_NAV_SPACER:
+                return getBaseItemView(R.layout.nav_drawer_spacer, view, viewGroup);
+            case VIEW_TYPE_NAV_DIVIDER:
+                return getBaseItemView(R.layout.drawer_horizontal_divider, view, viewGroup);
+        }
+        throw new IllegalStateException("Unknown drawer item " + drawerItem);
+    }
+
+    private View getBaseItemView(@LayoutRes int layoutResID, View result,ViewGroup parent) {
+        if (result == null) {
+            result = mInflater.inflate(layoutResID, parent, false);
+        }
+        return result;
+    }
+
+    private View getPrimaryItemView(PrimaryItem item, View result, ViewGroup parent) {
+        if (result == null) {
+            result = mInflater.inflate(R.layout.drawer_primary_item, parent, false);
+        }
+        final TextView titleView = (TextView) result.findViewById(R.id.title);
+        titleView.setText(item.text);
+        final ImageView iconView = (ImageView) result.findViewById(R.id.icon);
+        iconView.setImageResource(item.icon);
+        final TextView newBadge = (TextView) result.findViewById(R.id.assistant_new_badge);
+        final boolean showWelcomeBadge = !SharedPreferenceUtil.isWelcomeCardDismissed(mActivity);
+        newBadge.setVisibility(item.contactsView == ContactsView.ASSISTANT && showWelcomeBadge
+                ? View.VISIBLE : View.GONE);
+        result.setActivated(item.contactsView == mSelectedView);
+        updateSelectedStatus(titleView, iconView, item.contactsView == mSelectedView);
+        result.setId(item.id);
+        return result;
+    }
+
+    private View getHeaderItemView(HeaderItem item, View result, ViewGroup parent) {
+        if (result == null) {
+            result = mInflater.inflate(R.layout.drawer_header, parent, false);
+        }
+        final TextView textView = (TextView) result.findViewById(R.id.title);
+        textView.setText(item.text);
+        result.setId(item.id);
+        return result;
+    }
+
+    private View getGroupEntryView(GroupEntryItem item, View result, ViewGroup parent) {
+        if (result == null || !(result.getTag() instanceof GroupEntryItem)) {
+            result = mInflater.inflate(R.layout.drawer_item, parent, false);
+            result.setId(item.id);
+        }
+
+        final GroupListItem groupListItem = item.group;
+        final TextView title = (TextView) result.findViewById(R.id.title);
+        title.setText(groupListItem.getTitle());
+        final ImageView icon = (ImageView) result.findViewById(R.id.icon);
+        icon.setImageResource(R.drawable.quantum_ic_label_vd_theme_24);
+        final boolean activated = groupListItem.getGroupId() == mSelectedGroupId &&
+                mSelectedView == ContactsView.GROUP_VIEW;
+        updateSelectedStatus(title, icon, activated);
+        result.setActivated(activated);
+
+        result.setTag(groupListItem);
+        result.setContentDescription(
+                mActivity.getString(R.string.navigation_drawer_label, groupListItem.getTitle()));
+        return result;
+    }
+
+    private View getAccountItemView(AccountEntryItem item, View result, ViewGroup parent) {
+        if (result == null || !(result.getTag() instanceof ContactListFilter)) {
+            result = mInflater.inflate(R.layout.drawer_item, parent, false);
+            result.setId(item.id);
+        }
+        final ContactListFilter account = item.account;
+        final TextView textView = ((TextView) result.findViewById(R.id.title));
+        textView.setText(account.accountName);
+        final boolean activated = account.equals(mSelectedAccount)
+                && mSelectedView == ContactsView.ACCOUNT_VIEW;
+        textView.setTextAppearance(mActivity, activated
+                ? TYPEFACE_STYLE_ACTIVATE : TYPEFACE_STYLE_INACTIVE);
+
+        final ImageView icon = (ImageView) result.findViewById(R.id.icon);
+        final AccountDisplayInfo displayableAccount =
+                mAccountDisplayFactory.getAccountDisplayInfoFor(item.account);
+        icon.setScaleType(ImageView.ScaleType.FIT_CENTER);
+        icon.setImageDrawable(displayableAccount.getIcon());
+
+        result.setTag(account);
+        result.setActivated(activated);
+        result.setContentDescription(
+                displayableAccount.getTypeLabel() + " " + item.account.accountName);
+        return result;
+    }
+
+    private View getDrawerItemView(BaseDrawerItem item, View result, ViewGroup parent) {
+        if (result == null) {
+            result = mInflater.inflate(R.layout.drawer_item, parent, false);
+        }
+
+        final TextView textView = (TextView) result.findViewById(R.id.title);
+        textView.setText(item.text);
+        final ImageView iconView = (ImageView) result.findViewById(R.id.icon);
+        iconView.setImageResource(item.icon);
+        result.setId(item.id);
+        updateSelectedStatus(textView, iconView, false);
+        return result;
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return getItem(position).viewType;
+    }
+
+    private void updateSelectedStatus(TextView textView, ImageView imageView, boolean activated) {
+        textView.setTextAppearance(mActivity, activated
+                ? TYPEFACE_STYLE_ACTIVATE : TYPEFACE_STYLE_INACTIVE);
+        if (activated) {
+            imageView.setColorFilter(mActivity.getResources().getColor(R.color.primary_color),
+                    PorterDuff.Mode.SRC_ATOP);
+        } else {
+            imageView.clearColorFilter();
+        }
+    }
+
+    private void notifyChangeAndRebuildList() {
+        rebuildItemsList();
+        notifyDataSetChanged();
+    }
+
+    public void setSelectedContactsView(ContactsView contactsView) {
+        if (mSelectedView == contactsView) {
+            return;
+        }
+        mSelectedView = contactsView;
+        notifyChangeAndRebuildList();
+    }
+
+
+    public void setSelectedGroupId(long groupId) {
+        if (mSelectedGroupId == groupId) {
+            return;
+        }
+        mSelectedGroupId = groupId;
+        notifyChangeAndRebuildList();
+    }
+
+    public long getSelectedGroupId() {
+        return mSelectedGroupId;
+    }
+
+    public void setSelectedAccount(ContactListFilter filter) {
+        if (mSelectedAccount == filter) {
+            return;
+        }
+        mSelectedAccount = filter;
+        notifyChangeAndRebuildList();
+    }
+
+    public ContactListFilter getSelectedAccount() {
+        return mSelectedAccount;
+    }
+
+    public static class BaseDrawerItem {
+        public final int viewType;
+        public final int id;
+        public final int text;
+        public final int icon;
+
+        public BaseDrawerItem(int adapterViewType, int viewId, int textResId, int iconResId) {
+            viewType = adapterViewType;
+            id = viewId;
+            text = textResId;
+            icon = iconResId;
+        }
+    }
+
+    // Navigation drawer item for Contacts or Suggestions view which contains a name, an icon and
+    // contacts view.
+    public static class PrimaryItem extends BaseDrawerItem {
+        public final ContactsView contactsView;
+
+        public PrimaryItem(int id, int pageName, int iconId, ContactsView contactsView) {
+            super(VIEW_TYPE_PRIMARY_ITEM, id, pageName, iconId);
+            this.contactsView = contactsView;
+        }
+    }
+
+    // Navigation drawer item for Settings, help and feedback, etc.
+    public static class MiscItem extends BaseDrawerItem {
+        public MiscItem(int id, int textId, int iconId) {
+            super(VIEW_TYPE_MISC_ITEM, id, textId, iconId);
+        }
+    }
+
+    // Header for a list of sub-items in the drawer.
+    public static class HeaderItem extends BaseDrawerItem {
+        public HeaderItem(int id, int textId) {
+            super(VIEW_TYPE_HEADER_ITEM, id, textId, /* iconResId */ 0);
+        }
+    }
+
+
+    // Navigation drawer item for status bar spacer item to take up the height of status bar in the
+    // drawer.
+    public static class StatusBarSpacerItem extends BaseDrawerItem {
+        public StatusBarSpacerItem(int id) {
+            super(VIEW_TYPE_STATUS_SPACER, id, /* textResId */ 0, /* iconResId */ 0);
+        }
+    }
+
+    // Navigation drawer item for spacer item for dividing sections in the drawer.
+    public static class NavSpacerItem extends BaseDrawerItem {
+        public NavSpacerItem(int id) {
+            super(VIEW_TYPE_NAV_SPACER, id, /* textResId */ 0, /* iconResId */ 0);
+        }
+    }
+
+    // Divider for drawing a line between sections in the drawer.
+    public static class DividerItem extends BaseDrawerItem {
+        public DividerItem() {
+            super(VIEW_TYPE_NAV_DIVIDER, /* id */ 0, /* textResId */ 0, /* iconResId */ 0);
+        }
+    }
+
+    // Navigation drawer item for a group.
+    public static class GroupEntryItem extends BaseDrawerItem {
+        private final GroupListItem group;
+
+        public GroupEntryItem(int id, GroupListItem group) {
+            super(VIEW_TYPE_GROUP_ENTRY, id, /* textResId */ 0, /* iconResId */ 0);
+            this.group = group;
+        }
+    }
+
+    // Navigation drawer item for an account.
+    public static class AccountEntryItem extends BaseDrawerItem {
+        private final ContactListFilter account;
+
+        public AccountEntryItem(int id, ContactListFilter account) {
+            super(VIEW_TYPE_ACCOUNT_ENTRY, id, /* textResId */ 0, /* iconResId */ 0);
+            this.account = account;
+        }
+    }
+}
diff --git a/src/com/android/contacts/drawer/DrawerFragment.java b/src/com/android/contacts/drawer/DrawerFragment.java
new file mode 100644
index 0000000..0aaa262
--- /dev/null
+++ b/src/com/android/contacts/drawer/DrawerFragment.java
@@ -0,0 +1,313 @@
+/*
+ * Copyright (C) 2017 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.drawer;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.LoaderManager;
+import android.content.CursorLoader;
+import android.content.Loader;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowInsets;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.FrameLayout;
+import android.widget.ListView;
+
+import com.android.contacts.GroupListLoader;
+import com.android.contacts.R;
+import com.android.contacts.activities.PeopleActivity.ContactsView;
+import com.android.contacts.group.GroupListItem;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.list.ContactListFilter;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountsLoader;
+import com.android.contacts.model.account.AccountsLoader.AccountsListener;
+import com.android.contacts.util.AccountFilterUtil;
+import com.android.contactsbind.ObjectFactory;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+public class DrawerFragment extends Fragment implements AccountsListener {
+
+    private static final int LOADER_GROUPS = 1;
+    private static final int LOADER_ACCOUNTS = 2;
+    private static final int LOADER_FILTERS = 3;
+
+    private static final String KEY_CONTACTS_VIEW = "contactsView";
+    private static final String KEY_SELECTED_GROUP = "selectedGroup";
+    private static final String KEY_SELECTED_ACCOUNT = "selectedAccount";
+
+    private WelcomeContentObserver mObserver;
+    private ListView mDrawerListView;
+    private DrawerAdapter mDrawerAdapter;
+    private ContactsView mCurrentContactsView;
+    private DrawerFragmentListener mListener;
+    // Transparent scrim drawn at the top of the drawer fragment.
+    private ScrimDrawable mScrimDrawable;
+
+    private List<GroupListItem> mGroupListItems = new ArrayList<>();
+    private boolean mGroupsLoaded;
+    private boolean mAccountsLoaded;
+    private boolean mHasGroupWritableAccounts;
+
+    private final class WelcomeContentObserver extends ContentObserver {
+        private WelcomeContentObserver(Handler handler) {
+            super(handler);
+        }
+
+        @Override
+        public void onChange(boolean selfChange) {
+            mDrawerAdapter.notifyDataSetChanged();
+        }
+    }
+
+    private final LoaderManager.LoaderCallbacks<List<ContactListFilter>> mFiltersLoaderListener =
+            new LoaderManager.LoaderCallbacks<List<ContactListFilter>> () {
+                @Override
+                public Loader<List<ContactListFilter>> onCreateLoader(int id, Bundle args) {
+                    return new AccountFilterUtil.FilterLoader(getActivity());
+                }
+
+                @Override
+                public void onLoadFinished(
+                        Loader<List<ContactListFilter>> loader, List<ContactListFilter> data) {
+                    if (data != null) {
+                        if (data == null || data.size() < 2) {
+                            mDrawerAdapter.setAccounts(new ArrayList<ContactListFilter>());
+                        } else {
+                            mDrawerAdapter.setAccounts(data);
+                        }
+                    }
+                }
+
+                public void onLoaderReset(Loader<List<ContactListFilter>> loader) {
+                }
+            };
+
+    private final LoaderManager.LoaderCallbacks<Cursor> mGroupListLoaderListener =
+            new LoaderManager.LoaderCallbacks<Cursor>() {
+                @Override
+                public CursorLoader onCreateLoader(int id, Bundle args) {
+                    return new GroupListLoader(getActivity());
+                }
+
+                @Override
+                public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+                    if (data == null) {
+                        return;
+                    }
+                    mGroupListItems.clear();
+                    for (int i = 0; i < data.getCount(); i++) {
+                        if (data.moveToNext()) {
+                            mGroupListItems.add(GroupUtil.getGroupListItem(data, i));
+                        }
+                    }
+                    mGroupsLoaded = true;
+                    notifyIfReady();
+                }
+
+                public void onLoaderReset(Loader<Cursor> loader) {
+                }
+            };
+
+    public DrawerFragment() {}
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        if (activity instanceof DrawerFragmentListener) {
+            mListener = (DrawerFragmentListener) activity;
+        } else {
+            throw new IllegalArgumentException(
+                    "Activity must implement " + DrawerFragmentListener.class.getName());
+        }
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final View contentView = inflater.inflate(R.layout.drawer_fragment, null);
+        mDrawerListView = (ListView) contentView.findViewById(R.id.list);
+        mDrawerAdapter = new DrawerAdapter(getActivity());
+        mDrawerAdapter.setSelectedContactsView(mCurrentContactsView);
+        loadGroupsAndFilters();
+        mDrawerListView.setAdapter(mDrawerAdapter);
+        mDrawerListView.setOnItemClickListener(mOnDrawerItemClickListener);
+
+        if (savedInstanceState != null) {
+            final ContactsView contactsView =
+                    ContactsView.values()[savedInstanceState.getInt(KEY_CONTACTS_VIEW)];
+            setNavigationItemChecked(contactsView);
+            final long groupId = savedInstanceState.getLong(KEY_SELECTED_GROUP);
+            mDrawerAdapter.setSelectedGroupId(groupId);
+            final ContactListFilter filter = savedInstanceState.getParcelable(KEY_SELECTED_ACCOUNT);
+            mDrawerAdapter.setSelectedAccount(filter);
+        } else {
+            setNavigationItemChecked(ContactsView.ALL_CONTACTS);
+        }
+
+        final FrameLayout root = (FrameLayout) contentView.findViewById(R.id.drawer_fragment_root);
+        root.setFitsSystemWindows(true);
+        root.setOnApplyWindowInsetsListener(new WindowInsetsListener());
+        root.setForegroundGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL);
+
+        mScrimDrawable = new ScrimDrawable();
+        root.setForeground(mScrimDrawable);
+
+        return contentView;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        // todo double check on the new Handler() thing
+        final Uri uri = ObjectFactory.getWelcomeUri();
+        if (uri != null) {
+            mObserver = new WelcomeContentObserver(new Handler());
+            getActivity().getContentResolver().registerContentObserver(uri, false, mObserver);
+        }
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putInt(KEY_CONTACTS_VIEW, mCurrentContactsView.ordinal());
+        outState.putLong(KEY_SELECTED_GROUP, mDrawerAdapter.getSelectedGroupId());
+        outState.putParcelable(KEY_SELECTED_ACCOUNT, mDrawerAdapter.getSelectedAccount());
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        if (mObserver != null) {
+            getActivity().getContentResolver().unregisterContentObserver(mObserver);
+        }
+    }
+
+    private void loadGroupsAndFilters() {
+        getLoaderManager().initLoader(LOADER_FILTERS, null, mFiltersLoaderListener);
+        AccountsLoader.loadAccounts(this, LOADER_ACCOUNTS,
+                AccountTypeManager.AccountFilter.GROUPS_WRITABLE);
+        getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupListLoaderListener);
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+        mListener = null;
+    }
+
+    private final OnItemClickListener mOnDrawerItemClickListener = new OnItemClickListener() {
+        @Override
+        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
+            if (mListener == null) {
+                return;
+            }
+            final int viewId = v.getId();
+            if (viewId == R.id.nav_all_contacts) {
+                mListener.onContactsViewSelected(ContactsView.ALL_CONTACTS);
+                setNavigationItemChecked(ContactsView.ALL_CONTACTS);
+            } else if (viewId == R.id.nav_assistant) {
+                mListener.onContactsViewSelected(ContactsView.ASSISTANT);
+                setNavigationItemChecked(ContactsView.ASSISTANT);
+            } else if (viewId == R.id.nav_group) {
+                final GroupListItem groupListItem = (GroupListItem) v.getTag();
+                mListener.onGroupViewSelected(groupListItem);
+                mDrawerAdapter.setSelectedGroupId(groupListItem.getGroupId());
+                setNavigationItemChecked(ContactsView.GROUP_VIEW);
+            } else if (viewId == R.id.nav_filter) {
+                final ContactListFilter filter = (ContactListFilter) v.getTag();
+                mListener.onAccountViewSelected(filter);
+                mDrawerAdapter.setSelectedAccount(filter);
+                setNavigationItemChecked(ContactsView.ACCOUNT_VIEW);
+            } else if (viewId == R.id.nav_create_label) {
+                mListener.onCreateLabelButtonClicked();
+            } else if (viewId == R.id.nav_settings) {
+                mListener.onOpenSettings();
+            } else if (viewId == R.id.nav_help) {
+                mListener.onLaunchHelpFeedback();
+            } else {
+                return;
+            }
+            mListener.onDrawerItemClicked();
+        }
+    };
+
+    public void setNavigationItemChecked(ContactsView contactsView) {
+        mCurrentContactsView = contactsView;
+        if (mDrawerAdapter != null) {
+            mDrawerAdapter.setSelectedContactsView(contactsView);
+        }
+    }
+
+    public void updateGroupMenu(long groupId) {
+        mDrawerAdapter.setSelectedGroupId(groupId);
+        setNavigationItemChecked(ContactsView.GROUP_VIEW);
+    }
+
+    @Override
+    public void onAccountsLoaded(List<AccountInfo> accounts) {
+        mHasGroupWritableAccounts = !accounts.isEmpty();
+        mAccountsLoaded = true;
+        notifyIfReady();
+    }
+
+    private void notifyIfReady() {
+        if (mAccountsLoaded && mGroupsLoaded) {
+            final Iterator<GroupListItem> iterator = mGroupListItems.iterator();
+            while (iterator.hasNext()) {
+                final GroupListItem groupListItem = iterator.next();
+                if (GroupUtil.isEmptyFFCGroup(groupListItem)) {
+                    iterator.remove();
+                }
+            }
+            mDrawerAdapter.setGroups(mGroupListItems, mHasGroupWritableAccounts);
+        }
+    }
+
+    public interface DrawerFragmentListener {
+        void onDrawerItemClicked();
+        void onContactsViewSelected(ContactsView mode);
+        void onGroupViewSelected(GroupListItem groupListItem);
+        void onAccountViewSelected(ContactListFilter filter);
+        void onCreateLabelButtonClicked();
+        void onOpenSettings();
+        void onLaunchHelpFeedback();
+    }
+
+    private class WindowInsetsListener implements View.OnApplyWindowInsetsListener {
+        @Override
+        public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
+            final int insetTop = insets.getSystemWindowInsetTop();
+            // set height of the scrim
+            mScrimDrawable.setIntrinsicHeight(insetTop);
+            return insets;
+        }
+    }
+}
diff --git a/src/com/android/contacts/drawer/ScrimDrawable.java b/src/com/android/contacts/drawer/ScrimDrawable.java
new file mode 100644
index 0000000..5663b1b
--- /dev/null
+++ b/src/com/android/contacts/drawer/ScrimDrawable.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2017 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.drawer;
+
+import android.graphics.drawable.ColorDrawable;
+
+/**
+ * Create a simple scrim that covers just the status bar area when necessary.
+ * Copied from com.google.android.gms.people.accountswitcherview.ScrimDrawable;
+ */
+public class ScrimDrawable extends ColorDrawable {
+    public static final int DEFAULT_COLOR = 0x33000000;
+
+    /**
+     * Default constructor. Uses default color.
+     */
+    public ScrimDrawable() {
+        this(DEFAULT_COLOR);
+    }
+
+    /**
+     * Set a color if necessary.
+     *
+     * @param color
+     */
+    public ScrimDrawable(int color) {
+        super(color);
+    }
+
+    private int mIntrinsicHeight;
+
+    @Override
+    public int getIntrinsicHeight() {
+        return mIntrinsicHeight;
+    }
+
+    public void setIntrinsicHeight(int intrinsicHeight) {
+        mIntrinsicHeight = intrinsicHeight;
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/editor/AccountHeaderPresenter.java b/src/com/android/contacts/editor/AccountHeaderPresenter.java
new file mode 100644
index 0000000..4e4f35a
--- /dev/null
+++ b/src/com/android/contacts/editor/AccountHeaderPresenter.java
@@ -0,0 +1,218 @@
+/*
+ * 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.editor;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.StringRes;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ImageView;
+import android.widget.ListPopupWindow;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.util.AccountsListAdapter;
+import com.android.contacts.util.UiClosables;
+
+import java.util.List;
+
+/**
+ * Controls the display of an account selector or header.
+ *
+ * TODO: This was mostly copied from {@link RawContactEditorView}. The code in that class
+ * should probably be modified to use this instead of leaving it duplicated.
+ */
+public class AccountHeaderPresenter {
+
+    private static final String KEY_SELECTED_ACCOUNT = "accountHeaderSelectedAccount";
+
+    public interface Observer {
+        void onChange(AccountHeaderPresenter sender);
+
+        public static final Observer NONE = new Observer() {
+            @Override
+            public void onChange(AccountHeaderPresenter sender) {
+            }
+        };
+    }
+
+    private final Context mContext;
+
+    private List<AccountInfo> mAccounts;
+    private AccountWithDataSet mCurrentAccount;
+
+    // Account header
+    private final View mAccountHeaderContainer;
+    private TextView mAccountHeaderType;
+    private TextView mAccountHeaderName;
+    private ImageView mAccountHeaderIcon;
+    private ImageView mAccountHeaderExpanderIcon;
+
+    // This would be different if the account was readonly
+    @StringRes
+    private int mSelectorTitle = R.string.editor_account_selector_title;
+
+    private Observer mObserver = Observer.NONE;
+
+    public AccountHeaderPresenter(View container) {
+        mContext = container.getContext();
+        mAccountHeaderContainer = container;
+        // mAccountHeaderType is optional and may not be in the container view in which case
+        // the variable will be null
+        mAccountHeaderType = (TextView) container.findViewById(R.id.account_type);
+        mAccountHeaderName = (TextView) container.findViewById(R.id.account_name);
+        mAccountHeaderIcon = (ImageView) container.findViewById(R.id.account_type_icon);
+        mAccountHeaderExpanderIcon = (ImageView) container.findViewById(R.id.account_expander_icon);
+    }
+
+    public void setObserver(Observer observer) {
+        mObserver = observer;
+    }
+
+    public void setCurrentAccount(@NonNull AccountWithDataSet account) {
+        if (mCurrentAccount != null && mCurrentAccount.equals(account)) {
+            return;
+        }
+        mCurrentAccount = account;
+        if (mObserver != null) {
+            mObserver.onChange(this);
+        }
+        updateDisplayedAccount();
+    }
+
+    public void setAccounts(List<AccountInfo> accounts) {
+        mAccounts = accounts;
+        // If the current account hasn't been set or it has been removed just use the first
+        // account.
+        if (mCurrentAccount == null || !AccountInfo.contains(mAccounts, mCurrentAccount)) {
+            mCurrentAccount = mAccounts.isEmpty() ? null : accounts.get(0).getAccount();
+            mObserver.onChange(this);
+        }
+        updateDisplayedAccount();
+    }
+
+    public AccountWithDataSet getCurrentAccount() {
+        return mCurrentAccount != null ? mCurrentAccount : null;
+    }
+
+    public void onSaveInstanceState(Bundle outState) {
+        outState.putParcelable(KEY_SELECTED_ACCOUNT, mCurrentAccount);
+    }
+
+    public void onRestoreInstanceState(Bundle savedInstanceState) {
+        if (savedInstanceState == null) return;
+        if (mCurrentAccount == null) {
+            mCurrentAccount = savedInstanceState.getParcelable(KEY_SELECTED_ACCOUNT);
+        }
+        updateDisplayedAccount();
+    }
+
+    private void updateDisplayedAccount() {
+        mAccountHeaderContainer.setVisibility(View.GONE);
+        if (mCurrentAccount == null) return;
+        if (mAccounts == null) return;
+
+        final String accountLabel = getAccountLabel(mCurrentAccount);
+
+        if (mAccounts.size() > 1) {
+            addAccountSelector(accountLabel);
+        } else {
+            addAccountHeader(accountLabel);
+        }
+    }
+
+    private void addAccountHeader(String accountLabel) {
+        mAccountHeaderContainer.setVisibility(View.VISIBLE);
+
+        // Set the account name
+        mAccountHeaderName.setVisibility(View.VISIBLE);
+        mAccountHeaderName.setText(accountLabel);
+
+        // Set the account type
+        final String selectorTitle = mContext.getResources().getString(mSelectorTitle);
+        if (mAccountHeaderType != null) {
+            mAccountHeaderType.setText(selectorTitle);
+        }
+
+        final AccountInfo accountInfo = AccountInfo.getAccount(mAccounts, mCurrentAccount);
+
+        // Set the icon
+        mAccountHeaderIcon.setImageDrawable(accountInfo.getIcon());
+
+        // Set the content description
+        mAccountHeaderContainer.setContentDescription(
+                EditorUiUtils.getAccountInfoContentDescription(accountLabel,
+                        selectorTitle));
+    }
+
+    private void addAccountSelector(CharSequence nameLabel) {
+        final View.OnClickListener onClickListener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                showPopup();
+            }
+        };
+        setUpAccountSelector(nameLabel.toString(), onClickListener);
+    }
+
+    private void showPopup() {
+        final ListPopupWindow popup = new ListPopupWindow(mContext);
+        final AccountsListAdapter adapter =
+                new AccountsListAdapter(mContext, mAccounts, mCurrentAccount);
+        popup.setWidth(mAccountHeaderContainer.getWidth());
+        popup.setAnchorView(mAccountHeaderContainer);
+        popup.setAdapter(adapter);
+        popup.setModal(true);
+        popup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
+        popup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position,
+                    long id) {
+                UiClosables.closeQuietly(popup);
+                final AccountWithDataSet newAccount = adapter.getItem(position);
+                setCurrentAccount(newAccount);
+                // Make sure the new selection will be announced once it's changed
+                mAccountHeaderContainer.setAccessibilityLiveRegion(
+                        View.ACCESSIBILITY_LIVE_REGION_POLITE);
+            }
+        });
+        mAccountHeaderContainer.post(new Runnable() {
+            @Override
+            public void run() {
+                popup.show();
+            }
+        });
+    }
+
+    private void setUpAccountSelector(String nameLabel, View.OnClickListener listener) {
+        addAccountHeader(nameLabel);
+        // Add handlers for choosing another account to save to.
+        mAccountHeaderExpanderIcon.setVisibility(View.VISIBLE);
+        // Add the listener to the icon so that it will be announced by talkback as a clickable
+        // element
+        mAccountHeaderExpanderIcon.setOnClickListener(listener);
+        mAccountHeaderContainer.setOnClickListener(listener);
+    }
+
+    private String getAccountLabel(AccountWithDataSet account) {
+        final AccountInfo accountInfo = AccountInfo.getAccount(mAccounts, account);
+        return accountInfo != null ? accountInfo.getNameLabel().toString() : null;
+    }
+}
diff --git a/src/com/android/contacts/editor/AggregationSuggestionEngine.java b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
index 6447ff4..adc20d2 100644
--- a/src/com/android/contacts/editor/AggregationSuggestionEngine.java
+++ b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
@@ -38,8 +38,11 @@
 import android.provider.ContactsContract.RawContacts;
 import android.text.TextUtils;
 
-import com.android.contacts.common.model.ValuesDelta;
 import com.android.contacts.compat.AggregationSuggestionsCompat;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import com.google.common.base.MoreObjects;
 import com.google.common.collect.Lists;
 
 import java.util.ArrayList;
@@ -50,42 +53,32 @@
  * Runs asynchronous queries to obtain aggregation suggestions in the as-you-type mode.
  */
 public class AggregationSuggestionEngine extends HandlerThread {
-    public static final String TAG = "AggregationSuggestionEngine";
-
     public interface Listener {
         void onAggregationSuggestionChange();
     }
 
-    public static final class RawContact {
-        public long rawContactId;
-        public String accountType;
-        public String accountName;
-        public String dataSet;
-
-        @Override
-        public String toString() {
-            return "ID: " + rawContactId + " account: " + accountType + "/" + accountName
-                    + " dataSet: " + dataSet;
-        }
-    }
-
     public static final class Suggestion {
-
         public long contactId;
-        public long photoId;
-        public String lookupKey;
+        public String contactLookupKey;
+        public long rawContactId;
+        public long photoId = -1;
         public String name;
         public String phoneNumber;
         public String emailAddress;
         public String nickname;
-        public byte[] photo;
-        public List<RawContact> rawContacts;
 
         @Override
         public String toString() {
-            return "ID: " + contactId + " rawContacts: " + rawContacts + " name: " + name
-            + " phone: " + phoneNumber + " email: " + emailAddress + " nickname: "
-            + nickname + (photo != null ? " [has photo]" : "");
+            return MoreObjects.toStringHelper(Suggestion.class)
+                    .add("contactId", contactId)
+                    .add("contactLookupKey", contactLookupKey)
+                    .add("rawContactId", rawContactId)
+                    .add("photoId", photoId)
+                    .add("name", name)
+                    .add("phoneNumber", phoneNumber)
+                    .add("emailAddress", emailAddress)
+                    .add("nickname", nickname)
+                    .toString();
         }
     }
 
@@ -106,19 +99,19 @@
 
     private static final long SUGGESTION_LOOKUP_DELAY_MILLIS = 300;
 
+    private static final int SUGGESTIONS_LIMIT = 3;
+
     private final Context mContext;
 
     private long[] mSuggestedContactIds = new long[0];
-
     private Handler mMainHandler;
     private Handler mHandler;
     private long mContactId;
+    private AccountWithDataSet mAccountFilter;
     private Listener mListener;
     private Cursor mDataCursor;
     private ContentObserver mContentObserver;
     private Uri mSuggestionsUri;
-    private int mSuggestionsLimit = 3;
-    private boolean mPruneInvisibleContacts = true;
 
     public AggregationSuggestionEngine(Context context) {
         super("AggregationSuggestions", Process.THREAD_PRIORITY_BACKGROUND);
@@ -150,12 +143,8 @@
         }
     }
 
-    public void setSuggestionsLimit(int suggestionsLimit) {
-        mSuggestionsLimit = suggestionsLimit;
-    }
-
-    public void setPruneInvisibleContacts (boolean pruneInvisibleContacts) {
-        mPruneInvisibleContacts = pruneInvisibleContacts;
+    public void setAccountFilter(AccountWithDataSet account) {
+        mAccountFilter = account;
     }
 
     public void setListener(Listener listener) {
@@ -216,10 +205,6 @@
         appendValue(nameSb, values, StructuredName.FAMILY_NAME);
         appendValue(nameSb, values, StructuredName.SUFFIX);
 
-        if (nameSb.length() == 0) {
-            appendValue(nameSb, values, StructuredName.DISPLAY_NAME);
-        }
-
         StringBuilder phoneticNameSb = new StringBuilder();
         appendValue(phoneticNameSb, values, StructuredName.PHONETIC_FAMILY_NAME);
         appendValue(phoneticNameSb, values, StructuredName.PHONETIC_MIDDLE_NAME);
@@ -232,7 +217,7 @@
         // AggregationSuggestions.Builder() became visible in API level 23, so use it if applicable.
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
             final Builder uriBuilder = new AggregationSuggestions.Builder()
-                    .setLimit(mSuggestionsLimit)
+                    .setLimit(SUGGESTIONS_LIMIT)
                     .setContactId(mContactId);
             if (nameSb.length() != 0) {
                 uriBuilder.addNameParameter(nameSb.toString());
@@ -246,7 +231,7 @@
         // For previous SDKs, use the backup plan.
         final AggregationSuggestionsCompat.Builder uriBuilder =
                 new AggregationSuggestionsCompat.Builder()
-                .setLimit(mSuggestionsLimit)
+                .setLimit(SUGGESTIONS_LIMIT)
                 .setContactId(mContactId);
         if (nameSb.length() != 0) {
             uriBuilder.addNameParameter(nameSb.toString());
@@ -282,42 +267,36 @@
 
         public static final String SELECTION_PREFIX =
                 Data.MIMETYPE + " IN ('"
-                    + Phone.CONTENT_ITEM_TYPE + "','"
-                    + Email.CONTENT_ITEM_TYPE + "','"
-                    + StructuredName.CONTENT_ITEM_TYPE + "','"
-                    + Nickname.CONTENT_ITEM_TYPE + "','"
-                    + Photo.CONTENT_ITEM_TYPE + "')"
-                + " AND " + Data.CONTACT_ID + " IN (";
+                        + Phone.CONTENT_ITEM_TYPE + "','"
+                        + Email.CONTENT_ITEM_TYPE + "','"
+                        + StructuredName.CONTENT_ITEM_TYPE + "','"
+                        + Nickname.CONTENT_ITEM_TYPE + "','"
+                        + Photo.CONTENT_ITEM_TYPE + "')"
+                        + " AND " + Data.CONTACT_ID + " IN (";
 
         public static final String[] COLUMNS = {
-            Data._ID,
-            Data.CONTACT_ID,
-            Data.LOOKUP_KEY,
-            Data.PHOTO_ID,
-            Data.DISPLAY_NAME,
-            Data.RAW_CONTACT_ID,
-            Data.MIMETYPE,
-            Data.DATA1,
-            Data.IS_SUPER_PRIMARY,
-            Photo.PHOTO,
-            RawContacts.ACCOUNT_TYPE,
-            RawContacts.ACCOUNT_NAME,
-            RawContacts.DATA_SET
+                Data.CONTACT_ID,
+                Data.LOOKUP_KEY,
+                Data.RAW_CONTACT_ID,
+                Data.MIMETYPE,
+                Data.DATA1,
+                Data.IS_SUPER_PRIMARY,
+                RawContacts.ACCOUNT_TYPE,
+                RawContacts.ACCOUNT_NAME,
+                RawContacts.DATA_SET,
+                Contacts.Photo._ID
         };
 
-        public static final int ID = 0;
-        public static final int CONTACT_ID = 1;
-        public static final int LOOKUP_KEY = 2;
-        public static final int PHOTO_ID = 3;
-        public static final int DISPLAY_NAME = 4;
-        public static final int RAW_CONTACT_ID = 5;
-        public static final int MIMETYPE = 6;
-        public static final int DATA1 = 7;
-        public static final int IS_SUPERPRIMARY = 8;
-        public static final int PHOTO = 9;
-        public static final int ACCOUNT_TYPE = 10;
-        public static final int ACCOUNT_NAME = 11;
-        public static final int DATA_SET = 12;
+        public static final int CONTACT_ID = 0;
+        public static final int LOOKUP_KEY = 1;
+        public static final int RAW_CONTACT_ID = 2;
+        public static final int MIMETYPE = 3;
+        public static final int DATA1 = 4;
+        public static final int IS_SUPERPRIMARY = 5;
+        public static final int ACCOUNT_TYPE = 6;
+        public static final int ACCOUNT_NAME = 7;
+        public static final int DATA_SET = 8;
+        public static final int PHOTO_ID = 9;
     }
 
     private void loadAggregationSuggestions(Uri uri) {
@@ -346,12 +325,12 @@
                 sb.append(mSuggestedContactIds[i]);
             }
             sb.append(')');
-            sb.toString();
 
             Cursor dataCursor = contentResolver.query(Data.CONTENT_URI,
                     DataQuery.COLUMNS, sb.toString(), null, Data.CONTACT_ID);
             if (dataCursor != null) {
-                mMainHandler.sendMessage(mMainHandler.obtainMessage(MESSAGE_DATA_CURSOR, dataCursor));
+                mMainHandler.sendMessage(
+                        mMainHandler.obtainMessage(MESSAGE_DATA_CURSOR, dataCursor));
             }
         } finally {
             cursor.close();
@@ -364,8 +343,7 @@
         final ArrayList<Long> newIds = new ArrayList<Long>(count);
         while (cursor.moveToNext()) {
             final long contactId = cursor.getLong(0);
-            if (!changed &&
-                    Arrays.binarySearch(mSuggestedContactIds, contactId) < 0) {
+            if (!changed && Arrays.binarySearch(mSuggestedContactIds, contactId) < 0) {
                 changed = true;
             }
             newIds.add(contactId);
@@ -398,99 +376,64 @@
     }
 
     public List<Suggestion> getSuggestions() {
-        final ArrayList<Long> visibleContacts = new ArrayList<>();
-        if (mPruneInvisibleContacts) {
-            final Uri contactFilterUri = Data.CONTENT_URI.buildUpon()
-                    .appendQueryParameter(Data.VISIBLE_CONTACTS_ONLY, "true")
-                    .build();
-            final ContentResolver contentResolver = mContext.getContentResolver();
-            final Cursor contactCursor = contentResolver.query(contactFilterUri,
-                    new String[]{Data.CONTACT_ID}, null, null, null);
-            try {
-                if (contactCursor != null) {
-                    while (contactCursor.moveToNext()) {
-                        final long contactId = contactCursor.getLong(0);
-                        visibleContacts.add(contactId);
-                    }
-                }
-            } finally {
-                contactCursor.close();
-            }
+        final ArrayList<Suggestion> list = Lists.newArrayList();
 
-        }
-
-        ArrayList<Suggestion> list = Lists.newArrayList();
-        if (mDataCursor != null) {
+        if (mDataCursor != null && mAccountFilter != null) {
             Suggestion suggestion = null;
-            long currentContactId = -1;
+            long currentRawContactId = -1;
             mDataCursor.moveToPosition(-1);
             while (mDataCursor.moveToNext()) {
-                long contactId = mDataCursor.getLong(DataQuery.CONTACT_ID);
-                if (mPruneInvisibleContacts && !visibleContacts.contains(contactId)) {
-                    continue;
-                }
-                if (contactId != currentContactId) {
+                final long rawContactId = mDataCursor.getLong(DataQuery.RAW_CONTACT_ID);
+                if (rawContactId != currentRawContactId) {
                     suggestion = new Suggestion();
-                    suggestion.contactId = contactId;
-                    suggestion.name = mDataCursor.getString(DataQuery.DISPLAY_NAME);
-                    suggestion.lookupKey = mDataCursor.getString(DataQuery.LOOKUP_KEY);
-                    suggestion.rawContacts = Lists.newArrayList();
-                    list.add(suggestion);
-                    currentContactId = contactId;
+                    suggestion.rawContactId = rawContactId;
+                    suggestion.contactId = mDataCursor.getLong(DataQuery.CONTACT_ID);
+                    suggestion.contactLookupKey = mDataCursor.getString(DataQuery.LOOKUP_KEY);
+                    final String accountName = mDataCursor.getString(DataQuery.ACCOUNT_NAME);
+                    final String accountType = mDataCursor.getString(DataQuery.ACCOUNT_TYPE);
+                    final String dataSet = mDataCursor.getString(DataQuery.DATA_SET);
+                    final AccountWithDataSet account = new AccountWithDataSet(
+                            accountName, accountType, dataSet);
+                    if (mAccountFilter.equals(account)) {
+                        list.add(suggestion);
+                    }
+                    currentRawContactId = rawContactId;
                 }
 
-                long rawContactId = mDataCursor.getLong(DataQuery.RAW_CONTACT_ID);
-                if (!containsRawContact(suggestion, rawContactId)) {
-                    RawContact rawContact = new RawContact();
-                    rawContact.rawContactId = rawContactId;
-                    rawContact.accountName = mDataCursor.getString(DataQuery.ACCOUNT_NAME);
-                    rawContact.accountType = mDataCursor.getString(DataQuery.ACCOUNT_TYPE);
-                    rawContact.dataSet = mDataCursor.getString(DataQuery.DATA_SET);
-                    suggestion.rawContacts.add(rawContact);
-                }
-
-                String mimetype = mDataCursor.getString(DataQuery.MIMETYPE);
+                final String mimetype = mDataCursor.getString(DataQuery.MIMETYPE);
                 if (Phone.CONTENT_ITEM_TYPE.equals(mimetype)) {
-                    String data = mDataCursor.getString(DataQuery.DATA1);
+                    final String data = mDataCursor.getString(DataQuery.DATA1);
                     int superprimary = mDataCursor.getInt(DataQuery.IS_SUPERPRIMARY);
                     if (!TextUtils.isEmpty(data)
                             && (superprimary != 0 || suggestion.phoneNumber == null)) {
                         suggestion.phoneNumber = data;
                     }
                 } else if (Email.CONTENT_ITEM_TYPE.equals(mimetype)) {
-                    String data = mDataCursor.getString(DataQuery.DATA1);
+                    final String data = mDataCursor.getString(DataQuery.DATA1);
                     int superprimary = mDataCursor.getInt(DataQuery.IS_SUPERPRIMARY);
                     if (!TextUtils.isEmpty(data)
                             && (superprimary != 0 || suggestion.emailAddress == null)) {
                         suggestion.emailAddress = data;
                     }
                 } else if (Nickname.CONTENT_ITEM_TYPE.equals(mimetype)) {
-                    String data = mDataCursor.getString(DataQuery.DATA1);
+                    final String data = mDataCursor.getString(DataQuery.DATA1);
                     if (!TextUtils.isEmpty(data)) {
                         suggestion.nickname = data;
                     }
+                } else if (StructuredName.CONTENT_ITEM_TYPE.equals(mimetype)) {
+                    // DATA1 stores the display name for the raw contact.
+                    final String data = mDataCursor.getString(DataQuery.DATA1);
+                    if (!TextUtils.isEmpty(data) && suggestion.name == null) {
+                        suggestion.name = data;
+                    }
                 } else if (Photo.CONTENT_ITEM_TYPE.equals(mimetype)) {
-                    long dataId = mDataCursor.getLong(DataQuery.ID);
-                    long photoId = mDataCursor.getLong(DataQuery.PHOTO_ID);
-                    if (dataId == photoId && !mDataCursor.isNull(DataQuery.PHOTO)) {
-                        suggestion.photo = mDataCursor.getBlob(DataQuery.PHOTO);
-                        suggestion.photoId = photoId;
+                    final Long id = mDataCursor.getLong(DataQuery.PHOTO_ID);
+                    if (suggestion.photoId == -1) {
+                        suggestion.photoId = id;
                     }
                 }
             }
         }
         return list;
     }
-
-    public boolean containsRawContact(Suggestion suggestion, long rawContactId) {
-        if (suggestion.rawContacts != null) {
-            int count = suggestion.rawContacts.size();
-            for (int i = 0; i < count; i++) {
-                if (suggestion.rawContacts.get(i).rawContactId == rawContactId) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
 }
diff --git a/src/com/android/contacts/editor/AggregationSuggestionView.java b/src/com/android/contacts/editor/AggregationSuggestionView.java
index 5a3da00..d391c40 100644
--- a/src/com/android/contacts/editor/AggregationSuggestionView.java
+++ b/src/com/android/contacts/editor/AggregationSuggestionView.java
@@ -17,7 +17,6 @@
 package com.android.contacts.editor;
 
 import android.content.Context;
-import android.graphics.BitmapFactory;
 import android.net.Uri;
 import android.provider.ContactsContract.Contacts;
 import android.text.TextUtils;
@@ -27,17 +26,9 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import com.android.contacts.ContactPhotoManager;
 import com.android.contacts.R;
-import com.android.contacts.editor.AggregationSuggestionEngine.RawContact;
 import com.android.contacts.editor.AggregationSuggestionEngine.Suggestion;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-
-import com.google.common.collect.Lists;
-
-import java.util.ArrayList;
-import java.util.List;
 
 /**
  * A view that contains a name, picture and other data for a contact aggregation suggestion.
@@ -45,25 +36,15 @@
 public class AggregationSuggestionView extends LinearLayout {
 
     public interface Listener {
-
         /**
-         * Callback that passes the contact ID to join with and, for convenience,
-         * also the list of constituent raw contact IDs to avoid a separate query
-         * for those.
+         * Callback that passes the contact URI and raw contact ID to edit instead of the
+         * current contact.
          */
-        public void onJoinAction(long contactId, List<Long> rawContacIds);
-
-        /**
-         * Callback that passes the contact ID to edit instead of the current contact.
-         */
-        public void onEditAction(Uri contactLookupUri);
+        void onEditAction(Uri contactLookupUri, long rawContactId);
     }
 
     private Listener mListener;
-    private long mContactId;
-    private String mLookupKey;
-    private List<RawContact> mRawContacts = Lists.newArrayList();
-    private boolean mNewContact;
+    private Suggestion mSuggestion;
 
     public AggregationSuggestionView(Context context) {
         super(context);
@@ -77,27 +58,23 @@
         super(context, attrs, defStyle);
     }
 
-    public void setNewContact(boolean flag) {
-        mNewContact = flag;
-    }
-
     public void bindSuggestion(Suggestion suggestion) {
-        mContactId = suggestion.contactId;
-        mLookupKey = suggestion.lookupKey;
-        mRawContacts = suggestion.rawContacts;
-        ImageView photo = (ImageView) findViewById(R.id.aggregation_suggestion_photo);
-        if (suggestion.photo != null) {
-            photo.setImageBitmap(BitmapFactory.decodeByteArray(
-                    suggestion.photo, 0, suggestion.photo.length));
-        } else {
-            photo.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
-                    getResources(), false, null));
-        }
+        mSuggestion = suggestion;
+        final ContactPhotoManager.DefaultImageRequest
+                request = new ContactPhotoManager.DefaultImageRequest(
+                suggestion.name, String.valueOf(suggestion.rawContactId), /* isCircular = */ false);
+        final ImageView photoView = (ImageView) findViewById(
+                R.id.aggregation_suggestion_photo);
+        ContactPhotoManager.getInstance(getContext()).loadThumbnail(photoView,
+                suggestion.photoId,
+                /* darkTheme = */ false,
+                /* isCircular = */ false,
+                request);
 
-        TextView name = (TextView) findViewById(R.id.aggregation_suggestion_name);
+        final TextView name = (TextView) findViewById(R.id.aggregation_suggestion_name);
         name.setText(suggestion.name);
 
-        TextView data = (TextView) findViewById(R.id.aggregation_suggestion_data);
+        final TextView data = (TextView) findViewById(R.id.aggregation_suggestion_data);
         String dataText = null;
         if (suggestion.nickname != null) {
             dataText = suggestion.nickname;
@@ -111,48 +88,18 @@
         data.setText(dataText);
     }
 
-    /**
-     * Returns true if the suggested contact can be edited.
-     */
-    private boolean canEditSuggestedContact() {
-        if (!mNewContact) {
-            return false;
-        }
-
-        AccountTypeManager accountTypes = AccountTypeManager.getInstance(getContext());
-        for (RawContact rawContact : mRawContacts) {
-            String accountType = rawContact.accountType;
-            String dataSet = rawContact.dataSet;
-            if (accountType == null) {
-                return true;
-            }
-            AccountType type = accountTypes.getAccountType(accountType, dataSet);
-            if (type.areContactsWritable()) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
     public void setListener(Listener listener) {
         mListener = listener;
     }
 
     public boolean handleItemClickEvent() {
         if (mListener != null && isEnabled()) {
-            if (canEditSuggestedContact()) {
-                if (TextUtils.isEmpty(mLookupKey)) {
-                    return false;
-                }
-                mListener.onEditAction(Contacts.getLookupUri(mContactId, mLookupKey));
-            } else {
-                ArrayList<Long> rawContactIds = Lists.newArrayList();
-                for (RawContact rawContact : mRawContacts) {
-                    rawContactIds.add(rawContact.rawContactId);
-                }
-                mListener.onJoinAction(mContactId, rawContactIds);
+            if (TextUtils.isEmpty(mSuggestion.contactLookupKey)) {
+                return false;
             }
+            mListener.onEditAction(
+                    Contacts.getLookupUri(mSuggestion.contactId, mSuggestion.contactLookupKey),
+                    mSuggestion.rawContactId);
             return true;
         }
         return false;
diff --git a/src/com/android/contacts/editor/BaseRawContactEditorView.java b/src/com/android/contacts/editor/BaseRawContactEditorView.java
deleted file mode 100644
index e99af61..0000000
--- a/src/com/android/contacts/editor/BaseRawContactEditorView.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Copyright (C) 2009 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.editor;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.Data;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import com.android.contacts.R;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountType.EditType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-
-/**
- * Base view that provides common code for the editor interaction for a specific
- * RawContact represented through an {@link RawContactDelta}.
- * <p>
- * Internal updates are performed against {@link ValuesDelta} so that the
- * source {@link RawContact} can be swapped out. Any state-based changes, such as
- * adding {@link Data} rows or changing {@link EditType}, are performed through
- * {@link RawContactModifier} to ensure that {@link AccountType} are enforced.
- */
-public abstract class BaseRawContactEditorView extends LinearLayout {
-
-    private PhotoEditorView mPhoto;
-
-    private View mAccountHeaderContainer;
-    private ImageView mExpandAccountButton;
-    private LinearLayout mCollapsibleSection;
-    private TextView mAccountName;
-    private TextView mAccountType;
-
-    protected Listener mListener;
-
-    public interface Listener {
-        void onExternalEditorRequest(AccountWithDataSet account, Uri uri);
-        void onEditorExpansionChanged();
-    }
-
-    public BaseRawContactEditorView(Context context) {
-        super(context);
-    }
-
-    public BaseRawContactEditorView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-
-        mPhoto = (PhotoEditorView)findViewById(R.id.edit_photo);
-        mPhoto.setEnabled(isEnabled());
-
-        mAccountHeaderContainer = findViewById(R.id.account_header_container);
-        mExpandAccountButton = (ImageView) findViewById(R.id.expand_account_button);
-        mCollapsibleSection = (LinearLayout) findViewById(R.id.collapsable_section);
-        mAccountName = (TextView) findViewById(R.id.account_name);
-        mAccountType = (TextView) findViewById(R.id.account_type);
-
-        setCollapsed(false);
-        setCollapsible(true);
-    }
-
-    public void setGroupMetaData(Cursor groupMetaData) {
-    }
-
-
-    public void setListener(Listener listener) {
-        mListener = listener;
-    }
-
-    /**
-     * Assign the given {@link Bitmap} to the internal {@link PhotoEditorView}
-     * in order to update the {@link RawContactDelta} currently being edited.
-     */
-    public void setPhotoEntry(Bitmap bitmap) {
-        mPhoto.setPhotoEntry(bitmap);
-    }
-
-    /**
-     * Assign the given photo {@link Uri} to UI of the {@link PhotoEditorView}, so that it can
-     * display a full sized photo.
-     */
-    public void setFullSizedPhoto(Uri uri) {
-        mPhoto.setFullSizedPhoto(uri);
-    }
-
-    protected void setHasPhotoEditor(boolean hasPhotoEditor) {
-        mPhoto.setVisibility(hasPhotoEditor ? View.VISIBLE : View.GONE);
-    }
-
-    /**
-     * Return true if internal {@link PhotoEditorView} has a {@link Photo} set.
-     */
-    public boolean hasSetPhoto() {
-        return mPhoto.hasSetPhoto();
-    }
-
-    public PhotoEditorView getPhotoEditor() {
-        return mPhoto;
-    }
-
-    /**
-     * @return the RawContact ID that this editor is editing.
-     */
-    public abstract long getRawContactId();
-
-    /**
-     * If {@param isCollapsible} is TRUE, then this editor can be collapsed by clicking on its
-     * account header.
-     */
-    public void setCollapsible(boolean isCollapsible) {
-        if (isCollapsible) {
-            mAccountHeaderContainer.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    final int startingHeight = mCollapsibleSection.getMeasuredHeight();
-                    final boolean isCollapsed = isCollapsed();
-                    setCollapsed(!isCollapsed);
-                    // The slideAndFadeIn animation only looks good when collapsing. For expanding,
-                    // it looks like the editor is loading sluggishly. I tried animating the
-                    // clipping bounds instead of the alpha value. But because the editors are very
-                    // tall, this animation looked very similar to doing no animation at all. It
-                    // wasn't worth the significant additional complexity.
-                    if (!isCollapsed) {
-                        EditorAnimator.getInstance().slideAndFadeIn(mCollapsibleSection,
-                                startingHeight);
-                        // We want to place the focus near the top of the screen now that a
-                        // potentially focused editor is being collapsed.
-                        EditorAnimator.placeFocusAtTopOfScreenAfterReLayout(mCollapsibleSection);
-                    } else {
-                        // When expanding we should scroll the expanded view onto the screen.
-                        // Otherwise, user's may not notice that any expansion happened.
-                        EditorAnimator.getInstance().scrollViewToTop(mAccountHeaderContainer);
-                        mCollapsibleSection.requestFocus();
-                    }
-                    if (mListener != null) {
-                        mListener.onEditorExpansionChanged();
-                    }
-                    updateAccountHeaderContentDescription();
-                }
-            });
-            mExpandAccountButton.setVisibility(View.VISIBLE);
-            mAccountHeaderContainer.setClickable(true);
-        } else {
-            mAccountHeaderContainer.setOnClickListener(null);
-            mExpandAccountButton.setVisibility(View.GONE);
-            mAccountHeaderContainer.setClickable(false);
-        }
-    }
-
-    public boolean isCollapsed() {
-        return mCollapsibleSection.getLayoutParams().height == 0;
-    }
-
-    public void setCollapsed(boolean isCollapsed) {
-        final LinearLayout.LayoutParams params
-                = (LayoutParams) mCollapsibleSection.getLayoutParams();
-        if (isCollapsed) {
-            params.height = 0;
-            mCollapsibleSection.setLayoutParams(params);
-            mExpandAccountButton.setImageResource(R.drawable.ic_menu_expander_minimized_holo_light);
-        } else {
-            params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
-            mCollapsibleSection.setLayoutParams(params);
-            mExpandAccountButton.setImageResource(R.drawable.ic_menu_expander_maximized_holo_light);
-        }
-    }
-
-    protected void updateAccountHeaderContentDescription() {
-        final StringBuilder builder = new StringBuilder();
-        builder.append(EditorUiUtils.getAccountInfoContentDescription(
-                mAccountName.getText(), mAccountType.getText()));
-        if (mExpandAccountButton.getVisibility() == View.VISIBLE) {
-            builder.append(getResources().getString(isCollapsed()
-                    ? R.string.content_description_expand_editor
-                    : R.string.content_description_collapse_editor));
-        }
-        mAccountHeaderContainer.setContentDescription(builder);
-    }
-
-    /**
-     * Set the internal state for this view, given a current
-     * {@link RawContactDelta} state and the {@link AccountType} that
-     * apply to that state.
-     */
-    public abstract void setState(RawContactDelta state, AccountType source, ViewIdGenerator vig,
-            boolean isProfile);
-}
diff --git a/src/com/android/contacts/editor/CancelEditDialogFragment.java b/src/com/android/contacts/editor/CancelEditDialogFragment.java
index ba5f9fa..48cedff 100644
--- a/src/com/android/contacts/editor/CancelEditDialogFragment.java
+++ b/src/com/android/contacts/editor/CancelEditDialogFragment.java
@@ -16,13 +16,13 @@
 
 package com.android.contacts.editor;
 
-import com.android.contacts.R;
-
-import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.DialogFragment;
 import android.content.DialogInterface;
 import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
+
+import com.android.contacts.R;
 
 /**
  * Asks the user whether to cancel editing the contact.
@@ -35,7 +35,7 @@
      * Shows a {@link CancelEditDialogFragment} after setting the given Fragment as the
      * target of the dialog.
      */
-    public static void show(ContactEditorBaseFragment fragment) {
+    public static void show(ContactEditorFragment fragment) {
         final CancelEditDialogFragment dialog = new CancelEditDialogFragment();
         dialog.setTargetFragment(fragment, 0);
         dialog.show(fragment.getFragmentManager(), TAG);
@@ -69,4 +69,4 @@
          */
         void onCancelEditConfirmed();
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/contacts/editor/CompactContactEditorFragment.java b/src/com/android/contacts/editor/CompactContactEditorFragment.java
deleted file mode 100644
index 4a731db..0000000
--- a/src/com/android/contacts/editor/CompactContactEditorFragment.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Copyright (C) 2015 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.editor;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.R;
-import com.android.contacts.activities.CompactContactEditorActivity;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.util.ContactPhotoUtils;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.LinearLayout;
-import android.widget.Toast;
-
-import java.io.FileNotFoundException;
-import java.util.ArrayList;
-
-/**
- * Contact editor with only the most important fields displayed initially.
- */
-public class CompactContactEditorFragment extends ContactEditorBaseFragment implements
-        CompactRawContactsEditorView.Listener, CompactPhotoEditorView.Listener {
-
-    private static final String KEY_PHOTO_RAW_CONTACT_ID = "photo_raw_contact_id";
-    private static final String KEY_UPDATED_PHOTOS = "updated_photos";
-
-    private long mPhotoRawContactId;
-    private Bundle mUpdatedPhotos = new Bundle();
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        super.onCreate(savedState);
-
-        if (savedState != null) {
-            mPhotoRawContactId = savedState.getLong(KEY_PHOTO_RAW_CONTACT_ID);
-            mUpdatedPhotos = savedState.getParcelable(KEY_UPDATED_PHOTOS);
-        }
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        setHasOptionsMenu(true);
-
-        final View view = inflater.inflate(
-                R.layout.compact_contact_editor_fragment, container, false);
-        mContent = (LinearLayout) view.findViewById(R.id.raw_contacts_editor_view);
-        return view;
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        outState.putLong(KEY_PHOTO_RAW_CONTACT_ID, mPhotoRawContactId);
-        outState.putParcelable(KEY_UPDATED_PHOTOS, mUpdatedPhotos);
-        super.onSaveInstanceState(outState);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            return revert();
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    @Override
-    protected void bindEditors() {
-        if (!isReadyToBindEditors()) {
-            return;
-        }
-
-        // Add input fields for the loaded Contact
-        final CompactRawContactsEditorView editorView = getContent();
-        editorView.setListener(this);
-        editorView.setState(mState, getMaterialPalette(), mViewIdGenerator, mPhotoId,
-                mHasNewContact, mIsUserProfile, mAccountWithDataSet);
-        if (mHasNewContact && !TextUtils.isEmpty(mReadOnlyDisplayName)) {
-            mReadOnlyNameEditorView = editorView.getPrimaryNameEditorView();
-            editorView.maybeSetReadOnlyDisplayNameAsPrimary(mReadOnlyDisplayName);
-        }
-
-        // Set up the photo widget
-        editorView.setPhotoListener(this);
-        mPhotoRawContactId = editorView.getPhotoRawContactId();
-        // If there is an updated full resolution photo apply it now, this will be the case if
-        // the user selects or takes a new photo, then rotates the device.
-        final Uri uri = (Uri) mUpdatedPhotos.get(String.valueOf(mPhotoRawContactId));
-        if (uri != null) {
-            editorView.setFullSizePhoto(uri);
-        }
-
-        // The editor is ready now so make it visible
-        editorView.setEnabled(isEnabled());
-        editorView.setVisibility(View.VISIBLE);
-
-        // Refresh the ActionBar as the visibility of the join command
-        // Activity can be null if we have been detached from the Activity.
-        invalidateOptionsMenu();
-    }
-
-    private boolean isReadyToBindEditors() {
-        if (mState.isEmpty()) {
-            if (Log.isLoggable(TAG, Log.VERBOSE)) {
-                Log.v(TAG, "No data to bind editors");
-            }
-            return false;
-        }
-        if (mIsEdit && !mExistingContactDataReady) {
-            if (Log.isLoggable(TAG, Log.VERBOSE)) {
-                Log.v(TAG, "Existing contact data is not ready to bind editors.");
-            }
-            return false;
-        }
-        if (mHasNewContact && !mNewContactDataReady) {
-            if (Log.isLoggable(TAG, Log.VERBOSE)) {
-                Log.v(TAG, "New contact data is not ready to bind editors.");
-            }
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    protected View getAggregationAnchorView(long rawContactId) {
-        return getContent().getAggregationAnchorView();
-    }
-
-    @Override
-    protected void setGroupMetaData() {
-        if (mGroupMetaData != null) {
-            getContent().setGroupMetaData(mGroupMetaData);
-        }
-    }
-
-    @Override
-    protected boolean doSaveAction(int saveMode, Long joinContactId) {
-        final Intent intent = ContactSaveService.createSaveContactIntent(mContext, mState,
-                SAVE_MODE_EXTRA_KEY, saveMode, isEditingUserProfile(),
-                ((Activity) mContext).getClass(),
-                CompactContactEditorActivity.ACTION_SAVE_COMPLETED, mUpdatedPhotos,
-                JOIN_CONTACT_ID_EXTRA_KEY, joinContactId);
-        return startSaveService(mContext, intent, saveMode);
-    }
-
-    @Override
-    protected void joinAggregate(final long contactId) {
-        final Intent intent = ContactSaveService.createJoinContactsIntent(
-                mContext, mContactIdForJoin, contactId, CompactContactEditorActivity.class,
-                CompactContactEditorActivity.ACTION_JOIN_COMPLETED);
-        mContext.startService(intent);
-    }
-
-    public void removePhoto() {
-        getContent().removePhoto();
-        mUpdatedPhotos.remove(String.valueOf(mPhotoRawContactId));
-    }
-
-    public void updatePhoto(Uri uri) throws FileNotFoundException {
-        final Bitmap bitmap = ContactPhotoUtils.getBitmapFromUri(getActivity(), uri);
-        if (bitmap == null || bitmap.getHeight() <= 0 || bitmap.getWidth() <= 0) {
-            Toast.makeText(mContext, R.string.contactPhotoSavedErrorToast,
-                    Toast.LENGTH_SHORT).show();
-            return;
-        }
-        mUpdatedPhotos.putParcelable(String.valueOf(mPhotoRawContactId), uri);
-        getContent().updatePhoto(uri);
-    }
-
-    public void setPrimaryPhoto(CompactPhotoSelectionFragment.Photo photo) {
-        getContent().setPrimaryPhoto(photo);
-
-        // Update the photo ID we will try to match when selecting the photo to display
-        mPhotoId = photo.photoId;
-    }
-
-    @Override
-    public void onNameFieldChanged(long rawContactId, ValuesDelta valuesDelta) {
-        final Activity activity = getActivity();
-        if (activity == null || activity.isFinishing()) {
-            return;
-        }
-        acquireAggregationSuggestions(activity, rawContactId, valuesDelta);
-    }
-
-    @Override
-    public void onRebindEditorsForNewContact(RawContactDelta oldState,
-            AccountWithDataSet oldAccount, AccountWithDataSet newAccount) {
-        mNewContactAccountChanged = true;
-        mAccountWithDataSet = newAccount;
-        rebindEditorsForNewContact(oldState, oldAccount, newAccount);
-    }
-
-    @Override
-    public void onBindEditorsFailed() {
-        final Activity activity = getActivity();
-        if (activity != null && !activity.isFinishing()) {
-            Toast.makeText(activity, R.string.compact_editor_failed_to_load,
-                    Toast.LENGTH_SHORT).show();
-            activity.setResult(Activity.RESULT_CANCELED);
-            activity.finish();
-        }
-    }
-
-    @Override
-    public void onEditorsBound() {
-        getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupsLoaderListener);
-    }
-
-    @Override
-    public void onPhotoEditorViewClicked() {
-        if (isEditingMultipleRawContacts()) {
-            final ArrayList<CompactPhotoSelectionFragment.Photo> photos = getContent().getPhotos();
-            if (photos.size() > 1) {
-                updatePrimaryForSelection(photos);
-                // For aggregate contacts, the user may select a new super primary photo from among
-                // the (non-default) raw contact photos, or source a new photo.
-                getEditorActivity().selectPhoto(photos, getPhotoMode());
-                return;
-            }
-        }
-        // For contacts composed of a single writable raw contact, or raw contacts have no more
-        // than 1 photo, clicking the photo view simply opens the source photo dialog
-        getEditorActivity().changePhoto(getPhotoMode());
-    }
-
-    // This method override photo's primary flag based on photoId and set the photo currently
-    // shown in the editor to be the new primary no matter how many primary photos there are in
-    // the photo picker. This is because the photos returned by "getPhoto" may contain 0, 1,
-    // or 2+ primary photos and when we link contacts in the editor, the photos returned may change.
-    // We need to put check mark on the photo currently shown in editor, so we override "primary".
-    // This doesn't modify anything in the database,so there would be no pending changes.
-    private void updatePrimaryForSelection(ArrayList<CompactPhotoSelectionFragment.Photo> photos) {
-        for (CompactPhotoSelectionFragment.Photo photo : photos) {
-            if (photo.photoId == mPhotoId) {
-                photo.primary = true;
-            } else {
-                photo.primary = false;
-            }
-            updateContentDescription(photo);
-        }
-    }
-
-    private void updateContentDescription(CompactPhotoSelectionFragment.Photo photo) {
-        if (!TextUtils.isEmpty(photo.accountType)) {
-            photo.contentDescription = getResources().getString(photo.primary ?
-                            R.string.photo_view_description_checked :
-                            R.string.photo_view_description_not_checked,
-                    photo.accountType, photo.accountName);
-            photo.contentDescriptionChecked = getResources().getString(
-                    R.string.photo_view_description_checked,
-                    photo.accountType, photo.accountName);
-        } else {
-            photo.contentDescription = getResources().getString(photo.primary ?
-                    R.string.photo_view_description_checked_no_info :
-                    R.string.photo_view_description_not_checked_no_info);
-            photo.contentDescriptionChecked = getResources().getString(
-                    R.string.photo_view_description_checked_no_info);
-        }
-    }
-
-    @Override
-    public void onRawContactSelected(Uri uri, long rawContactId, boolean isReadOnly) {
-        final Activity activity = getActivity();
-        if (activity != null && !activity.isFinishing()) {
-            final Intent intent = EditorIntents.createEditContactIntentForRawContact(
-                    activity, uri, rawContactId, isReadOnly);
-            activity.startActivity(intent);
-        }
-    }
-
-    @Override
-    public Bundle getUpdatedPhotos() {
-        return mUpdatedPhotos;
-    }
-
-    private int getPhotoMode() {
-        if (getContent().isWritablePhotoSet()) {
-            return isEditingMultipleRawContacts()
-                    ? PhotoActionPopup.Modes.MULTIPLE_WRITE_ABLE_PHOTOS
-                    : PhotoActionPopup.Modes.WRITE_ABLE_PHOTO;
-        }
-        return PhotoActionPopup.Modes.NO_PHOTO;
-    }
-
-    private CompactContactEditorActivity getEditorActivity() {
-        return (CompactContactEditorActivity) getActivity();
-    }
-
-    private CompactRawContactsEditorView getContent() {
-        return (CompactRawContactsEditorView) mContent;
-    }
-}
diff --git a/src/com/android/contacts/editor/CompactKindSectionView.java b/src/com/android/contacts/editor/CompactKindSectionView.java
deleted file mode 100644
index 7e5ff11..0000000
--- a/src/com/android/contacts/editor/CompactKindSectionView.java
+++ /dev/null
@@ -1,601 +0,0 @@
-/*
- * Copyright (C) 2015 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.editor;
-
-import com.android.contacts.R;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.dataitem.DataKind;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.provider.ContactsContract.CommonDataKinds.Event;
-import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
-import android.provider.ContactsContract.CommonDataKinds.Nickname;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Version of {@link KindSectionView} that supports multiple RawContactDeltas.
- */
-public class CompactKindSectionView extends LinearLayout {
-
-    /**
-     * Marks a name as super primary when it is changed.
-     *
-     * This is for the case when two or more raw contacts with names are joined where neither is
-     * marked as super primary.
-     */
-    private static final class StructuredNameEditorListener implements Editor.EditorListener {
-
-        private final ValuesDelta mValuesDelta;
-        private final long mRawContactId;
-        private final CompactRawContactsEditorView.Listener mListener;
-
-        public StructuredNameEditorListener(ValuesDelta valuesDelta, long rawContactId,
-                CompactRawContactsEditorView.Listener listener) {
-            mValuesDelta = valuesDelta;
-            mRawContactId = rawContactId;
-            mListener = listener;
-        }
-
-        @Override
-        public void onRequest(int request) {
-            if (request == Editor.EditorListener.FIELD_CHANGED) {
-                mValuesDelta.setSuperPrimary(true);
-                if (mListener != null) {
-                    mListener.onNameFieldChanged(mRawContactId, mValuesDelta);
-                }
-            } else if (request == Editor.EditorListener.FIELD_TURNED_EMPTY) {
-                mValuesDelta.setSuperPrimary(false);
-            }
-        }
-
-        @Override
-        public void onDeleteRequested(Editor editor) {
-            editor.clearAllFields();
-        }
-    }
-
-    /**
-     * Clears fields when deletes are requested (on phonetic and nickename fields);
-     * does not change the number of editors.
-     */
-    private static final class OtherNameKindEditorListener implements Editor.EditorListener {
-
-        @Override
-        public void onRequest(int request) {
-        }
-
-        @Override
-        public void onDeleteRequested(Editor editor) {
-            editor.clearAllFields();
-        }
-    }
-
-    /**
-     * Updates empty fields when fields are deleted or turns empty.
-     * Whether a new empty editor is added is controlled by {@link #setShowOneEmptyEditor} and
-     * {@link #setHideWhenEmpty}.
-     */
-    private class NonNameEditorListener implements Editor.EditorListener {
-
-        @Override
-        public void onRequest(int request) {
-            // If a field has become empty or non-empty, then check if another row
-            // can be added dynamically.
-            if (request == FIELD_TURNED_EMPTY || request == FIELD_TURNED_NON_EMPTY) {
-                updateEmptyEditors(/* shouldAnimate = */ true);
-            }
-        }
-
-        @Override
-        public void onDeleteRequested(Editor editor) {
-            if (mShowOneEmptyEditor && mEditors.getChildCount() == 1) {
-                // If there is only 1 editor in the section, then don't allow the user to
-                // delete it.  Just clear the fields in the editor.
-                editor.clearAllFields();
-            } else {
-                editor.deleteEditor();
-            }
-        }
-    }
-
-    private class EventEditorListener extends NonNameEditorListener {
-
-        @Override
-        public void onRequest(int request) {
-            super.onRequest(request);
-        }
-
-        @Override
-        public void onDeleteRequested(Editor editor) {
-            if (editor instanceof EventFieldEditorView){
-                final EventFieldEditorView delView = (EventFieldEditorView) editor;
-                if (delView.isBirthdayType() && mEditors.getChildCount() > 1) {
-                    final EventFieldEditorView bottomView = (EventFieldEditorView) mEditors
-                            .getChildAt(mEditors.getChildCount() - 1);
-                    bottomView.restoreBirthday();
-                }
-            }
-            super.onDeleteRequested(editor);
-        }
-    }
-
-    private KindSectionDataList mKindSectionDataList;
-    private ViewIdGenerator mViewIdGenerator;
-    private CompactRawContactsEditorView.Listener mListener;
-
-    private boolean mIsUserProfile;
-    private boolean mShowOneEmptyEditor = false;
-    private boolean mHideIfEmpty = true;
-
-    private LayoutInflater mLayoutInflater;
-    private ViewGroup mEditors;
-    private ImageView mIcon;
-
-    public CompactKindSectionView(Context context) {
-        this(context, /* attrs =*/ null);
-    }
-
-    public CompactKindSectionView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    public void setEnabled(boolean enabled) {
-        super.setEnabled(enabled);
-        if (mEditors != null) {
-            int childCount = mEditors.getChildCount();
-            for (int i = 0; i < childCount; i++) {
-                mEditors.getChildAt(i).setEnabled(enabled);
-            }
-        }
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        setDrawingCacheEnabled(true);
-        setAlwaysDrawnWithCacheEnabled(true);
-
-        mLayoutInflater = (LayoutInflater) getContext().getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-
-        mEditors = (ViewGroup) findViewById(R.id.kind_editors);
-        mIcon = (ImageView) findViewById(R.id.kind_icon);
-    }
-
-    public void setIsUserProfile(boolean isUserProfile) {
-        mIsUserProfile = isUserProfile;
-    }
-
-    /**
-     * @param showOneEmptyEditor If true, we will always show one empty editor, otherwise an empty
-     *         editor will not be shown until the user enters a value.  Note, this does not apply
-     *         to name editors since those are always displayed.
-     */
-    public void setShowOneEmptyEditor(boolean showOneEmptyEditor) {
-        mShowOneEmptyEditor = showOneEmptyEditor;
-    }
-
-    /**
-     * @param hideWhenEmpty If true, the entire section will be hidden if all inputs are empty,
-     *         otherwise one empty input will always be displayed.  Note, this does not apply
-     *         to name editors since those are always displayed.
-     */
-    public void setHideWhenEmpty(boolean hideWhenEmpty) {
-        mHideIfEmpty = hideWhenEmpty;
-    }
-
-    /** Binds the given group data to every {@link GroupMembershipView}. */
-    public void setGroupMetaData(Cursor cursor) {
-        for (int i = 0; i < mEditors.getChildCount(); i++) {
-            final View view = mEditors.getChildAt(i);
-            if (view instanceof GroupMembershipView) {
-                ((GroupMembershipView) view).setGroupMetaData(cursor);
-            }
-        }
-    }
-
-    /**
-     * Whether this is a name kind section view and all name fields (structured, phonetic,
-     * and nicknames) are empty.
-     */
-    public boolean isEmptyName() {
-        if (!StructuredName.CONTENT_ITEM_TYPE.equals(mKindSectionDataList.getMimeType())) {
-            return false;
-        }
-        for (int i = 0; i < mEditors.getChildCount(); i++) {
-            final View view = mEditors.getChildAt(i);
-            if (view instanceof Editor) {
-                final Editor editor = (Editor) view;
-                if (!editor.isEmpty()) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Sets the given display name as the structured name as if the user input it, but
-     * without informing editor listeners.
-     */
-    public void setName(String displayName) {
-        if (!StructuredName.CONTENT_ITEM_TYPE.equals(mKindSectionDataList.getMimeType())) {
-            return;
-        }
-        for (int i = 0; i < mEditors.getChildCount(); i++) {
-            final View view = mEditors.getChildAt(i);
-            if (view instanceof StructuredNameEditorView) {
-                final StructuredNameEditorView editor = (StructuredNameEditorView) view;
-
-                // Detach listeners since so we don't show suggested aggregations
-                final Editor.EditorListener editorListener = editor.getEditorListener();
-                editor.setEditorListener(null);
-
-                editor.setDisplayName(displayName);
-
-                // Reattach listeners
-                editor.setEditorListener(editorListener);
-
-                return;
-            }
-        }
-    }
-
-    public StructuredNameEditorView getPrimaryNameEditorView() {
-        if (!StructuredName.CONTENT_ITEM_TYPE.equals(mKindSectionDataList.getMimeType())
-            || mEditors.getChildCount() == 0) {
-            return null;
-        }
-        return (StructuredNameEditorView) mEditors.getChildAt(0);
-    }
-
-    /**
-     * Binds views for the given {@link KindSectionData} list.
-     *
-     * We create a structured name and phonetic name editor for each {@link DataKind} with a
-     * {@link StructuredName#CONTENT_ITEM_TYPE} mime type.  The number and order of editors are
-     * rendered as they are given to {@link #setState}.
-     *
-     * Empty name editors are never added and at least one structured name editor is always
-     * displayed, even if it is empty.
-     */
-    public void setState(KindSectionDataList kindSectionDataList,
-            ViewIdGenerator viewIdGenerator, CompactRawContactsEditorView.Listener listener,
-            ValuesDelta primaryValuesDelta) {
-        mKindSectionDataList = kindSectionDataList;
-        mViewIdGenerator = viewIdGenerator;
-        mListener = listener;
-
-        // Set the icon using the first DataKind
-        final DataKind dataKind = mKindSectionDataList.getDataKind();
-        if (dataKind != null) {
-            mIcon.setImageDrawable(EditorUiUtils.getMimeTypeDrawable(getContext(),
-                    dataKind.mimeType));
-            if (mIcon.getDrawable() != null) {
-                mIcon.setContentDescription(dataKind.titleRes == -1 || dataKind.titleRes == 0
-                        ? "" : getResources().getString(dataKind.titleRes));
-            }
-        }
-
-        rebuildFromState(primaryValuesDelta);
-
-        updateEmptyEditors(/* shouldAnimate = */ false);
-    }
-
-    private void rebuildFromState(ValuesDelta primaryValuesDelta) {
-        mEditors.removeAllViews();
-
-        final String mimeType = mKindSectionDataList.getMimeType();
-        for (KindSectionData kindSectionData : mKindSectionDataList) {
-            if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                addNameEditorViews(kindSectionData.getAccountType(),
-                        primaryValuesDelta, kindSectionData.getRawContactDelta());
-            } else if (GroupMembership.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                addGroupEditorView(kindSectionData.getRawContactDelta(),
-                        kindSectionData.getDataKind());
-            } else {
-                final Editor.EditorListener editorListener;
-                if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                    editorListener = new OtherNameKindEditorListener();
-                } else if (Event.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                    editorListener = new EventEditorListener();
-                } else {
-                    editorListener = new NonNameEditorListener();
-                }
-                for (ValuesDelta valuesDelta : kindSectionData.getVisibleValuesDeltas()) {
-                    addNonNameEditorView(kindSectionData.getRawContactDelta(),
-                            kindSectionData.getDataKind(), valuesDelta, editorListener);
-                }
-            }
-        }
-    }
-
-    private void addNameEditorViews(AccountType accountType,
-            ValuesDelta valuesDelta, RawContactDelta rawContactDelta) {
-        final boolean readOnly = !accountType.areContactsWritable();
-
-        if (readOnly) {
-            final View nameView = mLayoutInflater.inflate(
-                    R.layout.structured_name_readonly_editor_view, mEditors,
-                    /* attachToRoot =*/ false);
-
-            // Display name
-            ((TextView) nameView.findViewById(R.id.display_name))
-                    .setText(valuesDelta.getDisplayName());
-
-            // Account type info
-            final LinearLayout accountTypeLayout = (LinearLayout)
-                    nameView.findViewById(R.id.account_type);
-            accountTypeLayout.setVisibility(View.VISIBLE);
-            ((ImageView) accountTypeLayout.findViewById(R.id.account_type_icon))
-                    .setImageDrawable(accountType.getDisplayIcon(getContext()));
-            ((TextView) accountTypeLayout.findViewById(R.id.account_type_name))
-                    .setText(accountType.getDisplayLabel(getContext()));
-
-            mEditors.addView(nameView);
-            return;
-        }
-
-        // Structured name
-        final StructuredNameEditorView nameView = (StructuredNameEditorView) mLayoutInflater
-                .inflate(R.layout.structured_name_editor_view, mEditors, /* attachToRoot =*/ false);
-        if (!mIsUserProfile) {
-            // Don't set super primary for the me contact
-            nameView.setEditorListener(new StructuredNameEditorListener(
-                    valuesDelta, rawContactDelta.getRawContactId(), mListener));
-        }
-        nameView.setDeletable(false);
-        nameView.setValues(
-                accountType.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME),
-                valuesDelta, rawContactDelta, /* readOnly =*/ false, mViewIdGenerator);
-
-        // Correct start margin since there is a second icon in the structured name layout
-        nameView.findViewById(R.id.kind_icon).setVisibility(View.GONE);
-        mEditors.addView(nameView);
-
-        // Phonetic name
-        final PhoneticNameEditorView phoneticNameView = (PhoneticNameEditorView) mLayoutInflater
-                .inflate(R.layout.phonetic_name_editor_view, mEditors, /* attachToRoot =*/ false);
-        phoneticNameView.setEditorListener(new OtherNameKindEditorListener());
-        phoneticNameView.setDeletable(false);
-        phoneticNameView.setValues(
-                accountType.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME),
-                valuesDelta, rawContactDelta, /* readOnly =*/ false, mViewIdGenerator);
-
-        // Fix the start margin for phonetic name views
-        final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
-                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
-        layoutParams.setMargins(0, 0, 0, 0);
-        phoneticNameView.setLayoutParams(layoutParams);
-        mEditors.addView(phoneticNameView);
-    }
-
-    private void addGroupEditorView(RawContactDelta rawContactDelta, DataKind dataKind) {
-        final GroupMembershipView view = (GroupMembershipView) mLayoutInflater.inflate(
-                R.layout.item_group_membership, mEditors, /* attachToRoot =*/ false);
-        view.setKind(dataKind);
-        view.setEnabled(isEnabled());
-        view.setState(rawContactDelta);
-
-        // Correct start margin since there is a second icon in the group layout
-        view.findViewById(R.id.kind_icon).setVisibility(View.GONE);
-
-        mEditors.addView(view);
-    }
-
-    private View addNonNameEditorView(RawContactDelta rawContactDelta, DataKind dataKind,
-            ValuesDelta valuesDelta, Editor.EditorListener editorListener) {
-        // Inflate the layout
-        final View view = mLayoutInflater.inflate(
-                EditorUiUtils.getLayoutResourceId(dataKind.mimeType), mEditors, false);
-        view.setEnabled(isEnabled());
-        if (view instanceof Editor) {
-            final Editor editor = (Editor) view;
-            editor.setDeletable(true);
-            editor.setEditorListener(editorListener);
-            editor.setValues(dataKind, valuesDelta, rawContactDelta, !dataKind.editable,
-                    mViewIdGenerator);
-        }
-        mEditors.addView(view);
-
-        return view;
-    }
-
-    /**
-     * Updates the editors being displayed to the user removing extra empty
-     * {@link Editor}s, so there is only max 1 empty {@link Editor} view at a time.
-     * If there is only 1 empty editor and {@link #setHideWhenEmpty} was set to true,
-     * then the entire section is hidden.
-     */
-    public void updateEmptyEditors(boolean shouldAnimate) {
-        final boolean isNameKindSection = StructuredName.CONTENT_ITEM_TYPE.equals(
-                mKindSectionDataList.getMimeType());
-        final boolean isGroupKindSection = GroupMembership.CONTENT_ITEM_TYPE.equals(
-                mKindSectionDataList.getMimeType());
-
-        if (isNameKindSection) {
-            // The name kind section is always visible
-            setVisibility(VISIBLE);
-            updateEmptyNameEditors(shouldAnimate);
-        } else if (isGroupKindSection) {
-            // Check whether metadata has been bound for all group views
-            for (int i = 0; i < mEditors.getChildCount(); i++) {
-                final View view = mEditors.getChildAt(i);
-                if (view instanceof GroupMembershipView) {
-                    final GroupMembershipView groupView = (GroupMembershipView) view;
-                    if (!groupView.wasGroupMetaDataBound() || !groupView.accountHasGroups()) {
-                        setVisibility(GONE);
-                        return;
-                    }
-                }
-            }
-            // Check that the user has selected to display all fields
-            if (mHideIfEmpty) {
-                setVisibility(GONE);
-                return;
-            }
-            setVisibility(VISIBLE);
-
-            // We don't check the emptiness of the group views
-        } else {
-            // Determine if the entire kind section should be visible
-            final int editorCount = mEditors.getChildCount();
-            final List<View> emptyEditors = getEmptyEditors();
-            if (editorCount == emptyEditors.size() && mHideIfEmpty) {
-                setVisibility(GONE);
-                return;
-            }
-            setVisibility(VISIBLE);
-
-            updateEmptyNonNameEditors(shouldAnimate);
-        }
-    }
-
-    private void updateEmptyNameEditors(boolean shouldAnimate) {
-        boolean isEmptyNameEditorVisible = false;
-
-        for (int i = 0; i < mEditors.getChildCount(); i++) {
-            final View view = mEditors.getChildAt(i);
-            if (view instanceof Editor) {
-                final Editor editor = (Editor) view;
-                if (view instanceof StructuredNameEditorView) {
-                    // We always show one empty structured name view
-                    if (editor.isEmpty()) {
-                        if (isEmptyNameEditorVisible) {
-                            // If we're already showing an empty editor then hide any other empties
-                            if (mHideIfEmpty) {
-                                view.setVisibility(View.GONE);
-                            }
-                        } else {
-                            isEmptyNameEditorVisible = true;
-                        }
-                    } else {
-                        showView(view, shouldAnimate);
-                        isEmptyNameEditorVisible = true;
-                    }
-                } else {
-                    // Since we can't add phonetic names and nicknames, just show or hide them
-                    if (mHideIfEmpty && editor.isEmpty()) {
-                        hideView(view);
-                    } else {
-                        showView(view, /* shouldAnimate =*/ false); // Animation here causes jank
-                    }
-                }
-            } else {
-                // For read only names, only show them if we're not hiding empty views
-                if (mHideIfEmpty) {
-                    hideView(view);
-                } else {
-                    showView(view, shouldAnimate);
-                }
-            }
-        }
-    }
-
-    private void updateEmptyNonNameEditors(boolean shouldAnimate) {
-        // Prune excess empty editors
-        final List<View> emptyEditors = getEmptyEditors();
-        if (emptyEditors.size() > 1) {
-            // If there is more than 1 empty editor, then remove it from the list of editors.
-            int deleted = 0;
-            for (final View view : emptyEditors) {
-                // If no child {@link View}s are being focused on within this {@link View}, then
-                // remove this empty editor. We can assume that at least one empty editor has
-                // focus. One way to get two empty editors is by deleting characters from a
-                // non-empty editor, in which case this editor has focus.  Another way is if
-                // there is more values delta so we must also count number of editors deleted.
-                if (view.findFocus() == null) {
-                    deleteView(view, shouldAnimate);
-                    deleted++;
-                    if (deleted == emptyEditors.size() - 1) break;
-                }
-            }
-            return;
-        }
-        // Determine if we should add a new empty editor
-        final DataKind dataKind = mKindSectionDataList.get(0).getDataKind();
-        final RawContactDelta rawContactDelta =
-                mKindSectionDataList.get(0).getRawContactDelta();
-        if (dataKind == null // There is nothing we can do.
-                // We have already reached the maximum number of editors, don't add any more.
-                || !RawContactModifier.canInsert(rawContactDelta, dataKind)
-                // We have already reached the maximum number of empty editors, don't add any more.
-                || emptyEditors.size() == 1) {
-            return;
-        }
-        // Add a new empty editor
-        if (mShowOneEmptyEditor) {
-            final String mimeType = mKindSectionDataList.getMimeType();
-            if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType) && mEditors.getChildCount() > 0) {
-                return;
-            }
-            final ValuesDelta values = RawContactModifier.insertChild(rawContactDelta, dataKind);
-            final Editor.EditorListener editorListener = Event.CONTENT_ITEM_TYPE.equals(mimeType)
-                    ? new EventEditorListener() : new NonNameEditorListener();
-            final View view = addNonNameEditorView(rawContactDelta, dataKind, values,
-                    editorListener);
-            showView(view, shouldAnimate);
-        }
-    }
-
-    private void hideView(View view) {
-        view.setVisibility(View.GONE);
-    }
-
-    private void deleteView(View view, boolean shouldAnimate) {
-        if (shouldAnimate) {
-            final Editor editor = (Editor) view;
-            editor.deleteEditor();
-        } else {
-            mEditors.removeView(view);
-        }
-    }
-
-    private void showView(View view, boolean shouldAnimate) {
-        if (shouldAnimate) {
-            view.setVisibility(View.GONE);
-            EditorAnimator.getInstance().showFieldFooter(view);
-        } else {
-            view.setVisibility(View.VISIBLE);
-        }
-    }
-
-    private List<View> getEmptyEditors() {
-        final List<View> emptyEditors = new ArrayList<>();
-        for (int i = 0; i < mEditors.getChildCount(); i++) {
-            final View view = mEditors.getChildAt(i);
-            if (view instanceof Editor && ((Editor) view).isEmpty()) {
-                emptyEditors.add(view);
-            }
-        }
-        return emptyEditors;
-    }
-}
diff --git a/src/com/android/contacts/editor/CompactPhotoEditorView.java b/src/com/android/contacts/editor/CompactPhotoEditorView.java
deleted file mode 100644
index 899e22a..0000000
--- a/src/com/android/contacts/editor/CompactPhotoEditorView.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright (C) 2015 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.editor;
-
-import com.android.contacts.R;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
-import com.android.contacts.util.SchedulingUtils;
-import com.android.contacts.widget.QuickContactImageView;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.provider.ContactsContract;
-import android.util.AttributeSet;
-import android.util.DisplayMetrics;
-import android.util.TypedValue;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.RelativeLayout;
-
-/**
- * Displays a photo and calls the host back when the user clicks it.
- */
-public class CompactPhotoEditorView extends RelativeLayout implements View.OnClickListener {
-
-    /**
-     * Callbacks for the host of this view.
-     */
-    public interface Listener {
-
-        /**
-         * Invoked when the user wants to change their photo.
-         */
-        void onPhotoEditorViewClicked();
-    }
-
-    private Listener mListener;
-
-    private final float mLandscapePhotoRatio;
-    private final float mPortraitPhotoRatio;
-    private final boolean mIsTwoPanel;
-
-    private final int mActionBarHeight;
-    private final int mStatusBarHeight;
-
-    private QuickContactImageView mPhotoImageView;
-    private View mPhotoIcon;
-    private View mPhotoIconOverlay;
-    private View mPhotoTouchInterceptOverlay;
-
-    private boolean mReadOnly;
-    private boolean mIsNonDefaultPhotoBound;
-
-    public CompactPhotoEditorView(Context context) {
-        this(context, null);
-    }
-
-    public CompactPhotoEditorView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        mLandscapePhotoRatio = getTypedFloat(R.dimen.quickcontact_landscape_photo_ratio);
-        mPortraitPhotoRatio = getTypedFloat(R.dimen.editor_portrait_photo_ratio);
-        mIsTwoPanel = getResources().getBoolean(R.bool.contacteditor_two_panel);
-
-        final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes(
-                new int[] { android.R.attr.actionBarSize });
-        mActionBarHeight = (int) styledAttributes.getDimension(0, 0);
-        styledAttributes.recycle();
-
-        final int resourceId = getResources().getIdentifier(
-                "status_bar_height", "dimen", "android");
-        mStatusBarHeight = resourceId > 0 ? getResources().getDimensionPixelSize(resourceId) : 0;
-    }
-
-    private float getTypedFloat(int resourceId) {
-        final TypedValue typedValue = new TypedValue();
-        getResources().getValue(resourceId, typedValue, /* resolveRefs =*/ true);
-        return typedValue.getFloat();
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-        mPhotoImageView = (QuickContactImageView) findViewById(R.id.photo);
-        mPhotoIcon = findViewById(R.id.photo_icon);
-        mPhotoIconOverlay = findViewById(R.id.photo_icon_overlay);
-        mPhotoTouchInterceptOverlay = findViewById(R.id.photo_touch_intercept_overlay);
-    }
-
-    public void setListener(Listener listener) {
-        mListener = listener;
-    }
-
-    public void setReadOnly(boolean readOnly) {
-        mReadOnly = readOnly;
-        if (mReadOnly) {
-            mPhotoIcon.setVisibility(View.GONE);
-            mPhotoIconOverlay.setVisibility(View.GONE);
-        } else {
-            mPhotoTouchInterceptOverlay.setOnClickListener(this);
-        }
-    }
-
-    /**
-     * Tries to bind a full size photo or a bitmap loaded from the given ValuesDelta,
-     * and falls back to the default avatar, tinted using the given MaterialPalette (if it's not
-     * null);
-     */
-    public void setPhoto(ValuesDelta valuesDelta, MaterialPalette materialPalette) {
-        // Check if we can update to the full size photo immediately
-        final Long photoFileId = EditorUiUtils.getPhotoFileId(valuesDelta);
-        if (photoFileId != null) {
-            final Uri photoUri = ContactsContract.DisplayPhoto.CONTENT_URI.buildUpon()
-                    .appendPath(photoFileId.toString()).build();
-            setFullSizedPhoto(photoUri);
-            adjustDimensions();
-            return;
-        }
-
-        // Use the bitmap image from the values delta
-        final Bitmap bitmap = EditorUiUtils.getPhotoBitmap(valuesDelta);
-        if (bitmap != null) {
-            setPhoto(bitmap);
-            adjustDimensions();
-            return;
-        }
-
-        setDefaultPhoto(materialPalette);
-        adjustDimensions();
-    }
-
-    private void adjustDimensions() {
-        // Follow the same logic as MultiShrinkScroll.initialize
-        SchedulingUtils.doOnPreDraw(this, /* drawNextFrame =*/ false, new Runnable() {
-            @Override
-            public void run() {
-                final int photoHeight, photoWidth;
-                if (mIsTwoPanel) {
-                    photoHeight = getContentViewHeight();
-                    photoWidth = (int) (photoHeight * mLandscapePhotoRatio);
-                } else {
-                    // Make the photo slightly shorter that it is wide
-                    photoWidth = getContentViewWidth();
-                    photoHeight = (int) (photoWidth / mPortraitPhotoRatio);
-                }
-                final ViewGroup.LayoutParams layoutParams = getLayoutParams();
-                layoutParams.height = photoHeight;
-                layoutParams.width = photoWidth;
-                setLayoutParams(layoutParams);
-            }
-        });
-    }
-
-    private int getContentViewWidth() {
-        final Activity activity = (Activity) getContext();
-        final DisplayMetrics displayMetrics = new DisplayMetrics();
-        activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
-        return displayMetrics.widthPixels;
-    }
-
-    // We're calculating the height the hard way because using the height of the content view
-    // (found using android.view.Window.ID_ANDROID_CONTENT) with the soft keyboard up when
-    // going from portrait to landscape mode results in a very small height value.
-    // See b/20526470
-    private int getContentViewHeight() {
-        final Activity activity = (Activity) getContext();
-        final DisplayMetrics displayMetrics = new DisplayMetrics();
-        activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
-        return displayMetrics.heightPixels - mActionBarHeight - mStatusBarHeight;
-    }
-
-    /**
-     * Whether a removable, non-default photo is bound to this view.
-     */
-    public boolean isWritablePhotoSet() {
-        return !mReadOnly && mIsNonDefaultPhotoBound;
-    }
-
-    /**
-     * Binds the given bitmap.
-     */
-    private void setPhoto(Bitmap bitmap) {
-        mPhotoImageView.setImageBitmap(bitmap);
-        mIsNonDefaultPhotoBound = true;
-    }
-
-    private void setDefaultPhoto(MaterialPalette materialPalette) {
-        EditorUiUtils.setDefaultPhoto(mPhotoImageView, getResources(), materialPalette);
-    }
-
-    /**
-     * Binds a full size photo loaded from the given Uri.
-     */
-    public void setFullSizedPhoto(Uri photoUri) {
-        EditorUiUtils.loadPhoto(ContactPhotoManager.getInstance(getContext()),
-                mPhotoImageView, photoUri);
-        mIsNonDefaultPhotoBound = true;
-    }
-
-    /**
-     * Removes the current bound photo bitmap.
-     */
-    public void removePhoto() {
-        mPhotoImageView.setImageBitmap(/* bitmap =*/ null);
-        mIsNonDefaultPhotoBound = false;
-        setDefaultPhoto(/* materialPalette =*/ null);
-    }
-
-    @Override
-    public void onClick(View view) {
-        if (mListener != null) {
-            mListener.onPhotoEditorViewClicked();
-        }
-    }
-}
diff --git a/src/com/android/contacts/editor/CompactPhotoSelectionFragment.java b/src/com/android/contacts/editor/CompactPhotoSelectionFragment.java
deleted file mode 100644
index 0a8894f..0000000
--- a/src/com/android/contacts/editor/CompactPhotoSelectionFragment.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * Copyright (C) 2015 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.editor;
-
-import com.android.contacts.R;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-
-import android.app.Fragment;
-import android.content.Context;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.provider.ContactsContract;
-import android.util.DisplayMetrics;
-import android.view.Display;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityEvent;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.GridView;
-import android.widget.ImageView;
-
-import java.util.ArrayList;
-
-/**
- * Displays {@link Photo}s in a grid and calls back the host when one is clicked.
- */
-public class CompactPhotoSelectionFragment extends Fragment {
-
-    private static final String STATE_PHOTOS = "photos";
-    private static final String STATE_PHOTO_MODE = "photoMode";
-    private final int VIEW_TYPE_TAKE_PHOTO = 0;
-    private final int VIEW_TYPE_ALL_PHOTOS = 1;
-    private final int VIEW_TYPE_IMAGE = 2;
-
-    /**
-     * Callbacks hosts this Fragment.
-     */
-    public interface Listener {
-
-        /**
-         * Invoked when the user wants to change their photo.
-         */
-        void onPhotoSelected(Photo photo);
-    }
-
-    /**
-     * Holds a photo {@link ValuesDelta} and {@link AccountType} information to draw
-     * an account type icon over it.
-     */
-    public static final class Photo implements Parcelable {
-
-        public static final Creator<Photo> CREATOR = new Creator<Photo>() {
-
-            public Photo createFromParcel(Parcel in) {
-                return new Photo(in);
-            }
-
-            public Photo[] newArray(int size) {
-                return new Photo[size];
-            }
-        };
-
-        public Photo() {
-        }
-
-        private Photo(Parcel source) {
-            readFromParcel(source);
-        }
-
-        // From AccountType, everything we need to display the account type icon
-        public int titleRes;
-        public int iconRes;
-        public String syncAdapterPackageName;
-
-        public String contentDescription;
-        public String contentDescriptionChecked; // Talkback announcement when the photo is checked
-        public String accountType;
-        public String accountName;
-
-        public ValuesDelta valuesDelta;
-
-        /**
-         * Whether the photo is being displayed for the aggregate contact.
-         * This may be because it is marked super primary or it is the one quick contacts picked
-         * randomly to display because none is marked super primary.
-         */
-        public boolean primary;
-
-        /**
-         * Pointer back to the KindSectionDataList this photo came from.
-         * See {@link CompactRawContactsEditorView#getPhotos}
-         * See {@link CompactRawContactsEditorView#setPrimaryPhoto}
-         */
-        public int kindSectionDataListIndex = -1;
-        public int valuesDeltaListIndex = -1;
-
-        /** Newly taken or selected photo that has not yet been saved to CP2. */
-        public Uri updatedPhotoUri;
-
-        public long photoId;
-
-        @Override
-        public int describeContents() {
-            return 0;
-        }
-
-        @Override
-        public void writeToParcel(Parcel dest, int flags) {
-            dest.writeInt(titleRes);
-            dest.writeInt(iconRes);
-            dest.writeString(syncAdapterPackageName);
-            dest.writeParcelable(valuesDelta, flags);
-            dest.writeInt(primary ? 1 : 0);
-            dest.writeInt(kindSectionDataListIndex);
-            dest.writeInt(valuesDeltaListIndex);
-            dest.writeParcelable(updatedPhotoUri, flags);
-            dest.writeLong(photoId);
-        }
-
-        private void readFromParcel(Parcel source) {
-            final ClassLoader classLoader = getClass().getClassLoader();
-            titleRes = source.readInt();
-            iconRes = source.readInt();
-            syncAdapterPackageName = source.readString();
-            valuesDelta = source.readParcelable(classLoader);
-            primary = source.readInt() == 1;
-            kindSectionDataListIndex = source.readInt();
-            valuesDeltaListIndex = source.readInt();
-            updatedPhotoUri = source.readParcelable(classLoader);
-            photoId = source.readLong();
-        }
-    }
-
-    private final class PhotoAdapter extends BaseAdapter {
-
-        private final Context mContext;
-        private final LayoutInflater mLayoutInflater;
-
-        public PhotoAdapter() {
-            mContext = getContext();
-            mLayoutInflater = LayoutInflater.from(mContext);
-        }
-
-        @Override
-        public int getCount() {
-            return mPhotos == null ? 2 : mPhotos.size() + 2;
-        }
-
-        @Override
-        public Object getItem(int index) {
-            return mPhotos == null ? null : mPhotos.get(index);
-        }
-
-        @Override
-        public long getItemId(int index) {
-            return index;
-        }
-
-        @Override
-        public int getItemViewType(int index) {
-            if (index == 0) {
-                return VIEW_TYPE_TAKE_PHOTO;
-            } else if (index == 1) {
-                return VIEW_TYPE_ALL_PHOTOS;
-            } else {
-                return VIEW_TYPE_IMAGE;
-            }
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            if (mPhotos == null) return null;
-
-            // when position is 0 or 1, we should make sure account_type *is not* in convertView
-            // before reusing it.
-            if (getItemViewType(position) == 0){
-                if (convertView == null || convertView.findViewById(R.id.account_type) != null) {
-                    return mLayoutInflater.inflate(R.layout.take_a_photo_button, /* root =*/ null);
-                }
-                return convertView;
-            }
-
-            if (getItemViewType(position) == 1) {
-                if (convertView == null || convertView.findViewById(R.id.account_type) != null) {
-                    return mLayoutInflater.inflate(R.layout.all_photos_button, /* root =*/ null);
-                }
-                return convertView;
-            }
-
-            // when position greater than 1, we should make sure account_type *is* in convertView
-            // before reusing it.
-            position -= 2;
-
-            final View photoItemView;
-            if (convertView == null || convertView.findViewById(R.id.account_type) == null) {
-                photoItemView = mLayoutInflater.inflate(
-                        R.layout.compact_photo_selection_item, /* root =*/ null);
-            } else {
-                photoItemView = convertView;
-            }
-
-            final Photo photo = mPhotos.get(position);
-
-            // Bind the photo
-            final ImageView imageView = (ImageView) photoItemView.findViewById(R.id.image);
-            if (photo.updatedPhotoUri != null) {
-                EditorUiUtils.loadPhoto(ContactPhotoManager.getInstance(mContext),
-                        imageView, photo.updatedPhotoUri);
-            } else {
-                final Long photoFileId = EditorUiUtils.getPhotoFileId(photo.valuesDelta);
-                if (photoFileId != null) {
-                    final Uri photoUri = ContactsContract.DisplayPhoto.CONTENT_URI.buildUpon()
-                            .appendPath(photoFileId.toString()).build();
-                    EditorUiUtils.loadPhoto(ContactPhotoManager.getInstance(mContext),
-                            imageView, photoUri);
-                } else {
-                    imageView.setImageBitmap(EditorUiUtils.getPhotoBitmap(photo.valuesDelta));
-                }
-            }
-
-            // Add the account type icon
-            final ImageView accountTypeImageView = (ImageView)
-                    photoItemView.findViewById(R.id.account_type);
-            accountTypeImageView.setImageDrawable(AccountType.getDisplayIcon(
-                    mContext, photo.titleRes, photo.iconRes, photo.syncAdapterPackageName));
-
-            // Display a check icon over the primary photo
-            final ImageView checkImageView = (ImageView) photoItemView.findViewById(R.id.check);
-            checkImageView.setVisibility(photo.primary ? View.VISIBLE : View.GONE);
-
-            photoItemView.setContentDescription(photo.contentDescription);
-
-            return photoItemView;
-        }
-    }
-
-    private ArrayList<Photo> mPhotos;
-    private int mPhotoMode;
-    private Listener mListener;
-    private GridView mGridView;
-
-    public void setListener(Listener listener) {
-        mListener = listener;
-    }
-
-    public void setPhotos(ArrayList<Photo> photos, int photoMode) {
-        mPhotos = photos;
-        mPhotoMode = photoMode;
-        mGridView.setAccessibilityDelegate(new View.AccessibilityDelegate() {});
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        if (savedInstanceState != null) {
-            mPhotos = savedInstanceState.getParcelableArrayList(STATE_PHOTOS);
-            mPhotoMode = savedInstanceState.getInt(STATE_PHOTO_MODE, 0);
-        }
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        setHasOptionsMenu(true);
-
-        final PhotoAdapter photoAdapter = new PhotoAdapter();
-
-        final View view = inflater.inflate(R.layout.compact_photo_selection_fragment,
-                container, false);
-        mGridView = (GridView) view.findViewById(R.id.grid_view);
-        mGridView.setAdapter(photoAdapter);
-        mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                final PhotoSourceDialogFragment.Listener listener =
-                        (PhotoSourceDialogFragment.Listener) getActivity();
-                if (position == 0) {
-                    listener.onTakePhotoChosen();
-                } else if (position == 1) {
-                    listener.onPickFromGalleryChosen();
-                } else {
-                    // Call the host back so it can set the new photo as primary
-                    final Photo photo = (Photo) photoAdapter.getItem(position - 2);
-                    if (mListener != null) {
-                        mListener.onPhotoSelected(photo);
-                    }
-                    handleAccessibility(photo, position);
-                }
-            }
-        });
-
-        final Display display = getActivity().getWindowManager().getDefaultDisplay();
-        final DisplayMetrics outMetrics = new DisplayMetrics ();
-        display.getRealMetrics(outMetrics); // real metrics include the navigation Bar
-
-        final float numColumns = outMetrics.widthPixels /
-                getResources().getDimension(R.dimen.photo_picker_item_ideal_width);
-        mGridView.setNumColumns(Math.round(numColumns));
-
-        return view;
-    }
-
-    private void handleAccessibility(Photo photo, int position) {
-        // Use custom AccessibilityDelegate when closing this fragment to suppress event.
-        mGridView.setAccessibilityDelegate(new View.AccessibilityDelegate() {
-            @Override
-            public boolean onRequestSendAccessibilityEvent(
-                    ViewGroup host, View child,AccessibilityEvent event) {
-                if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED) {
-                    return false;
-                }
-                return super.onRequestSendAccessibilityEvent(host, child, event);
-            }
-        });
-        final ViewGroup clickedView = (ViewGroup) mGridView.getChildAt(position);
-        clickedView.announceForAccessibility(photo.contentDescriptionChecked);
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        outState.putParcelableArrayList(STATE_PHOTOS, mPhotos);
-        outState.putInt(STATE_PHOTO_MODE, mPhotoMode);
-        super.onSaveInstanceState(outState);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case android.R.id.home:
-                getActivity().onBackPressed();
-                return true;
-            default:
-                return super.onOptionsItemSelected(item);
-        }
-    }
-
-    @Override
-    public Context getContext() {
-        return getActivity();
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
deleted file mode 100644
index ece3829..0000000
--- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java
+++ /dev/null
@@ -1,1108 +0,0 @@
-/*
- * Copyright (C) 2015 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.editor;
-
-import com.android.contacts.R;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.util.AccountsListAdapter;
-import com.android.contacts.common.util.MaterialColorMapUtils;
-import com.android.contacts.util.UiClosables;
-
-import android.content.ContentUris;
-import android.content.Context;
-import android.database.Cursor;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.Event;
-import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
-import android.provider.ContactsContract.CommonDataKinds.Im;
-import android.provider.ContactsContract.CommonDataKinds.Nickname;
-import android.provider.ContactsContract.CommonDataKinds.Note;
-import android.provider.ContactsContract.CommonDataKinds.Organization;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.CommonDataKinds.Relation;
-import android.provider.ContactsContract.CommonDataKinds.SipAddress;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
-import android.provider.ContactsContract.CommonDataKinds.Website;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.Pair;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.ListPopupWindow;
-import android.widget.TextView;
-
-import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeSet;
-
-/**
- * View to display information from multiple {@link RawContactDelta}s grouped together.
- */
-public class CompactRawContactsEditorView extends LinearLayout implements View.OnClickListener {
-
-    static final String TAG = "CompactEditorView";
-
-    private static final KindSectionDataMapEntryComparator
-            KIND_SECTION_DATA_MAP_ENTRY_COMPARATOR = new KindSectionDataMapEntryComparator();
-
-    /**
-     * Callbacks for hosts of {@link CompactRawContactsEditorView}s.
-     */
-    public interface Listener {
-
-        /**
-         * Invoked when the structured name editor field has changed.
-         *
-         * @param rawContactId The raw contact ID from the underlying {@link RawContactDelta}.
-         * @param valuesDelta The values from the underlying {@link RawContactDelta}.
-         */
-        public void onNameFieldChanged(long rawContactId, ValuesDelta valuesDelta);
-
-        /**
-         * Invoked when the compact editor should rebind editors for a new account.
-         *
-         * @param oldState Old data being edited.
-         * @param oldAccount Old account associated with oldState.
-         * @param newAccount New account to be used.
-         */
-        public void onRebindEditorsForNewContact(RawContactDelta oldState,
-                AccountWithDataSet oldAccount, AccountWithDataSet newAccount);
-
-        /**
-         * Invoked when no editors could be bound for the contact.
-         */
-        public void onBindEditorsFailed();
-
-        /**
-         * Invoked after editors have been bound for the contact.
-         */
-        public void onEditorsBound();
-
-        /**
-         * Invoked when a rawcontact from linked contacts is selected in editor.
-         */
-        public void onRawContactSelected(Uri uri, long rawContactId, boolean isReadOnly);
-
-        /**
-         * Returns the map of raw contact IDs to newly taken or selected photos that have not
-         * yet been saved to CP2.
-         */
-        public Bundle getUpdatedPhotos();
-    }
-
-    /**
-     * Used to list the account info for the given raw contacts list.
-     */
-    private static final class RawContactAccountListAdapter extends BaseAdapter {
-        private final LayoutInflater mInflater;
-        private final Context mContext;
-        private final RawContactDeltaList mRawContactDeltas;
-
-        public RawContactAccountListAdapter(Context context, RawContactDeltaList rawContactDeltas) {
-            mContext = context;
-            mRawContactDeltas = new RawContactDeltaList();
-            for (RawContactDelta rawContactDelta : rawContactDeltas) {
-                if (rawContactDelta.isVisible() && rawContactDelta.getRawContactId() > 0) {
-                    mRawContactDeltas.add(rawContactDelta);
-                }
-            }
-            mInflater = LayoutInflater.from(context);
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            final View resultView = convertView != null ? convertView
-                    : mInflater.inflate(R.layout.account_selector_list_item, parent, false);
-
-            final RawContactDelta rawContactDelta = mRawContactDeltas.get(position);
-
-            final TextView text1 = (TextView) resultView.findViewById(android.R.id.text1);
-            final AccountType accountType = rawContactDelta.getRawContactAccountType(mContext);
-            text1.setText(accountType.getDisplayLabel(mContext));
-
-            final TextView text2 = (TextView) resultView.findViewById(android.R.id.text2);
-            final String accountName = rawContactDelta.getAccountName();
-            if (TextUtils.isEmpty(accountName)) {
-                text2.setVisibility(View.GONE);
-            } else {
-                // Truncate email addresses in the middle so we don't lose the domain
-                text2.setText(accountName);
-                text2.setEllipsize(TextUtils.TruncateAt.MIDDLE);
-            }
-
-            final ImageView icon = (ImageView) resultView.findViewById(android.R.id.icon);
-            icon.setImageDrawable(accountType.getDisplayIcon(mContext));
-
-            return resultView;
-        }
-
-        @Override
-        public int getCount() {
-            return mRawContactDeltas.size();
-        }
-
-        @Override
-        public RawContactDelta getItem(int position) {
-            return mRawContactDeltas.get(position);
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return getItem(position).getRawContactId();
-        }
-    }
-
-    /** Used to sort entire kind sections. */
-    private static final class KindSectionDataMapEntryComparator implements
-            Comparator<Map.Entry<String,KindSectionDataList>> {
-
-        final MimeTypeComparator mMimeTypeComparator = new MimeTypeComparator();
-
-        @Override
-        public int compare(Map.Entry<String, KindSectionDataList> entry1,
-                Map.Entry<String, KindSectionDataList> entry2) {
-            if (entry1 == entry2) return 0;
-            if (entry1 == null) return -1;
-            if (entry2 == null) return 1;
-
-            final String mimeType1 = entry1.getKey();
-            final String mimeType2 = entry2.getKey();
-
-            return mMimeTypeComparator.compare(mimeType1, mimeType2);
-        }
-    }
-
-    /**
-     * Sorts kinds roughly the same as quick contacts; we diverge in the following ways:
-     * <ol>
-     *     <li>All names are together at the top.</li>
-     *     <li>IM is moved up after addresses</li>
-     *     <li>SIP addresses are moved to below phone numbers</li>
-     *     <li>Group membership is placed at the end</li>
-     * </ol>
-     */
-    private static final class MimeTypeComparator implements Comparator<String> {
-
-        private static final List<String> MIME_TYPE_ORDER = Arrays.asList(new String[] {
-                StructuredName.CONTENT_ITEM_TYPE,
-                Nickname.CONTENT_ITEM_TYPE,
-                Organization.CONTENT_ITEM_TYPE,
-                Phone.CONTENT_ITEM_TYPE,
-                SipAddress.CONTENT_ITEM_TYPE,
-                Email.CONTENT_ITEM_TYPE,
-                StructuredPostal.CONTENT_ITEM_TYPE,
-                Im.CONTENT_ITEM_TYPE,
-                Website.CONTENT_ITEM_TYPE,
-                Event.CONTENT_ITEM_TYPE,
-                Relation.CONTENT_ITEM_TYPE,
-                Note.CONTENT_ITEM_TYPE,
-                GroupMembership.CONTENT_ITEM_TYPE
-        });
-
-        @Override
-        public int compare(String mimeType1, String mimeType2) {
-            if (mimeType1 == mimeType2) return 0;
-            if (mimeType1 == null) return -1;
-            if (mimeType2 == null) return 1;
-
-            int index1 = MIME_TYPE_ORDER.indexOf(mimeType1);
-            int index2 = MIME_TYPE_ORDER.indexOf(mimeType2);
-
-            // Fallback to alphabetical ordering of the mime type if both are not found
-            if (index1 < 0 && index2 < 0) return mimeType1.compareTo(mimeType2);
-            if (index1 < 0) return 1;
-            if (index2 < 0) return -1;
-
-            return index1 < index2 ? -1 : 1;
-        }
-    }
-
-    /**
-     * Sorts primary accounts and google account types before others.
-     */
-    private static final class EditorComparator implements Comparator<KindSectionData> {
-
-        private RawContactDeltaComparator mRawContactDeltaComparator;
-
-        private EditorComparator(Context context) {
-            mRawContactDeltaComparator = new RawContactDeltaComparator(context);
-        }
-
-        @Override
-        public int compare(KindSectionData kindSectionData1, KindSectionData kindSectionData2) {
-            if (kindSectionData1 == kindSectionData2) return 0;
-            if (kindSectionData1 == null) return -1;
-            if (kindSectionData2 == null) return 1;
-
-            final RawContactDelta rawContactDelta1 = kindSectionData1.getRawContactDelta();
-            final RawContactDelta rawContactDelta2 = kindSectionData2.getRawContactDelta();
-
-            if (rawContactDelta1 == rawContactDelta2) return 0;
-            if (rawContactDelta1 == null) return -1;
-            if (rawContactDelta2 == null) return 1;
-
-            return mRawContactDeltaComparator.compare(rawContactDelta1, rawContactDelta2);
-        }
-    }
-
-    public static class SavedState extends BaseSavedState {
-
-        public static final Parcelable.Creator<SavedState> CREATOR =
-                new Parcelable.Creator<SavedState>() {
-                    public SavedState createFromParcel(Parcel in) {
-                        return new SavedState(in);
-                    }
-                    public SavedState[] newArray(int size) {
-                        return new SavedState[size];
-                    }
-                };
-
-        private boolean mIsExpanded;
-
-        public SavedState(Parcelable superState) {
-            super(superState);
-        }
-
-        private SavedState(Parcel in) {
-            super(in);
-            mIsExpanded = in.readInt() != 0;
-        }
-
-        @Override
-        public void writeToParcel(Parcel out, int flags) {
-            super.writeToParcel(out, flags);
-            out.writeInt(mIsExpanded ? 1 : 0);
-        }
-    }
-
-    private CompactRawContactsEditorView.Listener mListener;
-
-    private AccountTypeManager mAccountTypeManager;
-    private LayoutInflater mLayoutInflater;
-
-    private ViewIdGenerator mViewIdGenerator;
-    private MaterialColorMapUtils.MaterialPalette mMaterialPalette;
-    private long mPhotoId = -1;
-    private boolean mHasNewContact;
-    private boolean mIsUserProfile;
-    private AccountWithDataSet mPrimaryAccount;
-    private Map<String,KindSectionDataList> mKindSectionDataMap = new HashMap<>();
-
-    // Account header
-    private View mAccountHeaderContainer;
-    private TextView mAccountHeaderType;
-    private TextView mAccountHeaderName;
-    private ImageView mAccountHeaderIcon;
-
-    // Account selector
-    private View mAccountSelectorContainer;
-    private View mAccountSelector;
-    private TextView mAccountSelectorType;
-    private TextView mAccountSelectorName;
-
-    // Raw contacts selector
-    private View mRawContactContainer;
-    private TextView mRawContactSummary;
-
-    private CompactPhotoEditorView mPhotoView;
-    private ViewGroup mKindSectionViews;
-    private Map<String,List<CompactKindSectionView>> mKindSectionViewsMap = new HashMap<>();
-    private View mMoreFields;
-
-    private boolean mIsExpanded;
-
-    private long mPhotoRawContactId;
-    private ValuesDelta mPhotoValuesDelta;
-
-    private Pair<KindSectionData, ValuesDelta> mPrimaryNameKindSectionData;
-
-    public CompactRawContactsEditorView(Context context) {
-        super(context);
-    }
-
-    public CompactRawContactsEditorView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    /**
-     * Sets the receiver for {@link CompactRawContactsEditorView} callbacks.
-     */
-    public void setListener(Listener listener) {
-        mListener = listener;
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-
-        mAccountTypeManager = AccountTypeManager.getInstance(getContext());
-        mLayoutInflater = (LayoutInflater)
-                getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
-        // Account header
-        mAccountHeaderContainer = findViewById(R.id.account_container);
-        mAccountHeaderType = (TextView) findViewById(R.id.account_type);
-        mAccountHeaderName = (TextView) findViewById(R.id.account_name);
-        mAccountHeaderIcon = (ImageView) findViewById(R.id.account_type_icon);
-
-        // Account selector
-        mAccountSelectorContainer = findViewById(R.id.account_selector_container);
-        mAccountSelector = findViewById(R.id.account);
-        mAccountSelectorType = (TextView) findViewById(R.id.account_type_selector);
-        mAccountSelectorName = (TextView) findViewById(R.id.account_name_selector);
-
-        // Raw contacts selector
-        mRawContactContainer = findViewById(R.id.all_rawcontacts_accounts_container);
-        mRawContactSummary = (TextView) findViewById(R.id.rawcontacts_accounts_summary);
-
-        mPhotoView = (CompactPhotoEditorView) findViewById(R.id.photo_editor);
-        mKindSectionViews = (LinearLayout) findViewById(R.id.kind_section_views);
-        mMoreFields = findViewById(R.id.more_fields);
-        mMoreFields.setOnClickListener(this);
-    }
-
-    @Override
-    public void onClick(View view) {
-        if (view.getId() == R.id.more_fields) {
-            showAllFields();
-        }
-    }
-
-    @Override
-    public void setEnabled(boolean enabled) {
-        super.setEnabled(enabled);
-        final int childCount = mKindSectionViews.getChildCount();
-        for (int i = 0; i < childCount; i++) {
-            mKindSectionViews.getChildAt(i).setEnabled(enabled);
-        }
-    }
-
-    @Override
-    public Parcelable onSaveInstanceState() {
-        final Parcelable superState = super.onSaveInstanceState();
-        final SavedState savedState = new SavedState(superState);
-        savedState.mIsExpanded = mIsExpanded;
-        return savedState;
-    }
-
-    @Override
-    public void onRestoreInstanceState(Parcelable state) {
-        if(!(state instanceof SavedState)) {
-            super.onRestoreInstanceState(state);
-            return;
-        }
-        final SavedState savedState = (SavedState) state;
-        super.onRestoreInstanceState(savedState.getSuperState());
-        mIsExpanded = savedState.mIsExpanded;
-        if (mIsExpanded) {
-            showAllFields();
-        }
-    }
-
-    /**
-     * Pass through to {@link CompactPhotoEditorView#setListener}.
-     */
-    public void setPhotoListener(CompactPhotoEditorView.Listener listener) {
-        mPhotoView.setListener(listener);
-    }
-
-    public void removePhoto() {
-        mPhotoValuesDelta.setFromTemplate(true);
-        mPhotoValuesDelta.put(Photo.PHOTO, (byte[]) null);
-
-        mPhotoView.removePhoto();
-    }
-
-    /**
-     * Pass through to {@link CompactPhotoEditorView#setFullSizedPhoto(Uri)}.
-     */
-    public void setFullSizePhoto(Uri photoUri) {
-        mPhotoView.setFullSizedPhoto(photoUri);
-    }
-
-    public void updatePhoto(Uri photoUri) {
-        mPhotoValuesDelta.setFromTemplate(false);
-        // Unset primary for all photos
-        unsetSuperPrimaryFromAllPhotos();
-        // Mark the currently displayed photo as primary
-        mPhotoValuesDelta.setSuperPrimary(true);
-
-        // Even though high-res photos cannot be saved by passing them via
-        // an EntityDeltaList (since they cause the Bundle size limit to be
-        // exceeded), we still pass a low-res thumbnail. This simplifies
-        // code all over the place, because we don't have to test whether
-        // there is a change in EITHER the delta-list OR a changed photo...
-        // this way, there is always a change in the delta-list.
-        try {
-            final byte[] bytes = EditorUiUtils.getCompressedThumbnailBitmapBytes(
-                    getContext(), photoUri);
-            if (bytes != null) {
-                mPhotoValuesDelta.setPhoto(bytes);
-            }
-        } catch (FileNotFoundException e) {
-            elog("Failed to get bitmap from photo Uri");
-        }
-
-        mPhotoView.setFullSizedPhoto(photoUri);
-    }
-
-    private void unsetSuperPrimaryFromAllPhotos() {
-        final List<KindSectionData> kindSectionDataList =
-                mKindSectionDataMap.get(Photo.CONTENT_ITEM_TYPE);
-        for (KindSectionData kindSectionData : kindSectionDataList) {
-            for (ValuesDelta valuesDelta : kindSectionData.getNonEmptyValuesDeltas()) {
-                valuesDelta.setSuperPrimary(false);
-            }
-        }
-    }
-
-    /**
-     * Pass through to {@link CompactPhotoEditorView#isWritablePhotoSet}.
-     */
-    public boolean isWritablePhotoSet() {
-        return mPhotoView.isWritablePhotoSet();
-    }
-
-    /**
-     * Get the raw contact ID for the CompactHeaderView photo.
-     */
-    public long getPhotoRawContactId() {
-        return mPhotoRawContactId;
-    }
-
-    public StructuredNameEditorView getPrimaryNameEditorView() {
-        final CompactKindSectionView primaryNameKindSectionView = getPrimaryNameKindSectionView();
-        return primaryNameKindSectionView == null
-                ? null : primaryNameKindSectionView.getPrimaryNameEditorView();
-    }
-
-    /**
-     * Returns a data holder for every non-default/non-empty photo from each raw contact, whether
-     * the raw contact is writable or not.
-     */
-    public ArrayList<CompactPhotoSelectionFragment.Photo> getPhotos() {
-        final ArrayList<CompactPhotoSelectionFragment.Photo> photos = new ArrayList<>();
-
-        final Bundle updatedPhotos = mListener == null ? null : mListener.getUpdatedPhotos();
-
-        final List<KindSectionData> kindSectionDataList =
-                mKindSectionDataMap.get(Photo.CONTENT_ITEM_TYPE);
-        for (int i = 0; i < kindSectionDataList.size(); i++) {
-            final KindSectionData kindSectionData = kindSectionDataList.get(i);
-            final AccountType accountType = kindSectionData.getAccountType();
-            final List<ValuesDelta> valuesDeltas = kindSectionData.getNonEmptyValuesDeltas();
-            if (valuesDeltas.isEmpty()) continue;
-            for (int j = 0; j < valuesDeltas.size(); j++) {
-                final ValuesDelta valuesDelta = valuesDeltas.get(j);
-                final Bitmap bitmap = EditorUiUtils.getPhotoBitmap(valuesDelta);
-                if (bitmap == null) continue;
-
-                final CompactPhotoSelectionFragment.Photo photo =
-                        new CompactPhotoSelectionFragment.Photo();
-                photo.titleRes = accountType.titleRes;
-                photo.iconRes = accountType.iconRes;
-                photo.syncAdapterPackageName = accountType.syncAdapterPackageName;
-                photo.valuesDelta = valuesDelta;
-                photo.primary = valuesDelta.isSuperPrimary();
-                photo.kindSectionDataListIndex = i;
-                photo.valuesDeltaListIndex = j;
-                photo.photoId = valuesDelta.getId();
-
-                if (updatedPhotos != null) {
-                    photo.updatedPhotoUri = (Uri) updatedPhotos.get(String.valueOf(
-                            kindSectionData.getRawContactDelta().getRawContactId()));
-                }
-
-                final CharSequence accountTypeLabel = accountType.getDisplayLabel(getContext());
-                photo.accountType = accountTypeLabel == null ? "" : accountTypeLabel.toString();
-                final String accountName = kindSectionData.getRawContactDelta().getAccountName();
-                photo.accountName = accountName == null ? "" : accountName;
-
-                photos.add(photo);
-            }
-        }
-
-        return photos;
-    }
-
-    /**
-     * Marks the raw contact photo given as primary for the aggregate contact and updates the
-     * UI.
-     */
-    public void setPrimaryPhoto(CompactPhotoSelectionFragment.Photo photo) {
-        // Find the values delta to mark as primary
-        final KindSectionDataList kindSectionDataList =
-                mKindSectionDataMap.get(Photo.CONTENT_ITEM_TYPE);
-        if (photo.kindSectionDataListIndex < 0
-                || photo.kindSectionDataListIndex >= kindSectionDataList.size()) {
-            wlog("Invalid kind section data list index");
-            return;
-        }
-        final KindSectionData kindSectionData =
-                kindSectionDataList.get(photo.kindSectionDataListIndex);
-        final List<ValuesDelta> valuesDeltaList = kindSectionData.getNonEmptyValuesDeltas();
-        if (photo.valuesDeltaListIndex >= valuesDeltaList.size()) {
-            wlog("Invalid values delta list index");
-            return;
-        }
-
-        // Update values delta
-        final ValuesDelta valuesDelta = valuesDeltaList.get(photo.valuesDeltaListIndex);
-        valuesDelta.setFromTemplate(false);
-        unsetSuperPrimaryFromAllPhotos();
-        valuesDelta.setSuperPrimary(true);
-
-        // Update the UI
-        mPhotoView.setPhoto(valuesDelta, mMaterialPalette);
-    }
-
-    public View getAggregationAnchorView() {
-        final List<CompactKindSectionView> kindSectionViews = getKindSectionViews(
-                StructuredName.CONTENT_ITEM_TYPE);
-        if (!kindSectionViews.isEmpty()) {
-            return mKindSectionViews.getChildAt(0).findViewById(R.id.anchor_view);
-        }
-        return null;
-    }
-
-    public void setGroupMetaData(Cursor groupMetaData) {
-        final List<CompactKindSectionView> kindSectionViews = getKindSectionViews(
-                GroupMembership.CONTENT_ITEM_TYPE);
-        for (CompactKindSectionView kindSectionView : kindSectionViews) {
-            kindSectionView.setGroupMetaData(groupMetaData);
-            if (mIsExpanded) {
-                kindSectionView.setHideWhenEmpty(false);
-                kindSectionView.updateEmptyEditors(/* shouldAnimate =*/ true);
-            }
-        }
-    }
-
-    public void setState(RawContactDeltaList rawContactDeltas,
-            MaterialColorMapUtils.MaterialPalette materialPalette, ViewIdGenerator viewIdGenerator,
-            long photoId, boolean hasNewContact, boolean isUserProfile,
-            AccountWithDataSet primaryAccount) {
-        mKindSectionDataMap.clear();
-        mKindSectionViews.removeAllViews();
-        mMoreFields.setVisibility(View.VISIBLE);
-
-        mMaterialPalette = materialPalette;
-        mViewIdGenerator = viewIdGenerator;
-        mPhotoId = photoId;
-
-        mHasNewContact = hasNewContact;
-        mIsUserProfile = isUserProfile;
-        mPrimaryAccount = primaryAccount;
-        if (mPrimaryAccount == null) {
-            mPrimaryAccount = ContactEditorUtils.getInstance(getContext()).getDefaultAccount();
-        }
-        vlog("state: primary " + mPrimaryAccount);
-
-        // Parse the given raw contact deltas
-        if (rawContactDeltas == null || rawContactDeltas.isEmpty()) {
-            elog("No raw contact deltas");
-            if (mListener != null) mListener.onBindEditorsFailed();
-            return;
-        }
-        parseRawContactDeltas(rawContactDeltas);
-        if (mKindSectionDataMap.isEmpty()) {
-            elog("No kind section data parsed from RawContactDelta(s)");
-            if (mListener != null) mListener.onBindEditorsFailed();
-            return;
-        }
-
-        // Get the primary name kind section data
-        mPrimaryNameKindSectionData = mKindSectionDataMap.get(StructuredName.CONTENT_ITEM_TYPE)
-                .getEntryToWrite(/* id =*/ -1, mPrimaryAccount, mIsUserProfile);
-        if (mPrimaryNameKindSectionData != null) {
-            // Ensure that a structured name and photo exists
-            final RawContactDelta rawContactDelta =
-                    mPrimaryNameKindSectionData.first.getRawContactDelta();
-            RawContactModifier.ensureKindExists(
-                    rawContactDelta,
-                    rawContactDelta.getAccountType(mAccountTypeManager),
-                    StructuredName.CONTENT_ITEM_TYPE);
-            RawContactModifier.ensureKindExists(
-                    rawContactDelta,
-                    rawContactDelta.getAccountType(mAccountTypeManager),
-                    Photo.CONTENT_ITEM_TYPE);
-        }
-
-        // Setup the view
-        addAccountInfo(rawContactDeltas);
-        addPhotoView();
-        addKindSectionViews();
-
-        if (mIsExpanded) showAllFields();
-
-        if (mListener != null) mListener.onEditorsBound();
-    }
-
-    private void parseRawContactDeltas(RawContactDeltaList rawContactDeltas) {
-        // Build the kind section data list map
-        vlog("parse: " + rawContactDeltas.size() + " rawContactDelta(s)");
-        for (int j = 0; j < rawContactDeltas.size(); j++) {
-            final RawContactDelta rawContactDelta = rawContactDeltas.get(j);
-            vlog("parse: " + j + " rawContactDelta" + rawContactDelta);
-            if (rawContactDelta == null || !rawContactDelta.isVisible()) continue;
-            final AccountType accountType = rawContactDelta.getAccountType(mAccountTypeManager);
-            if (accountType == null) continue;
-            final List<DataKind> dataKinds = accountType.getSortedDataKinds();
-            final int dataKindSize = dataKinds == null ? 0 : dataKinds.size();
-            vlog("parse: " + dataKindSize + " dataKinds(s)");
-            for (int i = 0; i < dataKindSize; i++) {
-                final DataKind dataKind = dataKinds.get(i);
-                if (dataKind == null || !dataKind.editable) {
-                    vlog("parse: " + i + " " + dataKind.mimeType + " dropped read-only");
-                    continue;
-                }
-                final String mimeType = dataKind.mimeType;
-
-                // Skip psuedo mime types
-                if (DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME.equals(mimeType)
-                        || DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME.equals(mimeType)) {
-                    vlog("parse: " + i + " " + dataKind.mimeType + " dropped pseudo type");
-                    continue;
-                }
-
-                final KindSectionDataList kindSectionDataList =
-                        getOrCreateKindSectionDataList(mimeType);
-                final KindSectionData kindSectionData =
-                        new KindSectionData(accountType, dataKind, rawContactDelta);
-                kindSectionDataList.add(kindSectionData);
-
-                vlog("parse: " + i + " " + dataKind.mimeType + " " +
-                        kindSectionData.getValuesDeltas().size() + " value(s) " +
-                        kindSectionData.getNonEmptyValuesDeltas().size() + " non-empty value(s) " +
-                        kindSectionData.getVisibleValuesDeltas().size() +
-                        " visible value(s)");
-            }
-        }
-    }
-
-    private KindSectionDataList getOrCreateKindSectionDataList(String mimeType) {
-        KindSectionDataList kindSectionDataList = mKindSectionDataMap.get(mimeType);
-        if (kindSectionDataList == null) {
-            kindSectionDataList = new KindSectionDataList();
-            mKindSectionDataMap.put(mimeType, kindSectionDataList);
-        }
-        return kindSectionDataList;
-    }
-
-    private void addAccountInfo(RawContactDeltaList rawContactDeltas) {
-        mAccountHeaderContainer.setVisibility(View.GONE);
-        mAccountSelectorContainer.setVisibility(View.GONE);
-        mRawContactContainer.setVisibility(View.GONE);
-
-        if (mPrimaryNameKindSectionData == null) return;
-        final RawContactDelta rawContactDelta =
-                mPrimaryNameKindSectionData.first.getRawContactDelta();
-
-        // Get the account information for the primary raw contact delta
-        final Pair<String,String> accountInfo = mIsUserProfile
-                ? EditorUiUtils.getLocalAccountInfo(getContext(),
-                        rawContactDelta.getAccountName(),
-                        rawContactDelta.getAccountType(mAccountTypeManager))
-                : EditorUiUtils.getAccountInfo(getContext(),
-                        rawContactDelta.getAccountName(),
-                        rawContactDelta.getAccountType(mAccountTypeManager));
-
-        // Either the account header or selector should be shown, not both.
-        final List<AccountWithDataSet> accounts =
-                AccountTypeManager.getInstance(getContext()).getAccounts(true);
-        if (mHasNewContact && !mIsUserProfile) {
-            if (accounts.size() > 1) {
-                addAccountSelector(accountInfo, rawContactDelta);
-            } else {
-                addAccountHeader(accountInfo);
-            }
-        } else if (mIsUserProfile || !shouldHideAccountContainer(rawContactDeltas)) {
-            addAccountHeader(accountInfo);
-        }
-
-        // The raw contact selector should only display linked raw contacts that can be edited in
-        // the full editor (i.e. they are not newly created raw contacts)
-        final RawContactAccountListAdapter adapter =  new RawContactAccountListAdapter(getContext(),
-                getRawContactDeltaListForSelector(rawContactDeltas));
-        if (adapter.getCount() > 0) {
-            final String accountsSummary = getResources().getQuantityString(
-                    R.plurals.compact_editor_linked_contacts_selector_title,
-                    adapter.getCount(), adapter.getCount());
-            addRawContactAccountSelector(accountsSummary, adapter);
-        }
-    }
-
-    private RawContactDeltaList getRawContactDeltaListForSelector(
-            RawContactDeltaList rawContactDeltas) {
-        // Sort raw contacts so google accounts come first
-        Collections.sort(rawContactDeltas, new RawContactDeltaComparator(getContext()));
-
-        final RawContactDeltaList result = new RawContactDeltaList();
-        for (RawContactDelta rawContactDelta : rawContactDeltas) {
-            if (rawContactDelta.isVisible() && rawContactDelta.getRawContactId() > 0) {
-                // Only add raw contacts that can be opened in the editor
-                result.add(rawContactDelta);
-            }
-        }
-        // Don't return a list of size 1 that would just open the raw contact being edited
-        // in the compact editor in the full editor
-        if (result.size() == 1 && result.get(0).getRawContactAccountType(
-                getContext()).areContactsWritable()) {
-            result.clear();
-            return result;
-        }
-        return result;
-    }
-
-    // Returns true if there are multiple writable rawcontacts and no read-only ones,
-    // or there are both writable and read-only rawcontacts.
-    private boolean shouldHideAccountContainer(RawContactDeltaList rawContactDeltas) {
-        int writable = 0;
-        int readonly = 0;
-        for (RawContactDelta rawContactDelta : rawContactDeltas) {
-            if (rawContactDelta.isVisible() && rawContactDelta.getRawContactId() > 0) {
-                if (rawContactDelta.getRawContactAccountType(getContext()).areContactsWritable()) {
-                    writable++;
-                } else {
-                    readonly++;
-                }
-            }
-        }
-        return (writable > 1 || (writable > 0 && readonly > 0));
-    }
-
-    private void addAccountHeader(Pair<String,String> accountInfo) {
-        mAccountHeaderContainer.setVisibility(View.VISIBLE);
-
-        // Set the account name
-        final String accountName = TextUtils.isEmpty(accountInfo.first)
-                ? accountInfo.second : accountInfo.first;
-        mAccountHeaderName.setVisibility(View.VISIBLE);
-        mAccountHeaderName.setText(accountName);
-
-        // Set the account type
-        final String selectorTitle = getResources().getString(
-                R.string.compact_editor_account_selector_title);
-        mAccountHeaderType.setText(selectorTitle);
-
-        // Set the icon
-        if (mPrimaryNameKindSectionData != null) {
-            final RawContactDelta rawContactDelta =
-                    mPrimaryNameKindSectionData.first.getRawContactDelta();
-            if (rawContactDelta != null) {
-                final AccountType accountType =
-                        rawContactDelta.getRawContactAccountType(getContext());
-                mAccountHeaderIcon.setImageDrawable(accountType.getDisplayIcon(getContext()));
-            }
-        }
-
-        // Set the content description
-        mAccountHeaderContainer.setContentDescription(
-                EditorUiUtils.getAccountInfoContentDescription(accountName, selectorTitle));
-    }
-
-    private void addAccountSelector(Pair<String,String> accountInfo,
-            final RawContactDelta rawContactDelta) {
-        mAccountSelectorContainer.setVisibility(View.VISIBLE);
-
-        if (TextUtils.isEmpty(accountInfo.first)) {
-            // Hide this view so the other text view will be centered vertically
-            mAccountSelectorName.setVisibility(View.GONE);
-        } else {
-            mAccountSelectorName.setVisibility(View.VISIBLE);
-            mAccountSelectorName.setText(accountInfo.first);
-        }
-
-        final String selectorTitle = getResources().getString(
-                R.string.compact_editor_account_selector_title);
-        mAccountSelectorType.setText(selectorTitle);
-
-        mAccountSelectorContainer.setContentDescription(getResources().getString(
-                R.string.compact_editor_account_selector_description, accountInfo.first));
-
-        mAccountSelectorContainer.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                final ListPopupWindow popup = new ListPopupWindow(getContext(), null);
-                final AccountsListAdapter adapter =
-                        new AccountsListAdapter(getContext(),
-                                AccountsListAdapter.AccountListFilter.ACCOUNTS_CONTACT_WRITABLE,
-                                mPrimaryAccount);
-                popup.setWidth(mAccountSelectorContainer.getWidth());
-                popup.setAnchorView(mAccountSelectorContainer);
-                popup.setAdapter(adapter);
-                popup.setModal(true);
-                popup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
-                popup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-                    @Override
-                    public void onItemClick(AdapterView<?> parent, View view, int position,
-                            long id) {
-                        UiClosables.closeQuietly(popup);
-                        final AccountWithDataSet newAccount = adapter.getItem(position);
-                        if (mListener != null && !mPrimaryAccount.equals(newAccount)) {
-                            mListener.onRebindEditorsForNewContact(
-                                    rawContactDelta,
-                                    mPrimaryAccount,
-                                    newAccount);
-                        }
-                    }
-                });
-                popup.show();
-            }
-        });
-    }
-
-    private void addRawContactAccountSelector(String accountsSummary,
-            final RawContactAccountListAdapter adapter) {
-        mRawContactContainer.setVisibility(View.VISIBLE);
-
-        mRawContactSummary.setText(accountsSummary);
-
-        mRawContactContainer.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                final ListPopupWindow popup = new ListPopupWindow(getContext(), null);
-                popup.setWidth(mRawContactContainer.getWidth());
-                popup.setAnchorView(mRawContactContainer);
-                popup.setAdapter(adapter);
-                popup.setModal(true);
-                popup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
-                popup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-                    @Override
-                    public void onItemClick(AdapterView<?> parent, View view, int position,
-                                            long id) {
-                        UiClosables.closeQuietly(popup);
-
-                        if (mListener != null) {
-                            final long rawContactId = adapter.getItemId(position);
-                            final Uri rawContactUri = ContentUris.withAppendedId(
-                                    ContactsContract.RawContacts.CONTENT_URI, rawContactId);
-                            final RawContactDelta rawContactDelta = adapter.getItem(position);
-                            final AccountTypeManager accountTypes = AccountTypeManager.getInstance(
-                                    getContext());
-                            final AccountType accountType = rawContactDelta.getAccountType(
-                                    accountTypes);
-                            final boolean isReadOnly = !accountType.areContactsWritable();
-
-                            mListener.onRawContactSelected(rawContactUri, rawContactId, isReadOnly);
-                        }
-                    }
-                });
-                popup.show();
-            }
-        });
-    }
-
-    private void addPhotoView() {
-        // Get the kind section data and values delta that we will display in the photo view
-        final KindSectionDataList kindSectionDataList =
-                mKindSectionDataMap.get(Photo.CONTENT_ITEM_TYPE);
-        final Pair<KindSectionData,ValuesDelta> photoToDisplay =
-                kindSectionDataList.getEntryToDisplay(mPhotoId);
-        if (photoToDisplay == null) {
-            wlog("photo: no kind section data parsed");
-            mPhotoView.setVisibility(View.GONE);
-            return;
-        }
-
-        // Set the photo view
-        mPhotoView.setPhoto(photoToDisplay.second, mMaterialPalette);
-
-        // Find the raw contact ID and values delta that will be written when the photo is edited
-        final Pair<KindSectionData, ValuesDelta> photoToWrite = kindSectionDataList.getEntryToWrite(
-                mPhotoId, mPrimaryAccount, mIsUserProfile);
-        if (photoToWrite == null) {
-            mPhotoView.setReadOnly(true);
-            return;
-        }
-        mPhotoView.setReadOnly(false);
-        mPhotoRawContactId = photoToWrite.first.getRawContactDelta().getRawContactId();
-        mPhotoValuesDelta = photoToWrite.second;
-    }
-
-    private void addKindSectionViews() {
-        // Sort the kinds
-        final TreeSet<Map.Entry<String,KindSectionDataList>> entries =
-                new TreeSet<>(KIND_SECTION_DATA_MAP_ENTRY_COMPARATOR);
-        entries.addAll(mKindSectionDataMap.entrySet());
-
-        vlog("kind: " + entries.size() + " kindSection(s)");
-        int i = -1;
-        for (Map.Entry<String, KindSectionDataList> entry : entries) {
-            i++;
-
-            final String mimeType = entry.getKey();
-
-            if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                if (mPrimaryNameKindSectionData == null) {
-                    vlog("kind: " + i + " " + mimeType + " dropped");
-                    continue;
-                }
-                vlog("kind: " + i + " " + mimeType + " using first entry only");
-                final KindSectionDataList kindSectionDataList = new KindSectionDataList();
-                kindSectionDataList.add(mPrimaryNameKindSectionData.first);
-                final CompactKindSectionView kindSectionView = inflateKindSectionView(
-                        mKindSectionViews, kindSectionDataList, mimeType,
-                        mPrimaryNameKindSectionData.second);
-                mKindSectionViews.addView(kindSectionView);
-
-                // Keep a pointer to all the KindSectionsViews for each mimeType
-                getKindSectionViews(mimeType).add(kindSectionView);
-            } else {
-                final KindSectionDataList kindSectionDataList = entry.getValue();
-
-                // Ignore mime types that we've already handled
-                if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                    vlog("kind: " + i + " " + mimeType + " dropped");
-                    continue;
-                }
-
-                // Don't show more than one group editor on the compact editor.
-                // Groups will still be editable for each raw contact individually on the full editor.
-                if (GroupMembership.CONTENT_ITEM_TYPE.equals(mimeType)
-                        && kindSectionDataList.size() > 1) {
-                    vlog("kind: " + i + " " + mimeType + " dropped");
-                    continue;
-                }
-
-                if (kindSectionDataList != null && !kindSectionDataList.isEmpty()) {
-                    vlog("kind: " + i + " " + mimeType + " " + kindSectionDataList.size() +
-                            " kindSectionData(s)");
-
-                    final CompactKindSectionView kindSectionView = inflateKindSectionView(
-                            mKindSectionViews, kindSectionDataList, mimeType,
-                            /* primaryValueDelta =*/ null);
-                    mKindSectionViews.addView(kindSectionView);
-
-                    // Keep a pointer to all the KindSectionsViews for each mimeType
-                    getKindSectionViews(mimeType).add(kindSectionView);
-                }
-            }
-        }
-    }
-
-    private List<CompactKindSectionView> getKindSectionViews(String mimeType) {
-        List<CompactKindSectionView> kindSectionViews = mKindSectionViewsMap.get(mimeType);
-        if (kindSectionViews == null) {
-            kindSectionViews = new ArrayList<>();
-            mKindSectionViewsMap.put(mimeType, kindSectionViews);
-        }
-        return kindSectionViews;
-    }
-
-    private CompactKindSectionView inflateKindSectionView(ViewGroup viewGroup,
-            KindSectionDataList kindSectionDataList, String mimeType,
-            ValuesDelta primaryValuesDelta) {
-        final CompactKindSectionView kindSectionView = (CompactKindSectionView)
-                mLayoutInflater.inflate(R.layout.compact_item_kind_section, viewGroup,
-                        /* attachToRoot =*/ false);
-        kindSectionView.setIsUserProfile(mIsUserProfile);
-
-        if (Phone.CONTENT_ITEM_TYPE.equals(mimeType)
-                || Email.CONTENT_ITEM_TYPE.equals(mimeType)) {
-            // Phone numbers and email addresses are always displayed,
-            // even if they are empty
-            kindSectionView.setHideWhenEmpty(false);
-        }
-
-        // Since phone numbers and email addresses displayed even if they are empty,
-        // they will be the only types you add new values to initially for new contacts
-        kindSectionView.setShowOneEmptyEditor(true);
-
-        // Sort non-name editors so they wind up in the order we want
-        if (!StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
-            Collections.sort(kindSectionDataList, new EditorComparator(getContext()));
-        }
-
-        kindSectionView.setState(kindSectionDataList, mViewIdGenerator, mListener,
-                primaryValuesDelta);
-
-        return kindSectionView;
-    }
-
-    void maybeSetReadOnlyDisplayNameAsPrimary(String readOnlyDisplayName) {
-        if (TextUtils.isEmpty(readOnlyDisplayName)) return;
-        final CompactKindSectionView primaryNameKindSectionView = getPrimaryNameKindSectionView();
-        if (primaryNameKindSectionView != null && primaryNameKindSectionView.isEmptyName()) {
-            vlog("name: using read only display name as primary name");
-            primaryNameKindSectionView.setName(readOnlyDisplayName);
-        }
-    }
-
-    private CompactKindSectionView getPrimaryNameKindSectionView() {
-        final List<CompactKindSectionView> kindSectionViews
-                = mKindSectionViewsMap.get(StructuredName.CONTENT_ITEM_TYPE);
-        return kindSectionViews == null || kindSectionViews.isEmpty()
-                ? null : kindSectionViews.get(0);
-    }
-
-    private void showAllFields() {
-        // Stop hiding empty editors and allow the user to enter values for all kinds now
-        for (int i = 0; i < mKindSectionViews.getChildCount(); i++) {
-            final CompactKindSectionView kindSectionView =
-                    (CompactKindSectionView) mKindSectionViews.getChildAt(i);
-            kindSectionView.setHideWhenEmpty(false);
-            kindSectionView.updateEmptyEditors(/* shouldAnimate =*/ true);
-        }
-        mIsExpanded = true;
-
-        // Hide the more fields button
-        mMoreFields.setVisibility(View.GONE);
-    }
-
-    private static void vlog(String message) {
-        if (Log.isLoggable(TAG, Log.VERBOSE)) {
-            Log.v(TAG, message);
-        }
-    }
-
-    private static void wlog(String message) {
-        if (Log.isLoggable(TAG, Log.WARN)) {
-            Log.w(TAG, message);
-        }
-    }
-
-    private static void elog(String message) {
-        Log.e(TAG, message);
-    }
-}
diff --git a/src/com/android/contacts/editor/ContactEditorBaseFragment.java b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
deleted file mode 100644
index 4182e1f..0000000
--- a/src/com/android/contacts/editor/ContactEditorBaseFragment.java
+++ /dev/null
@@ -1,1725 +0,0 @@
-/*
- * Copyright (C) 2015 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.editor;
-
-import com.android.contacts.common.logging.ScreenEvent.ScreenType;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.GroupMetaDataLoader;
-import com.android.contacts.R;
-import com.android.contacts.activities.ContactEditorAccountsChangedActivity;
-import com.android.contacts.activities.ContactEditorBaseActivity;
-import com.android.contacts.activities.ContactEditorBaseActivity.ContactEditor;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.ContactLoader;
-import com.android.contacts.common.model.RawContact;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-import com.android.contacts.common.util.MaterialColorMapUtils;
-import com.android.contacts.editor.AggregationSuggestionEngine.Suggestion;
-import com.android.contacts.list.UiIntentActions;
-import com.android.contacts.quickcontact.QuickContactActivity;
-import com.android.contacts.util.HelpUtils;
-import com.android.contacts.util.PhoneCapabilityTester;
-import com.android.contacts.util.UiClosables;
-
-import android.accounts.Account;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.LoaderManager;
-import android.content.ActivityNotFoundException;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.CursorLoader;
-import android.content.Intent;
-import android.content.Loader;
-import android.database.Cursor;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.SystemClock;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.Event;
-import android.provider.ContactsContract.CommonDataKinds.Organization;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Intents;
-import android.provider.ContactsContract.RawContacts;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.LinearLayout;
-import android.widget.ListPopupWindow;
-import android.widget.Toast;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Base Fragment for contact editors.
- */
-abstract public class ContactEditorBaseFragment extends Fragment implements
-        ContactEditor, SplitContactConfirmationDialogFragment.Listener,
-        JoinContactConfirmationDialogFragment.Listener,
-        AggregationSuggestionEngine.Listener, AggregationSuggestionView.Listener,
-        CancelEditDialogFragment.Listener {
-
-    static final String TAG = "ContactEditor";
-
-    protected static final int LOADER_CONTACT = 1;
-    protected static final int LOADER_GROUPS = 2;
-
-    private static final List<String> VALID_INTENT_ACTIONS = new ArrayList<String>() {{
-        add(Intent.ACTION_EDIT);
-        add(Intent.ACTION_INSERT);
-        add(ContactEditorBaseActivity.ACTION_EDIT);
-        add(ContactEditorBaseActivity.ACTION_INSERT);
-        add(ContactEditorBaseActivity.ACTION_SAVE_COMPLETED);
-    }};
-
-    private static final String KEY_ACTION = "action";
-    private static final String KEY_URI = "uri";
-    private static final String KEY_AUTO_ADD_TO_DEFAULT_GROUP = "autoAddToDefaultGroup";
-    private static final String KEY_DISABLE_DELETE_MENU_OPTION = "disableDeleteMenuOption";
-    private static final String KEY_NEW_LOCAL_PROFILE = "newLocalProfile";
-    private static final String KEY_MATERIAL_PALETTE = "materialPalette";
-    private static final String KEY_PHOTO_ID = "photoId";
-
-    private static final String KEY_VIEW_ID_GENERATOR = "viewidgenerator";
-
-    private static final String KEY_RAW_CONTACTS = "rawContacts";
-
-    private static final String KEY_EDIT_STATE = "state";
-    private static final String KEY_STATUS = "status";
-
-    private static final String KEY_HAS_NEW_CONTACT = "hasNewContact";
-    private static final String KEY_NEW_CONTACT_READY = "newContactDataReady";
-
-    private static final String KEY_IS_EDIT = "isEdit";
-    private static final String KEY_EXISTING_CONTACT_READY = "existingContactDataReady";
-
-    private static final String KEY_RAW_CONTACT_DISPLAY_ALONE_IS_READ_ONLY = "isReadOnly";
-
-    // Phone option menus
-    private static final String KEY_SEND_TO_VOICE_MAIL_STATE = "sendToVoicemailState";
-    private static final String KEY_ARE_PHONE_OPTIONS_CHANGEABLE = "arePhoneOptionsChangable";
-    private static final String KEY_CUSTOM_RINGTONE = "customRingtone";
-
-    private static final String KEY_IS_USER_PROFILE = "isUserProfile";
-
-    private static final String KEY_ENABLED = "enabled";
-
-    // Aggregation PopupWindow
-    private static final String KEY_AGGREGATION_SUGGESTIONS_RAW_CONTACT_ID =
-            "aggregationSuggestionsRawContactId";
-
-    // Join Activity
-    private static final String KEY_CONTACT_ID_FOR_JOIN = "contactidforjoin";
-
-    private static final String KEY_READ_ONLY_DISPLAY_NAME = "readOnlyDisplayName";
-
-    protected static final int REQUEST_CODE_JOIN = 0;
-    protected static final int REQUEST_CODE_ACCOUNTS_CHANGED = 1;
-    protected static final int REQUEST_CODE_PICK_RINGTONE = 2;
-
-    private static final int CURRENT_API_VERSION = android.os.Build.VERSION.SDK_INT;
-
-    /**
-     * An intent extra that forces the editor to add the edited contact
-     * to the default group (e.g. "My Contacts").
-     */
-    public static final String INTENT_EXTRA_ADD_TO_DEFAULT_DIRECTORY = "addToDefaultDirectory";
-
-    public static final String INTENT_EXTRA_NEW_LOCAL_PROFILE = "newLocalProfile";
-
-    public static final String INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION =
-            "disableDeleteMenuOption";
-
-    /**
-     * Intent key to pass the photo palette primary color calculated by
-     * {@link com.android.contacts.quickcontact.QuickContactActivity} to the editor and between
-     * the compact and fully expanded editors.
-     */
-    public static final String INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR =
-            "material_palette_primary_color";
-
-    /**
-     * Intent key to pass the photo palette secondary color calculated by
-     * {@link com.android.contacts.quickcontact.QuickContactActivity} to the editor and between
-     * the compact and fully expanded editors.
-     */
-    public static final String INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR =
-            "material_palette_secondary_color";
-
-    /**
-     * Intent key to pass the ID of the photo to display on the editor.
-     */
-    public static final String INTENT_EXTRA_PHOTO_ID = "photo_id";
-
-    /**
-     * Intent key to pass the ID of the raw contact id that should be displayed in the full editor
-     * by itself.
-     */
-    public static final String INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE =
-            "raw_contact_id_to_display_alone";
-
-    /**
-     * Intent key to pass the boolean value of if the raw contact id that should be displayed
-     * in the full editor by itself is read-only.
-     */
-    public static final String INTENT_EXTRA_RAW_CONTACT_DISPLAY_ALONE_IS_READ_ONLY =
-            "raw_contact_display_alone_is_read_only";
-
-    /**
-     * Intent extra to specify a {@link ContactEditor.SaveMode}.
-     */
-    public static final String SAVE_MODE_EXTRA_KEY = "saveMode";
-
-    /**
-     * Intent extra key for the contact ID to join the current contact to after saving.
-     */
-    public static final String JOIN_CONTACT_ID_EXTRA_KEY = "joinContactId";
-
-    /**
-     * Callbacks for Activities that host contact editors Fragments.
-     */
-    public interface Listener {
-
-        /**
-         * Contact was not found, so somehow close this fragment. This is raised after a contact
-         * is removed via Menu/Delete
-         */
-        void onContactNotFound();
-
-        /**
-         * Contact was split, so we can close now.
-         *
-         * @param newLookupUri The lookup uri of the new contact that should be shown to the user.
-         *                     The editor tries best to chose the most natural contact here.
-         */
-        void onContactSplit(Uri newLookupUri);
-
-        /**
-         * User has tapped Revert, close the fragment now.
-         */
-        void onReverted();
-
-        /**
-         * Contact was saved and the Fragment can now be closed safely.
-         */
-        void onSaveFinished(Intent resultIntent);
-
-        /**
-         * User switched to editing a different contact (a suggestion from the
-         * aggregation engine).
-         */
-        void onEditOtherContactRequested(Uri contactLookupUri,
-                ArrayList<ContentValues> contentValues);
-
-        /**
-         * Contact is being created for an external account that provides its own
-         * new contact activity.
-         */
-        void onCustomCreateContactActivityRequested(AccountWithDataSet account,
-                Bundle intentExtras);
-
-        /**
-         * The edited raw contact belongs to an external account that provides
-         * its own edit activity.
-         *
-         * @param redirect indicates that the current editor should be closed
-         *                 before the custom editor is shown.
-         */
-        void onCustomEditContactActivityRequested(AccountWithDataSet account, Uri rawContactUri,
-                Bundle intentExtras, boolean redirect);
-
-        /**
-         * User has requested that contact be deleted.
-         */
-        void onDeleteRequested(Uri contactUri);
-    }
-
-    /**
-     * Adapter for aggregation suggestions displayed in a PopupWindow when
-     * editor fields change.
-     */
-    protected static final class AggregationSuggestionAdapter extends BaseAdapter {
-        private final LayoutInflater mLayoutInflater;
-        private final boolean mSetNewContact;
-        private final AggregationSuggestionView.Listener mListener;
-        private final List<AggregationSuggestionEngine.Suggestion> mSuggestions;
-
-        public AggregationSuggestionAdapter(Activity activity, boolean setNewContact,
-                AggregationSuggestionView.Listener listener, List<Suggestion> suggestions) {
-            mLayoutInflater = activity.getLayoutInflater();
-            mSetNewContact = setNewContact;
-            mListener = listener;
-            mSuggestions = suggestions;
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            final Suggestion suggestion = (Suggestion) getItem(position);
-            final AggregationSuggestionView suggestionView =
-                    (AggregationSuggestionView) mLayoutInflater.inflate(
-                            R.layout.aggregation_suggestions_item, null);
-            suggestionView.setNewContact(mSetNewContact);
-            suggestionView.setListener(mListener);
-            suggestionView.bindSuggestion(suggestion);
-            return suggestionView;
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return position;
-        }
-
-        @Override
-        public Object getItem(int position) {
-            return mSuggestions.get(position);
-        }
-
-        @Override
-        public int getCount() {
-            return mSuggestions.size();
-        }
-    }
-
-    protected Context mContext;
-    protected Listener mListener;
-
-    //
-    // Views
-    //
-    protected LinearLayout mContent;
-    protected View mAggregationSuggestionView;
-    protected ListPopupWindow mAggregationSuggestionPopup;
-
-    //
-    // Parameters passed in on {@link #load}
-    //
-    protected String mAction;
-    protected Uri mLookupUri;
-    protected Bundle mIntentExtras;
-    protected boolean mAutoAddToDefaultGroup;
-    protected boolean mDisableDeleteMenuOption;
-    protected boolean mNewLocalProfile;
-    protected MaterialColorMapUtils.MaterialPalette mMaterialPalette;
-    protected long mPhotoId = -1;
-
-    //
-    // Helpers
-    //
-    protected ContactEditorUtils mEditorUtils;
-    protected RawContactDeltaComparator mComparator;
-    protected ViewIdGenerator mViewIdGenerator;
-    private AggregationSuggestionEngine mAggregationSuggestionEngine;
-
-    //
-    // Loaded data
-    //
-    // Used to store existing contact data so it can be re-applied during a rebind call,
-    // i.e. account switch.  Only used in {@link ContactEditorFragment}.
-    protected ImmutableList<RawContact> mRawContacts;
-    protected Cursor mGroupMetaData;
-
-    //
-    // Editor state
-    //
-    protected RawContactDeltaList mState;
-    protected int mStatus;
-    protected long mRawContactIdToDisplayAlone = -1;
-    protected boolean mRawContactDisplayAloneIsReadOnly = false;
-
-    // Whether to show the new contact blank form and if it's corresponding delta is ready.
-    protected boolean mHasNewContact;
-    protected AccountWithDataSet mAccountWithDataSet;
-    protected boolean mNewContactDataReady;
-    protected boolean mNewContactAccountChanged;
-
-    // Whether it's an edit of existing contact and if it's corresponding delta is ready.
-    protected boolean mIsEdit;
-    protected boolean mExistingContactDataReady;
-
-    // Whether we are editing the "me" profile
-    protected boolean mIsUserProfile;
-
-    // Phone specific option menu items
-    private boolean mSendToVoicemailState;
-    private boolean mArePhoneOptionsChangable;
-    private String mCustomRingtone;
-
-    // Whether editor views and options menu items should be enabled
-    private boolean mEnabled = true;
-
-    // Aggregation PopupWindow
-    private long mAggregationSuggestionsRawContactId;
-
-    // Join Activity
-    protected long mContactIdForJoin;
-
-    // Used to pre-populate the editor with a display name when a user edits a read-only contact.
-    protected String mReadOnlyDisplayName;
-
-    //
-    // Not saved/restored on rotates
-    //
-
-    // The name editor view for the new raw contact that was created so that the user can
-    // edit a read-only contact (to which the new raw contact was joined)
-    protected StructuredNameEditorView mReadOnlyNameEditorView;
-
-    /**
-     * The contact data loader listener.
-     */
-    protected final LoaderManager.LoaderCallbacks<Contact> mContactLoaderListener =
-            new LoaderManager.LoaderCallbacks<Contact>() {
-
-                protected long mLoaderStartTime;
-
-                @Override
-                public Loader<Contact> onCreateLoader(int id, Bundle args) {
-                    mLoaderStartTime = SystemClock.elapsedRealtime();
-                    return new ContactLoader(mContext, mLookupUri, true);
-                }
-
-                @Override
-                public void onLoadFinished(Loader<Contact> loader, Contact contact) {
-                    final long loaderCurrentTime = SystemClock.elapsedRealtime();
-                    Log.v(TAG, "Time needed for loading: " + (loaderCurrentTime-mLoaderStartTime));
-                    if (!contact.isLoaded()) {
-                        // Item has been deleted. Close activity without saving again.
-                        Log.i(TAG, "No contact found. Closing activity");
-                        mStatus = Status.CLOSING;
-                        if (mListener != null) mListener.onContactNotFound();
-                        return;
-                    }
-
-                    mStatus = Status.EDITING;
-                    mLookupUri = contact.getLookupUri();
-                    final long setDataStartTime = SystemClock.elapsedRealtime();
-                    setState(contact);
-                    setStateForPhoneMenuItems(contact);
-                    final long setDataEndTime = SystemClock.elapsedRealtime();
-
-                    Log.v(TAG, "Time needed for setting UI: " + (setDataEndTime - setDataStartTime));
-                }
-
-                @Override
-                public void onLoaderReset(Loader<Contact> loader) {
-                }
-            };
-
-    /**
-     * The groups meta data loader listener.
-     */
-    protected final LoaderManager.LoaderCallbacks<Cursor> mGroupsLoaderListener =
-            new LoaderManager.LoaderCallbacks<Cursor>() {
-
-                @Override
-                public CursorLoader onCreateLoader(int id, Bundle args) {
-                    return new GroupMetaDataLoader(mContext, ContactsContract.Groups.CONTENT_URI);
-                }
-
-                @Override
-                public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-                    mGroupMetaData = data;
-                    setGroupMetaData();
-                }
-
-                @Override
-                public void onLoaderReset(Loader<Cursor> loader) {
-                }
-            };
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        mContext = activity;
-        mEditorUtils = ContactEditorUtils.getInstance(mContext);
-        mComparator = new RawContactDeltaComparator(mContext);
-    }
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        if (savedState != null) {
-            // Restore mUri before calling super.onCreate so that onInitializeLoaders
-            // would already have a uri and an action to work with
-            mAction = savedState.getString(KEY_ACTION);
-            mLookupUri = savedState.getParcelable(KEY_URI);
-        }
-
-        super.onCreate(savedState);
-
-        if (savedState == null) {
-            mViewIdGenerator = new ViewIdGenerator();
-        } else {
-            mViewIdGenerator = savedState.getParcelable(KEY_VIEW_ID_GENERATOR);
-
-            mAutoAddToDefaultGroup = savedState.getBoolean(KEY_AUTO_ADD_TO_DEFAULT_GROUP);
-            mDisableDeleteMenuOption = savedState.getBoolean(KEY_DISABLE_DELETE_MENU_OPTION);
-            mNewLocalProfile = savedState.getBoolean(KEY_NEW_LOCAL_PROFILE);
-            mMaterialPalette = savedState.getParcelable(KEY_MATERIAL_PALETTE);
-            mPhotoId = savedState.getLong(KEY_PHOTO_ID);
-
-            mRawContacts = ImmutableList.copyOf(savedState.<RawContact>getParcelableArrayList(
-                    KEY_RAW_CONTACTS));
-            // NOTE: mGroupMetaData is not saved/restored
-
-            // Read state from savedState. No loading involved here
-            mState = savedState.<RawContactDeltaList> getParcelable(KEY_EDIT_STATE);
-            mStatus = savedState.getInt(KEY_STATUS);
-            mRawContactDisplayAloneIsReadOnly = savedState.getBoolean(
-                    KEY_RAW_CONTACT_DISPLAY_ALONE_IS_READ_ONLY);
-
-            mHasNewContact = savedState.getBoolean(KEY_HAS_NEW_CONTACT);
-            mNewContactDataReady = savedState.getBoolean(KEY_NEW_CONTACT_READY);
-
-            mIsEdit = savedState.getBoolean(KEY_IS_EDIT);
-            mExistingContactDataReady = savedState.getBoolean(KEY_EXISTING_CONTACT_READY);
-
-            mIsUserProfile = savedState.getBoolean(KEY_IS_USER_PROFILE);
-
-            // Phone specific options menus
-            mSendToVoicemailState = savedState.getBoolean(KEY_SEND_TO_VOICE_MAIL_STATE);
-            mArePhoneOptionsChangable = savedState.getBoolean(KEY_ARE_PHONE_OPTIONS_CHANGEABLE);
-            mCustomRingtone = savedState.getString(KEY_CUSTOM_RINGTONE);
-
-            mEnabled = savedState.getBoolean(KEY_ENABLED);
-
-            // Aggregation PopupWindow
-            mAggregationSuggestionsRawContactId = savedState.getLong(
-                    KEY_AGGREGATION_SUGGESTIONS_RAW_CONTACT_ID);
-
-            // Join Activity
-            mContactIdForJoin = savedState.getLong(KEY_CONTACT_ID_FOR_JOIN);
-
-            mReadOnlyDisplayName = savedState.getString(KEY_READ_ONLY_DISPLAY_NAME);
-        }
-
-        // mState can still be null because it may not have have finished loading before
-        // onSaveInstanceState was called.
-        if (mState == null) {
-            mState = new RawContactDeltaList();
-        }
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-
-        validateAction(mAction);
-
-        if (mState.isEmpty()) {
-            // The delta list may not have finished loading before orientation change happens.
-            // In this case, there will be a saved state but deltas will be missing.  Reload from
-            // database.
-            if (Intent.ACTION_EDIT.equals(mAction) ||
-                    ContactEditorBaseActivity.ACTION_EDIT.equals(mAction)) {
-                // Either
-                // 1) orientation change but load never finished.
-                // 2) not an orientation change so data needs to be loaded for first time.
-                getLoaderManager().initLoader(LOADER_CONTACT, null, mContactLoaderListener);
-                getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupsLoaderListener);
-            }
-        } else {
-            // Orientation change, we already have mState, it was loaded by onCreate
-            bindEditors();
-        }
-
-        // Handle initial actions only when existing state missing
-        if (savedInstanceState == null) {
-            final Account account = mIntentExtras == null ? null :
-                    (Account) mIntentExtras.getParcelable(Intents.Insert.EXTRA_ACCOUNT);
-            final String dataSet = mIntentExtras == null ? null :
-                    mIntentExtras.getString(Intents.Insert.EXTRA_DATA_SET);
-            if (account != null) {
-                mAccountWithDataSet = new AccountWithDataSet(account.name, account.type, dataSet);
-            }
-
-            if (Intent.ACTION_EDIT.equals(mAction) ||
-                    ContactEditorBaseActivity.ACTION_EDIT.equals(mAction)) {
-                mIsEdit = true;
-            } else if (Intent.ACTION_INSERT.equals(mAction) ||
-                    ContactEditorBaseActivity.ACTION_INSERT.equals(mAction)) {
-                mHasNewContact = true;
-                if (mAccountWithDataSet != null) {
-                    createContact(mAccountWithDataSet);
-                } else {
-                    // No Account specified. Let the user choose
-                    // Load Accounts async so that we can present them
-                    selectAccountAndCreateContact();
-                }
-            }
-        }
-    }
-
-    /**
-     * Checks if the requested action is valid.
-     *
-     * @param action The action to test.
-     * @throws IllegalArgumentException when the action is invalid.
-     */
-    private static void validateAction(String action) {
-        if (VALID_INTENT_ACTIONS.contains(action)) {
-            return;
-        }
-        throw new IllegalArgumentException(
-                "Unknown action " + action + "; Supported actions: " + VALID_INTENT_ACTIONS);
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        outState.putString(KEY_ACTION, mAction);
-        outState.putParcelable(KEY_URI, mLookupUri);
-        outState.putBoolean(KEY_AUTO_ADD_TO_DEFAULT_GROUP, mAutoAddToDefaultGroup);
-        outState.putBoolean(KEY_DISABLE_DELETE_MENU_OPTION, mDisableDeleteMenuOption);
-        outState.putBoolean(KEY_NEW_LOCAL_PROFILE, mNewLocalProfile);
-        if (mMaterialPalette != null) {
-            outState.putParcelable(KEY_MATERIAL_PALETTE, mMaterialPalette);
-        }
-        outState.putLong(KEY_PHOTO_ID, mPhotoId);
-
-        outState.putParcelable(KEY_VIEW_ID_GENERATOR, mViewIdGenerator);
-
-        outState.putParcelableArrayList(KEY_RAW_CONTACTS, mRawContacts == null ?
-                Lists.<RawContact>newArrayList() : Lists.newArrayList(mRawContacts));
-        // NOTE: mGroupMetaData is not saved
-
-        if (hasValidState()) {
-            // Store entities with modifications
-            outState.putParcelable(KEY_EDIT_STATE, mState);
-        }
-        outState.putInt(KEY_STATUS, mStatus);
-        outState.putBoolean(KEY_HAS_NEW_CONTACT, mHasNewContact);
-        outState.putBoolean(KEY_NEW_CONTACT_READY, mNewContactDataReady);
-        outState.putBoolean(KEY_IS_EDIT, mIsEdit);
-        outState.putBoolean(KEY_EXISTING_CONTACT_READY, mExistingContactDataReady);
-        outState.putBoolean(KEY_RAW_CONTACT_DISPLAY_ALONE_IS_READ_ONLY,
-                mRawContactDisplayAloneIsReadOnly);
-
-        outState.putBoolean(KEY_IS_USER_PROFILE, mIsUserProfile);
-
-        // Phone specific options
-        outState.putBoolean(KEY_SEND_TO_VOICE_MAIL_STATE, mSendToVoicemailState);
-        outState.putBoolean(KEY_ARE_PHONE_OPTIONS_CHANGEABLE, mArePhoneOptionsChangable);
-        outState.putString(KEY_CUSTOM_RINGTONE, mCustomRingtone);
-
-        outState.putBoolean(KEY_ENABLED, mEnabled);
-
-        // Aggregation PopupWindow
-        outState.putLong(KEY_AGGREGATION_SUGGESTIONS_RAW_CONTACT_ID,
-                mAggregationSuggestionsRawContactId);
-
-        // Join Activity
-        outState.putLong(KEY_CONTACT_ID_FOR_JOIN, mContactIdForJoin);
-
-        outState.putString(KEY_READ_ONLY_DISPLAY_NAME, mReadOnlyDisplayName);
-
-        super.onSaveInstanceState(outState);
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        UiClosables.closeQuietly(mAggregationSuggestionPopup);
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        if (mAggregationSuggestionEngine != null) {
-            mAggregationSuggestionEngine.quit();
-        }
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        switch (requestCode) {
-            case REQUEST_CODE_JOIN: {
-                // Ignore failed requests
-                if (resultCode != Activity.RESULT_OK) return;
-                if (data != null) {
-                    final long contactId = ContentUris.parseId(data.getData());
-                    if (hasPendingChanges()) {
-                        // Ask the user if they want to save changes before doing the join
-                        JoinContactConfirmationDialogFragment.show(this, contactId);
-                    } else {
-                        // Do the join immediately
-                        joinAggregate(contactId);
-                    }
-                }
-                break;
-            }
-            case REQUEST_CODE_ACCOUNTS_CHANGED: {
-                // Bail if the account selector was not successful.
-                if (resultCode != Activity.RESULT_OK) {
-                    if (mListener != null) {
-                        mListener.onReverted();
-                    }
-                    return;
-                }
-                // If there's an account specified, use it.
-                if (data != null) {
-                    AccountWithDataSet account = data.getParcelableExtra(
-                            Intents.Insert.EXTRA_ACCOUNT);
-                    if (account != null) {
-                        createContact(account);
-                        return;
-                    }
-                }
-                // If there isn't an account specified, then this is likely a phone-local
-                // contact, so we should continue setting up the editor by automatically selecting
-                // the most appropriate account.
-                createContact();
-                break;
-            }
-            case REQUEST_CODE_PICK_RINGTONE: {
-                if (data != null) {
-                    final Uri pickedUri = data.getParcelableExtra(
-                            RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
-                    onRingtonePicked(pickedUri);
-                }
-                break;
-            }
-        }
-    }
-
-    private void onRingtonePicked(Uri pickedUri) {
-        mCustomRingtone = EditorUiUtils.getRingtoneStringFromUri(pickedUri, CURRENT_API_VERSION);
-        Intent intent = ContactSaveService.createSetRingtone(
-                mContext, mLookupUri, mCustomRingtone);
-        mContext.startService(intent);
-    }
-
-    //
-    // Options menu
-    //
-
-    private void setStateForPhoneMenuItems(Contact contact) {
-        if (contact != null) {
-            mSendToVoicemailState = contact.isSendToVoicemail();
-            mCustomRingtone = contact.getCustomRingtone();
-            mArePhoneOptionsChangable = !contact.isDirectoryEntry()
-                    && PhoneCapabilityTester.isPhone(mContext);
-        }
-    }
-
-    /**
-     * Invalidates the options menu if we are still associated with an Activity.
-     */
-    protected void invalidateOptionsMenu() {
-        final Activity activity = getActivity();
-        if (activity != null) {
-            activity.invalidateOptionsMenu();
-        }
-    }
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
-        inflater.inflate(R.menu.edit_contact, menu);
-    }
-
-    @Override
-    public void onPrepareOptionsMenu(Menu menu) {
-        // This supports the keyboard shortcut to save changes to a contact but shouldn't be visible
-        // because the custom action bar contains the "save" button now (not the overflow menu).
-        // TODO: Find a better way to handle shortcuts, i.e. onKeyDown()?
-        final MenuItem saveMenu = menu.findItem(R.id.menu_save);
-        final MenuItem splitMenu = menu.findItem(R.id.menu_split);
-        final MenuItem joinMenu = menu.findItem(R.id.menu_join);
-        final MenuItem helpMenu = menu.findItem(R.id.menu_help);
-        final MenuItem sendToVoiceMailMenu = menu.findItem(R.id.menu_send_to_voicemail);
-        final MenuItem ringToneMenu = menu.findItem(R.id.menu_set_ringtone);
-        final MenuItem deleteMenu = menu.findItem(R.id.menu_delete);
-
-        // Set visibility of menus
-
-        // help menu depending on whether this is inserting or editing
-        if (isInsert(mAction) || mRawContactIdToDisplayAlone != -1) {
-            HelpUtils.prepareHelpMenuItem(mContext, helpMenu, R.string.help_url_people_add);
-            splitMenu.setVisible(false);
-            joinMenu.setVisible(false);
-            deleteMenu.setVisible(false);
-        } else if (isEdit(mAction)) {
-            HelpUtils.prepareHelpMenuItem(mContext, helpMenu, R.string.help_url_people_edit);
-            splitMenu.setVisible(canUnlinkRawContacts());
-            // Cannot join a user profile
-            joinMenu.setVisible(!isEditingUserProfile());
-            deleteMenu.setVisible(!mDisableDeleteMenuOption && !isEditingUserProfile());
-        } else {
-            // something else, so don't show the help menu
-            helpMenu.setVisible(false);
-        }
-
-        // Save menu is invisible when there's only one read only contact in the editor.
-        saveMenu.setVisible(!mRawContactDisplayAloneIsReadOnly);
-
-        if (mRawContactIdToDisplayAlone != -1 || mIsUserProfile) {
-            sendToVoiceMailMenu.setVisible(false);
-            ringToneMenu.setVisible(false);
-        } else {
-            // Hide telephony-related settings (ringtone, send to voicemail)
-            // if we don't have a telephone or are editing a new contact.
-            sendToVoiceMailMenu.setChecked(mSendToVoicemailState);
-            sendToVoiceMailMenu.setVisible(mArePhoneOptionsChangable);
-            ringToneMenu.setVisible(mArePhoneOptionsChangable);
-        }
-
-        int size = menu.size();
-        for (int i = 0; i < size; i++) {
-            menu.getItem(i).setEnabled(mEnabled);
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        final Activity activity = getActivity();
-        if (activity == null || activity.isFinishing() || activity.isDestroyed()) {
-            // If we no longer are attached to a running activity want to
-            // drain this event.
-            return true;
-        }
-
-        switch (item.getItemId()) {
-            case R.id.menu_save:
-                return save(SaveMode.CLOSE);
-            case R.id.menu_delete:
-                if (mListener != null) mListener.onDeleteRequested(mLookupUri);
-                return true;
-            case R.id.menu_split:
-                return doSplitContactAction();
-            case R.id.menu_join:
-                return doJoinContactAction();
-            case R.id.menu_set_ringtone:
-                doPickRingtone();
-                return true;
-            case R.id.menu_send_to_voicemail:
-                // Update state and save
-                mSendToVoicemailState = !mSendToVoicemailState;
-                item.setChecked(mSendToVoicemailState);
-                final Intent intent = ContactSaveService.createSetSendToVoicemail(
-                        mContext, mLookupUri, mSendToVoicemailState);
-                mContext.startService(intent);
-                return true;
-        }
-
-        return false;
-    }
-
-    @Override
-    public boolean revert() {
-        if (mState.isEmpty() || !hasPendingChanges()) {
-            onCancelEditConfirmed();
-        } else {
-            CancelEditDialogFragment.show(this);
-        }
-        return true;
-    }
-
-    @Override
-    public void onCancelEditConfirmed() {
-        // When this Fragment is closed we don't want it to auto-save
-        mStatus = Status.CLOSING;
-        if (mListener != null) {
-            mListener.onReverted();
-        }
-    }
-
-    @Override
-    public void onSplitContactConfirmed(boolean hasPendingChanges) {
-        if (mState.isEmpty()) {
-            // This may happen when this Fragment is recreated by the system during users
-            // confirming the split action (and thus this method is called just before onCreate()),
-            // for example.
-            Log.e(TAG, "mState became null during the user's confirming split action. " +
-                    "Cannot perform the save action.");
-            return;
-        }
-
-        if (!hasPendingChanges && mHasNewContact) {
-            // If the user didn't add anything new, we don't want to split out the newly created
-            // raw contact into a name-only contact so remove them.
-            final Iterator<RawContactDelta> iterator = mState.iterator();
-            while (iterator.hasNext()) {
-                final RawContactDelta rawContactDelta = iterator.next();
-                if (rawContactDelta.getRawContactId() < 0) {
-                    iterator.remove();
-                }
-            }
-        }
-        mState.markRawContactsForSplitting();
-        save(SaveMode.SPLIT);
-    }
-
-    private boolean doSplitContactAction() {
-        if (!hasValidState()) return false;
-
-        SplitContactConfirmationDialogFragment.show(this, hasPendingChanges());
-        return true;
-    }
-
-    private boolean doJoinContactAction() {
-        if (!hasValidState() || mLookupUri == null) {
-            return false;
-        }
-
-        // If we just started creating a new contact and haven't added any data, it's too
-        // early to do a join
-        if (mState.size() == 1 && mState.get(0).isContactInsert()
-                && !hasPendingChanges()) {
-            Toast.makeText(mContext, R.string.toast_join_with_empty_contact,
-                    Toast.LENGTH_LONG).show();
-            return true;
-        }
-
-        showJoinAggregateActivity(mLookupUri);
-        return true;
-    }
-
-    @Override
-    public void onJoinContactConfirmed(long joinContactId) {
-        doSaveAction(SaveMode.JOIN, joinContactId);
-    }
-
-    private void doPickRingtone() {
-        final Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
-        // Allow user to pick 'Default'
-        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
-        // Show only ringtones
-        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
-        // Allow the user to pick a silent ringtone
-        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
-
-        final Uri ringtoneUri = EditorUiUtils.getRingtoneUriFromString(mCustomRingtone,
-                CURRENT_API_VERSION);
-
-        // Put checkmark next to the current ringtone for this contact
-        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
-
-        // Launch!
-        try {
-            startActivityForResult(intent, REQUEST_CODE_PICK_RINGTONE);
-        } catch (ActivityNotFoundException ex) {
-            Toast.makeText(mContext, R.string.missing_app, Toast.LENGTH_SHORT).show();
-        }
-    }
-
-    @Override
-    public boolean save(int saveMode) {
-        if (!hasValidState() || mStatus != Status.EDITING) {
-            return false;
-        }
-
-        // If we are about to close the editor - there is no need to refresh the data
-        if (saveMode == SaveMode.CLOSE || saveMode == SaveMode.COMPACT
-                || saveMode == SaveMode.SPLIT) {
-            getLoaderManager().destroyLoader(LOADER_CONTACT);
-        }
-
-        mStatus = Status.SAVING;
-
-        if (!hasPendingChanges()) {
-            if (mLookupUri == null && saveMode == SaveMode.RELOAD) {
-                // We don't have anything to save and there isn't even an existing contact yet.
-                // Nothing to do, simply go back to editing mode
-                mStatus = Status.EDITING;
-                return true;
-            }
-            onSaveCompleted(/* hadChanges =*/ false, saveMode,
-                    /* saveSucceeded =*/ mLookupUri != null, mLookupUri, /* joinContactId =*/ null);
-            return true;
-        }
-
-        setEnabled(false);
-
-        return doSaveAction(saveMode, /* joinContactId */ null);
-    }
-
-    /**
-     * Persist the accumulated editor deltas.
-     *
-     * @param joinContactId the raw contact ID to join the contact being saved to after the save,
-     *         may be null.
-     */
-    abstract protected boolean doSaveAction(int saveMode, Long joinContactId);
-
-    protected boolean startSaveService(Context context, Intent intent, int saveMode) {
-        final boolean result = ContactSaveService.startService(
-                context, intent, saveMode);
-        if (!result) {
-            onCancelEditConfirmed();
-        }
-        return result;
-    }
-
-    //
-    // State accessor methods
-    //
-
-    /**
-     * Check if our internal {@link #mState} is valid, usually checked before
-     * performing user actions.
-     */
-    protected boolean hasValidState() {
-        return mState.size() > 0;
-    }
-
-    protected boolean isEditingUserProfile() {
-        return mNewLocalProfile || mIsUserProfile;
-    }
-
-    /**
-     * Whether the contact being edited spans multiple raw contacts.
-     * The may also span multiple accounts.
-     */
-    public boolean isEditingMultipleRawContacts() {
-        return mState.size() > 1;
-    }
-
-    /**
-     * Whether the contact being edited is composed of a single read-only raw contact
-     * aggregated with a newly created writable raw contact.
-     */
-    protected boolean isEditingReadOnlyRawContactWithNewContact() {
-        return mHasNewContact && mState.size() == 2;
-    }
-
-    /**
-     * Return true if there are any edits to the current contact which need to
-     * be saved.
-     */
-    protected boolean hasPendingRawContactChanges(Set<String> excludedMimeTypes) {
-        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
-        return RawContactModifier.hasChanges(mState, accountTypes, excludedMimeTypes);
-    }
-
-    /**
-     * We allow unlinking only if there is more than one raw contact, it is not a user-profile,
-     * and unlinking won't result in an empty contact.  For the empty contact case, we only guard
-     * against this when there is a single read-only contact in the aggregate.  If the user
-     * has joined >1 read-only contacts together, we allow them to unlink it, even if they have
-     * never added their own information and unlinking will create a name only contact.
-     */
-    protected boolean canUnlinkRawContacts() {
-        return isEditingMultipleRawContacts()
-                && !isEditingUserProfile()
-                && !isEditingReadOnlyRawContactWithNewContact();
-    }
-
-    /**
-     * Determines if changes were made in the editor that need to be saved, while taking into
-     * account that name changes are not real for read-only contacts.
-     * See go/editing-read-only-contacts
-     */
-    protected boolean hasPendingChanges() {
-        if (mReadOnlyNameEditorView != null && mReadOnlyDisplayName != null) {
-            // We created a new raw contact delta with a default display name.
-            // We must test for pending changes while ignoring the default display name.
-            final String displayName = mReadOnlyNameEditorView.getDisplayName();
-            if (mReadOnlyDisplayName.equals(displayName)) {
-                final Set<String> excludedMimeTypes = new HashSet<>();
-                excludedMimeTypes.add(StructuredName.CONTENT_ITEM_TYPE);
-                return hasPendingRawContactChanges(excludedMimeTypes);
-            }
-            return true;
-        }
-        return hasPendingRawContactChanges(/* excludedMimeTypes =*/ null);
-    }
-
-    /**
-     * Whether editor inputs and the options menu should be enabled.
-     */
-    protected boolean isEnabled() {
-        return mEnabled;
-    }
-
-    /**
-     * Returns the palette extra that was passed in.
-     */
-    protected MaterialColorMapUtils.MaterialPalette getMaterialPalette() {
-        return mMaterialPalette;
-    }
-
-    //
-    // Account creation
-    //
-
-    private void selectAccountAndCreateContact() {
-        // If this is a local profile, then skip the logic about showing the accounts changed
-        // activity and create a phone-local contact.
-        if (mNewLocalProfile) {
-            createContact(null);
-            return;
-        }
-
-        // If there is no default account or the accounts have changed such that we need to
-        // prompt the user again, then launch the account prompt.
-        if (mEditorUtils.shouldShowAccountChangedNotification()) {
-            Intent intent = new Intent(mContext, ContactEditorAccountsChangedActivity.class);
-            // Prevent a second instance from being started on rotates
-            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-            mStatus = Status.SUB_ACTIVITY;
-            startActivityForResult(intent, REQUEST_CODE_ACCOUNTS_CHANGED);
-        } else {
-            // Otherwise, there should be a default account. Then either create a local contact
-            // (if default account is null) or create a contact with the specified account.
-            AccountWithDataSet defaultAccount = mEditorUtils.getDefaultAccount();
-            createContact(defaultAccount);
-        }
-    }
-
-    /**
-     * Create a contact by automatically selecting the first account. If there's no available
-     * account, a device-local contact should be created.
-     */
-    protected void createContact() {
-        final List<AccountWithDataSet> accounts =
-                AccountTypeManager.getInstance(mContext).getAccounts(true);
-        // No Accounts available. Create a phone-local contact.
-        if (accounts.isEmpty()) {
-            createContact(null);
-            return;
-        }
-
-        // We have an account switcher in "create-account" screen, so don't need to ask a user to
-        // select an account here.
-        createContact(accounts.get(0));
-    }
-
-    /**
-     * Shows account creation screen associated with a given account.
-     *
-     * @param account may be null to signal a device-local contact should be created.
-     */
-    protected void createContact(AccountWithDataSet account) {
-        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
-        final AccountType accountType = accountTypes.getAccountTypeForAccount(account);
-
-        if (accountType.getCreateContactActivityClassName() != null) {
-            if (mListener != null) {
-                mListener.onCustomCreateContactActivityRequested(account, mIntentExtras);
-            }
-        } else {
-            setStateForNewContact(account, accountType, isEditingUserProfile());
-        }
-    }
-
-    //
-    // Data binding
-    //
-
-    private void setState(Contact contact) {
-        // If we have already loaded data, we do not want to change it here to not confuse the user
-        if (!mState.isEmpty()) {
-            Log.v(TAG, "Ignoring background change. This will have to be rebased later");
-            return;
-        }
-
-        // See if this edit operation needs to be redirected to a custom editor
-        mRawContacts = contact.getRawContacts();
-        if (mRawContacts.size() == 1) {
-            RawContact rawContact = mRawContacts.get(0);
-            String type = rawContact.getAccountTypeString();
-            String dataSet = rawContact.getDataSet();
-            AccountType accountType = rawContact.getAccountType(mContext);
-            if (accountType.getEditContactActivityClassName() != null &&
-                    !accountType.areContactsWritable()) {
-                if (mListener != null) {
-                    String name = rawContact.getAccountName();
-                    long rawContactId = rawContact.getId();
-                    mListener.onCustomEditContactActivityRequested(
-                            new AccountWithDataSet(name, type, dataSet),
-                            ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId),
-                            mIntentExtras, true);
-                }
-                return;
-            }
-        }
-
-        String readOnlyDisplayName = null;
-        // Check for writable raw contacts.  If there are none, then we need to create one so user
-        // can edit.  For the user profile case, there is already an editable contact.
-        if (!contact.isUserProfile() && !contact.isWritableContact(mContext)) {
-            mHasNewContact = true;
-
-            // This is potentially an asynchronous call and will add deltas to list.
-            selectAccountAndCreateContact();
-
-            readOnlyDisplayName = contact.getDisplayName();
-        } else {
-            mHasNewContact = false;
-        }
-
-        // This also adds deltas to list.  If readOnlyDisplayName is null at this point it is
-        // simply ignored later on by the editor.
-        setStateForExistingContact(readOnlyDisplayName, contact.isUserProfile(), mRawContacts);
-    }
-
-    /**
-     * Prepare {@link #mState} for a newly created phone-local contact.
-     */
-    private void setStateForNewContact(AccountWithDataSet account, AccountType accountType,
-            boolean isUserProfile) {
-        setStateForNewContact(account, accountType, /* oldState =*/ null,
-                /* oldAccountType =*/ null, isUserProfile);
-    }
-
-    /**
-     * Prepare {@link #mState} for a newly created phone-local contact, migrating the state
-     * specified by oldState and oldAccountType.
-     */
-    protected void setStateForNewContact(AccountWithDataSet account, AccountType accountType,
-            RawContactDelta oldState, AccountType oldAccountType, boolean isUserProfile) {
-        mStatus = Status.EDITING;
-        mState.add(createNewRawContactDelta(account, accountType, oldState, oldAccountType));
-        mIsUserProfile = isUserProfile;
-        mNewContactDataReady = true;
-        bindEditors();
-    }
-
-    /**
-     * Returns a {@link RawContactDelta} for a new contact suitable for addition into
-     * {@link #mState}.
-     *
-     * If oldState and oldAccountType are specified, the state specified by those parameters
-     * is migrated to the result {@link RawContactDelta}.
-     */
-    private RawContactDelta createNewRawContactDelta(AccountWithDataSet account,
-            AccountType accountType, RawContactDelta oldState, AccountType oldAccountType) {
-        final RawContact rawContact = new RawContact();
-        if (account != null) {
-            rawContact.setAccount(account);
-        } else {
-            rawContact.setAccountToLocal();
-        }
-
-        final RawContactDelta result = new RawContactDelta(
-                ValuesDelta.fromAfter(rawContact.getValues()));
-        if (oldState == null) {
-            // Parse any values from incoming intent
-            RawContactModifier.parseExtras(mContext, accountType, result, mIntentExtras);
-        } else {
-            RawContactModifier.migrateStateForNewContact(
-                    mContext, oldState, result, oldAccountType, accountType);
-        }
-
-        // Ensure we have some default fields (if the account type does not support a field,
-        // ensureKind will not add it, so it is safe to add e.g. Event)
-        RawContactModifier.ensureKindExists(result, accountType, Phone.CONTENT_ITEM_TYPE);
-        RawContactModifier.ensureKindExists(result, accountType, Email.CONTENT_ITEM_TYPE);
-        RawContactModifier.ensureKindExists(result, accountType, Organization.CONTENT_ITEM_TYPE);
-        RawContactModifier.ensureKindExists(result, accountType, Event.CONTENT_ITEM_TYPE);
-        RawContactModifier.ensureKindExists(result, accountType,
-                StructuredPostal.CONTENT_ITEM_TYPE);
-
-        // Set the correct URI for saving the contact as a profile
-        if (mNewLocalProfile) {
-            result.setProfileQueryUri();
-        }
-
-        return result;
-    }
-
-    /**
-     * Prepare {@link #mState} for an existing contact.
-     */
-    protected void setStateForExistingContact(String readOnlyDisplayName, boolean isUserProfile,
-            ImmutableList<RawContact> rawContacts) {
-        setEnabled(true);
-        mReadOnlyDisplayName = readOnlyDisplayName;
-
-        mState.addAll(rawContacts.iterator());
-        setIntentExtras(mIntentExtras);
-        mIntentExtras = null;
-
-        // For user profile, change the contacts query URI
-        mIsUserProfile = isUserProfile;
-        boolean localProfileExists = false;
-
-        if (mIsUserProfile) {
-            for (RawContactDelta rawContactDelta : mState) {
-                // For profile contacts, we need a different query URI
-                rawContactDelta.setProfileQueryUri();
-                // Try to find a local profile contact
-                if (rawContactDelta.getValues().getAsString(RawContacts.ACCOUNT_TYPE) == null) {
-                    localProfileExists = true;
-                }
-            }
-            // Editor should always present a local profile for editing
-            if (!localProfileExists) {
-                mState.add(createLocalRawContactDelta());
-            }
-        }
-        mExistingContactDataReady = true;
-        bindEditors();
-    }
-
-    /**
-     * Returns a {@link RawContactDelta} for a local contact suitable for addition into
-     * {@link #mState}.
-     */
-    private static RawContactDelta createLocalRawContactDelta() {
-        final RawContact rawContact = new RawContact();
-        rawContact.setAccountToLocal();
-
-        final RawContactDelta result = new RawContactDelta(
-                ValuesDelta.fromAfter(rawContact.getValues()));
-        result.setProfileQueryUri();
-
-        return result;
-    }
-
-    /**
-     * Sets group metadata on all bound editors.
-     */
-    abstract protected void setGroupMetaData();
-
-    /**
-     * Bind editors using {@link #mState} and other members initialized from the loaded (or new)
-     * Contact.
-     */
-    abstract protected void bindEditors();
-
-    /**
-     * Set the enabled state of editors.
-     */
-    private void setEnabled(boolean enabled) {
-        if (mEnabled != enabled) {
-            mEnabled = enabled;
-
-            // Enable/disable editors
-            if (mContent != null) {
-                int count = mContent.getChildCount();
-                for (int i = 0; i < count; i++) {
-                    mContent.getChildAt(i).setEnabled(enabled);
-                }
-            }
-
-            // Enable/disable aggregation suggestion vies
-            if (mAggregationSuggestionView != null) {
-                LinearLayout itemList = (LinearLayout) mAggregationSuggestionView.findViewById(
-                        R.id.aggregation_suggestions);
-                int count = itemList.getChildCount();
-                for (int i = 0; i < count; i++) {
-                    itemList.getChildAt(i).setEnabled(enabled);
-                }
-            }
-
-            // Maybe invalidate the options menu
-            final Activity activity = getActivity();
-            if (activity != null) activity.invalidateOptionsMenu();
-        }
-    }
-
-    /**
-     * Removes a current editor ({@link #mState}) and rebinds new editor for a new account.
-     * Some of old data are reused with new restriction enforced by the new account.
-     *
-     * @param oldState Old data being edited.
-     * @param oldAccount Old account associated with oldState.
-     * @param newAccount New account to be used.
-     */
-    protected void rebindEditorsForNewContact(
-            RawContactDelta oldState, AccountWithDataSet oldAccount,
-            AccountWithDataSet newAccount) {
-        AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
-        AccountType oldAccountType = accountTypes.getAccountTypeForAccount(oldAccount);
-        AccountType newAccountType = accountTypes.getAccountTypeForAccount(newAccount);
-
-        if (newAccountType.getCreateContactActivityClassName() != null) {
-            Log.w(TAG, "external activity called in rebind situation");
-            if (mListener != null) {
-                mListener.onCustomCreateContactActivityRequested(newAccount, mIntentExtras);
-            }
-        } else {
-            mExistingContactDataReady = false;
-            mNewContactDataReady = false;
-            mState = new RawContactDeltaList();
-            setStateForNewContact(newAccount, newAccountType, oldState, oldAccountType,
-                    isEditingUserProfile());
-            if (mIsEdit) {
-                setStateForExistingContact(mReadOnlyDisplayName, isEditingUserProfile(),
-                        mRawContacts);
-            }
-        }
-    }
-
-    //
-    // ContactEditor
-    //
-
-    @Override
-    public void setListener(Listener listener) {
-        mListener = listener;
-    }
-
-    @Override
-    public void load(String action, Uri lookupUri, Bundle intentExtras) {
-        mAction = action;
-        mLookupUri = lookupUri;
-        mIntentExtras = intentExtras;
-
-        if (mIntentExtras != null) {
-            mAutoAddToDefaultGroup =
-                    mIntentExtras.containsKey(INTENT_EXTRA_ADD_TO_DEFAULT_DIRECTORY);
-            mNewLocalProfile =
-                    mIntentExtras.getBoolean(INTENT_EXTRA_NEW_LOCAL_PROFILE);
-            mDisableDeleteMenuOption =
-                    mIntentExtras.getBoolean(INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION);
-            if (mIntentExtras.containsKey(INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR)
-                    && mIntentExtras.containsKey(INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR)) {
-                mMaterialPalette = new MaterialColorMapUtils.MaterialPalette(
-                        mIntentExtras.getInt(INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR),
-                        mIntentExtras.getInt(INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR));
-            }
-            // If the user selected a different photo, don't restore the one from the Intent
-            if (mPhotoId < 0) {
-                mPhotoId = mIntentExtras.getLong(INTENT_EXTRA_PHOTO_ID);
-            }
-            mRawContactIdToDisplayAlone = mIntentExtras.getLong(
-                    INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE, -1);
-            mRawContactDisplayAloneIsReadOnly = mIntentExtras.getBoolean(
-                    INTENT_EXTRA_RAW_CONTACT_DISPLAY_ALONE_IS_READ_ONLY);
-        }
-    }
-
-    @Override
-    public void setIntentExtras(Bundle extras) {
-        if (extras == null || extras.size() == 0) {
-            return;
-        }
-
-        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
-        for (RawContactDelta state : mState) {
-            final AccountType type = state.getAccountType(accountTypes);
-            if (type.areContactsWritable()) {
-                // Apply extras to the first writable raw contact only
-                RawContactModifier.parseExtras(mContext, type, state, extras);
-                break;
-            }
-        }
-    }
-
-    @Override
-    public void onJoinCompleted(Uri uri) {
-        onSaveCompleted(false, SaveMode.RELOAD, uri != null, uri, /* joinContactId */ null);
-    }
-
-    @Override
-    public void onSaveCompleted(boolean hadChanges, int saveMode, boolean saveSucceeded,
-            Uri contactLookupUri, Long joinContactId) {
-        if (hadChanges) {
-            if (saveSucceeded) {
-                switch (saveMode) {
-                    case SaveMode.JOIN:
-                        break;
-                    case SaveMode.SPLIT:
-                        Toast.makeText(mContext, R.string.contactUnlinkedToast, Toast.LENGTH_SHORT)
-                                .show();
-                        break;
-                    default:
-                        Toast.makeText(mContext, R.string.contactSavedToast, Toast.LENGTH_SHORT)
-                                .show();
-                }
-
-            } else {
-                Toast.makeText(mContext, R.string.contactSavedErrorToast, Toast.LENGTH_LONG).show();
-            }
-        }
-        switch (saveMode) {
-            case SaveMode.CLOSE: {
-                final Intent resultIntent;
-                if (saveSucceeded && contactLookupUri != null) {
-                    final Uri lookupUri = maybeConvertToLegacyLookupUri(
-                            mContext, contactLookupUri, mLookupUri);
-                    resultIntent = ImplicitIntentsUtil.composeQuickContactIntent(lookupUri,
-                            QuickContactActivity.MODE_FULLY_EXPANDED);
-                    resultIntent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
-                            ScreenType.EDITOR);
-                } else {
-                    resultIntent = null;
-                }
-                // It is already saved, so prevent it from being saved again
-                mStatus = Status.CLOSING;
-                if (mListener != null) mListener.onSaveFinished(resultIntent);
-                break;
-            }
-            case SaveMode.COMPACT: {
-                // It is already saved, so prevent it from being saved again
-                mStatus = Status.CLOSING;
-                if (mListener != null) mListener.onSaveFinished(/* resultIntent= */ null);
-                break;
-            }
-            case SaveMode.JOIN:
-                if (saveSucceeded && contactLookupUri != null && joinContactId != null) {
-                    joinAggregate(joinContactId);
-                }
-                break;
-            case SaveMode.RELOAD:
-                if (saveSucceeded && contactLookupUri != null) {
-                    // If this was in INSERT, we are changing into an EDIT now.
-                    // If it already was an EDIT, we are changing to the new Uri now
-                    mState = new RawContactDeltaList();
-                    load(Intent.ACTION_EDIT, contactLookupUri, null);
-                    mStatus = Status.LOADING;
-                    getLoaderManager().restartLoader(LOADER_CONTACT, null, mContactLoaderListener);
-                }
-                break;
-
-            case SaveMode.SPLIT:
-                mStatus = Status.CLOSING;
-                if (mListener != null) {
-                    mListener.onContactSplit(contactLookupUri);
-                } else {
-                    Log.d(TAG, "No listener registered, can not call onSplitFinished");
-                }
-                break;
-        }
-    }
-
-    /**
-     * Shows a list of aggregates that can be joined into the currently viewed aggregate.
-     *
-     * @param contactLookupUri the fresh URI for the currently edited contact (after saving it)
-     */
-    private void showJoinAggregateActivity(Uri contactLookupUri) {
-        if (contactLookupUri == null || !isAdded()) {
-            return;
-        }
-
-        mContactIdForJoin = ContentUris.parseId(contactLookupUri);
-        final Intent intent = new Intent(UiIntentActions.PICK_JOIN_CONTACT_ACTION);
-        intent.putExtra(UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY, mContactIdForJoin);
-        startActivityForResult(intent, REQUEST_CODE_JOIN);
-    }
-
-    //
-    // Aggregation PopupWindow
-    //
-
-    /**
-     * Triggers an asynchronous search for aggregation suggestions.
-     */
-    protected void acquireAggregationSuggestions(Context context,
-            long rawContactId, ValuesDelta valuesDelta) {
-        if (mAggregationSuggestionsRawContactId != rawContactId
-                && mAggregationSuggestionView != null) {
-            mAggregationSuggestionView.setVisibility(View.GONE);
-            mAggregationSuggestionView = null;
-            mAggregationSuggestionEngine.reset();
-        }
-
-        mAggregationSuggestionsRawContactId = rawContactId;
-
-        if (mAggregationSuggestionEngine == null) {
-            mAggregationSuggestionEngine = new AggregationSuggestionEngine(context);
-            mAggregationSuggestionEngine.setListener(this);
-            mAggregationSuggestionEngine.start();
-        }
-
-        mAggregationSuggestionEngine.setContactId(getContactId());
-
-        mAggregationSuggestionEngine.onNameChange(valuesDelta);
-    }
-
-    /**
-     * Returns the contact ID for the currently edited contact or 0 if the contact is new.
-     */
-    private long getContactId() {
-        for (RawContactDelta rawContact : mState) {
-            Long contactId = rawContact.getValues().getAsLong(RawContacts.CONTACT_ID);
-            if (contactId != null) {
-                return contactId;
-            }
-        }
-        return 0;
-    }
-
-    @Override
-    public void onAggregationSuggestionChange() {
-        final Activity activity = getActivity();
-        if ((activity != null && activity.isFinishing())
-                || !isVisible() ||  mState.isEmpty() || mStatus != Status.EDITING) {
-            return;
-        }
-
-        UiClosables.closeQuietly(mAggregationSuggestionPopup);
-
-        if (mAggregationSuggestionEngine.getSuggestedContactCount() == 0) {
-            return;
-        }
-
-        final View anchorView = getAggregationAnchorView(mAggregationSuggestionsRawContactId);
-        if (anchorView == null) {
-            return; // Raw contact deleted?
-        }
-        mAggregationSuggestionPopup = new ListPopupWindow(mContext, null);
-        mAggregationSuggestionPopup.setAnchorView(anchorView);
-        mAggregationSuggestionPopup.setWidth(anchorView.getWidth());
-        mAggregationSuggestionPopup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
-        mAggregationSuggestionPopup.setAdapter(
-                new AggregationSuggestionAdapter(
-                        getActivity(),
-                        mState.size() == 1 && mState.get(0).isContactInsert(),
-                        /* listener =*/ this,
-                        mAggregationSuggestionEngine.getSuggestions()));
-        mAggregationSuggestionPopup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                final AggregationSuggestionView suggestionView = (AggregationSuggestionView) view;
-                suggestionView.handleItemClickEvent();
-                UiClosables.closeQuietly(mAggregationSuggestionPopup);
-                mAggregationSuggestionPopup = null;
-            }
-        });
-        mAggregationSuggestionPopup.show();
-    }
-
-    /**
-     * Returns the raw contact editor view for the given rawContactId that should be used as the
-     * anchor for aggregation suggestions.
-     */
-    abstract protected View getAggregationAnchorView(long rawContactId);
-
-    /**
-     * Whether the given raw contact ID matches the one used to last load aggregation
-     * suggestions.
-     */
-    protected boolean isAggregationSuggestionRawContactId(long rawContactId) {
-        return mAggregationSuggestionsRawContactId == rawContactId;
-    }
-
-    @Override
-    public void onJoinAction(long contactId, List<Long> rawContactIdList) {
-        final long rawContactIds[] = new long[rawContactIdList.size()];
-        for (int i = 0; i < rawContactIds.length; i++) {
-            rawContactIds[i] = rawContactIdList.get(i);
-        }
-        try {
-            JoinSuggestedContactDialogFragment.show(this, rawContactIds);
-        } catch (Exception ignored) {
-            // No problem - the activity is no longer available to display the dialog
-        }
-    }
-
-    /**
-     * Joins the suggested contact (specified by the id's of constituent raw
-     * contacts), save all changes, and stay in the editor.
-     */
-    protected void doJoinSuggestedContact(long[] rawContactIds) {
-        if (!hasValidState() || mStatus != Status.EDITING) {
-            return;
-        }
-
-        mState.setJoinWithRawContacts(rawContactIds);
-        save(SaveMode.RELOAD);
-    }
-
-    @Override
-    public void onEditAction(Uri contactLookupUri) {
-        SuggestionEditConfirmationDialogFragment.show(this, contactLookupUri);
-    }
-
-    /**
-     * Abandons the currently edited contact and switches to editing the suggested
-     * one, transferring all the data there
-     */
-    protected void doEditSuggestedContact(Uri contactUri) {
-        if (mListener != null) {
-            // make sure we don't save this contact when closing down
-            mStatus = Status.CLOSING;
-            mListener.onEditOtherContactRequested(
-                    contactUri, mState.get(0).getContentValues());
-        }
-    }
-
-    //
-    // Join Activity
-    //
-
-    /**
-     * Performs aggregation with the contact selected by the user from suggestions or A-Z list.
-     */
-    abstract protected void joinAggregate(long contactId);
-
-    //
-    // Utility methods
-    //
-
-    /**
-     * Returns a legacy version of the given contactLookupUri if a legacy Uri was originally
-     * passed to the contact editor.
-     *
-     * @param contactLookupUri The Uri to possibly convert to legacy format.
-     * @param requestLookupUri The lookup Uri originally passed to the contact editor
-     *                         (via Intent data), may be null.
-     */
-    protected static Uri maybeConvertToLegacyLookupUri(Context context, Uri contactLookupUri,
-            Uri requestLookupUri) {
-        final String legacyAuthority = "contacts";
-        final String requestAuthority = requestLookupUri == null
-                ? null : requestLookupUri.getAuthority();
-        if (legacyAuthority.equals(requestAuthority)) {
-            // Build a legacy Uri if that is what was requested by caller
-            final long contactId = ContentUris.parseId(Contacts.lookupContact(
-                    context.getContentResolver(), contactLookupUri));
-            final Uri legacyContentUri = Uri.parse("content://contacts/people");
-            return ContentUris.withAppendedId(legacyContentUri, contactId);
-        }
-        // Otherwise pass back a lookup-style Uri
-        return contactLookupUri;
-    }
-
-    /**
-     * Whether the argument Intent requested a contact insert action or not.
-     */
-    protected static boolean isInsert(Intent intent) {
-        return intent == null ? false : isInsert(intent.getAction());
-    }
-
-    protected static boolean isInsert(String action) {
-        return Intent.ACTION_INSERT.equals(action)
-                || ContactEditorBaseActivity.ACTION_INSERT.equals(action);
-    }
-
-    protected static boolean isEdit(String action) {
-        return Intent.ACTION_EDIT.equals(action)
-                || ContactEditorBaseActivity.ACTION_EDIT.equals(action);
-    }
-}
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 146bc4c..da68ec6 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2015 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.
@@ -16,144 +16,740 @@
 
 package com.android.contacts.editor;
 
+import android.accounts.Account;
 import android.app.Activity;
+import android.app.Fragment;
+import android.app.LoaderManager;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
 import android.content.Context;
+import android.content.CursorLoader;
 import android.content.Intent;
+import android.content.Loader;
+import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.net.Uri;
 import android.os.Bundle;
-import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.os.SystemClock;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.Intents;
+import android.provider.ContactsContract.RawContacts;
+import android.support.v7.widget.Toolbar;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
+import android.widget.BaseAdapter;
 import android.widget.LinearLayout;
 import android.widget.ListPopupWindow;
+import android.widget.Toast;
 
 import com.android.contacts.ContactSaveService;
+import com.android.contacts.GroupMetaDataLoader;
 import com.android.contacts.R;
+import com.android.contacts.activities.ContactEditorAccountsChangedActivity;
 import com.android.contacts.activities.ContactEditorActivity;
-import com.android.contacts.activities.ContactEditorBaseActivity.ContactEditor;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.util.AccountsListAdapter;
-import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
-import com.android.contacts.detail.PhotoSelectionHandler;
-import com.android.contacts.editor.Editor.EditorListener;
+import com.android.contacts.activities.ContactEditorActivity.ContactEditor;
+import com.android.contacts.activities.ContactSelectionActivity;
+import com.android.contacts.activities.RequestPermissionsActivity;
+import com.android.contacts.editor.AggregationSuggestionEngine.Suggestion;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.list.UiIntentActions;
+import com.android.contacts.logging.ScreenEvent.ScreenType;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.Contact;
+import com.android.contacts.model.ContactLoader;
+import com.android.contacts.model.RawContact;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactDeltaList;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.AccountsLoader;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.quickcontact.InvisibleContactUtil;
+import com.android.contacts.quickcontact.QuickContactActivity;
+import com.android.contacts.util.ContactDisplayUtils;
 import com.android.contacts.util.ContactPhotoUtils;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.util.MaterialColorMapUtils;
 import com.android.contacts.util.UiClosables;
+import com.android.contactsbind.HelpUtils;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
 
 import java.io.FileNotFoundException;
+import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 /**
- * Contact editor with all fields displayed.
+ * Contact editor with only the most important fields displayed initially.
  */
-public class ContactEditorFragment extends ContactEditorBaseFragment implements
-        RawContactReadOnlyEditorView.Listener {
+public class ContactEditorFragment extends Fragment implements
+        ContactEditor, SplitContactConfirmationDialogFragment.Listener,
+        JoinContactConfirmationDialogFragment.Listener,
+        AggregationSuggestionEngine.Listener, AggregationSuggestionView.Listener,
+        CancelEditDialogFragment.Listener,
+        RawContactEditorView.Listener, PhotoEditorView.Listener,
+        AccountsLoader.AccountsListener {
 
-    private static final String KEY_EXPANDED_EDITORS = "expandedEditors";
+    static final String TAG = "ContactEditor";
 
-    private static final String KEY_RAW_CONTACT_ID_REQUESTING_PHOTO = "photorequester";
-    private static final String KEY_CURRENT_PHOTO_URI = "currentphotouri";
-    private static final String KEY_UPDATED_PHOTOS = "updatedPhotos";
+    private static final int LOADER_CONTACT = 1;
+    private static final int LOADER_GROUPS = 2;
+    private static final int LOADER_ACCOUNTS = 3;
 
-    // Used to store which raw contact editors have been expanded. Keyed on raw contact ids.
-    private HashMap<Long, Boolean> mExpandedEditors = new HashMap<Long, Boolean>();
+    private static final String KEY_PHOTO_RAW_CONTACT_ID = "photo_raw_contact_id";
+    private static final String KEY_UPDATED_PHOTOS = "updated_photos";
+
+    private static final List<String> VALID_INTENT_ACTIONS = new ArrayList<String>() {{
+        add(Intent.ACTION_EDIT);
+        add(Intent.ACTION_INSERT);
+        add(ContactEditorActivity.ACTION_SAVE_COMPLETED);
+    }};
+
+    private static final String KEY_ACTION = "action";
+    private static final String KEY_URI = "uri";
+    private static final String KEY_AUTO_ADD_TO_DEFAULT_GROUP = "autoAddToDefaultGroup";
+    private static final String KEY_DISABLE_DELETE_MENU_OPTION = "disableDeleteMenuOption";
+    private static final String KEY_NEW_LOCAL_PROFILE = "newLocalProfile";
+    private static final String KEY_MATERIAL_PALETTE = "materialPalette";
+    private static final String KEY_ACCOUNT = "saveToAccount";
+    private static final String KEY_VIEW_ID_GENERATOR = "viewidgenerator";
+
+    private static final String KEY_RAW_CONTACTS = "rawContacts";
+
+    private static final String KEY_EDIT_STATE = "state";
+    private static final String KEY_STATUS = "status";
+
+    private static final String KEY_HAS_NEW_CONTACT = "hasNewContact";
+    private static final String KEY_NEW_CONTACT_READY = "newContactDataReady";
+
+    private static final String KEY_IS_EDIT = "isEdit";
+    private static final String KEY_EXISTING_CONTACT_READY = "existingContactDataReady";
+
+    private static final String KEY_IS_USER_PROFILE = "isUserProfile";
+
+    private static final String KEY_ENABLED = "enabled";
+
+    // Aggregation PopupWindow
+    private static final String KEY_AGGREGATION_SUGGESTIONS_RAW_CONTACT_ID =
+            "aggregationSuggestionsRawContactId";
+
+    // Join Activity
+    private static final String KEY_CONTACT_ID_FOR_JOIN = "contactidforjoin";
+
+    private static final String KEY_READ_ONLY_DISPLAY_NAME_ID = "readOnlyDisplayNameId";
+    private static final String KEY_COPY_READ_ONLY_DISPLAY_NAME = "copyReadOnlyDisplayName";
+
+    protected static final int REQUEST_CODE_JOIN = 0;
+    protected static final int REQUEST_CODE_ACCOUNTS_CHANGED = 1;
 
     /**
-     * The raw contact for which we started "take photo" or "choose photo from gallery" most
-     * recently.  Used to restore {@link #mCurrentPhotoHandler} after orientation change.
+     * An intent extra that forces the editor to add the edited contact
+     * to the default group (e.g. "My Contacts").
      */
-    private long mRawContactIdRequestingPhoto;
+    public static final String INTENT_EXTRA_ADD_TO_DEFAULT_DIRECTORY = "addToDefaultDirectory";
+
+    public static final String INTENT_EXTRA_NEW_LOCAL_PROFILE = "newLocalProfile";
+
+    public static final String INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION =
+            "disableDeleteMenuOption";
 
     /**
-     * The {@link PhotoHandler} for the photo editor for the {@link #mRawContactIdRequestingPhoto}
-     * raw contact.
-     *
-     * A {@link PhotoHandler} is created for each photo editor in {@link #bindPhotoHandler}, but
-     * the only "active" one should get the activity result.  This member represents the active
-     * one.
+     * Intent key to pass the photo palette primary color calculated by
+     * {@link com.android.contacts.quickcontact.QuickContactActivity} to the editor.
      */
-    private PhotoHandler mCurrentPhotoHandler;
-    private Uri mCurrentPhotoUri;
+    public static final String INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR =
+            "material_palette_primary_color";
+
+    /**
+     * Intent key to pass the photo palette secondary color calculated by
+     * {@link com.android.contacts.quickcontact.QuickContactActivity} to the editor.
+     */
+    public static final String INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR =
+            "material_palette_secondary_color";
+
+    /**
+     * Intent key to pass the ID of the photo to display on the editor.
+     */
+    // TODO: This can be cleaned up if we decide to not pass the photo id through
+    // QuickContactActivity.
+    public static final String INTENT_EXTRA_PHOTO_ID = "photo_id";
+
+    /**
+     * Intent key to pass the ID of the raw contact id that should be displayed in the full editor
+     * by itself.
+     */
+    public static final String INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE =
+            "raw_contact_id_to_display_alone";
+
+    /**
+     * Intent extra to specify a {@link ContactEditor.SaveMode}.
+     */
+    public static final String SAVE_MODE_EXTRA_KEY = "saveMode";
+
+    /**
+     * Intent extra key for the contact ID to join the current contact to after saving.
+     */
+    public static final String JOIN_CONTACT_ID_EXTRA_KEY = "joinContactId";
+
+    /**
+     * Callbacks for Activities that host contact editors Fragments.
+     */
+    public interface Listener {
+
+        /**
+         * Contact was not found, so somehow close this fragment. This is raised after a contact
+         * is removed via Menu/Delete
+         */
+        void onContactNotFound();
+
+        /**
+         * Contact was split, so we can close now.
+         *
+         * @param newLookupUri The lookup uri of the new contact that should be shown to the user.
+         *                     The editor tries best to chose the most natural contact here.
+         */
+        void onContactSplit(Uri newLookupUri);
+
+        /**
+         * User has tapped Revert, close the fragment now.
+         */
+        void onReverted();
+
+        /**
+         * Contact was saved and the Fragment can now be closed safely.
+         */
+        void onSaveFinished(Intent resultIntent);
+
+        /**
+         * User switched to editing a different raw contact (a suggestion from the
+         * aggregation engine).
+         */
+        void onEditOtherRawContactRequested(Uri contactLookupUri, long rawContactId,
+                ArrayList<ContentValues> contentValues);
+
+        /**
+         * User has requested that contact be deleted.
+         */
+        void onDeleteRequested(Uri contactUri);
+    }
+
+    /**
+     * Adapter for aggregation suggestions displayed in a PopupWindow when
+     * editor fields change.
+     */
+    private static final class AggregationSuggestionAdapter extends BaseAdapter {
+        private final LayoutInflater mLayoutInflater;
+        private final AggregationSuggestionView.Listener mListener;
+        private final List<AggregationSuggestionEngine.Suggestion> mSuggestions;
+
+        public AggregationSuggestionAdapter(Activity activity,
+                AggregationSuggestionView.Listener listener, List<Suggestion> suggestions) {
+            mLayoutInflater = activity.getLayoutInflater();
+            mListener = listener;
+            mSuggestions = suggestions;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final Suggestion suggestion = (Suggestion) getItem(position);
+            final AggregationSuggestionView suggestionView =
+                    (AggregationSuggestionView) mLayoutInflater.inflate(
+                            R.layout.aggregation_suggestions_item, null);
+            suggestionView.setListener(mListener);
+            suggestionView.bindSuggestion(suggestion);
+            return suggestionView;
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mSuggestions.get(position);
+        }
+
+        @Override
+        public int getCount() {
+            return mSuggestions.size();
+        }
+    }
+
+    protected Context mContext;
+    protected Listener mListener;
+
+    //
+    // Views
+    //
+    protected LinearLayout mContent;
+    protected ListPopupWindow mAggregationSuggestionPopup;
+
+    //
+    // Parameters passed in on {@link #load}
+    //
+    protected String mAction;
+    protected Uri mLookupUri;
+    protected Bundle mIntentExtras;
+    protected boolean mAutoAddToDefaultGroup;
+    protected boolean mDisableDeleteMenuOption;
+    protected boolean mNewLocalProfile;
+    protected MaterialColorMapUtils.MaterialPalette mMaterialPalette;
+
+    //
+    // Helpers
+    //
+    protected ContactEditorUtils mEditorUtils;
+    protected RawContactDeltaComparator mComparator;
+    protected ViewIdGenerator mViewIdGenerator;
+    private AggregationSuggestionEngine mAggregationSuggestionEngine;
+
+    //
+    // Loaded data
+    //
+    // Used to store existing contact data so it can be re-applied during a rebind call,
+    // i.e. account switch.
+    protected Contact mContact;
+    protected ImmutableList<RawContact> mRawContacts;
+    protected Cursor mGroupMetaData;
+
+    //
+    // Editor state
+    //
+    protected RawContactDeltaList mState;
+    protected int mStatus;
+    protected long mRawContactIdToDisplayAlone = -1;
+
+    // Whether to show the new contact blank form and if it's corresponding delta is ready.
+    protected boolean mHasNewContact;
+    protected AccountWithDataSet mAccountWithDataSet;
+    protected List<AccountInfo> mWritableAccounts = Collections.emptyList();
+    protected boolean mNewContactDataReady;
+    protected boolean mNewContactAccountChanged;
+
+    // Whether it's an edit of existing contact and if it's corresponding delta is ready.
+    protected boolean mIsEdit;
+    protected boolean mExistingContactDataReady;
+
+    // Whether we are editing the "me" profile
+    protected boolean mIsUserProfile;
+
+    // Whether editor views and options menu items should be enabled
+    private boolean mEnabled = true;
+
+    // Aggregation PopupWindow
+    private long mAggregationSuggestionsRawContactId;
+
+    // Join Activity
+    protected long mContactIdForJoin;
+
+    // Used to pre-populate the editor with a display name when a user edits a read-only contact.
+    protected long mReadOnlyDisplayNameId;
+    protected boolean mCopyReadOnlyName;
+
+    /**
+     * The contact data loader listener.
+     */
+    protected final LoaderManager.LoaderCallbacks<Contact> mContactLoaderListener =
+            new LoaderManager.LoaderCallbacks<Contact>() {
+
+                protected long mLoaderStartTime;
+
+                @Override
+                public Loader<Contact> onCreateLoader(int id, Bundle args) {
+                    mLoaderStartTime = SystemClock.elapsedRealtime();
+                    return new ContactLoader(mContext, mLookupUri,
+                            /* postViewNotification */ true,
+                            /* loadGroupMetaData */ true);
+                }
+
+                @Override
+                public void onLoadFinished(Loader<Contact> loader, Contact contact) {
+                    final long loaderCurrentTime = SystemClock.elapsedRealtime();
+                    if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                        Log.v(TAG,
+                                "Time needed for loading: " + (loaderCurrentTime-mLoaderStartTime));
+                    }
+                    if (!contact.isLoaded()) {
+                        // Item has been deleted. Close activity without saving again.
+                        Log.i(TAG, "No contact found. Closing activity");
+                        mStatus = Status.CLOSING;
+                        if (mListener != null) mListener.onContactNotFound();
+                        return;
+                    }
+
+                    mStatus = Status.EDITING;
+                    mLookupUri = contact.getLookupUri();
+                    final long setDataStartTime = SystemClock.elapsedRealtime();
+                    setState(contact);
+                    final long setDataEndTime = SystemClock.elapsedRealtime();
+                    if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                        Log.v(TAG, "Time needed for setting UI: "
+                                + (setDataEndTime - setDataStartTime));
+                    }
+                }
+
+                @Override
+                public void onLoaderReset(Loader<Contact> loader) {
+                }
+            };
+
+    /**
+     * The groups meta data loader listener.
+     */
+    protected final LoaderManager.LoaderCallbacks<Cursor> mGroupsLoaderListener =
+            new LoaderManager.LoaderCallbacks<Cursor>() {
+
+                @Override
+                public CursorLoader onCreateLoader(int id, Bundle args) {
+                    return new GroupMetaDataLoader(mContext, ContactsContract.Groups.CONTENT_URI,
+                            GroupUtil.ALL_GROUPS_SELECTION);
+                }
+
+                @Override
+                public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+                    mGroupMetaData = data;
+                    setGroupMetaData();
+                }
+
+                @Override
+                public void onLoaderReset(Loader<Cursor> loader) {
+                }
+            };
+
+    private long mPhotoRawContactId;
     private Bundle mUpdatedPhotos = new Bundle();
 
-    public ContactEditorFragment() {
+    @Override
+    public Context getContext() {
+        return getActivity();
     }
 
     @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        final View view = inflater.inflate(R.layout.contact_editor_fragment, container, false);
-
-        mContent = (LinearLayout) view.findViewById(R.id.editors);
-
-        setHasOptionsMenu(true);
-
-        return view;
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        mContext = activity;
+        mEditorUtils = ContactEditorUtils.create(mContext);
+        mComparator = new RawContactDeltaComparator(mContext);
     }
 
     @Override
     public void onCreate(Bundle savedState) {
+        if (savedState != null) {
+            // Restore mUri before calling super.onCreate so that onInitializeLoaders
+            // would already have a uri and an action to work with
+            mAction = savedState.getString(KEY_ACTION);
+            mLookupUri = savedState.getParcelable(KEY_URI);
+        }
+
         super.onCreate(savedState);
 
-        if (savedState != null) {
-            mExpandedEditors = (HashMap<Long, Boolean>)
-                    savedState.getSerializable(KEY_EXPANDED_EDITORS);
-            mRawContactIdRequestingPhoto = savedState.getLong(
-                    KEY_RAW_CONTACT_ID_REQUESTING_PHOTO);
-            mCurrentPhotoUri = savedState.getParcelable(KEY_CURRENT_PHOTO_URI);
+        if (savedState == null) {
+            mViewIdGenerator = new ViewIdGenerator();
+
+            // mState can still be null because it may not have have finished loading before
+            // onSaveInstanceState was called.
+            mState = new RawContactDeltaList();
+        } else {
+            mViewIdGenerator = savedState.getParcelable(KEY_VIEW_ID_GENERATOR);
+
+            mAutoAddToDefaultGroup = savedState.getBoolean(KEY_AUTO_ADD_TO_DEFAULT_GROUP);
+            mDisableDeleteMenuOption = savedState.getBoolean(KEY_DISABLE_DELETE_MENU_OPTION);
+            mNewLocalProfile = savedState.getBoolean(KEY_NEW_LOCAL_PROFILE);
+            mMaterialPalette = savedState.getParcelable(KEY_MATERIAL_PALETTE);
+            mAccountWithDataSet = savedState.getParcelable(KEY_ACCOUNT);
+            mRawContacts = ImmutableList.copyOf(savedState.<RawContact>getParcelableArrayList(
+                    KEY_RAW_CONTACTS));
+            // NOTE: mGroupMetaData is not saved/restored
+
+            // Read state from savedState. No loading involved here
+            mState = savedState.<RawContactDeltaList> getParcelable(KEY_EDIT_STATE);
+            mStatus = savedState.getInt(KEY_STATUS);
+
+            mHasNewContact = savedState.getBoolean(KEY_HAS_NEW_CONTACT);
+            mNewContactDataReady = savedState.getBoolean(KEY_NEW_CONTACT_READY);
+
+            mIsEdit = savedState.getBoolean(KEY_IS_EDIT);
+            mExistingContactDataReady = savedState.getBoolean(KEY_EXISTING_CONTACT_READY);
+
+            mIsUserProfile = savedState.getBoolean(KEY_IS_USER_PROFILE);
+
+            mEnabled = savedState.getBoolean(KEY_ENABLED);
+
+            // Aggregation PopupWindow
+            mAggregationSuggestionsRawContactId = savedState.getLong(
+                    KEY_AGGREGATION_SUGGESTIONS_RAW_CONTACT_ID);
+
+            // Join Activity
+            mContactIdForJoin = savedState.getLong(KEY_CONTACT_ID_FOR_JOIN);
+
+            mReadOnlyDisplayNameId = savedState.getLong(KEY_READ_ONLY_DISPLAY_NAME_ID);
+            mCopyReadOnlyName = savedState.getBoolean(KEY_COPY_READ_ONLY_DISPLAY_NAME, false);
+
+            mPhotoRawContactId = savedState.getLong(KEY_PHOTO_RAW_CONTACT_ID);
             mUpdatedPhotos = savedState.getParcelable(KEY_UPDATED_PHOTOS);
-            mRawContactIdToDisplayAlone = savedState.getLong(
-                    ContactEditorBaseFragment.INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE, -1);
         }
     }
 
     @Override
-    public void load(String action, Uri lookupUri, Bundle intentExtras) {
-        super.load(action, lookupUri, intentExtras);
-        if (intentExtras != null) {
-            mRawContactIdToDisplayAlone = intentExtras.getLong(
-                    ContactEditorBaseFragment.INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE, -1);
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
+        setHasOptionsMenu(true);
+
+        final View view = inflater.inflate(
+                R.layout.contact_editor_fragment, container, false);
+        mContent = (LinearLayout) view.findViewById(R.id.raw_contacts_editor_view);
+        return view;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        validateAction(mAction);
+
+        if (mState.isEmpty()) {
+            // The delta list may not have finished loading before orientation change happens.
+            // In this case, there will be a saved state but deltas will be missing.  Reload from
+            // database.
+            if (Intent.ACTION_EDIT.equals(mAction)) {
+                // Either
+                // 1) orientation change but load never finished.
+                // 2) not an orientation change so data needs to be loaded for first time.
+                getLoaderManager().initLoader(LOADER_CONTACT, null, mContactLoaderListener);
+                getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupsLoaderListener);
+            }
+        } else {
+            // Orientation change, we already have mState, it was loaded by onCreate
+            bindEditors();
+        }
+
+        // Handle initial actions only when existing state missing
+        if (savedInstanceState == null) {
+            if (mIntentExtras != null) {
+                final Account account = mIntentExtras == null ? null :
+                        (Account) mIntentExtras.getParcelable(Intents.Insert.EXTRA_ACCOUNT);
+                final String dataSet = mIntentExtras == null ? null :
+                        mIntentExtras.getString(Intents.Insert.EXTRA_DATA_SET);
+                mAccountWithDataSet = account != null
+                        ? new AccountWithDataSet(account.name, account.type, dataSet)
+                        : mIntentExtras.<AccountWithDataSet>getParcelable(
+                                ContactEditorActivity.EXTRA_ACCOUNT_WITH_DATA_SET);
+            }
+
+            if (Intent.ACTION_EDIT.equals(mAction)) {
+                mIsEdit = true;
+            } else if (Intent.ACTION_INSERT.equals(mAction)) {
+                mHasNewContact = true;
+                if (mAccountWithDataSet != null) {
+                    createContact(mAccountWithDataSet);
+                } // else wait for accounts to be loaded
+            }
+        }
+
+        if (mHasNewContact) {
+            AccountsLoader.loadAccounts(this, LOADER_ACCOUNTS, AccountTypeManager.writableFilter());
         }
     }
 
-    @Override
-    public void onStart() {
-        getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupsLoaderListener);
-        super.onStart();
-    }
-
-    @Override
-    public void onExternalEditorRequest(AccountWithDataSet account, Uri uri) {
-        if (mListener != null) {
-            mListener.onCustomEditContactActivityRequested(account, uri, null, false);
-        }
-    }
-
-    @Override
-    public void onEditorExpansionChanged() {
-        updatedExpandedEditorsMap();
-    }
-
-    @Override
-    protected void setGroupMetaData() {
-        if (mGroupMetaData == null) {
+    /**
+     * Checks if the requested action is valid.
+     *
+     * @param action The action to test.
+     * @throws IllegalArgumentException when the action is invalid.
+     */
+    private static void validateAction(String action) {
+        if (VALID_INTENT_ACTIONS.contains(action)) {
             return;
         }
-        int editorCount = mContent.getChildCount();
-        for (int i = 0; i < editorCount; i++) {
-            BaseRawContactEditorView editor = (BaseRawContactEditorView) mContent.getChildAt(i);
-            editor.setGroupMetaData(mGroupMetaData);
+        throw new IllegalArgumentException(
+                "Unknown action " + action + "; Supported actions: " + VALID_INTENT_ACTIONS);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        outState.putString(KEY_ACTION, mAction);
+        outState.putParcelable(KEY_URI, mLookupUri);
+        outState.putBoolean(KEY_AUTO_ADD_TO_DEFAULT_GROUP, mAutoAddToDefaultGroup);
+        outState.putBoolean(KEY_DISABLE_DELETE_MENU_OPTION, mDisableDeleteMenuOption);
+        outState.putBoolean(KEY_NEW_LOCAL_PROFILE, mNewLocalProfile);
+        if (mMaterialPalette != null) {
+            outState.putParcelable(KEY_MATERIAL_PALETTE, mMaterialPalette);
+        }
+        outState.putParcelable(KEY_VIEW_ID_GENERATOR, mViewIdGenerator);
+
+        outState.putParcelableArrayList(KEY_RAW_CONTACTS, mRawContacts == null ?
+                Lists.<RawContact>newArrayList() : Lists.newArrayList(mRawContacts));
+        // NOTE: mGroupMetaData is not saved
+
+        outState.putParcelable(KEY_EDIT_STATE, mState);
+        outState.putInt(KEY_STATUS, mStatus);
+        outState.putBoolean(KEY_HAS_NEW_CONTACT, mHasNewContact);
+        outState.putBoolean(KEY_NEW_CONTACT_READY, mNewContactDataReady);
+        outState.putBoolean(KEY_IS_EDIT, mIsEdit);
+        outState.putBoolean(KEY_EXISTING_CONTACT_READY, mExistingContactDataReady);
+        outState.putParcelable(KEY_ACCOUNT, mAccountWithDataSet);
+        outState.putBoolean(KEY_IS_USER_PROFILE, mIsUserProfile);
+
+        outState.putBoolean(KEY_ENABLED, mEnabled);
+
+        // Aggregation PopupWindow
+        outState.putLong(KEY_AGGREGATION_SUGGESTIONS_RAW_CONTACT_ID,
+                mAggregationSuggestionsRawContactId);
+
+        // Join Activity
+        outState.putLong(KEY_CONTACT_ID_FOR_JOIN, mContactIdForJoin);
+
+        outState.putLong(KEY_READ_ONLY_DISPLAY_NAME_ID, mReadOnlyDisplayNameId);
+        outState.putBoolean(KEY_COPY_READ_ONLY_DISPLAY_NAME, mCopyReadOnlyName);
+
+        outState.putLong(KEY_PHOTO_RAW_CONTACT_ID, mPhotoRawContactId);
+        outState.putParcelable(KEY_UPDATED_PHOTOS, mUpdatedPhotos);
+        super.onSaveInstanceState(outState);
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        UiClosables.closeQuietly(mAggregationSuggestionPopup);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        if (mAggregationSuggestionEngine != null) {
+            mAggregationSuggestionEngine.quit();
+        }
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        switch (requestCode) {
+            case REQUEST_CODE_JOIN: {
+                // Ignore failed requests
+                if (resultCode != Activity.RESULT_OK) return;
+                if (data != null) {
+                    final long contactId = ContentUris.parseId(data.getData());
+                    if (hasPendingChanges()) {
+                        // Ask the user if they want to save changes before doing the join
+                        JoinContactConfirmationDialogFragment.show(this, contactId);
+                    } else {
+                        // Do the join immediately
+                        joinAggregate(contactId);
+                    }
+                }
+                break;
+            }
+            case REQUEST_CODE_ACCOUNTS_CHANGED: {
+                // Bail if the account selector was not successful.
+                if (resultCode != Activity.RESULT_OK || data == null ||
+                        !data.hasExtra(Intents.Insert.EXTRA_ACCOUNT)) {
+                    if (mListener != null) {
+                        mListener.onReverted();
+                    }
+                    return;
+                }
+                AccountWithDataSet account = data.getParcelableExtra(
+                        Intents.Insert.EXTRA_ACCOUNT);
+                createContact(account);
+                break;
+            }
+        }
+    }
+
+    @Override
+    public void onAccountsLoaded(List<AccountInfo> data) {
+        mWritableAccounts = data;
+        // The user may need to select a new account to save to
+        if (mAccountWithDataSet == null && mHasNewContact) {
+            selectAccountAndCreateContact();
+        }
+
+        final RawContactEditorView view = getContent();
+        if (view == null) {
+            return;
+        }
+        view.setAccounts(data);
+        if (mAccountWithDataSet == null && view.getCurrentRawContactDelta() == null) {
+            return;
+        }
+
+        final AccountWithDataSet account = mAccountWithDataSet != null
+                ? mAccountWithDataSet
+                : view.getCurrentRawContactDelta().getAccountWithDataSet();
+
+        // The current account was removed
+        if (!AccountInfo.contains(data, account) && !data.isEmpty()) {
+            if (isReadyToBindEditors()) {
+                onRebindEditorsForNewContact(getContent().getCurrentRawContactDelta(),
+                        account, data.get(0).getAccount());
+            } else {
+                mAccountWithDataSet = data.get(0).getAccount();
+            }
+        }
+    }
+
+    //
+    // Options menu
+    //
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
+        inflater.inflate(R.menu.edit_contact, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        // This supports the keyboard shortcut to save changes to a contact but shouldn't be visible
+        // because the custom action bar contains the "save" button now (not the overflow menu).
+        // TODO: Find a better way to handle shortcuts, i.e. onKeyDown()?
+        final MenuItem saveMenu = menu.findItem(R.id.menu_save);
+        final MenuItem splitMenu = menu.findItem(R.id.menu_split);
+        final MenuItem joinMenu = menu.findItem(R.id.menu_join);
+        final MenuItem deleteMenu = menu.findItem(R.id.menu_delete);
+
+        // TODO: b/30771904, b/31827701, temporarily disable these items until we get them to work
+        // on a raw contact level.
+        joinMenu.setVisible(false);
+        splitMenu.setVisible(false);
+        deleteMenu.setVisible(false);
+        // Save menu is invisible when there's only one read only contact in the editor.
+        saveMenu.setVisible(!isEditingReadOnlyRawContact());
+        if (saveMenu.isVisible()) {
+            // Since we're using a custom action layout we have to manually hook up the handler.
+            saveMenu.getActionView().setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    onOptionsItemSelected(saveMenu);
+                }
+            });
+        }
+
+        int size = menu.size();
+        for (int i = 0; i < size; i++) {
+            menu.getItem(i).setEnabled(mEnabled);
         }
     }
 
@@ -162,300 +758,913 @@
         if (item.getItemId() == android.R.id.home) {
             return revert();
         }
-        return super.onOptionsItemSelected(item);
+
+        final Activity activity = getActivity();
+        if (activity == null || activity.isFinishing() || activity.isDestroyed()) {
+            // If we no longer are attached to a running activity want to
+            // drain this event.
+            return true;
+        }
+
+        final int id = item.getItemId();
+        if (id == R.id.menu_save) {
+            return save(SaveMode.CLOSE);
+        } else if (id == R.id.menu_delete) {
+            if (mListener != null) mListener.onDeleteRequested(mLookupUri);
+            return true;
+        } else if (id == R.id.menu_split) {
+            return doSplitContactAction();
+        } else if (id == R.id.menu_join) {
+            return doJoinContactAction();
+        } else if (id == R.id.menu_help) {
+            HelpUtils.launchHelpAndFeedbackForContactScreen(getActivity());
+            return true;
+        }
+
+        return false;
     }
 
     @Override
-    protected void bindEditors() {
-        // bindEditors() can only bind views if there is data in mState, so immediately return
-        // if mState is null
-        if (mState.isEmpty()) {
-            return;
-        }
-
-        // Check if delta list is ready.  Delta list is populated from existing data and when
-        // editing an read-only contact, it's also populated with newly created data for the
-        // blank form.  When the data is not ready, skip. This method will be called multiple times.
-        if ((mIsEdit && !mExistingContactDataReady) || (mHasNewContact && !mNewContactDataReady)) {
-            return;
-        }
-
-        // Sort the editors
-        Collections.sort(mState, mComparator);
-
-        // Remove any existing editors and rebuild any visible
-        mContent.removeAllViews();
-
-        final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
-        int numRawContacts = mState.size();
-
-        for (int i = 0; i < numRawContacts; i++) {
-            // TODO ensure proper ordering of entities in the list
-            final RawContactDelta rawContactDelta = mState.get(i);
-            if (!rawContactDelta.isVisible()) continue;
-
-            final AccountType type = rawContactDelta.getAccountType(accountTypes);
-            final long rawContactId = rawContactDelta.getRawContactId();
-
-            if (mRawContactIdToDisplayAlone != -1 && mRawContactIdToDisplayAlone != rawContactId) {
-                continue;
-            }
-
-            final BaseRawContactEditorView editor;
-            if (!type.areContactsWritable()) {
-                editor = (BaseRawContactEditorView) inflater.inflate(
-                        R.layout.raw_contact_readonly_editor_view, mContent, false);
-            } else {
-                editor = (RawContactEditorView) inflater.inflate(R.layout.raw_contact_editor_view,
-                        mContent, false);
-            }
-            editor.setListener(this);
-            final List<AccountWithDataSet> accounts = AccountTypeManager.getInstance(mContext)
-                    .getAccounts(true);
-            if (mHasNewContact && !mNewLocalProfile && accounts.size() > 1) {
-                addAccountSwitcher(mState.get(0), editor);
-            }
-
-            editor.setEnabled(isEnabled());
-
-            if (mRawContactIdToDisplayAlone != -1) {
-                editor.setCollapsed(false);
-            } else if (mExpandedEditors.containsKey(rawContactId)) {
-                editor.setCollapsed(mExpandedEditors.get(rawContactId));
-            } else {
-                // By default, only the first editor will be expanded.
-                editor.setCollapsed(i != 0);
-            }
-
-            mContent.addView(editor);
-
-            editor.setState(rawContactDelta, type, mViewIdGenerator, isEditingUserProfile());
-            if (mRawContactIdToDisplayAlone != -1) {
-                editor.setCollapsible(false);
-            } else {
-                editor.setCollapsible(numRawContacts > 1);
-            }
-
-            // Set up the photo handler.
-            bindPhotoHandler(editor, type, mState);
-
-            // If a new photo was chosen but not yet saved, we need to update the UI to
-            // reflect this.
-            final Uri photoUri = updatedPhotoUriForRawContact(rawContactId);
-            if (photoUri != null) editor.setFullSizedPhoto(photoUri);
-
-            if (editor instanceof RawContactEditorView) {
-                final Activity activity = getActivity();
-                final RawContactEditorView rawContactEditor = (RawContactEditorView) editor;
-                final ValuesDelta nameValuesDelta = rawContactEditor.getNameEditor().getValues();
-                final EditorListener structuredNameListener = new EditorListener() {
-
-                    @Override
-                    public void onRequest(int request) {
-                        // Make sure the activity is running
-                        if (activity.isFinishing()) {
-                            return;
-                        }
-                        if (!isEditingUserProfile()) {
-                            if (request == EditorListener.FIELD_CHANGED) {
-                                if (!nameValuesDelta.isSuperPrimary()) {
-                                    unsetSuperPrimaryForAllNameEditors();
-                                    nameValuesDelta.setSuperPrimary(true);
-                                }
-                                acquireAggregationSuggestions(activity,
-                                        rawContactEditor.getNameEditor().getRawContactId(),
-                                        rawContactEditor.getNameEditor().getValues());
-                            } else if (request == EditorListener.FIELD_TURNED_EMPTY) {
-                                if (nameValuesDelta.isSuperPrimary()) {
-                                    nameValuesDelta.setSuperPrimary(false);
-                                }
-                            }
-                        }
-                    }
-
-                    @Override
-                    public void onDeleteRequested(Editor removedEditor) {
-                    }
-                };
-
-                final StructuredNameEditorView nameEditor = rawContactEditor.getNameEditor();
-                nameEditor.setEditorListener(structuredNameListener);
-
-                rawContactEditor.setAutoAddToDefaultGroup(mAutoAddToDefaultGroup);
-
-                if (!isEditingUserProfile() && isAggregationSuggestionRawContactId(rawContactId)) {
-                    acquireAggregationSuggestions(activity,
-                            rawContactEditor.getNameEditor().getRawContactId(),
-                            rawContactEditor.getNameEditor().getValues());
-                }
-            }
-        }
-
-        setGroupMetaData();
-
-        // Show editor now that we've loaded state
-        mContent.setVisibility(View.VISIBLE);
-
-        // Refresh Action Bar as the visibility of the join command
-        // Activity can be null if we have been detached from the Activity
-        invalidateOptionsMenu();
-
-        updatedExpandedEditorsMap();
-    }
-
-    private void unsetSuperPrimaryForAllNameEditors() {
-        for (int i = 0; i < mContent.getChildCount(); i++) {
-            final View view = mContent.getChildAt(i);
-            if (view instanceof RawContactEditorView) {
-                final RawContactEditorView rawContactEditorView = (RawContactEditorView) view;
-                final StructuredNameEditorView nameEditorView =
-                        rawContactEditorView.getNameEditor();
-                if (nameEditorView != null) {
-                    final ValuesDelta valuesDelta = nameEditorView.getValues();
-                    if (valuesDelta != null) {
-                        valuesDelta.setSuperPrimary(false);
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Update the values in {@link #mExpandedEditors}.
-     */
-    private void updatedExpandedEditorsMap() {
-        for (int i = 0; i < mContent.getChildCount(); i++) {
-            final View childView = mContent.getChildAt(i);
-            if (childView instanceof BaseRawContactEditorView) {
-                BaseRawContactEditorView childEditor = (BaseRawContactEditorView) childView;
-                mExpandedEditors.put(childEditor.getRawContactId(), childEditor.isCollapsed());
-            }
-        }
-    }
-
-    /**
-     * If we've stashed a temporary file containing a contact's new photo, return its URI.
-     * @param rawContactId identifies the raw-contact whose Bitmap we'll try to return.
-     * @return Uru of photo for specified raw-contact, or null
-     */
-    private Uri updatedPhotoUriForRawContact(long rawContactId) {
-        return (Uri) mUpdatedPhotos.get(String.valueOf(rawContactId));
-    }
-
-    private void bindPhotoHandler(BaseRawContactEditorView editor, AccountType type,
-            RawContactDeltaList state) {
-        final int mode;
-        boolean showIsPrimaryOption;
-        if (type.areContactsWritable()) {
-            if (editor.hasSetPhoto()) {
-                mode = PhotoActionPopup.Modes.WRITE_ABLE_PHOTO;
-                showIsPrimaryOption = hasMoreThanOnePhoto();
-            } else {
-                mode = PhotoActionPopup.Modes.NO_PHOTO;
-                showIsPrimaryOption = false;
-            }
-        } else if (editor.hasSetPhoto() && hasMoreThanOnePhoto()) {
-            mode = PhotoActionPopup.Modes.READ_ONLY_PHOTO;
-            showIsPrimaryOption = true;
+    public boolean revert() {
+        if (mState.isEmpty() || !hasPendingChanges()) {
+            onCancelEditConfirmed();
         } else {
-            // Read-only and either no photo or the only photo ==> no options
-            editor.getPhotoEditor().setEditorListener(null);
-            editor.getPhotoEditor().setShowPrimary(false);
-            return;
+            CancelEditDialogFragment.show(this);
         }
-        if (mRawContactIdToDisplayAlone != -1) {
-            showIsPrimaryOption = false;
-        }
-        final PhotoHandler photoHandler = new PhotoHandler(mContext, editor, mode, state);
-        editor.getPhotoEditor().setEditorListener(
-                (PhotoHandler.PhotoEditorListener) photoHandler.getListener());
-        editor.getPhotoEditor().setShowPrimary(showIsPrimaryOption);
+        return true;
+    }
 
-        // Note a newly created raw contact gets some random negative ID, so any value is valid
-        // here. (i.e. don't check against -1 or anything.)
-        if (mRawContactIdRequestingPhoto == editor.getRawContactId()) {
-            mCurrentPhotoHandler = photoHandler;
+    @Override
+    public void onCancelEditConfirmed() {
+        // When this Fragment is closed we don't want it to auto-save
+        mStatus = Status.CLOSING;
+        if (mListener != null) {
+            mListener.onReverted();
         }
     }
 
-    private void addAccountSwitcher(
-            final RawContactDelta currentState, BaseRawContactEditorView editor) {
-        final AccountWithDataSet currentAccount = new AccountWithDataSet(
-                currentState.getAccountName(),
-                currentState.getAccountType(),
-                currentState.getDataSet());
-        final View accountView = editor.findViewById(R.id.account);
-        final View anchorView = editor.findViewById(R.id.account_selector_container);
-        if (accountView == null) {
+    @Override
+    public void onSplitContactConfirmed(boolean hasPendingChanges) {
+        if (mState.isEmpty()) {
+            // This may happen when this Fragment is recreated by the system during users
+            // confirming the split action (and thus this method is called just before onCreate()),
+            // for example.
+            Log.e(TAG, "mState became null during the user's confirming split action. " +
+                    "Cannot perform the save action.");
             return;
         }
-        anchorView.setVisibility(View.VISIBLE);
-        accountView.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                final ListPopupWindow popup = new ListPopupWindow(mContext, null);
-                final AccountsListAdapter adapter =
-                        new AccountsListAdapter(mContext,
-                        AccountListFilter.ACCOUNTS_CONTACT_WRITABLE, currentAccount);
-                popup.setWidth(anchorView.getWidth());
-                popup.setAnchorView(anchorView);
-                popup.setAdapter(adapter);
-                popup.setModal(true);
-                popup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
-                popup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-                    @Override
-                    public void onItemClick(AdapterView<?> parent, View view, int position,
-                            long id) {
-                        UiClosables.closeQuietly(popup);
-                        AccountWithDataSet newAccount = adapter.getItem(position);
-                        if (!newAccount.equals(currentAccount)) {
-                            rebindEditorsForNewContact(currentState, currentAccount, newAccount);
+
+        if (!hasPendingChanges && mHasNewContact) {
+            // If the user didn't add anything new, we don't want to split out the newly created
+            // raw contact into a name-only contact so remove them.
+            final Iterator<RawContactDelta> iterator = mState.iterator();
+            while (iterator.hasNext()) {
+                final RawContactDelta rawContactDelta = iterator.next();
+                if (rawContactDelta.getRawContactId() < 0) {
+                    iterator.remove();
+                }
+            }
+        }
+        mState.markRawContactsForSplitting();
+        save(SaveMode.SPLIT);
+    }
+
+    @Override
+    public void onSplitContactCanceled() {}
+
+    private boolean doSplitContactAction() {
+        if (!hasValidState()) return false;
+
+        SplitContactConfirmationDialogFragment.show(this, hasPendingChanges());
+        return true;
+    }
+
+    private boolean doJoinContactAction() {
+        if (!hasValidState() || mLookupUri == null) {
+            return false;
+        }
+
+        // If we just started creating a new contact and haven't added any data, it's too
+        // early to do a join
+        if (mState.size() == 1 && mState.get(0).isContactInsert()
+                && !hasPendingChanges()) {
+            Toast.makeText(mContext, R.string.toast_join_with_empty_contact,
+                    Toast.LENGTH_LONG).show();
+            return true;
+        }
+
+        showJoinAggregateActivity(mLookupUri);
+        return true;
+    }
+
+    @Override
+    public void onJoinContactConfirmed(long joinContactId) {
+        doSaveAction(SaveMode.JOIN, joinContactId);
+    }
+
+    @Override
+    public boolean save(int saveMode) {
+        if (!hasValidState() || mStatus != Status.EDITING) {
+            return false;
+        }
+
+        // If we are about to close the editor - there is no need to refresh the data
+        if (saveMode == SaveMode.CLOSE || saveMode == SaveMode.EDITOR
+                || saveMode == SaveMode.SPLIT) {
+            getLoaderManager().destroyLoader(LOADER_CONTACT);
+        }
+
+        mStatus = Status.SAVING;
+
+        if (!hasPendingChanges()) {
+            if (mLookupUri == null && saveMode == SaveMode.RELOAD) {
+                // We don't have anything to save and there isn't even an existing contact yet.
+                // Nothing to do, simply go back to editing mode
+                mStatus = Status.EDITING;
+                return true;
+            }
+            onSaveCompleted(/* hadChanges =*/ false, saveMode,
+                    /* saveSucceeded =*/ mLookupUri != null, mLookupUri, /* joinContactId =*/ null);
+            return true;
+        }
+
+        setEnabled(false);
+
+        return doSaveAction(saveMode, /* joinContactId */ null);
+    }
+
+    //
+    // State accessor methods
+    //
+
+    /**
+     * Check if our internal {@link #mState} is valid, usually checked before
+     * performing user actions.
+     */
+    private boolean hasValidState() {
+        return mState.size() > 0;
+    }
+
+    private boolean isEditingUserProfile() {
+        return mNewLocalProfile || mIsUserProfile;
+    }
+
+    /**
+     * Whether the contact being edited is composed of read-only raw contacts
+     * aggregated with a newly created writable raw contact.
+     */
+    private boolean isEditingReadOnlyRawContactWithNewContact() {
+        return mHasNewContact && mState.size() > 1;
+    }
+
+    /**
+     * @return true if the single raw contact we're looking at is read-only.
+     */
+    private boolean isEditingReadOnlyRawContact() {
+        return hasValidState() && mRawContactIdToDisplayAlone > 0
+                && !mState.getByRawContactId(mRawContactIdToDisplayAlone)
+                        .getAccountType(AccountTypeManager.getInstance(mContext))
+                                .areContactsWritable();
+    }
+
+    /**
+     * Return true if there are any edits to the current contact which need to
+     * be saved.
+     */
+    private boolean hasPendingRawContactChanges(Set<String> excludedMimeTypes) {
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
+        return RawContactModifier.hasChanges(mState, accountTypes, excludedMimeTypes);
+    }
+
+    /**
+     * Determines if changes were made in the editor that need to be saved, while taking into
+     * account that name changes are not real for read-only contacts.
+     * See go/editing-read-only-contacts
+     */
+    private boolean hasPendingChanges() {
+        if (isEditingReadOnlyRawContactWithNewContact()) {
+            // We created a new raw contact delta with a default display name.
+            // We must test for pending changes while ignoring the default display name.
+            final ValuesDelta beforeDelta = mState.getByRawContactId(mReadOnlyDisplayNameId)
+                    .getSuperPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
+            final ValuesDelta pendingDelta = mState
+                    .getSuperPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
+            if (structuredNamesAreEqual(beforeDelta, pendingDelta)) {
+                final Set<String> excludedMimeTypes = new HashSet<>();
+                excludedMimeTypes.add(StructuredName.CONTENT_ITEM_TYPE);
+                return hasPendingRawContactChanges(excludedMimeTypes);
+            }
+            return true;
+        }
+        return hasPendingRawContactChanges(/* excludedMimeTypes =*/ null);
+    }
+
+    /**
+     * Compares the two {@link ValuesDelta} to see if the structured name is changed. We made a copy
+     * of a read only delta and now we want to check if the copied delta has changes.
+     *
+     * @param before original {@link ValuesDelta}
+     * @param after copied {@link ValuesDelta}
+     * @return true if the copied {@link ValuesDelta} has all the same values in the structured
+     * name fields as the original.
+     */
+    private boolean structuredNamesAreEqual(ValuesDelta before, ValuesDelta after) {
+        if (before == after) return true;
+        if (before == null || after == null) return false;
+        final ContentValues original = before.getBefore();
+        final ContentValues pending = after.getAfter();
+        if (original != null && pending != null) {
+            final String beforeDisplayName = original.getAsString(StructuredName.DISPLAY_NAME);
+            final String afterDisplayName = pending.getAsString(StructuredName.DISPLAY_NAME);
+            if (!TextUtils.equals(beforeDisplayName, afterDisplayName)) return false;
+
+            final String beforePrefix = original.getAsString(StructuredName.PREFIX);
+            final String afterPrefix = pending.getAsString(StructuredName.PREFIX);
+            if (!TextUtils.equals(beforePrefix, afterPrefix)) return false;
+
+            final String beforeFirstName = original.getAsString(StructuredName.GIVEN_NAME);
+            final String afterFirstName = pending.getAsString(StructuredName.GIVEN_NAME);
+            if (!TextUtils.equals(beforeFirstName, afterFirstName)) return false;
+
+            final String beforeMiddleName = original.getAsString(StructuredName.MIDDLE_NAME);
+            final String afterMiddleName = pending.getAsString(StructuredName.MIDDLE_NAME);
+            if (!TextUtils.equals(beforeMiddleName, afterMiddleName)) return false;
+
+            final String beforeLastName = original.getAsString(StructuredName.FAMILY_NAME);
+            final String afterLastName = pending.getAsString(StructuredName.FAMILY_NAME);
+            if (!TextUtils.equals(beforeLastName, afterLastName)) return false;
+
+            final String beforeSuffix = original.getAsString(StructuredName.SUFFIX);
+            final String afterSuffix = pending.getAsString(StructuredName.SUFFIX);
+            return TextUtils.equals(beforeSuffix, afterSuffix);
+        }
+        return false;
+    }
+
+    //
+    // Account creation
+    //
+
+    private void selectAccountAndCreateContact() {
+        Preconditions.checkNotNull(mWritableAccounts, "Accounts must be loaded first");
+        // If this is a local profile, then skip the logic about showing the accounts changed
+        // activity and create a phone-local contact.
+        if (mNewLocalProfile) {
+            createContact(null);
+            return;
+        }
+
+        final List<AccountWithDataSet> accounts = AccountInfo.extractAccounts(mWritableAccounts);
+        // If there is no default account or the accounts have changed such that we need to
+        // prompt the user again, then launch the account prompt.
+        if (mEditorUtils.shouldShowAccountChangedNotification(accounts)) {
+            Intent intent = new Intent(mContext, ContactEditorAccountsChangedActivity.class);
+            // Prevent a second instance from being started on rotates
+            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
+            mStatus = Status.SUB_ACTIVITY;
+            startActivityForResult(intent, REQUEST_CODE_ACCOUNTS_CHANGED);
+        } else {
+            // Make sure the default account is automatically set if there is only one non-device
+            // account.
+            mEditorUtils.maybeUpdateDefaultAccount(accounts);
+            // Otherwise, there should be a default account. Then either create a local contact
+            // (if default account is null) or create a contact with the specified account.
+            AccountWithDataSet defaultAccount = mEditorUtils.getOnlyOrDefaultAccount(accounts);
+            createContact(defaultAccount);
+        }
+    }
+
+    /**
+     * Shows account creation screen associated with a given account.
+     *
+     * @param account may be null to signal a device-local contact should be created.
+     */
+    private void createContact(AccountWithDataSet account) {
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
+        final AccountType accountType = accountTypes.getAccountTypeForAccount(account);
+
+        setStateForNewContact(account, accountType, isEditingUserProfile());
+    }
+
+    //
+    // Data binding
+    //
+
+    private void setState(Contact contact) {
+        // If we have already loaded data, we do not want to change it here to not confuse the user
+        if (!mState.isEmpty()) {
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "Ignoring background change. This will have to be rebased later");
+            }
+            return;
+        }
+        mContact = contact;
+        mRawContacts = contact.getRawContacts();
+
+        // Check for writable raw contacts.  If there are none, then we need to create one so user
+        // can edit.  For the user profile case, there is already an editable contact.
+        if (!contact.isUserProfile() && !contact.isWritableContact(mContext)) {
+            mHasNewContact = true;
+            mReadOnlyDisplayNameId = contact.getNameRawContactId();
+            mCopyReadOnlyName = true;
+            // This is potentially an asynchronous call and will add deltas to list.
+            selectAccountAndCreateContact();
+        } else {
+            mHasNewContact = false;
+        }
+
+        setStateForExistingContact(contact.isUserProfile(), mRawContacts);
+        if (mAutoAddToDefaultGroup
+                && InvisibleContactUtil.isInvisibleAndAddable(contact, getContext())) {
+            InvisibleContactUtil.markAddToDefaultGroup(contact, mState, getContext());
+        }
+    }
+
+    /**
+     * Prepare {@link #mState} for a newly created phone-local contact.
+     */
+    private void setStateForNewContact(AccountWithDataSet account, AccountType accountType,
+            boolean isUserProfile) {
+        setStateForNewContact(account, accountType, /* oldState =*/ null,
+                /* oldAccountType =*/ null, isUserProfile);
+    }
+
+    /**
+     * Prepare {@link #mState} for a newly created phone-local contact, migrating the state
+     * specified by oldState and oldAccountType.
+     */
+    private void setStateForNewContact(AccountWithDataSet account, AccountType accountType,
+            RawContactDelta oldState, AccountType oldAccountType, boolean isUserProfile) {
+        mStatus = Status.EDITING;
+        mAccountWithDataSet = account;
+        mState.add(createNewRawContactDelta(account, accountType, oldState, oldAccountType));
+        mIsUserProfile = isUserProfile;
+        mNewContactDataReady = true;
+        bindEditors();
+    }
+
+    /**
+     * Returns a {@link RawContactDelta} for a new contact suitable for addition into
+     * {@link #mState}.
+     *
+     * If oldState and oldAccountType are specified, the state specified by those parameters
+     * is migrated to the result {@link RawContactDelta}.
+     */
+    private RawContactDelta createNewRawContactDelta(AccountWithDataSet account,
+            AccountType accountType, RawContactDelta oldState, AccountType oldAccountType) {
+        final RawContact rawContact = new RawContact();
+        if (account != null) {
+            rawContact.setAccount(account);
+        } else {
+            rawContact.setAccountToLocal();
+        }
+
+        final RawContactDelta result = new RawContactDelta(
+                ValuesDelta.fromAfter(rawContact.getValues()));
+        if (oldState == null) {
+            // Parse any values from incoming intent
+            RawContactModifier.parseExtras(mContext, accountType, result, mIntentExtras);
+        } else {
+            RawContactModifier.migrateStateForNewContact(
+                    mContext, oldState, result, oldAccountType, accountType);
+        }
+
+        // Ensure we have some default fields (if the account type does not support a field,
+        // ensureKind will not add it, so it is safe to add e.g. Event)
+        RawContactModifier.ensureKindExists(result, accountType, StructuredName.CONTENT_ITEM_TYPE);
+        RawContactModifier.ensureKindExists(result, accountType, Phone.CONTENT_ITEM_TYPE);
+        RawContactModifier.ensureKindExists(result, accountType, Email.CONTENT_ITEM_TYPE);
+        RawContactModifier.ensureKindExists(result, accountType, Organization.CONTENT_ITEM_TYPE);
+        RawContactModifier.ensureKindExists(result, accountType, Event.CONTENT_ITEM_TYPE);
+        RawContactModifier.ensureKindExists(result, accountType,
+                StructuredPostal.CONTENT_ITEM_TYPE);
+
+        // Set the correct URI for saving the contact as a profile
+        if (mNewLocalProfile) {
+            result.setProfileQueryUri();
+        }
+
+        return result;
+    }
+
+    /**
+     * Prepare {@link #mState} for an existing contact.
+     */
+    private void setStateForExistingContact(boolean isUserProfile,
+            ImmutableList<RawContact> rawContacts) {
+        setEnabled(true);
+
+        mState.addAll(rawContacts.iterator());
+        setIntentExtras(mIntentExtras);
+        mIntentExtras = null;
+
+        // For user profile, change the contacts query URI
+        mIsUserProfile = isUserProfile;
+        boolean localProfileExists = false;
+
+        if (mIsUserProfile) {
+            for (RawContactDelta rawContactDelta : mState) {
+                // For profile contacts, we need a different query URI
+                rawContactDelta.setProfileQueryUri();
+                // Try to find a local profile contact
+                if (rawContactDelta.getValues().getAsString(RawContacts.ACCOUNT_TYPE) == null) {
+                    localProfileExists = true;
+                }
+            }
+            // Editor should always present a local profile for editing
+            // TODO(wjang): Need to figure out when this case comes up.  We can't do this if we're
+            // going to prune all but the one raw contact that we're trying to display by itself.
+            if (!localProfileExists && mRawContactIdToDisplayAlone <= 0) {
+                mState.add(createLocalRawContactDelta());
+            }
+        }
+        mExistingContactDataReady = true;
+        bindEditors();
+    }
+
+    /**
+     * Set the enabled state of editors.
+     */
+    private void setEnabled(boolean enabled) {
+        if (mEnabled != enabled) {
+            mEnabled = enabled;
+
+            // Enable/disable editors
+            if (mContent != null) {
+                int count = mContent.getChildCount();
+                for (int i = 0; i < count; i++) {
+                    mContent.getChildAt(i).setEnabled(enabled);
+                }
+            }
+
+            // Maybe invalidate the options menu
+            final Activity activity = getActivity();
+            if (activity != null) activity.invalidateOptionsMenu();
+        }
+    }
+
+    /**
+     * Returns a {@link RawContactDelta} for a local contact suitable for addition into
+     * {@link #mState}.
+     */
+    private static RawContactDelta createLocalRawContactDelta() {
+        final RawContact rawContact = new RawContact();
+        rawContact.setAccountToLocal();
+
+        final RawContactDelta result = new RawContactDelta(
+                ValuesDelta.fromAfter(rawContact.getValues()));
+        result.setProfileQueryUri();
+
+        return result;
+    }
+
+    private void copyReadOnlyName() {
+        // We should only ever be doing this if we're creating a new writable contact to attach to
+        // a read only contact.
+        if (!isEditingReadOnlyRawContactWithNewContact()) {
+            return;
+        }
+        final int writableIndex = mState.indexOfFirstWritableRawContact(getContext());
+        final RawContactDelta writable = mState.get(writableIndex);
+        final RawContactDelta readOnly = mState.getByRawContactId(mContact.getNameRawContactId());
+        final ValuesDelta writeNameDelta = writable
+                .getSuperPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
+        final ValuesDelta readNameDelta = readOnly
+                .getSuperPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
+        mCopyReadOnlyName = false;
+        if (writeNameDelta == null || readNameDelta == null) {
+            return;
+        }
+        writeNameDelta.copyStructuredNameFieldsFrom(readNameDelta);
+    }
+
+    /**
+     * Bind editors using {@link #mState} and other members initialized from the loaded (or new)
+     * Contact.
+     */
+    protected void bindEditors() {
+        if (!isReadyToBindEditors()) {
+            return;
+        }
+
+        // Add input fields for the loaded Contact
+        final RawContactEditorView editorView = getContent();
+        editorView.setListener(this);
+        if (mCopyReadOnlyName) {
+            copyReadOnlyName();
+        }
+        editorView.setState(mState, mMaterialPalette, mViewIdGenerator,
+                mHasNewContact, mIsUserProfile, mAccountWithDataSet,
+                mRawContactIdToDisplayAlone);
+        if (isEditingReadOnlyRawContact()) {
+            final Toolbar toolbar = getEditorActivity().getToolbar();
+            if (toolbar != null) {
+                toolbar.setTitle(R.string.contact_editor_title_read_only_contact);
+                // Set activity title for Talkback
+                getEditorActivity().setTitle(R.string.contact_editor_title_read_only_contact);
+                toolbar.setNavigationIcon(R.drawable.quantum_ic_arrow_back_vd_theme_24);
+                toolbar.setNavigationContentDescription(R.string.back_arrow_content_description);
+                toolbar.getNavigationIcon().setAutoMirrored(true);
+            }
+        }
+
+        // Set up the photo widget
+        editorView.setPhotoListener(this);
+        mPhotoRawContactId = editorView.getPhotoRawContactId();
+        // If there is an updated full resolution photo apply it now, this will be the case if
+        // the user selects or takes a new photo, then rotates the device.
+        final Uri uri = (Uri) mUpdatedPhotos.get(String.valueOf(mPhotoRawContactId));
+        if (uri != null) {
+            editorView.setFullSizePhoto(uri);
+        }
+
+        // The editor is ready now so make it visible
+        editorView.setEnabled(mEnabled);
+        editorView.setVisibility(View.VISIBLE);
+
+        // Refresh the ActionBar as the visibility of the join command
+        // Activity can be null if we have been detached from the Activity.
+        invalidateOptionsMenu();
+    }
+
+    /**
+     * Invalidates the options menu if we are still associated with an Activity.
+     */
+    private void invalidateOptionsMenu() {
+        final Activity activity = getActivity();
+        if (activity != null) {
+            activity.invalidateOptionsMenu();
+        }
+    }
+
+    private boolean isReadyToBindEditors() {
+        if (mState.isEmpty()) {
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "No data to bind editors");
+            }
+            return false;
+        }
+        if (mIsEdit && !mExistingContactDataReady) {
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "Existing contact data is not ready to bind editors.");
+            }
+            return false;
+        }
+        if (mHasNewContact && !mNewContactDataReady) {
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "New contact data is not ready to bind editors.");
+            }
+            return false;
+        }
+        // Don't attempt to bind anything if we have no permissions.
+        return RequestPermissionsActivity.hasRequiredPermissions(mContext);
+    }
+
+    /**
+     * Removes a current editor ({@link #mState}) and rebinds new editor for a new account.
+     * Some of old data are reused with new restriction enforced by the new account.
+     *
+     * @param oldState Old data being edited.
+     * @param oldAccount Old account associated with oldState.
+     * @param newAccount New account to be used.
+     */
+    private void rebindEditorsForNewContact(
+            RawContactDelta oldState, AccountWithDataSet oldAccount,
+            AccountWithDataSet newAccount) {
+        AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
+        AccountType oldAccountType = accountTypes.getAccountTypeForAccount(oldAccount);
+        AccountType newAccountType = accountTypes.getAccountTypeForAccount(newAccount);
+
+        mExistingContactDataReady = false;
+        mNewContactDataReady = false;
+        mState = new RawContactDeltaList();
+        setStateForNewContact(newAccount, newAccountType, oldState, oldAccountType,
+                isEditingUserProfile());
+        if (mIsEdit) {
+            setStateForExistingContact(isEditingUserProfile(), mRawContacts);
+        }
+    }
+
+    //
+    // ContactEditor
+    //
+
+    @Override
+    public void setListener(Listener listener) {
+        mListener = listener;
+    }
+
+    @Override
+    public void load(String action, Uri lookupUri, Bundle intentExtras) {
+        mAction = action;
+        mLookupUri = lookupUri;
+        mIntentExtras = intentExtras;
+
+        if (mIntentExtras != null) {
+            mAutoAddToDefaultGroup =
+                    mIntentExtras.containsKey(INTENT_EXTRA_ADD_TO_DEFAULT_DIRECTORY);
+            mNewLocalProfile =
+                    mIntentExtras.getBoolean(INTENT_EXTRA_NEW_LOCAL_PROFILE);
+            mDisableDeleteMenuOption =
+                    mIntentExtras.getBoolean(INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION);
+            if (mIntentExtras.containsKey(INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR)
+                    && mIntentExtras.containsKey(INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR)) {
+                mMaterialPalette = new MaterialColorMapUtils.MaterialPalette(
+                        mIntentExtras.getInt(INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR),
+                        mIntentExtras.getInt(INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR));
+            }
+            mRawContactIdToDisplayAlone = mIntentExtras
+                    .getLong(INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE);
+        }
+    }
+
+    @Override
+    public void setIntentExtras(Bundle extras) {
+        getContent().setIntentExtras(extras);
+    }
+
+    @Override
+    public void onJoinCompleted(Uri uri) {
+        onSaveCompleted(false, SaveMode.RELOAD, uri != null, uri, /* joinContactId */ null);
+    }
+
+
+    private String getNameToDisplay(Uri contactUri) {
+        // The contact has been deleted or the uri is otherwise no longer right.
+        if (contactUri == null) {
+            return null;
+        }
+        final ContentResolver resolver = mContext.getContentResolver();
+        final Cursor cursor = resolver.query(contactUri, new String[]{
+                ContactsContract.Contacts.DISPLAY_NAME,
+                ContactsContract.Contacts.DISPLAY_NAME_ALTERNATIVE}, null, null, null);
+
+        if (cursor != null) {
+            try {
+                if (cursor.moveToFirst()) {
+                    final String displayName = cursor.getString(0);
+                    final String displayNameAlt = cursor.getString(1);
+                    cursor.close();
+                    return ContactDisplayUtils.getPreferredDisplayName(displayName, displayNameAlt,
+                            new ContactsPreferences(mContext));
+                }
+            } finally {
+                cursor.close();
+            }
+        }
+        return null;
+    }
+
+
+    @Override
+    public void onSaveCompleted(boolean hadChanges, int saveMode, boolean saveSucceeded,
+            Uri contactLookupUri, Long joinContactId) {
+        if (hadChanges) {
+            if (saveSucceeded) {
+                switch (saveMode) {
+                    case SaveMode.JOIN:
+                        break;
+                    case SaveMode.SPLIT:
+                        Toast.makeText(mContext, R.string.contactUnlinkedToast, Toast.LENGTH_SHORT)
+                                .show();
+                        break;
+                    default:
+                        final String displayName = getNameToDisplay(contactLookupUri);
+                        final String toastMessage;
+                        if (!TextUtils.isEmpty(displayName)) {
+                            toastMessage = getResources().getString(
+                                    R.string.contactSavedNamedToast, displayName);
+                        } else {
+                            toastMessage = getResources().getString(R.string.contactSavedToast);
                         }
-                    }
-                });
-                popup.show();
+                        Toast.makeText(mContext, toastMessage, Toast.LENGTH_SHORT).show();
+                }
+
+            } else {
+                Toast.makeText(mContext, R.string.contactSavedErrorToast, Toast.LENGTH_LONG).show();
+            }
+        }
+        switch (saveMode) {
+            case SaveMode.CLOSE: {
+                final Intent resultIntent;
+                if (saveSucceeded && contactLookupUri != null) {
+                    final Uri lookupUri = ContactEditorUtils.maybeConvertToLegacyLookupUri(
+                            mContext, contactLookupUri, mLookupUri);
+                    resultIntent = ImplicitIntentsUtil.composeQuickContactIntent(
+                            mContext, lookupUri, ScreenType.EDITOR);
+                    resultIntent.putExtra(QuickContactActivity.EXTRA_CONTACT_EDITED, true);
+                } else {
+                    resultIntent = null;
+                }
+                // It is already saved, so prevent it from being saved again
+                mStatus = Status.CLOSING;
+                if (mListener != null) mListener.onSaveFinished(resultIntent);
+                break;
+            }
+            case SaveMode.EDITOR: {
+                // It is already saved, so prevent it from being saved again
+                mStatus = Status.CLOSING;
+                if (mListener != null) mListener.onSaveFinished(/* resultIntent= */ null);
+                break;
+            }
+            case SaveMode.JOIN:
+                if (saveSucceeded && contactLookupUri != null && joinContactId != null) {
+                    joinAggregate(joinContactId);
+                }
+                break;
+            case SaveMode.RELOAD:
+                if (saveSucceeded && contactLookupUri != null) {
+                    // If this was in INSERT, we are changing into an EDIT now.
+                    // If it already was an EDIT, we are changing to the new Uri now
+                    mState = new RawContactDeltaList();
+                    load(Intent.ACTION_EDIT, contactLookupUri, null);
+                    mStatus = Status.LOADING;
+                    getLoaderManager().restartLoader(LOADER_CONTACT, null, mContactLoaderListener);
+                }
+                break;
+
+            case SaveMode.SPLIT:
+                mStatus = Status.CLOSING;
+                if (mListener != null) {
+                    mListener.onContactSplit(contactLookupUri);
+                } else if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "No listener registered, can not call onSplitFinished");
+                }
+                break;
+        }
+    }
+
+    /**
+     * Shows a list of aggregates that can be joined into the currently viewed aggregate.
+     *
+     * @param contactLookupUri the fresh URI for the currently edited contact (after saving it)
+     */
+    private void showJoinAggregateActivity(Uri contactLookupUri) {
+        if (contactLookupUri == null || !isAdded()) {
+            return;
+        }
+
+        mContactIdForJoin = ContentUris.parseId(contactLookupUri);
+        final Intent intent = new Intent(mContext, ContactSelectionActivity.class);
+        intent.setAction(UiIntentActions.PICK_JOIN_CONTACT_ACTION);
+        intent.putExtra(UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY, mContactIdForJoin);
+        startActivityForResult(intent, REQUEST_CODE_JOIN);
+    }
+
+    //
+    // Aggregation PopupWindow
+    //
+
+    /**
+     * Triggers an asynchronous search for aggregation suggestions.
+     */
+    protected void acquireAggregationSuggestions(Context context,
+            long rawContactId, ValuesDelta valuesDelta) {
+        mAggregationSuggestionsRawContactId = rawContactId;
+
+        if (mAggregationSuggestionEngine == null) {
+            mAggregationSuggestionEngine = new AggregationSuggestionEngine(context);
+            mAggregationSuggestionEngine.setListener(this);
+            mAggregationSuggestionEngine.start();
+        }
+
+        mAggregationSuggestionEngine.setContactId(getContactId());
+        mAggregationSuggestionEngine.setAccountFilter(
+                getContent().getCurrentRawContactDelta().getAccountWithDataSet());
+
+        mAggregationSuggestionEngine.onNameChange(valuesDelta);
+    }
+
+    /**
+     * Returns the contact ID for the currently edited contact or 0 if the contact is new.
+     */
+    private long getContactId() {
+        for (RawContactDelta rawContact : mState) {
+            Long contactId = rawContact.getValues().getAsLong(RawContacts.CONTACT_ID);
+            if (contactId != null) {
+                return contactId;
+            }
+        }
+        return 0;
+    }
+
+    @Override
+    public void onAggregationSuggestionChange() {
+        final Activity activity = getActivity();
+        if ((activity != null && activity.isFinishing())
+                || !isVisible() ||  mState.isEmpty() || mStatus != Status.EDITING) {
+            return;
+        }
+
+        UiClosables.closeQuietly(mAggregationSuggestionPopup);
+
+        if (mAggregationSuggestionEngine.getSuggestedContactCount() == 0) {
+            return;
+        }
+
+        final View anchorView = getAggregationAnchorView();
+        if (anchorView == null) {
+            return; // Raw contact deleted?
+        }
+        mAggregationSuggestionPopup = new ListPopupWindow(mContext, null);
+        mAggregationSuggestionPopup.setAnchorView(anchorView);
+        mAggregationSuggestionPopup.setWidth(anchorView.getWidth());
+        mAggregationSuggestionPopup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
+        mAggregationSuggestionPopup.setAdapter(
+                new AggregationSuggestionAdapter(
+                        getActivity(),
+                        /* listener =*/ this,
+                        mAggregationSuggestionEngine.getSuggestions()));
+        mAggregationSuggestionPopup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                final AggregationSuggestionView suggestionView = (AggregationSuggestionView) view;
+                suggestionView.handleItemClickEvent();
+                UiClosables.closeQuietly(mAggregationSuggestionPopup);
+                mAggregationSuggestionPopup = null;
             }
         });
+        mAggregationSuggestionPopup.show();
+    }
+
+    /**
+     * Returns the editor view that should be used as the anchor for aggregation suggestions.
+     */
+    protected View getAggregationAnchorView() {
+        return getContent().getAggregationAnchorView();
+    }
+
+    /**
+     * Joins the suggested contact (specified by the id's of constituent raw
+     * contacts), save all changes, and stay in the editor.
+     */
+    public void doJoinSuggestedContact(long[] rawContactIds) {
+        if (!hasValidState() || mStatus != Status.EDITING) {
+            return;
+        }
+
+        mState.setJoinWithRawContacts(rawContactIds);
+        save(SaveMode.RELOAD);
     }
 
     @Override
+    public void onEditAction(Uri contactLookupUri, long rawContactId) {
+        SuggestionEditConfirmationDialogFragment.show(this, contactLookupUri, rawContactId);
+    }
+
+    /**
+     * Abandons the currently edited contact and switches to editing the selected raw contact,
+     * transferring all the data there
+     */
+    public void doEditSuggestedContact(Uri contactUri, long rawContactId) {
+        if (mListener != null) {
+            // make sure we don't save this contact when closing down
+            mStatus = Status.CLOSING;
+            mListener.onEditOtherRawContactRequested(contactUri, rawContactId,
+                    getContent().getCurrentRawContactDelta().getContentValues());
+        }
+    }
+
+    /**
+     * Sets group metadata on all bound editors.
+     */
+    protected void setGroupMetaData() {
+        if (mGroupMetaData != null) {
+            getContent().setGroupMetaData(mGroupMetaData);
+        }
+    }
+
+    /**
+     * Persist the accumulated editor deltas.
+     *
+     * @param joinContactId the raw contact ID to join the contact being saved to after the save,
+     *         may be null.
+     */
     protected boolean doSaveAction(int saveMode, Long joinContactId) {
         final Intent intent = ContactSaveService.createSaveContactIntent(mContext, mState,
                 SAVE_MODE_EXTRA_KEY, saveMode, isEditingUserProfile(),
-                ((Activity) mContext).getClass(), ContactEditorActivity.ACTION_SAVE_COMPLETED,
-                mUpdatedPhotos, JOIN_CONTACT_ID_EXTRA_KEY, joinContactId);
+                ((Activity) mContext).getClass(),
+                ContactEditorActivity.ACTION_SAVE_COMPLETED, mUpdatedPhotos,
+                JOIN_CONTACT_ID_EXTRA_KEY, joinContactId);
         return startSaveService(mContext, intent, saveMode);
     }
 
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        outState.putSerializable(KEY_EXPANDED_EDITORS, mExpandedEditors);
-        outState.putLong(KEY_RAW_CONTACT_ID_REQUESTING_PHOTO, mRawContactIdRequestingPhoto);
-        outState.putParcelable(KEY_CURRENT_PHOTO_URI, mCurrentPhotoUri);
-        outState.putParcelable(KEY_UPDATED_PHOTOS, mUpdatedPhotos);
-        outState.putLong(ContactEditorBaseFragment.INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE,
-                mRawContactIdToDisplayAlone);
-        super.onSaveInstanceState(outState);
+    private boolean startSaveService(Context context, Intent intent, int saveMode) {
+        final boolean result = ContactSaveService.startService(
+                context, intent, saveMode);
+        if (!result) {
+            onCancelEditConfirmed();
+        }
+        return result;
     }
 
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (mStatus == Status.SUB_ACTIVITY) {
-            mStatus = Status.EDITING;
-        }
+    //
+    // Join Activity
+    //
 
-        // See if the photo selection handler handles this result.
-        if (mCurrentPhotoHandler != null && mCurrentPhotoHandler.handlePhotoActivityResult(
-                requestCode, resultCode, data)) {
-            return;
-        }
-
-        super.onActivityResult(requestCode, resultCode, data);
-    }
-
-    @Override
+    /**
+     * Performs aggregation with the contact selected by the user from suggestions or A-Z list.
+     */
     protected void joinAggregate(final long contactId) {
         final Intent intent = ContactSaveService.createJoinContactsIntent(
                 mContext, mContactIdForJoin, contactId, ContactEditorActivity.class,
@@ -463,193 +1672,79 @@
         mContext.startService(intent);
     }
 
-    /**
-     * Sets the photo stored in mPhoto and writes it to the RawContact with the given id
-     */
-    private void setPhoto(long rawContact, Bitmap photo, Uri photoUri) {
-        BaseRawContactEditorView requestingEditor = getRawContactEditorView(rawContact);
-
-        if (photo == null || photo.getHeight() <= 0 || photo.getWidth() <= 0) {
-            // This is unexpected.
-            Log.w(TAG, "Invalid bitmap passed to setPhoto()");
-        }
-
-        if (requestingEditor != null) {
-            requestingEditor.setPhotoEntry(photo);
-            // Immediately set all other photos as non-primary. Otherwise the UI can display
-            // multiple photos as "Primary photo".
-            for (int i = 0; i < mContent.getChildCount(); i++) {
-                final View childView = mContent.getChildAt(i);
-                if (childView instanceof BaseRawContactEditorView
-                        && childView != requestingEditor) {
-                    final BaseRawContactEditorView rawContactEditor
-                            = (BaseRawContactEditorView) childView;
-                    rawContactEditor.getPhotoEditor().setSuperPrimary(false);
-                }
-            }
-        } else {
-            Log.w(TAG, "The contact that requested the photo is no longer present.");
-        }
-
-        mUpdatedPhotos.putParcelable(String.valueOf(rawContact), photoUri);
+    public void removePhoto() {
+        getContent().removePhoto();
+        mUpdatedPhotos.remove(String.valueOf(mPhotoRawContactId));
     }
 
-    /**
-     * Finds raw contact editor view for the given rawContactId.
-     */
+    public void updatePhoto(Uri uri) throws FileNotFoundException {
+        final Bitmap bitmap = ContactPhotoUtils.getBitmapFromUri(getActivity(), uri);
+        if (bitmap == null || bitmap.getHeight() <= 0 || bitmap.getWidth() <= 0) {
+            Toast.makeText(mContext, R.string.contactPhotoSavedErrorToast,
+                    Toast.LENGTH_SHORT).show();
+            return;
+        }
+        mUpdatedPhotos.putParcelable(String.valueOf(mPhotoRawContactId), uri);
+        getContent().updatePhoto(uri);
+    }
+
+    public void setPrimaryPhoto() {
+        getContent().setPrimaryPhoto();
+    }
+
     @Override
-    protected View getAggregationAnchorView(long rawContactId) {
-        BaseRawContactEditorView editorView = getRawContactEditorView(rawContactId);
-        return editorView == null ? null : editorView.findViewById(R.id.anchor_view);
+    public void onNameFieldChanged(long rawContactId, ValuesDelta valuesDelta) {
+        final Activity activity = getActivity();
+        if (activity == null || activity.isFinishing()) {
+            return;
+        }
+        acquireAggregationSuggestions(activity, rawContactId, valuesDelta);
     }
 
-    public BaseRawContactEditorView getRawContactEditorView(long rawContactId) {
-        for (int i = 0; i < mContent.getChildCount(); i++) {
-            final View childView = mContent.getChildAt(i);
-            if (childView instanceof BaseRawContactEditorView) {
-                final BaseRawContactEditorView editor = (BaseRawContactEditorView) childView;
-                if (editor.getRawContactId() == rawContactId) {
-                    return editor;
-                }
-            }
-        }
-        return null;
+    @Override
+    public void onRebindEditorsForNewContact(RawContactDelta oldState,
+            AccountWithDataSet oldAccount, AccountWithDataSet newAccount) {
+        mNewContactAccountChanged = true;
+        rebindEditorsForNewContact(oldState, oldAccount, newAccount);
     }
 
-    /**
-     * Returns true if there is currently more than one photo on screen.
-     */
-    private boolean hasMoreThanOnePhoto() {
-        int countWithPicture = 0;
-        final int numEntities = mState.size();
-        for (int i = 0; i < numEntities; i++) {
-            final RawContactDelta entity = mState.get(i);
-            if (entity.isVisible()) {
-                final ValuesDelta primary = entity.getPrimaryEntry(Photo.CONTENT_ITEM_TYPE);
-                if (primary != null && primary.getPhoto() != null) {
-                    countWithPicture++;
-                } else {
-                    final long rawContactId = entity.getRawContactId();
-                    final Uri uri = mUpdatedPhotos.getParcelable(String.valueOf(rawContactId));
-                    if (uri != null) {
-                        try {
-                            mContext.getContentResolver().openInputStream(uri);
-                            countWithPicture++;
-                        } catch (FileNotFoundException e) {
-                        }
-                    }
-                }
-
-                if (countWithPicture > 1) {
-                    return true;
-                }
-            }
+    @Override
+    public void onBindEditorsFailed() {
+        final Activity activity = getActivity();
+        if (activity != null && !activity.isFinishing()) {
+            Toast.makeText(activity, R.string.editor_failed_to_load,
+                    Toast.LENGTH_SHORT).show();
+            activity.setResult(Activity.RESULT_CANCELED);
+            activity.finish();
         }
-        return false;
     }
 
-    /**
-     * Custom photo handler for the editor.  The inner listener that this creates also has a
-     * reference to the editor and acts as an {@link EditorListener}, and uses that editor to hold
-     * state information in several of the listener methods.
-     */
-    private final class PhotoHandler extends PhotoSelectionHandler {
-
-        final long mRawContactId;
-        private final BaseRawContactEditorView mEditor;
-        private final PhotoActionListener mPhotoEditorListener;
-
-        public PhotoHandler(Context context, BaseRawContactEditorView editor, int photoMode,
-                RawContactDeltaList state) {
-            super(context, editor.getPhotoEditor().getChangeAnchorView(), photoMode, false, state);
-            mEditor = editor;
-            mRawContactId = editor.getRawContactId();
-            mPhotoEditorListener = new PhotoEditorListener();
+    @Override
+    public void onEditorsBound() {
+        final Activity activity = getActivity();
+        if (activity == null || activity.isFinishing()) {
+            return;
         }
+        getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupsLoaderListener);
+    }
 
-        @Override
-        public PhotoActionListener getListener() {
-            return mPhotoEditorListener;
-        }
+    @Override
+    public void onPhotoEditorViewClicked() {
+        // For contacts composed of a single writable raw contact, or raw contacts have no more
+        // than 1 photo, clicking the photo view simply opens the source photo dialog
+        getEditorActivity().changePhoto(getPhotoMode());
+    }
 
-        @Override
-        public void startPhotoActivity(Intent intent, int requestCode, Uri photoUri) {
-            mRawContactIdRequestingPhoto = mEditor.getRawContactId();
-            mCurrentPhotoHandler = this;
-            mStatus = Status.SUB_ACTIVITY;
-            mCurrentPhotoUri = photoUri;
-            ContactEditorFragment.this.startActivityForResult(intent, requestCode);
-        }
+    private int getPhotoMode() {
+        return getContent().isWritablePhotoSet() ? PhotoActionPopup.Modes.WRITE_ABLE_PHOTO
+                : PhotoActionPopup.Modes.NO_PHOTO;
+    }
 
-        private final class PhotoEditorListener extends PhotoSelectionHandler.PhotoActionListener
-                implements EditorListener {
+    private ContactEditorActivity getEditorActivity() {
+        return (ContactEditorActivity) getActivity();
+    }
 
-            @Override
-            public void onRequest(int request) {
-                if (!hasValidState()) return;
-
-                if (request == EditorListener.REQUEST_PICK_PHOTO) {
-                    onClick(mEditor.getPhotoEditor());
-                }
-                if (request == EditorListener.REQUEST_PICK_PRIMARY_PHOTO) {
-                    useAsPrimaryChosen();
-                }
-            }
-
-            @Override
-            public void onDeleteRequested(Editor removedEditor) {
-                // The picture cannot be deleted, it can only be removed, which is handled by
-                // onRemovePictureChosen()
-            }
-
-            /**
-             * User has chosen to set the selected photo as the (super) primary photo
-             */
-            public void useAsPrimaryChosen() {
-                // Set the IsSuperPrimary for each editor
-                int count = mContent.getChildCount();
-                for (int i = 0; i < count; i++) {
-                    final View childView = mContent.getChildAt(i);
-                    if (childView instanceof BaseRawContactEditorView) {
-                        final BaseRawContactEditorView editor =
-                                (BaseRawContactEditorView) childView;
-                        final PhotoEditorView photoEditor = editor.getPhotoEditor();
-                        photoEditor.setSuperPrimary(editor == mEditor);
-                    }
-                }
-                bindEditors();
-            }
-
-            /**
-             * User has chosen to remove a picture
-             */
-            @Override
-            public void onRemovePictureChosen() {
-                mEditor.setPhotoEntry(null);
-
-                // Prevent bitmap from being restored if rotate the device.
-                // (only if we first chose a new photo before removing it)
-                mUpdatedPhotos.remove(String.valueOf(mRawContactId));
-                bindEditors();
-            }
-
-            @Override
-            public void onPhotoSelected(Uri uri) throws FileNotFoundException {
-                final Bitmap bitmap = ContactPhotoUtils.getBitmapFromUri(mContext, uri);
-                setPhoto(mRawContactId, bitmap, uri);
-                mCurrentPhotoHandler = null;
-                bindEditors();
-            }
-
-            @Override
-            public Uri getCurrentPhotoUri() {
-                return mCurrentPhotoUri;
-            }
-
-            @Override
-            public void onPhotoSelectionDismissed() {
-                // Nothing to do.
-            }
-        }
+    private RawContactEditorView getContent() {
+        return (RawContactEditorView) mContent;
     }
 }
diff --git a/src/com/android/contacts/editor/ContactEditorUtils.java b/src/com/android/contacts/editor/ContactEditorUtils.java
index 3aae923..517c2c7 100644
--- a/src/com/android/contacts/editor/ContactEditorUtils.java
+++ b/src/com/android/contacts/editor/ContactEditorUtils.java
@@ -19,269 +19,130 @@
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.app.Activity;
+import android.content.ContentUris;
 import android.content.Context;
 import android.content.Intent;
-import android.content.SharedPreferences;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
 import android.text.TextUtils;
-import android.util.Log;
 
-import com.android.contacts.common.R;
-import com.android.contacts.common.testing.NeededForTesting;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Sets;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.preference.ContactsPreferences;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 /**
  * Utility methods for the "account changed" notification in the new contact creation flow.
  */
-@NeededForTesting
 public class ContactEditorUtils {
     private static final String TAG = "ContactEditorUtils";
 
-    private static final String KEY_KNOWN_ACCOUNTS = "ContactEditorUtils_known_accounts";
-
-    private static final List<AccountWithDataSet> EMPTY_ACCOUNTS = ImmutableList.of();
-
-    private static ContactEditorUtils sInstance;
-
-    private final Context mContext;
-    private final SharedPreferences mPrefs;
-    private final AccountTypeManager mAccountTypes;
-    private final String mDefaultAccountKey;
-    // Key to tell the first time launch.
-    private final String mAnythingSavedKey;
+    private final ContactsPreferences mContactsPrefs;
 
     private ContactEditorUtils(Context context) {
-        this(context, AccountTypeManager.getInstance(context));
+        mContactsPrefs = new ContactsPreferences(context);
     }
 
-    @VisibleForTesting
-    ContactEditorUtils(Context context, AccountTypeManager accountTypes) {
-        mContext = context.getApplicationContext();
-        mPrefs = mContext.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
-        mAccountTypes = accountTypes;
-        mDefaultAccountKey = mContext.getResources().getString(
-                R.string.contact_editor_default_account_key);
-        mAnythingSavedKey = mContext.getResources().getString(
-                R.string.contact_editor_anything_saved_key);
+    public static ContactEditorUtils create(Context context) {
+        return new ContactEditorUtils(context.getApplicationContext());
     }
 
-    public static synchronized ContactEditorUtils getInstance(Context context) {
-        if (sInstance == null) {
-            sInstance = new ContactEditorUtils(context.getApplicationContext());
+    /**
+     * Returns a legacy version of the given contactLookupUri if a legacy Uri was originally
+     * passed to the contact editor.
+     *
+     * @param contactLookupUri The Uri to possibly convert to legacy format.
+     * @param requestLookupUri The lookup Uri originally passed to the contact editor
+     *                         (via Intent data), may be null.
+     */
+    static Uri maybeConvertToLegacyLookupUri(Context context, Uri contactLookupUri,
+            Uri requestLookupUri) {
+        final String legacyAuthority = "contacts";
+        final String requestAuthority = requestLookupUri == null
+                ? null : requestLookupUri.getAuthority();
+        if (legacyAuthority.equals(requestAuthority)) {
+            // Build a legacy Uri if that is what was requested by caller
+            final long contactId = ContentUris.parseId(ContactsContract.Contacts.lookupContact(
+                    context.getContentResolver(), contactLookupUri));
+            final Uri legacyContentUri = Uri.parse("content://contacts/people");
+            return ContentUris.withAppendedId(legacyContentUri, contactId);
         }
-        return sInstance;
+        // Otherwise pass back a lookup-style Uri
+        return contactLookupUri;
     }
 
-    @NeededForTesting
     void cleanupForTest() {
-        mPrefs.edit().remove(mDefaultAccountKey).remove(KEY_KNOWN_ACCOUNTS)
-                .remove(mAnythingSavedKey).apply();
+        mContactsPrefs.clearDefaultAccount();
     }
 
-    @NeededForTesting
     void removeDefaultAccountForTest() {
-        mPrefs.edit().remove(mDefaultAccountKey).apply();
+        mContactsPrefs.clearDefaultAccount();
     }
 
     /**
-     * Sets the {@link #KEY_KNOWN_ACCOUNTS} and {@link #mDefaultAccountKey} preference values to
-     * empty strings to reset the state of the preferences file.
-     */
-    private void resetPreferenceValues() {
-        mPrefs.edit().putString(KEY_KNOWN_ACCOUNTS, "").putString(mDefaultAccountKey, "").apply();
-    }
-
-    private List<AccountWithDataSet> getWritableAccounts() {
-        return mAccountTypes.getAccounts(true);
-    }
-
-    /**
-     * @return true if it's the first launch and {@link #saveDefaultAndAllAccounts} has never
-     *     been called.
-     */
-    private boolean isFirstLaunch() {
-        return !mPrefs.getBoolean(mAnythingSavedKey, false);
-    }
-
-    /**
-     * Saves all writable accounts and the default account, which can later be obtained
-     * with {@link #getDefaultAccount}.
+     * Saves the default account, which can later be obtained with {@link #getOnlyOrDefaultAccount}.
      *
      * This should be called when saving a newly created contact.
      *
-     * @param defaultAccount the account used to save a newly created contact.  Or pass {@code null}
-     *     If the user selected "local only".
+     * @param defaultAccount the account used to save a newly created contact.
      */
-    @NeededForTesting
-    public void saveDefaultAndAllAccounts(AccountWithDataSet defaultAccount) {
-        final SharedPreferences.Editor editor = mPrefs.edit()
-                .putBoolean(mAnythingSavedKey, true);
-
-        if (defaultAccount == null || defaultAccount.isLocalAccount()) {
-            // If the default is "local only", there should be no writable accounts.
-            // This should always be the case with our spec, but because we load the account list
-            // asynchronously using a worker thread, it is possible that there are accounts at this
-            // point. So if the default is null always clear the account list.
-            editor.remove(KEY_KNOWN_ACCOUNTS);
-            editor.remove(mDefaultAccountKey);
+    public void saveDefaultAccount(AccountWithDataSet defaultAccount) {
+        if (defaultAccount == null) {
+            mContactsPrefs.clearDefaultAccount();
         } else {
-            editor.putString(KEY_KNOWN_ACCOUNTS,
-                    AccountWithDataSet.stringifyList(getWritableAccounts()));
-            editor.putString(mDefaultAccountKey, defaultAccount.stringify());
+            mContactsPrefs.setDefaultAccount(defaultAccount);
         }
-        editor.apply();
     }
 
     /**
-     * @return the default account saved with {@link #saveDefaultAndAllAccounts}.
+     * @return the first account if there is only a single account or the default account saved
+     * with {@link #saveDefaultAccount}.
      *
-     * Note the {@code null} return value can mean either {@link #saveDefaultAndAllAccounts} has
-     * never been called, or {@code null} was passed to {@link #saveDefaultAndAllAccounts} --
-     * i.e. the user selected "local only".
+     * A null return value indicates that there is multiple accounts and a default hasn't been set
      *
      * Also note that the returned account may have been removed already.
      */
-    public AccountWithDataSet getDefaultAccount() {
-        final List<AccountWithDataSet> currentWritableAccounts = getWritableAccounts();
+    public AccountWithDataSet getOnlyOrDefaultAccount(
+            List<AccountWithDataSet> currentWritableAccounts) {
         if (currentWritableAccounts.size() == 1) {
             return currentWritableAccounts.get(0);
         }
 
-        final String saved = mPrefs.getString(mDefaultAccountKey, null);
-        if (TextUtils.isEmpty(saved)) {
-            return null;
-        }
-        try {
-            return AccountWithDataSet.unstringify(saved);
-        } catch (IllegalArgumentException exception) {
-            Log.e(TAG, "Error with retrieving default account " + exception.toString());
-            // unstringify()can throw an exception if the string is not in an expected format.
-            // Hence, if the preferences file is corrupt, just reset the preference values
-            resetPreferenceValues();
-            return null;
-        }
+        return mContactsPrefs.getDefaultAccount();
+    }
+
+    public boolean shouldShowAccountChangedNotification(List<AccountWithDataSet> writableAccounts) {
+        return mContactsPrefs.shouldShowAccountChangedNotification(writableAccounts);
     }
 
     /**
-     * @return true if an account still exists.  {@code null} is considered "local only" here,
-     *    so it's valid too.
+     * Sets the only non-device account to be default if it is not already.
      */
-    @VisibleForTesting
-    boolean isValidAccount(AccountWithDataSet account) {
-        if (account == null || account.isLocalAccount()) {
-            return true; // It's "local only" account, which is valid.
-        }
-        return getWritableAccounts().contains(account);
-    }
-
-    /**
-     * @return saved known accounts, or an empty list if none has been saved yet.
-     */
-    @VisibleForTesting
-    List<AccountWithDataSet> getSavedAccounts() {
-        final String saved = mPrefs.getString(KEY_KNOWN_ACCOUNTS, null);
-        if (TextUtils.isEmpty(saved)) {
-            return EMPTY_ACCOUNTS;
-        }
-        try {
-            return AccountWithDataSet.unstringifyList(saved);
-        } catch (IllegalArgumentException exception) {
-            Log.e(TAG, "Error with retrieving saved accounts " + exception.toString());
-            // unstringifyList()can throw an exception if the string is not in an expected format.
-            // Hence, if the preferences file is corrupt, just reset the preference values
-            resetPreferenceValues();
-            return EMPTY_ACCOUNTS;
+    public void maybeUpdateDefaultAccount(List<AccountWithDataSet> currentWritableAccounts) {
+        if (currentWritableAccounts.size() == 1) {
+            final AccountWithDataSet onlyAccount = currentWritableAccounts.get(0);
+            if (!onlyAccount.isNullAccount()
+                    && !onlyAccount.equals(mContactsPrefs.getDefaultAccount())) {
+                mContactsPrefs.setDefaultAccount(onlyAccount);
+            }
         }
     }
 
     /**
-     * @return 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)
+     * Parses a result from {@link AccountManager#newChooseAccountIntent(Account, List, String[],
+     *     String, String, String[], Bundle)} and returns the created {@link Account}, or null if
+     * the user has canceled the wizard.
      *
-     * 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
-     * exists, or {@code null} which should be interpreted as "local only".)
-     */
-    @NeededForTesting
-    public boolean shouldShowAccountChangedNotification() {
-        if (isFirstLaunch()) {
-            return true;
-        }
-
-        final List<AccountWithDataSet> currentWritableAccounts = getWritableAccounts();
-
-        final AccountWithDataSet defaultAccount = getDefaultAccount();
-
-        // Does default account still exist?
-        if (!isValidAccount(defaultAccount)) {
-            return true;
-        }
-
-        // If there is an inconsistent state in the preferences file - default account is null
-        // ("local" account) while there are multiple accounts, then show the notification dialog.
-        // This shouldn't ever happen, but this should allow the user can get back into a normal
-        // state after they respond to the notification.
-        if ((defaultAccount == null || defaultAccount.isLocalAccount())
-                && currentWritableAccounts.size() > 0) {
-            Log.e(TAG, "Preferences file in an inconsistent state, request that the default account"
-                    + " and current writable accounts be saved again");
-            return true;
-        }
-
-        // All good.
-        return false;
-    }
-
-    @VisibleForTesting
-    String[] getWritableAccountTypeStrings() {
-        final Set<String> types = Sets.newHashSet();
-        for (AccountType type : mAccountTypes.getAccountTypes(true)) {
-            types.add(type.accountType);
-        }
-        return types.toArray(new String[types.size()]);
-    }
-
-    /**
-     * Create an {@link Intent} to start "add new account" setup wizard.  Selectable account
-     * types will be limited to ones that supports editing contacts.
+     * <p>Pass the {@code resultCode} and {@code data} parameters passed to
+     * {@link Activity#onActivityResult} or {@link android.app.Fragment#onActivityResult}.
+     * </p>
      *
-     * Use {@link Activity#startActivityForResult} or
-     * {@link android.app.Fragment#startActivityForResult} to start the wizard, and
-     * {@link Activity#onActivityResult} or {@link android.app.Fragment#onActivityResult} to
-     * get the result.
-     */
-    public Intent createAddWritableAccountIntent() {
-        return AccountManager.newChooseAccountIntent(
-                null, // selectedAccount
-                new ArrayList<Account>(), // allowableAccounts
-                getWritableAccountTypeStrings(), // allowableAccountTypes
-                false, // alwaysPromptForAccount
-                null, // descriptionOverrideText
-                null, // addAccountAuthTokenType
-                null, // addAccountRequiredFeatures
-                null // addAccountOptions
-                );
-    }
-
-    /**
-     * Parses a result from {@link #createAddWritableAccountIntent} and returns the created
-     * {@link Account}, or null if the user has canceled the wizard.  Pass the {@code resultCode}
-     * and {@code data} parameters passed to {@link Activity#onActivityResult} or
-     * {@link android.app.Fragment#onActivityResult}.
-     *
+     * <p>
      * Note although the return type is {@link AccountWithDataSet}, return values from this method
      * will never have {@link AccountWithDataSet#dataSet} set, as there's no way to create an
      * extension package account from setup wizard.
+     * </p>
      */
     public AccountWithDataSet getCreatedAccount(int resultCode, Intent resultData) {
         // Javadoc doesn't say anything about resultCode but that the data intent will be non null
diff --git a/src/com/android/contacts/editor/Editor.java b/src/com/android/contacts/editor/Editor.java
index d5c8589..711fbc0 100644
--- a/src/com/android/contacts/editor/Editor.java
+++ b/src/com/android/contacts/editor/Editor.java
@@ -18,9 +18,9 @@
 
 import android.provider.ContactsContract.Data;
 
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.dataitem.DataKind;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.dataitem.DataKind;
 
 /**
  * Generic definition of something that edits a {@link Data} row through an
diff --git a/src/com/android/contacts/editor/EditorAnimator.java b/src/com/android/contacts/editor/EditorAnimator.java
index 2e17e23..598b6b0 100644
--- a/src/com/android/contacts/editor/EditorAnimator.java
+++ b/src/com/android/contacts/editor/EditorAnimator.java
@@ -28,6 +28,7 @@
 import android.widget.ScrollView;
 
 import com.android.contacts.util.SchedulingUtils;
+
 import com.google.common.collect.Lists;
 
 import java.util.List;
diff --git a/src/com/android/contacts/editor/EditorIntents.java b/src/com/android/contacts/editor/EditorIntents.java
index d87a726..91648d0 100644
--- a/src/com/android/contacts/editor/EditorIntents.java
+++ b/src/com/android/contacts/editor/EditorIntents.java
@@ -15,22 +15,19 @@
  */
 package com.android.contacts.editor;
 
-import com.android.contacts.activities.CompactContactEditorActivity;
-import com.android.contacts.activities.ContactEditorActivity;
-import com.android.contacts.activities.ContactEditorBaseActivity;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
-
-import android.app.Activity;
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.os.Bundle;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
 import android.text.TextUtils;
 
+import com.android.contacts.activities.ContactEditorActivity;
+import com.android.contacts.activities.ContactEditorSpringBoardActivity;
+import com.android.contacts.model.RawContactDeltaList;
+import com.android.contacts.util.MaterialColorMapUtils.MaterialPalette;
+
 import java.util.ArrayList;
 
 /**
@@ -42,52 +39,68 @@
     }
 
     /**
-     * Returns an Intent to start the {@link CompactContactEditorActivity} for an
+     * Returns an Intent to start the {@link ContactEditorSpringBoardActivity} for an
      * existing contact.
      */
-    public static Intent createCompactEditContactIntent(Uri contactLookupUri,
+    public static Intent createEditContactIntent(Context context, Uri uri,
             MaterialPalette materialPalette, long photoId) {
-        final Intent intent = new Intent(Intent.ACTION_EDIT, contactLookupUri);
+        final Intent intent = new Intent(Intent.ACTION_EDIT, uri, context,
+                ContactEditorSpringBoardActivity.class);
         putMaterialPalette(intent, materialPalette);
         putPhotoId(intent, photoId);
         return intent;
     }
 
-    /**
-     * Returns an Intent to start the {@link CompactContactEditorActivity} for a new contact.
-     */
-    public static Intent createCompactInsertContactIntent() {
-        return createCompactInsertContactIntent(/* rawContactDeltaList =*/ null,
-                /* displayName =*/ null, /* phoneticName =*/ null,
-                /* isNewLocalProfile =*/ false);
-    }
+    public static Intent createViewLinkedContactsIntent(Context context, Uri uri,
+            MaterialPalette materialPalette) {
+        final Intent intent = createEditContactIntent(context, uri, materialPalette,
+                /* photoId */ -1);
+        intent.putExtra(ContactEditorSpringBoardActivity.EXTRA_SHOW_READ_ONLY, true);
 
-    /**
-     * Returns an Intent to start the {@link CompactContactEditorActivity} for a new contact with
-     * the field values specified by rawContactDeltaList pre-populate in the form.
-     */
-    public static Intent createCompactInsertContactIntent(RawContactDeltaList rawContactDeltaList,
-            String displayName, String phoneticName, /* Bundle updatedPhotos, */
-            boolean isNewLocalProfile) {
-        final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
-        intent.putExtra(ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE, isNewLocalProfile);
-        if (rawContactDeltaList != null || displayName != null || phoneticName != null) {
-            putRawContactDeltaValues(intent, rawContactDeltaList, displayName, phoneticName);
-        }
         return intent;
     }
 
     /**
-     * Returns an Intent to edit a different contact (in the fully expaned editor) with whatever
-     * values were already entered on the currently displayed contact editor.
+     * Returns an Intent to start the {@link ContactEditorActivity} for the given raw contact.
      */
-    public static Intent createEditOtherContactIntent(Uri contactLookupUri,
-            ArrayList<ContentValues> contentValues) {
-        final Intent intent = new Intent(Intent.ACTION_EDIT, contactLookupUri);
+    public static Intent createEditContactIntentForRawContact(Context context,
+            Uri uri, long rawContactId, MaterialPalette materialPalette) {
+        final Intent intent = new Intent(Intent.ACTION_EDIT, uri, context,
+                ContactEditorActivity.class);
+        intent.putExtra(ContactEditorFragment.INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE,
+                rawContactId);
+        putMaterialPalette(intent, materialPalette);
+        return intent;
+    }
+
+    /**
+     * Returns an Intent to start the {@link ContactEditorActivity} for a new contact with
+     * the field values specified by rawContactDeltaList pre-populate in the form.
+     */
+    public static Intent createInsertContactIntent(Context context,
+            RawContactDeltaList rawContactDeltaList, String displayName, String phoneticName,
+            /* Bundle updatedPhotos, */ boolean isNewLocalProfile) {
+        final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI,
+                context, ContactEditorActivity.class);
+        intent.putExtra(
+                ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE, isNewLocalProfile);
+        putRawContactDeltaValues(intent, rawContactDeltaList, displayName, phoneticName);
+        return intent;
+    }
+
+    /**
+     * Returns an Intent to edit a different raw contact in the editor with whatever
+     * values were already entered on the current editor.
+     */
+    public static Intent createEditOtherRawContactIntent(Context context, Uri uri,
+            long rawContactId, ArrayList<ContentValues> contentValues) {
+        final Intent intent = new Intent(Intent.ACTION_EDIT, uri, context,
+                ContactEditorActivity.class);
         intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
                 | Intent.FLAG_ACTIVITY_FORWARD_RESULT);
         intent.putExtra(ContactEditorFragment.INTENT_EXTRA_ADD_TO_DEFAULT_DIRECTORY, "");
-
+        intent.putExtra(ContactEditorFragment.INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE,
+                rawContactId);
         // Pass on all the data that has been entered so far
         if (contentValues != null && contentValues.size() != 0) {
             intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, contentValues);
@@ -95,67 +108,20 @@
         return intent;
     }
 
-    /**
-     * Returns an Intent to start the fully expanded {@link ContactEditorActivity} for an
-     * existing contact.
-     */
-    public static Intent createEditContactIntent(Uri contactLookupUri,
-            MaterialPalette materialPalette, long photoId) {
-        final Intent intent = new Intent(ContactEditorBaseActivity.ACTION_EDIT, contactLookupUri);
-        addContactIntentFlags(intent);
-        putMaterialPalette(intent, materialPalette);
-        putPhotoId(intent, photoId);
-        return intent;
-    }
-
-    /**
-     * Returns an Intent to start the fully expanded {@link ContactEditorActivity} for a
-     * new contact.
-     */
-    public static Intent createInsertContactIntent(RawContactDeltaList rawContactDeltaList,
-            String displayName, String phoneticName, boolean isNewLocalProfile) {
-        final Intent intent = new Intent(ContactEditorBaseActivity.ACTION_INSERT,
-                Contacts.CONTENT_URI);
-        intent.putExtra(ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE, isNewLocalProfile);
-        addContactIntentFlags(intent);
-        putRawContactDeltaValues(intent, rawContactDeltaList, displayName, phoneticName);
-        return intent;
-    }
-
-    /**
-     * Returns an Intent to start the full editor for the given raw contact. The full editor will
-     * only display this one raw contact.
-     */
-    public static Intent createEditContactIntentForRawContact(Context context,
-            Uri rawContactUri, long rawContactId, boolean isReadOnly) {
-        final Intent intent = new Intent(context, ContactEditorActivity.class);
-        intent.setAction(ContactEditorBaseActivity.ACTION_EDIT);
-        intent.setData(rawContactUri);
-        intent.putExtra(ContactEditorFragment.INTENT_EXTRA_RAW_CONTACT_ID_TO_DISPLAY_ALONE,
-                rawContactId);
-        intent.putExtra(
-                ContactEditorBaseFragment.INTENT_EXTRA_RAW_CONTACT_DISPLAY_ALONE_IS_READ_ONLY,
-                isReadOnly);
-        return intent;
-    }
-
-    private static void addContactIntentFlags(Intent intent) {
-        intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
-                | Intent.FLAG_ACTIVITY_FORWARD_RESULT);
-    }
-
     private static void putMaterialPalette(Intent intent, MaterialPalette materialPalette) {
         if (materialPalette != null) {
-            intent.putExtra(ContactEditorBaseFragment.INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR,
+            intent.putExtra(
+                    ContactEditorFragment.INTENT_EXTRA_MATERIAL_PALETTE_PRIMARY_COLOR,
                     materialPalette.mPrimaryColor);
-            intent.putExtra(ContactEditorBaseFragment.INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR,
+            intent.putExtra(
+                    ContactEditorFragment.INTENT_EXTRA_MATERIAL_PALETTE_SECONDARY_COLOR,
                     materialPalette.mSecondaryColor);
         }
     }
 
     private static void putPhotoId(Intent intent, long photoId) {
         if (photoId >= 0) {
-            intent.putExtra(ContactEditorBaseFragment.INTENT_EXTRA_PHOTO_ID, photoId);
+            intent.putExtra(ContactEditorFragment.INTENT_EXTRA_PHOTO_ID, photoId);
         }
     }
 
diff --git a/src/com/android/contacts/editor/EditorUiUtils.java b/src/com/android/contacts/editor/EditorUiUtils.java
index cedc443..9aa5c8e 100644
--- a/src/com/android/contacts/editor/EditorUiUtils.java
+++ b/src/com/android/contacts/editor/EditorUiUtils.java
@@ -18,13 +18,17 @@
 
 import static android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 import static android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import static com.android.contacts.common.util.MaterialColorMapUtils.getDefaultPrimaryAndSecondaryColors;
+
+import static com.android.contacts.util.MaterialColorMapUtils.getDefaultPrimaryAndSecondaryColors;
 
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.drawable.Drawable;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.os.Build;
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Event;
 import android.provider.ContactsContract.CommonDataKinds.Im;
@@ -36,25 +40,21 @@
 import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.CommonDataKinds.Website;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Build;
+import android.support.v4.content.res.ResourcesCompat;
 import android.text.TextUtils;
-import android.util.Pair;
 import android.widget.ImageView;
 
+import com.android.contacts.ContactPhotoManager;
+import com.android.contacts.ContactPhotoManager.DefaultImageProvider;
+import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.ContactPhotoManager.DefaultImageProvider;
-import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.GoogleAccountType;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.testing.NeededForTesting;
-import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountDisplayInfo;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.dataitem.DataKind;
 import com.android.contacts.util.ContactPhotoUtils;
+import com.android.contacts.util.MaterialColorMapUtils.MaterialPalette;
 import com.android.contacts.widget.QuickContactImageView;
 
 import com.google.common.collect.Maps;
@@ -65,7 +65,6 @@
 /**
  * Utility methods for creating contact editor.
  */
-@NeededForTesting
 public class EditorUiUtils {
 
     // Maps DataKind.mimeType to editor view layouts.
@@ -89,9 +88,6 @@
         // Relation.CONTENT_ITEM_TYPE
         //
         // Un-supported mime types need to mapped with -1.
-
-        mimetypeLayoutMap.put(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME,
-                R.layout.phonetic_name_editor_view);
         mimetypeLayoutMap.put(StructuredName.CONTENT_ITEM_TYPE,
                 R.layout.structured_name_editor_view);
         mimetypeLayoutMap.put(GroupMembership.CONTENT_ITEM_TYPE, -1);
@@ -113,57 +109,34 @@
         return id;
     }
 
-    /**
-     * Returns the account name and account type labels to display for local accounts.
-     */
-    @NeededForTesting
-    public static Pair<String,String> getLocalAccountInfo(Context context,
-            String accountName, AccountType accountType) {
-        if (TextUtils.isEmpty(accountName)) {
-            return new Pair<>(
-                    /* accountName =*/ null,
-                    context.getString(R.string.local_profile_title));
+
+    public static String getAccountHeaderLabelForMyProfile(Context context,
+            AccountInfo accountInfo) {
+        if (accountInfo.isDeviceAccount()) {
+            return context.getString(R.string.local_profile_title);
+        } else {
+            return context.getString(R.string.external_profile_title,
+                    accountInfo.getTypeLabel());
         }
-        return new Pair<>(
-                accountName,
-                context.getString(R.string.external_profile_title,
-                        accountType.getDisplayLabel(context)));
     }
 
-    /**
-     * Returns the account name and account type labels to display for the given account type.
-     */
-    @NeededForTesting
-    public static Pair<String,String> getAccountInfo(Context context, String accountName,
-            AccountType accountType) {
-        CharSequence accountTypeDisplayLabel = accountType.getDisplayLabel(context);
-        if (TextUtils.isEmpty(accountTypeDisplayLabel)) {
-            accountTypeDisplayLabel = context.getString(R.string.account_phone);
+    public static String getAccountTypeHeaderLabel(Context context, AccountDisplayInfo
+            displayableAccount)  {
+        if (displayableAccount.isDeviceAccount()) {
+            // Do nothing. Type label should be "Device"
+            return displayableAccount.getTypeLabel().toString();
+        } else if (displayableAccount.isGoogleAccount()) {
+            return context.getString(R.string.google_account_type_format,
+                    displayableAccount.getTypeLabel());
+        } else {
+            return context.getString(R.string.account_type_format,
+                    displayableAccount.getTypeLabel());
         }
-
-        if (TextUtils.isEmpty(accountName)) {
-            return new Pair<>(
-                    /* accountName =*/ null,
-                    context.getString(R.string.account_type_format, accountTypeDisplayLabel));
-        }
-
-        final String accountNameDisplayLabel =
-                context.getString(R.string.from_account_format, accountName);
-
-        if (GoogleAccountType.ACCOUNT_TYPE.equals(accountType.accountType)
-                && accountType.dataSet == null) {
-            return new Pair<>(
-                    accountNameDisplayLabel,
-                    context.getString(R.string.google_account_type_format, accountTypeDisplayLabel));
-        }
-        return new Pair<>(
-                accountNameDisplayLabel,
-                context.getString(R.string.account_type_format, accountTypeDisplayLabel));
     }
 
     /**
      * Returns a content description String for the container of the account information
-     * returned by {@link #getAccountInfo}.
+     * returned by {@link #getAccountTypeHeaderLabel(Context, AccountDisplayInfo)}.
      */
     public static String getAccountInfoContentDescription(CharSequence accountName,
             CharSequence accountType) {
@@ -183,32 +156,44 @@
     public static Drawable getMimeTypeDrawable(Context context, String mimeType) {
         switch (mimeType) {
             case StructuredName.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_person_black_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_person_vd_theme_24, null);
             case StructuredPostal.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_place_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_place_vd_theme_24, null);
             case SipAddress.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_dialer_sip_black_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_dialer_sip_vd_theme_24, null);
             case Phone.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_phone_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_phone_vd_theme_24, null);
             case Im.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_message_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_message_vd_theme_24, null);
             case Event.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_event_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_event_vd_theme_24, null);
             case Email.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_email_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_email_vd_theme_24, null);
             case Website.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_public_black_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_public_vd_theme_24, null);
             case Photo.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_camera_alt_black_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_camera_alt_vd_theme_24, null);
             case GroupMembership.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_people_black_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_label_vd_theme_24, null);
             case Organization.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_business_black_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_business_vd_theme_24, null);
             case Note.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.ic_insert_comment_black_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_insert_comment_vd_theme_24, null);
             case Relation.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(
-                        R.drawable.ic_circles_extended_black_24dp);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_circles_ext_vd_theme_24, null);
             default:
                 return null;
         }
@@ -217,7 +202,6 @@
     /**
      * Returns a ringtone string based on the ringtone URI and version #.
      */
-    @NeededForTesting
     public static String getRingtoneStringFromUri(Uri pickedUri, int currentVersion) {
         if (isNewerThanM(currentVersion)) {
             if (pickedUri == null) return ""; // silent ringtone
@@ -230,7 +214,6 @@
     /**
      * Returns a ringtone URI, based on the string and version #.
      */
-    @NeededForTesting
     public static Uri getRingtoneUriFromString(String str, int currentVersion) {
         if (str != null) {
             if (isNewerThanM(currentVersion) && TextUtils.isEmpty(str)) return null;
@@ -300,4 +283,5 @@
                 bitmap, size, size, /* filter =*/ false);
         return ContactPhotoUtils.compressBitmap(bitmapScaled);
     }
+
 }
diff --git a/src/com/android/contacts/editor/EventFieldEditorView.java b/src/com/android/contacts/editor/EventFieldEditorView.java
index 059208e..5d47d95 100644
--- a/src/com/android/contacts/editor/EventFieldEditorView.java
+++ b/src/com/android/contacts/editor/EventFieldEditorView.java
@@ -20,7 +20,6 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.os.Bundle;
-import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Event;
 import android.text.TextUtils;
 import android.util.AttributeSet;
@@ -31,13 +30,13 @@
 import com.android.contacts.datepicker.DatePicker;
 import com.android.contacts.datepicker.DatePickerDialog;
 import com.android.contacts.datepicker.DatePickerDialog.OnDateSetListener;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType.EditField;
-import com.android.contacts.common.model.account.AccountType.EventEditType;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.util.CommonDateUtils;
-import com.android.contacts.common.util.DateUtils;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountType.EditField;
+import com.android.contacts.model.account.AccountType.EventEditType;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.util.CommonDateUtils;
+import com.android.contacts.util.DateUtils;
 
 import java.text.ParsePosition;
 import java.util.Calendar;
@@ -145,11 +144,10 @@
     public Dialog createDialog(Bundle bundle) {
         if (bundle == null) throw new IllegalArgumentException("bundle must not be null");
         int dialogId = bundle.getInt(DIALOG_ID_KEY);
-        switch (dialogId) {
-            case R.id.dialog_event_date_picker:
-                return createDatePickerDialog();
-            default:
-                return super.createDialog(bundle);
+        if (dialogId == R.id.dialog_event_date_picker) {
+            return createDatePickerDialog();
+        } else {
+            return super.createDialog(bundle);
         }
     }
 
@@ -173,7 +171,8 @@
 
         if (!isYearOptional && !TextUtils.isEmpty(oldValue)) {
             final ParsePosition position = new ParsePosition(0);
-            final Date date2 = kind.dateFormatWithoutYear.parse(oldValue, position);
+            final Date date2 = kind.dateFormatWithoutYear == null
+                    ? null : kind.dateFormatWithoutYear.parse(oldValue, position);
 
             // Don't understand the date, lets not change it
             if (date2 == null) return;
@@ -183,7 +182,11 @@
             calendar.set(defaultYear, calendar.get(Calendar.MONTH),
                     calendar.get(Calendar.DAY_OF_MONTH), CommonDateUtils.DEFAULT_HOUR, 0, 0);
 
-            onFieldChanged(column, kind.dateFormatWithYear.format(calendar.getTime()));
+            final String formattedDate = kind.dateFormatWithYear == null
+                    ? null : kind.dateFormatWithYear.format(calendar.getTime());
+            if (formattedDate == null) return;
+
+            onFieldChanged(column, formattedDate);
             rebuildDateView();
         }
     }
@@ -241,10 +244,14 @@
 
                 final String resultString;
                 if (year == 0) {
-                    resultString = kind.dateFormatWithoutYear.format(outCalendar.getTime());
+                    resultString = kind.dateFormatWithoutYear == null
+                            ? null : kind.dateFormatWithoutYear.format(outCalendar.getTime());
                 } else {
-                    resultString = kind.dateFormatWithYear.format(outCalendar.getTime());
+                    resultString = kind.dateFormatWithYear == null
+                            ? null : kind.dateFormatWithYear.format(outCalendar.getTime());
                 }
+                if (resultString == null) return;
+
                 onFieldChanged(column, resultString);
                 rebuildDateView();
             }
diff --git a/src/com/android/contacts/editor/GroupMembershipView.java b/src/com/android/contacts/editor/GroupMembershipView.java
index cb66b73..f545e7b 100644
--- a/src/com/android/contacts/editor/GroupMembershipView.java
+++ b/src/com/android/contacts/editor/GroupMembershipView.java
@@ -17,6 +17,7 @@
 package com.android.contacts.editor;
 
 import android.app.Activity;
+import android.app.FragmentManager;
 import android.content.Context;
 import android.content.res.Resources;
 import android.database.Cursor;
@@ -38,13 +39,14 @@
 
 import com.android.contacts.GroupMetaDataLoader;
 import com.android.contacts.R;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.interactions.GroupCreationDialogFragment;
-import com.android.contacts.interactions.GroupCreationDialogFragment.OnGroupCreatedListener;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.RawContactModifier;
+import com.android.contacts.group.GroupNameEditDialogFragment;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.dataitem.DataKind;
 import com.android.contacts.util.UiClosables;
+
 import com.google.common.base.Objects;
 
 import java.util.ArrayList;
@@ -56,6 +58,8 @@
 public class GroupMembershipView extends LinearLayout
         implements OnClickListener, OnItemClickListener {
 
+    public static final String TAG_CREATE_GROUP_FRAGMENT = "createGroupDialog";
+
     private static final int CREATE_NEW_GROUP_GROUP_ID = 133;
 
     public static final class GroupSelectionItem {
@@ -94,6 +98,9 @@
      */
     private class GroupMembershipAdapter<T> extends ArrayAdapter<T> {
 
+        // The position of the group with the largest group ID
+        private int mNewestGroupPosition;
+
         public GroupMembershipAdapter(Context context, int textViewResourceId) {
             super(context, textViewResourceId);
         }
@@ -130,6 +137,15 @@
 
             return checkedTextView;
         }
+
+        public int getNewestGroupPosition() {
+            return mNewestGroupPosition;
+        }
+
+        public void setNewestGroupPosition(int newestGroupPosition) {
+            mNewestGroupPosition = newestGroupPosition;
+        }
+
     }
 
     private RawContactDelta mState;
@@ -147,6 +163,18 @@
     private boolean mDefaultGroupVisibilityKnown;
     private boolean mDefaultGroupVisible;
     private boolean mCreatedNewGroup;
+    private GroupNameEditDialogFragment mGroupNameEditDialogFragment;
+    private GroupNameEditDialogFragment.Listener mListener =
+            new GroupNameEditDialogFragment.Listener() {
+                @Override
+                public void onGroupNameEditCancelled() {
+                }
+
+                @Override
+                public void onGroupNameEditCompleted(String name) {
+                    mCreatedNewGroup = true;
+                }
+            };
 
     private String mNoGroupString;
     private int mPrimaryTextColor;
@@ -167,6 +195,17 @@
         mPrimaryTextColor = resources.getColor(R.color.primary_text_color);
         mHintTextColor = resources.getColor(R.color.editor_disabled_text_color);
         mNoGroupString = getContext().getString(R.string.group_edit_field_hint_text);
+        setFocusable(true);
+        setFocusableInTouchMode(true);
+    }
+
+    private void setGroupNameEditDialogFragment() {
+        final FragmentManager fragmentManager = ((Activity) getContext()).getFragmentManager();
+        mGroupNameEditDialogFragment = (GroupNameEditDialogFragment)
+                fragmentManager.findFragmentByTag(TAG_CREATE_GROUP_FRAGMENT);
+        if (mGroupNameEditDialogFragment != null) {
+            mGroupNameEditDialogFragment.setListener(mListener);
+        }
     }
 
     @Override
@@ -192,7 +231,7 @@
             onClick(this); // This causes the popup to open.
             if (mPopup != null) {
                 // Ensure that the newly created group is checked.
-                int position = mAdapter.getCount() - 2;
+                final int position = mAdapter.getNewestGroupPosition();
                 ListView listView = mPopup.getListView();
                 if (listView != null && !listView.isItemChecked(position)) {
                     // Newly created group is not checked, so check it.
@@ -224,6 +263,7 @@
         mDefaultGroupVisibilityKnown = false;
         mCreatedNewGroup = false;
         updateView();
+        setGroupNameEditDialogFragment();
     }
 
     private void updateView() {
@@ -304,9 +344,12 @@
             return;
         }
 
+        requestFocus();
         mAdapter = new GroupMembershipAdapter<GroupSelectionItem>(
                 getContext(), R.layout.group_membership_list_item);
 
+        long newestGroupId = -1;
+
         mGroupMetaData.moveToPosition(-1);
         while (mGroupMetaData.moveToNext()) {
             String accountName = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_NAME);
@@ -317,6 +360,10 @@
                 long groupId = mGroupMetaData.getLong(GroupMetaDataLoader.GROUP_ID);
                 if (groupId != mFavoritesGroupId
                         && (groupId != mDefaultGroupId || mDefaultGroupVisible)) {
+                    if (groupId > newestGroupId) {
+                        newestGroupId = groupId;
+                        mAdapter.setNewestGroupPosition(mAdapter.getCount());
+                    }
                     String title = mGroupMetaData.getString(GroupMetaDataLoader.TITLE);
                     boolean checked = hasMembership(groupId);
                     mAdapter.add(new GroupSelectionItem(groupId, title, checked));
@@ -430,18 +477,12 @@
     private void createNewGroup() {
         UiClosables.closeQuietly(mPopup);
         mPopup = null;
-
-        GroupCreationDialogFragment.show(
+        mGroupNameEditDialogFragment =
+                    GroupNameEditDialogFragment.newInstanceForCreation(
+                            new AccountWithDataSet(mAccountName, mAccountType, mDataSet), null);
+        mGroupNameEditDialogFragment.setListener(mListener);
+        mGroupNameEditDialogFragment.show(
                 ((Activity) getContext()).getFragmentManager(),
-                mAccountType,
-                mAccountName,
-                mDataSet,
-                new OnGroupCreatedListener() {
-                    @Override
-                    public void onGroupCreated() {
-                        mCreatedNewGroup = true;
-                    }
-                });
+                TAG_CREATE_GROUP_FRAGMENT);
     }
-
 }
diff --git a/src/com/android/contacts/editor/JoinContactConfirmationDialogFragment.java b/src/com/android/contacts/editor/JoinContactConfirmationDialogFragment.java
index 55a066e..d238c38 100644
--- a/src/com/android/contacts/editor/JoinContactConfirmationDialogFragment.java
+++ b/src/com/android/contacts/editor/JoinContactConfirmationDialogFragment.java
@@ -48,7 +48,7 @@
     /**
      * @param joinContactId The raw contact ID of the contact to join to after confirmation.
      */
-    public static void show(ContactEditorBaseFragment fragment, long joinContactId) {
+    public static void show(ContactEditorFragment fragment, long joinContactId) {
         final Bundle args = new Bundle();
         args.putLong(ARG_JOIN_CONTACT_ID, joinContactId);
 
diff --git a/src/com/android/contacts/editor/JoinSuggestedContactDialogFragment.java b/src/com/android/contacts/editor/JoinSuggestedContactDialogFragment.java
deleted file mode 100644
index 4d35332..0000000
--- a/src/com/android/contacts/editor/JoinSuggestedContactDialogFragment.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2015 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.editor;
-
-import com.android.contacts.R;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.content.DialogInterface;
-import android.os.Bundle;
-
-public class JoinSuggestedContactDialogFragment extends DialogFragment {
-
-    private static final String ARG_RAW_CONTACT_IDS = "rawContactIds";
-
-    public static void show(ContactEditorBaseFragment fragment, long[] rawContactIds) {
-        final Bundle args = new Bundle();
-        args.putLongArray(ARG_RAW_CONTACT_IDS, rawContactIds);
-
-        final JoinSuggestedContactDialogFragment dialog = new JoinSuggestedContactDialogFragment();
-        dialog.setArguments(args);
-        dialog.setTargetFragment(fragment, 0);
-        dialog.show(fragment.getFragmentManager(), "join");
-    }
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        return new AlertDialog.Builder(getActivity())
-                .setIconAttribute(android.R.attr.alertDialogIcon)
-                .setMessage(R.string.aggregation_suggestion_join_dialog_message)
-                .setPositiveButton(android.R.string.yes,
-                        new DialogInterface.OnClickListener() {
-                            @Override
-                            public void onClick(DialogInterface dialog, int whichButton) {
-                                ContactEditorBaseFragment targetFragment =
-                                        (ContactEditorBaseFragment) getTargetFragment();
-                                long rawContactIds[] =
-                                        getArguments().getLongArray(ARG_RAW_CONTACT_IDS);
-                                targetFragment.doJoinSuggestedContact(rawContactIds);
-                            }
-                        }
-                )
-                .setNegativeButton(android.R.string.no, null)
-                .create();
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/contacts/editor/KindSectionData.java b/src/com/android/contacts/editor/KindSectionData.java
index 7e2899f..8ebae0a 100644
--- a/src/com/android/contacts/editor/KindSectionData.java
+++ b/src/com/android/contacts/editor/KindSectionData.java
@@ -16,14 +16,14 @@
 
 package com.android.contacts.editor;
 
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountType.EditField;
-import com.android.contacts.common.model.dataitem.DataKind;
-
 import android.text.TextUtils;
 
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountType.EditField;
+import com.android.contacts.model.dataitem.DataKind;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -118,4 +118,8 @@
     public RawContactDelta getRawContactDelta() {
         return mRawContactDelta;
     }
+
+    public String getMimeType() {
+        return mDataKind.mimeType;
+    }
 }
diff --git a/src/com/android/contacts/editor/KindSectionDataList.java b/src/com/android/contacts/editor/KindSectionDataList.java
deleted file mode 100644
index cb82806..0000000
--- a/src/com/android/contacts/editor/KindSectionDataList.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (C) 2015 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.editor;
-
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.model.RawContactModifier;
-
-import android.util.Log;
-import android.util.Pair;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * Container for multiple {@link KindSectionData} objects.  Provides convenience methods for
- * interrogating the collection for a certain KindSectionData item (e.g. the first writable, or
- * "primary", one.  Also enforces that only items with the same DataKind/mime-type are added.
- */
-public class KindSectionDataList extends ArrayList<KindSectionData> {
-
-    private static final String TAG = CompactRawContactsEditorView.TAG;
-
-    /**
-     * Returns the mime type for all DataKinds in this List.
-     */
-    public String getMimeType() {
-        if (isEmpty()) return null;
-        return get(0).getDataKind().mimeType;
-    }
-
-    /**
-     * Returns the DataKind for all entries in this List.
-     */
-    public DataKind getDataKind() {
-        return isEmpty() ? null : get(0).getDataKind();
-    }
-
-    /**
-     * Returns the primary KindSectionData and ValuesDelta that should be written for this List.
-     */
-    public Pair<KindSectionData,ValuesDelta> getEntryToWrite(long id,
-            AccountWithDataSet primaryAccount, boolean isUserProfile) {
-        final String mimeType = getMimeType();
-        if (mimeType == null) return null;
-
-        if (!isUserProfile) {
-            if (id > 0) {
-                // Look for a match for the ID that was passed in
-                for (KindSectionData kindSectionData : this) {
-                    if (kindSectionData.getAccountType().areContactsWritable()) {
-                        final ValuesDelta valuesDelta = kindSectionData.getValuesDeltaById(id);
-                        if (valuesDelta != null) {
-                            vlog(mimeType + ": matched kind section data to write by ID");
-                            return new Pair<>(kindSectionData, valuesDelta);
-                        }
-                    }
-                }
-            }
-
-            // Look for a super primary entry
-            for (KindSectionData kindSectionData : this) {
-                if (kindSectionData.getAccountType().areContactsWritable()) {
-                    final ValuesDelta valuesDelta = kindSectionData.getSuperPrimaryValuesDelta();
-                    if (valuesDelta != null) {
-                        vlog(mimeType + ": matched kind section data to write by super primary");
-                        return new Pair<>(kindSectionData, valuesDelta);
-                    }
-                }
-            }
-
-            // Use the first writable contact that matches the primary account
-            if (primaryAccount != null) {
-                for (KindSectionData kindSectionData : this) {
-                    if (kindSectionData.getAccountType().areContactsWritable()) {
-                        if (matchesAccount(primaryAccount, kindSectionData.getRawContactDelta())
-                            && !kindSectionData.getValuesDeltas().isEmpty()) {
-                            vlog(mimeType + ": matched kind section data to write by primary " +
-                                    "account");
-                            return new Pair<>(kindSectionData,
-                                    kindSectionData.getValuesDeltas().get(0));
-                        }
-                    }
-                }
-            }
-        }
-
-        // Just return the first writable entry.
-        for (KindSectionData kindSectionData : this) {
-            if (kindSectionData.getAccountType().areContactsWritable()) {
-                // Create an entry if necessary
-                RawContactModifier.ensureKindExists(kindSectionData.getRawContactDelta(),
-                        kindSectionData.getAccountType(), mimeType);
-
-                if (!kindSectionData.getValuesDeltas().isEmpty()) {
-                    vlog(mimeType + ": falling back to first kind section data to write");
-                    return new Pair<>(kindSectionData, kindSectionData.getValuesDeltas().get(0));
-                }
-            }
-        }
-
-        wlog(mimeType+ ": no writable kind section data found");
-        return null;
-    }
-
-    /** Whether the given RawContactDelta belong to the given account. */
-    private static boolean matchesAccount(AccountWithDataSet accountWithDataSet,
-            RawContactDelta rawContactDelta) {
-        return Objects.equals(accountWithDataSet.name, rawContactDelta.getAccountName())
-                && Objects.equals(accountWithDataSet.type, rawContactDelta.getAccountType())
-                && Objects.equals(accountWithDataSet.dataSet, rawContactDelta.getDataSet());
-    }
-
-    /**
-     * Returns the KindSectionData and ValuesDelta that should be displayed to the user.
-     */
-    public Pair<KindSectionData,ValuesDelta> getEntryToDisplay(long id) {
-        final String mimeType = getMimeType();
-        if (mimeType == null) return null;
-
-        if (id > 0) {
-            // Look for a match for the ID that was passed in
-            for (KindSectionData kindSectionData : this) {
-                final ValuesDelta valuesDelta = kindSectionData.getValuesDeltaById(id);
-                if (valuesDelta != null) {
-                    vlog(mimeType + ": matched kind section data to display by ID");
-                    return new Pair<>(kindSectionData, valuesDelta);
-                }
-            }
-        }
-        // Look for a super primary entry
-        for (KindSectionData kindSectionData : this) {
-            final ValuesDelta valuesDelta = kindSectionData.getSuperPrimaryValuesDelta();
-                if (valuesDelta != null) {
-                    vlog(mimeType + ": matched kind section data to display by super primary");
-                    return new Pair<>(kindSectionData, valuesDelta);
-                }
-        }
-
-        // Fall back to the first non-empty value
-        for (KindSectionData kindSectionData : this) {
-            final ValuesDelta valuesDelta = kindSectionData.getFirstNonEmptyValuesDelta();
-            if (valuesDelta != null) {
-                vlog(mimeType + ": using first non empty value to display");
-                return new Pair<>(kindSectionData, valuesDelta);
-            }
-        }
-
-        for (KindSectionData kindSectionData : this) {
-            final List<ValuesDelta> valuesDeltaList = kindSectionData.getValuesDeltas();
-            if (!valuesDeltaList.isEmpty()) {
-                vlog(mimeType + ": falling back to first empty entry to display");
-                final ValuesDelta valuesDelta = valuesDeltaList.get(0);
-                return new Pair<>(kindSectionData, valuesDelta);
-            }
-        }
-
-        wlog(mimeType + ": no kind section data found to display");
-        return null;
-    }
-
-    @Override
-    public boolean add(KindSectionData kindSectionData) {
-        if (kindSectionData == null) throw new NullPointerException();
-
-        // Enforce that only entries of the same type are added to this list
-        final String listMimeType = getMimeType();
-        if (listMimeType != null) {
-            final String newEntryMimeType = kindSectionData.getDataKind().mimeType;
-            if (!listMimeType.equals(newEntryMimeType)) {
-                throw new IllegalArgumentException(
-                        "Can't add " + newEntryMimeType + " to list with type " + listMimeType);
-            }
-        }
-        return super.add(kindSectionData);
-    }
-
-    private static void wlog(String message) {
-        if (Log.isLoggable(TAG, Log.WARN)) {
-            Log.w(TAG, message);
-        }
-    }
-
-    private static void vlog(String message) {
-        if (Log.isLoggable(TAG, Log.VERBOSE)) {
-            Log.v(TAG, message);
-        }
-    }
-}
diff --git a/src/com/android/contacts/editor/KindSectionView.java b/src/com/android/contacts/editor/KindSectionView.java
index e612361..94f8a32 100644
--- a/src/com/android/contacts/editor/KindSectionView.java
+++ b/src/com/android/contacts/editor/KindSectionView.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009 The Android Open Source Project
+ * Copyright (C) 2015 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.
@@ -17,21 +17,26 @@
 package com.android.contacts.editor;
 
 import android.content.Context;
-import android.provider.ContactsContract.Data;
-import android.text.TextUtils;
+import android.database.Cursor;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.TextView;
 
 import com.android.contacts.R;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.editor.Editor.EditorListener;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.preference.ContactsPreferences;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -41,31 +46,124 @@
  * {@link DataKind} around a {@link Data#MIMETYPE}. This view shows a
  * section header and a trigger for adding new {@link Data} rows.
  */
-public class KindSectionView extends LinearLayout implements EditorListener {
+public class KindSectionView extends LinearLayout {
 
-    public interface Listener {
+    /**
+     * Marks a name as super primary when it is changed.
+     *
+     * This is for the case when two or more raw contacts with names are joined where neither is
+     * marked as super primary.
+     */
+    private static final class StructuredNameEditorListener implements Editor.EditorListener {
 
-        /**
-         * Invoked when any editor that is displayed in this section view is deleted by the user.
-         */
-        public void onDeleteRequested(Editor editor);
+        private final ValuesDelta mValuesDelta;
+        private final long mRawContactId;
+        private final RawContactEditorView.Listener mListener;
+
+        public StructuredNameEditorListener(ValuesDelta valuesDelta, long rawContactId,
+                RawContactEditorView.Listener listener) {
+            mValuesDelta = valuesDelta;
+            mRawContactId = rawContactId;
+            mListener = listener;
+        }
+
+        @Override
+        public void onRequest(int request) {
+            if (request == Editor.EditorListener.FIELD_CHANGED) {
+                mValuesDelta.setSuperPrimary(true);
+                if (mListener != null) {
+                    mListener.onNameFieldChanged(mRawContactId, mValuesDelta);
+                }
+            } else if (request == Editor.EditorListener.FIELD_TURNED_EMPTY) {
+                mValuesDelta.setSuperPrimary(false);
+            }
+        }
+
+        @Override
+        public void onDeleteRequested(Editor editor) {
+            editor.clearAllFields();
+        }
     }
 
+    /**
+     * Clears fields when deletes are requested (on phonetic and nickename fields);
+     * does not change the number of editors.
+     */
+    private static final class OtherNameKindEditorListener implements Editor.EditorListener {
+
+        @Override
+        public void onRequest(int request) {
+        }
+
+        @Override
+        public void onDeleteRequested(Editor editor) {
+            editor.clearAllFields();
+        }
+    }
+
+    /**
+     * Updates empty fields when fields are deleted or turns empty.
+     * Whether a new empty editor is added is controlled by {@link #setShowOneEmptyEditor} and
+     * {@link #setHideWhenEmpty}.
+     */
+    private class NonNameEditorListener implements Editor.EditorListener {
+
+        @Override
+        public void onRequest(int request) {
+            // If a field has become empty or non-empty, then check if another row
+            // can be added dynamically.
+            if (request == FIELD_TURNED_EMPTY || request == FIELD_TURNED_NON_EMPTY) {
+                updateEmptyEditors(/* shouldAnimate = */ true);
+            }
+        }
+
+        @Override
+        public void onDeleteRequested(Editor editor) {
+            if (mShowOneEmptyEditor && mEditors.getChildCount() == 1) {
+                // If there is only 1 editor in the section, then don't allow the user to
+                // delete it.  Just clear the fields in the editor.
+                editor.clearAllFields();
+            } else {
+                editor.deleteEditor();
+            }
+        }
+    }
+
+    private class EventEditorListener extends NonNameEditorListener {
+
+        @Override
+        public void onRequest(int request) {
+            super.onRequest(request);
+        }
+
+        @Override
+        public void onDeleteRequested(Editor editor) {
+            if (editor instanceof EventFieldEditorView){
+                final EventFieldEditorView delView = (EventFieldEditorView) editor;
+                if (delView.isBirthdayType() && mEditors.getChildCount() > 1) {
+                    final EventFieldEditorView bottomView = (EventFieldEditorView) mEditors
+                            .getChildAt(mEditors.getChildCount() - 1);
+                    bottomView.restoreBirthday();
+                }
+            }
+            super.onDeleteRequested(editor);
+        }
+    }
+
+    private KindSectionData mKindSectionData;
+    private ViewIdGenerator mViewIdGenerator;
+    private RawContactEditorView.Listener mListener;
+
+    private boolean mIsUserProfile;
+    private boolean mShowOneEmptyEditor = false;
+    private boolean mHideIfEmpty = true;
+
+    private LayoutInflater mLayoutInflater;
     private ViewGroup mEditors;
     private ImageView mIcon;
 
-    private DataKind mKind;
-    private RawContactDelta mState;
-    private boolean mReadOnly;
-
-    private ViewIdGenerator mViewIdGenerator;
-
-    private LayoutInflater mInflater;
-
-    private Listener mListener;
-
     public KindSectionView(Context context) {
-        this(context, null);
+        this(context, /* attrs =*/ null);
     }
 
     public KindSectionView(Context context, AttributeSet attrs) {
@@ -81,209 +179,405 @@
                 mEditors.getChildAt(i).setEnabled(enabled);
             }
         }
-
-        updateEmptyEditors(/* shouldAnimate = */ true);
     }
 
-    public boolean isReadOnly() {
-        return mReadOnly;
-    }
-
-    /** {@inheritDoc} */
     @Override
     protected void onFinishInflate() {
+        super.onFinishInflate();
         setDrawingCacheEnabled(true);
         setAlwaysDrawnWithCacheEnabled(true);
 
-        mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        mLayoutInflater = (LayoutInflater) getContext().getSystemService(
+                Context.LAYOUT_INFLATER_SERVICE);
 
         mEditors = (ViewGroup) findViewById(R.id.kind_editors);
         mIcon = (ImageView) findViewById(R.id.kind_icon);
     }
 
-    @Override
-    public void onDeleteRequested(Editor editor) {
-        if (getEditorCount() == 1) {
-            // If there is only 1 editor in the section, then don't allow the user to delete it.
-            // Just clear the fields in the editor.
-            editor.clearAllFields();
-        } else {
-            // If there is a listener, let it decide whether to delete the Editor or the entire
-            // KindSectionView so that there is no jank from both animations happening in succession.
-            if (mListener != null) {
-                editor.markDeleted();
-                mListener.onDeleteRequested(editor);
-            } else {
-                editor.deleteEditor();
+    public void setIsUserProfile(boolean isUserProfile) {
+        mIsUserProfile = isUserProfile;
+    }
+
+    /**
+     * @param showOneEmptyEditor If true, we will always show one empty editor, otherwise an empty
+     *         editor will not be shown until the user enters a value.  Note, this does not apply
+     *         to name editors since those are always displayed.
+     */
+    public void setShowOneEmptyEditor(boolean showOneEmptyEditor) {
+        mShowOneEmptyEditor = showOneEmptyEditor;
+    }
+
+    /**
+     * @param hideWhenEmpty If true, the entire section will be hidden if all inputs are empty,
+     *         otherwise one empty input will always be displayed.  Note, this does not apply
+     *         to name editors since those are always displayed.
+     */
+    public void setHideWhenEmpty(boolean hideWhenEmpty) {
+        mHideIfEmpty = hideWhenEmpty;
+    }
+
+    /** Binds the given group data to every {@link GroupMembershipView}. */
+    public void setGroupMetaData(Cursor cursor) {
+        for (int i = 0; i < mEditors.getChildCount(); i++) {
+            final View view = mEditors.getChildAt(i);
+            if (view instanceof GroupMembershipView) {
+                ((GroupMembershipView) view).setGroupMetaData(cursor);
             }
         }
     }
 
-    @Override
-    public void onRequest(int request) {
-        // If a field has become empty or non-empty, then check if another row
-        // can be added dynamically.
-        if (request == FIELD_TURNED_EMPTY || request == FIELD_TURNED_NON_EMPTY) {
-            updateEmptyEditors(/* shouldAnimate = */ true);
+    /**
+     * Whether this is a name kind section view and all name fields (structured, phonetic,
+     * and nicknames) are empty.
+     */
+    public boolean isEmptyName() {
+        if (!StructuredName.CONTENT_ITEM_TYPE.equals(mKindSectionData.getMimeType())) {
+            return false;
         }
+        for (int i = 0; i < mEditors.getChildCount(); i++) {
+            final View view = mEditors.getChildAt(i);
+            if (view instanceof Editor) {
+                final Editor editor = (Editor) view;
+                if (!editor.isEmpty()) {
+                    return false;
+                }
+            }
+        }
+        return true;
     }
 
-    public void setListener(Listener listener) {
+    public StructuredNameEditorView getNameEditorView() {
+        if (!StructuredName.CONTENT_ITEM_TYPE.equals(mKindSectionData.getMimeType())
+            || mEditors.getChildCount() == 0) {
+            return null;
+        }
+        return (StructuredNameEditorView) mEditors.getChildAt(0);
+    }
+
+    /**
+     * Binds views for the given {@link KindSectionData}.
+     *
+     * We create a structured name and phonetic name editor for each {@link DataKind} with a
+     * {@link StructuredName#CONTENT_ITEM_TYPE} mime type.  The number and order of editors are
+     * rendered as they are given to {@link #setState}.
+     *
+     * Empty name editors are never added and at least one structured name editor is always
+     * displayed, even if it is empty.
+     */
+    public void setState(KindSectionData kindSectionData,
+            ViewIdGenerator viewIdGenerator, RawContactEditorView.Listener listener) {
+        mKindSectionData = kindSectionData;
+        mViewIdGenerator = viewIdGenerator;
         mListener = listener;
-    }
 
-    public void setState(DataKind kind, RawContactDelta state, boolean readOnly,
-            ViewIdGenerator vig) {
-        mKind = kind;
-        mState = state;
-        mReadOnly = readOnly;
-        mViewIdGenerator = vig;
-
-        setId(mViewIdGenerator.getId(state, kind, null, ViewIdGenerator.NO_VIEW_INDEX));
-
-        // TODO: handle resources from remote packages
-        final String titleString = (kind.titleRes == -1 || kind.titleRes == 0)
-                ? ""
-                : getResources().getString(kind.titleRes);
-        mIcon.setContentDescription(titleString);
-
-        mIcon.setImageDrawable(EditorUiUtils.getMimeTypeDrawable(getContext(), kind.mimeType));
-        if (mIcon.getDrawable() == null) {
-            mIcon.setContentDescription(null);
+        // Set the icon using the DataKind
+        final DataKind dataKind = mKindSectionData.getDataKind();
+        if (dataKind != null) {
+            mIcon.setImageDrawable(EditorUiUtils.getMimeTypeDrawable(getContext(),
+                    dataKind.mimeType));
+            if (mIcon.getDrawable() != null) {
+                mIcon.setContentDescription(dataKind.titleRes == -1 || dataKind.titleRes == 0
+                        ? "" : getResources().getString(dataKind.titleRes));
+            }
         }
 
         rebuildFromState();
+
         updateEmptyEditors(/* shouldAnimate = */ false);
     }
 
-    /**
-     * Build editors for all current {@link #mState} rows.
-     */
     private void rebuildFromState() {
-        // Remove any existing editors
         mEditors.removeAllViews();
 
-        // Check if we are displaying anything here
-        boolean hasEntries = mState.hasMimeEntries(mKind.mimeType);
-
-        if (hasEntries) {
-            for (ValuesDelta entry : mState.getMimeEntries(mKind.mimeType)) {
-                // Skip entries that aren't visible
-                if (!entry.isVisible()) continue;
-                if (isEmptyNoop(entry)) continue;
-
-                createEditorView(entry);
+        final String mimeType = mKindSectionData.getMimeType();
+        if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            addNameEditorViews(mKindSectionData.getAccountType(),
+                    mKindSectionData.getRawContactDelta());
+        } else if (GroupMembership.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            addGroupEditorView(mKindSectionData.getRawContactDelta(),
+                    mKindSectionData.getDataKind());
+        } else {
+            final Editor.EditorListener editorListener;
+            if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                editorListener = new OtherNameKindEditorListener();
+            } else if (Event.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                editorListener = new EventEditorListener();
+            } else {
+                editorListener = new NonNameEditorListener();
+            }
+            final List<ValuesDelta> valuesDeltas = mKindSectionData.getVisibleValuesDeltas();
+            for (int i = 0; i < valuesDeltas.size(); i++ ) {
+                addNonNameEditorView(mKindSectionData.getRawContactDelta(),
+                        mKindSectionData.getDataKind(), valuesDeltas.get(i), editorListener);
             }
         }
     }
 
+    private void addNameEditorViews(AccountType accountType, RawContactDelta rawContactDelta) {
+        final boolean readOnly = !accountType.areContactsWritable();
+        final ValuesDelta nameValuesDelta = rawContactDelta
+                .getSuperPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
 
-    /**
-     * Creates an EditorView for the given entry. This function must be used while constructing
-     * the views corresponding to the the object-model. The resulting EditorView is also added
-     * to the end of mEditors
-     */
-    private View createEditorView(ValuesDelta entry) {
-        final View view;
-        final int layoutResId = EditorUiUtils.getLayoutResourceId(mKind.mimeType);
-        try {
-            view = mInflater.inflate(layoutResId, mEditors, false);
-        } catch (Exception e) {
-            throw new RuntimeException(
-                    "Cannot allocate editor with layout resource ID " +
-                    layoutResId + " for MIME type " + mKind.mimeType +
-                    " with error " + e.toString());
+        if (readOnly) {
+            final View nameView = mLayoutInflater.inflate(
+                    R.layout.structured_name_readonly_editor_view, mEditors,
+                    /* attachToRoot =*/ false);
+
+            // Display name
+            ((TextView) nameView.findViewById(R.id.display_name))
+                    .setText(nameValuesDelta.getDisplayName());
+
+            // Account type info
+            final LinearLayout accountTypeLayout = (LinearLayout)
+                    nameView.findViewById(R.id.account_type);
+            accountTypeLayout.setVisibility(View.VISIBLE);
+            ((ImageView) accountTypeLayout.findViewById(R.id.account_type_icon))
+                    .setImageDrawable(accountType.getDisplayIcon(getContext()));
+            ((TextView) accountTypeLayout.findViewById(R.id.account_type_name))
+                    .setText(accountType.getDisplayLabel(getContext()));
+
+            mEditors.addView(nameView);
+            return;
         }
-        view.setEnabled(isEnabled());
-        if (view instanceof Editor) {
-            Editor editor = (Editor) view;
-            editor.setDeletable(true);
-            editor.setValues(mKind, entry, mState, mReadOnly, mViewIdGenerator);
-            editor.setEditorListener(this);
+
+        // Structured name
+        final StructuredNameEditorView nameView = (StructuredNameEditorView) mLayoutInflater
+                .inflate(R.layout.structured_name_editor_view, mEditors, /* attachToRoot =*/ false);
+        if (!mIsUserProfile) {
+            // Don't set super primary for the me contact
+            nameView.setEditorListener(new StructuredNameEditorListener(
+                    nameValuesDelta, rawContactDelta.getRawContactId(), mListener));
         }
-        mEditors.addView(view);
-        return view;
+        nameView.setDeletable(false);
+        nameView.setValues(accountType.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_NAME),
+                nameValuesDelta, rawContactDelta, /* readOnly =*/ false, mViewIdGenerator);
+
+        // Correct start margin since there is a second icon in the structured name layout
+        nameView.findViewById(R.id.kind_icon).setVisibility(View.GONE);
+        mEditors.addView(nameView);
+
+        // Phonetic name
+        final DataKind phoneticNameKind = accountType
+                .getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME);
+        // The account type doesn't support phonetic name.
+        if (phoneticNameKind == null) return;
+
+        final TextFieldsEditorView phoneticNameView = (TextFieldsEditorView) mLayoutInflater
+                .inflate(R.layout.text_fields_editor_view, mEditors, /* attachToRoot =*/ false);
+        phoneticNameView.setEditorListener(new OtherNameKindEditorListener());
+        phoneticNameView.setDeletable(false);
+        phoneticNameView.setValues(
+                accountType.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME),
+                nameValuesDelta, rawContactDelta, /* readOnly =*/ false, mViewIdGenerator);
+
+        // Fix the start margin for phonetic name views
+        final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+        layoutParams.setMargins(0, 0, 0, 0);
+        phoneticNameView.setLayoutParams(layoutParams);
+        mEditors.addView(phoneticNameView);
+        // Display of phonetic name fields is controlled from settings preferences.
+        mHideIfEmpty = new ContactsPreferences(getContext()).shouldHidePhoneticNamesIfEmpty();
     }
 
-    /**
-     * Tests whether the given item has no changes (so it exists in the database) but is empty
-     */
-    private boolean isEmptyNoop(ValuesDelta item) {
-        if (!item.isNoop()) return false;
-        final int fieldCount = mKind.fieldList.size();
-        for (int i = 0; i < fieldCount; i++) {
-            final String column = mKind.fieldList.get(i).column;
-            final String value = item.getAsString(column);
-            if (!TextUtils.isEmpty(value)) return false;
+    private void addGroupEditorView(RawContactDelta rawContactDelta, DataKind dataKind) {
+        final GroupMembershipView view = (GroupMembershipView) mLayoutInflater.inflate(
+                R.layout.item_group_membership, mEditors, /* attachToRoot =*/ false);
+        view.setKind(dataKind);
+        view.setEnabled(isEnabled());
+        view.setState(rawContactDelta);
+
+        // Correct start margin since there is a second icon in the group layout
+        view.findViewById(R.id.kind_icon).setVisibility(View.GONE);
+
+        mEditors.addView(view);
+    }
+
+    private View addNonNameEditorView(RawContactDelta rawContactDelta, DataKind dataKind,
+            ValuesDelta valuesDelta, Editor.EditorListener editorListener) {
+        // Inflate the layout
+        final View view = mLayoutInflater.inflate(
+                EditorUiUtils.getLayoutResourceId(dataKind.mimeType), mEditors, false);
+        view.setEnabled(isEnabled());
+        if (view instanceof Editor) {
+            final Editor editor = (Editor) view;
+            editor.setDeletable(true);
+            editor.setEditorListener(editorListener);
+            editor.setValues(dataKind, valuesDelta, rawContactDelta, !dataKind.editable,
+                    mViewIdGenerator);
         }
-        return true;
+        mEditors.addView(view);
+
+        return view;
     }
 
     /**
      * Updates the editors being displayed to the user removing extra empty
      * {@link Editor}s, so there is only max 1 empty {@link Editor} view at a time.
+     * If there is only 1 empty editor and {@link #setHideWhenEmpty} was set to true,
+     * then the entire section is hidden.
      */
     public void updateEmptyEditors(boolean shouldAnimate) {
+        final boolean isNameKindSection = StructuredName.CONTENT_ITEM_TYPE.equals(
+                mKindSectionData.getMimeType());
+        final boolean isGroupKindSection = GroupMembership.CONTENT_ITEM_TYPE.equals(
+                mKindSectionData.getMimeType());
 
-        final List<View> emptyEditors = getEmptyEditors();
-
-        // If there is more than 1 empty editor, then remove it from the list of editors.
-        if (emptyEditors.size() > 1) {
-            for (final View emptyEditorView : emptyEditors) {
-                // If no child {@link View}s are being focused on within this {@link View}, then
-                // remove this empty editor. We can assume that at least one empty editor has focus.
-                // The only way to get two empty editors is by deleting characters from a non-empty
-                // editor, in which case this editor has focus.
-                if (emptyEditorView.findFocus() == null) {
-                    final Editor editor = (Editor) emptyEditorView;
-                    if (shouldAnimate) {
-                        editor.deleteEditor();
-                    } else {
-                        mEditors.removeView(emptyEditorView);
+        if (isNameKindSection) {
+            // The name kind section is always visible
+            setVisibility(VISIBLE);
+            updateEmptyNameEditors(shouldAnimate);
+        } else if (isGroupKindSection) {
+            // Check whether metadata has been bound for all group views
+            for (int i = 0; i < mEditors.getChildCount(); i++) {
+                final View view = mEditors.getChildAt(i);
+                if (view instanceof GroupMembershipView) {
+                    final GroupMembershipView groupView = (GroupMembershipView) view;
+                    if (!groupView.wasGroupMetaDataBound() || !groupView.accountHasGroups()) {
+                        setVisibility(GONE);
+                        return;
                     }
                 }
             }
-        } else if (mKind == null) {
-            // There is nothing we can do.
-            return;
-        } else if (isReadOnly()) {
-            // We don't show empty editors for read only data kinds.
-            return;
-        } else if (!RawContactModifier.canInsert(mState, mKind)) {
-            // We have already reached the maximum number of editors. Lets not add any more.
-            return;
-        } else if (emptyEditors.size() == 1) {
-            // We have already reached the maximum number of empty editors. Lets not add any more.
-            return;
+            // Check that the user has selected to display all fields
+            if (mHideIfEmpty) {
+                setVisibility(GONE);
+                return;
+            }
+            setVisibility(VISIBLE);
+
+            // We don't check the emptiness of the group views
         } else {
-            final ValuesDelta values = RawContactModifier.insertChild(mState, mKind);
-            final View newField = createEditorView(values);
-            if (shouldAnimate) {
-                newField.setVisibility(View.GONE);
-                EditorAnimator.getInstance().showFieldFooter(newField);
+            // Determine if the entire kind section should be visible
+            final int editorCount = mEditors.getChildCount();
+            final List<View> emptyEditors = getEmptyEditors();
+            if (editorCount == emptyEditors.size() && mHideIfEmpty) {
+                setVisibility(GONE);
+                return;
             }
+            setVisibility(VISIBLE);
+
+            updateEmptyNonNameEditors(shouldAnimate);
         }
     }
 
-    /**
-     * Returns a list of empty editor views in this section.
-     */
-    private List<View> getEmptyEditors() {
-        List<View> emptyEditorViews = new ArrayList<View>();
+    private void updateEmptyNameEditors(boolean shouldAnimate) {
+        boolean isEmptyNameEditorVisible = false;
+
         for (int i = 0; i < mEditors.getChildCount(); i++) {
-            View view = mEditors.getChildAt(i);
-            if (((Editor) view).isEmpty()) {
-                emptyEditorViews.add(view);
+            final View view = mEditors.getChildAt(i);
+            if (view instanceof Editor) {
+                final Editor editor = (Editor) view;
+                if (view instanceof StructuredNameEditorView) {
+                    // We always show one empty structured name view
+                    if (editor.isEmpty()) {
+                        if (isEmptyNameEditorVisible) {
+                            // If we're already showing an empty editor then hide any other empties
+                            if (mHideIfEmpty) {
+                                view.setVisibility(View.GONE);
+                            }
+                        } else {
+                            isEmptyNameEditorVisible = true;
+                        }
+                    } else {
+                        showView(view, shouldAnimate);
+                        isEmptyNameEditorVisible = true;
+                    }
+                } else {
+                    // Since we can't add phonetic names and nicknames, just show or hide them
+                    if (mHideIfEmpty && editor.isEmpty()) {
+                        hideView(view);
+                    } else {
+                        showView(view, /* shouldAnimate =*/ false); // Animation here causes jank
+                    }
+                }
+            } else {
+                // For read only names, only show them if we're not hiding empty views
+                if (mHideIfEmpty) {
+                    hideView(view);
+                } else {
+                    showView(view, shouldAnimate);
+                }
             }
         }
-        return emptyEditorViews;
     }
 
-    public int getEditorCount() {
-        return mEditors.getChildCount();
+    private void updateEmptyNonNameEditors(boolean shouldAnimate) {
+        // Prune excess empty editors
+        final List<View> emptyEditors = getEmptyEditors();
+        if (emptyEditors.size() > 1) {
+            // If there is more than 1 empty editor, then remove it from the list of editors.
+            int deleted = 0;
+            for (int i = 0; i < emptyEditors.size(); i++) {
+                final View view = emptyEditors.get(i);
+                // If no child {@link View}s are being focused on within this {@link View}, then
+                // remove this empty editor. We can assume that at least one empty editor has
+                // focus. One way to get two empty editors is by deleting characters from a
+                // non-empty editor, in which case this editor has focus.  Another way is if
+                // there is more values delta so we must also count number of editors deleted.
+                if (view.findFocus() == null) {
+                    deleteView(view, shouldAnimate);
+                    deleted++;
+                    if (deleted == emptyEditors.size() - 1) break;
+                }
+            }
+            return;
+        }
+        // Determine if we should add a new empty editor
+        final DataKind dataKind = mKindSectionData.getDataKind();
+        final RawContactDelta rawContactDelta = mKindSectionData.getRawContactDelta();
+        if (dataKind == null // There is nothing we can do.
+                // We have already reached the maximum number of editors, don't add any more.
+                || !RawContactModifier.canInsert(rawContactDelta, dataKind)
+                // We have already reached the maximum number of empty editors, don't add any more.
+                || emptyEditors.size() == 1) {
+            return;
+        }
+        // Add a new empty editor
+        if (mShowOneEmptyEditor) {
+            final String mimeType = mKindSectionData.getMimeType();
+            if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType) && mEditors.getChildCount() > 0) {
+                return;
+            }
+            final ValuesDelta values = RawContactModifier.insertChild(rawContactDelta, dataKind);
+            final Editor.EditorListener editorListener = Event.CONTENT_ITEM_TYPE.equals(mimeType)
+                    ? new EventEditorListener() : new NonNameEditorListener();
+            final View view = addNonNameEditorView(rawContactDelta, dataKind, values,
+                    editorListener);
+            showView(view, shouldAnimate);
+        }
     }
 
-    public DataKind getKind() {
-        return mKind;
+    private void hideView(View view) {
+        view.setVisibility(View.GONE);
+    }
+
+    private void deleteView(View view, boolean shouldAnimate) {
+        if (shouldAnimate) {
+            final Editor editor = (Editor) view;
+            editor.deleteEditor();
+        } else {
+            mEditors.removeView(view);
+        }
+    }
+
+    private void showView(View view, boolean shouldAnimate) {
+        if (shouldAnimate) {
+            view.setVisibility(View.GONE);
+            EditorAnimator.getInstance().showFieldFooter(view);
+        } else {
+            view.setVisibility(View.VISIBLE);
+        }
+    }
+
+    private List<View> getEmptyEditors() {
+        final List<View> emptyEditors = new ArrayList<>();
+        for (int i = 0; i < mEditors.getChildCount(); i++) {
+            final View view = mEditors.getChildAt(i);
+            if (view instanceof Editor && ((Editor) view).isEmpty()) {
+                emptyEditors.add(view);
+            }
+        }
+        return emptyEditors;
     }
 }
diff --git a/src/com/android/contacts/editor/LabeledEditorView.java b/src/com/android/contacts/editor/LabeledEditorView.java
index 63d75d8..5712f39 100644
--- a/src/com/android/contacts/editor/LabeledEditorView.java
+++ b/src/com/android/contacts/editor/LabeledEditorView.java
@@ -37,19 +37,20 @@
 import android.widget.AdapterView.OnItemSelectedListener;
 import android.widget.ArrayAdapter;
 import android.widget.Button;
+import android.widget.CheckedTextView;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
 
+import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.account.AccountType.EditType;
-import com.android.contacts.common.model.dataitem.DataKind;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountType.EditType;
+import com.android.contacts.model.dataitem.DataKind;
 import com.android.contacts.util.DialogManager;
 import com.android.contacts.util.DialogManager.DialogShowingView;
 
@@ -69,7 +70,7 @@
 
     private Spinner mLabel;
     private EditTypeAdapter mEditTypeAdapter;
-    private View mDeleteContainer;
+    protected View mDeleteContainer;
     private ImageView mDelete;
 
     private DataKind mKind;
@@ -86,6 +87,7 @@
     private DialogManager mDialogManager = null;
     private EditorListener mListener;
     protected int mMinLineItemHeight;
+    private int mSelectedLabelIndex;
 
     /**
      * A marker in the spinner adapter of the currently selected custom type.
@@ -228,7 +230,7 @@
             mDeleteContainer.setVisibility(View.VISIBLE);
             mDelete.setEnabled(!mReadOnly && isEnabled());
         } else {
-            mDeleteContainer.setVisibility(View.GONE);
+            mDeleteContainer.setVisibility(View.INVISIBLE);
         }
     }
 
@@ -292,6 +294,7 @@
      */
     public void rebuildLabel() {
         mEditTypeAdapter = new EditTypeAdapter(getContext());
+        mEditTypeAdapter.setSelectedIndex(mSelectedLabelIndex);
         mLabel.setAdapter(mEditTypeAdapter);
         if (mEditTypeAdapter.hasCustomSelection()) {
             mLabel.setSelection(mEditTypeAdapter.getPosition(CUSTOM_SELECTION));
@@ -300,13 +303,13 @@
                             mEntry.getAsString(mType.customColumn),
                             getContext().getString(mKind.titleRes)));
         } else {
-            mLabel.setSelection(mEditTypeAdapter.getPosition(mType));
-            if (mType != null) {
+            if (mType != null && mType.labelRes > 0 && mKind.titleRes > 0) {
+                mLabel.setSelection(mEditTypeAdapter.getPosition(mType));
                 mDeleteContainer.setContentDescription(
                         getContext().getString(R.string.editor_delete_view_description,
                                 getContext().getString(mType.labelRes),
                                 getContext().getString(mKind.titleRes)));
-            } else {
+            } else if (mKind.titleRes > 0) {
                 mDeleteContainer.setContentDescription(
                         getContext().getString(R.string.editor_delete_view_description_short,
                                 getContext().getString(mKind.titleRes)));
@@ -406,12 +409,11 @@
         final boolean hasTypes = RawContactModifier.hasEditTypes(kind);
         setupLabelButton(hasTypes);
         mLabel.setEnabled(!readOnly && isEnabled());
-        mLabel.setContentDescription(getContext().getResources().getString(mKind.titleRes));
-
-        if (hasTypes) {
-            mType = RawContactModifier.getCurrentType(entry, kind);
-            rebuildLabel();
+        if (mKind.titleRes > 0) {
+            mLabel.setContentDescription(getContext().getResources().getString(mKind.titleRes));
         }
+        mType = RawContactModifier.getCurrentType(entry, kind);
+        rebuildLabel();
     }
 
     public ValuesDelta getValues() {
@@ -520,6 +522,7 @@
             // User picked type, and we're sure it's ok to actually write the entry.
             mType = selected;
             mEntry.put(mKind.typeColumn, mType.rawValue);
+            mSelectedLabelIndex = position;
             rebuildLabel();
             requestFocusForFirstEditField();
             onLabelRebuilt();
@@ -565,6 +568,7 @@
         private boolean mHasCustomSelection;
         private int mTextColorHintUnfocused;
         private int mTextColorDark;
+        private int mSelectedIndex;
 
         public EditTypeAdapter(Context context) {
             super(context, 0);
@@ -611,8 +615,11 @@
 
         @Override
         public View getDropDownView(int position, View convertView, ViewGroup parent) {
-            return createViewFromResource(
+            final CheckedTextView dropDownView = (CheckedTextView) createViewFromResource(
                     position, convertView, parent, android.R.layout.simple_spinner_dropdown_item);
+            dropDownView.setBackground(getContext().getDrawable(R.drawable.drawer_item_background));
+            dropDownView.setChecked(position == mSelectedIndex);
+            return dropDownView;
         }
 
         private TextView createViewFromResource(int position, View convertView, ViewGroup parent,
@@ -638,5 +645,9 @@
             textView.setText(text);
             return textView;
         }
+
+        public void setSelectedIndex(int selectedIndex) {
+            mSelectedIndex = selectedIndex;
+        }
     }
 }
diff --git a/src/com/android/contacts/editor/PhoneticNameEditorView.java b/src/com/android/contacts/editor/PhoneticNameEditorView.java
deleted file mode 100644
index 420575c..0000000
--- a/src/com/android/contacts/editor/PhoneticNameEditorView.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2010 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.editor;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.model.dataitem.StructuredNameDataItem;
-import com.android.contacts.common.util.NameConverter;
-
-/**
- * A dedicated editor for phonetic name. It is similar to {@link StructuredNameEditorView}.
- */
-public class PhoneticNameEditorView extends TextFieldsEditorView {
-
-    private static class PhoneticValuesDelta extends ValuesDelta {
-        private ValuesDelta mValues;
-        private String mPhoneticName;
-
-        public PhoneticValuesDelta(ValuesDelta values) {
-            mValues = values;
-            buildPhoneticName();
-        }
-
-        @Override
-        public void put(String key, String value) {
-            if (key.equals(DataKind.PSEUDO_COLUMN_PHONETIC_NAME)) {
-                mPhoneticName = value;
-                parsePhoneticName(value);
-            } else {
-                mValues.put(key, value);
-                buildPhoneticName();
-            }
-        }
-
-        @Override
-        public String getAsString(String key) {
-            if (key.equals(DataKind.PSEUDO_COLUMN_PHONETIC_NAME)) {
-                return mPhoneticName;
-            } else {
-                return mValues.getAsString(key);
-            }
-        }
-
-        private void parsePhoneticName(String value) {
-            StructuredNameDataItem dataItem = NameConverter.parsePhoneticName(value, null);
-            mValues.setPhoneticFamilyName(dataItem.getPhoneticFamilyName());
-            mValues.setPhoneticMiddleName(dataItem.getPhoneticMiddleName());
-            mValues.setPhoneticGivenName(dataItem.getPhoneticGivenName());
-        }
-
-        private void buildPhoneticName() {
-            String family = mValues.getPhoneticFamilyName();
-            String middle = mValues.getPhoneticMiddleName();
-            String given = mValues.getPhoneticGivenName();
-            mPhoneticName = NameConverter.buildPhoneticName(family, middle, given);
-        }
-
-        @Override
-        public Long getId() {
-            return mValues.getId();
-        }
-
-        @Override
-        public boolean isVisible() {
-            return mValues.isVisible();
-        }
-    }
-
-    public static boolean isUnstructuredPhoneticNameColumn(String column) {
-        return DataKind.PSEUDO_COLUMN_PHONETIC_NAME.equals(column);
-    }
-
-    public PhoneticNameEditorView(Context context) {
-        super(context);
-    }
-
-    public PhoneticNameEditorView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public PhoneticNameEditorView(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-    }
-
-    @Override
-    public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
-            ViewIdGenerator vig) {
-        if (!(entry instanceof PhoneticValuesDelta)) {
-            entry = new PhoneticValuesDelta(entry);
-        }
-        super.setValues(kind, entry, state, readOnly, vig);
-        updateEmptiness();
-    }
-
-    @Override
-    public void onFieldChanged(String column, String value) {
-        if (!isFieldChanged(column, value)) {
-            return;
-        }
-
-        if (hasShortAndLongForms()) {
-            PhoneticValuesDelta entry = (PhoneticValuesDelta) getEntry();
-
-            // Determine whether the user is modifying the structured or unstructured phonetic
-            // name field. See a similar approach in {@link StructuredNameEditor#onFieldChanged}.
-            // This is because on device rotation, a hidden TextView's onRestoreInstanceState() will
-            // be called and incorrectly restore a null value for the hidden field, which ultimately
-            // modifies the underlying phonetic name. Hence, ignore onFieldChanged() update requests
-            // from fields that aren't visible.
-            boolean isEditingUnstructuredPhoneticName = !areOptionalFieldsVisible();
-
-            if (isEditingUnstructuredPhoneticName == isUnstructuredPhoneticNameColumn(column)) {
-                // Call into the superclass to update the field and rebuild the underlying
-                // phonetic name.
-                super.onFieldChanged(column, value);
-            }
-        } else {
-            // All fields are always visible, so we don't have to worry about blocking updates
-            // from onRestoreInstanceState() from hidden fields. Always call into the superclass
-            // to update the field and rebuild the underlying phonetic name.
-            super.onFieldChanged(column, value);
-        }
-    }
-
-    public boolean hasData() {
-        ValuesDelta entry = getEntry();
-
-        String family = entry.getPhoneticFamilyName();
-        String middle = entry.getPhoneticMiddleName();
-        String given = entry.getPhoneticGivenName();
-
-        return !TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle)
-                || !TextUtils.isEmpty(given);
-    }
-}
diff --git a/src/com/android/contacts/editor/PhotoEditorView.java b/src/com/android/contacts/editor/PhotoEditorView.java
index f69c935..09ba797 100644
--- a/src/com/android/contacts/editor/PhotoEditorView.java
+++ b/src/com/android/contacts/editor/PhotoEditorView.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009 The Android Open Source Project
+ * Copyright (C) 2015 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.
@@ -18,258 +18,203 @@
 
 import android.content.Context;
 import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
 import android.net.Uri;
-import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.DisplayPhoto;
+import android.provider.ContactsContract;
 import android.util.AttributeSet;
+import android.util.TypedValue;
 import android.view.View;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.RadioButton;
+import android.view.ViewGroup;
+import android.widget.RelativeLayout;
 
+import com.android.contacts.ContactPhotoManager;
 import com.android.contacts.R;
-import com.android.contacts.common.ContactPhotoManager.DefaultImageProvider;
-import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.util.ContactPhotoUtils;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.contacts.util.SchedulingUtils;
+import com.android.contacts.widget.QuickContactImageView;
 
 /**
- * Simple editor for {@link Photo}.
+ * Displays a photo and calls the host back when the user clicks it.
  */
-public class PhotoEditorView extends LinearLayout implements Editor {
+public class PhotoEditorView extends RelativeLayout implements View.OnClickListener {
 
-    private ImageView mPhotoImageView;
-    private Button mChangeButton;
-    private RadioButton mPrimaryCheckBox;
+    /**
+     * Callbacks for the host of this view.
+     */
+    public interface Listener {
 
-    private ValuesDelta mEntry;
-    private EditorListener mListener;
-    private ContactPhotoManager mContactPhotoManager;
+        /**
+         * Invoked when the user wants to change their photo.
+         */
+        void onPhotoEditorViewClicked();
+    }
 
-    private boolean mHasSetPhoto = false;
+    private Listener mListener;
+
+    private final float mLandscapePhotoRatio;
+    private final float mPortraitPhotoRatio;
+    private final boolean mIsTwoPanel;
+
+    private QuickContactImageView mPhotoImageView;
+    private View mPhotoIcon;
+    private View mPhotoIconOverlay;
+    private View mPhotoTouchInterceptOverlay;
+    private MaterialPalette mMaterialPalette;
+
+    private boolean mReadOnly;
+    private boolean mIsNonDefaultPhotoBound;
 
     public PhotoEditorView(Context context) {
-        super(context);
+        this(context, null);
     }
 
     public PhotoEditorView(Context context, AttributeSet attrs) {
         super(context, attrs);
+
+        mLandscapePhotoRatio = getTypedFloat(R.dimen.quickcontact_landscape_photo_ratio);
+        mPortraitPhotoRatio = getTypedFloat(R.dimen.editor_portrait_photo_ratio);
+        mIsTwoPanel = getResources().getBoolean(R.bool.contacteditor_two_panel);
     }
 
-    @Override
-    public void setEnabled(boolean enabled) {
-        super.setEnabled(enabled);
+    private float getTypedFloat(int resourceId) {
+        final TypedValue typedValue = new TypedValue();
+        getResources().getValue(resourceId, typedValue, /* resolveRefs =*/ true);
+        return typedValue.getFloat();
     }
 
     @Override
-    public void editNewlyAddedField() {
-        // Never called, since the user never adds a new photo-editor;
-        // you can only change the picture in an existing editor.
-    }
-
-    /** {@inheritDoc} */
-    @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
-        mContactPhotoManager = ContactPhotoManager.getInstance(getContext());
-        mPhotoImageView = (ImageView) findViewById(R.id.photo);
-        mPrimaryCheckBox = (RadioButton) findViewById(R.id.primary_checkbox);
-        mChangeButton = (Button) findViewById(R.id.change_button);
-        mPrimaryCheckBox = (RadioButton) findViewById(R.id.primary_checkbox);
-        if (mChangeButton != null) {
-            mChangeButton.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    if (mListener != null) {
-                        mListener.onRequest(EditorListener.REQUEST_PICK_PHOTO);
-                    }
-                }
-            });
+        mPhotoImageView = (QuickContactImageView) findViewById(R.id.photo);
+        mPhotoIcon = findViewById(R.id.photo_icon);
+        mPhotoIconOverlay = findViewById(R.id.photo_icon_overlay);
+        mPhotoTouchInterceptOverlay = findViewById(R.id.photo_touch_intercept_overlay);
+
+    }
+
+    public void setListener(Listener listener) {
+        mListener = listener;
+    }
+
+    public void setReadOnly(boolean readOnly) {
+        mReadOnly = readOnly;
+        if (mReadOnly) {
+            mPhotoIcon.setVisibility(View.GONE);
+            mPhotoIconOverlay.setVisibility(View.GONE);
+            mPhotoTouchInterceptOverlay.setClickable(false);
+            mPhotoTouchInterceptOverlay.setContentDescription(getContext().getString(
+                    R.string.editor_contact_photo_content_description));
+        } else {
+            mPhotoIcon.setVisibility(View.VISIBLE);
+            mPhotoIconOverlay.setVisibility(View.VISIBLE);
+            mPhotoTouchInterceptOverlay.setOnClickListener(this);
+            updatePhotoDescription();
         }
-        // Turn off own state management. We do this ourselves on rotation.
-        mPrimaryCheckBox.setSaveEnabled(false);
-        mPrimaryCheckBox.setOnClickListener(new OnClickListener() {
+    }
+
+    public void setPalette(MaterialPalette palette) {
+        mMaterialPalette = palette;
+    }
+
+    /**
+     * Tries to bind a full size photo or a bitmap loaded from the given ValuesDelta,
+     * and falls back to the default avatar, tinted using the given MaterialPalette (if it's not
+     * null);
+     */
+    public void setPhoto(ValuesDelta valuesDelta) {
+        // Check if we can update to the full size photo immediately
+        final Long photoFileId = EditorUiUtils.getPhotoFileId(valuesDelta);
+        if (photoFileId != null) {
+            final Uri photoUri = ContactsContract.DisplayPhoto.CONTENT_URI.buildUpon()
+                    .appendPath(photoFileId.toString()).build();
+            setFullSizedPhoto(photoUri);
+            adjustDimensions();
+            return;
+        }
+
+        // Use the bitmap image from the values delta
+        final Bitmap bitmap = EditorUiUtils.getPhotoBitmap(valuesDelta);
+        if (bitmap != null) {
+            setPhoto(bitmap);
+            adjustDimensions();
+            return;
+        }
+
+        setDefaultPhoto(mMaterialPalette);
+        adjustDimensions();
+    }
+
+    private void adjustDimensions() {
+        // Follow the same logic as MultiShrinkScroll.initialize
+        SchedulingUtils.doOnPreDraw(this, /* drawNextFrame =*/ false, new Runnable() {
             @Override
-            public void onClick(View v) {
-                if (mListener != null) {
-                    mListener.onRequest(EditorListener.REQUEST_PICK_PRIMARY_PHOTO);
+            public void run() {
+                final int photoHeight, photoWidth;
+                if (mIsTwoPanel) {
+                    photoHeight = getHeight();
+                    photoWidth = (int) (photoHeight * mLandscapePhotoRatio);
+                } else {
+                    // Make the photo slightly shorter that it is wide
+                    photoWidth = getWidth();
+                    photoHeight = (int) (photoWidth / mPortraitPhotoRatio);
                 }
+                final ViewGroup.LayoutParams layoutParams = getLayoutParams();
+                layoutParams.height = photoHeight;
+                layoutParams.width = photoWidth;
+                setLayoutParams(layoutParams);
             }
         });
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public void onFieldChanged(String column, String value) {
-        throw new UnsupportedOperationException("Photos don't support direct field changes");
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setValues(DataKind kind, ValuesDelta values, RawContactDelta state, boolean readOnly,
-            ViewIdGenerator vig) {
-        mEntry = values;
-
-        setId(vig.getId(state, kind, values, 0));
-
-        mPrimaryCheckBox.setChecked(values != null && values.isSuperPrimary());
-
-        if (values != null) {
-            // Try decoding photo if actual entry
-            final byte[] photoBytes = values.getAsByteArray(Photo.PHOTO);
-            if (photoBytes != null) {
-                final Bitmap photo = BitmapFactory.decodeByteArray(photoBytes, 0,
-                        photoBytes.length);
-
-                mPhotoImageView.setImageBitmap(photo);
-                mHasSetPhoto = true;
-                mEntry.setFromTemplate(false);
-
-                if (values.getAfter() == null || values.getAfter().get(Photo.PHOTO) == null) {
-                    // If the user hasn't updated the PHOTO value, then PHOTO_FILE_ID may contain
-                    // a reference to a larger version of PHOTO that we can bind to the UI.
-                    // Otherwise, we need to wait for a call to #setFullSizedPhoto() to update
-                    // our full sized image.
-                    final Integer photoFileId = values.getAsInteger(Photo.PHOTO_FILE_ID);
-                    if (photoFileId != null) {
-                        final Uri photoUri = DisplayPhoto.CONTENT_URI.buildUpon()
-                                .appendPath(photoFileId.toString()).build();
-                        setFullSizedPhoto(photoUri);
-                    }
-                }
-
-            } else {
-                resetDefault();
-            }
-        } else {
-            resetDefault();
-        }
-    }
-
     /**
-     * Whether to display a "Primary photo" RadioButton. This is only needed if there are multiple
-     * candidate photos.
+     * Whether a removable, non-default photo is bound to this view.
      */
-    public void setShowPrimary(boolean showPrimaryCheckBox) {
-        mPrimaryCheckBox.setVisibility(showPrimaryCheckBox ? View.VISIBLE : View.GONE);
+    public boolean isWritablePhotoSet() {
+        return !mReadOnly && mIsNonDefaultPhotoBound;
     }
 
     /**
-     * Return true if a valid {@link Photo} has been set.
+     * Binds the given bitmap.
      */
-    public boolean hasSetPhoto() {
-        return mHasSetPhoto;
+    private void setPhoto(Bitmap bitmap) {
+        mPhotoImageView.setImageBitmap(bitmap);
+        mIsNonDefaultPhotoBound = true;
+        updatePhotoDescription();
     }
 
-    /**
-     * Assign the given {@link Bitmap} as the new value for the sake of building
-     * {@link ValuesDelta}. We may as well bind a thumbnail to the UI while we are at it.
-     */
-    public void setPhotoEntry(Bitmap photo) {
-        if (photo == null) {
-            // Clear any existing photo and return
-            mEntry.put(Photo.PHOTO, (byte[])null);
-            resetDefault();
-            return;
-        }
-
-        final int size = ContactsUtils.getThumbnailSize(getContext());
-        final Bitmap scaled = Bitmap.createScaledBitmap(photo, size, size, false);
-
-        mPhotoImageView.setImageBitmap(scaled);
-        mHasSetPhoto = true;
-        mEntry.setFromTemplate(false);
-
-        // When the user chooses a new photo mark it as super primary
-        mEntry.setSuperPrimary(true);
-
-        // Even though high-res photos cannot be saved by passing them via
-        // an EntityDeltaList (since they cause the Bundle size limit to be
-        // exceeded), we still pass a low-res thumbnail. This simplifies
-        // code all over the place, because we don't have to test whether
-        // there is a change in EITHER the delta-list OR a changed photo...
-        // this way, there is always a change in the delta-list.
-        final byte[] compressed = ContactPhotoUtils.compressBitmap(scaled);
-        if (compressed != null) {
-            mEntry.setPhoto(compressed);
-        }
+    private void setDefaultPhoto(MaterialPalette materialPalette) {
+        mIsNonDefaultPhotoBound = false;
+        updatePhotoDescription();
+        EditorUiUtils.setDefaultPhoto(mPhotoImageView, getResources(), materialPalette);
     }
 
+    private void updatePhotoDescription() {
+        mPhotoTouchInterceptOverlay.setContentDescription(getContext().getString(
+                mIsNonDefaultPhotoBound
+                        ? R.string.editor_change_photo_content_description
+                        : R.string.editor_add_photo_content_description));
+    }
     /**
-     * Bind the {@param photoUri}'s photo to editor's UI. This doesn't affect {@link ValuesDelta}.
+     * Binds a full size photo loaded from the given Uri.
      */
     public void setFullSizedPhoto(Uri photoUri) {
-        if (photoUri != null) {
-            final DefaultImageProvider fallbackToPreviousImage = new DefaultImageProvider() {
-                @Override
-                public void applyDefaultImage(ImageView view, int extent, boolean darkTheme,
-                        DefaultImageRequest defaultImageRequest) {
-                    // Before we finish setting the full sized image, don't change the current
-                    // image that is set in any way.
-                }
-            };
-            mContactPhotoManager.loadPhoto(mPhotoImageView, photoUri,
-                    mPhotoImageView.getWidth(), /* darkTheme = */ false, /* isCircular = */ false,
-                    /* defaultImageRequest = */ null, fallbackToPreviousImage);
+        EditorUiUtils.loadPhoto(ContactPhotoManager.getInstance(getContext()),
+                mPhotoImageView, photoUri);
+        mIsNonDefaultPhotoBound = true;
+        updatePhotoDescription();
+    }
+
+    /**
+     * Removes the current bound photo bitmap.
+     */
+    public void removePhoto() {
+        setDefaultPhoto(mMaterialPalette);
+    }
+
+    @Override
+    public void onClick(View view) {
+        if (mListener != null) {
+            mListener.onPhotoEditorViewClicked();
         }
     }
-
-    /**
-     * Set the super primary bit on the photo.
-     */
-    public void setSuperPrimary(boolean superPrimary) {
-        mEntry.put(Photo.IS_SUPER_PRIMARY, superPrimary ? 1 : 0);
-    }
-
-    protected void resetDefault() {
-        // Invalid photo, show default "add photo" place-holder
-        mPhotoImageView.setImageDrawable(
-                ContactPhotoManager.getDefaultAvatarDrawableForContact(getResources(), false, null));
-        mHasSetPhoto = false;
-        mEntry.setFromTemplate(true);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setEditorListener(EditorListener listener) {
-        mListener = listener;
-    }
-
-    @Override
-    public void setDeletable(boolean deletable) {
-        // Photo is not deletable
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return !mHasSetPhoto;
-    }
-
-    @Override
-    public void markDeleted() {
-        // Photo is not deletable
-    }
-
-    @Override
-    public void deleteEditor() {
-        // Photo is not deletable
-    }
-
-    @Override
-    public void clearAllFields() {
-        resetDefault();
-    }
-
-    /**
-     * The change drop down menu should be anchored to this view.
-     */
-    public View getChangeAnchorView() {
-        return mChangeButton;
-    }
 }
diff --git a/src/com/android/contacts/editor/PhotoSourceDialogFragment.java b/src/com/android/contacts/editor/PhotoSourceDialogFragment.java
index 4b502e5..31d41b1 100644
--- a/src/com/android/contacts/editor/PhotoSourceDialogFragment.java
+++ b/src/com/android/contacts/editor/PhotoSourceDialogFragment.java
@@ -16,16 +16,18 @@
 
 package com.android.contacts.editor;
 
-import com.android.contacts.R;
-import com.android.contacts.editor.PhotoActionPopup.ChoiceListItem;
-
 import android.app.Activity;
-import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.DialogFragment;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnClickListener;
 import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.editor.PhotoActionPopup.ChoiceListItem;
 
 import java.util.ArrayList;
 
@@ -91,8 +93,10 @@
         };
 
         // Build the AlertDialog
+        final TextView title = (TextView) View.inflate(getActivity(), R.layout.dialog_title, null);
+        title.setText(R.string.menu_change_photo);
         final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
-        builder.setTitle(R.string.menu_change_photo);
+        builder.setCustomTitle(title);
         builder.setItems(items, clickListener);
         builder.setNegativeButton(android.R.string.cancel, /* listener =*/ null);
         return builder.create();
diff --git a/src/com/android/contacts/editor/PickRawContactDialogFragment.java b/src/com/android/contacts/editor/PickRawContactDialogFragment.java
new file mode 100644
index 0000000..5a9c9fd
--- /dev/null
+++ b/src/com/android/contacts/editor/PickRawContactDialogFragment.java
@@ -0,0 +1,246 @@
+package com.android.contacts.editor;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.ListAdapter;
+import android.widget.TextView;
+
+import com.android.contacts.ContactPhotoManager;
+import com.android.contacts.R;
+import com.android.contacts.activities.ContactSelectionActivity;
+import com.android.contacts.editor.PickRawContactLoader.RawContact;
+import com.android.contacts.editor.PickRawContactLoader.RawContactsMetadata;
+import com.android.contacts.list.UiIntentActions;
+import com.android.contacts.logging.EditorEvent;
+import com.android.contacts.logging.Logger;
+import com.android.contacts.model.AccountTypeManager;
+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;
+import com.android.contacts.model.account.GoogleAccountType;
+import com.android.contacts.preference.ContactsPreferences;
+
+/**
+ * Should only be started from an activity that implements {@link PickRawContactListener}.
+ * Dialog containing the raw contacts that make up a contact. On selection the editor is loaded
+ * for the chosen raw contact.
+ */
+public class PickRawContactDialogFragment extends DialogFragment {
+    private static final String ARGS_RAW_CONTACTS_METADATA = "rawContactsMetadata";
+    private static final int REQUEST_CODE_JOIN = 3;
+
+    public interface PickRawContactListener {
+        void onPickRawContact(long rawContactId);
+    }
+
+    /**
+     * Used to list the account info for the given raw contacts list.
+     */
+    private final class RawContactAccountListAdapter extends BaseAdapter {
+        private final LayoutInflater mInflater;
+        private final Context mContext;
+        private final RawContactsMetadata mRawContactsMetadata;
+        private final AccountTypeManager mAccountTypeManager;
+        private final ContactsPreferences mPreferences;
+
+        public RawContactAccountListAdapter(Context context,
+                RawContactsMetadata rawContactsMetadata) {
+            mContext = context;
+            mInflater = LayoutInflater.from(context);
+            mAccountTypeManager = AccountTypeManager.getInstance(context);
+            mPreferences = new ContactsPreferences(context);
+            mRawContactsMetadata = rawContactsMetadata;
+        }
+
+        @Override
+        public int getCount() {
+            return mRawContactsMetadata.rawContacts.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mRawContactsMetadata.rawContacts.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return mRawContactsMetadata.rawContacts.get(position).id;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final View view;
+            final RawContactViewHolder holder;
+            if (convertView == null) {
+                view = mInflater.inflate(R.layout.raw_contact_list_item, parent, false);
+                holder = new RawContactViewHolder();
+                holder.displayName = (TextView) view.findViewById(R.id.display_name);
+                holder.accountName = (TextView) view.findViewById(R.id.account_name);
+                holder.accountIcon = (ImageView) view.findViewById(R.id.account_icon);
+                holder.photo = (ImageView) view.findViewById(R.id.photo);
+                view.setTag(holder);
+            } else {
+                view = convertView;
+                holder = (RawContactViewHolder) view.getTag();
+            }
+            final RawContact rawContact = mRawContactsMetadata.rawContacts.get(position);
+            final AccountType account = mAccountTypeManager.getAccountType(rawContact.accountType,
+                    rawContact.accountDataSet);
+
+            String displayName =
+                    mPreferences.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY
+                            ? rawContact.displayName : rawContact.displayNameAlt;
+
+            if (TextUtils.isEmpty(displayName)) {
+                displayName = mContext.getString(R.string.missing_name);
+            }
+            holder.displayName.setText(displayName);
+
+            final String accountDisplayLabel;
+
+            // Use the same string as editor if it's an editable user profile raw contact.
+            if (mRawContactsMetadata.isUserProfile && account.areContactsWritable()) {
+                final AccountInfo accountInfo =
+                        AccountTypeManager.getInstance(getContext()).getAccountInfoForAccount(
+                                new AccountWithDataSet(rawContact.accountName,
+                                        rawContact.accountType, rawContact.accountDataSet));
+                accountDisplayLabel = EditorUiUtils.getAccountHeaderLabelForMyProfile(mContext,
+                        accountInfo);
+            } else if (GoogleAccountType.ACCOUNT_TYPE.equals(rawContact.accountType)
+                    && account.dataSet == null) {
+                // Focus Google accounts have the account name shown
+                accountDisplayLabel = rawContact.accountName;
+            } else {
+                accountDisplayLabel = account.getDisplayLabel(mContext).toString();
+            }
+
+            holder.accountName.setText(accountDisplayLabel);
+            holder.accountIcon.setImageDrawable(account.getDisplayIcon(mContext));
+            final ContactPhotoManager.DefaultImageRequest
+                    request = new ContactPhotoManager.DefaultImageRequest(
+                    displayName, String.valueOf(rawContact.id), /* isCircular = */ true);
+
+            ContactPhotoManager.getInstance(mContext).loadThumbnail(holder.photo,
+                    rawContact.photoId,
+                    /* darkTheme = */ false,
+                    /* isCircular = */ true,
+                    request);
+            return view;
+        }
+
+        class RawContactViewHolder {
+            TextView displayName;
+            TextView accountName;
+            ImageView accountIcon;
+            ImageView photo;
+        }
+    }
+
+    private ListAdapter mAdapter;
+    private boolean mShouldFinishActivity = true;
+
+    public static PickRawContactDialogFragment getInstance(RawContactsMetadata metadata) {
+        final PickRawContactDialogFragment fragment = new PickRawContactDialogFragment();
+        final Bundle args = new Bundle();
+        args.putParcelable(ARGS_RAW_CONTACTS_METADATA, metadata);
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        if (!(getActivity() instanceof PickRawContactListener)) {
+            throw new IllegalArgumentException(
+                    "Host activity doesn't implement PickRawContactListener");
+        }
+        final Bundle args = getArguments();
+        if (args == null) {
+            throw new IllegalArgumentException("Dialog created with no arguments");
+        }
+
+        final RawContactsMetadata metadata = args.getParcelable(ARGS_RAW_CONTACTS_METADATA);
+        if (metadata == null) {
+            throw new IllegalArgumentException("Dialog created with null RawContactsMetadata");
+        }
+
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        mAdapter = new RawContactAccountListAdapter(getContext(), metadata);
+        if (metadata.showReadOnly) {
+            builder.setTitle(R.string.contact_editor_pick_linked_contact_dialog_title);
+            // Only provide link editing options for non-user profile contacts.
+            if (!metadata.isUserProfile) {
+                builder.setPositiveButton(R.string.contact_editor_add_linked_contact,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                mShouldFinishActivity = false;
+                                final Intent intent = new Intent(getActivity(),
+                                        ContactSelectionActivity.class);
+                                intent.setAction(UiIntentActions.PICK_JOIN_CONTACT_ACTION);
+                                intent.putExtra(UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY,
+                                        metadata.contactId);
+                                getActivity().startActivityForResult(intent, REQUEST_CODE_JOIN);
+                            }
+                        });
+                builder.setNegativeButton(R.string.contact_editor_unlink_contacts,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                mShouldFinishActivity = false;
+                                final SplitContactConfirmationDialogFragment splitDialog = new
+                                        SplitContactConfirmationDialogFragment();
+                                splitDialog.show(getActivity().getFragmentManager(),
+                                        SplitContactConfirmationDialogFragment.TAG);
+                            }
+                        });
+            }
+        } else {
+            builder.setTitle(R.string.contact_editor_pick_raw_contact_to_edit_dialog_title);
+        }
+        builder.setAdapter(mAdapter, new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                final long rawContactId = mAdapter.getItemId(which);
+                ((PickRawContactListener) getActivity()).onPickRawContact(rawContactId);
+            }
+        });
+        builder.setCancelable(true);
+        if (savedInstanceState == null) {
+            Logger.logEditorEvent(EditorEvent.EventType.SHOW_RAW_CONTACT_PICKER,
+                    /* numberRawContacts */ mAdapter.getCount());
+        }
+        return builder.create();
+    }
+
+    @Override
+    public void onDismiss(DialogInterface dialog) {
+        super.onDismiss(dialog);
+        if (mShouldFinishActivity) {
+            finishActivity();
+        }
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+
+    private void finishActivity() {
+        if (getActivity() != null && !getActivity().isFinishing()) {
+            getActivity().finish();
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/PickRawContactLoader.java b/src/com/android/contacts/editor/PickRawContactLoader.java
new file mode 100644
index 0000000..e43d02b
--- /dev/null
+++ b/src/com/android/contacts/editor/PickRawContactLoader.java
@@ -0,0 +1,310 @@
+package com.android.contacts.editor;
+
+import android.content.AsyncTaskLoader;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Profile;
+import android.provider.ContactsContract.RawContacts;
+
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Loader for the pick a raw contact to edit activity. Loads all raw contact metadata for the
+ * given Contact {@link Uri}.
+ */
+public class PickRawContactLoader extends
+        AsyncTaskLoader<PickRawContactLoader.RawContactsMetadata> {
+    private Uri mContactUri;
+    private RawContactsMetadata mCachedResult;
+
+    private static final String[] RAW_CONTACT_PROJECTION = new String[] {
+            RawContacts.ACCOUNT_NAME,
+            RawContacts.ACCOUNT_TYPE,
+            RawContacts.DATA_SET,
+            RawContacts._ID,
+            RawContacts.DISPLAY_NAME_PRIMARY,
+            RawContacts.DISPLAY_NAME_ALTERNATIVE
+    };
+
+    private static final String RAW_CONTACT_SELECTION = RawContacts.CONTACT_ID + "=?";
+
+    private static final int ACCOUNT_NAME = 0;
+    private static final int ACCOUNT_TYPE = 1;
+    private static final int DATA_SET = 2;
+    private static final int RAW_CONTACT_ID = 3;
+    private static final int DISPLAY_NAME_PRIMARY = 4;
+    private static final int DISPLAY_NAME_ALTERNATIVE = 5;
+
+    private static final String PHOTO_SELECTION_PREFIX =
+            ContactsContract.Data.RAW_CONTACT_ID + " IN (";
+    private static final String PHOTO_SELECTION_SUFFIX = ") AND " + ContactsContract.Data.MIMETYPE
+            + "=\"" + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + "\"";
+
+    public PickRawContactLoader(Context context, Uri contactUri) {
+        super(context);
+        mContactUri = ensureIsContactUri(contactUri);
+    }
+
+    @Override
+    public RawContactsMetadata loadInBackground() {
+        final ContentResolver resolver = getContext().getContentResolver();
+        // Get the id of the contact we're looking at.
+        final Cursor contactCursor = resolver.query(
+                mContactUri, new String[] {Contacts._ID, Contacts.IS_USER_PROFILE}, null,
+                null, null);
+
+        if (contactCursor == null) {
+            return null;
+        }
+
+        if (contactCursor.getCount() < 1) {
+            contactCursor.close();
+            return null;
+        }
+
+        final RawContactsMetadata result = new RawContactsMetadata();
+        try {
+            contactCursor.moveToFirst();
+            result.contactId = contactCursor.getLong(/* Contacts._ID */ 0);
+            result.isUserProfile = contactCursor.getInt(/* Contacts.IS_USER_PROFILE */ 1) == 1;
+        } finally {
+            contactCursor.close();
+        }
+
+        // Load RawContact data
+        final Uri rawContactUri;
+        if (result.isUserProfile) {
+            rawContactUri = ContactsContract.Profile.CONTENT_RAW_CONTACTS_URI;
+        } else {
+            rawContactUri = RawContacts.CONTENT_URI;
+        }
+
+        final Cursor rawContactCursor = resolver.query(
+                rawContactUri, RAW_CONTACT_PROJECTION, RAW_CONTACT_SELECTION,
+                new String[] {Long.toString(result.contactId)}, null);
+
+        if (rawContactCursor == null) {
+            return null;
+        }
+
+        if (rawContactCursor.getCount() < 1) {
+            rawContactCursor.close();
+            return null;
+        }
+
+        rawContactCursor.moveToPosition(-1);
+        final StringBuilder photoSelection = new StringBuilder(PHOTO_SELECTION_PREFIX);
+        final Map<Long, RawContact> rawContactMap = new HashMap<>();
+        try {
+            while (rawContactCursor.moveToNext()) {
+                RawContact rawContact = new RawContact();
+                rawContact.id = rawContactCursor.getLong(RAW_CONTACT_ID);
+                photoSelection.append(rawContact.id).append(',');
+                rawContact.displayName = rawContactCursor.getString(DISPLAY_NAME_PRIMARY);
+                rawContact.displayNameAlt = rawContactCursor.getString(DISPLAY_NAME_ALTERNATIVE);
+                rawContact.accountName = rawContactCursor.getString(ACCOUNT_NAME);
+                rawContact.accountType = rawContactCursor.getString(ACCOUNT_TYPE);
+                rawContact.accountDataSet = rawContactCursor.getString(DATA_SET);
+                result.rawContacts.add(rawContact);
+                rawContactMap.put(rawContact.id, rawContact);
+            }
+        } finally {
+            rawContactCursor.close();
+        }
+
+        // Remove the last ','
+        if (photoSelection.length() > 0) {
+            photoSelection.deleteCharAt(photoSelection.length() - 1);
+        }
+        photoSelection.append(PHOTO_SELECTION_SUFFIX);
+
+        final Uri dataUri = result.isUserProfile
+                ? Uri.withAppendedPath(Profile.CONTENT_URI, Data.CONTENT_URI.getPath())
+                : Data.CONTENT_URI;
+        final Cursor photoCursor = resolver.query(
+                dataUri,
+                new String[] {Data.RAW_CONTACT_ID, Contacts.Photo._ID},
+                photoSelection.toString(), null, null);
+
+        if (photoCursor != null) {
+            try {
+                photoCursor.moveToPosition(-1);
+                while (photoCursor.moveToNext()) {
+                    final long rawContactId = photoCursor.getLong(/* Data.RAW_CONTACT_ID */ 0);
+                    rawContactMap.get(rawContactId).photoId =
+                            photoCursor.getLong(/* PHOTO._ID */ 1);
+                }
+            } finally {
+                photoCursor.close();
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public void deliverResult(RawContactsMetadata data) {
+        mCachedResult = data;
+        if (isStarted()) {
+            super.deliverResult(data);
+        }
+    }
+
+    @Override
+    protected void onStartLoading() {
+        super.onStartLoading();
+        if (mCachedResult == null) {
+            forceLoad();
+        } else {
+            deliverResult(mCachedResult);
+        }
+    }
+
+    /**
+     * Ensures that this is a valid contact URI. If invalid, then an exception is
+     * thrown. Otherwise, the original URI is returned.
+     */
+    private static Uri ensureIsContactUri(final Uri uri) {
+        if (uri == null) {
+            throw new IllegalArgumentException("Uri must not be null");
+        }
+        if (!uri.toString().startsWith(Contacts.CONTENT_URI.toString())) {
+            throw new IllegalArgumentException("Invalid contact Uri: " + uri);
+        }
+        return uri;
+    }
+
+    public static class RawContactsMetadata implements Parcelable {
+        public static final Parcelable.Creator<RawContactsMetadata> CREATOR =
+                new Parcelable.Creator<RawContactsMetadata>() {
+                    @Override
+                    public RawContactsMetadata createFromParcel(Parcel source) {
+                        return new RawContactsMetadata(source);
+                    }
+
+                    @Override
+                    public RawContactsMetadata[] newArray(int size) {
+                        return new RawContactsMetadata[size];
+                    }
+                };
+
+        public long contactId;
+        public boolean isUserProfile;
+        public boolean showReadOnly = false;
+        public ArrayList<RawContact> rawContacts = new ArrayList<>();
+
+        public RawContactsMetadata() {}
+
+        private RawContactsMetadata(Parcel in) {
+            contactId = in.readLong();
+            isUserProfile = in.readInt() == 1;
+            showReadOnly = in.readInt() == 1;
+            in.readTypedList(rawContacts, RawContact.CREATOR);
+        }
+
+        /**
+         * Removes all read-only raw contacts.
+         */
+        public void trimReadOnly(AccountTypeManager accountManager) {
+            for (int i = rawContacts.size() - 1; i >= 0 ; i--) {
+                final RawContact rawContact = rawContacts.get(i);
+                final AccountType account = accountManager.getAccountType(
+                        rawContact.accountType, rawContact.accountDataSet);
+                if (!account.areContactsWritable()) {
+                    rawContacts.remove(i);
+                }
+            }
+        }
+
+        /**
+         * Returns the index of the first writable account in this contact or -1 if none exist.
+         */
+        public int getIndexOfFirstWritableAccount(AccountTypeManager accountManager) {
+            for (int i = 0; i < rawContacts.size(); i++) {
+                final RawContact rawContact = rawContacts.get(i);
+                final AccountType account = accountManager.getAccountType(
+                        rawContact.accountType, rawContact.accountDataSet);
+                if (account.areContactsWritable()) {
+                    return i;
+                }
+            }
+
+            return -1;
+        }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeLong(contactId);
+            dest.writeInt(isUserProfile ? 1 : 0);
+            dest.writeInt(showReadOnly ? 1 : 0);
+            dest.writeTypedList(rawContacts);
+        }
+    }
+
+    public static class RawContact implements Parcelable {
+        public static final Parcelable.Creator<RawContact> CREATOR =
+                new Parcelable.Creator<RawContact>() {
+                    @Override
+                    public RawContact createFromParcel(Parcel source) {
+                        return new RawContact(source);
+                    }
+
+                    @Override
+                    public RawContact[] newArray(int size) {
+                        return new RawContact[size];
+                    }
+                };
+
+        public long id;
+        public long photoId;
+        public String displayName;
+        public String displayNameAlt;
+        public String accountName;
+        public String accountType;
+        public String accountDataSet;
+
+        public RawContact() {}
+
+        private RawContact(Parcel in) {
+            id = in.readLong();
+            photoId = in.readLong();
+            displayName = in.readString();
+            displayNameAlt = in.readString();
+            accountName = in.readString();
+            accountType = in.readString();
+            accountDataSet = in.readString();
+        }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeLong(id);
+            dest.writeLong(photoId);
+            dest.writeString(displayName);
+            dest.writeString(displayNameAlt);
+            dest.writeString(accountName);
+            dest.writeString(accountType);
+            dest.writeString(accountDataSet);
+        }
+    }
+}
diff --git a/src/com/android/contacts/editor/RawContactDeltaComparator.java b/src/com/android/contacts/editor/RawContactDeltaComparator.java
index 1a00c9d..8b410aa 100644
--- a/src/com/android/contacts/editor/RawContactDeltaComparator.java
+++ b/src/com/android/contacts/editor/RawContactDeltaComparator.java
@@ -16,14 +16,14 @@
 
 package com.android.contacts.editor;
 
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.GoogleAccountType;
-
 import android.content.Context;
 import android.provider.ContactsContract.RawContacts;
 
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.GoogleAccountType;
+
 import java.util.Comparator;
 
 /**
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index 5a4c9db..7c61f64 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009 The Android Open Source Project
+ * Copyright (C) 2015 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.
@@ -17,75 +17,215 @@
 package com.android.contacts.editor;
 
 import android.content.Context;
+import android.content.res.Resources;
 import android.database.Cursor;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
 import android.os.Bundle;
+import android.os.Parcel;
 import android.os.Parcelable;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
 import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.Im;
 import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.Relation;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.text.TextUtils;
 import android.util.AttributeSet;
-import android.util.Pair;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.ListPopupWindow;
 import android.widget.TextView;
 
-import com.android.contacts.GroupMetaDataLoader;
+import com.android.contacts.GeoUtil;
 import com.android.contacts.R;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountType.EditType;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.RawContactModifier;
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactDeltaList;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.dataitem.CustomDataItem;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.util.AccountsListAdapter;
+import com.android.contacts.util.MaterialColorMapUtils;
+import com.android.contacts.util.UiClosables;
 
-import com.google.common.base.Objects;
-
+import java.io.FileNotFoundException;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
 /**
- * Custom view that provides all the editor interaction for a specific
- * {@link Contacts} represented through an {@link RawContactDelta}. Callers can
- * reuse this view and quickly rebuild its contents through
- * {@link #setState(RawContactDelta, AccountType, ViewIdGenerator)}.
- * <p>
- * Internal updates are performed against {@link ValuesDelta} so that the
- * source {@link RawContact} can be swapped out. Any state-based changes, such as
- * adding {@link Data} rows or changing {@link EditType}, are performed through
- * {@link RawContactModifier} to ensure that {@link AccountType} are enforced.
+ * View to display information from multiple {@link RawContactDelta}s grouped together.
  */
-public class RawContactEditorView extends BaseRawContactEditorView {
-    private static final String KEY_SUPER_INSTANCE_STATE = "superInstanceState";
+public class RawContactEditorView extends LinearLayout implements View.OnClickListener {
 
-    private LayoutInflater mInflater;
+    static final String TAG = "RawContactEditorView";
 
-    private StructuredNameEditorView mName;
-    private PhoneticNameEditorView mPhoneticName;
-    private TextFieldsEditorView mNickName;
+    /**
+     * Callbacks for hosts of {@link RawContactEditorView}s.
+     */
+    public interface Listener {
 
-    private GroupMembershipView mGroupMembershipView;
+        /**
+         * Invoked when the structured name editor field has changed.
+         *
+         * @param rawContactId The raw contact ID from the underlying {@link RawContactDelta}.
+         * @param valuesDelta The values from the underlying {@link RawContactDelta}.
+         */
+        public void onNameFieldChanged(long rawContactId, ValuesDelta valuesDelta);
 
-    private ViewGroup mFields;
+        /**
+         * Invoked when the editor should rebind editors for a new account.
+         *
+         * @param oldState Old data being edited.
+         * @param oldAccount Old account associated with oldState.
+         * @param newAccount New account to be used.
+         */
+        public void onRebindEditorsForNewContact(RawContactDelta oldState,
+                AccountWithDataSet oldAccount, AccountWithDataSet newAccount);
 
-    private View mAccountSelector;
-    private TextView mAccountSelectorTypeTextView;
-    private TextView mAccountSelectorNameTextView;
+        /**
+         * Invoked when no editors could be bound for the contact.
+         */
+        public void onBindEditorsFailed();
 
-    private View mAccountHeader;
-    private TextView mAccountHeaderTypeTextView;
-    private TextView mAccountHeaderNameTextView;
-    private ImageView mAccountIconImageView;
+        /**
+         * Invoked after editors have been bound for the contact.
+         */
+        public void onEditorsBound();
+    }
+    /**
+     * Sorts kinds roughly the same as quick contacts; we diverge in the following ways:
+     * <ol>
+     *     <li>All names are together at the top.</li>
+     *     <li>IM is moved up after addresses</li>
+     *     <li>SIP addresses are moved to below phone numbers</li>
+     *     <li>Group membership is placed at the end</li>
+     * </ol>
+     */
+    private static final class MimeTypeComparator implements Comparator<String> {
 
-    private long mRawContactId = -1;
-    private boolean mAutoAddToDefaultGroup = true;
-    private Cursor mGroupMetaData;
-    private DataKind mGroupMembershipKind;
-    private RawContactDelta mState;
+        private static final List<String> MIME_TYPE_ORDER = Arrays.asList(new String[] {
+                StructuredName.CONTENT_ITEM_TYPE,
+                Nickname.CONTENT_ITEM_TYPE,
+                Organization.CONTENT_ITEM_TYPE,
+                Phone.CONTENT_ITEM_TYPE,
+                SipAddress.CONTENT_ITEM_TYPE,
+                Email.CONTENT_ITEM_TYPE,
+                StructuredPostal.CONTENT_ITEM_TYPE,
+                Im.CONTENT_ITEM_TYPE,
+                Website.CONTENT_ITEM_TYPE,
+                Event.CONTENT_ITEM_TYPE,
+                Relation.CONTENT_ITEM_TYPE,
+                Note.CONTENT_ITEM_TYPE,
+                GroupMembership.CONTENT_ITEM_TYPE
+        });
+
+        @Override
+        public int compare(String mimeType1, String mimeType2) {
+            if (mimeType1 == mimeType2) return 0;
+            if (mimeType1 == null) return -1;
+            if (mimeType2 == null) return 1;
+
+            int index1 = MIME_TYPE_ORDER.indexOf(mimeType1);
+            int index2 = MIME_TYPE_ORDER.indexOf(mimeType2);
+
+            // Fallback to alphabetical ordering of the mime type if both are not found
+            if (index1 < 0 && index2 < 0) return mimeType1.compareTo(mimeType2);
+            if (index1 < 0) return 1;
+            if (index2 < 0) return -1;
+
+            return index1 < index2 ? -1 : 1;
+        }
+    }
+
+    public static class SavedState extends BaseSavedState {
+
+        public static final Parcelable.Creator<SavedState> CREATOR =
+                new Parcelable.Creator<SavedState>() {
+                    public SavedState createFromParcel(Parcel in) {
+                        return new SavedState(in);
+                    }
+                    public SavedState[] newArray(int size) {
+                        return new SavedState[size];
+                    }
+                };
+
+        private boolean mIsExpanded;
+
+        public SavedState(Parcelable superState) {
+            super(superState);
+        }
+
+        private SavedState(Parcel in) {
+            super(in);
+            mIsExpanded = in.readInt() != 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel out, int flags) {
+            super.writeToParcel(out, flags);
+            out.writeInt(mIsExpanded ? 1 : 0);
+        }
+    }
+
+    private RawContactEditorView.Listener mListener;
+
+    private AccountTypeManager mAccountTypeManager;
+    private LayoutInflater mLayoutInflater;
+
+    private ViewIdGenerator mViewIdGenerator;
+    private MaterialColorMapUtils.MaterialPalette mMaterialPalette;
+    private boolean mHasNewContact;
+    private boolean mIsUserProfile;
+    private AccountWithDataSet mPrimaryAccount;
+    private List<AccountInfo> mAccounts = new ArrayList<>();
+    private RawContactDeltaList mRawContactDeltas;
+    private RawContactDelta mCurrentRawContactDelta;
+    private long mRawContactIdToDisplayAlone = -1;
+    private Map<String, KindSectionData> mKindSectionDataMap = new HashMap<>();
+    private Set<String> mSortedMimetypes = new TreeSet<>(new MimeTypeComparator());
+
+    // Account header
+    private View mAccountHeaderContainer;
+    private TextView mAccountHeaderPrimaryText;
+    private TextView mAccountHeaderSecondaryText;
+    private ImageView mAccountHeaderIcon;
+    private ImageView mAccountHeaderExpanderIcon;
+
+    private PhotoEditorView mPhotoView;
+    private ViewGroup mKindSectionViews;
+    private Map<String, KindSectionView> mKindSectionViewMap = new HashMap<>();
+    private View mMoreFields;
+
+    private boolean mIsExpanded;
+
+    private Bundle mIntentExtras;
+
+    private ValuesDelta mPhotoValuesDelta;
 
     public RawContactEditorView(Context context) {
         super(context);
@@ -95,307 +235,709 @@
         super(context, attrs);
     }
 
-    @Override
-    public void setEnabled(boolean enabled) {
-        super.setEnabled(enabled);
-
-        View view = getPhotoEditor();
-        if (view != null) {
-            view.setEnabled(enabled);
-        }
-
-        if (mName != null) {
-            mName.setEnabled(enabled);
-        }
-
-        if (mPhoneticName != null) {
-            mPhoneticName.setEnabled(enabled);
-        }
-
-        if (mFields != null) {
-            int count = mFields.getChildCount();
-            for (int i = 0; i < count; i++) {
-                mFields.getChildAt(i).setEnabled(enabled);
-            }
-        }
-
-        if (mGroupMembershipView != null) {
-            mGroupMembershipView.setEnabled(enabled);
-        }
+    /**
+     * Sets the receiver for {@link RawContactEditorView} callbacks.
+     */
+    public void setListener(Listener listener) {
+        mListener = listener;
     }
 
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
 
-        mInflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        mAccountTypeManager = AccountTypeManager.getInstance(getContext());
+        mLayoutInflater = (LayoutInflater)
+                getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
-        mName = (StructuredNameEditorView)findViewById(R.id.edit_name);
-        mName.setDeletable(false);
+        // Account header
+        mAccountHeaderContainer = findViewById(R.id.account_header_container);
+        mAccountHeaderPrimaryText = (TextView) findViewById(R.id.account_type);
+        mAccountHeaderSecondaryText = (TextView) findViewById(R.id.account_name);
+        mAccountHeaderIcon = (ImageView) findViewById(R.id.account_type_icon);
+        mAccountHeaderExpanderIcon = (ImageView) findViewById(R.id.account_expander_icon);
 
-        mPhoneticName = (PhoneticNameEditorView)findViewById(R.id.edit_phonetic_name);
-        mPhoneticName.setDeletable(false);
-
-        mNickName = (TextFieldsEditorView)findViewById(R.id.edit_nick_name);
-
-        mFields = (ViewGroup)findViewById(R.id.sect_fields);
-
-        mAccountHeader = findViewById(R.id.account_header_container);
-        mAccountHeaderTypeTextView = (TextView) findViewById(R.id.account_type);
-        mAccountHeaderNameTextView = (TextView) findViewById(R.id.account_name);
-        mAccountIconImageView = (ImageView) findViewById(android.R.id.icon);
-
-        // The same header is used by both full editor and read-only editor view. The header is
-        // left-aligned with read-only editor view but is not aligned well with full editor. So we
-        // need to shift the text in the header a little bit for full editor.
-        LinearLayout accountInfoView = (LinearLayout) findViewById(R.id.account_info);
-        final int topBottomPaddingDp = (int) getResources().getDimension(R.dimen
-                .editor_account_header_expandable_top_bottom_padding);
-        final int leftPaddingDp = (int) getResources().getDimension(R.dimen
-                .editor_account_header_expandable_left_padding);
-        accountInfoView.setPadding(leftPaddingDp, topBottomPaddingDp, 0, topBottomPaddingDp);
-
-        mAccountSelector = findViewById(R.id.account_selector_container);
-        mAccountSelectorTypeTextView = (TextView) findViewById(R.id.account_type_selector);
-        mAccountSelectorNameTextView = (TextView) findViewById(R.id.account_name_selector);
+        mPhotoView = (PhotoEditorView) findViewById(R.id.photo_editor);
+        mKindSectionViews = (LinearLayout) findViewById(R.id.kind_section_views);
+        mMoreFields = findViewById(R.id.more_fields);
+        mMoreFields.setOnClickListener(this);
     }
 
     @Override
-    protected Parcelable onSaveInstanceState() {
-        Bundle bundle = new Bundle();
-        // super implementation of onSaveInstanceState returns null
-        bundle.putParcelable(KEY_SUPER_INSTANCE_STATE, super.onSaveInstanceState());
-        return bundle;
+    public void onClick(View view) {
+        if (view.getId() == R.id.more_fields) {
+            showAllFields();
+        }
     }
 
     @Override
-    protected void onRestoreInstanceState(Parcelable state) {
-        if (state instanceof Bundle) {
-            Bundle bundle = (Bundle) state;
-            super.onRestoreInstanceState(bundle.getParcelable(KEY_SUPER_INSTANCE_STATE));
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        final int childCount = mKindSectionViews.getChildCount();
+        for (int i = 0; i < childCount; i++) {
+            mKindSectionViews.getChildAt(i).setEnabled(enabled);
+        }
+    }
+
+    @Override
+    public Parcelable onSaveInstanceState() {
+        final Parcelable superState = super.onSaveInstanceState();
+        final SavedState savedState = new SavedState(superState);
+        savedState.mIsExpanded = mIsExpanded;
+        return savedState;
+    }
+
+    @Override
+    public void onRestoreInstanceState(Parcelable state) {
+        if(!(state instanceof SavedState)) {
+            super.onRestoreInstanceState(state);
             return;
         }
-        super.onRestoreInstanceState(state);
+        final SavedState savedState = (SavedState) state;
+        super.onRestoreInstanceState(savedState.getSuperState());
+        mIsExpanded = savedState.mIsExpanded;
+        if (mIsExpanded) {
+            showAllFields();
+        }
     }
 
     /**
-     * Set the internal state for this view, given a current
-     * {@link RawContactDelta} state and the {@link AccountType} that
-     * apply to that state.
+     * Pass through to {@link PhotoEditorView#setListener}.
      */
-    @Override
-    public void setState(RawContactDelta state, AccountType type, ViewIdGenerator vig,
-            boolean isProfile) {
+    public void setPhotoListener(PhotoEditorView.Listener listener) {
+        mPhotoView.setListener(listener);
+    }
 
-        mState = state;
+    public void removePhoto() {
+        mPhotoValuesDelta.setFromTemplate(true);
+        mPhotoValuesDelta.put(Photo.PHOTO, (byte[]) null);
+        mPhotoValuesDelta.put(Photo.PHOTO_FILE_ID, (String) null);
 
-        // Remove any existing sections
-        mFields.removeAllViews();
+        mPhotoView.removePhoto();
+    }
 
-        // Bail if invalid state or account type
-        if (state == null || type == null) return;
+    /**
+     * Pass through to {@link PhotoEditorView#setFullSizedPhoto(Uri)}.
+     */
+    public void setFullSizePhoto(Uri photoUri) {
+        mPhotoView.setFullSizedPhoto(photoUri);
+    }
 
-        setId(vig.getId(state, null, null, ViewIdGenerator.NO_VIEW_INDEX));
+    public void updatePhoto(Uri photoUri) {
+        mPhotoValuesDelta.setFromTemplate(false);
+        // Unset primary for all photos
+        unsetSuperPrimaryFromAllPhotos();
+        // Mark the currently displayed photo as primary
+        mPhotoValuesDelta.setSuperPrimary(true);
 
-        // Make sure we have a StructuredName
-        RawContactModifier.ensureKindExists(state, type, StructuredName.CONTENT_ITEM_TYPE);
-
-        mRawContactId = state.getRawContactId();
-
-        // Fill in the account info
-        final Pair<String,String> accountInfo = isProfile
-                ? EditorUiUtils.getLocalAccountInfo(getContext(), state.getAccountName(), type)
-                : EditorUiUtils.getAccountInfo(getContext(), state.getAccountName(), type);
-        if (accountInfo.first == null) {
-            // Hide this view so the other text view will be centered vertically
-            mAccountHeaderNameTextView.setVisibility(View.GONE);
-        } else {
-            mAccountHeaderNameTextView.setVisibility(View.VISIBLE);
-            mAccountHeaderNameTextView.setText(accountInfo.first);
-        }
-        mAccountHeaderTypeTextView.setText(accountInfo.second);
-        updateAccountHeaderContentDescription();
-
-        // The account selector and header are both used to display the same information.
-        mAccountSelectorTypeTextView.setText(mAccountHeaderTypeTextView.getText());
-        mAccountSelectorTypeTextView.setVisibility(mAccountHeaderTypeTextView.getVisibility());
-        mAccountSelectorNameTextView.setText(mAccountHeaderNameTextView.getText());
-        mAccountSelectorNameTextView.setVisibility(mAccountHeaderNameTextView.getVisibility());
-        // Showing the account header at the same time as the account selector drop down is
-        // confusing. They should be mutually exclusive.
-        mAccountHeader.setVisibility(mAccountSelector.getVisibility() == View.GONE
-                ? View.VISIBLE : View.GONE);
-
-        mAccountIconImageView.setImageDrawable(state.getRawContactAccountType(getContext())
-                .getDisplayIcon(getContext()));
-
-        // Show photo editor when supported
-        RawContactModifier.ensureKindExists(state, type, Photo.CONTENT_ITEM_TYPE);
-        setHasPhotoEditor((type.getKindForMimetype(Photo.CONTENT_ITEM_TYPE) != null));
-        getPhotoEditor().setEnabled(isEnabled());
-        mName.setEnabled(isEnabled());
-
-        mPhoneticName.setEnabled(isEnabled());
-
-        // Show and hide the appropriate views
-        mFields.setVisibility(View.VISIBLE);
-        mName.setVisibility(View.VISIBLE);
-        mPhoneticName.setVisibility(View.VISIBLE);
-
-        mGroupMembershipKind = type.getKindForMimetype(GroupMembership.CONTENT_ITEM_TYPE);
-        if (mGroupMembershipKind != null) {
-            mGroupMembershipView = (GroupMembershipView)mInflater.inflate(
-                    R.layout.item_group_membership, mFields, false);
-            mGroupMembershipView.setKind(mGroupMembershipKind);
-            mGroupMembershipView.setEnabled(isEnabled());
+        // Even though high-res photos cannot be saved by passing them via
+        // an EntityDeltaList (since they cause the Bundle size limit to be
+        // exceeded), we still pass a low-res thumbnail. This simplifies
+        // code all over the place, because we don't have to test whether
+        // there is a change in EITHER the delta-list OR a changed photo...
+        // this way, there is always a change in the delta-list.
+        try {
+            final byte[] bytes = EditorUiUtils.getCompressedThumbnailBitmapBytes(
+                    getContext(), photoUri);
+            if (bytes != null) {
+                mPhotoValuesDelta.setPhoto(bytes);
+            }
+        } catch (FileNotFoundException e) {
+            elog("Failed to get bitmap from photo Uri");
         }
 
-        // Create editor sections for each possible data kind
-        for (DataKind kind : type.getSortedDataKinds()) {
-            // Skip kind of not editable
-            if (!kind.editable) continue;
+        mPhotoView.setFullSizedPhoto(photoUri);
+    }
 
-            final String mimeType = kind.mimeType;
-            if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                // Handle special case editor for structured name
-                final ValuesDelta primary = state.getPrimaryEntry(mimeType);
-                mName.setValues(
-                        type.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME),
-                        primary, state, false, vig);
-                mPhoneticName.setValues(
-                        type.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME),
-                        primary, state, false, vig);
-                // It is useful to use Nickname outside of a KindSectionView so that we can treat it
-                // as a part of StructuredName's fake KindSectionView, even though it uses a
-                // different CP2 mime-type. We do a bit of extra work below to make this possible.
-                final DataKind nickNameKind = type.getKindForMimetype(Nickname.CONTENT_ITEM_TYPE);
-                if (nickNameKind != null) {
-                    ValuesDelta primaryNickNameEntry = state.getPrimaryEntry(nickNameKind.mimeType);
-                    if (primaryNickNameEntry == null) {
-                        primaryNickNameEntry = RawContactModifier.insertChild(state, nickNameKind);
-                    }
-                    mNickName.setValues(nickNameKind, primaryNickNameEntry, state, false, vig);
-                    mNickName.setDeletable(false);
-                } else {
-                    mPhoneticName.setPadding(0, 0, 0, (int) getResources().getDimension(
-                            R.dimen.editor_padding_between_editor_views));
-                    mNickName.setVisibility(View.GONE);
-                }
-            } else if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                // Handle special case editor for photos
-                final ValuesDelta primary = state.getPrimaryEntry(mimeType);
-                getPhotoEditor().setValues(kind, primary, state, false, vig);
-            } else if (GroupMembership.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                if (mGroupMembershipView != null) {
-                    mGroupMembershipView.setState(state);
-                    mFields.addView(mGroupMembershipView);
-                }
-            } else if (DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME.equals(mimeType)
-                    || DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME.equals(mimeType)
-                    || Nickname.CONTENT_ITEM_TYPE.equals(mimeType)) {
-                // Don't create fields for each of these mime-types. They are handled specially.
+    private void unsetSuperPrimaryFromAllPhotos() {
+        for (int i = 0; i < mRawContactDeltas.size(); i++) {
+            final RawContactDelta rawContactDelta = mRawContactDeltas.get(i);
+            if (!rawContactDelta.hasMimeEntries(Photo.CONTENT_ITEM_TYPE)) {
                 continue;
-            } else {
-                // Otherwise use generic section-based editors
-                if (kind.fieldList == null) continue;
-                final KindSectionView section = (KindSectionView)mInflater.inflate(
-                        R.layout.item_kind_section, mFields, false);
-                section.setEnabled(isEnabled());
-                section.setState(kind, state, /* readOnly =*/ false, vig);
-                mFields.addView(section);
+            }
+            final List<ValuesDelta> photosDeltas =
+                    mRawContactDeltas.get(i).getMimeEntries(Photo.CONTENT_ITEM_TYPE);
+            if (photosDeltas == null) {
+                continue;
+            }
+            for (int j = 0; j < photosDeltas.size(); j++) {
+                photosDeltas.get(j).setSuperPrimary(false);
             }
         }
-
-        addToDefaultGroupIfNeeded();
-    }
-
-    @Override
-    public void setGroupMetaData(Cursor groupMetaData) {
-        mGroupMetaData = groupMetaData;
-        addToDefaultGroupIfNeeded();
-        if (mGroupMembershipView != null) {
-            mGroupMembershipView.setGroupMetaData(groupMetaData);
-        }
-    }
-
-    public void setAutoAddToDefaultGroup(boolean flag) {
-        this.mAutoAddToDefaultGroup = flag;
     }
 
     /**
-     * If automatic addition to the default group was requested (see
-     * {@link #setAutoAddToDefaultGroup}, checks if the raw contact is in any
-     * group and if it is not adds it to the default group (in case of Google
-     * contacts that's "My Contacts").
+     * Pass through to {@link PhotoEditorView#isWritablePhotoSet}.
      */
-    private void addToDefaultGroupIfNeeded() {
-        if (!mAutoAddToDefaultGroup || mGroupMetaData == null || mGroupMetaData.isClosed()
-                || mState == null) {
+    public boolean isWritablePhotoSet() {
+        return mPhotoView.isWritablePhotoSet();
+    }
+
+    /**
+     * Get the raw contact ID for the current photo.
+     */
+    public long getPhotoRawContactId() {
+        return mCurrentRawContactDelta == null ? - 1 : mCurrentRawContactDelta.getRawContactId();
+    }
+
+    public StructuredNameEditorView getNameEditorView() {
+        final KindSectionView nameKindSectionView = mKindSectionViewMap
+                .get(StructuredName.CONTENT_ITEM_TYPE);
+        return nameKindSectionView == null
+                ? null : nameKindSectionView.getNameEditorView();
+    }
+
+    public RawContactDelta getCurrentRawContactDelta() {
+        return mCurrentRawContactDelta;
+    }
+
+    /**
+     * Marks the raw contact photo given as primary for the aggregate contact.
+     */
+    public void setPrimaryPhoto() {
+
+        // Update values delta
+        final ValuesDelta valuesDelta = mCurrentRawContactDelta
+                .getSuperPrimaryEntry(Photo.CONTENT_ITEM_TYPE);
+        if (valuesDelta == null) {
+            Log.wtf(TAG, "setPrimaryPhoto: had no ValuesDelta for the current RawContactDelta");
+            return;
+        }
+        valuesDelta.setFromTemplate(false);
+        unsetSuperPrimaryFromAllPhotos();
+        valuesDelta.setSuperPrimary(true);
+    }
+
+    public View getAggregationAnchorView() {
+        final StructuredNameEditorView nameEditorView = getNameEditorView();
+        return nameEditorView != null ? nameEditorView.findViewById(R.id.anchor_view) : null;
+    }
+
+    public void setGroupMetaData(Cursor groupMetaData) {
+        final KindSectionView groupKindSectionView =
+                mKindSectionViewMap.get(GroupMembership.CONTENT_ITEM_TYPE);
+        if (groupKindSectionView == null) {
+            return;
+        }
+        groupKindSectionView.setGroupMetaData(groupMetaData);
+        if (mIsExpanded) {
+            groupKindSectionView.setHideWhenEmpty(false);
+            groupKindSectionView.updateEmptyEditors(/* shouldAnimate =*/ true);
+        }
+    }
+
+    public void setIntentExtras(Bundle extras) {
+        mIntentExtras = extras;
+    }
+
+    public void setState(RawContactDeltaList rawContactDeltas,
+            MaterialColorMapUtils.MaterialPalette materialPalette, ViewIdGenerator viewIdGenerator,
+            boolean hasNewContact, boolean isUserProfile, AccountWithDataSet primaryAccount,
+            long rawContactIdToDisplayAlone) {
+
+        mRawContactDeltas = rawContactDeltas;
+        mRawContactIdToDisplayAlone = rawContactIdToDisplayAlone;
+
+        mKindSectionViewMap.clear();
+        mKindSectionViews.removeAllViews();
+        mMoreFields.setVisibility(View.VISIBLE);
+
+        mMaterialPalette = materialPalette;
+        mViewIdGenerator = viewIdGenerator;
+
+        mHasNewContact = hasNewContact;
+        mIsUserProfile = isUserProfile;
+        mPrimaryAccount = primaryAccount;
+        if (mPrimaryAccount == null && mAccounts != null) {
+            mPrimaryAccount = ContactEditorUtils.create(getContext())
+                    .getOnlyOrDefaultAccount(AccountInfo.extractAccounts(mAccounts));
+        }
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "state: primary " + mPrimaryAccount);
+        }
+
+        // Parse the given raw contact deltas
+        if (rawContactDeltas == null || rawContactDeltas.isEmpty()) {
+            elog("No raw contact deltas");
+            if (mListener != null) mListener.onBindEditorsFailed();
+            return;
+        }
+        pickRawContactDelta();
+        if (mCurrentRawContactDelta == null) {
+            elog("Couldn't pick a raw contact delta.");
+            if (mListener != null) mListener.onBindEditorsFailed();
+            return;
+        }
+        // Apply any intent extras now that we have selected a raw contact delta.
+        applyIntentExtras();
+        parseRawContactDelta();
+        if (mKindSectionDataMap.isEmpty()) {
+            elog("No kind section data parsed from RawContactDelta(s)");
+            if (mListener != null) mListener.onBindEditorsFailed();
             return;
         }
 
-        boolean hasGroupMembership = false;
-        ArrayList<ValuesDelta> entries = mState.getMimeEntries(GroupMembership.CONTENT_ITEM_TYPE);
-        if (entries != null) {
-            for (ValuesDelta values : entries) {
-                Long id = values.getGroupRowId();
-                if (id != null && id.longValue() != 0) {
-                    hasGroupMembership = true;
-                    break;
+        final KindSectionData nameSectionData =
+                mKindSectionDataMap.get(StructuredName.CONTENT_ITEM_TYPE);
+        // Ensure that a structured name and photo exists
+        if (nameSectionData != null) {
+            final RawContactDelta rawContactDelta =
+                    nameSectionData.getRawContactDelta();
+            RawContactModifier.ensureKindExists(
+                    rawContactDelta,
+                    rawContactDelta.getAccountType(mAccountTypeManager),
+                    StructuredName.CONTENT_ITEM_TYPE);
+            RawContactModifier.ensureKindExists(
+                    rawContactDelta,
+                    rawContactDelta.getAccountType(mAccountTypeManager),
+                    Photo.CONTENT_ITEM_TYPE);
+        }
+
+        // Setup the view
+        addPhotoView();
+        setAccountInfo();
+        if (isReadOnlyRawContact()) {
+            // We're want to display the inputs fields for a single read only raw contact
+            addReadOnlyRawContactEditorViews();
+        } else {
+            setupEditorNormally();
+            // If we're inserting a new contact, request focus to bring up the keyboard for the
+            // name field.
+            if (mHasNewContact) {
+                final StructuredNameEditorView name = getNameEditorView();
+                if (name != null) {
+                    name.requestFocusForFirstEditField();
                 }
             }
         }
+        if (mListener != null) mListener.onEditorsBound();
+    }
 
-        if (!hasGroupMembership) {
-            long defaultGroupId = getDefaultGroupId();
-            if (defaultGroupId != -1) {
-                ValuesDelta entry = RawContactModifier.insertChild(mState, mGroupMembershipKind);
-                if (entry != null) {
-                    entry.setGroupRowId(defaultGroupId);
+    public void setAccounts(List<AccountInfo> accounts) {
+        mAccounts.clear();
+        mAccounts.addAll(accounts);
+        // Update the account header
+        setAccountInfo();
+    }
+
+    private void setupEditorNormally() {
+        addKindSectionViews();
+
+        mMoreFields.setVisibility(hasMoreFields() ? View.VISIBLE : View.GONE);
+
+        if (mIsExpanded) showAllFields();
+    }
+
+    private boolean isReadOnlyRawContact() {
+        return !mCurrentRawContactDelta.getAccountType(mAccountTypeManager).areContactsWritable();
+    }
+
+    private void pickRawContactDelta() {
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "parse: " + mRawContactDeltas.size() + " rawContactDelta(s)");
+        }
+        for (int j = 0; j < mRawContactDeltas.size(); j++) {
+            final RawContactDelta rawContactDelta = mRawContactDeltas.get(j);
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "parse: " + j + " rawContactDelta" + rawContactDelta);
+            }
+            if (rawContactDelta == null || !rawContactDelta.isVisible()) continue;
+            final AccountType accountType = rawContactDelta.getAccountType(mAccountTypeManager);
+            if (accountType == null) continue;
+
+            if (mRawContactIdToDisplayAlone > 0) {
+                // Look for the raw contact if specified.
+                if (rawContactDelta.getRawContactId().equals(mRawContactIdToDisplayAlone)) {
+                    mCurrentRawContactDelta = rawContactDelta;
+                    return;
                 }
+            } else if (mPrimaryAccount != null
+                    && mPrimaryAccount.equals(rawContactDelta.getAccountWithDataSet())) {
+                // Otherwise try to find the one that matches the default.
+                mCurrentRawContactDelta = rawContactDelta;
+                return;
+            } else if (accountType.areContactsWritable()){
+                // TODO: Find better raw contact delta
+                // Just select an arbitrary writable contact.
+                mCurrentRawContactDelta = rawContactDelta;
+            }
+        }
+
+    }
+
+    private void applyIntentExtras() {
+        if (mIntentExtras == null || mIntentExtras.size() == 0) {
+            return;
+        }
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(getContext());
+        final AccountType type = mCurrentRawContactDelta.getAccountType(accountTypes);
+
+        RawContactModifier.parseExtras(getContext(), type, mCurrentRawContactDelta, mIntentExtras);
+        mIntentExtras = null;
+    }
+
+    private void parseRawContactDelta() {
+        mKindSectionDataMap.clear();
+        mSortedMimetypes.clear();
+
+        final AccountType accountType = mCurrentRawContactDelta.getAccountType(mAccountTypeManager);
+        final List<DataKind> dataKinds = accountType.getSortedDataKinds();
+        final int dataKindSize = dataKinds == null ? 0 : dataKinds.size();
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "parse: " + dataKindSize + " dataKinds(s)");
+        }
+
+        for (int i = 0; i < dataKindSize; i++) {
+            final DataKind dataKind = dataKinds.get(i);
+            // Skip null and un-editable fields.
+            if (dataKind == null || !dataKind.editable) {
+                if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                    Log.v(TAG, "parse: " + i +
+                            (dataKind == null ? " dropped null data kind"
+                                    : " dropped uneditable mimetype: " + dataKind.mimeType));
+                }
+                continue;
+            }
+            final String mimeType = dataKind.mimeType;
+
+            // Skip psuedo mime types
+            if (DataKind.PSEUDO_MIME_TYPE_NAME.equals(mimeType) ||
+                    DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME.equals(mimeType)) {
+                if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                    Log.v(TAG, "parse: " + i + " " + dataKind.mimeType + " dropped pseudo type");
+                }
+                continue;
+            }
+
+            // Skip custom fields
+            // TODO: Handle them when we implement editing custom fields.
+            if (CustomDataItem.MIMETYPE_CUSTOM_FIELD.equals(mimeType)) {
+                if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                    Log.v(TAG, "parse: " + i + " " + dataKind.mimeType + " dropped custom field");
+                }
+                continue;
+            }
+
+            final KindSectionData kindSectionData =
+                    new KindSectionData(accountType, dataKind, mCurrentRawContactDelta);
+            mKindSectionDataMap.put(mimeType, kindSectionData);
+            mSortedMimetypes.add(mimeType);
+
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "parse: " + i + " " + dataKind.mimeType + " " +
+                        kindSectionData.getValuesDeltas().size() + " value(s) " +
+                        kindSectionData.getNonEmptyValuesDeltas().size() + " non-empty value(s) " +
+                        kindSectionData.getVisibleValuesDeltas().size() +
+                        " visible value(s)");
             }
         }
     }
 
-    /**
-     * Returns the default group (e.g. "My Contacts") for the current raw contact's
-     * account.  Returns -1 if there is no such group.
-     */
-    private long getDefaultGroupId() {
-        String accountType = mState.getAccountType();
-        String accountName = mState.getAccountName();
-        String accountDataSet = mState.getDataSet();
-        mGroupMetaData.moveToPosition(-1);
-        while (mGroupMetaData.moveToNext()) {
-            String name = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_NAME);
-            String type = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
-            String dataSet = mGroupMetaData.getString(GroupMetaDataLoader.DATA_SET);
-            if (name.equals(accountName) && type.equals(accountType)
-                    && Objects.equal(dataSet, accountDataSet)) {
-                long groupId = mGroupMetaData.getLong(GroupMetaDataLoader.GROUP_ID);
-                if (!mGroupMetaData.isNull(GroupMetaDataLoader.AUTO_ADD)
-                            && mGroupMetaData.getInt(GroupMetaDataLoader.AUTO_ADD) != 0) {
-                    return groupId;
+    private void addReadOnlyRawContactEditorViews() {
+        mKindSectionViews.removeAllViews();
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(
+                getContext());
+        final AccountType type = mCurrentRawContactDelta.getAccountType(accountTypes);
+
+        // Bail if invalid state or source
+        if (type == null) return;
+
+        // Make sure we have StructuredName
+        RawContactModifier.ensureKindExists(
+                mCurrentRawContactDelta, type, StructuredName.CONTENT_ITEM_TYPE);
+
+        ValuesDelta primary;
+
+        // Name
+        final Context context = getContext();
+        final Resources res = context.getResources();
+        primary = mCurrentRawContactDelta.getPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
+        final String name = primary != null ? primary.getAsString(StructuredName.DISPLAY_NAME) :
+            getContext().getString(R.string.missing_name);
+        final Drawable nameDrawable = context.getDrawable(R.drawable.quantum_ic_person_vd_theme_24);
+        final String nameContentDescription = res.getString(R.string.header_name_entry);
+        bindData(nameDrawable, nameContentDescription, name, /* type */ null,
+                /* isFirstEntry */ true);
+
+        // Phones
+        final ArrayList<ValuesDelta> phones = mCurrentRawContactDelta
+                .getMimeEntries(Phone.CONTENT_ITEM_TYPE);
+        final Drawable phoneDrawable = context.getDrawable(R.drawable.quantum_ic_phone_vd_theme_24);
+        final String phoneContentDescription = res.getString(R.string.header_phone_entry);
+        if (phones != null) {
+            boolean isFirstPhoneBound = true;
+            for (ValuesDelta phone : phones) {
+                final String phoneNumber = phone.getPhoneNumber();
+                if (TextUtils.isEmpty(phoneNumber)) {
+                    continue;
                 }
+                final String formattedNumber = PhoneNumberUtilsCompat.formatNumber(
+                        phoneNumber, phone.getPhoneNormalizedNumber(),
+                        GeoUtil.getCurrentCountryIso(getContext()));
+                CharSequence phoneType = null;
+                if (phone.hasPhoneType()) {
+                    phoneType = Phone.getTypeLabel(
+                            res, phone.getPhoneType(), phone.getPhoneLabel());
+                }
+                bindData(phoneDrawable, phoneContentDescription, formattedNumber, phoneType,
+                        isFirstPhoneBound, true);
+                isFirstPhoneBound = false;
             }
         }
-        return -1;
+
+        // Emails
+        final ArrayList<ValuesDelta> emails = mCurrentRawContactDelta
+                .getMimeEntries(Email.CONTENT_ITEM_TYPE);
+        final Drawable emailDrawable = context.getDrawable(R.drawable.quantum_ic_email_vd_theme_24);
+        final String emailContentDescription = res.getString(R.string.header_email_entry);
+        if (emails != null) {
+            boolean isFirstEmailBound = true;
+            for (ValuesDelta email : emails) {
+                final String emailAddress = email.getEmailData();
+                if (TextUtils.isEmpty(emailAddress)) {
+                    continue;
+                }
+                CharSequence emailType = null;
+                if (email.hasEmailType()) {
+                    emailType = Email.getTypeLabel(
+                            res, email.getEmailType(), email.getEmailLabel());
+                }
+                bindData(emailDrawable, emailContentDescription, emailAddress, emailType,
+                        isFirstEmailBound);
+                isFirstEmailBound = false;
+            }
+        }
+
+        mKindSectionViews.setVisibility(mKindSectionViews.getChildCount() > 0 ? VISIBLE : GONE);
+        // Hide the "More fields" link
+        mMoreFields.setVisibility(GONE);
     }
 
-    public StructuredNameEditorView getNameEditor() {
-        return mName;
+    private void bindData(Drawable icon, String iconContentDescription, CharSequence data,
+            CharSequence type, boolean isFirstEntry) {
+        bindData(icon, iconContentDescription, data, type, isFirstEntry, false);
     }
 
-    public TextFieldsEditorView getPhoneticNameEditor() {
-        return mPhoneticName;
+    private void bindData(Drawable icon, String iconContentDescription, CharSequence data,
+            CharSequence type, boolean isFirstEntry, boolean forceLTR) {
+        final View field = mLayoutInflater.inflate(R.layout.item_read_only_field, mKindSectionViews,
+                /* attachToRoot */ false);
+        if (isFirstEntry) {
+            final ImageView imageView = (ImageView) field.findViewById(R.id.kind_icon);
+            imageView.setImageDrawable(icon);
+            imageView.setContentDescription(iconContentDescription);
+        } else {
+            final ImageView imageView = (ImageView) field.findViewById(R.id.kind_icon);
+            imageView.setVisibility(View.INVISIBLE);
+            imageView.setContentDescription(null);
+        }
+        final TextView dataView = (TextView) field.findViewById(R.id.data);
+        dataView.setText(data);
+        if (forceLTR) {
+            dataView.setTextDirection(View.TEXT_DIRECTION_LTR);
+        }
+        final TextView typeView = (TextView) field.findViewById(R.id.type);
+        if (!TextUtils.isEmpty(type)) {
+            typeView.setText(type);
+        } else {
+            typeView.setVisibility(View.GONE);
+        }
+        mKindSectionViews.addView(field);
     }
 
-    public TextFieldsEditorView getNickNameEditor() {
-        return mNickName;
+    private void setAccountInfo() {
+        if (mCurrentRawContactDelta == null && mPrimaryAccount == null) {
+            return;
+        }
+        final AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(getContext());
+        final AccountInfo account = mCurrentRawContactDelta != null
+                ? accountTypeManager.getAccountInfoForAccount(
+                mCurrentRawContactDelta.getAccountWithDataSet())
+                : accountTypeManager.getAccountInfoForAccount(mPrimaryAccount);
+
+        // Accounts haven't loaded yet or we are editing.
+        if (mAccounts.isEmpty()) {
+            mAccounts.add(account);
+        }
+
+        // Get the account information for the primary raw contact delta
+        if (isReadOnlyRawContact()) {
+            final String accountType = account.getTypeLabel().toString();
+            setAccountHeader(accountType,
+                    getResources().getString(
+                            R.string.editor_account_selector_read_only_title, accountType));
+        } else {
+            final String accountLabel = mIsUserProfile
+                    ? EditorUiUtils.getAccountHeaderLabelForMyProfile(getContext(), account)
+                    : account.getNameLabel().toString();
+            setAccountHeader(getResources().getString(R.string.editor_account_selector_title),
+                    accountLabel);
+        }
+
+        // If we're saving a new contact and there are multiple accounts, add the account selector.
+        if (mHasNewContact && !mIsUserProfile && mAccounts.size() > 1) {
+            addAccountSelector(mCurrentRawContactDelta);
+        }
     }
 
-    @Override
-    public long getRawContactId() {
-        return mRawContactId;
+    private void setAccountHeader(String primaryText, String secondaryText) {
+        mAccountHeaderPrimaryText.setText(primaryText);
+        mAccountHeaderSecondaryText.setText(secondaryText);
+
+        // Set the icon
+        final AccountType accountType =
+                mCurrentRawContactDelta.getRawContactAccountType(getContext());
+        mAccountHeaderIcon.setImageDrawable(accountType.getDisplayIcon(getContext()));
+
+        // Set the content description
+        mAccountHeaderContainer.setContentDescription(
+                EditorUiUtils.getAccountInfoContentDescription(secondaryText, primaryText));
+    }
+
+    private void addAccountSelector(final RawContactDelta rawContactDelta) {
+        // Add handlers for choosing another account to save to.
+        mAccountHeaderExpanderIcon.setVisibility(View.VISIBLE);
+        final OnClickListener clickListener = new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                final AccountWithDataSet current = rawContactDelta.getAccountWithDataSet();
+                AccountInfo.sortAccounts(current, mAccounts);
+                final ListPopupWindow popup = new ListPopupWindow(getContext(), null);
+                final AccountsListAdapter adapter =
+                        new AccountsListAdapter(getContext(), mAccounts, current);
+                popup.setWidth(mAccountHeaderContainer.getWidth());
+                popup.setAnchorView(mAccountHeaderContainer);
+                popup.setAdapter(adapter);
+                popup.setModal(true);
+                popup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NOT_NEEDED);
+                popup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+                    @Override
+                    public void onItemClick(AdapterView<?> parent, View view, int position,
+                            long id) {
+                        UiClosables.closeQuietly(popup);
+                        final AccountWithDataSet newAccount = adapter.getItem(position);
+                        if (mListener != null && !mPrimaryAccount.equals(newAccount)) {
+                            mIsExpanded = false;
+                            mListener.onRebindEditorsForNewContact(
+                                    rawContactDelta,
+                                    mPrimaryAccount,
+                                    newAccount);
+                        }
+                    }
+                });
+                popup.show();
+            }
+        };
+        mAccountHeaderContainer.setOnClickListener(clickListener);
+        // Make the expander icon clickable so that it will be announced as a button by
+        // talkback
+        mAccountHeaderExpanderIcon.setOnClickListener(clickListener);
+    }
+
+    private void addPhotoView() {
+        if (!mCurrentRawContactDelta.hasMimeEntries(Photo.CONTENT_ITEM_TYPE)) {
+            wlog("No photo mimetype for this raw contact.");
+            mPhotoView.setVisibility(GONE);
+            return;
+        } else {
+            mPhotoView.setVisibility(VISIBLE);
+        }
+
+        final ValuesDelta superPrimaryDelta = mCurrentRawContactDelta
+                .getSuperPrimaryEntry(Photo.CONTENT_ITEM_TYPE);
+        if (superPrimaryDelta == null) {
+            Log.wtf(TAG, "addPhotoView: no ValueDelta found for current RawContactDelta"
+                    + "that supports a photo.");
+            mPhotoView.setVisibility(GONE);
+            return;
+        }
+        // Set the photo view
+        mPhotoView.setPalette(mMaterialPalette);
+        mPhotoView.setPhoto(superPrimaryDelta);
+
+        if (isReadOnlyRawContact()) {
+            mPhotoView.setReadOnly(true);
+            return;
+        }
+        mPhotoView.setReadOnly(false);
+        mPhotoValuesDelta = superPrimaryDelta;
+    }
+
+    private void addKindSectionViews() {
+        int i = -1;
+
+        for (String mimeType : mSortedMimetypes) {
+            i++;
+            // Ignore mime types that we've already handled
+            if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                    Log.v(TAG, "kind: " + i + " " + mimeType + " dropped");
+                }
+                continue;
+            }
+            final KindSectionView kindSectionView;
+            final KindSectionData kindSectionData = mKindSectionDataMap.get(mimeType);
+            kindSectionView = inflateKindSectionView(mKindSectionViews, kindSectionData, mimeType);
+            mKindSectionViews.addView(kindSectionView);
+
+            // Keep a pointer to the KindSectionView for each mimeType
+            mKindSectionViewMap.put(mimeType, kindSectionView);
+        }
+    }
+
+    private KindSectionView inflateKindSectionView(ViewGroup viewGroup,
+            KindSectionData kindSectionData, String mimeType) {
+        final KindSectionView kindSectionView = (KindSectionView)
+                mLayoutInflater.inflate(R.layout.item_kind_section, viewGroup,
+                        /* attachToRoot =*/ false);
+        kindSectionView.setIsUserProfile(mIsUserProfile);
+
+        if (Phone.CONTENT_ITEM_TYPE.equals(mimeType)
+                || Email.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            // Phone numbers and email addresses are always displayed,
+            // even if they are empty
+            kindSectionView.setHideWhenEmpty(false);
+        }
+
+        // Since phone numbers and email addresses displayed even if they are empty,
+        // they will be the only types you add new values to initially for new contacts
+        kindSectionView.setShowOneEmptyEditor(true);
+
+        kindSectionView.setState(kindSectionData, mViewIdGenerator, mListener);
+
+        return kindSectionView;
+    }
+
+    private void showAllFields() {
+        // Stop hiding empty editors and allow the user to enter values for all kinds now
+        for (int i = 0; i < mKindSectionViews.getChildCount(); i++) {
+            final KindSectionView kindSectionView =
+                    (KindSectionView) mKindSectionViews.getChildAt(i);
+            kindSectionView.setHideWhenEmpty(false);
+            kindSectionView.updateEmptyEditors(/* shouldAnimate =*/ true);
+        }
+        mIsExpanded = true;
+
+        // Hide the more fields button
+        mMoreFields.setVisibility(View.GONE);
+    }
+
+    private boolean hasMoreFields() {
+        for (KindSectionView section : mKindSectionViewMap.values()) {
+            if (section.getVisibility() != View.VISIBLE) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static void wlog(String message) {
+        if (Log.isLoggable(TAG, Log.WARN)) {
+            Log.w(TAG, message);
+        }
+    }
+
+    private static void elog(String message) {
+        Log.e(TAG, message);
     }
 }
diff --git a/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java b/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java
deleted file mode 100644
index 6e4c055..0000000
--- a/src/com/android/contacts/editor/RawContactReadOnlyEditorView.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright (C) 2009 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.editor;
-
-import android.content.ContentUris;
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.provider.ContactsContract.RawContacts;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Pair;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.android.contacts.R;
-import com.android.contacts.common.GeoUtil;
-import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.dataitem.DataKind;
-
-import java.util.ArrayList;
-
-/**
- * Custom view that displays external contacts in the edit screen.
- */
-public class RawContactReadOnlyEditorView extends BaseRawContactEditorView
-        implements OnClickListener {
-    private LayoutInflater mInflater;
-
-    private TextView mName;
-    private Button mEditExternallyButton;
-    private ViewGroup mGeneral;
-
-    private TextView mAccountHeaderTypeTextView;
-    private TextView mAccountHeaderNameTextView;
-    private ImageView mAccountIconImageView;
-
-    private String mAccountName;
-    private String mAccountType;
-    private String mDataSet;
-    private long mRawContactId = -1;
-
-    public RawContactReadOnlyEditorView(Context context) {
-        super(context);
-    }
-
-    public RawContactReadOnlyEditorView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-
-    /** {@inheritDoc} */
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-
-        mInflater = (LayoutInflater)getContext().getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-
-        mName = (TextView) findViewById(R.id.read_only_name);
-        mEditExternallyButton = (Button) findViewById(R.id.button_edit_externally);
-        mEditExternallyButton.setOnClickListener(this);
-        mGeneral = (ViewGroup)findViewById(R.id.sect_general);
-
-        mAccountHeaderTypeTextView = (TextView) findViewById(R.id.account_type);
-        mAccountHeaderNameTextView = (TextView) findViewById(R.id.account_name);
-        mAccountIconImageView = (ImageView) findViewById(android.R.id.icon);
-    }
-
-    /**
-     * Set the internal state for this view, given a current
-     * {@link RawContactDelta} state and the {@link AccountType} that
-     * apply to that state.
-     */
-    @Override
-    public void setState(RawContactDelta state, AccountType type, ViewIdGenerator vig,
-            boolean isProfile) {
-        // Remove any existing sections
-        mGeneral.removeAllViews();
-
-        // Bail if invalid state or source
-        if (state == null || type == null) return;
-
-        // Make sure we have StructuredName
-        RawContactModifier.ensureKindExists(state, type, StructuredName.CONTENT_ITEM_TYPE);
-
-        // Fill in the header info
-        mAccountName = state.getAccountName();
-        mAccountType = state.getAccountType();
-        mDataSet = state.getDataSet();
-
-        final Pair<String,String> accountInfo = isProfile
-                ? EditorUiUtils.getLocalAccountInfo(getContext(), state.getAccountName(), type)
-                : EditorUiUtils.getAccountInfo(getContext(), state.getAccountName(), type);
-        if (accountInfo.first == null) {
-            // Hide this view so the other text view will be centered vertically
-            mAccountHeaderNameTextView.setVisibility(View.GONE);
-        } else {
-            mAccountHeaderNameTextView.setVisibility(View.VISIBLE);
-            mAccountHeaderNameTextView.setText(accountInfo.first);
-        }
-        mAccountHeaderTypeTextView.setText(accountInfo.second);
-        updateAccountHeaderContentDescription();
-
-        mAccountIconImageView.setImageDrawable(state.getRawContactAccountType(getContext())
-                .getDisplayIcon(getContext()));
-
-        // TODO: Expose data set in the UI somehow?
-
-        mRawContactId = state.getRawContactId();
-
-        ValuesDelta primary;
-
-        // Photo
-        DataKind kind = type.getKindForMimetype(Photo.CONTENT_ITEM_TYPE);
-        if (kind != null) {
-            RawContactModifier.ensureKindExists(state, type, Photo.CONTENT_ITEM_TYPE);
-            boolean hasPhotoEditor = type.getKindForMimetype(Photo.CONTENT_ITEM_TYPE) != null;
-            setHasPhotoEditor(hasPhotoEditor);
-            primary = state.getPrimaryEntry(Photo.CONTENT_ITEM_TYPE);
-            getPhotoEditor().setValues(kind, primary, state, !type.areContactsWritable(), vig);
-        }
-
-        // Name
-        primary = state.getPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
-        mName.setText(primary != null ? primary.getAsString(StructuredName.DISPLAY_NAME) :
-                getContext().getString(R.string.missing_name));
-
-        if (type.getEditContactActivityClassName() != null) {
-            mEditExternallyButton.setVisibility(View.VISIBLE);
-        } else {
-            mEditExternallyButton.setVisibility(View.GONE);
-        }
-
-        final Resources res = getContext().getResources();
-        // Phones
-        final ArrayList<ValuesDelta> phones = state.getMimeEntries(Phone.CONTENT_ITEM_TYPE);
-        final Drawable phoneDrawable = getResources().getDrawable(R.drawable.ic_phone_24dp);
-        final String phoneContentDescription = res.getString(R.string.header_phone_entry);
-        if (phones != null) {
-            boolean isFirstPhoneBound = true;
-            for (ValuesDelta phone : phones) {
-                final String phoneNumber = phone.getPhoneNumber();
-                if (TextUtils.isEmpty(phoneNumber)) {
-                    continue;
-                }
-                final String formattedNumber = PhoneNumberUtilsCompat.formatNumber(
-                        phoneNumber, phone.getPhoneNormalizedNumber(),
-                        GeoUtil.getCurrentCountryIso(getContext()));
-                CharSequence phoneType = null;
-                if (phone.hasPhoneType()) {
-                    phoneType = Phone.getTypeLabel(
-                            res, phone.getPhoneType(), phone.getPhoneLabel());
-                }
-                bindData(phoneDrawable, phoneContentDescription, formattedNumber, phoneType,
-                        isFirstPhoneBound, true);
-                isFirstPhoneBound = false;
-            }
-        }
-
-        // Emails
-        final ArrayList<ValuesDelta> emails = state.getMimeEntries(Email.CONTENT_ITEM_TYPE);
-        final Drawable emailDrawable = getResources().getDrawable(R.drawable.ic_email_24dp);
-        final String emailContentDescription = res.getString(R.string.header_email_entry);
-        if (emails != null) {
-            boolean isFirstEmailBound = true;
-            for (ValuesDelta email : emails) {
-                final String emailAddress = email.getEmailData();
-                if (TextUtils.isEmpty(emailAddress)) {
-                    continue;
-                }
-                CharSequence emailType = null;
-                if (email.hasEmailType()) {
-                    emailType = Email.getTypeLabel(
-                            res, email.getEmailType(), email.getEmailLabel());
-                }
-                bindData(emailDrawable, emailContentDescription, emailAddress, emailType,
-                        isFirstEmailBound);
-                isFirstEmailBound = false;
-            }
-        }
-
-        // Hide mGeneral if it's empty
-        if (mGeneral.getChildCount() > 0) {
-            mGeneral.setVisibility(View.VISIBLE);
-        } else {
-            mGeneral.setVisibility(View.GONE);
-        }
-    }
-
-    private void bindData(Drawable icon, String iconContentDescription, CharSequence data,
-            CharSequence type, boolean isFirstEntry) {
-        bindData(icon, iconContentDescription, data, type, isFirstEntry, false);
-    }
-
-    private void bindData(Drawable icon, String iconContentDescription, CharSequence data,
-            CharSequence type, boolean isFirstEntry, boolean forceLTR) {
-        final View field = mInflater.inflate(R.layout.item_read_only_field, mGeneral, false);
-        if (isFirstEntry) {
-            final ImageView imageView = (ImageView) field.findViewById(R.id.kind_icon);
-            imageView.setImageDrawable(icon);
-            imageView.setContentDescription(iconContentDescription);
-        } else {
-            final ImageView imageView = (ImageView) field.findViewById(R.id.kind_icon);
-            imageView.setVisibility(View.INVISIBLE);
-            imageView.setContentDescription(null);
-        }
-        final TextView dataView = (TextView) field.findViewById(R.id.data);
-        dataView.setText(data);
-        if (forceLTR) {
-            dataView.setTextDirection(View.TEXT_DIRECTION_LTR);
-        }
-        final TextView typeView = (TextView) field.findViewById(R.id.type);
-        if (!TextUtils.isEmpty(type)) {
-            typeView.setText(type);
-        } else {
-            typeView.setVisibility(View.GONE);
-        }
-
-        mGeneral.addView(field);
-    }
-
-    @Override
-    public long getRawContactId() {
-        return mRawContactId;
-    }
-
-    @Override
-    public void onClick(View v) {
-        if (v.getId() == R.id.button_edit_externally) {
-            if (mListener != null) {
-                mListener.onExternalEditorRequest(
-                        new AccountWithDataSet(mAccountName, mAccountType, mDataSet),
-                        ContentUris.withAppendedId(RawContacts.CONTENT_URI, mRawContactId));
-            }
-        }
-    }
-}
diff --git a/src/com/android/contacts/editor/SelectAccountDialogFragment.java b/src/com/android/contacts/editor/SelectAccountDialogFragment.java
new file mode 100644
index 0000000..3b41c86
--- /dev/null
+++ b/src/com/android/contacts/editor/SelectAccountDialogFragment.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2010 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.editor;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.FragmentManager;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.AccountsLoader;
+import com.android.contacts.util.AccountsListAdapter;
+import com.google.common.base.Preconditions;
+
+import java.util.List;
+
+/**
+ * Shows a dialog asking the user which account to chose.
+ *
+ * The result is passed to {@code targetFragment} passed to {@link #show}.
+ */
+public final class SelectAccountDialogFragment extends DialogFragment
+        implements AccountsLoader.AccountsListener {
+    public static final String TAG = "SelectAccountDialog";
+
+    private static final String KEY_TITLE_RES_ID = "title_res_id";
+    private static final String KEY_LIST_FILTER = "list_filter";
+    private static final String KEY_EXTRA_ARGS = "extra_args";
+
+    private AccountsListAdapter mAccountsAdapter;
+    private AccountTypeManager.AccountFilter mFilter;
+
+    /**
+     * Show the dialog.
+     *
+     * @param fragmentManager {@link FragmentManager}.
+     * @param titleResourceId resource ID to use as the title.
+     * @param extraArgs Extra arguments, which will later be passed to
+     *     {@link Listener#onAccountChosen}.  {@code null} will be converted to
+     *     {@link Bundle#EMPTY}.
+     */
+    public static void show(FragmentManager fragmentManager, int titleResourceId,
+            AccountTypeManager.AccountFilter filter, Bundle extraArgs) {
+        show(fragmentManager, titleResourceId, filter, extraArgs, /* tag */ null);
+    }
+
+    public static void show(FragmentManager fragmentManager, int titleResourceId,
+            AccountTypeManager.AccountFilter filter, Bundle extraArgs, String tag) {
+        final Bundle args = new Bundle();
+        args.putInt(KEY_TITLE_RES_ID, titleResourceId);
+        args.putBundle(KEY_EXTRA_ARGS, (extraArgs == null) ? Bundle.EMPTY : extraArgs);
+        args.putSerializable(KEY_LIST_FILTER, filter);
+
+        final SelectAccountDialogFragment instance = new SelectAccountDialogFragment();
+        instance.setArguments(args);
+        instance.show(fragmentManager, tag);
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        final Bundle args = getArguments();
+        mFilter = (AccountTypeManager.AccountFilter) args.getSerializable(KEY_LIST_FILTER);
+        if (mFilter == null) {
+            mFilter = AccountTypeManager.AccountFilter.ALL;
+        }
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final Bundle args = getArguments();
+
+        mAccountsAdapter = new AccountsListAdapter(builder.getContext());
+        mAccountsAdapter.setCustomLayout(R.layout.account_selector_list_item_condensed);
+
+        final DialogInterface.OnClickListener clickListener =
+                new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                dialog.dismiss();
+
+                onAccountSelected(mAccountsAdapter.getItem(which));
+            }
+        };
+
+        final TextView title = (TextView) View.inflate(getActivity(), R.layout.dialog_title, null);
+        title.setText(args.getInt(KEY_TITLE_RES_ID));
+        builder.setCustomTitle(title);
+        builder.setSingleChoiceItems(mAccountsAdapter, 0, clickListener);
+        final AlertDialog result = builder.create();
+        return result;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        AccountsLoader.loadAccounts(this, 0, mFilter);
+    }
+
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        super.onCancel(dialog);
+        final Listener listener = getListener();
+        if (listener != null) {
+            listener.onAccountSelectorCancelled();
+        }
+    }
+
+    /**
+     * Calls {@link Listener#onAccountChosen}.
+     */
+    private void onAccountSelected(AccountWithDataSet account) {
+        final Listener listener = getListener();
+        if (listener != null) {
+            listener.onAccountChosen(account, getArguments().getBundle(KEY_EXTRA_ARGS));
+        }
+    }
+
+    private Listener getListener() {
+        Listener listener = null;
+        final Activity activity = getActivity();
+        if (activity != null && activity instanceof Listener) {
+            listener = (Listener) activity;
+        }
+        return listener;
+    }
+
+    @Override
+    public void onAccountsLoaded(List<AccountInfo> accounts) {
+        Preconditions.checkNotNull(mAccountsAdapter,
+                "Accounts adapter should have been initialized");
+        mAccountsAdapter.setAccounts(accounts, null);
+    }
+
+    public interface Listener {
+        void onAccountChosen(AccountWithDataSet account, Bundle extraArgs);
+        void onAccountSelectorCancelled();
+    }
+}
diff --git a/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java b/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java
index f3d0ef4..9b4e234 100644
--- a/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java
+++ b/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java
@@ -34,6 +34,7 @@
 public class SplitContactConfirmationDialogFragment extends DialogFragment {
 
     private static final String ARG_HAS_PENDING_CHANGES = "hasPendingChanges";
+    public static final String TAG = "SplitConfirmation";
 
     /**
      * Callbacks for the dialog host.
@@ -47,9 +48,14 @@
          *         that should be saved before the split.
          */
         void onSplitContactConfirmed(boolean hasPendingChanges);
+
+        /**
+         * Invoked if the user has canceled or dismissed the dialog without making a choice.
+         */
+        void onSplitContactCanceled();
     }
 
-    public static void show(ContactEditorBaseFragment fragment, boolean hasPendingChanges) {
+    public static void show(ContactEditorFragment fragment, boolean hasPendingChanges) {
         final Bundle args = new Bundle();
         args.putBoolean(ARG_HAS_PENDING_CHANGES, hasPendingChanges);
 
@@ -65,7 +71,8 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mHasPendingChanges = getArguments().getBoolean(ARG_HAS_PENDING_CHANGES);
+        mHasPendingChanges = getArguments() != null
+                && getArguments().getBoolean(ARG_HAS_PENDING_CHANGES);
     }
 
     @Override
@@ -80,12 +87,28 @@
                 new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
-                        final Listener targetListener = (Listener) getTargetFragment();
-                        targetListener.onSplitContactConfirmed(mHasPendingChanges);
+                        getListener().onSplitContactConfirmed(mHasPendingChanges);
                     }
                 });
-        builder.setNegativeButton(android.R.string.cancel, null);
+        builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                onCancel(dialog);
+            }
+        });
         builder.setCancelable(false);
         return builder.create();
     }
+
+    private Listener getListener() {
+        return getTargetFragment() == null
+                ? (Listener) getActivity()
+                : (Listener) getTargetFragment();
+    }
+
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        super.onCancel(dialog);
+        getListener().onSplitContactCanceled();
+    }
 }
diff --git a/src/com/android/contacts/editor/StructuredNameEditorView.java b/src/com/android/contacts/editor/StructuredNameEditorView.java
index 1a9c693..1387bd1 100644
--- a/src/com/android/contacts/editor/StructuredNameEditorView.java
+++ b/src/com/android/contacts/editor/StructuredNameEditorView.java
@@ -16,39 +16,24 @@
 
 package com.android.contacts.editor;
 
-import com.android.contacts.R;
 import android.content.ContentValues;
 import android.content.Context;
+import android.content.res.Resources;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
 
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.dataitem.DataItem;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.util.NameConverter;
-import com.android.contacts.common.model.dataitem.StructuredNameDataItem;
-
-import java.util.HashMap;
-import java.util.Map;
+import com.android.contacts.R;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.dataitem.DataItem;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.model.dataitem.StructuredNameDataItem;
+import com.android.contacts.util.NameConverter;
 
 /**
- * A dedicated editor for structured name.  When the user collapses/expands
- * the structured name, it will reparse or recompose the name, but only
- * if the user has made changes.  This distinction will be particularly
- * obvious if the name has a non-standard structure. Consider this structure:
- * first name="John Doe", family name="".  As long as the user does not change
- * the full name, expand and collapse will preserve this.  However, if the user
- * changes "John Doe" to "Jane Doe" and then expands the view, we will reparse
- * and show first name="Jane", family name="Doe".
+ * A dedicated editor for structured name.
  */
 public class StructuredNameEditorView extends TextFieldsEditorView {
 
@@ -68,6 +53,16 @@
     }
 
     @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        final Resources res = getResources();
+        mCollapseButtonDescription = res
+                .getString(R.string.collapse_name_fields_description);
+        mExpandButtonDescription = res
+                .getString(R.string.expand_name_fields_description);
+    }
+
+    @Override
     public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, boolean readOnly,
             ViewIdGenerator vig) {
         super.setValues(kind, entry, state, readOnly, vig);
@@ -79,18 +74,9 @@
             mChanged = false;
         }
         updateEmptiness();
-    }
-
-    /**
-     * Displays the icon and name for the given account under the name name input fields.
-     */
-    public void setAccountType(AccountType accountType) {
-        final LinearLayout layout = (LinearLayout) findViewById(R.id.account_type);
-        layout.setVisibility(View.VISIBLE);
-        final ImageView imageView = (ImageView) layout.findViewById(R.id.account_type_icon);
-        imageView.setImageDrawable(accountType.getDisplayIcon(getContext()));
-        final TextView textView = (TextView) layout.findViewById(R.id.account_type_name);
-        textView.setText(accountType.getDisplayLabel(getContext()));
+        // Right alien with rest of the editors. As this view has an extra expand/collapse view on
+        // the right, we need to free the space from deleteContainer
+        mDeleteContainer.setVisibility(View.GONE);
     }
 
     @Override
@@ -103,148 +89,16 @@
         saveValue(column, value);
         mChanged = true;
 
-        // Next make sure the display name and the structured name are synced
-        if (hasShortAndLongForms()) {
-            if (areOptionalFieldsVisible()) {
-                rebuildFullName(getValues());
-            } else {
-                rebuildStructuredName(getValues());
-            }
-        }
-
-        // Then notify the listener, which will rely on the display and structured names to be
-        // synced (in order to provide aggregate suggestions).
+        // Then notify the listener.
         notifyEditorListener();
     }
 
-    @Override
-    protected void onOptionalFieldVisibilityChange() {
-        if (hasShortAndLongForms()) {
-            if (areOptionalFieldsVisible()) {
-                switchFromFullNameToStructuredName();
-            } else {
-                switchFromStructuredNameToFullName();
-            }
-        }
-
-        super.onOptionalFieldVisibilityChange();
-    }
-
-    private void switchFromFullNameToStructuredName() {
-        ValuesDelta values = getValues();
-
-        if (!mChanged) {
-            for (String field : NameConverter.STRUCTURED_NAME_FIELDS) {
-                values.put(field, mSnapshot.getContentValues().getAsString(field));
-            }
-            return;
-        }
-
-        String displayName = values.getDisplayName();
-        Map<String, String> structuredNameMap = NameConverter.displayNameToStructuredName(
-                getContext(), displayName);
-        if (!structuredNameMap.isEmpty()) {
-            eraseFullName(values);
-            for (String field : structuredNameMap.keySet()) {
-                values.put(field, structuredNameMap.get(field));
-            }
-        }
-
-        mSnapshot.getContentValues().clear();
-        mSnapshot.getContentValues().putAll(values.getCompleteValues());
-        mSnapshot.setDisplayName(displayName);
-    }
-
-    private void switchFromStructuredNameToFullName() {
-        ValuesDelta values = getValues();
-
-        if (!mChanged) {
-            values.setDisplayName(mSnapshot.getDisplayName());
-            return;
-        }
-
-        Map<String, String> structuredNameMap = valuesToStructuredNameMap(values);
-        String displayName = NameConverter.structuredNameToDisplayName(getContext(),
-                structuredNameMap);
-        if (!TextUtils.isEmpty(displayName)) {
-            eraseStructuredName(values);
-            values.put(StructuredName.DISPLAY_NAME, displayName);
-        }
-
-        mSnapshot.getContentValues().clear();
-        mSnapshot.setDisplayName(values.getDisplayName());
-        mSnapshot.setMimeType(StructuredName.CONTENT_ITEM_TYPE);
-        for (String field : structuredNameMap.keySet()) {
-            mSnapshot.getContentValues().put(field, structuredNameMap.get(field));
-        }
-    }
-
-    private Map<String, String> valuesToStructuredNameMap(ValuesDelta values) {
-        Map<String, String> structuredNameMap = new HashMap<String, String>();
-        for (String key : NameConverter.STRUCTURED_NAME_FIELDS) {
-            structuredNameMap.put(key, values.getAsString(key));
-        }
-        return structuredNameMap;
-    }
-
-    private void eraseFullName(ValuesDelta values) {
-        values.setDisplayName(null);
-    }
-
-    private void rebuildFullName(ValuesDelta values) {
-        Map<String, String> structuredNameMap = valuesToStructuredNameMap(values);
-        String displayName = NameConverter.structuredNameToDisplayName(getContext(),
-                structuredNameMap);
-        values.setDisplayName(displayName);
-    }
-
-    private void eraseStructuredName(ValuesDelta values) {
-        for (String field : NameConverter.STRUCTURED_NAME_FIELDS) {
-            values.putNull(field);
-        }
-    }
-
-    private void rebuildStructuredName(ValuesDelta values) {
-        String displayName = values.getDisplayName();
-        Map<String, String> structuredNameMap = NameConverter.displayNameToStructuredName(
-                getContext(), displayName);
-        for (String field : structuredNameMap.keySet()) {
-            values.put(field, structuredNameMap.get(field));
-        }
-    }
-
-    /**
-     * Set the display name onto the text field directly.  This does not affect the underlying
-     * data structure so it is similar to the user typing the value in on the field directly.
-     *
-     * @param name The name to set on the text field.
-     */
-    public void setDisplayName(String name) {
-        // For now, assume the first text field is the name.
-        // TODO: Find a better way to get a hold of the name field,
-        // including given_name and family_name.
-        super.setValue(0, name);
-        getValues().setDisplayName(name);
-        rebuildStructuredName(getValues());
-        super.setValue(1, getValues().getAsString(StructuredName.GIVEN_NAME));
-        super.setValue(3, getValues().getAsString(StructuredName.FAMILY_NAME));
-    }
-
     /**
      * Returns the display name currently displayed in the editor.
      */
     public String getDisplayName() {
-        final ValuesDelta valuesDelta = getValues();
-        rebuildFullName(valuesDelta);
-        if (hasShortAndLongForms() && areOptionalFieldsVisible()) {
-            final Map<String, String> structuredNameMap = valuesToStructuredNameMap(valuesDelta);
-            final String displayName = NameConverter.structuredNameToDisplayName(
-                    getContext(), structuredNameMap);
-            if (!TextUtils.isEmpty(displayName)) {
-                return displayName;
-            }
-        }
-        return valuesDelta.getDisplayName();
+        return NameConverter.structuredNameToDisplayName(getContext(),
+                getValues().getCompleteValues());
     }
 
     @Override
diff --git a/src/com/android/contacts/editor/SuggestionEditConfirmationDialogFragment.java b/src/com/android/contacts/editor/SuggestionEditConfirmationDialogFragment.java
index c13d5ea..487a5ee 100644
--- a/src/com/android/contacts/editor/SuggestionEditConfirmationDialogFragment.java
+++ b/src/com/android/contacts/editor/SuggestionEditConfirmationDialogFragment.java
@@ -16,22 +16,24 @@
 
 package com.android.contacts.editor;
 
-import com.android.contacts.R;
-
-import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.DialogFragment;
 import android.content.DialogInterface;
 import android.net.Uri;
 import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
+
+import com.android.contacts.R;
 
 public class SuggestionEditConfirmationDialogFragment extends DialogFragment {
 
     private static final String ARG_CONTACT_URI = "contactUri";
+    private static final String ARG_RAW_CONTACT_ID = "rawContactId";
 
-    public static void show(ContactEditorBaseFragment fragment, Uri contactUri) {
+    public static void show(ContactEditorFragment fragment, Uri contactUri, long rawContactId) {
         final Bundle args = new Bundle();
         args.putParcelable(ARG_CONTACT_URI, contactUri);
+        args.putLong(ARG_RAW_CONTACT_ID, rawContactId);
 
         final SuggestionEditConfirmationDialogFragment dialog = new
                 SuggestionEditConfirmationDialogFragment();
@@ -49,11 +51,13 @@
                         new DialogInterface.OnClickListener() {
                             @Override
                             public void onClick(DialogInterface dialog, int whichButton) {
-                                final ContactEditorBaseFragment targetFragment =
-                                        (ContactEditorBaseFragment) getTargetFragment();
+                                final ContactEditorFragment targetFragment =
+                                        (ContactEditorFragment) getTargetFragment();
                                 final Uri contactUri =
                                         getArguments().getParcelable(ARG_CONTACT_URI);
-                                targetFragment.doEditSuggestedContact(contactUri);
+                                final long rawContactId =
+                                        getArguments().getLong(ARG_RAW_CONTACT_ID);
+                                targetFragment.doEditSuggestedContact(contactUri, rawContactId);
                             }
                         }
                 )
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index df201e1..c3a240a 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.provider.ContactsContract;
@@ -38,14 +39,14 @@
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 
+import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType.EditField;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.util.PhoneNumberFormatter;
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountType.EditField;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.util.PhoneNumberFormatter;
 
 /**
  * Simple editor that handles labels and any {@link EditField} defined for the
@@ -57,8 +58,12 @@
 
     private EditText[] mFieldEditTexts = null;
     private ViewGroup mFields = null;
-    private View mExpansionViewContainer;
-    private ImageView mExpansionView;
+    protected View mExpansionViewContainer;
+    protected ImageView mExpansionView;
+    protected String mCollapseButtonDescription;
+    protected String mExpandButtonDescription;
+    protected String mCollapsedAnnouncement;
+    protected String mExpandedAnnouncement;
     private boolean mHideOptional = true;
     private boolean mHasShortAndLongForms;
     private int mMinFieldHeight;
@@ -90,6 +95,15 @@
         mFields = (ViewGroup) findViewById(R.id.editors);
         mHintTextColorUnfocused = getResources().getColor(R.color.editor_disabled_text_color);
         mExpansionView = (ImageView) findViewById(R.id.expansion_view);
+        mCollapseButtonDescription = getResources()
+                .getString(R.string.collapse_fields_description);
+        mCollapsedAnnouncement = getResources()
+                .getString(R.string.announce_collapsed_fields);
+        mExpandButtonDescription = getResources()
+                .getString(R.string.expand_fields_description);
+        mExpandedAnnouncement = getResources()
+                .getString(R.string.announce_expanded_fields);
+
         mExpansionViewContainer = findViewById(R.id.expansion_view_container);
         if (mExpansionViewContainer != null) {
             mExpansionViewContainer.setOnClickListener(new OnClickListener() {
@@ -98,7 +112,7 @@
                     mPreviousViewHeight = mFields.getHeight();
 
                     // Save focus
-                    final View focusedChild = getFocusedChild();
+                    final View focusedChild = findFocus();
                     final int focusedViewId = focusedChild == null ? -1 : focusedChild.getId();
 
                     // Reconfigure GUI
@@ -115,6 +129,8 @@
                     newFocusView.requestFocus();
 
                     EditorAnimator.getInstance().slideAndFadeIn(mFields, mPreviousViewHeight);
+                    announceForAccessibility(mHideOptional ?
+                            mCollapsedAnnouncement : mExpandedAnnouncement);
                 }
             });
         }
@@ -165,9 +181,12 @@
      * Creates or removes the type/label button. Doesn't do anything if already correctly configured
      */
     private void setupExpansionView(boolean shouldExist, boolean collapsed) {
-        mExpansionView.setImageResource(collapsed
-                ? R.drawable.ic_menu_expander_minimized_holo_light
-                : R.drawable.ic_menu_expander_maximized_holo_light);
+        final Drawable expandIcon = getContext().getDrawable(collapsed
+                ? R.drawable.quantum_ic_expand_more_vd_theme_24
+                : R.drawable.quantum_ic_expand_less_vd_theme_24);
+        mExpansionView.setImageDrawable(expandIcon);
+        mExpansionView.setContentDescription(collapsed ? mExpandButtonDescription
+                : mCollapseButtonDescription);
         mExpansionViewContainer.setVisibility(shouldExist ? View.VISIBLE : View.INVISIBLE);
     }
 
@@ -226,7 +245,8 @@
             fieldView.setInputType(inputType);
             if (inputType == InputType.TYPE_CLASS_PHONE) {
                 PhoneNumberFormatter.setPhoneNumberFormattingTextWatcher(
-                        getContext(), fieldView, /* formatAfterWatcherSet =*/ false);
+                        getContext(), fieldView,
+                        /* formatAfterWatcherSet =*/ state.isContactInsert());
                 fieldView.setTextDirection(View.TEXT_DIRECTION_LTR);
             }
             fieldView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
@@ -387,6 +407,7 @@
         for (int i = 0; i < numChildren; i++) {
             mFieldEditTexts[i].setVisibility(ss.mVisibilities[i]);
         }
+        rebuildValues();
     }
 
     private static class SavedState extends BaseSavedState {
diff --git a/src/com/android/contacts/editor/ViewIdGenerator.java b/src/com/android/contacts/editor/ViewIdGenerator.java
index e7e7948..c4ba31c 100644
--- a/src/com/android/contacts/editor/ViewIdGenerator.java
+++ b/src/com/android/contacts/editor/ViewIdGenerator.java
@@ -20,12 +20,12 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.dataitem.DataKind;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.dataitem.DataKind;
 
 /**
- * A class that provides unique view ids for {@link ContentEditorView}, {@link KindSectionView},
+ * A class that provides unique view ids for {@link ContentEditorView},
  * {@link LabeledEditorView} and {@link EditView} on {@link EditContactActivity}.
  * It is used to assign a unique but consistent id to each view across {@link EditContactActivity}'s
  * lifecycle, so that we can re-construct view state (e.g. focused view) when the screen rotates.
diff --git a/src/com/android/contacts/extensions/ExtendedPhoneDirectoriesManager.java b/src/com/android/contacts/extensions/ExtendedPhoneDirectoriesManager.java
new file mode 100644
index 0000000..2ee0eae
--- /dev/null
+++ b/src/com/android/contacts/extensions/ExtendedPhoneDirectoriesManager.java
@@ -0,0 +1,26 @@
+// Copyright 2013 Google Inc. All Rights Reserved.
+
+package com.android.contacts.extensions;
+
+import android.content.Context;
+
+import com.android.contacts.list.DirectoryPartition;
+
+import java.util.List;
+
+/**
+ * An interface for adding extended phone directories to
+ * {@link com.android.contacts.list.PhoneNumberListAdapter}.
+ * An app that wishes to add custom phone directories should implement this class and advertise it
+ * in assets/contacts_extensions.properties. {@link ExtensionsFactory} will load the implementation
+ * and the extended directories will be added by
+ * {@link com.android.contacts.list.PhoneNumberListAdapter}.
+ */
+public interface ExtendedPhoneDirectoriesManager {
+
+    /**
+     * Return a list of extended directories to add. May return null if no directories are to be
+     * added.
+     */
+    List<DirectoryPartition> getExtendedDirectories(Context context);
+}
diff --git a/src/com/android/contacts/extensions/ExtensionsFactory.java b/src/com/android/contacts/extensions/ExtensionsFactory.java
new file mode 100644
index 0000000..3b0ddb1
--- /dev/null
+++ b/src/com/android/contacts/extensions/ExtensionsFactory.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2013 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.extensions;
+
+import android.content.Context;
+import android.util.Log;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+
+/*
+ * A framework for adding extensions to Dialer. This class reads a property file from
+ * assets/contacts_extensions.properties and loads extension classes that an app has defined. If
+ * an extension class was not defined, null is returned.
+ */
+public class ExtensionsFactory {
+
+    private static String TAG = "ExtensionsFactory";
+
+    // Config filename for mappings of various class names to their custom
+    // implementations.
+    private static final String EXTENSIONS_PROPERTIES = "contacts_extensions.properties";
+
+    private static final String EXTENDED_PHONE_DIRECTORIES_KEY = "extendedPhoneDirectories";
+
+    private static Properties sProperties = null;
+    private static ExtendedPhoneDirectoriesManager mExtendedPhoneDirectoriesManager = null;
+
+    public static void init(Context context) {
+        if (sProperties != null) {
+            return;
+        }
+        try {
+            final InputStream fileStream = context.getAssets().open(EXTENSIONS_PROPERTIES);
+            sProperties = new Properties();
+            sProperties.load(fileStream);
+            fileStream.close();
+
+            final String className = sProperties.getProperty(EXTENDED_PHONE_DIRECTORIES_KEY);
+            if (className != null) {
+                mExtendedPhoneDirectoriesManager = createInstance(className);
+            } else {
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, EXTENDED_PHONE_DIRECTORIES_KEY + " not found in properties file.");
+                }
+            }
+
+        } catch (FileNotFoundException e) {
+            // No custom extensions. Ignore.
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "No custom extensions.");
+            }
+        } catch (IOException e) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, e.toString());
+            }
+        }
+    }
+
+    private static <T> T createInstance(String className) {
+        try {
+            Class<?> c = Class.forName(className);
+            //noinspection unchecked
+            return (T) c.newInstance();
+        } catch (ClassNotFoundException e) {
+            Log.e(TAG, className + ": unable to create instance.", e);
+        } catch (IllegalAccessException e) {
+            Log.e(TAG, className + ": unable to create instance.", e);
+        } catch (InstantiationException e) {
+            Log.e(TAG, className + ": unable to create instance.", e);
+        }
+        return null;
+    }
+
+    public static ExtendedPhoneDirectoriesManager getExtendedPhoneDirectoriesManager() {
+        return mExtendedPhoneDirectoriesManager;
+    }
+}
diff --git a/src/com/android/contacts/format/FormatUtils.java b/src/com/android/contacts/format/FormatUtils.java
new file mode 100644
index 0000000..c82e0d7
--- /dev/null
+++ b/src/com/android/contacts/format/FormatUtils.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2011 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.format;
+
+import android.database.CharArrayBuffer;
+import android.graphics.Typeface;
+import android.text.SpannableString;
+import android.text.style.StyleSpan;
+
+import com.google.common.annotations.VisibleForTesting;
+
+import java.util.Arrays;
+
+/**
+ * Assorted utility methods related to text formatting in Contacts.
+ */
+public class FormatUtils {
+
+    /**
+     * Finds the earliest point in buffer1 at which the first part of buffer2 matches.  For example,
+     * overlapPoint("abcd", "cdef") == 2.
+     */
+    public static int overlapPoint(CharArrayBuffer buffer1, CharArrayBuffer buffer2) {
+        if (buffer1 == null || buffer2 == null) {
+            return -1;
+        }
+        return overlapPoint(Arrays.copyOfRange(buffer1.data, 0, buffer1.sizeCopied),
+                Arrays.copyOfRange(buffer2.data, 0, buffer2.sizeCopied));
+    }
+
+    /**
+     * Finds the earliest point in string1 at which the first part of string2 matches.  For example,
+     * overlapPoint("abcd", "cdef") == 2.
+     */
+    @VisibleForTesting
+    public static int overlapPoint(String string1, String string2) {
+        if (string1 == null || string2 == null) {
+            return -1;
+        }
+        return overlapPoint(string1.toCharArray(), string2.toCharArray());
+    }
+
+    /**
+     * Finds the earliest point in array1 at which the first part of array2 matches.  For example,
+     * overlapPoint("abcd", "cdef") == 2.
+     */
+    public static int overlapPoint(char[] array1, char[] array2) {
+        if (array1 == null || array2 == null) {
+            return -1;
+        }
+        int count1 = array1.length;
+        int count2 = array2.length;
+
+        // Ignore matching tails of the two arrays.
+        while (count1 > 0 && count2 > 0 && array1[count1 - 1] == array2[count2 - 1]) {
+            count1--;
+            count2--;
+        }
+
+        int size = count2;
+        for (int i = 0; i < count1; i++) {
+            if (i + size > count1) {
+                size = count1 - i;
+            }
+            int j;
+            for (j = 0; j < size; j++) {
+                if (array1[i+j] != array2[j]) {
+                    break;
+                }
+            }
+            if (j == size) {
+                return i;
+            }
+        }
+
+        return -1;
+    }
+
+    /**
+     * Applies the given style to a range of the input CharSequence.
+     * @param style The style to apply (see the style constants in {@link Typeface}).
+     * @param input The CharSequence to style.
+     * @param start Starting index of the range to style (will be clamped to be a minimum of 0).
+     * @param end Ending index of the range to style (will be clamped to a maximum of the input
+     *     length).
+     * @param flags Bitmask for configuring behavior of the span.  See {@link android.text.Spanned}.
+     * @return The styled CharSequence.
+     */
+    public static CharSequence applyStyleToSpan(int style, CharSequence input, int start, int end,
+            int flags) {
+        // Enforce bounds of the char sequence.
+        start = Math.max(0, start);
+        end = Math.min(input.length(), end);
+        SpannableString text = new SpannableString(input);
+        text.setSpan(new StyleSpan(style), start, end, flags);
+        return text;
+    }
+
+    @VisibleForTesting
+    public static void copyToCharArrayBuffer(String text, CharArrayBuffer buffer) {
+        if (text != null) {
+            char[] data = buffer.data;
+            if (data == null || data.length < text.length()) {
+                buffer.data = text.toCharArray();
+            } else {
+                text.getChars(0, text.length(), data, 0);
+            }
+            buffer.sizeCopied = text.length();
+        } else {
+            buffer.sizeCopied = 0;
+        }
+    }
+
+    /** Returns a String that represents the content of the given {@link CharArrayBuffer}. */
+    @VisibleForTesting
+    public static String charArrayBufferToString(CharArrayBuffer buffer) {
+        return new String(buffer.data, 0, buffer.sizeCopied);
+    }
+
+    /**
+     * Finds the index of the first word that starts with the given prefix.
+     * <p>
+     * If not found, returns -1.
+     *
+     * @param text the text in which to search for the prefix
+     * @param prefix the text to find, in upper case letters
+     */
+    public static int indexOfWordPrefix(CharSequence text, String prefix) {
+        if (prefix == null || text == null) {
+            return -1;
+        }
+
+        int textLength = text.length();
+        int prefixLength = prefix.length();
+
+        if (prefixLength == 0 || textLength < prefixLength) {
+            return -1;
+        }
+
+        int i = 0;
+        while (i < textLength) {
+            // Skip non-word characters
+            while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) {
+                i++;
+            }
+
+            if (i + prefixLength > textLength) {
+                return -1;
+            }
+
+            // Compare the prefixes
+            int j;
+            for (j = 0; j < prefixLength; j++) {
+                if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) {
+                    break;
+                }
+            }
+            if (j == prefixLength) {
+                return i;
+            }
+
+            // Skip this word
+            while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) {
+                i++;
+            }
+        }
+
+        return -1;
+    }
+
+}
diff --git a/src/com/android/contacts/format/TextHighlighter.java b/src/com/android/contacts/format/TextHighlighter.java
new file mode 100644
index 0000000..38c5c2d
--- /dev/null
+++ b/src/com/android/contacts/format/TextHighlighter.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2011 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.format;
+
+import android.text.SpannableString;
+import android.text.style.CharacterStyle;
+import android.text.style.StyleSpan;
+import android.widget.TextView;
+
+/**
+ * Highlights the text in a text field.
+ */
+public class TextHighlighter {
+    private final String TAG = TextHighlighter.class.getSimpleName();
+    private final static boolean DEBUG = false;
+
+    private int mTextStyle;
+
+    private CharacterStyle mTextStyleSpan;
+
+    public TextHighlighter(int textStyle) {
+        mTextStyle = textStyle;
+        mTextStyleSpan = getStyleSpan();
+    }
+
+    /**
+     * Sets the text on the given text view, highlighting the word that matches the given prefix.
+     *
+     * @param view the view on which to set the text
+     * @param text the string to use as the text
+     * @param prefix the prefix to look for
+     */
+    public void setPrefixText(TextView view, String text, String prefix) {
+        view.setText(applyPrefixHighlight(text, prefix));
+    }
+
+    private CharacterStyle getStyleSpan() {
+        return new StyleSpan(mTextStyle);
+    }
+
+    /**
+     * Applies highlight span to the text.
+     * @param text Text sequence to be highlighted.
+     * @param start Start position of the highlight sequence.
+     * @param end End position of the highlight sequence.
+     */
+    public void applyMaskingHighlight(SpannableString text, int start, int end) {
+        /** Sets text color of the masked locations to be highlighted. */
+        text.setSpan(getStyleSpan(), start, end, 0);
+    }
+
+    /**
+     * Returns a CharSequence which highlights the given prefix if found in the given text.
+     *
+     * @param text the text to which to apply the highlight
+     * @param prefix the prefix to look for
+     */
+    public CharSequence applyPrefixHighlight(CharSequence text, String prefix) {
+        if (prefix == null) {
+            return text;
+        }
+
+        // Skip non-word characters at the beginning of prefix.
+        int prefixStart = 0;
+        while (prefixStart < prefix.length() &&
+                !Character.isLetterOrDigit(prefix.charAt(prefixStart))) {
+            prefixStart++;
+        }
+        final String trimmedPrefix = prefix.substring(prefixStart);
+
+        int index = FormatUtils.indexOfWordPrefix(text, trimmedPrefix);
+        if (index != -1) {
+            final SpannableString result = new SpannableString(text);
+            result.setSpan(mTextStyleSpan, index, index + trimmedPrefix.length(), 0 /* flags */);
+            return result;
+        } else {
+            return text;
+        }
+    }
+}
diff --git a/src/com/android/contacts/group/GroupBrowseListAdapter.java b/src/com/android/contacts/group/GroupBrowseListAdapter.java
deleted file mode 100644
index 48751e7..0000000
--- a/src/com/android/contacts/group/GroupBrowseListAdapter.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (C) 2011 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.group;
-
-import android.content.ContentUris;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.ContactsContract.Groups;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.TextView;
-
-import com.android.contacts.GroupListLoader;
-import com.android.contacts.R;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.google.common.base.Objects;
-
-/**
- * Adapter to populate the list of groups.
- */
-public class GroupBrowseListAdapter extends BaseAdapter {
-
-    private final Context mContext;
-    private final LayoutInflater mLayoutInflater;
-    private final AccountTypeManager mAccountTypeManager;
-
-    private Cursor mCursor;
-
-    private boolean mSelectionVisible;
-    private Uri mSelectedGroupUri;
-
-    public GroupBrowseListAdapter(Context context) {
-        mContext = context;
-        mLayoutInflater = LayoutInflater.from(context);
-        mAccountTypeManager = AccountTypeManager.getInstance(mContext);
-    }
-
-    public void setCursor(Cursor cursor) {
-        mCursor = cursor;
-
-        // If there's no selected group already and the cursor is valid, then by default, select the
-        // first group
-        if (mSelectedGroupUri == null && cursor != null && cursor.getCount() > 0) {
-            GroupListItem firstItem = getItem(0);
-            long groupId = (firstItem == null) ? 0 : firstItem.getGroupId();
-            mSelectedGroupUri = getGroupUriFromId(groupId);
-        }
-
-        notifyDataSetChanged();
-    }
-
-    public int getSelectedGroupPosition() {
-        if (mSelectedGroupUri == null || mCursor == null || mCursor.getCount() == 0) {
-            return -1;
-        }
-
-        int index = 0;
-        mCursor.moveToPosition(-1);
-        while (mCursor.moveToNext()) {
-            long groupId = mCursor.getLong(GroupListLoader.GROUP_ID);
-            Uri uri = getGroupUriFromId(groupId);
-            if (mSelectedGroupUri.equals(uri)) {
-                  return index;
-            }
-            index++;
-        }
-        return -1;
-    }
-
-    public void setSelectionVisible(boolean flag) {
-        mSelectionVisible = flag;
-    }
-
-    public void setSelectedGroup(Uri groupUri) {
-        mSelectedGroupUri = groupUri;
-    }
-
-    private boolean isSelectedGroup(Uri groupUri) {
-        return mSelectedGroupUri != null && mSelectedGroupUri.equals(groupUri);
-    }
-
-    public Uri getSelectedGroup() {
-        return mSelectedGroupUri;
-    }
-
-    @Override
-    public int getCount() {
-        return (mCursor == null || mCursor.isClosed()) ? 0 : mCursor.getCount();
-    }
-
-    @Override
-    public long getItemId(int position) {
-        return position;
-    }
-
-    @Override
-    public GroupListItem getItem(int position) {
-        if (mCursor == null || mCursor.isClosed() || !mCursor.moveToPosition(position)) {
-            return null;
-        }
-        String accountName = mCursor.getString(GroupListLoader.ACCOUNT_NAME);
-        String accountType = mCursor.getString(GroupListLoader.ACCOUNT_TYPE);
-        String dataSet = mCursor.getString(GroupListLoader.DATA_SET);
-        long groupId = mCursor.getLong(GroupListLoader.GROUP_ID);
-        String title = mCursor.getString(GroupListLoader.TITLE);
-        int memberCount = mCursor.getInt(GroupListLoader.MEMBER_COUNT);
-
-        // Figure out if this is the first group for this account name / account type pair by
-        // checking the previous entry. This is to determine whether or not we need to display an
-        // account header in this item.
-        int previousIndex = position - 1;
-        boolean isFirstGroupInAccount = true;
-        if (previousIndex >= 0 && mCursor.moveToPosition(previousIndex)) {
-            String previousGroupAccountName = mCursor.getString(GroupListLoader.ACCOUNT_NAME);
-            String previousGroupAccountType = mCursor.getString(GroupListLoader.ACCOUNT_TYPE);
-            String previousGroupDataSet = mCursor.getString(GroupListLoader.DATA_SET);
-
-            if (accountName.equals(previousGroupAccountName) &&
-                    accountType.equals(previousGroupAccountType) &&
-                    Objects.equal(dataSet, previousGroupDataSet)) {
-                isFirstGroupInAccount = false;
-            }
-        }
-
-        return new GroupListItem(accountName, accountType, dataSet, groupId, title,
-                isFirstGroupInAccount, memberCount);
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        GroupListItem entry = getItem(position);
-        View result;
-        GroupListItemViewCache viewCache;
-        if (convertView != null) {
-            result = convertView;
-            viewCache = (GroupListItemViewCache) result.getTag();
-        } else {
-            result = mLayoutInflater.inflate(R.layout.group_browse_list_item, parent, false);
-            viewCache = new GroupListItemViewCache(result);
-            result.setTag(viewCache);
-        }
-
-        // Add a header if this is the first group in an account and hide the divider
-        if (entry.isFirstGroupInAccount()) {
-            bindHeaderView(entry, viewCache);
-            viewCache.accountHeader.setVisibility(View.VISIBLE);
-            viewCache.divider.setVisibility(View.GONE);
-            if (position == 0) {
-                // Have the list's top padding in the first header.
-                //
-                // This allows the ListView to show correct fading effect on top.
-                // If we have topPadding in the ListView itself, an inappropriate padding is
-                // inserted between fading items and the top edge.
-                viewCache.accountHeaderExtraTopPadding.setVisibility(View.VISIBLE);
-            } else {
-                viewCache.accountHeaderExtraTopPadding.setVisibility(View.GONE);
-            }
-        } else {
-            viewCache.accountHeader.setVisibility(View.GONE);
-            viewCache.divider.setVisibility(View.VISIBLE);
-            viewCache.accountHeaderExtraTopPadding.setVisibility(View.GONE);
-        }
-
-        // Bind the group data
-        Uri groupUri = getGroupUriFromId(entry.getGroupId());
-        String memberCountString = mContext.getResources().getQuantityString(
-                R.plurals.group_list_num_contacts_in_group, entry.getMemberCount(),
-                entry.getMemberCount());
-        viewCache.setUri(groupUri);
-        viewCache.groupTitle.setText(entry.getTitle());
-        viewCache.groupMemberCount.setText(memberCountString);
-
-        if (mSelectionVisible) {
-            result.setActivated(isSelectedGroup(groupUri));
-        }
-        return result;
-    }
-
-    private void bindHeaderView(GroupListItem entry, GroupListItemViewCache viewCache) {
-        AccountType accountType = mAccountTypeManager.getAccountType(
-                entry.getAccountType(), entry.getDataSet());
-        viewCache.accountType.setText(accountType.getDisplayLabel(mContext));
-        viewCache.accountName.setText(entry.getAccountName());
-    }
-
-    private static Uri getGroupUriFromId(long groupId) {
-        return ContentUris.withAppendedId(Groups.CONTENT_URI, groupId);
-    }
-
-    /**
-     * Cache of the children views of a contact detail entry represented by a
-     * {@link GroupListItem}
-     */
-    public static class GroupListItemViewCache {
-        public final TextView accountType;
-        public final TextView accountName;
-        public final TextView groupTitle;
-        public final TextView groupMemberCount;
-        public final View accountHeader;
-        public final View accountHeaderExtraTopPadding;
-        public final View divider;
-        private Uri mUri;
-
-        public GroupListItemViewCache(View view) {
-            accountType = (TextView) view.findViewById(R.id.account_type);
-            accountName = (TextView) view.findViewById(R.id.account_name);
-            groupTitle = (TextView) view.findViewById(R.id.label);
-            groupMemberCount = (TextView) view.findViewById(R.id.count);
-            accountHeader = view.findViewById(R.id.group_list_header);
-            accountHeaderExtraTopPadding = view.findViewById(R.id.header_extra_top_padding);
-            divider = view.findViewById(R.id.divider);
-        }
-
-        public void setUri(Uri uri) {
-            mUri = uri;
-        }
-
-        public Uri getUri() {
-            return mUri;
-        }
-    }
-}
diff --git a/src/com/android/contacts/group/GroupBrowseListFragment.java b/src/com/android/contacts/group/GroupBrowseListFragment.java
deleted file mode 100644
index d39501a..0000000
--- a/src/com/android/contacts/group/GroupBrowseListFragment.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * Copyright (C) 2011 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.group;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.LoaderManager;
-import android.app.LoaderManager.LoaderCallbacks;
-import android.content.Context;
-import android.content.CursorLoader;
-import android.content.Intent;
-import android.content.Loader;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract;
-import android.provider.Settings;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.View.OnFocusChangeListener;
-import android.view.View.OnTouchListener;
-import android.view.ViewGroup;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import com.android.contacts.GroupListLoader;
-import com.android.contacts.R;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-import com.android.contacts.group.GroupBrowseListAdapter.GroupListItemViewCache;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.list.AutoScrollListView;
-
-/**
- * Fragment to display the list of groups.
- */
-public class GroupBrowseListFragment extends Fragment
-        implements OnFocusChangeListener, OnTouchListener {
-
-    /**
-     * Action callbacks that can be sent by a group list.
-     */
-    public interface OnGroupBrowserActionListener  {
-
-        /**
-         * Opens the specified group for viewing.
-         *
-         * @param groupUri for the group that the user wishes to view.
-         */
-        void onViewGroupAction(Uri groupUri);
-
-    }
-
-    private static final String TAG = "GroupBrowseListFragment";
-
-    private static final int LOADER_GROUPS = 1;
-
-    private Context mContext;
-    private Cursor mGroupListCursor;
-
-    private boolean mSelectionToScreenRequested;
-
-    private static final String EXTRA_KEY_GROUP_URI = "groups.groupUri";
-
-    private View mRootView;
-    private AutoScrollListView mListView;
-    private TextView mEmptyView;
-    private View mAddAccountsView;
-    private View mAddAccountButton;
-
-    private GroupBrowseListAdapter mAdapter;
-    private boolean mSelectionVisible;
-    private Uri mSelectedGroupUri;
-
-    private int mVerticalScrollbarPosition = View.SCROLLBAR_POSITION_RIGHT;
-
-    private OnGroupBrowserActionListener mListener;
-
-    public GroupBrowseListFragment() {
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        if (savedInstanceState != null) {
-            mSelectedGroupUri = savedInstanceState.getParcelable(EXTRA_KEY_GROUP_URI);
-            if (mSelectedGroupUri != null) {
-                // The selection may be out of screen, if rotated from portrait to landscape,
-                // so ensure it's visible.
-                mSelectionToScreenRequested = true;
-            }
-        }
-
-        mRootView = inflater.inflate(R.layout.group_browse_list_fragment, null);
-        mEmptyView = (TextView)mRootView.findViewById(R.id.empty);
-
-        mAdapter = new GroupBrowseListAdapter(mContext);
-        mAdapter.setSelectionVisible(mSelectionVisible);
-        mAdapter.setSelectedGroup(mSelectedGroupUri);
-
-        mListView = (AutoScrollListView) mRootView.findViewById(R.id.list);
-        mListView.setOnFocusChangeListener(this);
-        mListView.setOnTouchListener(this);
-        mListView.setAdapter(mAdapter);
-        mListView.setOnItemClickListener(new OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                GroupListItemViewCache groupListItem = (GroupListItemViewCache) view.getTag();
-                if (groupListItem != null) {
-                    viewGroup(groupListItem.getUri());
-                }
-            }
-        });
-
-        mListView.setEmptyView(mEmptyView);
-        configureVerticalScrollbar();
-
-        mAddAccountsView = mRootView.findViewById(R.id.add_accounts);
-        mAddAccountButton = mRootView.findViewById(R.id.add_account_button);
-        mAddAccountButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT);
-                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
-                intent.putExtra(Settings.EXTRA_AUTHORITIES,
-                        new String[] { ContactsContract.AUTHORITY });
-                ImplicitIntentsUtil.startActivityOutsideApp(getActivity(), intent);
-            }
-        });
-        setAddAccountsVisibility(!ContactsUtils.areGroupWritableAccountsAvailable(mContext));
-
-        return mRootView;
-    }
-
-    public void setVerticalScrollbarPosition(int position) {
-        mVerticalScrollbarPosition = position;
-        if (mListView != null) {
-            configureVerticalScrollbar();
-        }
-    }
-
-    private void configureVerticalScrollbar() {
-        mListView.setVerticalScrollbarPosition(mVerticalScrollbarPosition);
-        mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
-        int leftPadding = 0;
-        int rightPadding = 0;
-        if (mVerticalScrollbarPosition == View.SCROLLBAR_POSITION_LEFT) {
-            leftPadding = mContext.getResources().getDimensionPixelOffset(
-                    R.dimen.list_visible_scrollbar_padding);
-        } else {
-            rightPadding = mContext.getResources().getDimensionPixelOffset(
-                    R.dimen.list_visible_scrollbar_padding);
-        }
-        mListView.setPadding(leftPadding, mListView.getPaddingTop(),
-                rightPadding, mListView.getPaddingBottom());
-    }
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        mContext = activity;
-    }
-
-    @Override
-    public void onDetach() {
-        super.onDetach();
-        mContext = null;
-    }
-
-    @Override
-    public void onStart() {
-        getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupLoaderListener);
-        super.onStart();
-    }
-
-    /**
-     * The listener for the group meta data loader for all groups.
-     */
-    private final LoaderManager.LoaderCallbacks<Cursor> mGroupLoaderListener =
-            new LoaderCallbacks<Cursor>() {
-
-        @Override
-        public CursorLoader onCreateLoader(int id, Bundle args) {
-            mEmptyView.setText(null);
-            return new GroupListLoader(mContext);
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            mGroupListCursor = data;
-            bindGroupList();
-        }
-
-        public void onLoaderReset(Loader<Cursor> loader) {
-        }
-    };
-
-    private void bindGroupList() {
-        mEmptyView.setText(R.string.noGroups);
-        setAddAccountsVisibility(!ContactsUtils.areGroupWritableAccountsAvailable(mContext));
-        if (mGroupListCursor == null) {
-            return;
-        }
-        mAdapter.setCursor(mGroupListCursor);
-
-        if (mSelectionToScreenRequested) {
-            mSelectionToScreenRequested = false;
-            requestSelectionToScreen();
-        }
-
-        mSelectedGroupUri = mAdapter.getSelectedGroup();
-        if (mSelectionVisible && mSelectedGroupUri != null) {
-            viewGroup(mSelectedGroupUri);
-        }
-    }
-
-    public void setListener(OnGroupBrowserActionListener listener) {
-        mListener = listener;
-    }
-
-    public void setSelectionVisible(boolean flag) {
-        mSelectionVisible = flag;
-        if (mAdapter != null) {
-            mAdapter.setSelectionVisible(mSelectionVisible);
-        }
-    }
-
-    private void setSelectedGroup(Uri groupUri) {
-        mSelectedGroupUri = groupUri;
-        mAdapter.setSelectedGroup(groupUri);
-        mListView.invalidateViews();
-    }
-
-    private void viewGroup(Uri groupUri) {
-        setSelectedGroup(groupUri);
-        if (mListener != null) mListener.onViewGroupAction(groupUri);
-    }
-
-    public void setSelectedUri(Uri groupUri) {
-        viewGroup(groupUri);
-        mSelectionToScreenRequested = true;
-    }
-
-    protected void requestSelectionToScreen() {
-        if (!mSelectionVisible) {
-            return; // If selection isn't visible we don't care.
-        }
-        int selectedPosition = mAdapter.getSelectedGroupPosition();
-        if (selectedPosition != -1) {
-            mListView.requestPositionToScreen(selectedPosition,
-                    true /* smooth scroll requested */);
-        }
-    }
-
-    private void hideSoftKeyboard() {
-        if (mContext == null) {
-            return;
-        }
-        // Hide soft keyboard, if visible
-        InputMethodManager inputMethodManager = (InputMethodManager)
-                mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
-        inputMethodManager.hideSoftInputFromWindow(mListView.getWindowToken(), 0);
-    }
-
-    /**
-     * Dismisses the soft keyboard when the list takes focus.
-     */
-    @Override
-    public void onFocusChange(View view, boolean hasFocus) {
-        if (view == mListView && hasFocus) {
-            hideSoftKeyboard();
-        }
-    }
-
-    /**
-     * Dismisses the soft keyboard when the list is touched.
-     */
-    @Override
-    public boolean onTouch(View view, MotionEvent event) {
-        if (view == mListView) {
-            hideSoftKeyboard();
-        }
-        return false;
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putParcelable(EXTRA_KEY_GROUP_URI, mSelectedGroupUri);
-    }
-
-    public void setAddAccountsVisibility(boolean visible) {
-        if (mAddAccountsView != null) {
-            mAddAccountsView.setVisibility(visible ? View.VISIBLE : View.GONE);
-        }
-    }
-}
diff --git a/src/com/android/contacts/group/GroupDetailDisplayUtils.java b/src/com/android/contacts/group/GroupDetailDisplayUtils.java
deleted file mode 100644
index fb0b0c8..0000000
--- a/src/com/android/contacts/group/GroupDetailDisplayUtils.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2011 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.group;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.android.contacts.R;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-
-public class GroupDetailDisplayUtils {
-
-    private GroupDetailDisplayUtils() {
-        // Disallow explicit creation of this class.
-    }
-
-    public static View getNewGroupSourceView(Context context) {
-        LayoutInflater inflater = (LayoutInflater)context.getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-        return inflater.inflate(R.layout.group_source_button, null);
-    }
-
-    public static void bindGroupSourceView(Context context, View view, String accountTypeString,
-            String dataSet) {
-        AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(context);
-        AccountType accountType = accountTypeManager.getAccountType(accountTypeString, dataSet);
-
-        TextView label = (TextView) view.findViewById(android.R.id.title);
-        if (label == null) {
-            throw new IllegalStateException("Group source view must contain a TextView with id"
-                    + "android.R.id.label");
-        }
-        label.setText(accountType.getViewGroupLabel(context));
-
-        ImageView accountIcon = (ImageView) view.findViewById(android.R.id.icon);
-        if (accountIcon == null) {
-            throw new IllegalStateException("Group source view must contain an ImageView with id"
-                    + "android.R.id.icon");
-        }
-        accountIcon.setImageDrawable(accountType.getDisplayIcon(context));
-    }
-}
diff --git a/src/com/android/contacts/group/GroupDetailFragment.java b/src/com/android/contacts/group/GroupDetailFragment.java
deleted file mode 100644
index c9cf6bd..0000000
--- a/src/com/android/contacts/group/GroupDetailFragment.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- * Copyright (C) 2011 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.group;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.LoaderManager;
-import android.app.LoaderManager.LoaderCallbacks;
-import android.content.ActivityNotFoundException;
-import android.content.ContentUris;
-import android.content.Context;
-import android.content.CursorLoader;
-import android.content.Intent;
-import android.content.Loader;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.graphics.Rect;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract.Groups;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
-import android.widget.ListView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.android.contacts.GroupMemberLoader;
-import com.android.contacts.GroupMetaDataLoader;
-import com.android.contacts.R;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-import com.android.contacts.interactions.GroupDeletionDialogFragment;
-import com.android.contacts.common.list.ContactTileAdapter;
-import com.android.contacts.common.list.ContactTileView;
-import com.android.contacts.list.GroupMemberTileAdapter;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-
-/**
- * Displays the details of a group and shows a list of actions possible for the group.
- */
-public class GroupDetailFragment extends Fragment implements OnScrollListener {
-
-    public static interface Listener {
-        /**
-         * The group title has been loaded
-         */
-        public void onGroupTitleUpdated(String title);
-
-        /**
-         * The number of group members has been determined
-         */
-        public void onGroupSizeUpdated(String size);
-
-        /**
-         * The account type and dataset have been determined.
-         */
-        public void onAccountTypeUpdated(String accountTypeString, String dataSet);
-
-        /**
-         * User decided to go to Edit-Mode
-         */
-        public void onEditRequested(Uri groupUri);
-
-        /**
-         * Contact is selected and should launch details page
-         */
-        public void onContactSelected(Uri contactUri);
-    }
-
-    private static final String TAG = "GroupDetailFragment";
-
-    private static final int LOADER_METADATA = 0;
-    private static final int LOADER_MEMBERS = 1;
-
-    private Context mContext;
-
-    private View mRootView;
-    private ViewGroup mGroupSourceViewContainer;
-    private View mGroupSourceView;
-    private TextView mGroupTitle;
-    private TextView mGroupSize;
-    private ListView mMemberListView;
-    private View mEmptyView;
-
-    private Listener mListener;
-
-    private ContactTileAdapter mAdapter;
-    private ContactPhotoManager mPhotoManager;
-    private AccountTypeManager mAccountTypeManager;
-
-    private Uri mGroupUri;
-    private long mGroupId;
-    private String mGroupName;
-    private String mAccountTypeString;
-    private String mDataSet;
-    private boolean mIsReadOnly;
-    private boolean mIsMembershipEditable;
-
-    private boolean mShowGroupActionInActionBar;
-    private boolean mOptionsMenuGroupDeletable;
-    private boolean mOptionsMenuGroupEditable;
-    private boolean mCloseActivityAfterDelete;
-
-    public GroupDetailFragment() {
-    }
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        mContext = activity;
-        mAccountTypeManager = AccountTypeManager.getInstance(mContext);
-
-        Resources res = getResources();
-        int columnCount = res.getInteger(R.integer.contact_tile_column_count);
-
-        mAdapter = new GroupMemberTileAdapter(activity, mContactTileListener, columnCount);
-
-        configurePhotoLoader();
-    }
-
-    @Override
-    public void onDetach() {
-        super.onDetach();
-        mContext = null;
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        setHasOptionsMenu(true);
-        mRootView = inflater.inflate(R.layout.group_detail_fragment, container, false);
-        mGroupTitle = (TextView) mRootView.findViewById(R.id.group_title);
-        mGroupSize = (TextView) mRootView.findViewById(R.id.group_size);
-        mGroupSourceViewContainer = (ViewGroup) mRootView.findViewById(
-                R.id.group_source_view_container);
-        mEmptyView = mRootView.findViewById(android.R.id.empty);
-        mMemberListView = (ListView) mRootView.findViewById(android.R.id.list);
-        mMemberListView.setItemsCanFocus(true);
-        mMemberListView.setAdapter(mAdapter);
-
-        return mRootView;
-    }
-
-    public void loadGroup(Uri groupUri) {
-        mGroupUri= groupUri;
-        startGroupMetadataLoader();
-    }
-
-    public void setQuickContact(boolean enableQuickContact) {
-        mAdapter.enableQuickContact(enableQuickContact);
-    }
-
-    private void configurePhotoLoader() {
-        if (mContext != null) {
-            if (mPhotoManager == null) {
-                mPhotoManager = ContactPhotoManager.getInstance(mContext);
-            }
-            if (mMemberListView != null) {
-                mMemberListView.setOnScrollListener(this);
-            }
-            if (mAdapter != null) {
-                mAdapter.setPhotoLoader(mPhotoManager);
-            }
-        }
-    }
-
-    public void setListener(Listener value) {
-        mListener = value;
-    }
-
-    public void setShowGroupSourceInActionBar(boolean show) {
-        mShowGroupActionInActionBar = show;
-    }
-
-    public Uri getGroupUri() {
-        return mGroupUri;
-    }
-
-    /**
-     * Start the loader to retrieve the metadata for this group.
-     */
-    private void startGroupMetadataLoader() {
-        getLoaderManager().restartLoader(LOADER_METADATA, null, mGroupMetadataLoaderListener);
-    }
-
-    /**
-     * Start the loader to retrieve the list of group members.
-     */
-    private void startGroupMembersLoader() {
-        getLoaderManager().restartLoader(LOADER_MEMBERS, null, mGroupMemberListLoaderListener);
-    }
-
-    private final ContactTileView.Listener mContactTileListener =
-            new ContactTileView.Listener() {
-
-        @Override
-        public void onContactSelected(Uri contactUri, Rect targetRect) {
-            mListener.onContactSelected(contactUri);
-        }
-
-        @Override
-        public void onCallNumberDirectly(String phoneNumber) {
-            // No need to call phone number directly from People app.
-            Log.w(TAG, "unexpected invocation of onCallNumberDirectly()");
-        }
-
-        @Override
-        public int getApproximateTileWidth() {
-            return getView().getWidth() / mAdapter.getColumnCount();
-        }
-    };
-
-    /**
-     * The listener for the group metadata loader.
-     */
-    private final LoaderManager.LoaderCallbacks<Cursor> mGroupMetadataLoaderListener =
-            new LoaderCallbacks<Cursor>() {
-
-        @Override
-        public CursorLoader onCreateLoader(int id, Bundle args) {
-            return new GroupMetaDataLoader(mContext, mGroupUri);
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            if (data == null || data.isClosed()) {
-                Log.e(TAG, "Failed to load group metadata");
-                return;
-            }
-            data.moveToPosition(-1);
-            if (data.moveToNext()) {
-                boolean deleted = data.getInt(GroupMetaDataLoader.DELETED) == 1;
-                if (!deleted) {
-                    bindGroupMetaData(data);
-
-                    // Retrieve the list of members
-                    startGroupMembersLoader();
-                    return;
-                }
-            }
-            updateSize(-1);
-            updateTitle(null);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> loader) {}
-    };
-
-    /**
-     * The listener for the group members list loader
-     */
-    private final LoaderManager.LoaderCallbacks<Cursor> mGroupMemberListLoaderListener =
-            new LoaderCallbacks<Cursor>() {
-
-        @Override
-        public CursorLoader onCreateLoader(int id, Bundle args) {
-            return GroupMemberLoader.constructLoaderForGroupDetailQuery(mContext, mGroupId);
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            if (data == null || data.isClosed()) {
-                Log.e(TAG, "Failed to load group members");
-                return;
-            }
-            updateSize(data.getCount());
-            mAdapter.setContactCursor(data);
-            mMemberListView.setEmptyView(mEmptyView);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> loader) {}
-    };
-
-    private void bindGroupMetaData(Cursor cursor) {
-        cursor.moveToPosition(-1);
-        if (cursor.moveToNext()) {
-            mAccountTypeString = cursor.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
-            mDataSet = cursor.getString(GroupMetaDataLoader.DATA_SET);
-            mGroupId = cursor.getLong(GroupMetaDataLoader.GROUP_ID);
-            mGroupName = cursor.getString(GroupMetaDataLoader.TITLE);
-            mIsReadOnly = cursor.getInt(GroupMetaDataLoader.IS_READ_ONLY) == 1;
-            updateTitle(mGroupName);
-            // Must call invalidate so that the option menu will get updated
-            getActivity().invalidateOptionsMenu ();
-
-            final String accountTypeString = cursor.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
-            final String dataSet = cursor.getString(GroupMetaDataLoader.DATA_SET);
-            updateAccountType(accountTypeString, dataSet);
-        }
-    }
-
-    private void updateTitle(String title) {
-        if (mGroupTitle != null) {
-            mGroupTitle.setText(title);
-        } else {
-            mListener.onGroupTitleUpdated(title);
-        }
-    }
-
-    /**
-     * Display the count of the number of group members.
-     * @param size of the group (can be -1 if no size could be determined)
-     */
-    private void updateSize(int size) {
-        String groupSizeString;
-        if (size == -1) {
-            groupSizeString = null;
-        } else {
-            AccountType accountType = mAccountTypeManager.getAccountType(mAccountTypeString,
-                    mDataSet);
-            final CharSequence dispLabel = accountType.getDisplayLabel(mContext);
-            if (!TextUtils.isEmpty(dispLabel)) {
-                String groupSizeTemplateString = getResources().getQuantityString(
-                        R.plurals.num_contacts_in_group, size);
-                groupSizeString = String.format(groupSizeTemplateString, size, dispLabel);
-            } else {
-                String groupSizeTemplateString = getResources().getQuantityString(
-                        R.plurals.group_list_num_contacts_in_group, size);
-                groupSizeString = String.format(groupSizeTemplateString, size);
-            }
-        }
-
-        if (mGroupSize != null) {
-            mGroupSize.setText(groupSizeString);
-        } else {
-            mListener.onGroupSizeUpdated(groupSizeString);
-        }
-    }
-
-    /**
-     * Once the account type, group source action, and group source URI have been determined
-     * (based on the result from the {@link Loader}), then we can display this to the user in 1 of
-     * 2 ways depending on screen size and orientation: either as a button in the action bar or as
-     * a button in a static header on the page.
-     * We also use isGroupMembershipEditable() of accountType to determine whether or not we should
-     * display the Edit option in the Actionbar.
-     */
-    private void updateAccountType(final String accountTypeString, final String dataSet) {
-        final AccountTypeManager manager = AccountTypeManager.getInstance(getActivity());
-        final AccountType accountType =
-                manager.getAccountType(accountTypeString, dataSet);
-
-        mIsMembershipEditable = accountType.isGroupMembershipEditable();
-
-        // If the group action should be shown in the action bar, then pass the data to the
-        // listener who will take care of setting up the view and click listener. There is nothing
-        // else to be done by this {@link Fragment}.
-        if (mShowGroupActionInActionBar) {
-            mListener.onAccountTypeUpdated(accountTypeString, dataSet);
-            return;
-        }
-
-        // Otherwise, if the {@link Fragment} needs to create and setup the button, then first
-        // verify that there is a valid action.
-        if (!TextUtils.isEmpty(accountType.getViewGroupActivity())) {
-            if (mGroupSourceView == null) {
-                mGroupSourceView = GroupDetailDisplayUtils.getNewGroupSourceView(mContext);
-                // Figure out how to add the view to the fragment.
-                // If there is a static header with a container for the group source view, insert
-                // the view there.
-                if (mGroupSourceViewContainer != null) {
-                    mGroupSourceViewContainer.addView(mGroupSourceView);
-                }
-            }
-
-            // Rebind the data since this action can change if the loader returns updated data
-            mGroupSourceView.setVisibility(View.VISIBLE);
-            GroupDetailDisplayUtils.bindGroupSourceView(mContext, mGroupSourceView,
-                    accountTypeString, dataSet);
-            mGroupSourceView.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    final Uri uri = ContentUris.withAppendedId(Groups.CONTENT_URI, mGroupId);
-                    final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
-                    intent.setClassName(accountType.syncAdapterPackageName,
-                            accountType.getViewGroupActivity());
-                    try {
-                        ImplicitIntentsUtil.startActivityInApp(getActivity(), intent);
-                    } catch (ActivityNotFoundException e) {
-                        Log.e(TAG, "startActivity() failed: " + e);
-                        Toast.makeText(getActivity(), R.string.missing_app,
-                                Toast.LENGTH_SHORT).show();
-                    }
-                }
-            });
-        } else if (mGroupSourceView != null) {
-            mGroupSourceView.setVisibility(View.GONE);
-        }
-    }
-
-    @Override
-    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
-            int totalItemCount) {
-    }
-
-    @Override
-    public void onScrollStateChanged(AbsListView view, int scrollState) {
-        if (scrollState == OnScrollListener.SCROLL_STATE_FLING) {
-            mPhotoManager.pause();
-        } else {
-            mPhotoManager.resume();
-        }
-    }
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
-        inflater.inflate(R.menu.view_group, menu);
-    }
-
-    public boolean isOptionsMenuChanged() {
-        return mOptionsMenuGroupDeletable != isGroupDeletable() &&
-                mOptionsMenuGroupEditable != isGroupEditableAndPresent();
-    }
-
-    public boolean isGroupDeletable() {
-        return mGroupUri != null && !mIsReadOnly;
-    }
-
-    public boolean isGroupEditableAndPresent() {
-        return mGroupUri != null && mIsMembershipEditable;
-    }
-
-    @Override
-    public void onPrepareOptionsMenu(Menu menu) {
-        mOptionsMenuGroupDeletable = isGroupDeletable() && isVisible();
-        mOptionsMenuGroupEditable = isGroupEditableAndPresent() && isVisible();
-
-        final MenuItem editMenu = menu.findItem(R.id.menu_edit_group);
-        editMenu.setVisible(mOptionsMenuGroupEditable);
-
-        final MenuItem deleteMenu = menu.findItem(R.id.menu_delete_group);
-        deleteMenu.setVisible(mOptionsMenuGroupDeletable);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.menu_edit_group: {
-                if (mListener != null) mListener.onEditRequested(mGroupUri);
-                break;
-            }
-            case R.id.menu_delete_group: {
-                GroupDeletionDialogFragment.show(getFragmentManager(), mGroupId, mGroupName,
-                        mCloseActivityAfterDelete);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    public void closeActivityAfterDelete(boolean closeActivity) {
-        mCloseActivityAfterDelete = closeActivity;
-    }
-
-    public long getGroupId() {
-        return mGroupId;
-    }
-}
diff --git a/src/com/android/contacts/group/GroupEditorFragment.java b/src/com/android/contacts/group/GroupEditorFragment.java
deleted file mode 100644
index 1104c02..0000000
--- a/src/com/android/contacts/group/GroupEditorFragment.java
+++ /dev/null
@@ -1,985 +0,0 @@
-/*
- * Copyright (C) 2011 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.group;
-
-import android.accounts.Account;
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.app.Fragment;
-import android.app.LoaderManager;
-import android.app.LoaderManager.LoaderCallbacks;
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.Context;
-import android.content.CursorLoader;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.Loader;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Intents;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.AutoCompleteTextView;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.QuickContactBadge;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.GroupMemberLoader;
-import com.android.contacts.GroupMemberLoader.GroupEditorQuery;
-import com.android.contacts.GroupMetaDataLoader;
-import com.android.contacts.R;
-import com.android.contacts.activities.GroupEditorActivity;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.editor.SelectAccountDialogFragment;
-import com.android.contacts.group.SuggestedMemberListAdapter.SuggestedMember;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
-import com.android.contacts.common.util.ViewUtil;
-
-import com.google.common.base.Objects;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class GroupEditorFragment extends Fragment implements SelectAccountDialogFragment.Listener {
-    private static final String TAG = "GroupEditorFragment";
-
-    private static final String LEGACY_CONTACTS_AUTHORITY = "contacts";
-
-    private static final String KEY_ACTION = "action";
-    private static final String KEY_GROUP_URI = "groupUri";
-    private static final String KEY_GROUP_ID = "groupId";
-    private static final String KEY_STATUS = "status";
-    private static final String KEY_ACCOUNT_NAME = "accountName";
-    private static final String KEY_ACCOUNT_TYPE = "accountType";
-    private static final String KEY_DATA_SET = "dataSet";
-    private static final String KEY_GROUP_NAME_IS_READ_ONLY = "groupNameIsReadOnly";
-    private static final String KEY_ORIGINAL_GROUP_NAME = "originalGroupName";
-    private static final String KEY_MEMBERS_TO_ADD = "membersToAdd";
-    private static final String KEY_MEMBERS_TO_REMOVE = "membersToRemove";
-    private static final String KEY_MEMBERS_TO_DISPLAY = "membersToDisplay";
-
-    private static final String CURRENT_EDITOR_TAG = "currentEditorForAccount";
-
-    public static interface Listener {
-        /**
-         * Group metadata was not found, close the fragment now.
-         */
-        public void onGroupNotFound();
-
-        /**
-         * User has tapped Revert, close the fragment now.
-         */
-        void onReverted();
-
-        /**
-         * Contact was saved and the Fragment can now be closed safely.
-         */
-        void onSaveFinished(int resultCode, Intent resultIntent);
-
-        /**
-         * Fragment is created but there's no accounts set up.
-         */
-        void onAccountsNotFound();
-    }
-
-    private static final int LOADER_GROUP_METADATA = 1;
-    private static final int LOADER_EXISTING_MEMBERS = 2;
-    private static final int LOADER_NEW_GROUP_MEMBER = 3;
-
-    private static final String MEMBER_RAW_CONTACT_ID_KEY = "rawContactId";
-    private static final String MEMBER_LOOKUP_URI_KEY = "memberLookupUri";
-
-    protected static final String[] PROJECTION_CONTACT = new String[] {
-        Contacts._ID,                           // 0
-        Contacts.DISPLAY_NAME_PRIMARY,          // 1
-        Contacts.DISPLAY_NAME_ALTERNATIVE,      // 2
-        Contacts.SORT_KEY_PRIMARY,              // 3
-        Contacts.STARRED,                       // 4
-        Contacts.CONTACT_PRESENCE,              // 5
-        Contacts.CONTACT_CHAT_CAPABILITY,       // 6
-        Contacts.PHOTO_ID,                      // 7
-        Contacts.PHOTO_THUMBNAIL_URI,           // 8
-        Contacts.LOOKUP_KEY,                    // 9
-        Contacts.PHONETIC_NAME,                 // 10
-        Contacts.HAS_PHONE_NUMBER,              // 11
-        Contacts.IS_USER_PROFILE,               // 12
-    };
-
-    protected static final int CONTACT_ID_COLUMN_INDEX = 0;
-    protected static final int CONTACT_DISPLAY_NAME_PRIMARY_COLUMN_INDEX = 1;
-    protected static final int CONTACT_DISPLAY_NAME_ALTERNATIVE_COLUMN_INDEX = 2;
-    protected static final int CONTACT_SORT_KEY_PRIMARY_COLUMN_INDEX = 3;
-    protected static final int CONTACT_STARRED_COLUMN_INDEX = 4;
-    protected static final int CONTACT_PRESENCE_STATUS_COLUMN_INDEX = 5;
-    protected static final int CONTACT_CHAT_CAPABILITY_COLUMN_INDEX = 6;
-    protected static final int CONTACT_PHOTO_ID_COLUMN_INDEX = 7;
-    protected static final int CONTACT_PHOTO_URI_COLUMN_INDEX = 8;
-    protected static final int CONTACT_LOOKUP_KEY_COLUMN_INDEX = 9;
-    protected static final int CONTACT_PHONETIC_NAME_COLUMN_INDEX = 10;
-    protected static final int CONTACT_HAS_PHONE_COLUMN_INDEX = 11;
-    protected static final int CONTACT_IS_USER_PROFILE = 12;
-
-    /**
-     * Modes that specify the status of the editor
-     */
-    public enum Status {
-        SELECTING_ACCOUNT, // Account select dialog is showing
-        LOADING,    // Loader is fetching the group metadata
-        EDITING,    // Not currently busy. We are waiting forthe user to enter data.
-        SAVING,     // Data is currently being saved
-        CLOSING     // Prevents any more saves
-    }
-
-    private Context mContext;
-    private String mAction;
-    private Bundle mIntentExtras;
-    private Uri mGroupUri;
-    private long mGroupId;
-    private Listener mListener;
-
-    private Status mStatus;
-
-    private ViewGroup mRootView;
-    private ListView mListView;
-    private LayoutInflater mLayoutInflater;
-
-    private TextView mGroupNameView;
-    private AutoCompleteTextView mAutoCompleteTextView;
-
-    private String mAccountName;
-    private String mAccountType;
-    private String mDataSet;
-
-    private boolean mGroupNameIsReadOnly;
-    private String mOriginalGroupName = "";
-    private int mLastGroupEditorId;
-
-    private MemberListAdapter mMemberListAdapter;
-    private ContactPhotoManager mPhotoManager;
-
-    private ContentResolver mContentResolver;
-    private SuggestedMemberListAdapter mAutoCompleteAdapter;
-
-    private ArrayList<Member> mListMembersToAdd = new ArrayList<Member>();
-    private ArrayList<Member> mListMembersToRemove = new ArrayList<Member>();
-    private ArrayList<Member> mListToDisplay = new ArrayList<Member>();
-
-    public GroupEditorFragment() {
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        setHasOptionsMenu(true);
-        mLayoutInflater = inflater;
-        mRootView = (ViewGroup) inflater.inflate(R.layout.group_editor_fragment, container, false);
-        return mRootView;
-    }
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        mContext = activity;
-        mPhotoManager = ContactPhotoManager.getInstance(mContext);
-        mMemberListAdapter = new MemberListAdapter();
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-
-        if (savedInstanceState != null) {
-            // Just restore from the saved state.  No loading.
-            onRestoreInstanceState(savedInstanceState);
-            if (mStatus == Status.SELECTING_ACCOUNT) {
-                // Account select dialog is showing.  Don't setup the editor yet.
-            } else if (mStatus == Status.LOADING) {
-                startGroupMetaDataLoader();
-            } else {
-                setupEditorForAccount();
-            }
-        } else if (Intent.ACTION_EDIT.equals(mAction)) {
-            startGroupMetaDataLoader();
-        } else if (Intent.ACTION_INSERT.equals(mAction)) {
-            final Account account = mIntentExtras == null ? null :
-                    (Account) mIntentExtras.getParcelable(Intents.Insert.EXTRA_ACCOUNT);
-            final String dataSet = mIntentExtras == null ? null :
-                    mIntentExtras.getString(Intents.Insert.EXTRA_DATA_SET);
-
-            if (account != null) {
-                // Account specified in Intent - no data set can be specified in this manner.
-                mAccountName = account.name;
-                mAccountType = account.type;
-                mDataSet = dataSet;
-                setupEditorForAccount();
-            } else {
-                // No Account specified. Let the user choose from a disambiguation dialog.
-                selectAccountAndCreateGroup();
-            }
-        } else {
-            throw new IllegalArgumentException("Unknown Action String " + mAction +
-                    ". Only support " + Intent.ACTION_EDIT + " or " + Intent.ACTION_INSERT);
-        }
-    }
-
-    private void startGroupMetaDataLoader() {
-        mStatus = Status.LOADING;
-        getLoaderManager().initLoader(LOADER_GROUP_METADATA, null,
-                mGroupMetaDataLoaderListener);
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putString(KEY_ACTION, mAction);
-        outState.putParcelable(KEY_GROUP_URI, mGroupUri);
-        outState.putLong(KEY_GROUP_ID, mGroupId);
-
-        outState.putSerializable(KEY_STATUS, mStatus);
-        outState.putString(KEY_ACCOUNT_NAME, mAccountName);
-        outState.putString(KEY_ACCOUNT_TYPE, mAccountType);
-        outState.putString(KEY_DATA_SET, mDataSet);
-
-        outState.putBoolean(KEY_GROUP_NAME_IS_READ_ONLY, mGroupNameIsReadOnly);
-        outState.putString(KEY_ORIGINAL_GROUP_NAME, mOriginalGroupName);
-
-        outState.putParcelableArrayList(KEY_MEMBERS_TO_ADD, mListMembersToAdd);
-        outState.putParcelableArrayList(KEY_MEMBERS_TO_REMOVE, mListMembersToRemove);
-        outState.putParcelableArrayList(KEY_MEMBERS_TO_DISPLAY, mListToDisplay);
-    }
-
-    private void onRestoreInstanceState(Bundle state) {
-        mAction = state.getString(KEY_ACTION);
-        mGroupUri = state.getParcelable(KEY_GROUP_URI);
-        mGroupId = state.getLong(KEY_GROUP_ID);
-
-        mStatus = (Status) state.getSerializable(KEY_STATUS);
-        mAccountName = state.getString(KEY_ACCOUNT_NAME);
-        mAccountType = state.getString(KEY_ACCOUNT_TYPE);
-        mDataSet = state.getString(KEY_DATA_SET);
-
-        mGroupNameIsReadOnly = state.getBoolean(KEY_GROUP_NAME_IS_READ_ONLY);
-        mOriginalGroupName = state.getString(KEY_ORIGINAL_GROUP_NAME);
-
-        mListMembersToAdd = state.getParcelableArrayList(KEY_MEMBERS_TO_ADD);
-        mListMembersToRemove = state.getParcelableArrayList(KEY_MEMBERS_TO_REMOVE);
-        mListToDisplay = state.getParcelableArrayList(KEY_MEMBERS_TO_DISPLAY);
-    }
-
-    public void setContentResolver(ContentResolver resolver) {
-        mContentResolver = resolver;
-        if (mAutoCompleteAdapter != null) {
-            mAutoCompleteAdapter.setContentResolver(mContentResolver);
-        }
-    }
-
-    private void selectAccountAndCreateGroup() {
-        final List<AccountWithDataSet> accounts =
-                AccountTypeManager.getInstance(mContext).getAccounts(true /* writeable */);
-        // No Accounts available
-        if (accounts.isEmpty()) {
-            Log.e(TAG, "No accounts were found.");
-            if (mListener != null) {
-                mListener.onAccountsNotFound();
-            }
-            return;
-        }
-
-        // In the common case of a single account being writable, auto-select
-        // it without showing a dialog.
-        if (accounts.size() == 1) {
-            mAccountName = accounts.get(0).name;
-            mAccountType = accounts.get(0).type;
-            mDataSet = accounts.get(0).dataSet;
-            setupEditorForAccount();
-            return;  // Don't show a dialog.
-        }
-
-        mStatus = Status.SELECTING_ACCOUNT;
-        SelectAccountDialogFragment.show(getFragmentManager(), this,
-                R.string.dialog_new_group_account, AccountListFilter.ACCOUNTS_GROUP_WRITABLE,
-                null);
-    }
-
-    @Override
-    public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
-        mAccountName = account.name;
-        mAccountType = account.type;
-        mDataSet = account.dataSet;
-        setupEditorForAccount();
-    }
-
-    @Override
-    public void onAccountSelectorCancelled() {
-        if (mListener != null) {
-            // Exit the fragment because we cannot continue without selecting an account
-            mListener.onGroupNotFound();
-        }
-    }
-
-    private AccountType getAccountType() {
-        return AccountTypeManager.getInstance(mContext).getAccountType(mAccountType, mDataSet);
-    }
-
-    /**
-     * @return true if the group membership is editable on this account type.  false otherwise,
-     *         or account is not set yet.
-     */
-    private boolean isGroupMembershipEditable() {
-        if (mAccountType == null) {
-            return false;
-        }
-        return getAccountType().isGroupMembershipEditable();
-    }
-
-    /**
-     * Sets up the editor based on the group's account name and type.
-     */
-    private void setupEditorForAccount() {
-        final AccountType accountType = getAccountType();
-        final boolean editable = isGroupMembershipEditable();
-        boolean isNewEditor = false;
-        mMemberListAdapter.setIsGroupMembershipEditable(editable);
-
-        // Since this method can be called multiple time, remove old editor if the editor type
-        // is different from the new one and mark the editor with a tag so it can be found for
-        // removal if needed
-        View editorView;
-        int newGroupEditorId =
-                editable ? R.layout.group_editor_view : R.layout.external_group_editor_view;
-        if (newGroupEditorId != mLastGroupEditorId) {
-            View oldEditorView = mRootView.findViewWithTag(CURRENT_EDITOR_TAG);
-            if (oldEditorView != null) {
-                mRootView.removeView(oldEditorView);
-            }
-            editorView = mLayoutInflater.inflate(newGroupEditorId, mRootView, false);
-            editorView.setTag(CURRENT_EDITOR_TAG);
-            mAutoCompleteAdapter = null;
-            mLastGroupEditorId = newGroupEditorId;
-            isNewEditor = true;
-        } else {
-            editorView = mRootView.findViewWithTag(CURRENT_EDITOR_TAG);
-            if (editorView == null) {
-                throw new IllegalStateException("Group editor view not found");
-            }
-        }
-
-        mGroupNameView = (TextView) editorView.findViewById(R.id.group_name);
-        mAutoCompleteTextView = (AutoCompleteTextView) editorView.findViewById(
-                R.id.add_member_field);
-
-        mListView = (ListView) editorView.findViewById(android.R.id.list);
-        mListView.setAdapter(mMemberListAdapter);
-
-        // Setup the account header, only when exists.
-        if (editorView.findViewById(R.id.account_header) != null) {
-            CharSequence accountTypeDisplayLabel = accountType.getDisplayLabel(mContext);
-            ImageView accountIcon = (ImageView) editorView.findViewById(R.id.account_icon);
-            TextView accountTypeTextView = (TextView) editorView.findViewById(R.id.account_type);
-            TextView accountNameTextView = (TextView) editorView.findViewById(R.id.account_name);
-            if (!TextUtils.isEmpty(mAccountName)) {
-                accountNameTextView.setText(
-                        mContext.getString(R.string.from_account_format, mAccountName));
-            }
-            accountTypeTextView.setText(accountTypeDisplayLabel);
-            accountIcon.setImageDrawable(accountType.getDisplayIcon(mContext));
-        }
-
-        // Setup the autocomplete adapter (for contacts to suggest to add to the group) based on the
-        // account name and type. For groups that cannot have membership edited, there will be no
-        // autocomplete text view.
-        if (mAutoCompleteTextView != null) {
-            mAutoCompleteAdapter = new SuggestedMemberListAdapter(mContext,
-                    android.R.layout.simple_dropdown_item_1line);
-            mAutoCompleteAdapter.setContentResolver(mContentResolver);
-            mAutoCompleteAdapter.setAccountType(mAccountType);
-            mAutoCompleteAdapter.setAccountName(mAccountName);
-            mAutoCompleteAdapter.setDataSet(mDataSet);
-            mAutoCompleteTextView.setAdapter(mAutoCompleteAdapter);
-            mAutoCompleteTextView.setOnItemClickListener(new OnItemClickListener() {
-                @Override
-                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                    SuggestedMember member = (SuggestedMember) view.getTag();
-                    if (member == null) {
-                        return; // just in case
-                    }
-                    loadMemberToAddToGroup(member.getRawContactId(),
-                            String.valueOf(member.getContactId()));
-
-                    // Update the autocomplete adapter so the contact doesn't get suggested again
-                    mAutoCompleteAdapter.addNewMember(member.getContactId());
-
-                    // Clear out the text field
-                    mAutoCompleteTextView.setText("");
-                }
-            });
-            // Update the exempt list.  (mListToDisplay might have been restored from the saved
-            // state.)
-            mAutoCompleteAdapter.updateExistingMembersList(mListToDisplay);
-        }
-
-        // If the group name is ready only, don't let the user focus on the field.
-        mGroupNameView.setFocusable(!mGroupNameIsReadOnly);
-        if(isNewEditor) {
-            mRootView.addView(editorView);
-        }
-        mStatus = Status.EDITING;
-    }
-
-    public void load(String action, Uri groupUri, Bundle intentExtras) {
-        mAction = action;
-        mGroupUri = groupUri;
-        mGroupId = (groupUri != null) ? ContentUris.parseId(mGroupUri) : 0;
-        mIntentExtras = intentExtras;
-    }
-
-    private void bindGroupMetaData(Cursor cursor) {
-        if (!cursor.moveToFirst()) {
-            Log.i(TAG, "Group not found with URI: " + mGroupUri + " Closing activity now.");
-            if (mListener != null) {
-                mListener.onGroupNotFound();
-            }
-            return;
-        }
-        mOriginalGroupName = cursor.getString(GroupMetaDataLoader.TITLE);
-        mAccountName = cursor.getString(GroupMetaDataLoader.ACCOUNT_NAME);
-        mAccountType = cursor.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
-        mDataSet = cursor.getString(GroupMetaDataLoader.DATA_SET);
-        mGroupNameIsReadOnly = (cursor.getInt(GroupMetaDataLoader.IS_READ_ONLY) == 1);
-        setupEditorForAccount();
-
-        // Setup the group metadata display
-        mGroupNameView.setText(mOriginalGroupName);
-    }
-
-    public void loadMemberToAddToGroup(long rawContactId, String contactId) {
-        Bundle args = new Bundle();
-        args.putLong(MEMBER_RAW_CONTACT_ID_KEY, rawContactId);
-        args.putString(MEMBER_LOOKUP_URI_KEY, contactId);
-        getLoaderManager().restartLoader(LOADER_NEW_GROUP_MEMBER, args, mContactLoaderListener);
-    }
-
-    public void setListener(Listener value) {
-        mListener = value;
-    }
-
-    public void onDoneClicked() {
-        if (isGroupMembershipEditable()) {
-            save();
-        } else {
-            // Just revert it.
-            doRevertAction();
-        }
-    }
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
-        inflater.inflate(R.menu.edit_group, menu);
-    }
-
-    private void doRevertAction() {
-        // When this Fragment is closed we don't want it to auto-save
-        mStatus = Status.CLOSING;
-        if (mListener != null) mListener.onReverted();
-    }
-
-    public static class CancelEditDialogFragment extends DialogFragment {
-
-        public static void show(GroupEditorFragment fragment) {
-            CancelEditDialogFragment dialog = new CancelEditDialogFragment();
-            dialog.setTargetFragment(fragment, 0);
-            dialog.show(fragment.getFragmentManager(), "cancelEditor");
-        }
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
-            AlertDialog dialog = new AlertDialog.Builder(getActivity())
-                    .setIconAttribute(android.R.attr.alertDialogIcon)
-                    .setMessage(R.string.cancel_confirmation_dialog_message)
-                    .setPositiveButton(android.R.string.ok,
-                        new DialogInterface.OnClickListener() {
-                            @Override
-                            public void onClick(DialogInterface dialogInterface, int whichButton) {
-                                ((GroupEditorFragment) getTargetFragment()).doRevertAction();
-                            }
-                        }
-                    )
-                    .setNegativeButton(android.R.string.cancel, null)
-                    .create();
-            return dialog;
-        }
-    }
-
-    /**
-     * Saves or creates the group based on the mode, and if successful
-     * finishes the activity. This actually only handles saving the group name.
-     * @return true when successful
-     */
-    public boolean save() {
-        if (!hasValidGroupName() || mStatus != Status.EDITING) {
-            mStatus = Status.CLOSING;
-            if (mListener != null) {
-                mListener.onReverted();
-            }
-            return false;
-        }
-
-        // If we are about to close the editor - there is no need to refresh the data
-        getLoaderManager().destroyLoader(LOADER_EXISTING_MEMBERS);
-
-        // If there are no changes, then go straight to onSaveCompleted()
-        if (!hasNameChange() && !hasMembershipChange()) {
-            onSaveCompleted(false, mGroupUri);
-            return true;
-        }
-
-        mStatus = Status.SAVING;
-
-        Activity activity = getActivity();
-        // If the activity is not there anymore, then we can't continue with the save process.
-        if (activity == null) {
-            return false;
-        }
-        Intent saveIntent = null;
-        if (Intent.ACTION_INSERT.equals(mAction)) {
-            // Create array of raw contact IDs for contacts to add to the group
-            long[] membersToAddArray = convertToArray(mListMembersToAdd);
-
-            // Create the save intent to create the group and add members at the same time
-            saveIntent = ContactSaveService.createNewGroupIntent(activity,
-                    new AccountWithDataSet(mAccountName, mAccountType, mDataSet),
-                    mGroupNameView.getText().toString(),
-                    membersToAddArray, activity.getClass(),
-                    GroupEditorActivity.ACTION_SAVE_COMPLETED);
-        } else if (Intent.ACTION_EDIT.equals(mAction)) {
-            // Create array of raw contact IDs for contacts to add to the group
-            long[] membersToAddArray = convertToArray(mListMembersToAdd);
-
-            // Create array of raw contact IDs for contacts to add to the group
-            long[] membersToRemoveArray = convertToArray(mListMembersToRemove);
-
-            // Create the update intent (which includes the updated group name if necessary)
-            saveIntent = ContactSaveService.createGroupUpdateIntent(activity, mGroupId,
-                    getUpdatedName(), membersToAddArray, membersToRemoveArray,
-                    activity.getClass(), GroupEditorActivity.ACTION_SAVE_COMPLETED);
-        } else {
-            throw new IllegalStateException("Invalid intent action type " + mAction);
-        }
-        activity.startService(saveIntent);
-        return true;
-    }
-
-    public void onSaveCompleted(boolean hadChanges, Uri groupUri) {
-        boolean success = groupUri != null;
-        Log.d(TAG, "onSaveCompleted(" + groupUri + ")");
-        if (hadChanges) {
-            Toast.makeText(mContext, success ? R.string.groupSavedToast :
-                    R.string.groupSavedErrorToast, Toast.LENGTH_SHORT).show();
-        }
-        final Intent resultIntent;
-        final int resultCode;
-        if (success && groupUri != null) {
-            final String requestAuthority = groupUri.getAuthority();
-
-            resultIntent = new Intent();
-            if (LEGACY_CONTACTS_AUTHORITY.equals(requestAuthority)) {
-                // Build legacy Uri when requested by caller
-                final long groupId = ContentUris.parseId(groupUri);
-                final Uri legacyContentUri = Uri.parse("content://contacts/groups");
-                final Uri legacyUri = ContentUris.withAppendedId(
-                        legacyContentUri, groupId);
-                resultIntent.setData(legacyUri);
-            } else {
-                // Otherwise pass back the given Uri
-                resultIntent.setData(groupUri);
-            }
-
-            resultCode = Activity.RESULT_OK;
-        } else {
-            resultCode = Activity.RESULT_CANCELED;
-            resultIntent = null;
-        }
-        // It is already saved, so prevent that it is saved again
-        mStatus = Status.CLOSING;
-        if (mListener != null) {
-            mListener.onSaveFinished(resultCode, resultIntent);
-        }
-    }
-
-    private boolean hasValidGroupName() {
-        return mGroupNameView != null && !TextUtils.isEmpty(mGroupNameView.getText());
-    }
-
-    private boolean hasNameChange() {
-        return mGroupNameView != null &&
-                !mGroupNameView.getText().toString().equals(mOriginalGroupName);
-    }
-
-    private boolean hasMembershipChange() {
-        return mListMembersToAdd.size() > 0 || mListMembersToRemove.size() > 0;
-    }
-
-    /**
-     * Returns the group's new name or null if there is no change from the
-     * original name that was loaded for the group.
-     */
-    private String getUpdatedName() {
-        String groupNameFromTextView = mGroupNameView.getText().toString();
-        if (groupNameFromTextView.equals(mOriginalGroupName)) {
-            // No name change, so return null
-            return null;
-        }
-        return groupNameFromTextView;
-    }
-
-    private static long[] convertToArray(List<Member> listMembers) {
-        int size = listMembers.size();
-        long[] membersArray = new long[size];
-        for (int i = 0; i < size; i++) {
-            membersArray[i] = listMembers.get(i).getRawContactId();
-        }
-        return membersArray;
-    }
-
-    private void addExistingMembers(List<Member> members) {
-
-        // Re-create the list to display
-        mListToDisplay.clear();
-        mListToDisplay.addAll(members);
-        mListToDisplay.addAll(mListMembersToAdd);
-        mListToDisplay.removeAll(mListMembersToRemove);
-        mMemberListAdapter.notifyDataSetChanged();
-
-
-        // Update the autocomplete adapter (if there is one) so these contacts don't get suggested
-        if (mAutoCompleteAdapter != null) {
-            mAutoCompleteAdapter.updateExistingMembersList(members);
-        }
-    }
-
-    private void addMember(Member member) {
-        // Update the display list
-        mListMembersToAdd.add(member);
-        mListToDisplay.add(member);
-        mMemberListAdapter.notifyDataSetChanged();
-
-        // Update the autocomplete adapter so the contact doesn't get suggested again
-        mAutoCompleteAdapter.addNewMember(member.getContactId());
-    }
-
-    private void removeMember(Member member) {
-        // If the contact was just added during this session, remove it from the list of
-        // members to add
-        if (mListMembersToAdd.contains(member)) {
-            mListMembersToAdd.remove(member);
-        } else {
-            // Otherwise this contact was already part of the existing list of contacts,
-            // so we need to do a content provider deletion operation
-            mListMembersToRemove.add(member);
-        }
-        // In either case, update the UI so the contact is no longer in the list of
-        // members
-        mListToDisplay.remove(member);
-        mMemberListAdapter.notifyDataSetChanged();
-
-        // Update the autocomplete adapter so the contact can get suggested again
-        mAutoCompleteAdapter.removeMember(member.getContactId());
-    }
-
-    /**
-     * The listener for the group metadata (i.e. group name, account type, and account name) loader.
-     */
-    private final LoaderManager.LoaderCallbacks<Cursor> mGroupMetaDataLoaderListener =
-            new LoaderCallbacks<Cursor>() {
-
-        @Override
-        public CursorLoader onCreateLoader(int id, Bundle args) {
-            return new GroupMetaDataLoader(mContext, mGroupUri);
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            bindGroupMetaData(data);
-
-            // Load existing members
-            getLoaderManager().initLoader(LOADER_EXISTING_MEMBERS, null,
-                    mGroupMemberListLoaderListener);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> loader) {}
-    };
-
-    /**
-     * The loader listener for the list of existing group members.
-     */
-    private final LoaderManager.LoaderCallbacks<Cursor> mGroupMemberListLoaderListener =
-            new LoaderCallbacks<Cursor>() {
-
-        @Override
-        public CursorLoader onCreateLoader(int id, Bundle args) {
-            return GroupMemberLoader.constructLoaderForGroupEditorQuery(mContext, mGroupId);
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            List<Member> listExistingMembers = new ArrayList<Member>();
-            data.moveToPosition(-1);
-            while (data.moveToNext()) {
-                long contactId = data.getLong(GroupEditorQuery.CONTACT_ID);
-                long rawContactId = data.getLong(GroupEditorQuery.RAW_CONTACT_ID);
-                String lookupKey = data.getString(GroupEditorQuery.CONTACT_LOOKUP_KEY);
-                String displayName = data.getString(GroupEditorQuery.CONTACT_DISPLAY_NAME_PRIMARY);
-                String photoUri = data.getString(GroupEditorQuery.CONTACT_PHOTO_URI);
-                listExistingMembers.add(new Member(rawContactId, lookupKey, contactId,
-                        displayName, photoUri));
-            }
-
-            // Update the display list
-            addExistingMembers(listExistingMembers);
-
-            // No more updates
-            // TODO: move to a runnable
-            getLoaderManager().destroyLoader(LOADER_EXISTING_MEMBERS);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> loader) {}
-    };
-
-    /**
-     * The listener to load a summary of details for a contact.
-     */
-    // TODO: Remove this step because showing the aggregate contact can be confusing when the user
-    // just selected a raw contact
-    private final LoaderManager.LoaderCallbacks<Cursor> mContactLoaderListener =
-            new LoaderCallbacks<Cursor>() {
-
-        private long mRawContactId;
-
-        @Override
-        public CursorLoader onCreateLoader(int id, Bundle args) {
-            String memberId = args.getString(MEMBER_LOOKUP_URI_KEY);
-            mRawContactId = args.getLong(MEMBER_RAW_CONTACT_ID_KEY);
-            return new CursorLoader(mContext, Uri.withAppendedPath(Contacts.CONTENT_URI, memberId),
-                    PROJECTION_CONTACT, null, null, null);
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
-            if (!cursor.moveToFirst()) {
-                return;
-            }
-            // Retrieve the contact data fields that will be sufficient to update the adapter with
-            // a new entry for this contact
-            long contactId = cursor.getLong(CONTACT_ID_COLUMN_INDEX);
-            String displayName = cursor.getString(CONTACT_DISPLAY_NAME_PRIMARY_COLUMN_INDEX);
-            String lookupKey = cursor.getString(CONTACT_LOOKUP_KEY_COLUMN_INDEX);
-            String photoUri = cursor.getString(CONTACT_PHOTO_URI_COLUMN_INDEX);
-            getLoaderManager().destroyLoader(LOADER_NEW_GROUP_MEMBER);
-            Member member = new Member(mRawContactId, lookupKey, contactId, displayName, photoUri);
-            addMember(member);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> loader) {}
-    };
-
-    /**
-     * This represents a single member of the current group.
-     */
-    public static class Member implements Parcelable {
-
-        // TODO: Switch to just dealing with raw contact IDs everywhere if possible
-        private final long mRawContactId;
-        private final long mContactId;
-        private final Uri mLookupUri;
-        private final String mDisplayName;
-        private final Uri mPhotoUri;
-        private final String mLookupKey;
-
-        public Member(long rawContactId, String lookupKey, long contactId, String displayName,
-                String photoUri) {
-            mRawContactId = rawContactId;
-            mContactId = contactId;
-            mLookupKey = lookupKey;
-            mLookupUri = Contacts.getLookupUri(contactId, lookupKey);
-            mDisplayName = displayName;
-            mPhotoUri = (photoUri != null) ? Uri.parse(photoUri) : null;
-        }
-
-        public long getRawContactId() {
-            return mRawContactId;
-        }
-
-        public long getContactId() {
-            return mContactId;
-        }
-
-        public Uri getLookupUri() {
-            return mLookupUri;
-        }
-
-        public String getLookupKey() {
-            return mLookupKey;
-        }
-
-        public String getDisplayName() {
-            return mDisplayName;
-        }
-
-        public Uri getPhotoUri() {
-            return mPhotoUri;
-        }
-
-        @Override
-        public boolean equals(Object object) {
-            if (object instanceof Member) {
-                Member otherMember = (Member) object;
-                return Objects.equal(mLookupUri, otherMember.getLookupUri());
-            }
-            return false;
-        }
-
-        @Override
-        public int hashCode() {
-            return mLookupUri == null ? 0 : mLookupUri.hashCode();
-        }
-
-        // Parcelable
-        @Override
-        public int describeContents() {
-            return 0;
-        }
-
-        @Override
-        public void writeToParcel(Parcel dest, int flags) {
-            dest.writeLong(mRawContactId);
-            dest.writeLong(mContactId);
-            dest.writeParcelable(mLookupUri, flags);
-            dest.writeString(mLookupKey);
-            dest.writeString(mDisplayName);
-            dest.writeParcelable(mPhotoUri, flags);
-        }
-
-        private Member(Parcel in) {
-            mRawContactId = in.readLong();
-            mContactId = in.readLong();
-            mLookupUri = in.readParcelable(getClass().getClassLoader());
-            mLookupKey = in.readString();
-            mDisplayName = in.readString();
-            mPhotoUri = in.readParcelable(getClass().getClassLoader());
-        }
-
-        public static final Parcelable.Creator<Member> CREATOR = new Parcelable.Creator<Member>() {
-            @Override
-            public Member createFromParcel(Parcel in) {
-                return new Member(in);
-            }
-
-            @Override
-            public Member[] newArray(int size) {
-                return new Member[size];
-            }
-        };
-    }
-
-    /**
-     * This adapter displays a list of members for the current group being edited.
-     */
-    private final class MemberListAdapter extends BaseAdapter {
-
-        private boolean mIsGroupMembershipEditable = true;
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            View result;
-            if (convertView == null) {
-                result = mLayoutInflater.inflate(mIsGroupMembershipEditable ?
-                        R.layout.group_member_item : R.layout.external_group_member_item,
-                        parent, false);
-            } else {
-                result = convertView;
-            }
-            final Member member = getItem(position);
-
-            QuickContactBadge badge = (QuickContactBadge) result.findViewById(R.id.badge);
-            badge.assignContactUri(member.getLookupUri());
-
-            TextView name = (TextView) result.findViewById(R.id.name);
-            name.setText(member.getDisplayName());
-
-            View deleteButton = result.findViewById(R.id.delete_button_container);
-            if (deleteButton != null) {
-                deleteButton.setOnClickListener(new OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        removeMember(member);
-                    }
-                });
-            }
-            DefaultImageRequest request = new DefaultImageRequest(member.getDisplayName(),
-                    member.getLookupKey(), true /* isCircular */);
-            mPhotoManager.loadPhoto(badge, member.getPhotoUri(),
-                    ViewUtil.getConstantPreLayoutWidth(badge), false, true /* isCircular */,
-                            request);
-            return result;
-        }
-
-        @Override
-        public int getCount() {
-            return mListToDisplay.size();
-        }
-
-        @Override
-        public Member getItem(int position) {
-            return mListToDisplay.get(position);
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return position;
-        }
-
-        public void setIsGroupMembershipEditable(boolean editable) {
-            mIsGroupMembershipEditable = editable;
-        }
-    }
-}
diff --git a/src/com/android/contacts/group/GroupListItem.java b/src/com/android/contacts/group/GroupListItem.java
index a06ec38..f2359b6 100644
--- a/src/com/android/contacts/group/GroupListItem.java
+++ b/src/com/android/contacts/group/GroupListItem.java
@@ -27,9 +27,12 @@
     private final String mTitle;
     private final boolean mIsFirstGroupInAccount;
     private final int mMemberCount;
+    private final boolean mIsReadOnly;
+    private final String mSystemId;
 
     public GroupListItem(String accountName, String accountType, String dataSet, long groupId,
-            String title, boolean isFirstGroupInAccount, int memberCount) {
+            String title, boolean isFirstGroupInAccount, int memberCount, boolean isReadOnly,
+            String systemId) {
         mAccountName = accountName;
         mAccountType = accountType;
         mDataSet = dataSet;
@@ -37,6 +40,8 @@
         mTitle = title;
         mIsFirstGroupInAccount = isFirstGroupInAccount;
         mMemberCount = memberCount;
+        mIsReadOnly = isReadOnly;
+        mSystemId = systemId;
     }
 
     public String getAccountName() {
@@ -70,4 +75,12 @@
     public boolean isFirstGroupInAccount() {
         return mIsFirstGroupInAccount;
     }
+
+    public boolean isReadOnly() {
+        return mIsReadOnly;
+    }
+
+    public String getSystemId() {
+        return mSystemId;
+    }
 }
\ No newline at end of file
diff --git a/src/com/android/contacts/group/GroupMembersAdapter.java b/src/com/android/contacts/group/GroupMembersAdapter.java
new file mode 100644
index 0000000..78dae65
--- /dev/null
+++ b/src/com/android/contacts/group/GroupMembersAdapter.java
@@ -0,0 +1,179 @@
+/*
+ * 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.group;
+
+import android.content.Context;
+import android.content.CursorLoader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Directory;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+import com.android.contacts.list.ContactListItemView;
+import com.android.contacts.list.MultiSelectEntryContactListAdapter;
+import com.android.contacts.preference.ContactsPreferences;
+
+/** Group members cursor adapter. */
+public class GroupMembersAdapter extends MultiSelectEntryContactListAdapter {
+
+    public static class GroupMembersQuery {
+
+        private static final String[] PROJECTION_PRIMARY = new String[] {
+                Data.CONTACT_ID,
+                Data.RAW_CONTACT_ID,
+                Data.PHOTO_ID,
+                Data.LOOKUP_KEY,
+                Data.CONTACT_PRESENCE,
+                Data.CONTACT_STATUS,
+                Data.DISPLAY_NAME_PRIMARY,
+        };
+
+        private static final String[] PROJECTION_ALTERNATIVE = new String[] {
+                Data.CONTACT_ID,
+                Data.RAW_CONTACT_ID,
+                Data.PHOTO_ID,
+                Data.LOOKUP_KEY,
+                Data.CONTACT_PRESENCE,
+                Data.CONTACT_STATUS,
+                Data.DISPLAY_NAME_ALTERNATIVE,
+        };
+
+        public static final int CONTACT_ID                   = 0;
+        public static final int RAW_CONTACT_ID               = 1;
+        public static final int CONTACT_PHOTO_ID             = 2;
+        public static final int CONTACT_LOOKUP_KEY           = 3;
+        public static final int CONTACT_PRESENCE             = 4;
+        public static final int CONTACT_STATUS               = 5;
+        public static final int CONTACT_DISPLAY_NAME         = 6;
+    }
+
+    private final CharSequence mUnknownNameText;
+    private long mGroupId;
+    private boolean mDisplayDeleteButtons;
+
+    public GroupMembersAdapter(Context context) {
+        super(context, GroupMembersQuery.CONTACT_ID);
+
+        mUnknownNameText = context.getText(R.string.missing_name);
+    }
+
+    /** Sets the ID of the group whose members will be displayed. */
+    public void setGroupId(long groupId) {
+        mGroupId = groupId;
+    }
+
+    /** Returns the lookup Uri for the contact at the given position in the underlying cursor. */
+    public Uri getContactUri(int position) {
+        final Cursor cursor = (Cursor) getItem(position);
+        final long contactId = cursor.getLong(GroupMembersQuery.CONTACT_ID);
+        final String lookupKey = cursor.getString(GroupMembersQuery.CONTACT_LOOKUP_KEY);
+        return Contacts.getLookupUri(contactId, lookupKey);
+    }
+
+    /** Returns the ID of the contact at the given position in the underlying cursor. */
+    public long getContactId(int position) {
+        final Cursor cursor = (Cursor) getItem(position);
+        return cursor.getLong(GroupMembersQuery.CONTACT_ID);
+    }
+
+    public void setDisplayDeleteButtons(boolean displayDeleteButtons) {
+        mDisplayDeleteButtons = displayDeleteButtons;
+        notifyDataSetChanged();
+    }
+
+    public boolean getDisplayDeleteButtons() {
+        return mDisplayDeleteButtons;
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        loader.setUri(Data.CONTENT_URI.buildUpon()
+                .appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                        String.valueOf(Directory.DEFAULT))
+                .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true")
+                .build());
+
+        loader.setSelection(Data.MIMETYPE + "=?" + " AND " + GroupMembership.GROUP_ROW_ID + "=?");
+
+        final String[] selectionArgs = new String[2];
+        selectionArgs[0] = GroupMembership.CONTENT_ITEM_TYPE;
+        selectionArgs[1] = String.valueOf(mGroupId);
+        loader.setSelectionArgs(selectionArgs);
+
+        loader.setProjection(
+                getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY
+                        ? GroupMembersQuery.PROJECTION_PRIMARY
+                        : GroupMembersQuery.PROJECTION_ALTERNATIVE);
+
+        loader.setSortOrder(
+                getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY
+                        ? Contacts.SORT_KEY_PRIMARY : Contacts.SORT_KEY_ALTERNATIVE);
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor) getItem(position)).getString(GroupMembersQuery.CONTACT_DISPLAY_NAME);
+    }
+
+    @Override
+    protected ContactListItemView newView(Context context, int partition, Cursor cursor,
+            int position, ViewGroup parent) {
+        final ContactListItemView view =
+                super.newView(context, partition, cursor, position, parent);
+        view.setUnknownNameText(mUnknownNameText);
+        return view;
+    }
+
+    @Override
+    protected void bindView(View v, int partition, Cursor cursor, int position) {
+        super.bindView(v, partition, cursor, position);
+        final ContactListItemView view = (ContactListItemView) v;
+        bindSectionHeaderAndDivider(view, position);
+        bindName(view, cursor);
+        bindPhoto(view, cursor, GroupMembersQuery.CONTACT_PHOTO_ID,
+                GroupMembersQuery.CONTACT_LOOKUP_KEY, GroupMembersQuery.CONTACT_DISPLAY_NAME);
+        bindDeleteButton(view, position);
+    }
+
+    protected void bindSectionHeaderAndDivider(ContactListItemView view, int position) {
+        view.setIsSectionHeaderEnabled(isSectionHeaderDisplayEnabled());
+        if (isSectionHeaderDisplayEnabled()) {
+            final Placement placement = getItemPlacementInSection(position);
+            view.setSectionHeader(placement.sectionHeader);
+        } else {
+            view.setSectionHeader(null);
+        }
+    }
+
+    private void bindName(ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, GroupMembersQuery.CONTACT_DISPLAY_NAME,
+                getContactNameDisplayOrder());
+    }
+
+    private void bindDeleteButton(final ContactListItemView view, int position) {
+        if (mDisplayDeleteButtons) {
+            view.getDeleteImageButton(getDeleteContactListener(), position);
+        } else {
+            view.hideDeleteImageButton();
+        }
+    }
+}
diff --git a/src/com/android/contacts/group/GroupMembersFragment.java b/src/com/android/contacts/group/GroupMembersFragment.java
new file mode 100644
index 0000000..0d2410d
--- /dev/null
+++ b/src/com/android/contacts/group/GroupMembersFragment.java
@@ -0,0 +1,908 @@
+/*
+ * 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.group;
+
+import android.app.Activity;
+import android.app.LoaderManager.LoaderCallbacks;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.Intent;
+import android.content.Loader;
+import android.database.Cursor;
+import android.database.CursorWrapper;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.support.v4.content.ContextCompat;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.Toast;
+
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.GroupMetaDataLoader;
+import com.android.contacts.R;
+import com.android.contacts.activities.ActionBarAdapter;
+import com.android.contacts.activities.PeopleActivity;
+import com.android.contacts.group.GroupMembersAdapter.GroupMembersQuery;
+import com.android.contacts.interactions.GroupDeletionDialogFragment;
+import com.android.contacts.list.ContactsRequest;
+import com.android.contacts.list.ContactsSectionIndexer;
+import com.android.contacts.list.MultiSelectContactsListFragment;
+import com.android.contacts.list.MultiSelectEntryContactListAdapter.DeleteContactListener;
+import com.android.contacts.list.UiIntentActions;
+import com.android.contacts.logging.ListEvent;
+import com.android.contacts.logging.ListEvent.ListType;
+import com.android.contacts.logging.Logger;
+import com.android.contacts.logging.ScreenEvent;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contactsbind.FeedbackHelper;
+import com.google.common.primitives.Longs;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/** Displays the members of a group. */
+public class GroupMembersFragment extends MultiSelectContactsListFragment<GroupMembersAdapter> {
+
+    private static final String TAG = "GroupMembers";
+
+    private static final String KEY_IS_EDIT_MODE = "editMode";
+    private static final String KEY_GROUP_URI = "groupUri";
+    private static final String KEY_GROUP_METADATA = "groupMetadata";
+
+    public static final String TAG_GROUP_NAME_EDIT_DIALOG = "groupNameEditDialog";
+
+    private static final String ARG_GROUP_URI = "groupUri";
+
+    private static final int LOADER_GROUP_METADATA = 0;
+    private static final int MSG_FAIL_TO_LOAD = 1;
+    private static final int RESULT_GROUP_ADD_MEMBER = 100;
+
+    /** Filters out duplicate contacts. */
+    private class FilterCursorWrapper extends CursorWrapper {
+
+        private int[] mIndex;
+        private int mCount = 0;
+        private int mPos = 0;
+
+        public FilterCursorWrapper(Cursor cursor) {
+            super(cursor);
+
+            mCount = super.getCount();
+            mIndex = new int[mCount];
+
+            final List<Integer> indicesToFilter = new ArrayList<>();
+
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "Group members CursorWrapper start: " + mCount);
+            }
+
+            final Bundle bundle = cursor.getExtras();
+            final String sections[] = bundle.getStringArray(Contacts
+                    .EXTRA_ADDRESS_BOOK_INDEX_TITLES);
+            final int counts[] = bundle.getIntArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS);
+            final ContactsSectionIndexer indexer = (sections == null || counts == null)
+                    ? null : new ContactsSectionIndexer(sections, counts);
+
+            mGroupMemberContactIds.clear();
+            for (int i = 0; i < mCount; i++) {
+                super.moveToPosition(i);
+                final String contactId = getString(GroupMembersQuery.CONTACT_ID);
+                if (!mGroupMemberContactIds.contains(contactId)) {
+                    mIndex[mPos++] = i;
+                    mGroupMemberContactIds.add(contactId);
+                } else {
+                    indicesToFilter.add(i);
+                }
+            }
+
+            if (indexer != null && GroupUtil.needTrimming(mCount, counts, indexer.getPositions())) {
+                GroupUtil.updateBundle(bundle, indexer, indicesToFilter, sections, counts);
+            }
+
+            mCount = mPos;
+            mPos = 0;
+            super.moveToFirst();
+
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "Group members CursorWrapper end: " + mCount);
+            }
+        }
+
+        @Override
+        public boolean move(int offset) {
+            return moveToPosition(mPos + offset);
+        }
+
+        @Override
+        public boolean moveToNext() {
+            return moveToPosition(mPos + 1);
+        }
+
+        @Override
+        public boolean moveToPrevious() {
+            return moveToPosition(mPos - 1);
+        }
+
+        @Override
+        public boolean moveToFirst() {
+            return moveToPosition(0);
+        }
+
+        @Override
+        public boolean moveToLast() {
+            return moveToPosition(mCount - 1);
+        }
+
+        @Override
+        public boolean moveToPosition(int position) {
+            if (position >= mCount) {
+                mPos = mCount;
+                return false;
+            } else if (position < 0) {
+                mPos = -1;
+                return false;
+            }
+            mPos = mIndex[position];
+            return super.moveToPosition(mPos);
+        }
+
+        @Override
+        public int getCount() {
+            return mCount;
+        }
+
+        @Override
+        public int getPosition() {
+            return mPos;
+        }
+    }
+
+    private final LoaderCallbacks<Cursor> mGroupMetaDataCallbacks = new LoaderCallbacks<Cursor>() {
+
+        @Override
+        public CursorLoader onCreateLoader(int id, Bundle args) {
+            return new GroupMetaDataLoader(mActivity, mGroupUri);
+        }
+
+        @Override
+        public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
+            if (cursor == null || cursor.isClosed() || !cursor.moveToNext()) {
+                Log.e(TAG, "Failed to load group metadata for " + mGroupUri);
+                Toast.makeText(getContext(), R.string.groupLoadErrorToast, Toast.LENGTH_SHORT)
+                        .show();
+                mHandler.sendEmptyMessage(MSG_FAIL_TO_LOAD);
+                return;
+            }
+            mGroupMetaData = new GroupMetaData(getActivity(), cursor);
+            onGroupMetadataLoaded();
+        }
+
+        @Override
+        public void onLoaderReset(Loader<Cursor> loader) {}
+    };
+
+    private ActionBarAdapter mActionBarAdapter;
+
+    private PeopleActivity mActivity;
+
+    private Uri mGroupUri;
+
+    private boolean mIsEditMode;
+
+    private GroupMetaData mGroupMetaData;
+
+    private Set<String> mGroupMemberContactIds = new HashSet();
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if(msg.what == MSG_FAIL_TO_LOAD) {
+                mActivity.onBackPressed();
+            }
+        }
+    };
+
+    public static GroupMembersFragment newInstance(Uri groupUri) {
+        final Bundle args = new Bundle();
+        args.putParcelable(ARG_GROUP_URI, groupUri);
+
+        final GroupMembersFragment fragment = new GroupMembersFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    public GroupMembersFragment() {
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setHasOptionsMenu(true);
+        setListType(ListType.GROUP);
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        if (mGroupMetaData == null) {
+            // Hide menu options until metadata is fully loaded
+            return;
+        }
+        inflater.inflate(R.menu.view_group, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        final boolean isSelectionMode = mActionBarAdapter.isSelectionMode();
+        final boolean isGroupEditable = mGroupMetaData != null && mGroupMetaData.editable;
+        final boolean isGroupReadOnly = mGroupMetaData != null && mGroupMetaData.readOnly;
+
+        setVisible(getContext(), menu, R.id.menu_multi_send_email, !mIsEditMode && !isGroupEmpty());
+        setVisible(getContext(), menu, R.id.menu_multi_send_message,
+                !mIsEditMode && !isGroupEmpty());
+        setVisible(getContext(), menu, R.id.menu_add, isGroupEditable && !isSelectionMode);
+        setVisible(getContext(), menu, R.id.menu_rename_group,
+                !isGroupReadOnly && !isSelectionMode);
+        setVisible(getContext(), menu, R.id.menu_delete_group,
+                !isGroupReadOnly && !isSelectionMode);
+        setVisible(getContext(), menu, R.id.menu_edit_group,
+                isGroupEditable && !mIsEditMode && !isSelectionMode && !isGroupEmpty());
+        setVisible(getContext(), menu, R.id.menu_remove_from_group,
+                isGroupEditable && isSelectionMode && !mIsEditMode);
+    }
+
+    private boolean isGroupEmpty() {
+        return getAdapter() != null && getAdapter().isEmpty();
+    }
+
+    private static void setVisible(Context context, Menu menu, int id, boolean visible) {
+        final MenuItem menuItem = menu.findItem(id);
+        if (menuItem != null) {
+            menuItem.setVisible(visible);
+            final Drawable icon = menuItem.getIcon();
+            if (icon != null) {
+                icon.mutate().setColorFilter(ContextCompat.getColor(context,
+                        R.color.actionbar_icon_color), PorterDuff.Mode.SRC_ATOP);
+            }
+        }
+    }
+
+    /**
+     * Helper class for cp2 query used to look up all contact's emails and phone numbers.
+     */
+    public static abstract class Query {
+        public static final String EMAIL_SELECTION =
+                ContactsContract.Data.MIMETYPE + "='"
+                        + ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE + "'";
+
+        public static final String PHONE_SELECTION =
+                ContactsContract.Data.MIMETYPE + "='"
+                        + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'";
+
+        public static final String[] EMAIL_PROJECTION = {
+                ContactsContract.Data.CONTACT_ID,
+                ContactsContract.CommonDataKinds.Email._ID,
+                ContactsContract.Data.IS_SUPER_PRIMARY,
+                ContactsContract.Data.TIMES_USED,
+                ContactsContract.Data.DATA1
+        };
+
+        public static final String[] PHONE_PROJECTION = {
+                ContactsContract.Data.CONTACT_ID,
+                ContactsContract.CommonDataKinds.Phone._ID,
+                ContactsContract.Data.IS_SUPER_PRIMARY,
+                ContactsContract.Data.TIMES_USED,
+                ContactsContract.Data.DATA1
+        };
+
+        public static final int CONTACT_ID = 0;
+        public static final int ITEM_ID = 1;
+        public static final int PRIMARY = 2;
+        public static final int TIMES_USED = 3;
+        public static final int DATA1 = 4;
+    }
+
+    /**
+     * Helper class for managing data related to contacts and emails/phone numbers.
+     */
+    private class ContactDataHelperClass {
+
+        private List<String> items = new ArrayList<>();
+        private String mostUsedItemId = null;
+        private int mostUsedTimes;
+        private String primaryItemId = null;
+
+        public void addItem(String item, int timesUsed, boolean primaryFlag) {
+            if (mostUsedItemId == null || timesUsed > mostUsedTimes) {
+                mostUsedItemId = item;
+                mostUsedTimes = timesUsed;
+            }
+            if (primaryFlag) {
+                primaryItemId = item;
+            }
+            items.add(item);
+        }
+
+        public boolean hasDefaultItem() {
+            return primaryItemId != null || items.size() == 1;
+        }
+
+        public String getDefaultSelectionItemId() {
+            return primaryItemId != null
+                    ? primaryItemId
+                    : mostUsedItemId;
+        }
+    }
+
+    private void sendToGroup(long[] ids, String sendScheme, String title) {
+        if (ids == null || ids.length == 0) return;
+
+        // Get emails or phone numbers
+        // contactMap <contact_id, contact_data>
+        final Map<String, ContactDataHelperClass> contactMap = new HashMap<>();
+        // itemList <item_data>
+        final List<String> itemList = new ArrayList<>();
+        final String sIds = GroupUtil.convertArrayToString(ids);
+        final String select = (ContactsUtils.SCHEME_MAILTO.equals(sendScheme)
+                ? Query.EMAIL_SELECTION
+                : Query.PHONE_SELECTION)
+                + " AND " + ContactsContract.Data.CONTACT_ID + " IN (" + sIds + ")";
+        final ContentResolver contentResolver = getContext().getContentResolver();
+        final Cursor cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI,
+                ContactsUtils.SCHEME_MAILTO.equals(sendScheme)
+                        ? Query.EMAIL_PROJECTION
+                        : Query.PHONE_PROJECTION,
+                select, null, null);
+
+        if (cursor == null) {
+            return;
+        }
+
+        try {
+            cursor.moveToPosition(-1);
+            while (cursor.moveToNext()) {
+                final String contactId = cursor.getString(Query.CONTACT_ID);
+                final String itemId = cursor.getString(Query.ITEM_ID);
+                final boolean isPrimary = cursor.getInt(Query.PRIMARY) != 0;
+                final int timesUsed = cursor.getInt(Query.TIMES_USED);
+                final String data = cursor.getString(Query.DATA1);
+
+                if (!TextUtils.isEmpty(data)) {
+                    final ContactDataHelperClass contact;
+                    if (!contactMap.containsKey(contactId)) {
+                        contact = new ContactDataHelperClass();
+                        contactMap.put(contactId, contact);
+                    } else {
+                        contact = contactMap.get(contactId);
+                    }
+                    contact.addItem(itemId, timesUsed, isPrimary);
+                    itemList.add(data);
+                }
+            }
+        } finally {
+            cursor.close();
+        }
+
+        // Start picker if a contact does not have a default
+        for (ContactDataHelperClass i : contactMap.values()) {
+            if (!i.hasDefaultItem()) {
+                // Build list of default selected item ids
+                final List<Long> defaultSelection = new ArrayList<>();
+                for (ContactDataHelperClass j : contactMap.values()) {
+                    final String selectionItemId = j.getDefaultSelectionItemId();
+                    if (selectionItemId != null) {
+                        defaultSelection.add(Long.parseLong(selectionItemId));
+                    }
+                }
+                final long[] defaultSelectionArray = Longs.toArray(defaultSelection);
+                startSendToSelectionPickerActivity(ids, defaultSelectionArray, sendScheme, title);
+                return;
+            }
+        }
+
+        if (itemList.size() == 0 || contactMap.size() < ids.length) {
+            Toast.makeText(getContext(), ContactsUtils.SCHEME_MAILTO.equals(sendScheme)
+                            ? getString(R.string.groupSomeContactsNoEmailsToast)
+                            : getString(R.string.groupSomeContactsNoPhonesToast),
+                    Toast.LENGTH_LONG).show();
+        }
+
+        if (itemList.size() == 0) {
+            return;
+        }
+
+        final String itemsString = TextUtils.join(",", itemList);
+        GroupUtil.startSendToSelectionActivity(this, itemsString, sendScheme, title);
+    }
+
+    private void startSendToSelectionPickerActivity(long[] ids, long[] defaultSelection,
+            String sendScheme, String title) {
+        startActivity(GroupUtil.createSendToSelectionPickerIntent(getContext(), ids,
+                defaultSelection, sendScheme, title));
+    }
+
+    private void startGroupAddMemberActivity() {
+        startActivityForResult(GroupUtil.createPickMemberIntent(getContext(), mGroupMetaData,
+                getMemberContactIds()), RESULT_GROUP_ADD_MEMBER);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int id = item.getItemId();
+        if (id == android.R.id.home) {
+            mActivity.onBackPressed();
+        } else if (id == R.id.menu_add) {
+            startGroupAddMemberActivity();
+        } else if (id == R.id.menu_multi_send_email) {
+            final long[] ids = mActionBarAdapter.isSelectionMode()
+                    ? getAdapter().getSelectedContactIdsArray()
+                    : GroupUtil.convertStringSetToLongArray(mGroupMemberContactIds);
+            sendToGroup(ids, ContactsUtils.SCHEME_MAILTO,
+                    getString(R.string.menu_sendEmailOption));
+        } else if (id == R.id.menu_multi_send_message) {
+            final long[] ids = mActionBarAdapter.isSelectionMode()
+                    ? getAdapter().getSelectedContactIdsArray()
+                    : GroupUtil.convertStringSetToLongArray(mGroupMemberContactIds);
+            sendToGroup(ids, ContactsUtils.SCHEME_SMSTO,
+                    getString(R.string.menu_sendMessageOption));
+        } else if (id == R.id.menu_rename_group) {
+            GroupNameEditDialogFragment.newInstanceForUpdate(
+                    new AccountWithDataSet(mGroupMetaData.accountName,
+                            mGroupMetaData.accountType, mGroupMetaData.dataSet),
+                    GroupUtil.ACTION_UPDATE_GROUP, mGroupMetaData.groupId,
+                    mGroupMetaData.groupName).show(getFragmentManager(),
+                    TAG_GROUP_NAME_EDIT_DIALOG);
+        } else if (id == R.id.menu_delete_group) {
+            deleteGroup();
+        } else if (id == R.id.menu_edit_group) {
+            mIsEditMode = true;
+            mActionBarAdapter.setSelectionMode(true);
+            displayDeleteButtons(true);
+        } else if (id == R.id.menu_remove_from_group) {
+            logListEvent();
+            removeSelectedContacts();
+        } else {
+            return super.onOptionsItemSelected(item);
+        }
+        return true;
+    }
+
+    private void removeSelectedContacts() {
+        final long[] contactIds = getAdapter().getSelectedContactIdsArray();
+        new UpdateGroupMembersAsyncTask(UpdateGroupMembersAsyncTask.TYPE_REMOVE,
+                getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
+                mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
+
+        mActionBarAdapter.setSelectionMode(false);
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (resultCode != Activity.RESULT_OK || data == null
+                || requestCode != RESULT_GROUP_ADD_MEMBER) {
+            return;
+        }
+
+        long[] contactIds = data.getLongArrayExtra(
+                UiIntentActions.TARGET_CONTACT_IDS_EXTRA_KEY);
+        if (contactIds == null) {
+            final long contactId = data.getLongExtra(
+                    UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY, -1);
+            if (contactId > -1) {
+                contactIds = new long[1];
+                contactIds[0] = contactId;
+            }
+        }
+        new UpdateGroupMembersAsyncTask(
+                UpdateGroupMembersAsyncTask.TYPE_ADD,
+                getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
+                mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
+    }
+
+    private final ActionBarAdapter.Listener mActionBarListener = new ActionBarAdapter.Listener() {
+        @Override
+        public void onAction(int action) {
+            switch (action) {
+                case ActionBarAdapter.Listener.Action.START_SELECTION_MODE:
+                    if (mIsEditMode) {
+                        displayDeleteButtons(true);
+                        mActionBarAdapter.setActionBarTitle(getString(R.string.title_edit_group));
+                    } else {
+                        displayCheckBoxes(true);
+                    }
+                    mActivity.invalidateOptionsMenu();
+                    break;
+                case ActionBarAdapter.Listener.Action.STOP_SEARCH_AND_SELECTION_MODE:
+                    mActionBarAdapter.setSearchMode(false);
+                    if (mIsEditMode) {
+                        displayDeleteButtons(false);
+                    } else {
+                        displayCheckBoxes(false);
+                    }
+                    mActivity.invalidateOptionsMenu();
+                    break;
+                case ActionBarAdapter.Listener.Action.BEGIN_STOPPING_SEARCH_AND_SELECTION_MODE:
+                    break;
+            }
+        }
+
+        @Override
+        public void onUpButtonPressed() {
+            mActivity.onBackPressed();
+        }
+    };
+
+    private final OnCheckBoxListActionListener mCheckBoxListener =
+            new OnCheckBoxListActionListener() {
+                @Override
+                public void onStartDisplayingCheckBoxes() {
+                    mActionBarAdapter.setSelectionMode(true);
+                }
+
+                @Override
+                public void onSelectedContactIdsChanged() {
+                    if (mActionBarAdapter == null) {
+                        return;
+                    }
+                    if (mIsEditMode) {
+                        mActionBarAdapter.setActionBarTitle(getString(R.string.title_edit_group));
+                    } else {
+                        mActionBarAdapter.setSelectionCount(getSelectedContactIds().size());
+                    }
+                }
+
+                @Override
+                public void onStopDisplayingCheckBoxes() {
+                    mActionBarAdapter.setSelectionMode(false);
+                }
+            };
+
+    private void logListEvent() {
+        Logger.logListEvent(
+                ListEvent.ActionType.REMOVE_LABEL,
+                getListType(),
+                getAdapter().getCount(),
+                /* clickedIndex */ -1,
+                getAdapter().getSelectedContactIdsArray().length);
+    }
+
+    private void deleteGroup() {
+        if (getMemberCount() == 0) {
+            final Intent intent = ContactSaveService.createGroupDeletionIntent(
+                    getContext(), mGroupMetaData.groupId);
+            getContext().startService(intent);
+            mActivity.switchToAllContacts();
+        } else {
+            GroupDeletionDialogFragment.show(getFragmentManager(), mGroupMetaData.groupId,
+                    mGroupMetaData.groupName);
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        mActivity = (PeopleActivity) getActivity();
+        mActionBarAdapter = new ActionBarAdapter(mActivity, mActionBarListener,
+                mActivity.getSupportActionBar(), mActivity.getToolbar(),
+                        R.string.enter_contact_name);
+        mActionBarAdapter.setShowHomeIcon(true);
+        final ContactsRequest contactsRequest = new ContactsRequest();
+        contactsRequest.setActionCode(ContactsRequest.ACTION_GROUP);
+        mActionBarAdapter.initialize(savedInstanceState, contactsRequest);
+        if (mGroupMetaData != null) {
+            mActivity.setTitle(mGroupMetaData.groupName);
+            if (mGroupMetaData.editable) {
+                setCheckBoxListListener(mCheckBoxListener);
+            }
+        }
+    }
+
+    @Override
+    public ActionBarAdapter getActionBarAdapter() {
+        return mActionBarAdapter;
+    }
+
+    public void displayDeleteButtons(boolean displayDeleteButtons) {
+        getAdapter().setDisplayDeleteButtons(displayDeleteButtons);
+    }
+
+    public ArrayList<String> getMemberContactIds() {
+        return new ArrayList<>(mGroupMemberContactIds);
+    }
+
+    public int getMemberCount() {
+        return mGroupMemberContactIds.size();
+    }
+
+    public boolean isEditMode() {
+        return mIsEditMode;
+    }
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        super.onCreate(savedState);
+        if (savedState == null) {
+            mGroupUri = getArguments().getParcelable(ARG_GROUP_URI);
+        } else {
+            mIsEditMode = savedState.getBoolean(KEY_IS_EDIT_MODE);
+            mGroupUri = savedState.getParcelable(KEY_GROUP_URI);
+            mGroupMetaData = savedState.getParcelable(KEY_GROUP_METADATA);
+        }
+        maybeAttachCheckBoxListener();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        // Re-register the listener, which may have been cleared when onSaveInstanceState was
+        // called. See also: onSaveInstanceState
+        mActionBarAdapter.setListener(mActionBarListener);
+    }
+
+    @Override
+    protected void startLoading() {
+        if (mGroupMetaData == null || !mGroupMetaData.isValid()) {
+            getLoaderManager().restartLoader(LOADER_GROUP_METADATA, null, mGroupMetaDataCallbacks);
+        } else {
+            onGroupMetadataLoaded();
+        }
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+        if (data != null) {
+            // Wait until contacts are loaded before showing the scrollbar
+            setVisibleScrollbarEnabled(true);
+
+            final FilterCursorWrapper cursorWrapper = new FilterCursorWrapper(data);
+            bindMembersCount(cursorWrapper.getCount());
+            super.onLoadFinished(loader, cursorWrapper);
+            // Update state of menu items (e.g. "Remove contacts") based on number of group members.
+            mActivity.invalidateOptionsMenu();
+            mActionBarAdapter.updateOverflowButtonColor();
+        }
+    }
+
+    private void bindMembersCount(int memberCount) {
+        final View accountFilterContainer = getView().findViewById(
+                R.id.account_filter_header_container);
+        final View emptyGroupView = getView().findViewById(R.id.empty_group);
+        if (memberCount > 0) {
+            final AccountWithDataSet accountWithDataSet = new AccountWithDataSet(
+                    mGroupMetaData.accountName, mGroupMetaData.accountType, mGroupMetaData.dataSet);
+            bindListHeader(getContext(), getListView(), accountFilterContainer,
+                    accountWithDataSet, memberCount);
+            emptyGroupView.setVisibility(View.GONE);
+        } else {
+            hideHeaderAndAddPadding(getContext(), getListView(), accountFilterContainer);
+            emptyGroupView.setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        if (mActionBarAdapter != null) {
+            mActionBarAdapter.setListener(null);
+            mActionBarAdapter.onSaveInstanceState(outState);
+        }
+        outState.putBoolean(KEY_IS_EDIT_MODE, mIsEditMode);
+        outState.putParcelable(KEY_GROUP_URI, mGroupUri);
+        outState.putParcelable(KEY_GROUP_METADATA, mGroupMetaData);
+    }
+
+    private void onGroupMetadataLoaded() {
+        if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "Loaded " + mGroupMetaData);
+
+        maybeAttachCheckBoxListener();
+
+        mActivity.setTitle(mGroupMetaData.groupName);
+        mActivity.invalidateOptionsMenu();
+        mActivity.updateDrawerGroupMenu(mGroupMetaData.groupId);
+
+        // Start loading the group members
+        super.startLoading();
+    }
+
+    private void maybeAttachCheckBoxListener() {
+        // Don't attach the multi select check box listener if we can't edit the group
+        if (mGroupMetaData != null && mGroupMetaData.editable) {
+            setCheckBoxListListener(mCheckBoxListener);
+        }
+    }
+
+    @Override
+    protected GroupMembersAdapter createListAdapter() {
+        final GroupMembersAdapter adapter = new GroupMembersAdapter(getContext());
+        adapter.setSectionHeaderDisplayEnabled(true);
+        adapter.setDisplayPhotos(true);
+        adapter.setDeleteContactListener(new DeletionListener());
+        return adapter;
+    }
+
+    @Override
+    protected void configureAdapter() {
+        super.configureAdapter();
+        if (mGroupMetaData != null) {
+            getAdapter().setGroupId(mGroupMetaData.groupId);
+        }
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        final View view = inflater.inflate(R.layout.contact_list_content, /* root */ null);
+        final View emptyGroupView = inflater.inflate(R.layout.empty_group_view, null);
+
+        final ImageView image = (ImageView) emptyGroupView.findViewById(R.id.empty_group_image);
+        final LinearLayout.LayoutParams params =
+                (LinearLayout.LayoutParams) image.getLayoutParams();
+        final int screenHeight = getResources().getDisplayMetrics().heightPixels;
+        params.setMargins(0, screenHeight /
+                getResources().getInteger(R.integer.empty_group_view_image_margin_divisor), 0, 0);
+        params.gravity = Gravity.CENTER_HORIZONTAL;
+        image.setLayoutParams(params);
+
+        final FrameLayout contactListLayout = (FrameLayout) view.findViewById(R.id.contact_list);
+        contactListLayout.addView(emptyGroupView);
+
+        final Button addContactsButton =
+                (Button) emptyGroupView.findViewById(R.id.add_member_button);
+        addContactsButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                startActivityForResult(GroupUtil.createPickMemberIntent(getContext(),
+                        mGroupMetaData, getMemberContactIds()), RESULT_GROUP_ADD_MEMBER);
+            }
+        });
+        return view;
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        final Uri uri = getAdapter().getContactUri(position);
+        if (uri == null) {
+            return;
+        }
+        if (getAdapter().isDisplayingCheckBoxes()) {
+            super.onItemClick(position, id);
+            return;
+        }
+        final int count = getAdapter().getCount();
+        Logger.logListEvent(ListEvent.ActionType.CLICK, ListEvent.ListType.GROUP, count,
+                /* clickedIndex */ position, /* numSelected */ 0);
+        ImplicitIntentsUtil.startQuickContact(
+                getActivity(), uri, ScreenEvent.ScreenType.LIST_GROUP);
+    }
+
+    @Override
+    protected boolean onItemLongClick(int position, long id) {
+        if (mActivity != null && mIsEditMode) {
+            return true;
+        }
+        return super.onItemLongClick(position, id);
+    }
+
+    private final class DeletionListener implements DeleteContactListener {
+        @Override
+        public void onContactDeleteClicked(int position) {
+            final long contactId = getAdapter().getContactId(position);
+            final long[] contactIds = new long[1];
+            contactIds[0] = contactId;
+            new UpdateGroupMembersAsyncTask(UpdateGroupMembersAsyncTask.TYPE_REMOVE,
+                    getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
+                    mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
+        }
+    }
+
+    public GroupMetaData getGroupMetaData() {
+        return mGroupMetaData;
+    }
+
+    public boolean isCurrentGroup(long groupId) {
+        return mGroupMetaData != null && mGroupMetaData.groupId == groupId;
+    }
+
+    /**
+     * Return true if the fragment is not yet added, being removed, or detached.
+     */
+    public boolean isInactive() {
+        return !isAdded() || isRemoving() || isDetached();
+    }
+
+    @Override
+    public void onDestroy() {
+        if (mActionBarAdapter != null) {
+            mActionBarAdapter.setListener(null);
+        }
+        super.onDestroy();
+    }
+
+    public void updateExistingGroupFragment(Uri newGroupUri, String action) {
+        toastForSaveAction(action);
+
+        if (isEditMode() && getGroupCount() == 1) {
+            // If we're deleting the last group member, exit edit mode
+            exitEditMode();
+        } else if (!GroupUtil.ACTION_REMOVE_FROM_GROUP.equals(action)) {
+            mGroupUri = newGroupUri;
+            mGroupMetaData = null; // Clear mGroupMetaData to trigger a new load.
+            reloadData();
+            mActivity.invalidateOptionsMenu();
+        }
+    }
+
+    public void toastForSaveAction(String action) {
+        int id = -1;
+        switch(action) {
+            case GroupUtil.ACTION_UPDATE_GROUP:
+                id = R.string.groupUpdatedToast;
+                break;
+            case GroupUtil.ACTION_REMOVE_FROM_GROUP:
+                id = R.string.groupMembersRemovedToast;
+                break;
+            case GroupUtil.ACTION_CREATE_GROUP:
+                id = R.string.groupCreatedToast;
+                break;
+            case GroupUtil.ACTION_ADD_TO_GROUP:
+                id = R.string.groupMembersAddedToast;
+                break;
+            case GroupUtil.ACTION_SWITCH_GROUP:
+                // No toast associated with this action.
+                break;
+            default:
+                FeedbackHelper.sendFeedback(getContext(), TAG,
+                        "toastForSaveAction passed unknown action: " + action,
+                        new IllegalArgumentException("Unhandled contact save action " + action));
+        }
+        toast(id);
+    }
+
+    private void toast(int resId) {
+        if (resId >= 0) {
+            Toast.makeText(getContext(), resId, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    private int getGroupCount() {
+        return getAdapter() != null ? getAdapter().getCount() : -1;
+    }
+
+    public void exitEditMode() {
+        mIsEditMode = false;
+        mActionBarAdapter.setSelectionMode(false);
+        displayDeleteButtons(false);
+    }
+}
diff --git a/src/com/android/contacts/group/GroupMetaData.java b/src/com/android/contacts/group/GroupMetaData.java
new file mode 100644
index 0000000..4a8cb0f
--- /dev/null
+++ b/src/com/android/contacts/group/GroupMetaData.java
@@ -0,0 +1,143 @@
+/*
+ * 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.group;
+
+import android.content.ContentUris;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.ContactsContract;
+import android.text.TextUtils;
+
+import com.android.contacts.GroupMetaDataLoader;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+
+import com.google.common.base.MoreObjects;
+
+/** Meta data for a contact group. */
+public final class GroupMetaData implements Parcelable {
+
+    public static final Creator<GroupMetaData> CREATOR = new Creator<GroupMetaData>() {
+
+        public GroupMetaData createFromParcel(Parcel in) {
+            return new GroupMetaData(in);
+        }
+
+        public GroupMetaData[] newArray(int size) {
+            return new GroupMetaData[size];
+        }
+    };
+
+    public final Uri uri;
+    public final String accountName;
+    public final String accountType;
+    public final String dataSet;
+    public final long groupId;
+    public final String groupName;
+    public final boolean readOnly;
+    public final boolean defaultGroup;
+    public final boolean favorites;
+    public final boolean editable;
+
+    /**
+     * @param cursor Cursor loaded with {@link GroupMetaDataLoader#COLUMNS} as the projection.
+     */
+    public GroupMetaData(Context context, Cursor cursor) {
+        final AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(context);
+        final long groupId = cursor.getLong(GroupMetaDataLoader.GROUP_ID);
+        final Uri groupUri = ContentUris.withAppendedId(
+                ContactsContract.Groups.CONTENT_URI, groupId);
+        final AccountType accountType = accountTypeManager.getAccountType(
+                cursor.getString(GroupMetaDataLoader.ACCOUNT_TYPE),
+                cursor.getString(GroupMetaDataLoader.DATA_SET));
+        final boolean editable = accountType == null
+                ? false : accountType.isGroupMembershipEditable();
+
+        this.uri = groupUri;
+        this.accountName = cursor.getString(GroupMetaDataLoader.ACCOUNT_NAME);
+        this.accountType = cursor.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
+        this.dataSet = cursor.getString(GroupMetaDataLoader.DATA_SET);
+        this.groupId = groupId;
+        this.groupName = cursor.getString(GroupMetaDataLoader.TITLE);
+        this.readOnly = getBoolean(cursor, GroupMetaDataLoader.IS_READ_ONLY);
+        this.defaultGroup = getBoolean(cursor, GroupMetaDataLoader.AUTO_ADD);
+        this.favorites = getBoolean(cursor, GroupMetaDataLoader.FAVORITES);
+        this.editable = editable;
+    }
+
+    private static boolean getBoolean(Cursor cursor, int columnIndex) {
+         return cursor.isNull(columnIndex) ? false : cursor.getInt(columnIndex) != 0;
+    }
+
+    private GroupMetaData(Parcel source) {
+        uri = source.readParcelable(Uri.class.getClassLoader());
+        accountName = source.readString();
+        accountType = source.readString();
+        dataSet = source.readString();
+        groupId = source.readLong();
+        groupName = source.readString();
+        readOnly = source.readInt() == 1;
+        defaultGroup = source.readInt() == 1;
+        favorites = source.readInt() == 1;
+        editable = source.readInt() == 1;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeParcelable(uri, 0);
+        dest.writeString(accountName);
+        dest.writeString(accountType);
+        dest.writeString(dataSet);
+        dest.writeLong(groupId);
+        dest.writeString(groupName);
+        dest.writeInt(readOnly ? 1 : 0);
+        dest.writeInt(defaultGroup ? 1 : 0);
+        dest.writeInt(favorites ? 1 : 0);
+        dest.writeInt(editable ? 1 : 0);
+    }
+
+    /** Whether all metadata fields are set. */
+    public boolean isValid() {
+        return uri != null
+                && !TextUtils.isEmpty(accountName)
+                && !TextUtils.isEmpty(groupName)
+                && groupId > 0;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("accountName", accountName)
+                .add("accountType", accountType)
+                .add("dataSet", dataSet)
+                .add("groupId", groupId)
+                .add("groupName", groupName)
+                .add("readOnly", readOnly)
+                .add("defaultGroup", defaultGroup)
+                .add("favorites", favorites)
+                .add("editable", editable)
+                .add("isValid", isValid())
+                .toString();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/group/GroupNameEditDialogFragment.java b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
new file mode 100644
index 0000000..80d184b
--- /dev/null
+++ b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
@@ -0,0 +1,357 @@
+/*
+ * 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, softwareateCre
+ * 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.group;
+
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.LoaderManager;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.content.Intent;
+import android.content.Loader;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.provider.ContactsContract.Groups;
+import android.support.design.widget.TextInputLayout;
+import android.support.v7.app.AlertDialog;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.R;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import com.google.common.base.Strings;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Edits the name of a group.
+ */
+public final class GroupNameEditDialogFragment extends DialogFragment implements
+        LoaderManager.LoaderCallbacks<Cursor> {
+
+    private static final String KEY_GROUP_NAME = "groupName";
+
+    private static final String ARG_IS_INSERT = "isInsert";
+    private static final String ARG_GROUP_NAME = "groupName";
+    private static final String ARG_ACCOUNT = "account";
+    private static final String ARG_CALLBACK_ACTION = "callbackAction";
+    private static final String ARG_GROUP_ID = "groupId";
+
+    private static final long NO_GROUP_ID = -1;
+
+
+    /** 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() { }
+
+            @Override
+            public void onGroupNameEditCompleted(String name) { }
+        };
+    }
+
+    private boolean mIsInsert;
+    private String mGroupName;
+    private long mGroupId;
+    private Listener mListener;
+    private AccountWithDataSet mAccount;
+    private EditText mGroupNameEditText;
+    private TextInputLayout mGroupNameTextLayout;
+    private Set<String> mExistingGroups = Collections.emptySet();
+
+    public static GroupNameEditDialogFragment newInstanceForCreation(
+            AccountWithDataSet account, String callbackAction) {
+        return newInstance(account, callbackAction, NO_GROUP_ID, null);
+    }
+
+    public static GroupNameEditDialogFragment newInstanceForUpdate(
+            AccountWithDataSet account, String callbackAction, long groupId, String groupName) {
+        return newInstance(account, callbackAction, groupId, groupName);
+    }
+
+    private static GroupNameEditDialogFragment newInstance(
+            AccountWithDataSet account, String callbackAction, long groupId, String groupName) {
+        if (account == null || account.name == null || account.type == null) {
+            throw new IllegalArgumentException("Invalid account");
+        }
+        final boolean isInsert = groupId == NO_GROUP_ID;
+        final Bundle args = new Bundle();
+        args.putBoolean(ARG_IS_INSERT, isInsert);
+        args.putLong(ARG_GROUP_ID, groupId);
+        args.putString(ARG_GROUP_NAME, groupName);
+        args.putParcelable(ARG_ACCOUNT, account);
+        args.putString(ARG_CALLBACK_ACTION, callbackAction);
+
+        final GroupNameEditDialogFragment dialog = new GroupNameEditDialogFragment();
+        dialog.setArguments(args);
+        return dialog;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setStyle(STYLE_NORMAL, R.style.ContactsAlertDialogThemeAppCompat);
+        final Bundle args = getArguments();
+        if (savedInstanceState == null) {
+            mGroupName = args.getString(KEY_GROUP_NAME);
+        } else {
+            mGroupName = savedInstanceState.getString(ARG_GROUP_NAME);
+        }
+
+        mGroupId = args.getLong(ARG_GROUP_ID, NO_GROUP_ID);
+        mIsInsert = args.getBoolean(ARG_IS_INSERT, true);
+        mAccount = getArguments().getParcelable(ARG_ACCOUNT);
+
+        // There is only one loader so the id arg doesn't matter.
+        getLoaderManager().initLoader(0, null, this);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        // Build a dialog with two buttons and a view of a single EditText input field
+        final TextView title = (TextView) View.inflate(getActivity(), R.layout.dialog_title, null);
+        title.setText(mIsInsert
+                ? R.string.group_name_dialog_insert_title
+                : R.string.group_name_dialog_update_title);
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), getTheme())
+                .setCustomTitle(title)
+                .setView(R.layout.group_name_edit_dialog)
+                .setNegativeButton(android.R.string.cancel, new OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        hideInputMethod();
+                        getListener().onGroupNameEditCancelled();
+                        dismiss();
+                    }
+                })
+                // The Positive button listener is defined below in the OnShowListener to
+                // allow for input validation
+                .setPositiveButton(android.R.string.ok, null);
+
+        // Disable the create button when the name is empty
+        final AlertDialog alertDialog = builder.create();
+        alertDialog.getWindow().setSoftInputMode(
+                WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+        alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
+            @Override
+            public void onShow(DialogInterface dialog) {
+                mGroupNameEditText = (EditText) alertDialog.findViewById(android.R.id.text1);
+                mGroupNameTextLayout =
+                        (TextInputLayout) alertDialog.findViewById(R.id.text_input_layout);
+                if (!TextUtils.isEmpty(mGroupName)) {
+                    mGroupNameEditText.setText(mGroupName);
+                    // Guard against already created group names that are longer than the max
+                    final int maxLength = getResources().getInteger(
+                            R.integer.group_name_max_length);
+                    mGroupNameEditText.setSelection(
+                            mGroupName.length() > maxLength ? maxLength : mGroupName.length());
+                }
+                showInputMethod(mGroupNameEditText);
+
+                final Button createButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+                createButton.setEnabled(!TextUtils.isEmpty(getGroupName()));
+
+                // Override the click listener to prevent dismissal if creating a duplicate group.
+                createButton.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        maybePersistCurrentGroupName(v);
+                    }
+                });
+                mGroupNameEditText.addTextChangedListener(new TextWatcher() {
+                    @Override
+                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+                    }
+
+                    @Override
+                    public void onTextChanged(CharSequence s, int start, int before, int count) {
+                    }
+
+                    @Override
+                    public void afterTextChanged(Editable s) {
+                        mGroupNameTextLayout.setError(null);
+                        createButton.setEnabled(!TextUtils.isEmpty(s));
+                    }
+                });
+            }
+        });
+
+        return alertDialog;
+    }
+
+    /**
+     * Sets the listener for the rename
+     *
+     * Setting a listener on a fragment is error prone since it will be lost if the fragment
+     * is recreated. This exists because it is used from a view class (GroupMembersView) which
+     * needs to modify it's state when this fragment updates the name.
+     *
+     * @param listener the listener. can be null
+     */
+    public void setListener(Listener listener) {
+        mListener = listener;
+    }
+
+    private boolean hasNameChanged() {
+        final String name = Strings.nullToEmpty(getGroupName());
+        final String originalName = getArguments().getString(ARG_GROUP_NAME);
+        return (mIsInsert && !name.isEmpty()) || !name.equals(originalName);
+    }
+
+    private void maybePersistCurrentGroupName(View button) {
+        if (!hasNameChanged()) {
+            dismiss();
+            return;
+        }
+        final String name = getGroupName();
+        // Note we don't check if the loader finished populating mExistingGroups. It's not the
+        // end of the world if the user ends up with a duplicate group and in practice it should
+        // never really happen (the query should complete much sooner than the user can edit the
+        // label)
+        if (mExistingGroups.contains(name)) {
+            mGroupNameTextLayout.setError(
+                    getString(R.string.groupExistsErrorMessage));
+            button.setEnabled(false);
+            return;
+        }
+        final String callbackAction = getArguments().getString(ARG_CALLBACK_ACTION);
+        final Intent serviceIntent;
+        if (mIsInsert) {
+            serviceIntent = ContactSaveService.createNewGroupIntent(getActivity(), mAccount,
+                    name, null, getActivity().getClass(), callbackAction);
+        } else {
+            serviceIntent = ContactSaveService.createGroupRenameIntent(getActivity(), mGroupId,
+                    name, getActivity().getClass(), callbackAction);
+        }
+        ContactSaveService.startService(getActivity(), serviceIntent);
+        getListener().onGroupNameEditCompleted(mGroupName);
+        dismiss();
+    }
+
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        super.onCancel(dialog);
+        getListener().onGroupNameEditCancelled();
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putString(KEY_GROUP_NAME, getGroupName());
+    }
+
+    @Override
+    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,
+                        Groups.SUMMARY_COUNT, Groups.GROUP_IS_READ_ONLY},
+                getSelection(), getSelectionArgs(), null);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+        mExistingGroups = new HashSet<>();
+        final GroupUtil.GroupsProjection projection = new GroupUtil.GroupsProjection(data);
+        while (data.moveToNext()) {
+            final String title = projection.getTitle(data);
+            // Empty system groups aren't shown in the nav drawer so it would be confusing to tell
+            // the user that they already exist. Instead we allow them to create a duplicate
+            // group in this case. This is how the web handles this case as well (it creates a
+            // new non-system group if a new group with a title that matches a system group is
+            // create).
+            if (projection.isEmptyFFCGroup(data)) {
+                continue;
+            }
+            mExistingGroups.add(title);
+        }
+    }
+
+    @Override
+    public void onLoaderReset(Loader<Cursor> loader) {
+    }
+
+    private void showInputMethod(View view) {
+        final InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        if (imm != null) {
+            imm.showSoftInput(view, /* flags */ 0);
+        }
+    }
+
+    private void hideInputMethod() {
+        final InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        if (imm != null && mGroupNameEditText != null) {
+            imm.hideSoftInputFromWindow(mGroupNameEditText.getWindowToken(), /* flags */ 0);
+        }
+    }
+
+    private Listener getListener() {
+        if (mListener != null) {
+            return mListener;
+        } else if (getActivity() instanceof Listener) {
+            return (Listener) getActivity();
+        } else {
+            return Listener.None;
+        }
+    }
+
+    private String getGroupName() {
+        return mGroupNameEditText == null || mGroupNameEditText.getText() == null
+                ? null : mGroupNameEditText.getText().toString();
+    }
+
+    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("=?");
+        }
+        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;
+        }
+        return args;
+    }
+}
diff --git a/src/com/android/contacts/group/GroupUtil.java b/src/com/android/contacts/group/GroupUtil.java
new file mode 100644
index 0000000..706f16b
--- /dev/null
+++ b/src/com/android/contacts/group/GroupUtil.java
@@ -0,0 +1,364 @@
+/*
+ * 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.group;
+
+import android.app.Fragment;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Groups;
+import android.text.TextUtils;
+
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.GroupListLoader;
+import com.android.contacts.activities.ContactSelectionActivity;
+import com.android.contacts.list.ContactsSectionIndexer;
+import com.android.contacts.list.UiIntentActions;
+import com.android.contacts.model.account.GoogleAccountType;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Group utility methods.
+ */
+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 DEFAULT_SELECTION = ALL_GROUPS_SELECTION + " AND "
+            + Groups.AUTO_ADD + "=0 AND " + Groups.FAVORITES + "=0";
+
+    public static final String ACTION_ADD_TO_GROUP = "addToGroup";
+    public static final String ACTION_CREATE_GROUP = "createGroup";
+    public static final String ACTION_DELETE_GROUP = "deleteGroup";
+    public static final String ACTION_REMOVE_FROM_GROUP = "removeFromGroup";
+    public static final String ACTION_SWITCH_GROUP = "switchGroup";
+    public static final String ACTION_UPDATE_GROUP = "updateGroup";
+
+    public static final int RESULT_SEND_TO_SELECTION = 100;
+
+    // System IDs of FFC groups in Google accounts
+    private static final Set<String> FFC_GROUPS =
+            new HashSet(Arrays.asList("Friends", "Family", "Coworkers"));
+
+    private GroupUtil() {
+    }
+
+    /** Returns a {@link GroupListItem} read from the given cursor and position. */
+    public static GroupListItem getGroupListItem(Cursor cursor, int position) {
+        if (cursor == null || cursor.isClosed() || !cursor.moveToPosition(position)) {
+            return null;
+        }
+        String accountName = cursor.getString(GroupListLoader.ACCOUNT_NAME);
+        String accountType = cursor.getString(GroupListLoader.ACCOUNT_TYPE);
+        String dataSet = cursor.getString(GroupListLoader.DATA_SET);
+        long groupId = cursor.getLong(GroupListLoader.GROUP_ID);
+        String title = cursor.getString(GroupListLoader.TITLE);
+        int memberCount = cursor.getInt(GroupListLoader.MEMBER_COUNT);
+        boolean isReadOnly = cursor.getInt(GroupListLoader.IS_READ_ONLY) == 1;
+        String systemId = cursor.getString(GroupListLoader.SYSTEM_ID);
+
+        // Figure out if this is the first group for this account name / account type pair by
+        // checking the previous entry. This is to determine whether or not we need to display an
+        // account header in this item.
+        int previousIndex = position - 1;
+        boolean isFirstGroupInAccount = true;
+        if (previousIndex >= 0 && cursor.moveToPosition(previousIndex)) {
+            String previousGroupAccountName = cursor.getString(GroupListLoader.ACCOUNT_NAME);
+            String previousGroupAccountType = cursor.getString(GroupListLoader.ACCOUNT_TYPE);
+            String previousGroupDataSet = cursor.getString(GroupListLoader.DATA_SET);
+
+            if (TextUtils.equals(accountName, previousGroupAccountName)
+                    && TextUtils.equals(accountType, previousGroupAccountType)
+                    && TextUtils.equals(dataSet, previousGroupDataSet)) {
+                isFirstGroupInAccount = false;
+            }
+        }
+
+        return new GroupListItem(accountName, accountType, dataSet, groupId, title,
+                isFirstGroupInAccount, memberCount, isReadOnly, systemId);
+    }
+
+    public static List<String> getSendToDataForIds(Context context, long[] ids, String scheme) {
+        final List<String> items = new ArrayList<>();
+        final String sIds = GroupUtil.convertArrayToString(ids);
+        final String select = (ContactsUtils.SCHEME_MAILTO.equals(scheme)
+                ? GroupMembersFragment.Query.EMAIL_SELECTION
+                + " AND " + ContactsContract.CommonDataKinds.Email._ID + " IN (" + sIds + ")"
+                : GroupMembersFragment.Query.PHONE_SELECTION
+                + " AND " + ContactsContract.CommonDataKinds.Phone._ID + " IN (" + sIds + ")");
+        final ContentResolver contentResolver = context.getContentResolver();
+        final Cursor cursor = contentResolver.query(ContactsContract.Data.CONTENT_URI,
+                ContactsUtils.SCHEME_MAILTO.equals(scheme)
+                        ? GroupMembersFragment.Query.EMAIL_PROJECTION
+                        : GroupMembersFragment.Query.PHONE_PROJECTION,
+                select, null, null);
+
+        if (cursor == null) {
+            return items;
+        }
+
+        try {
+            cursor.moveToPosition(-1);
+            while (cursor.moveToNext()) {
+                final String data = cursor.getString(GroupMembersFragment.Query.DATA1);
+
+                if (!TextUtils.isEmpty(data)) {
+                    items.add(data);
+                }
+            }
+        } finally {
+            cursor.close();
+        }
+
+        return items;
+    }
+
+    /** Returns an Intent to send emails/phones to some activity/app */
+    public static void startSendToSelectionActivity(
+            Fragment fragment, String itemsList, String sendScheme, String title) {
+        final Intent intent = new Intent(Intent.ACTION_SENDTO,
+                Uri.fromParts(sendScheme, itemsList, null));
+        fragment.startActivityForResult(
+                Intent.createChooser(intent, title), RESULT_SEND_TO_SELECTION);
+    }
+
+    /** Returns an Intent to pick emails/phones to send to selection (or group) */
+    public static Intent createSendToSelectionPickerIntent(Context context, long[] ids,
+            long[] defaultSelection, String sendScheme, String title) {
+        final Intent intent = new Intent(context, ContactSelectionActivity.class);
+        intent.setAction(UiIntentActions.ACTION_SELECT_ITEMS);
+        intent.setType(ContactsUtils.SCHEME_MAILTO.equals(sendScheme)
+                ? ContactsContract.CommonDataKinds.Email.CONTENT_TYPE
+                : ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
+        intent.putExtra(UiIntentActions.SELECTION_ITEM_LIST, ids);
+        intent.putExtra(UiIntentActions.SELECTION_DEFAULT_SELECTION, defaultSelection);
+        intent.putExtra(UiIntentActions.SELECTION_SEND_SCHEME, sendScheme);
+        intent.putExtra(UiIntentActions.SELECTION_SEND_TITLE, title);
+
+        return intent;
+    }
+
+    /** Returns an Intent to pick contacts to add to a group. */
+    public static Intent createPickMemberIntent(Context context,
+            GroupMetaData groupMetaData, ArrayList<String> memberContactIds) {
+        final Intent intent = new Intent(context, ContactSelectionActivity.class);
+        intent.setAction(Intent.ACTION_PICK);
+        intent.setType(Groups.CONTENT_TYPE);
+        intent.putExtra(UiIntentActions.GROUP_ACCOUNT_NAME, groupMetaData.accountName);
+        intent.putExtra(UiIntentActions.GROUP_ACCOUNT_TYPE, groupMetaData.accountType);
+        intent.putExtra(UiIntentActions.GROUP_ACCOUNT_DATA_SET, groupMetaData.dataSet);
+        intent.putExtra(UiIntentActions.GROUP_CONTACT_IDS, memberContactIds);
+        return intent;
+    }
+
+    public static String convertArrayToString(long[] list) {
+        if (list == null || list.length == 0) return "";
+        return Arrays.toString(list).replace("[", "").replace("]", "");
+    }
+
+    public static long[] convertLongSetToLongArray(Set<Long> set) {
+        final Long[] contactIds = set.toArray(new Long[set.size()]);
+        final long[] result = new long[contactIds.length];
+        for (int i = 0; i < contactIds.length; i++) {
+            result[i] = contactIds[i];
+        }
+        return result;
+    }
+
+    public static long[] convertStringSetToLongArray(Set<String> set) {
+        final String[] contactIds = set.toArray(new String[set.size()]);
+        final long[] result = new long[contactIds.length];
+        for (int i = 0; i < contactIds.length; i++) {
+            try {
+                result[i] = Long.parseLong(contactIds[i]);
+            } catch (NumberFormatException e) {
+                result[i] = -1;
+            }
+        }
+        return result;
+    }
+
+    /**
+     * Returns true if it's an empty and read-only group and the system ID of
+     * the group is one of "Friends", "Family" and "Coworkers".
+     */
+    public static boolean isEmptyFFCGroup(GroupListItem groupListItem) {
+        return groupListItem.isReadOnly()
+                && isSystemIdFFC(groupListItem.getSystemId())
+                && (groupListItem.getMemberCount() <= 0);
+    }
+
+    private static boolean isSystemIdFFC(String systemId) {
+        return !TextUtils.isEmpty(systemId) && FFC_GROUPS.contains(systemId);
+    }
+
+    /**
+     * Returns true the URI is a group URI.
+     */
+    public static boolean isGroupUri(Uri uri) {
+        return  uri != null && uri.toString().startsWith(Groups.CONTENT_URI.toString());
+    }
+
+    /**
+     * Sort groups alphabetically and in a localized way.
+     */
+    public static String getGroupsSortOrder() {
+        return Groups.TITLE + " COLLATE LOCALIZED ASC";
+    }
+
+    /**
+     * The sum of the last element in counts[] and the last element in positions[] is the total
+     * number of remaining elements in cursor. If count is more than what's in the indexer now,
+     * then we don't need to trim.
+     */
+    public static boolean needTrimming(int count, int[] counts, int[] positions) {
+        // The sum of the last element in counts[] and the last element in positions[] is
+        // the total number of remaining elements in cursor. If mCount is more than
+        // what's in the indexer now, then we don't need to trim.
+        return positions.length > 0 && counts.length > 0
+                && count <= (counts[counts.length - 1] + positions[positions.length - 1]);
+    }
+
+    /**
+     * Update Bundle extras so as to update indexer.
+     */
+    public static void updateBundle(Bundle bundle, ContactsSectionIndexer indexer,
+            List<Integer> subscripts, String[] sections, int[] counts) {
+        for (int i : subscripts) {
+            final int filteredContact = indexer.getSectionForPosition(i);
+            if (filteredContact < counts.length && filteredContact >= 0) {
+                counts[filteredContact]--;
+                if (counts[filteredContact] == 0) {
+                    sections[filteredContact] = "";
+                }
+            }
+        }
+        final String[] newSections = clearEmptyString(sections);
+        bundle.putStringArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES, newSections);
+        final int[] newCounts = clearZeros(counts);
+        bundle.putIntArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS, newCounts);
+    }
+
+    private static String[] clearEmptyString(String[] strings) {
+        final List<String> list = new ArrayList<>();
+        for (String s : strings) {
+            if (!TextUtils.isEmpty(s)) {
+                list.add(s);
+            }
+        }
+        return list.toArray(new String[list.size()]);
+    }
+
+    private static int[] clearZeros(int[] numbers) {
+        final List<Integer> list = new ArrayList<>();
+        for (int n : numbers) {
+            if (n > 0) {
+                list.add(n);
+            }
+        }
+        final int[] array = new int[list.size()];
+        for(int i = 0; i < list.size(); i++) {
+            array[i] = list.get(i);
+        }
+        return array;
+    }
+
+    /**
+     * Stores column ordering for the projection of a query of ContactsContract.Groups
+     */
+    public static final class GroupsProjection {
+        public final int groupId;
+        public final int title;
+        public final int summaryCount;
+        public final int systemId;
+        public final int accountName;
+        public final int accountType;
+        public final int dataSet;
+        public final int autoAdd;
+        public final int favorites;
+        public final int isReadOnly;
+        public final int deleted;
+
+        public GroupsProjection(Cursor cursor) {
+            groupId = cursor.getColumnIndex(Groups._ID);
+            title = cursor.getColumnIndex(Groups.TITLE);
+            summaryCount = cursor.getColumnIndex(Groups.SUMMARY_COUNT);
+            systemId = cursor.getColumnIndex(Groups.SYSTEM_ID);
+            accountName = cursor.getColumnIndex(Groups.ACCOUNT_NAME);
+            accountType = cursor.getColumnIndex(Groups.ACCOUNT_TYPE);
+            dataSet = cursor.getColumnIndex(Groups.DATA_SET);
+            autoAdd = cursor.getColumnIndex(Groups.AUTO_ADD);
+            favorites = cursor.getColumnIndex(Groups.FAVORITES);
+            isReadOnly = cursor.getColumnIndex(Groups.GROUP_IS_READ_ONLY);
+            deleted = cursor.getColumnIndex(Groups.DELETED);
+        }
+
+        public GroupsProjection(String[] projection) {
+            List<String> list = Arrays.asList(projection);
+            groupId = list.indexOf(Groups._ID);
+            title = list.indexOf(Groups.TITLE);
+            summaryCount = list.indexOf(Groups.SUMMARY_COUNT);
+            systemId = list.indexOf(Groups.SYSTEM_ID);
+            accountName = list.indexOf(Groups.ACCOUNT_NAME);
+            accountType = list.indexOf(Groups.ACCOUNT_TYPE);
+            dataSet = list.indexOf(Groups.DATA_SET);
+            autoAdd = list.indexOf(Groups.AUTO_ADD);
+            favorites = list.indexOf(Groups.FAVORITES);
+            isReadOnly = list.indexOf(Groups.GROUP_IS_READ_ONLY);
+            deleted = list.indexOf(Groups.DELETED);
+        }
+
+        public String getTitle(Cursor cursor) {
+            return cursor.getString(title);
+        }
+
+        public long getId(Cursor cursor) {
+            return cursor.getLong(groupId);
+        }
+
+        public String getSystemId(Cursor cursor) {
+            return cursor.getString(systemId);
+        }
+
+        public int getSummaryCount(Cursor cursor) {
+            return cursor.getInt(summaryCount);
+        }
+
+        public boolean isEmptyFFCGroup(Cursor cursor) {
+            if (accountType == -1 || isReadOnly == -1 ||
+                    systemId == -1 || summaryCount == -1) {
+                throw new IllegalArgumentException("Projection is missing required columns");
+            }
+            return GoogleAccountType.ACCOUNT_TYPE.equals(cursor.getString(accountType))
+                    && cursor.getInt(isReadOnly) != 0
+                    && isSystemIdFFC(cursor.getString(systemId))
+                    && cursor.getInt(summaryCount) <= 0;
+        }
+    }
+}
diff --git a/src/com/android/contacts/group/SuggestedMemberListAdapter.java b/src/com/android/contacts/group/SuggestedMemberListAdapter.java
deleted file mode 100644
index 19ff611..0000000
--- a/src/com/android/contacts/group/SuggestedMemberListAdapter.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Copyright (C) 2011 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.group;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.database.Cursor;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.provider.ContactsContract.CommonDataKinds.Email;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.Contacts.Data;
-import android.provider.ContactsContract.RawContacts;
-import android.provider.ContactsContract.RawContactsEntity;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.AutoCompleteTextView;
-import android.widget.Filter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.android.contacts.R;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.group.SuggestedMemberListAdapter.SuggestedMember;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * This adapter provides suggested contacts that can be added to a group for an
- * {@link AutoCompleteTextView} within the group editor.
- */
-public class SuggestedMemberListAdapter extends ArrayAdapter<SuggestedMember> {
-
-    private static final String[] PROJECTION_FILTERED_MEMBERS = new String[] {
-        RawContacts._ID,                        // 0
-        RawContacts.CONTACT_ID,                 // 1
-        RawContacts.DISPLAY_NAME_PRIMARY        // 2
-    };
-
-    private static final int RAW_CONTACT_ID_COLUMN_INDEX = 0;
-    private static final int CONTACT_ID_COLUMN_INDEX = 1;
-    private static final int DISPLAY_NAME_PRIMARY_COLUMN_INDEX = 2;
-
-    private static final String[] PROJECTION_MEMBER_DATA = new String[] {
-        RawContacts._ID,                        // 0
-        RawContacts.CONTACT_ID,                 // 1
-        Data.MIMETYPE,                          // 2
-        Data.DATA1,                             // 3
-        Photo.PHOTO,                            // 4
-    };
-
-    private static final int MIMETYPE_COLUMN_INDEX = 2;
-    private static final int DATA_COLUMN_INDEX = 3;
-    private static final int PHOTO_COLUMN_INDEX = 4;
-
-    private Filter mFilter;
-    private ContentResolver mContentResolver;
-    private LayoutInflater mInflater;
-
-    private String mAccountType;
-    private String mAccountName;
-    private String mDataSet;
-
-    // TODO: Make this a Map for better performance when we check if a new contact is in the list
-    // or not
-    private final List<Long> mExistingMemberContactIds = new ArrayList<Long>();
-
-    private static final int SUGGESTIONS_LIMIT = 5;
-
-    public SuggestedMemberListAdapter(Context context, int textViewResourceId) {
-        super(context, textViewResourceId);
-        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-    }
-
-    public void setAccountType(String accountType) {
-        mAccountType = accountType;
-    }
-
-    public void setAccountName(String accountName) {
-        mAccountName = accountName;
-    }
-
-    public void setDataSet(String dataSet) {
-        mDataSet = dataSet;
-    }
-
-    public void setContentResolver(ContentResolver resolver) {
-        mContentResolver = resolver;
-    }
-
-    public void updateExistingMembersList(List<GroupEditorFragment.Member> list) {
-        mExistingMemberContactIds.clear();
-        for (GroupEditorFragment.Member member : list) {
-            mExistingMemberContactIds.add(member.getContactId());
-        }
-    }
-
-    public void addNewMember(long contactId) {
-        mExistingMemberContactIds.add(contactId);
-    }
-
-    public void removeMember(long contactId) {
-        if (mExistingMemberContactIds.contains(contactId)) {
-            mExistingMemberContactIds.remove(contactId);
-        }
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        View result = convertView;
-        if (result == null) {
-            result = mInflater.inflate(R.layout.group_member_suggestion, parent, false);
-        }
-        // TODO: Use a viewholder
-        SuggestedMember member = getItem(position);
-        TextView text1 = (TextView) result.findViewById(R.id.text1);
-        TextView text2 = (TextView) result.findViewById(R.id.text2);
-        ImageView icon = (ImageView) result.findViewById(R.id.icon);
-        text1.setText(member.getDisplayName());
-        if (member.hasExtraInfo()) {
-            text2.setText(member.getExtraInfo());
-        } else {
-            text2.setVisibility(View.GONE);
-        }
-        byte[] byteArray = member.getPhotoByteArray();
-        if (byteArray == null) {
-            icon.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
-                    icon.getResources(), false, null));
-        } else {
-            Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
-            icon.setImageBitmap(bitmap);
-        }
-        result.setTag(member);
-        return result;
-    }
-
-    @Override
-    public Filter getFilter() {
-        if (mFilter == null) {
-            mFilter = new SuggestedMemberFilter();
-        }
-        return mFilter;
-    }
-
-    /**
-     * This filter queries for raw contacts that match the given account name and account type,
-     * as well as the search query.
-     */
-    public class SuggestedMemberFilter extends Filter {
-
-        @Override
-        protected FilterResults performFiltering(CharSequence prefix) {
-            FilterResults results = new FilterResults();
-            if (mContentResolver == null || TextUtils.isEmpty(prefix)) {
-                return results;
-            }
-
-            // Create a list to store the suggested contacts (which will be alphabetically ordered),
-            // but also keep a map of raw contact IDs to {@link SuggestedMember}s to make it easier
-            // to add supplementary data to the contact (photo, phone, email) to the members based
-            // on raw contact IDs after the second query is completed.
-            List<SuggestedMember> suggestionsList = new ArrayList<SuggestedMember>();
-            HashMap<Long, SuggestedMember> suggestionsMap = new HashMap<Long, SuggestedMember>();
-
-            // First query for all the raw contacts that match the given search query
-            // and have the same account name and type as specified in this adapter
-            String searchQuery = prefix.toString() + "%";
-            String accountClause = RawContacts.ACCOUNT_NAME + "=? AND " +
-                    RawContacts.ACCOUNT_TYPE + "=?";
-            String[] args;
-            if (mDataSet == null) {
-                accountClause += " AND " + RawContacts.DATA_SET + " IS NULL";
-                args = new String[] {mAccountName, mAccountType, searchQuery, searchQuery};
-            } else {
-                accountClause += " AND " + RawContacts.DATA_SET + "=?";
-                args = new String[] {
-                        mAccountName, mAccountType, mDataSet, searchQuery, searchQuery
-                };
-            }
-
-            Cursor cursor = mContentResolver.query(
-                    RawContacts.CONTENT_URI, PROJECTION_FILTERED_MEMBERS,
-                    accountClause + " AND (" +
-                    RawContacts.DISPLAY_NAME_PRIMARY + " LIKE ? OR " +
-                    RawContacts.DISPLAY_NAME_ALTERNATIVE + " LIKE ? )",
-                    args, RawContacts.DISPLAY_NAME_PRIMARY + " COLLATE LOCALIZED ASC");
-
-            if (cursor == null) {
-                return results;
-            }
-
-            // Read back the results from the cursor and filter out existing group members.
-            // For valid suggestions, add them to the hash map of suggested members.
-            try {
-                cursor.moveToPosition(-1);
-                while (cursor.moveToNext() && suggestionsMap.keySet().size() < SUGGESTIONS_LIMIT) {
-                    long rawContactId = cursor.getLong(RAW_CONTACT_ID_COLUMN_INDEX);
-                    long contactId = cursor.getLong(CONTACT_ID_COLUMN_INDEX);
-                    // Filter out contacts that have already been added to this group
-                    if (mExistingMemberContactIds.contains(contactId)) {
-                        continue;
-                    }
-                    // Otherwise, add the contact as a suggested new group member
-                    String displayName = cursor.getString(DISPLAY_NAME_PRIMARY_COLUMN_INDEX);
-                    SuggestedMember member = new SuggestedMember(rawContactId, displayName,
-                            contactId);
-                    // Store the member in the list of suggestions and add it to the hash map too.
-                    suggestionsList.add(member);
-                    suggestionsMap.put(rawContactId, member);
-                }
-            } finally {
-                cursor.close();
-            }
-
-            int numSuggestions = suggestionsMap.keySet().size();
-            if (numSuggestions == 0) {
-                return results;
-            }
-
-            // Create a part of the selection string for the next query with the pattern (?, ?, ?)
-            // where the number of comma-separated question marks represent the number of raw
-            // contact IDs found in the previous query (while respective the SUGGESTION_LIMIT)
-            final StringBuilder rawContactIdSelectionBuilder = new StringBuilder();
-            final String[] questionMarks = new String[numSuggestions];
-            Arrays.fill(questionMarks, "?");
-            rawContactIdSelectionBuilder.append(RawContacts._ID + " IN (")
-                    .append(TextUtils.join(",", questionMarks))
-                    .append(")");
-
-            // Construct the selection args based on the raw contact IDs we're interested in
-            // (as well as the photo, email, and phone mimetypes)
-            List<String> selectionArgs = new ArrayList<String>();
-            selectionArgs.add(Photo.CONTENT_ITEM_TYPE);
-            selectionArgs.add(Email.CONTENT_ITEM_TYPE);
-            selectionArgs.add(Phone.CONTENT_ITEM_TYPE);
-            for (Long rawContactId : suggestionsMap.keySet()) {
-                selectionArgs.add(String.valueOf(rawContactId));
-            }
-
-            // Perform a second query to retrieve a photo and possibly a phone number or email
-            // address for the suggested contact
-            Cursor memberDataCursor = mContentResolver.query(
-                    RawContactsEntity.CONTENT_URI, PROJECTION_MEMBER_DATA,
-                    "(" + Data.MIMETYPE + "=? OR " + Data.MIMETYPE + "=? OR " + Data.MIMETYPE +
-                    "=?) AND " + rawContactIdSelectionBuilder.toString(),
-                    selectionArgs.toArray(new String[0]), null);
-
-            if (memberDataCursor != null) {
-                try {
-                    memberDataCursor.moveToPosition(-1);
-                    while (memberDataCursor.moveToNext()) {
-                        long rawContactId = memberDataCursor.getLong(RAW_CONTACT_ID_COLUMN_INDEX);
-                        SuggestedMember member = suggestionsMap.get(rawContactId);
-                        if (member == null) {
-                            continue;
-                        }
-                        String mimetype = memberDataCursor.getString(MIMETYPE_COLUMN_INDEX);
-                        if (Photo.CONTENT_ITEM_TYPE.equals(mimetype)) {
-                            // Set photo
-                            byte[] bitmapArray = memberDataCursor.getBlob(PHOTO_COLUMN_INDEX);
-                            member.setPhotoByteArray(bitmapArray);
-                        } else if (Email.CONTENT_ITEM_TYPE.equals(mimetype) ||
-                                Phone.CONTENT_ITEM_TYPE.equals(mimetype)) {
-                            // Set at most 1 extra piece of contact info that can be a phone number or
-                            // email
-                            if (!member.hasExtraInfo()) {
-                                String info = memberDataCursor.getString(DATA_COLUMN_INDEX);
-                                member.setExtraInfo(info);
-                            }
-                        }
-                    }
-                } finally {
-                    memberDataCursor.close();
-                }
-            }
-            results.values = suggestionsList;
-            return results;
-        }
-
-        @Override
-        protected void publishResults(CharSequence constraint, FilterResults results) {
-            @SuppressWarnings("unchecked")
-            List<SuggestedMember> suggestionsList = (List<SuggestedMember>) results.values;
-            if (suggestionsList == null) {
-                return;
-            }
-
-            // Clear out the existing suggestions in this adapter
-            clear();
-
-            // Add all the suggested members to this adapter
-            for (SuggestedMember member : suggestionsList) {
-                add(member);
-            }
-
-            notifyDataSetChanged();
-        }
-    }
-
-    /**
-     * This represents a single contact that is a suggestion for the user to add to a group.
-     */
-    // TODO: Merge this with the {@link GroupEditorFragment} Member class once we can find the
-    // lookup URI for this contact using the autocomplete filter queries
-    public class SuggestedMember {
-
-        private long mRawContactId;
-        private long mContactId;
-        private String mDisplayName;
-        private String mExtraInfo;
-        private byte[] mPhoto;
-
-        public SuggestedMember(long rawContactId, String displayName, long contactId) {
-            mRawContactId = rawContactId;
-            mDisplayName = displayName;
-            mContactId = contactId;
-        }
-
-        public String getDisplayName() {
-            return mDisplayName;
-        }
-
-        public String getExtraInfo() {
-            return mExtraInfo;
-        }
-
-        public long getRawContactId() {
-            return mRawContactId;
-        }
-
-        public long getContactId() {
-            return mContactId;
-        }
-
-        public byte[] getPhotoByteArray() {
-            return mPhoto;
-        }
-
-        public boolean hasExtraInfo() {
-            return mExtraInfo != null;
-        }
-
-        /**
-         * Set a phone number or email to distinguish this contact
-         */
-        public void setExtraInfo(String info) {
-            mExtraInfo = info;
-        }
-
-        public void setPhotoByteArray(byte[] photo) {
-            mPhoto = photo;
-        }
-
-        @Override
-        public String toString() {
-            return getDisplayName();
-        }
-    }
-}
diff --git a/src/com/android/contacts/group/UpdateGroupMembersAsyncTask.java b/src/com/android/contacts/group/UpdateGroupMembersAsyncTask.java
new file mode 100644
index 0000000..9b255eb
--- /dev/null
+++ b/src/com/android/contacts/group/UpdateGroupMembersAsyncTask.java
@@ -0,0 +1,130 @@
+/*
+ * 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.group;
+
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.RawContacts;
+import android.widget.Toast;
+
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.R;
+import com.android.contacts.activities.PeopleActivity;
+
+/**
+ * Starts an Intent to add/remove the raw contacts for the given contact IDs to/from a group.
+ * Only the raw contacts that belong to the specified account are added or removed.
+ */
+public class UpdateGroupMembersAsyncTask extends AsyncTask<Void, Void, Intent> {
+    static final int TYPE_ADD = 0;
+    static final int TYPE_REMOVE = 1;
+
+    private final Context mContext;
+    private final int mType;
+    private final long[] mContactIds;
+    private final long mGroupId;
+    private final String mAccountName;
+    private final String mAccountType;
+    private final String mDataSet;
+
+    public UpdateGroupMembersAsyncTask(int type, Context context, long[] contactIds,
+            long groupId, String accountName, String accountType, String dataSet) {
+        mContext = context;
+        mType = type;
+        mContactIds = contactIds;
+        mGroupId = groupId;
+        mAccountName = accountName;
+        mAccountType = accountType;
+        mDataSet = dataSet;
+    }
+
+    @Override
+    protected Intent doInBackground(Void... params) {
+        final long[] rawContactIds = getRawContactIds();
+        if (rawContactIds.length == 0) {
+            return null;
+        }
+        final long[] rawContactIdsToAdd;
+        final long[] rawContactIdsToRemove;
+        final String action;
+        if (mType == TYPE_ADD) {
+            rawContactIdsToAdd = rawContactIds;
+            rawContactIdsToRemove = null;
+            action = GroupUtil.ACTION_ADD_TO_GROUP;
+        } else if (mType == TYPE_REMOVE) {
+            rawContactIdsToAdd = null;
+            rawContactIdsToRemove = rawContactIds;
+            action = GroupUtil.ACTION_REMOVE_FROM_GROUP;
+        } else {
+            throw new IllegalStateException("Unrecognized type " + mType);
+        }
+        return ContactSaveService.createGroupUpdateIntent(
+                mContext, mGroupId, /* newLabel */ null, rawContactIdsToAdd,
+                rawContactIdsToRemove, PeopleActivity.class, action);
+    }
+
+    // TODO(wjang): prune raw contacts that are already in the group; ContactSaveService will
+    // log a warning if the raw contact is already a member and keep going but it is not ideal.
+    private long[] getRawContactIds() {
+        final Uri.Builder builder = RawContacts.CONTENT_URI.buildUpon();
+        // null account names are not valid, see ContactsProvider2#appendAccountFromParameter
+        if (mAccountName != null) {
+            builder.appendQueryParameter(RawContacts.ACCOUNT_NAME, mAccountName);
+            builder.appendQueryParameter(RawContacts.ACCOUNT_TYPE, mAccountType);
+        }
+        if (mDataSet != null) {
+            builder.appendQueryParameter(RawContacts.DATA_SET, mDataSet);
+        }
+        final Uri rawContactUri = builder.build();
+        final String[] projection = new String[]{ContactsContract.RawContacts._ID};
+        final StringBuilder selection = new StringBuilder();
+        final String[] selectionArgs = new String[mContactIds.length];
+        for (int i = 0; i < mContactIds.length; i++) {
+            if (i > 0) {
+                selection.append(" OR ");
+            }
+            selection.append(ContactsContract.RawContacts.CONTACT_ID).append("=?");
+            selectionArgs[i] = Long.toString(mContactIds[i]);
+        }
+        final Cursor cursor = mContext.getContentResolver().query(
+                rawContactUri, projection, selection.toString(), selectionArgs, null, null);
+        final long[] rawContactIds = new long[cursor.getCount()];
+        try {
+            int i = 0;
+            while (cursor.moveToNext()) {
+                rawContactIds[i] = cursor.getLong(0);
+                i++;
+            }
+        } finally {
+            cursor.close();
+        }
+        return rawContactIds;
+    }
+
+    @Override
+    protected void onPostExecute(Intent intent) {
+        if (intent == null) {
+            Toast.makeText(mContext, R.string.groupSavedErrorToast, Toast.LENGTH_SHORT).show();
+        } else {
+            mContext.startService(intent);
+        }
+    }
+}
diff --git a/src/com/android/contacts/interactions/CalendarInteraction.java b/src/com/android/contacts/interactions/CalendarInteraction.java
index e249e4f..9b7ab31 100644
--- a/src/com/android/contacts/interactions/CalendarInteraction.java
+++ b/src/com/android/contacts/interactions/CalendarInteraction.java
@@ -1,20 +1,17 @@
 package com.android.contacts.interactions;
 
-import com.android.contacts.R;
-
-import android.content.ContentValues;
 import android.content.ContentUris;
+import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
-import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
-import android.net.Uri;
 import android.provider.CalendarContract.Attendees;
 import android.provider.CalendarContract.Events;
 import android.text.Spannable;
 import android.text.TextUtils;
 import android.text.format.Time;
-import android.util.Log;
+
+import com.android.contacts.R;
 
 /**
  * Represents a calendar event interaction, wrapping the columns in
@@ -23,7 +20,7 @@
 public class CalendarInteraction implements ContactInteraction {
     private static final String TAG = CalendarInteraction.class.getSimpleName();
 
-    private static final int CALENDAR_ICON_RES = R.drawable.ic_event_24dp;
+    private static final int CALENDAR_ICON_RES = R.drawable.quantum_ic_event_vd_theme_24;
 
     private ContentValues mValues;
 
diff --git a/src/com/android/contacts/interactions/CalendarInteractionUtils.java b/src/com/android/contacts/interactions/CalendarInteractionUtils.java
index c7943f0..36a5621 100644
--- a/src/com/android/contacts/interactions/CalendarInteractionUtils.java
+++ b/src/com/android/contacts/interactions/CalendarInteractionUtils.java
@@ -1,13 +1,13 @@
 package com.android.contacts.interactions;
 
-import com.android.contacts.R;
-
 import android.content.Context;
 import android.content.res.Resources;
 import android.text.format.DateFormat;
 import android.text.format.DateUtils;
 import android.text.format.Time;
 
+import com.android.contacts.R;
+
 import java.util.Formatter;
 import java.util.Locale;
 
diff --git a/src/com/android/contacts/interactions/CalendarInteractionsLoader.java b/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
index 4813866..646b2db 100644
--- a/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
+++ b/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
@@ -1,16 +1,5 @@
 package com.android.contacts.interactions;
 
-import com.google.common.base.Preconditions;
-
-import com.android.contacts.common.util.PermissionsUtil;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
 import android.Manifest.permission;
 import android.content.AsyncTaskLoader;
 import android.content.ContentValues;
@@ -21,6 +10,17 @@
 import android.provider.CalendarContract.Calendars;
 import android.util.Log;
 
+import com.android.contacts.util.PermissionsUtil;
+
+import com.google.common.base.Preconditions;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
 
 /**
  * Loads a list of calendar interactions showing shared calendar events with everyone passed in
@@ -29,7 +29,7 @@
  * Note: the calendar provider treats mailing lists as atomic email addresses.
  */
 public class CalendarInteractionsLoader extends AsyncTaskLoader<List<ContactInteraction>> {
-    private static final String TAG = CalendarInteractionsLoader.class.getSimpleName();
+    private static final String TAG = "CalendarInteractions";
 
     private List<String> mEmailAddresses;
     private int mMaxFutureToRetrieve;
@@ -73,7 +73,9 @@
         allInteractions.addAll(interactions);
         allInteractions.addAll(interactions2);
 
-        Log.v(TAG, "# ContactInteraction Loaded: " + allInteractions.size());
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "# ContactInteraction Loaded: " + allInteractions.size());
+        }
         return allInteractions;
     }
 
diff --git a/src/com/android/contacts/interactions/CallLogInteraction.java b/src/com/android/contacts/interactions/CallLogInteraction.java
index 3464c0f..8890478 100644
--- a/src/com/android/contacts/interactions/CallLogInteraction.java
+++ b/src/com/android/contacts/interactions/CallLogInteraction.java
@@ -15,10 +15,6 @@
  */
 package com.android.contacts.interactions;
 
-import com.android.contacts.R;
-import com.android.contacts.common.util.BitmapUtil;
-import com.android.contacts.common.util.ContactDisplayUtils;
-
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
@@ -32,6 +28,12 @@
 import android.text.Spannable;
 import android.text.TextDirectionHeuristics;
 
+import com.android.contacts.GeoUtil;
+import com.android.contacts.R;
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.util.BitmapUtil;
+import com.android.contacts.util.ContactDisplayUtils;
+
 /**
  * Represents a call log event interaction, wrapping the columns in
  * {@link android.provider.CallLog.Calls}.
@@ -47,7 +49,7 @@
 public class CallLogInteraction implements ContactInteraction {
 
     private static final String URI_TARGET_PREFIX = "tel:";
-    private static final int CALL_LOG_ICON_RES = R.drawable.ic_phone_24dp;
+    private static final int CALL_LOG_ICON_RES = R.drawable.quantum_ic_phone_vd_theme_24;
     private static final int CALL_ARROW_ICON_RES = R.drawable.ic_call_arrow;
     private static BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
 
@@ -66,7 +68,14 @@
 
     @Override
     public String getViewHeader(Context context) {
-        return getNumber();
+        String number = mValues.getAsString(Calls.NUMBER);
+        if (number != null) {
+            number = PhoneNumberUtilsCompat.formatNumber(number,
+                    PhoneNumberUtilsCompat.normalizeNumber(number),
+                    GeoUtil.getCurrentCountryIso(context));
+            return sBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR);
+        }
+        return null;
     }
 
     @Override
@@ -87,9 +96,18 @@
 
     @Override
     public String getViewFooter(Context context) {
-        Long date = getDate();
-        return date == null ? null : ContactInteractionUtil.formatDateStringFromTimestamp(
-                date, context);
+        final Long date = getDate();
+        if (date != null) {
+            final StringBuilder callDetail = new StringBuilder();
+            callDetail.append(ContactInteractionUtil.formatDateStringFromTimestamp(date, context));
+            final Long duration = getDuration();
+            if (duration != null) {
+                callDetail.append("\n");
+                callDetail.append(ContactInteractionUtil.formatDuration(duration, context));
+            }
+            return callDetail.toString();
+        }
+        return null;
     }
 
     @Override
@@ -113,12 +131,12 @@
         switch (type) {
             case Calls.INCOMING_TYPE:
                 callArrow = res.getDrawable(CALL_ARROW_ICON_RES);
-                callArrow.setColorFilter(res.getColor(R.color.call_arrow_green),
+                callArrow.mutate().setColorFilter(res.getColor(R.color.call_arrow_green),
                         PorterDuff.Mode.MULTIPLY);
                 break;
             case Calls.MISSED_TYPE:
                 callArrow = res.getDrawable(CALL_ARROW_ICON_RES);
-                callArrow.setColorFilter(res.getColor(R.color.call_arrow_red),
+                callArrow.mutate().setColorFilter(res.getColor(R.color.call_arrow_red),
                         PorterDuff.Mode.MULTIPLY);
                 break;
             case Calls.OUTGOING_TYPE:
diff --git a/src/com/android/contacts/interactions/CallLogInteractionsLoader.java b/src/com/android/contacts/interactions/CallLogInteractionsLoader.java
index 4277a27..8813ecc 100644
--- a/src/com/android/contacts/interactions/CallLogInteractionsLoader.java
+++ b/src/com/android/contacts/interactions/CallLogInteractionsLoader.java
@@ -24,12 +24,13 @@
 import android.net.Uri;
 import android.provider.CallLog.Calls;
 import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.util.PermissionsUtil;
 
 import com.google.common.annotations.VisibleForTesting;
 
-import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
-import com.android.contacts.common.util.PermissionsUtil;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -37,30 +38,47 @@
 
 public class CallLogInteractionsLoader extends AsyncTaskLoader<List<ContactInteraction>> {
 
+    private static final String TAG = "CallLogInteractions";
+
     private final String[] mPhoneNumbers;
+    private final String[] mSipNumbers;
     private final int mMaxToRetrieve;
     private List<ContactInteraction> mData;
 
-    public CallLogInteractionsLoader(Context context, String[] phoneNumbers,
+    public CallLogInteractionsLoader(Context context, String[] phoneNumbers, String[] sipNumbers,
             int maxToRetrieve) {
         super(context);
         mPhoneNumbers = phoneNumbers;
+        mSipNumbers = sipNumbers;
         mMaxToRetrieve = maxToRetrieve;
     }
 
     @Override
     public List<ContactInteraction> loadInBackground() {
+        final boolean hasPhoneNumber = mPhoneNumbers != null && mPhoneNumbers.length > 0;
+        final boolean hasSipNumber = mSipNumbers != null && mSipNumbers.length > 0;
         if (!PermissionsUtil.hasPhonePermissions(getContext())
                 || !getContext().getPackageManager()
                         .hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
-                || mPhoneNumbers == null || mPhoneNumbers.length <= 0 || mMaxToRetrieve <= 0) {
+                || (!hasPhoneNumber && !hasSipNumber) || mMaxToRetrieve <= 0) {
             return Collections.emptyList();
         }
 
         final List<ContactInteraction> interactions = new ArrayList<>();
-        for (String number : mPhoneNumbers) {
-            interactions.addAll(getCallLogInteractions(number));
+        if (hasPhoneNumber) {
+            for (String number : mPhoneNumbers) {
+                final String normalizedNumber = PhoneNumberUtilsCompat.normalizeNumber(number);
+                if (!TextUtils.isEmpty(normalizedNumber)) {
+                    interactions.addAll(getCallLogInteractions(normalizedNumber));
+                }
+            }
         }
+        if (hasSipNumber) {
+            for (String number : mSipNumbers) {
+                interactions.addAll(getCallLogInteractions(number));
+            }
+        }
+
         // Sort the call log interactions by date for duplicate removal
         Collections.sort(interactions, new Comparator<ContactInteraction>() {
             @Override
@@ -75,7 +93,8 @@
             }
         });
         // Duplicates only occur because of fuzzy matching. No need to dedupe a single number.
-        if (mPhoneNumbers.length == 1) {
+        if ((hasPhoneNumber && mPhoneNumbers.length == 1 && !hasSipNumber)
+                || (hasSipNumber && mSipNumbers.length == 1 && !hasPhoneNumber)) {
             return interactions;
         }
         return pruneDuplicateCallLogInteractions(interactions, mMaxToRetrieve);
@@ -107,19 +126,19 @@
     }
 
     private List<ContactInteraction> getCallLogInteractions(String phoneNumber) {
-        final String normalizedNumber = PhoneNumberUtilsCompat.normalizeNumber(phoneNumber);
-        // If the number contains only symbols, we can skip it
-        if (TextUtils.isEmpty(normalizedNumber)) {
-            return Collections.emptyList();
-        }
         final Uri uri = Uri.withAppendedPath(Calls.CONTENT_FILTER_URI,
-                Uri.encode(normalizedNumber));
+                Uri.encode(phoneNumber));
         // Append the LIMIT clause onto the ORDER BY clause. This won't cause crashes as long
         // as we don't also set the {@link android.provider.CallLog.Calls.LIMIT_PARAM_KEY} that
         // becomes available in KK.
         final String orderByAndLimit = Calls.DATE + " DESC LIMIT " + mMaxToRetrieve;
-        final Cursor cursor = getContext().getContentResolver().query(uri, null, null, null,
-                orderByAndLimit);
+        Cursor cursor = null;
+        try {
+            cursor = getContext().getContentResolver().query(uri, null, null, null,
+                    orderByAndLimit);
+        } catch (Exception e) {
+            Log.e(TAG, "Can not query calllog", e);
+        }
         try {
             if (cursor == null || cursor.getCount() < 1) {
                 return Collections.emptyList();
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index c9a5a9b..240588b 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -38,8 +38,11 @@
 
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.R;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.ContactDisplayUtils;
+
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Sets;
 
@@ -51,7 +54,7 @@
 public class ContactDeletionInteraction extends Fragment
         implements LoaderCallbacks<Cursor>, OnDismissListener {
 
-    private static final String TAG = "ContactDeletionInteraction";
+    private static final String TAG = "ContactDeletion";
     private static final String FRAGMENT_TAG = "deleteContact";
 
     private static final String KEY_ACTIVE = "active";
@@ -66,6 +69,8 @@
         Entity.DATA_SET, // 2
         Entity.CONTACT_ID, // 3
         Entity.LOOKUP_KEY, // 4
+        Entity.DISPLAY_NAME, // 5
+        Entity.DISPLAY_NAME_ALTERNATIVE, // 6
     };
 
     private static final int COLUMN_INDEX_RAW_CONTACT_ID = 0;
@@ -73,9 +78,13 @@
     private static final int COLUMN_INDEX_DATA_SET = 2;
     private static final int COLUMN_INDEX_CONTACT_ID = 3;
     private static final int COLUMN_INDEX_LOOKUP_KEY = 4;
+    private static final int COLUMN_INDEX_DISPLAY_NAME = 5;
+    private static final int COLUMN_INDEX_DISPLAY_NAME_ALT = 6;
 
     private boolean mActive;
     private Uri mContactUri;
+    private String mDisplayName;
+    private String mDisplayNameAlt;
     private boolean mFinishActivityWhenDone;
     private Context mContext;
     private AlertDialog mDialog;
@@ -248,6 +257,8 @@
             final String dataSet = cursor.getString(COLUMN_INDEX_DATA_SET);
             contactId = cursor.getLong(COLUMN_INDEX_CONTACT_ID);
             lookupKey = cursor.getString(COLUMN_INDEX_LOOKUP_KEY);
+            mDisplayName = cursor.getString(COLUMN_INDEX_DISPLAY_NAME);
+            mDisplayNameAlt = cursor.getString(COLUMN_INDEX_DISPLAY_NAME_ALT);
             AccountType type = accountTypes.getAccountType(accountType, dataSet);
             boolean writable = type == null || type.areContactsWritable();
             if (writable) {
@@ -338,8 +349,16 @@
         if (isAdded() && mFinishActivityWhenDone) {
             getActivity().setResult(RESULT_CODE_DELETED);
             getActivity().finish();
-            final String deleteToastMessage = getResources().getQuantityString(R.plurals
-                    .contacts_deleted_toast, /* quantity */ 1);
+            final String deleteToastMessage;
+            final String name = ContactDisplayUtils.getPreferredDisplayName(mDisplayName,
+                    mDisplayNameAlt, new ContactsPreferences(mContext));
+            if (TextUtils.isEmpty(name)) {
+                deleteToastMessage = getResources().getQuantityString(
+                        R.plurals.contacts_deleted_toast, /* quantity */ 1);
+            } else {
+                deleteToastMessage = getResources().getString(
+                        R.string.contacts_deleted_one_named_toast, name);
+            }
             Toast.makeText(mContext, deleteToastMessage, Toast.LENGTH_LONG).show();
         }
     }
diff --git a/src/com/android/contacts/interactions/ContactInteraction.java b/src/com/android/contacts/interactions/ContactInteraction.java
index bf00132..6bca0af 100644
--- a/src/com/android/contacts/interactions/ContactInteraction.java
+++ b/src/com/android/contacts/interactions/ContactInteraction.java
@@ -18,7 +18,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
-import android.net.Uri;
 import android.text.Spannable;
 
 /**
diff --git a/src/com/android/contacts/interactions/ContactInteractionUtil.java b/src/com/android/contacts/interactions/ContactInteractionUtil.java
index 98d45ee..e7a7a6d 100644
--- a/src/com/android/contacts/interactions/ContactInteractionUtil.java
+++ b/src/com/android/contacts/interactions/ContactInteractionUtil.java
@@ -15,19 +15,15 @@
  */
 package com.android.contacts.interactions;
 
-import com.google.common.base.Preconditions;
-
 import android.content.Context;
 import android.text.format.DateUtils;
 
-import com.android.contacts.common.testing.NeededForTesting;
-
-import java.text.DateFormat;
-
-import java.util.Calendar;
-
 import com.android.contacts.R;
 
+import com.google.common.base.Preconditions;
+
+import java.text.DateFormat;
+import java.util.Calendar;
 
 /**
  * Utility methods for interactions and their loaders
@@ -37,7 +33,6 @@
     /**
      * @return a string like (?,?,?...) with {@param count} question marks.
      */
-    @NeededForTesting
     public static String questionMarks(int count) {
         Preconditions.checkArgument(count > 0);
         StringBuilder sb = new StringBuilder("(?");
@@ -51,7 +46,6 @@
      * Same as {@link formatDateStringFromTimestamp(long, Context, Calendar)} but uses the current
      * time.
      */
-    @NeededForTesting
     public static String formatDateStringFromTimestamp(long timestamp, Context context) {
         return formatDateStringFromTimestamp(timestamp, context, Calendar.getInstance());
     }
@@ -61,10 +55,8 @@
      * compareCalendar.
      * This formats the date based on a few conditions:
      * 1. If the timestamp is today, the time is shown
-     * 2. If the timestamp occurs tomorrow or yesterday, that is displayed
-     * 3. Otherwise {Month Date} format is used
+     * 2. Otherwise show full date and time
      */
-    @NeededForTesting
     public static String formatDateStringFromTimestamp(long timestamp, Context context,
             Calendar compareCalendar) {
         Calendar interactionCalendar = Calendar.getInstance();
@@ -76,19 +68,9 @@
                     interactionCalendar.getTime());
         }
 
-        // Turn compareCalendar to yesterday
-        compareCalendar.add(Calendar.DAY_OF_YEAR, -1);
-        if (compareCalendarDayYear(interactionCalendar, compareCalendar)) {
-            return context.getString(R.string.yesterday);
-        }
-
-        // Turn compareCalendar to tomorrow
-        compareCalendar.add(Calendar.DAY_OF_YEAR, 2);
-        if (compareCalendarDayYear(interactionCalendar, compareCalendar)) {
-            return context.getString(R.string.tomorrow);
-        }
-        return DateUtils.formatDateTime(context, interactionCalendar.getTimeInMillis(),
-                DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_YEAR);
+        return DateUtils.formatDateTime(context, timestamp, DateUtils.FORMAT_SHOW_TIME
+                | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_WEEKDAY
+                | DateUtils.FORMAT_SHOW_YEAR);
     }
 
     /**
@@ -98,4 +80,22 @@
         return c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR) &&
                 c1.get(Calendar.DAY_OF_YEAR) == c2.get(Calendar.DAY_OF_YEAR);
     }
+
+    /**
+     * Takes duration of the call in seconds.
+     * Return the formatted duration in hr, min, sec order if they exist.
+     */
+    public static String formatDuration(long callDuration, Context context) {
+        final int hours = (int) callDuration / 3600;
+        final int minutes = (int) (callDuration % 3600) / 60;
+        final int seconds = (int) (callDuration % 60);
+
+        if (hours > 0) {
+            return context.getString(R.string.callDurationHourFormat, hours, minutes, seconds);
+        } else if (minutes > 0) {
+            return context.getString(R.string.callDurationMinuteFormat, minutes, seconds);
+        } else {
+            return context.getString(R.string.callDurationSecondFormat, seconds);
+        }
+    }
 }
diff --git a/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java b/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
index 173f66e..47b76a5 100644
--- a/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
@@ -16,13 +16,6 @@
 
 package com.android.contacts.interactions;
 
-import com.google.common.collect.Sets;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.R;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Fragment;
@@ -36,8 +29,18 @@
 import android.database.Cursor;
 import android.os.Bundle;
 import android.provider.ContactsContract.RawContacts;
+import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.ContactDisplayUtils;
+
+import com.google.common.collect.Sets;
+
 import java.util.HashSet;
 import java.util.TreeSet;
 
@@ -54,7 +57,7 @@
     }
 
     private static final String FRAGMENT_TAG = "deleteMultipleContacts";
-    private static final String TAG = "ContactMultiDeletionInteraction";
+    private static final String TAG = "ContactMultiDeletion";
     private static final String KEY_ACTIVE = "active";
     private static final String KEY_CONTACTS_IDS = "contactIds";
     public static final String ARG_CONTACT_IDS = "contactIds";
@@ -64,32 +67,37 @@
             RawContacts.ACCOUNT_TYPE,
             RawContacts.DATA_SET,
             RawContacts.CONTACT_ID,
+            RawContacts.DISPLAY_NAME_PRIMARY,
+            RawContacts.DISPLAY_NAME_ALTERNATIVE
     };
 
     private static final int COLUMN_INDEX_RAW_CONTACT_ID = 0;
     private static final int COLUMN_INDEX_ACCOUNT_TYPE = 1;
     private static final int COLUMN_INDEX_DATA_SET = 2;
     private static final int COLUMN_INDEX_CONTACT_ID = 3;
+    private static final int COLUMN_INDEX_DISPLAY_NAME = 4;
+    private static final int COLUMN_INDEX_DISPLAY_NAME_ALT = 5;
 
     private boolean mIsLoaderActive;
     private TreeSet<Long> mContactIds;
     private Context mContext;
     private AlertDialog mDialog;
+    private MultiContactDeleteListener mListener;
 
     /**
      * Starts the interaction.
      *
-     * @param activity the activity within which to start the interaction
+     * @param hostFragment the fragment within which to start the interaction
      * @param contactIds the IDs of contacts to be deleted
      * @return the newly created interaction
      */
     public static ContactMultiDeletionInteraction start(
-            Activity activity, TreeSet<Long> contactIds) {
+            Fragment hostFragment, TreeSet<Long> contactIds) {
         if (contactIds == null) {
             return null;
         }
 
-        final FragmentManager fragmentManager = activity.getFragmentManager();
+        final FragmentManager fragmentManager = hostFragment.getFragmentManager();
         ContactMultiDeletionInteraction fragment =
                 (ContactMultiDeletionInteraction) fragmentManager.findFragmentByTag(FRAGMENT_TAG);
         if (fragment == null) {
@@ -192,6 +200,9 @@
         final HashSet<Long> readOnlyRawContacts = Sets.newHashSet();
         final HashSet<Long> writableRawContacts = Sets.newHashSet();
         final HashSet<Long> contactIds = Sets.newHashSet();
+        final HashSet<String> names = Sets.newHashSet();
+
+        final ContactsPreferences contactsPreferences = new ContactsPreferences(mContext);
 
         AccountTypeManager accountTypes = AccountTypeManager.getInstance(getActivity());
         cursor.moveToPosition(-1);
@@ -200,6 +211,15 @@
             final String accountType = cursor.getString(COLUMN_INDEX_ACCOUNT_TYPE);
             final String dataSet = cursor.getString(COLUMN_INDEX_DATA_SET);
             final long contactId = cursor.getLong(COLUMN_INDEX_CONTACT_ID);
+            final String displayName = cursor.getString(COLUMN_INDEX_DISPLAY_NAME);
+            final String displayNameAlt = cursor.getString(COLUMN_INDEX_DISPLAY_NAME_ALT);
+
+            final String name = ContactDisplayUtils.getPreferredDisplayName(displayName,
+                    displayNameAlt, contactsPreferences);
+            if (!TextUtils.isEmpty(name)) {
+                names.add(name);
+            }
+
             contactIds.add(contactId);
             final AccountType type = accountTypes.getAccountType(accountType, dataSet);
             boolean writable = type == null || type.areContactsWritable();
@@ -236,7 +256,8 @@
             contactIdArray[i] = contactIdObjectArray[i];
         }
 
-        showDialog(messageId, positiveButtonId, contactIdArray);
+        final String[] namesArray = names.toArray(new String[names.size()]);
+        showDialog(messageId, positiveButtonId, contactIdArray, namesArray);
 
         // We don't want onLoadFinished() calls any more, which may come when the database is
         // updating.
@@ -247,7 +268,8 @@
     public void onLoaderReset(Loader<Cursor> loader) {
     }
 
-    private void showDialog(int messageId, int positiveButtonId, final long[] contactIds) {
+    private void showDialog(int messageId, int positiveButtonId, final long[] contactIds,
+            final String[] namesArray) {
         mDialog = new AlertDialog.Builder(getActivity())
                 .setIconAttribute(android.R.attr.alertDialogIcon)
                 .setMessage(messageId)
@@ -256,7 +278,7 @@
                     new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog, int whichButton) {
-                            doDeleteContact(contactIds);
+                            doDeleteContact(contactIds, namesArray);
                         }
                     }
                 )
@@ -288,16 +310,13 @@
         }
     }
 
-    protected void doDeleteContact(long[] contactIds) {
+    protected void doDeleteContact(long[] contactIds, final String[] names) {
         mContext.startService(ContactSaveService.createDeleteMultipleContactsIntent(mContext,
-                contactIds));
-        notifyListenerActivity();
+                contactIds, names));
+        mListener.onDeletionFinished();
     }
 
-    private void notifyListenerActivity() {
-        if (getActivity() instanceof MultiContactDeleteListener) {
-            final MultiContactDeleteListener listener = (MultiContactDeleteListener) getActivity();
-            listener.onDeletionFinished();
-        }
+    public void setListener(MultiContactDeleteListener listener) {
+        mListener = listener;
     }
 }
diff --git a/src/com/android/contacts/interactions/ExportDialogFragment.java b/src/com/android/contacts/interactions/ExportDialogFragment.java
new file mode 100644
index 0000000..c7ce072
--- /dev/null
+++ b/src/com/android/contacts/interactions/ExportDialogFragment.java
@@ -0,0 +1,234 @@
+/*
+ * Copyright (C) 2010 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.interactions;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.FragmentManager;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.contacts.R;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.vcard.ExportVCardActivity;
+import com.android.contacts.vcard.ShareVCardActivity;
+import com.android.contacts.vcard.VCardCommonArguments;
+
+/**
+ * An dialog invoked to import/export contacts.
+ */
+public class ExportDialogFragment extends DialogFragment {
+    public static final String TAG = "ExportDialogFragment";
+
+    public static final int EXPORT_MODE_FAVORITES = 0;
+    public static final int EXPORT_MODE_ALL_CONTACTS = 1;
+    public static final int EXPORT_MODE_DEFAULT = -1;
+
+    private static int mExportMode = EXPORT_MODE_DEFAULT;
+
+    private final String[] LOOKUP_PROJECTION = new String[] {
+            Contacts.LOOKUP_KEY
+    };
+
+    private SubscriptionManager mSubscriptionManager;
+
+    /** Preferred way to show this dialog */
+    public static void show(FragmentManager fragmentManager, Class callingActivity,
+            int exportMode) {
+        final ExportDialogFragment fragment = new ExportDialogFragment();
+        Bundle args = new Bundle();
+        args.putString(VCardCommonArguments.ARG_CALLING_ACTIVITY, callingActivity.getName());
+        fragment.setArguments(args);
+        fragment.show(fragmentManager, TAG);
+        mExportMode = exportMode;
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        // Wrap our context to inflate list items using the correct theme
+        final Resources res = getActivity().getResources();
+        final LayoutInflater dialogInflater = (LayoutInflater)getActivity()
+                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        final String callingActivity = getArguments().getString(
+                VCardCommonArguments.ARG_CALLING_ACTIVITY);
+
+        // Adapter that shows a list of string resources
+        final ArrayAdapter<AdapterEntry> adapter = new ArrayAdapter<AdapterEntry>(getActivity(),
+                R.layout.select_dialog_item) {
+            @Override
+            public View getView(int position, View convertView, ViewGroup parent) {
+                final View result = convertView != null ? convertView :
+                        dialogInflater.inflate(R.layout.select_dialog_item, parent, false);
+
+                final TextView text = (TextView) result.findViewById(R.id.primary_text);
+                final View secondaryText = result.findViewById(R.id.secondary_text);
+                secondaryText.setVisibility(View.GONE);
+
+                text.setText(getItem(position).mLabel);
+                return result;
+            }
+        };
+
+        if (res.getBoolean(R.bool.config_allow_export)) {
+                adapter.add(new AdapterEntry(getString(R.string.export_to_vcf_file),
+                        R.string.export_to_vcf_file));
+        }
+        if (res.getBoolean(R.bool.config_allow_share_contacts)) {
+            if (mExportMode == EXPORT_MODE_FAVORITES) {
+                // share favorite and frequently contacted contacts from Favorites tab
+                adapter.add(new AdapterEntry(getString(R.string.share_favorite_contacts),
+                        R.string.share_contacts));
+            } else {
+                // share "all" contacts (in groups selected in "Customize") from All tab for now
+                // TODO: change the string to share_visible_contacts if implemented
+                adapter.add(new AdapterEntry(getString(R.string.share_contacts),
+                        R.string.share_contacts));
+            }
+        }
+
+        final DialogInterface.OnClickListener clickListener =
+                new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                boolean dismissDialog;
+                final int resId = adapter.getItem(which).mChoiceResourceId;
+                if (resId == R.string.export_to_vcf_file) {
+                    dismissDialog = true;
+                    final Intent exportIntent = new Intent(
+                            getActivity(), ExportVCardActivity.class);
+                    exportIntent.putExtra(VCardCommonArguments.ARG_CALLING_ACTIVITY,
+                            callingActivity);
+                    getActivity().startActivity(exportIntent);
+                } else if (resId == R.string.share_contacts) {
+                    dismissDialog = true;
+                    if (mExportMode == EXPORT_MODE_FAVORITES) {
+                        doShareFavoriteContacts();
+                    } else { // EXPORT_MODE_ALL_CONTACTS
+                        final Intent exportIntent = new Intent(
+                                getActivity(), ShareVCardActivity.class);
+                        exportIntent.putExtra(VCardCommonArguments.ARG_CALLING_ACTIVITY,
+                                callingActivity);
+                        getActivity().startActivity(exportIntent);
+                    }
+                } else {
+                    dismissDialog = true;
+                    Log.e(TAG, "Unexpected resource: "
+                            + getActivity().getResources().getResourceEntryName(resId));
+                }
+                if (dismissDialog) {
+                    dialog.dismiss();
+                }
+            }
+        };
+        final TextView title = (TextView) View.inflate(getActivity(), R.layout.dialog_title, null);
+        title.setText(R.string.dialog_export);
+        return new AlertDialog.Builder(getActivity())
+                .setCustomTitle(title)
+                .setSingleChoiceItems(adapter, -1, clickListener)
+                .create();
+    }
+
+    private void doShareFavoriteContacts() {
+        try{
+            final Cursor cursor = getActivity().getContentResolver().query(
+                    Contacts.CONTENT_STREQUENT_URI, LOOKUP_PROJECTION, null, null,
+                    Contacts.DISPLAY_NAME + " COLLATE NOCASE ASC");
+            if (cursor != null) {
+                try {
+                    if (!cursor.moveToFirst()) {
+                        Toast.makeText(getActivity(), R.string.no_contact_to_share,
+                                Toast.LENGTH_SHORT).show();
+                        return;
+                    }
+
+                    // Build multi-vcard Uri for sharing
+                    final StringBuilder uriListBuilder = new StringBuilder();
+                    int index = 0;
+                    do {
+                        if (index != 0)
+                            uriListBuilder.append(':');
+                        uriListBuilder.append(cursor.getString(0));
+                        index++;
+                    } while (cursor.moveToNext());
+                    final Uri uri = Uri.withAppendedPath(
+                            Contacts.CONTENT_MULTI_VCARD_URI,
+                            Uri.encode(uriListBuilder.toString()));
+
+                    final Intent intent = new Intent(Intent.ACTION_SEND);
+                    intent.setType(Contacts.CONTENT_VCARD_TYPE);
+                    intent.putExtra(Intent.EXTRA_STREAM, uri);
+                    ImplicitIntentsUtil.startActivityOutsideApp(getActivity(), intent);
+                } finally {
+                    cursor.close();
+                }
+            }
+        } catch (Exception e) {
+            Log.e(TAG, "Sharing contacts failed", e);
+            getActivity().runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    Toast.makeText(getContext(), R.string.share_contacts_failure,
+                            Toast.LENGTH_SHORT).show();
+                }
+            });
+        }
+    }
+
+    private static class AdapterEntry {
+        public final CharSequence mLabel;
+        public final int mChoiceResourceId;
+        public final int mSubscriptionId;
+
+        public AdapterEntry(CharSequence label, int resId, int subId) {
+            mLabel = label;
+            mChoiceResourceId = resId;
+            mSubscriptionId = subId;
+        }
+
+        public AdapterEntry(String label, int resId) {
+            // Store a nonsense value for mSubscriptionId. If this constructor is used,
+            // the mSubscriptionId value should not be read later.
+            this(label, resId, /* subId = */ -1);
+        }
+    }
+}
diff --git a/src/com/android/contacts/interactions/GroupCreationDialogFragment.java b/src/com/android/contacts/interactions/GroupCreationDialogFragment.java
deleted file mode 100644
index e998688..0000000
--- a/src/com/android/contacts/interactions/GroupCreationDialogFragment.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2010 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.interactions;
-
-import android.app.Activity;
-import android.app.FragmentManager;
-import android.content.Intent;
-import android.os.Bundle;
-import android.widget.EditText;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.R;
-import com.android.contacts.activities.ContactEditorBaseActivity;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-
-/**
- * A dialog for creating a new group.
- */
-public class GroupCreationDialogFragment extends GroupNameDialogFragment {
-    private static final String ARG_ACCOUNT_TYPE = "accountType";
-    private static final String ARG_ACCOUNT_NAME = "accountName";
-    private static final String ARG_DATA_SET = "dataSet";
-
-    public static final String FRAGMENT_TAG = "createGroupDialog";
-
-    private final OnGroupCreatedListener mListener;
-
-    public interface OnGroupCreatedListener {
-        public void onGroupCreated();
-    }
-
-    public static void show(
-            FragmentManager fragmentManager, String accountType, String accountName,
-            String dataSet, OnGroupCreatedListener listener) {
-        GroupCreationDialogFragment dialog = new GroupCreationDialogFragment(listener);
-        Bundle args = new Bundle();
-        args.putString(ARG_ACCOUNT_TYPE, accountType);
-        args.putString(ARG_ACCOUNT_NAME, accountName);
-        args.putString(ARG_DATA_SET, dataSet);
-        dialog.setArguments(args);
-        dialog.show(fragmentManager, FRAGMENT_TAG);
-    }
-
-    public GroupCreationDialogFragment() {
-        super();
-        mListener = null;
-    }
-
-    private GroupCreationDialogFragment(OnGroupCreatedListener listener) {
-        super();
-        mListener = listener;
-    }
-
-    public OnGroupCreatedListener getOnGroupCreatedListener() {
-        return mListener;
-    }
-
-    @Override
-    protected void initializeGroupLabelEditText(EditText editText) {
-    }
-
-    @Override
-    protected int getTitleResourceId() {
-        return R.string.create_group_dialog_title;
-    }
-
-    @Override
-    protected void onCompleted(String groupLabel) {
-        Bundle arguments = getArguments();
-        String accountType = arguments.getString(ARG_ACCOUNT_TYPE);
-        String accountName = arguments.getString(ARG_ACCOUNT_NAME);
-        String dataSet = arguments.getString(ARG_DATA_SET);
-
-        // Indicate to the listener that a new group will be created.
-        // If the device is rotated, mListener will become null, so that the
-        // popup from GroupMembershipView will not be shown.
-        if (mListener != null) {
-            mListener.onGroupCreated();
-        }
-
-        Activity activity = getActivity();
-        activity.startService(ContactSaveService.createNewGroupIntent(activity,
-                new AccountWithDataSet(accountName, accountType, dataSet), groupLabel,
-                null /* no new members to add */,
-                activity.getClass(), ContactEditorBaseActivity.ACTION_EDIT));
-    }
-}
diff --git a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
index 2df7fe2..01361b2 100644
--- a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
+++ b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
@@ -24,6 +24,7 @@
 
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.R;
+import com.android.contacts.activities.PeopleActivity;
 
 /**
  * A dialog for deleting a group.
@@ -32,15 +33,12 @@
 
     private static final String ARG_GROUP_ID = "groupId";
     private static final String ARG_LABEL = "label";
-    private static final String ARG_SHOULD_END_ACTIVITY = "endActivity";
 
-    public static void show(FragmentManager fragmentManager, long groupId, String label,
-            boolean endActivity) {
+    public static void show(FragmentManager fragmentManager, long groupId, String label) {
         GroupDeletionDialogFragment dialog = new GroupDeletionDialogFragment();
         Bundle args = new Bundle();
         args.putLong(ARG_GROUP_ID, groupId);
         args.putString(ARG_LABEL, label);
-        args.putBoolean(ARG_SHOULD_END_ACTIVITY, endActivity);
         dialog.setArguments(args);
         dialog.show(fragmentManager, "deleteGroup");
     }
@@ -66,17 +64,10 @@
     }
 
     protected void deleteGroup() {
-        Bundle arguments = getArguments();
-        long groupId = arguments.getLong(ARG_GROUP_ID);
-
-        getActivity().startService(ContactSaveService.createGroupDeletionIntent(
+        final long groupId = getArguments().getLong(ARG_GROUP_ID);
+        final PeopleActivity activity = ((PeopleActivity) getActivity());
+        activity.startService(ContactSaveService.createGroupDeletionIntent(
                 getActivity(), groupId));
-        if (shouldEndActivity()) {
-            getActivity().finish();
-        }
-    }
-
-    private boolean shouldEndActivity() {
-        return getArguments().getBoolean(ARG_SHOULD_END_ACTIVITY);
+        activity.switchToAllContacts();
     }
 }
diff --git a/src/com/android/contacts/interactions/GroupNameDialogFragment.java b/src/com/android/contacts/interactions/GroupNameDialogFragment.java
deleted file mode 100644
index b0ad9c9..0000000
--- a/src/com/android/contacts/interactions/GroupNameDialogFragment.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2010 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.interactions;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnShowListener;
-import android.os.Bundle;
-import android.text.Editable;
-import android.text.TextUtils;
-import android.text.TextWatcher;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.Button;
-import android.widget.EditText;
-
-import com.android.contacts.R;
-
-/**
- * A common superclass for creating and renaming groups.
- */
-public abstract class GroupNameDialogFragment extends DialogFragment {
-    protected abstract int getTitleResourceId();
-    protected abstract void initializeGroupLabelEditText(EditText editText);
-    protected abstract void onCompleted(String groupLabel);
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
-        final LayoutInflater layoutInflater = LayoutInflater.from(builder.getContext());
-        final View view = layoutInflater.inflate(R.layout.group_name_dialog, null);
-        final EditText editText = (EditText) view.findViewById(R.id.group_label);
-        initializeGroupLabelEditText(editText);
-
-        builder.setTitle(getTitleResourceId());
-        builder.setView(view);
-        editText.requestFocus();
-        builder.setPositiveButton(android.R.string.ok,
-                new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialogInterface, int whichButton) {
-                        onCompleted(editText.getText().toString().trim());
-                    }
-                }
-            );
-
-        builder.setNegativeButton(android.R.string.cancel, null);
-        final AlertDialog dialog = builder.create();
-
-        dialog.setOnShowListener(new OnShowListener() {
-            @Override
-            public void onShow(DialogInterface dialogInterface) {
-                updateOkButtonState(dialog, editText);
-            }
-        });
-        editText.addTextChangedListener(new TextWatcher() {
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-            }
-
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-                updateOkButtonState(dialog, editText);
-            }
-        });
-        dialog.getWindow().setSoftInputMode(
-                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
-        return dialog;
-    }
-
-    /* package */ void updateOkButtonState(AlertDialog dialog, EditText editText) {
-        final Button okButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
-        okButton.setEnabled(!TextUtils.isEmpty(editText.getText().toString().trim()));
-    }
-}
diff --git a/src/com/android/contacts/interactions/ImportDialogFragment.java b/src/com/android/contacts/interactions/ImportDialogFragment.java
new file mode 100644
index 0000000..367ae2f
--- /dev/null
+++ b/src/com/android/contacts/interactions/ImportDialogFragment.java
@@ -0,0 +1,308 @@
+/*
+ * Copyright (C) 2010 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.interactions;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.FragmentManager;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.SimImportActivity;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.database.SimContactDao;
+import com.android.contacts.editor.SelectAccountDialogFragment;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.util.AccountSelectionUtil;
+import com.google.common.util.concurrent.Futures;
+
+import java.util.List;
+import java.util.concurrent.Future;
+
+/**
+ * An dialog invoked to import/export contacts.
+ */
+public class ImportDialogFragment extends DialogFragment {
+    public static final String TAG = "ImportDialogFragment";
+
+    public static final String KEY_RES_ID = "resourceId";
+    public static final String KEY_SUBSCRIPTION_ID = "subscriptionId";
+
+    public static final String EXTRA_SIM_ONLY = "extraSimOnly";
+
+    public static final String EXTRA_SIM_CONTACT_COUNT_PREFIX = "simContactCount_";
+
+    private boolean mSimOnly = false;
+    private SimContactDao mSimDao;
+
+    private Future<List<AccountInfo>> mAccountsFuture;
+
+    /** Preferred way to show this dialog */
+    public static void show(FragmentManager fragmentManager) {
+        final ImportDialogFragment fragment = new ImportDialogFragment();
+        fragment.show(fragmentManager, TAG);
+    }
+
+    public static void show(FragmentManager fragmentManager, List<SimCard> sims,
+            boolean includeVcf) {
+        final ImportDialogFragment fragment = new ImportDialogFragment();
+        final Bundle args = new Bundle();
+        args.putBoolean(EXTRA_SIM_ONLY, !includeVcf);
+        for (SimCard sim : sims) {
+            final List<SimContact> contacts = sim.getContacts();
+            if (contacts == null) {
+                continue;
+            }
+            args.putInt(EXTRA_SIM_CONTACT_COUNT_PREFIX + sim.getSimId(), contacts.size());
+        }
+
+        fragment.setArguments(args);
+        fragment.show(fragmentManager, TAG);
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setStyle(STYLE_NORMAL, R.style.ContactsAlertDialogTheme);
+
+        final Bundle args = getArguments();
+        mSimOnly = args != null && args.getBoolean(EXTRA_SIM_ONLY, false);
+        mSimDao = SimContactDao.create(getContext());
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        // Start loading the accounts. This is done in onResume in case they were refreshed.
+        mAccountsFuture = AccountTypeManager.getInstance(getActivity()).filterAccountsAsync(
+                AccountTypeManager.writableFilter());
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final LayoutInflater dialogInflater = (LayoutInflater)
+                getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+        // Adapter that shows a list of string resources
+        final ArrayAdapter<AdapterEntry> adapter = new ArrayAdapter<AdapterEntry>(getActivity(),
+                R.layout.select_dialog_item) {
+
+            @Override
+            public View getView(int position, View convertView, ViewGroup parent) {
+                final View result = convertView != null ? convertView :
+                        dialogInflater.inflate(R.layout.select_dialog_item, parent, false);
+                final TextView primaryText = (TextView) result.findViewById(R.id.primary_text);
+                final TextView secondaryText = (TextView) result.findViewById(R.id.secondary_text);
+                final AdapterEntry entry = getItem(position);
+                secondaryText.setVisibility(View.GONE);
+                if (entry.mChoiceResourceId == R.string.import_from_sim) {
+                    final CharSequence secondary = getSimSecondaryText(entry.mSim);
+                    if (TextUtils.isEmpty(secondary)) {
+                        secondaryText.setVisibility(View.GONE);
+                    } else {
+                        secondaryText.setText(secondary);
+                        secondaryText.setVisibility(View.VISIBLE);
+                    }
+                }
+                primaryText.setText(entry.mLabel);
+                return result;
+            }
+
+            CharSequence getSimSecondaryText(SimCard sim) {
+                int count = getSimContactCount(sim);
+
+                CharSequence phone = sim.getFormattedPhone();
+                if (phone == null) {
+                    phone = sim.getPhone();
+                }
+                if (phone != null) {
+                    phone = PhoneNumberUtilsCompat.createTtsSpannable(phone);
+                }
+
+                if (count != -1 && phone != null) {
+                    // We use a template instead of format string so that the TTS span is preserved
+                    final CharSequence template = getResources()
+                            .getQuantityString(R.plurals.import_from_sim_secondary_template, count);
+                    return TextUtils.expandTemplate(template, String.valueOf(count), phone);
+                } else if (phone != null) {
+                    return phone;
+                } else if (count != -1) {
+                    // count != -1
+                    return getResources()
+                            .getQuantityString(
+                                    R.plurals.import_from_sim_secondary_contact_count_fmt, count,
+                                    count);
+                } else {
+                    return null;
+                }
+            }
+        };
+
+        addItems(adapter);
+
+        final DialogInterface.OnClickListener clickListener =
+                new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                final int resId = adapter.getItem(which).mChoiceResourceId;
+                if (resId == R.string.import_from_sim) {
+                    handleSimImportRequest(adapter.getItem(which).mSim);
+                } else if (resId == R.string.import_from_vcf_file) {
+                    handleImportRequest(resId, SimCard.NO_SUBSCRIPTION_ID);
+                } else {
+                    Log.e(TAG, "Unexpected resource: "
+                            + getActivity().getResources().getResourceEntryName(resId));
+                }
+                dialog.dismiss();
+            }
+        };
+
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), getTheme())
+                .setTitle(R.string.dialog_import)
+                .setNegativeButton(android.R.string.cancel, null);
+        if (adapter.isEmpty()) {
+            // Handle edge case; e.g. SIM card was removed.
+            builder.setMessage(R.string.nothing_to_import_message);
+        } else {
+            builder.setSingleChoiceItems(adapter, -1, clickListener);
+        }
+
+        return builder.create();
+    }
+
+    private int getSimContactCount(SimCard sim) {
+        if (sim.getContacts() != null) {
+            return sim.getContacts().size();
+        }
+        final Bundle args = getArguments();
+        if (args == null) {
+            return -1;
+        }
+        return args.getInt(EXTRA_SIM_CONTACT_COUNT_PREFIX + sim.getSimId(), -1);
+    }
+
+    private void addItems(ArrayAdapter<AdapterEntry> adapter) {
+        final Resources res = getActivity().getResources();
+        if (res.getBoolean(R.bool.config_allow_import_from_vcf_file) && !mSimOnly) {
+            adapter.add(new AdapterEntry(getString(R.string.import_from_vcf_file),
+                    R.string.import_from_vcf_file));
+        }
+        final List<SimCard> sims = mSimDao.getSimCards();
+
+        if (sims.size() == 1) {
+            adapter.add(new AdapterEntry(getString(R.string.import_from_sim),
+                    R.string.import_from_sim, sims.get(0)));
+            return;
+        }
+        for (int i = 0; i < sims.size(); i++) {
+            final SimCard sim = sims.get(i);
+            adapter.add(new AdapterEntry(getSimDescription(sim, i), R.string.import_from_sim, sim));
+        }
+    }
+
+    private void handleSimImportRequest(SimCard sim) {
+        startActivity(new Intent(getActivity(), SimImportActivity.class)
+                .putExtra(SimImportActivity.EXTRA_SUBSCRIPTION_ID, sim.getSubscriptionId()));
+    }
+
+    /**
+     * Handle "import from SD".
+     */
+    private void handleImportRequest(int resId, int subscriptionId) {
+        // Get the accounts. Because this only happens after a user action this should pretty
+        // much never block since it will usually be at least several seconds before the user
+        // interacts with the view
+        final List<AccountWithDataSet> accountList = AccountInfo.extractAccounts(
+                Futures.getUnchecked(mAccountsFuture));
+
+        // There are three possibilities:
+        // - more than one accounts -> ask the user
+        // - just one account -> use the account without asking the user
+        // - no account -> use phone-local storage without asking the user
+        final int size = accountList.size();
+        if (size > 1) {
+            // Send over to the account selector
+            final Bundle args = new Bundle();
+            args.putInt(KEY_RES_ID, resId);
+            args.putInt(KEY_SUBSCRIPTION_ID, subscriptionId);
+            SelectAccountDialogFragment.show(
+                    getFragmentManager(), R.string.dialog_new_contact_account,
+                    AccountTypeManager.AccountFilter.CONTACTS_WRITABLE, args);
+        } else {
+            AccountSelectionUtil.doImport(getActivity(), resId,
+                    (size == 1 ? accountList.get(0) : null),
+                    (CompatUtils.isMSIMCompatible() ? subscriptionId : -1));
+        }
+    }
+
+    private CharSequence getSimDescription(SimCard sim, int index) {
+        final CharSequence name = sim.getDisplayName();
+        if (name != null) {
+            return getString(R.string.import_from_sim_summary_fmt, name);
+        } else {
+            return getString(R.string.import_from_sim_summary_fmt, String.valueOf(index));
+        }
+    }
+
+    private static class AdapterEntry {
+        public final CharSequence mLabel;
+        public final int mChoiceResourceId;
+        public final SimCard mSim;
+
+        public AdapterEntry(CharSequence label, int resId, SimCard sim) {
+            mLabel = label;
+            mChoiceResourceId = resId;
+            mSim = sim;
+        }
+
+        public AdapterEntry(String label, int resId) {
+            // Store a nonsense value for mSubscriptionId. If this constructor is used,
+            // the mSubscriptionId value should not be read later.
+            this(label, resId, /* sim= */ null);
+        }
+    }
+}
diff --git a/src/com/android/contacts/interactions/JoinContactsDialogFragment.java b/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
deleted file mode 100644
index 205e18e..0000000
--- a/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2015 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.interactions;
-
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.R;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.app.FragmentTransaction;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.os.Bundle;
-
-import java.util.TreeSet;
-
-/**
- * An interaction invoked to join multiple contacts together.
- */
-public class JoinContactsDialogFragment extends DialogFragment {
-
-    private static final String FRAGMENT_TAG = "joinDialog";
-    private static final String KEY_CONTACT_IDS = "contactIds";
-
-    public interface JoinContactsListener {
-        void onContactsJoined();
-    }
-
-    public static void start(Activity activity, TreeSet<Long> contactIds) {
-        final FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
-        final JoinContactsDialogFragment newFragment
-                = JoinContactsDialogFragment.newInstance(contactIds);
-        newFragment.show(ft, FRAGMENT_TAG);
-    }
-
-    private static JoinContactsDialogFragment newInstance(TreeSet<Long> contactIds) {
-        final JoinContactsDialogFragment fragment = new JoinContactsDialogFragment();
-        Bundle arguments = new Bundle();
-        arguments.putSerializable(KEY_CONTACT_IDS, contactIds);
-        fragment.setArguments(arguments);
-        return fragment;
-    }
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        final TreeSet<Long> contactIds =
-                (TreeSet<Long>) getArguments().getSerializable(KEY_CONTACT_IDS);
-        if (contactIds.size() <= 1) {
-            return new AlertDialog.Builder(getActivity())
-                    .setIconAttribute(android.R.attr.alertDialogIcon)
-                    .setMessage(R.string.batch_link_single_contact_warning)
-                    .setPositiveButton(android.R.string.ok, null)
-                    .create();
-        }
-        return new AlertDialog.Builder(getActivity())
-                .setIconAttribute(android.R.attr.alertDialogIcon)
-                .setMessage(R.string.batch_link_confirmation)
-                .setNegativeButton(android.R.string.cancel, null)
-                .setPositiveButton(R.string.batch_link_confirmation_positive_button,
-                        new DialogInterface.OnClickListener() {
-                            @Override
-                            public void onClick(DialogInterface dialog, int whichButton) {
-                                joinContacts(contactIds);
-                            }
-                        }
-                )
-                .create();
-    }
-
-    private void joinContacts(TreeSet<Long> contactIds) {
-        final Long[] contactIdsArray = contactIds.toArray(new Long[contactIds.size()]);
-        final long[] contactIdsArray2 = new long[contactIdsArray.length];
-        for (int i = 0; i < contactIds.size(); i++) {
-            contactIdsArray2[i] = contactIdsArray[i];
-        }
-
-        final Intent intent = ContactSaveService.createJoinSeveralContactsIntent(getActivity(),
-                contactIdsArray2);
-        getActivity().startService(intent);
-
-        notifyListener();
-    }
-
-    private void notifyListener() {
-        if (getActivity() instanceof JoinContactsListener) {
-            ((JoinContactsListener) getActivity()).onContactsJoined();
-        }
-    }
-
-}
diff --git a/src/com/android/contacts/interactions/OnBootOrUpgradeReceiver.java b/src/com/android/contacts/interactions/OnBootOrUpgradeReceiver.java
new file mode 100644
index 0000000..5c55f20
--- /dev/null
+++ b/src/com/android/contacts/interactions/OnBootOrUpgradeReceiver.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 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.interactions;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+import com.android.contacts.util.ContactsNotificationChannelsUtil;
+
+public class OnBootOrUpgradeReceiver extends BroadcastReceiver {
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        final String action = intent.getAction();
+        if (Intent.ACTION_BOOT_COMPLETED.equals(action)
+                || Intent.ACTION_MY_PACKAGE_REPLACED.equals(action)) {
+            ContactsNotificationChannelsUtil.createDefaultChannel(context);
+        }
+    }
+}
diff --git a/src/com/android/contacts/interactions/SmsInteraction.java b/src/com/android/contacts/interactions/SmsInteraction.java
index ba0070c..4aad07b 100644
--- a/src/com/android/contacts/interactions/SmsInteraction.java
+++ b/src/com/android/contacts/interactions/SmsInteraction.java
@@ -15,9 +15,6 @@
  */
 package com.android.contacts.interactions;
 
-import com.android.contacts.R;
-import com.android.contacts.common.util.ContactDisplayUtils;
-
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
@@ -28,6 +25,9 @@
 import android.text.Spannable;
 import android.text.TextDirectionHeuristics;
 
+import com.android.contacts.R;
+import com.android.contacts.util.ContactDisplayUtils;
+
 /**
  * Represents an sms interaction, wrapping the columns in
  * {@link android.provider.Telephony.Sms}.
@@ -35,7 +35,7 @@
 public class SmsInteraction implements ContactInteraction {
 
     private static final String URI_TARGET_PREFIX = "smsto:";
-    private static final int SMS_ICON_RES = R.drawable.ic_message_24dp_mirrored;
+    private static final int SMS_ICON_RES = R.drawable.quantum_ic_message_vd_theme_24;
     private static BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
 
     private ContentValues mValues;
diff --git a/src/com/android/contacts/interactions/SmsInteractionsLoader.java b/src/com/android/contacts/interactions/SmsInteractionsLoader.java
index 5c7d5e3..31ab831 100644
--- a/src/com/android/contacts/interactions/SmsInteractionsLoader.java
+++ b/src/com/android/contacts/interactions/SmsInteractionsLoader.java
@@ -24,7 +24,7 @@
 import android.provider.Telephony;
 import android.util.Log;
 
-import com.android.contacts.common.compat.TelephonyThreadsCompat;
+import com.android.contacts.compat.TelephonyThreadsCompat;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -51,14 +51,18 @@
     public SmsInteractionsLoader(Context context, String[] phoneNums,
             int maxToRetrieve) {
         super(context);
-        Log.v(TAG, "SmsInteractionsLoader");
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "SmsInteractionsLoader");
+        }
         mPhoneNums = phoneNums;
         mMaxToRetrieve = maxToRetrieve;
     }
 
     @Override
     public List<ContactInteraction> loadInBackground() {
-        Log.v(TAG, "loadInBackground");
+        if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            Log.v(TAG, "loadInBackground");
+        }
         // Confirm the device has Telephony and numbers were provided before proceeding
         if (!getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
                 || mPhoneNums == null || mPhoneNums.length == 0) {
diff --git a/src/com/android/contacts/interactions/TestLoaderManagerBase.java b/src/com/android/contacts/interactions/TestLoaderManagerBase.java
index 92ae3b9..920df41 100644
--- a/src/com/android/contacts/interactions/TestLoaderManagerBase.java
+++ b/src/com/android/contacts/interactions/TestLoaderManagerBase.java
@@ -18,6 +18,8 @@
 
 import android.app.LoaderManager;
 
+import com.google.common.annotations.VisibleForTesting;
+
 /**
  * A {@link LoaderManager} that records which loaders have been completed.
  * <p>
@@ -71,6 +73,7 @@
  *   }
  * </pre>
  */
+@VisibleForTesting
 abstract class TestLoaderManagerBase extends LoaderManager {
 
     /**
@@ -84,6 +87,7 @@
      * It can not be set to null. Once set, it cannot be changed (but it allows setting it to the
      * same value again).
      */
+    @VisibleForTesting
     public abstract void setDelegate(LoaderManager delegate);
 
 }
diff --git a/src/com/android/contacts/interactions/TouchPointManager.java b/src/com/android/contacts/interactions/TouchPointManager.java
new file mode 100644
index 0000000..67387e5
--- /dev/null
+++ b/src/com/android/contacts/interactions/TouchPointManager.java
@@ -0,0 +1,46 @@
+package com.android.contacts.interactions;
+
+import android.graphics.Point;
+
+/**
+ * Singleton class to keep track of where the user last touched the screen.
+ *
+ * Used to pass on to the InCallUI for animation.
+ */
+public class TouchPointManager {
+    public static final String TOUCH_POINT = "touchPoint";
+
+    private static TouchPointManager sInstance = new TouchPointManager();
+
+    private Point mPoint = new Point();
+
+    /**
+     * Private constructor.  Instance should only be acquired through getInstance().
+     */
+    private TouchPointManager() {
+    }
+
+    public static TouchPointManager getInstance() {
+        return sInstance;
+    }
+
+    public Point getPoint() {
+        return mPoint;
+    }
+
+    public void setPoint(int x, int y) {
+        mPoint.set(x, y);
+    }
+
+    /**
+     * When a point is initialized, its value is (0,0). Since it is highly unlikely a user will
+     * touch at that exact point, if the point in TouchPointManager is (0,0), it is safe to assume
+     * that the TouchPointManager has not yet collected a touch.
+     *
+     * @return True if there is a valid point saved. Define a valid point as any point that is
+     * not (0,0).
+     */
+    public boolean hasValidPoint() {
+        return mPoint.x != 0 || mPoint.y != 0;
+    }
+}
diff --git a/src/com/android/contacts/lettertiles/LetterTileDrawable.java b/src/com/android/contacts/lettertiles/LetterTileDrawable.java
new file mode 100644
index 0000000..5652ac6
--- /dev/null
+++ b/src/com/android/contacts/lettertiles/LetterTileDrawable.java
@@ -0,0 +1,287 @@
+/*
+ * Copyright (C) 2013 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.lettertiles;
+
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.Paint;
+import android.graphics.Paint.Align;
+import android.graphics.Rect;
+import android.graphics.Typeface;
+import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
+
+import com.android.contacts.R;
+
+import com.google.common.base.Preconditions;
+
+/**
+ * A drawable that encapsulates all the functionality needed to display a letter tile to
+ * represent a contact image.
+ */
+public class LetterTileDrawable extends Drawable {
+
+    private final String TAG = LetterTileDrawable.class.getSimpleName();
+
+    private final Paint mPaint;
+
+    /** Letter tile */
+    private static TypedArray sColors;
+    private static int sDefaultColor;
+    private static int sTileFontColor;
+    private static float sLetterToTileRatio;
+    private static Bitmap DEFAULT_PERSON_AVATAR;
+    private static Bitmap DEFAULT_BUSINESS_AVATAR;
+    private static Bitmap DEFAULT_VOICEMAIL_AVATAR;
+
+    /** Reusable components to avoid new allocations */
+    private static final Paint sPaint = new Paint();
+    private static final Rect sRect = new Rect();
+    private static final char[] sFirstChar = new char[1];
+
+    /** Contact type constants */
+    public static final int TYPE_PERSON = 1;
+    public static final int TYPE_BUSINESS = 2;
+    public static final int TYPE_VOICEMAIL = 3;
+    public static final int TYPE_DEFAULT = TYPE_PERSON;
+
+    /** 54% opacity */
+    private static final int ALPHA = 138;
+
+    private int mContactType = TYPE_DEFAULT;
+    private float mScale = 1.0f;
+    private float mOffset = 0.0f;
+    private boolean mIsCircle = false;
+
+    private int mColor;
+    private Character mLetter = null;
+
+    public LetterTileDrawable(final Resources res) {
+        if (sColors == null) {
+            sColors = res.obtainTypedArray(R.array.letter_tile_colors);
+            sDefaultColor = res.getColor(R.color.letter_tile_default_color);
+            sTileFontColor = res.getColor(R.color.letter_tile_font_color);
+            sLetterToTileRatio = res.getFraction(R.dimen.letter_to_tile_ratio, 1, 1);
+            DEFAULT_PERSON_AVATAR = BitmapFactory.decodeResource(res,
+                    R.drawable.ic_person_avatar);
+            DEFAULT_BUSINESS_AVATAR = BitmapFactory.decodeResource(res,
+                    R.drawable.ic_business_white_120dp);
+            DEFAULT_VOICEMAIL_AVATAR = BitmapFactory.decodeResource(res,
+                    R.drawable.ic_voicemail_avatar);
+            sPaint.setTypeface(Typeface.create(
+                    res.getString(R.string.letter_tile_letter_font_family), Typeface.NORMAL));
+            sPaint.setTextAlign(Align.CENTER);
+            sPaint.setAntiAlias(true);
+        }
+        mPaint = new Paint();
+        mPaint.setFilterBitmap(true);
+        mPaint.setDither(true);
+        mColor = sDefaultColor;
+    }
+
+    @Override
+    public void draw(final Canvas canvas) {
+        final Rect bounds = getBounds();
+        if (!isVisible() || bounds.isEmpty()) {
+            return;
+        }
+        // Draw letter tile.
+        drawLetterTile(canvas);
+    }
+
+    /**
+     * Draw the bitmap onto the canvas at the current bounds taking into account the current scale.
+     */
+    private void drawBitmap(final Bitmap bitmap, final int width, final int height,
+            final Canvas canvas) {
+        // The bitmap should be drawn in the middle of the canvas without changing its width to
+        // height ratio.
+        final Rect destRect = copyBounds();
+
+        // Crop the destination bounds into a square, scaled and offset as appropriate
+        final int halfLength = (int) (mScale * Math.min(destRect.width(), destRect.height()) / 2);
+
+        destRect.set(destRect.centerX() - halfLength,
+                (int) (destRect.centerY() - halfLength + mOffset * destRect.height()),
+                destRect.centerX() + halfLength,
+                (int) (destRect.centerY() + halfLength + mOffset * destRect.height()));
+
+        // Source rectangle remains the entire bounds of the source bitmap.
+        sRect.set(0, 0, width, height);
+
+        sPaint.setTextAlign(Align.CENTER);
+        sPaint.setAntiAlias(true);
+        sPaint.setAlpha(ALPHA);
+
+        canvas.drawBitmap(bitmap, sRect, destRect, sPaint);
+    }
+
+    private void drawLetterTile(final Canvas canvas) {
+        // Draw background color.
+        sPaint.setColor(mColor);
+
+        sPaint.setAlpha(mPaint.getAlpha());
+        final Rect bounds = getBounds();
+        final int minDimension = Math.min(bounds.width(), bounds.height());
+
+        if (mIsCircle) {
+            canvas.drawCircle(bounds.centerX(), bounds.centerY(), minDimension / 2, sPaint);
+        } else {
+            canvas.drawRect(bounds, sPaint);
+        }
+
+        // Draw letter/digit only if the first character is an english letter or there's a override
+
+        if (mLetter != null) {
+            // Draw letter or digit.
+            sFirstChar[0] = mLetter;
+
+            // Scale text by canvas bounds and user selected scaling factor
+            sPaint.setTextSize(mScale * sLetterToTileRatio * minDimension);
+            sPaint.getTextBounds(sFirstChar, 0, 1, sRect);
+            sPaint.setTypeface(Typeface.create("sans-serif", Typeface.NORMAL));
+            sPaint.setColor(sTileFontColor);
+            sPaint.setAlpha(ALPHA);
+
+            // Draw the letter in the canvas, vertically shifted up or down by the user-defined
+            // offset
+            canvas.drawText(sFirstChar, 0, 1, bounds.centerX(),
+                    bounds.centerY() + mOffset * bounds.height() - sRect.exactCenterY(),
+                    sPaint);
+        } else {
+            // Draw the default image if there is no letter/digit to be drawn
+            final Bitmap bitmap = getBitmapForContactType(mContactType);
+            drawBitmap(bitmap, bitmap.getWidth(), bitmap.getHeight(),
+                    canvas);
+        }
+    }
+
+    public int getColor() {
+        return mColor;
+    }
+
+    /**
+     * Returns a deterministic color based on the provided contact identifier string.
+     */
+    private int pickColor(final String identifier) {
+        if (TextUtils.isEmpty(identifier) || mContactType == TYPE_VOICEMAIL) {
+            return sDefaultColor;
+        }
+        // String.hashCode() implementation is not supposed to change across java versions, so
+        // this should guarantee the same email address always maps to the same color.
+        // The email should already have been normalized by the ContactRequest.
+        final int color = Math.abs(identifier.hashCode()) % sColors.length();
+        return sColors.getColor(color, sDefaultColor);
+    }
+
+    private static Bitmap getBitmapForContactType(int contactType) {
+        switch (contactType) {
+            case TYPE_PERSON:
+                return DEFAULT_PERSON_AVATAR;
+            case TYPE_BUSINESS:
+                return DEFAULT_BUSINESS_AVATAR;
+            case TYPE_VOICEMAIL:
+                return DEFAULT_VOICEMAIL_AVATAR;
+            default:
+                return DEFAULT_PERSON_AVATAR;
+        }
+    }
+
+    private static boolean isEnglishLetter(final char c) {
+        return ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z');
+    }
+
+    @Override
+    public void setAlpha(final int alpha) {
+        mPaint.setAlpha(alpha);
+    }
+
+    @Override
+    public void setColorFilter(final ColorFilter cf) {
+        mPaint.setColorFilter(cf);
+    }
+
+    @Override
+    public int getOpacity() {
+        return android.graphics.PixelFormat.OPAQUE;
+    }
+
+    /**
+     * Scale the drawn letter tile to a ratio of its default size
+     *
+     * @param scale The ratio the letter tile should be scaled to as a percentage of its default
+     * size, from a scale of 0 to 2.0f. The default is 1.0f.
+     */
+    public LetterTileDrawable setScale(float scale) {
+        mScale = scale;
+        return this;
+    }
+
+    /**
+     * Assigns the vertical offset of the position of the letter tile to the ContactDrawable
+     *
+     * @param offset The provided offset must be within the range of -0.5f to 0.5f.
+     * If set to -0.5f, the letter will be shifted upwards by 0.5 times the height of the canvas
+     * it is being drawn on, which means it will be drawn with the center of the letter starting
+     * at the top edge of the canvas.
+     * If set to 0.5f, the letter will be shifted downwards by 0.5 times the height of the canvas
+     * it is being drawn on, which means it will be drawn with the center of the letter starting
+     * at the bottom edge of the canvas.
+     * The default is 0.0f.
+     */
+    public LetterTileDrawable setOffset(float offset) {
+        Preconditions.checkArgument(offset >= -0.5f && offset <= 0.5f);
+        mOffset = offset;
+        return this;
+    }
+
+    public LetterTileDrawable setLetter(Character letter){
+        mLetter = letter;
+        return this;
+    }
+
+    public LetterTileDrawable setColor(int color){
+        mColor = color;
+        return this;
+    }
+
+    public LetterTileDrawable setLetterAndColorFromContactDetails(final String displayName,
+            final String identifier) {
+        if (displayName != null && displayName.length() > 0
+                && isEnglishLetter(displayName.charAt(0))) {
+            mLetter = Character.toUpperCase(displayName.charAt(0));
+        }else{
+            mLetter = null;
+        }
+        mColor = pickColor(identifier);
+        return this;
+    }
+
+    public LetterTileDrawable setContactType(int contactType) {
+        mContactType = contactType;
+        return this;
+    }
+
+    public LetterTileDrawable setIsCircular(boolean isCircle) {
+        mIsCircle = isCircle;
+        return this;
+    }
+}
diff --git a/src/com/android/contacts/list/AccountFilterActivity.java b/src/com/android/contacts/list/AccountFilterActivity.java
new file mode 100644
index 0000000..6559489
--- /dev/null
+++ b/src/com/android/contacts/list/AccountFilterActivity.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2011 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.list;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.ListView;
+
+import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Shows a list of all available accounts, letting the user select under which account to view
+ * contacts.
+ */
+public class AccountFilterActivity extends Activity implements AdapterView.OnItemClickListener {
+
+    private static final int SUBACTIVITY_CUSTOMIZE_FILTER = 0;
+
+    public static final String EXTRA_CONTACT_LIST_FILTER = "contactListFilter";
+
+    private ListView mListView;
+
+    // The default contact list type, it should be either FILTER_TYPE_ALL_ACCOUNTS or
+    // FILTER_TYPE_CUSTOM, since those are the only two options we give the user.
+    private int mCurrentFilterType;
+
+    private ContactListFilterView mCustomFilterView; // the "Customize" filter
+
+    private boolean mIsCustomFilterViewSelected;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        setContentView(R.layout.contact_list_filter);
+
+        mListView = (ListView) findViewById(android.R.id.list);
+        mListView.setOnItemClickListener(this);
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+
+        mCurrentFilterType = ContactListFilterController.getInstance(this).isCustomFilterPersisted()
+                ? ContactListFilter.FILTER_TYPE_CUSTOM
+                : ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS;
+
+        // We don't need to use AccountFilterUtil.FilterLoader since we only want to show
+        // the "All contacts" and "Customize" options.
+        final List<ContactListFilter> filters = new ArrayList<>();
+        filters.add(ContactListFilter.createFilterWithType(
+                ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS));
+        filters.add(ContactListFilter.createFilterWithType(
+                ContactListFilter.FILTER_TYPE_CUSTOM));
+        mListView.setAdapter(new FilterListAdapter(this, filters, mCurrentFilterType));
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        final ContactListFilterView listFilterView = (ContactListFilterView) view;
+        final ContactListFilter filter = (ContactListFilter) view.getTag();
+        if (filter == null) return; // Just in case
+        if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+            mCustomFilterView = listFilterView;
+            mIsCustomFilterViewSelected = listFilterView.isChecked();
+            final Intent intent = new Intent(this, CustomContactListFilterActivity.class)
+                    .putExtra(CustomContactListFilterActivity.EXTRA_CURRENT_LIST_FILTER_TYPE,
+                            mCurrentFilterType);
+            listFilterView.setActivated(true);
+            // Switching activity has the highest priority. So when we open another activity, the
+            // announcement that indicates an account is checked will be interrupted. This is the
+            // way to overcome -- View.announceForAccessibility(CharSequence text);
+            listFilterView.announceForAccessibility(listFilterView.generateContentDescription());
+            startActivityForResult(intent, SUBACTIVITY_CUSTOMIZE_FILTER);
+        } else {
+            listFilterView.setActivated(true);
+            listFilterView.announceForAccessibility(listFilterView.generateContentDescription());
+            final Intent intent = new Intent();
+            intent.putExtra(EXTRA_CONTACT_LIST_FILTER, filter);
+            setResult(Activity.RESULT_OK, intent);
+            finish();
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (resultCode == Activity.RESULT_CANCELED && mCustomFilterView != null &&
+                !mIsCustomFilterViewSelected) {
+            mCustomFilterView.setActivated(false);
+            return;
+        }
+
+        if (resultCode != Activity.RESULT_OK) {
+            return;
+        }
+
+        switch (requestCode) {
+            case SUBACTIVITY_CUSTOMIZE_FILTER: {
+                final Intent intent = new Intent();
+                ContactListFilter filter = ContactListFilter.createFilterWithType(
+                        ContactListFilter.FILTER_TYPE_CUSTOM);
+                intent.putExtra(EXTRA_CONTACT_LIST_FILTER, filter);
+                setResult(Activity.RESULT_OK, intent);
+                finish();
+                break;
+            }
+        }
+    }
+
+    private static class FilterListAdapter extends BaseAdapter {
+        private final List<ContactListFilter> mFilters;
+        private final LayoutInflater mLayoutInflater;
+        private final AccountTypeManager mAccountTypes;
+        private final int mCurrentFilter;
+
+        public FilterListAdapter(
+                Context context, List<ContactListFilter> filters, int current) {
+            mLayoutInflater = (LayoutInflater) context.getSystemService
+                    (Context.LAYOUT_INFLATER_SERVICE);
+            mFilters = filters;
+            mCurrentFilter = current;
+            mAccountTypes = AccountTypeManager.getInstance(context);
+        }
+
+        @Override
+        public int getCount() {
+            return mFilters.size();
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public ContactListFilter getItem(int position) {
+            return mFilters.get(position);
+        }
+
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final ContactListFilterView view;
+            if (convertView != null) {
+                view = (ContactListFilterView) convertView;
+            } else {
+                view = (ContactListFilterView) mLayoutInflater.inflate(
+                        R.layout.contact_list_filter_item, parent, false);
+            }
+            view.setSingleAccount(mFilters.size() == 1);
+            final ContactListFilter filter = mFilters.get(position);
+            view.setContactListFilter(filter);
+            view.bindView(mAccountTypes);
+            view.setTag(filter);
+            view.setActivated(filter.filterType == mCurrentFilter);
+            return view;
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home:
+                // We have two logical "up" Activities: People and Phone.
+                // Instead of having one static "up" direction, behave like back as an
+                // exceptional case.
+                onBackPressed();
+                return true;
+            default:
+                break;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/com/android/contacts/list/AutoScrollListView.java b/src/com/android/contacts/list/AutoScrollListView.java
new file mode 100644
index 0000000..f3bc7a2
--- /dev/null
+++ b/src/com/android/contacts/list/AutoScrollListView.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.widget.ListView;
+
+/**
+ * A ListView that can be asked to scroll (smoothly or otherwise) to a specific
+ * position.  This class takes advantage of similar functionality that exists
+ * in {@link ListView} and enhances it.
+ */
+public class AutoScrollListView extends ListView {
+
+    /**
+     * Position the element at about 1/3 of the list height
+     */
+    private static final float PREFERRED_SELECTION_OFFSET_FROM_TOP = 0.33f;
+
+    private int mRequestedScrollPosition = -1;
+    private boolean mSmoothScrollRequested;
+
+    public AutoScrollListView(Context context) {
+        super(context);
+    }
+
+    public AutoScrollListView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public AutoScrollListView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    /**
+     * Brings the specified position to view by optionally performing a jump-scroll maneuver:
+     * first it jumps to some position near the one requested and then does a smooth
+     * scroll to the requested position.  This creates an impression of full smooth
+     * scrolling without actually traversing the entire list.  If smooth scrolling is
+     * not requested, instantly positions the requested item at a preferred offset.
+     */
+    public void requestPositionToScreen(int position, boolean smoothScroll) {
+        mRequestedScrollPosition = position;
+        mSmoothScrollRequested = smoothScroll;
+        requestLayout();
+    }
+
+    @Override
+    protected void layoutChildren() {
+        super.layoutChildren();
+        if (mRequestedScrollPosition == -1) {
+            return;
+        }
+
+        final int position = mRequestedScrollPosition;
+        mRequestedScrollPosition = -1;
+
+        int firstPosition = getFirstVisiblePosition() + 1;
+        int lastPosition = getLastVisiblePosition();
+        if (position >= firstPosition && position <= lastPosition) {
+            return; // Already on screen
+        }
+
+        final int offset = (int) (getHeight() * PREFERRED_SELECTION_OFFSET_FROM_TOP);
+        if (!mSmoothScrollRequested) {
+            setSelectionFromTop(position, offset);
+
+            // Since we have changed the scrolling position, we need to redo child layout
+            // Calling "requestLayout" in the middle of a layout pass has no effect,
+            // so we call layoutChildren explicitly
+            super.layoutChildren();
+
+        } else {
+            // We will first position the list a couple of screens before or after
+            // the new selection and then scroll smoothly to it.
+            int twoScreens = (lastPosition - firstPosition) * 2;
+            int preliminaryPosition;
+            if (position < firstPosition) {
+                preliminaryPosition = position + twoScreens;
+                if (preliminaryPosition >= getCount()) {
+                    preliminaryPosition = getCount() - 1;
+                }
+                if (preliminaryPosition < firstPosition) {
+                    setSelection(preliminaryPosition);
+                    super.layoutChildren();
+                }
+            } else {
+                preliminaryPosition = position - twoScreens;
+                if (preliminaryPosition < 0) {
+                    preliminaryPosition = 0;
+                }
+                if (preliminaryPosition > lastPosition) {
+                    setSelection(preliminaryPosition);
+                    super.layoutChildren();
+                }
+            }
+
+
+            smoothScrollToPositionFromTop(position, offset);
+        }
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int l, int t, int r, int b) {
+        super.onLayout(changed, l, t, r, b);
+
+        // Workaround for b/31160338.
+        if (android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.N
+            || android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) {
+            layoutChildren();
+        }
+    }
+}
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 923208c..dcef568 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -35,12 +35,7 @@
 import android.util.Log;
 
 import com.android.common.widget.CompositeCursorAdapter.Partition;
-import com.android.contacts.common.list.AutoScrollListView;
-import com.android.contacts.common.list.ContactEntryListFragment;
-import com.android.contacts.common.list.ContactListAdapter;
-import com.android.contacts.common.list.ContactListFilter;
-import com.android.contacts.common.list.DirectoryPartition;
-import com.android.contacts.common.util.ContactLoaderUtils;
+import com.android.contacts.util.ContactLoaderUtils;
 
 import java.util.List;
 
@@ -49,7 +44,7 @@
  * picking a contact with one of the PICK intents).
  */
 public abstract class ContactBrowseListFragment extends
-        ContactEntryListFragment<ContactListAdapter> {
+        MultiSelectContactsListFragment<ContactListAdapter> {
 
     private static final String TAG = "ContactList";
 
@@ -194,24 +189,23 @@
         }
     }
 
-    public void setFilter(ContactListFilter filter) {
-        setFilter(filter, true);
-    }
-
-    public void setFilter(ContactListFilter filter, boolean restoreSelectedUri) {
+    public void updateListFilter(ContactListFilter filter, boolean restoreSelectedUri) {
         if (mFilter == null && filter == null) {
             return;
         }
 
         if (mFilter != null && mFilter.equals(filter)) {
+            setLogListEvents(false);
             return;
         }
 
-        Log.v(TAG, "New filter: " + filter);
+        if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "New filter: " + filter);
 
+        setListType(filter.toListType());
+        setLogListEvents(true);
         mFilter = filter;
         mLastSelectedPosition = -1;
-        saveFilter();
+
         if (restoreSelectedUri) {
             mSelectedContactUri = null;
             restoreSelectedUri(true);
@@ -383,6 +377,11 @@
     }
 
     @Override
+    public ContactListAdapter getAdapter() {
+        return (ContactListAdapter) super.getAdapter();
+    }
+
+    @Override
     protected void configureAdapter() {
         super.configureAdapter();
 
@@ -401,8 +400,7 @@
             }
         }
 
-        // Display the user's profile if not in search mode
-        adapter.setIncludeProfile(!searchMode);
+        adapter.setIncludeFavorites(!searchMode && mFilter.isContactsFilterType());
     }
 
     @Override
@@ -600,9 +598,10 @@
         mListener = listener;
     }
 
-    public void viewContact(Uri contactUri, boolean isEnterpriseContact) {
+    public void viewContact(int position, Uri contactUri, boolean isEnterpriseContact) {
         setSelectedContactUri(contactUri, false, false, true, false);
-        if (mListener != null) mListener.onViewContactAction(contactUri, isEnterpriseContact);
+        if (mListener != null) mListener.onViewContactAction(position, contactUri,
+                isEnterpriseContact);
     }
 
     public void deleteContact(Uri contactUri) {
@@ -665,9 +664,4 @@
             return mPersistentSelectionPrefix + "-" + mFilter.getId();
         }
     }
-
-    public boolean isOptionsMenuChanged() {
-        // This fragment does not have an option menu of its own
-        return false;
-    }
 }
diff --git a/src/com/android/contacts/list/ContactEntryListAdapter.java b/src/com/android/contacts/list/ContactEntryListAdapter.java
new file mode 100644
index 0000000..b508dda
--- /dev/null
+++ b/src/com/android/contacts/list/ContactEntryListAdapter.java
@@ -0,0 +1,786 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Directory;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.QuickContactBadge;
+import android.widget.SectionIndexer;
+import android.widget.TextView;
+
+import com.android.contacts.ContactPhotoManager;
+import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.R;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.compat.DirectoryCompat;
+import com.android.contacts.util.SearchUtil;
+
+import java.util.HashSet;
+
+/**
+ * Common base class for various contact-related lists, e.g. contact list, phone number list
+ * etc.
+ */
+public abstract class ContactEntryListAdapter extends IndexerListAdapter {
+
+    private static final String TAG = "ContactEntryListAdapter";
+
+    /**
+     * Indicates whether the {@link Directory#LOCAL_INVISIBLE} directory should
+     * be included in the search.
+     */
+    public static final boolean LOCAL_INVISIBLE_DIRECTORY_ENABLED = false;
+
+    private int mDisplayOrder;
+    private int mSortOrder;
+
+    private boolean mDisplayPhotos;
+    private boolean mCircularPhotos = true;
+    private boolean mQuickContactEnabled;
+    private boolean mAdjustSelectionBoundsEnabled;
+
+    /**
+     * indicates if contact queries include favorites
+     */
+    private boolean mIncludeFavorites;
+
+    private int mNumberOfFavorites;
+
+    /**
+     * The root view of the fragment that this adapter is associated with.
+     */
+    private View mFragmentRootView;
+
+    private ContactPhotoManager mPhotoLoader;
+
+    private String mQueryString;
+    private String mUpperCaseQueryString;
+    private boolean mSearchMode;
+    private int mDirectorySearchMode;
+    private int mDirectoryResultLimit = Integer.MAX_VALUE;
+
+    private boolean mEmptyListEnabled = true;
+
+    private boolean mSelectionVisible;
+
+    private ContactListFilter mFilter;
+    private boolean mDarkTheme = false;
+
+    /** Resource used to provide header-text for default filter. */
+    private CharSequence mDefaultFilterHeaderText;
+
+    public ContactEntryListAdapter(Context context) {
+        super(context);
+        setDefaultFilterHeaderText(R.string.local_search_label);
+        addPartitions();
+    }
+
+    /**
+     * @param fragmentRootView Root view of the fragment. This is used to restrict the scope of
+     * image loading requests that get cancelled on cursor changes.
+     */
+    protected void setFragmentRootView(View fragmentRootView) {
+        mFragmentRootView = fragmentRootView;
+    }
+
+    protected void setDefaultFilterHeaderText(int resourceId) {
+        mDefaultFilterHeaderText = getContext().getResources().getText(resourceId);
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        final ContactListItemView view = new ContactListItemView(context, null);
+        view.setIsSectionHeaderEnabled(isSectionHeaderDisplayEnabled());
+        view.setAdjustSelectionBoundsEnabled(isAdjustSelectionBoundsEnabled());
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        final ContactListItemView view = (ContactListItemView) itemView;
+        view.setIsSectionHeaderEnabled(isSectionHeaderDisplayEnabled());
+        bindWorkProfileIcon(view, partition);
+    }
+
+    @Override
+    protected View createPinnedSectionHeaderView(Context context, ViewGroup parent) {
+        return new ContactListPinnedHeaderView(context, null, parent);
+    }
+
+    @Override
+    protected void setPinnedSectionTitle(View pinnedHeaderView, String title) {
+        ((ContactListPinnedHeaderView) pinnedHeaderView).setSectionHeaderTitle(title);
+    }
+
+    protected void addPartitions() {
+        addPartition(createDefaultDirectoryPartition());
+    }
+
+    protected DirectoryPartition createDefaultDirectoryPartition() {
+        DirectoryPartition partition = new DirectoryPartition(true, true);
+        partition.setDirectoryId(Directory.DEFAULT);
+        partition.setDirectoryType(getContext().getString(R.string.contactsList));
+        partition.setPriorityDirectory(true);
+        partition.setPhotoSupported(true);
+        partition.setLabel(mDefaultFilterHeaderText.toString());
+        return partition;
+    }
+
+    /**
+     * Remove all directories after the default directory. This is typically used when contacts
+     * list screens are asked to exit the search mode and thus need to remove all remote directory
+     * results for the search.
+     *
+     * This code assumes that the default directory and directories before that should not be
+     * deleted (e.g. Join screen has "suggested contacts" directory before the default director,
+     * and we should not remove the directory).
+     */
+    public void removeDirectoriesAfterDefault() {
+        final int partitionCount = getPartitionCount();
+        for (int i = partitionCount - 1; i >= 0; i--) {
+            final Partition partition = getPartition(i);
+            if ((partition instanceof DirectoryPartition)
+                    && ((DirectoryPartition) partition).getDirectoryId() == Directory.DEFAULT) {
+                break;
+            } else {
+                removePartition(i);
+            }
+        }
+    }
+
+    protected int getPartitionByDirectoryId(long id) {
+        int count = getPartitionCount();
+        for (int i = 0; i < count; i++) {
+            Partition partition = getPartition(i);
+            if (partition instanceof DirectoryPartition) {
+                if (((DirectoryPartition)partition).getDirectoryId() == id) {
+                    return i;
+                }
+            }
+        }
+        return -1;
+    }
+
+    protected DirectoryPartition getDirectoryById(long id) {
+        int count = getPartitionCount();
+        for (int i = 0; i < count; i++) {
+            Partition partition = getPartition(i);
+            if (partition instanceof DirectoryPartition) {
+                final DirectoryPartition directoryPartition = (DirectoryPartition) partition;
+                if (directoryPartition.getDirectoryId() == id) {
+                    return directoryPartition;
+                }
+            }
+        }
+        return null;
+    }
+
+    public abstract String getContactDisplayName(int position);
+    public abstract void configureLoader(CursorLoader loader, long directoryId);
+
+    /**
+     * Marks all partitions as "loading"
+     */
+    public void onDataReload() {
+        boolean notify = false;
+        int count = getPartitionCount();
+        for (int i = 0; i < count; i++) {
+            Partition partition = getPartition(i);
+            if (partition instanceof DirectoryPartition) {
+                DirectoryPartition directoryPartition = (DirectoryPartition)partition;
+                if (!directoryPartition.isLoading()) {
+                    notify = true;
+                }
+                directoryPartition.setStatus(DirectoryPartition.STATUS_NOT_LOADED);
+            }
+        }
+        if (notify) {
+            notifyDataSetChanged();
+        }
+    }
+
+    @Override
+    public void clearPartitions() {
+        int count = getPartitionCount();
+        for (int i = 0; i < count; i++) {
+            Partition partition = getPartition(i);
+            if (partition instanceof DirectoryPartition) {
+                DirectoryPartition directoryPartition = (DirectoryPartition)partition;
+                directoryPartition.setStatus(DirectoryPartition.STATUS_NOT_LOADED);
+            }
+        }
+        super.clearPartitions();
+    }
+
+    public boolean isSearchMode() {
+        return mSearchMode;
+    }
+
+    public void setSearchMode(boolean flag) {
+        mSearchMode = flag;
+    }
+
+    public String getQueryString() {
+        return mQueryString;
+    }
+
+    public void setQueryString(String queryString) {
+        mQueryString = queryString;
+        if (TextUtils.isEmpty(queryString)) {
+            mUpperCaseQueryString = null;
+        } else {
+            mUpperCaseQueryString = SearchUtil
+                    .cleanStartAndEndOfSearchQuery(queryString.toUpperCase()) ;
+        }
+    }
+
+    public String getUpperCaseQueryString() {
+        return mUpperCaseQueryString;
+    }
+
+    public int getDirectorySearchMode() {
+        return mDirectorySearchMode;
+    }
+
+    public void setDirectorySearchMode(int mode) {
+        mDirectorySearchMode = mode;
+    }
+
+    public int getDirectoryResultLimit() {
+        return mDirectoryResultLimit;
+    }
+
+    public int getDirectoryResultLimit(DirectoryPartition directoryPartition) {
+        final int limit = directoryPartition.getResultLimit();
+        return limit == DirectoryPartition.RESULT_LIMIT_DEFAULT ? mDirectoryResultLimit : limit;
+    }
+
+    public void setDirectoryResultLimit(int limit) {
+        this.mDirectoryResultLimit = limit;
+    }
+
+    public int getContactNameDisplayOrder() {
+        return mDisplayOrder;
+    }
+
+    public void setContactNameDisplayOrder(int displayOrder) {
+        mDisplayOrder = displayOrder;
+    }
+
+    public int getSortOrder() {
+        return mSortOrder;
+    }
+
+    public void setSortOrder(int sortOrder) {
+        mSortOrder = sortOrder;
+    }
+
+    public void setPhotoLoader(ContactPhotoManager photoLoader) {
+        mPhotoLoader = photoLoader;
+    }
+
+    protected ContactPhotoManager getPhotoLoader() {
+        return mPhotoLoader;
+    }
+
+    public boolean getDisplayPhotos() {
+        return mDisplayPhotos;
+    }
+
+    public void setDisplayPhotos(boolean displayPhotos) {
+        mDisplayPhotos = displayPhotos;
+    }
+
+    public boolean getCircularPhotos() {
+        return mCircularPhotos;
+    }
+
+    public void setCircularPhotos(boolean circularPhotos) {
+        mCircularPhotos = circularPhotos;
+    }
+
+    public boolean isEmptyListEnabled() {
+        return mEmptyListEnabled;
+    }
+
+    public void setEmptyListEnabled(boolean flag) {
+        mEmptyListEnabled = flag;
+    }
+
+    public boolean isSelectionVisible() {
+        return mSelectionVisible;
+    }
+
+    public void setSelectionVisible(boolean flag) {
+        this.mSelectionVisible = flag;
+    }
+
+    public boolean isQuickContactEnabled() {
+        return mQuickContactEnabled;
+    }
+
+    public void setQuickContactEnabled(boolean quickContactEnabled) {
+        mQuickContactEnabled = quickContactEnabled;
+    }
+
+    public boolean isAdjustSelectionBoundsEnabled() {
+        return mAdjustSelectionBoundsEnabled;
+    }
+
+    public void setAdjustSelectionBoundsEnabled(boolean enabled) {
+        mAdjustSelectionBoundsEnabled = enabled;
+    }
+
+    public boolean shouldIncludeFavorites() {
+        return mIncludeFavorites;
+    }
+
+    public void setIncludeFavorites(boolean includeFavorites) {
+        mIncludeFavorites = includeFavorites;
+    }
+
+    public void setFavoritesSectionHeader(int numberOfFavorites) {
+        if (mIncludeFavorites) {
+            mNumberOfFavorites = numberOfFavorites;
+            setSectionHeader(numberOfFavorites);
+        }
+    }
+
+    public int getNumberOfFavorites() {
+        return mNumberOfFavorites;
+    }
+
+    private void setSectionHeader(int numberOfItems) {
+        SectionIndexer indexer = getIndexer();
+        if (indexer != null) {
+            ((ContactsSectionIndexer) indexer).setFavoritesHeader(numberOfItems);
+        }
+    }
+
+    public void setDarkTheme(boolean value) {
+        mDarkTheme = value;
+    }
+
+    /**
+     * Updates partitions according to the directory meta-data contained in the supplied
+     * cursor.
+     */
+    public void changeDirectories(Cursor cursor) {
+        if (cursor.getCount() == 0) {
+            // Directory table must have at least local directory, without which this adapter will
+            // enter very weird state.
+            Log.e(TAG, "Directory search loader returned an empty cursor, which implies we have " +
+                    "no directory entries.", new RuntimeException());
+            return;
+        }
+        HashSet<Long> directoryIds = new HashSet<Long>();
+
+        int idColumnIndex = cursor.getColumnIndex(Directory._ID);
+        int directoryTypeColumnIndex = cursor.getColumnIndex(DirectoryListLoader.DIRECTORY_TYPE);
+        int displayNameColumnIndex = cursor.getColumnIndex(Directory.DISPLAY_NAME);
+        int photoSupportColumnIndex = cursor.getColumnIndex(Directory.PHOTO_SUPPORT);
+
+        // TODO preserve the order of partition to match those of the cursor
+        // Phase I: add new directories
+        cursor.moveToPosition(-1);
+        while (cursor.moveToNext()) {
+            long id = cursor.getLong(idColumnIndex);
+            directoryIds.add(id);
+            if (getPartitionByDirectoryId(id) == -1) {
+                DirectoryPartition partition = new DirectoryPartition(false, true);
+                partition.setDirectoryId(id);
+                if (DirectoryCompat.isRemoteDirectoryId(id)) {
+                    if (DirectoryCompat.isEnterpriseDirectoryId(id)) {
+                        partition.setLabel(mContext.getString(R.string.directory_search_label_work));
+                    } else {
+                        partition.setLabel(mContext.getString(R.string.directory_search_label));
+                    }
+                } else {
+                    if (DirectoryCompat.isEnterpriseDirectoryId(id)) {
+                        partition.setLabel(mContext.getString(R.string.list_filter_phones_work));
+                    } else {
+                        partition.setLabel(mDefaultFilterHeaderText.toString());
+                    }
+                }
+                partition.setDirectoryType(cursor.getString(directoryTypeColumnIndex));
+                partition.setDisplayName(cursor.getString(displayNameColumnIndex));
+                int photoSupport = cursor.getInt(photoSupportColumnIndex);
+                partition.setPhotoSupported(photoSupport == Directory.PHOTO_SUPPORT_THUMBNAIL_ONLY
+                        || photoSupport == Directory.PHOTO_SUPPORT_FULL);
+                addPartition(partition);
+            }
+        }
+
+        // Phase II: remove deleted directories
+        int count = getPartitionCount();
+        for (int i = count; --i >= 0; ) {
+            Partition partition = getPartition(i);
+            if (partition instanceof DirectoryPartition) {
+                long id = ((DirectoryPartition)partition).getDirectoryId();
+                if (!directoryIds.contains(id)) {
+                    removePartition(i);
+                }
+            }
+        }
+
+        invalidate();
+        notifyDataSetChanged();
+    }
+
+    @Override
+    public void changeCursor(int partitionIndex, Cursor cursor) {
+        if (partitionIndex >= getPartitionCount()) {
+            // There is no partition for this data
+            return;
+        }
+
+        Partition partition = getPartition(partitionIndex);
+        if (partition instanceof DirectoryPartition) {
+            ((DirectoryPartition)partition).setStatus(DirectoryPartition.STATUS_LOADED);
+        }
+
+        if (mDisplayPhotos && mPhotoLoader != null && isPhotoSupported(partitionIndex)) {
+            mPhotoLoader.refreshCache();
+        }
+
+        super.changeCursor(partitionIndex, cursor);
+
+        if (isSectionHeaderDisplayEnabled() && partitionIndex == getIndexedPartition()) {
+            updateIndexer(cursor);
+        }
+
+        // When the cursor changes, cancel any pending asynchronous photo loads.
+        mPhotoLoader.cancelPendingRequests(mFragmentRootView);
+    }
+
+    public void changeCursor(Cursor cursor) {
+        changeCursor(0, cursor);
+    }
+
+    /**
+     * Updates the indexer, which is used to produce section headers.
+     */
+    private void updateIndexer(Cursor cursor) {
+        if (cursor == null || cursor.isClosed()) {
+            setIndexer(null);
+            return;
+        }
+
+        Bundle bundle = cursor.getExtras();
+        if (bundle.containsKey(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES) &&
+                bundle.containsKey(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS)) {
+            String sections[] =
+                    bundle.getStringArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES);
+            int counts[] = bundle.getIntArray(
+                    Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS);
+
+            if (getExtraStartingSection()) {
+                // Insert an additional unnamed section at the top of the list.
+                String allSections[] = new String[sections.length + 1];
+                int allCounts[] = new int[counts.length + 1];
+                for (int i = 0; i < sections.length; i++) {
+                    allSections[i + 1] = sections[i];
+                    allCounts[i + 1] = counts[i];
+                }
+                allCounts[0] = 1;
+                allSections[0] = "";
+                setIndexer(new ContactsSectionIndexer(allSections, allCounts));
+            } else {
+                setIndexer(new ContactsSectionIndexer(sections, counts));
+            }
+        } else {
+            setIndexer(null);
+        }
+    }
+
+    protected boolean getExtraStartingSection() {
+        return false;
+    }
+
+    @Override
+    public int getViewTypeCount() {
+        // We need a separate view type for each item type, plus another one for
+        // each type with header, plus one for "other".
+        return getItemViewTypeCount() * 2 + 1;
+    }
+
+    @Override
+    public int getItemViewType(int partitionIndex, int position) {
+        int type = super.getItemViewType(partitionIndex, position);
+        if (isSectionHeaderDisplayEnabled() && partitionIndex == getIndexedPartition()) {
+            Placement placement = getItemPlacementInSection(position);
+            return placement.firstInSection ? type : getItemViewTypeCount() + type;
+        } else {
+            return type;
+        }
+    }
+
+    @Override
+    public boolean isEmpty() {
+        // TODO
+//        if (contactsListActivity.mProviderStatus != ProviderStatus.STATUS_NORMAL) {
+//            return true;
+//        }
+
+        if (!mEmptyListEnabled) {
+            return false;
+        } else if (isSearchMode()) {
+            return TextUtils.isEmpty(getQueryString());
+        } else {
+            return super.isEmpty();
+        }
+    }
+
+    public boolean isLoading() {
+        int count = getPartitionCount();
+        for (int i = 0; i < count; i++) {
+            Partition partition = getPartition(i);
+            if (partition instanceof DirectoryPartition
+                    && ((DirectoryPartition) partition).isLoading()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public boolean areAllPartitionsEmpty() {
+        int count = getPartitionCount();
+        for (int i = 0; i < count; i++) {
+            if (!isPartitionEmpty(i)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Changes visibility parameters for the default directory partition.
+     */
+    public void configureDefaultPartition(boolean showIfEmpty, boolean hasHeader) {
+        int defaultPartitionIndex = -1;
+        int count = getPartitionCount();
+        for (int i = 0; i < count; i++) {
+            Partition partition = getPartition(i);
+            if (partition instanceof DirectoryPartition &&
+                    ((DirectoryPartition)partition).getDirectoryId() == Directory.DEFAULT) {
+                defaultPartitionIndex = i;
+                break;
+            }
+        }
+        if (defaultPartitionIndex != -1) {
+            setShowIfEmpty(defaultPartitionIndex, showIfEmpty);
+            setHasHeader(defaultPartitionIndex, hasHeader);
+        }
+    }
+
+    @Override
+    protected View newHeaderView(Context context, int partition, Cursor cursor,
+            ViewGroup parent) {
+        LayoutInflater inflater = LayoutInflater.from(context);
+        View view = inflater.inflate(R.layout.directory_header, parent, false);
+        if (!getPinnedPartitionHeadersEnabled()) {
+            // If the headers are unpinned, there is no need for their background
+            // color to be non-transparent. Setting this transparent reduces maintenance for
+            // non-pinned headers. We don't need to bother synchronizing the activity's
+            // background color with the header background color.
+            view.setBackground(null);
+        }
+        return view;
+    }
+
+    protected void bindWorkProfileIcon(final ContactListItemView view, int partitionId) {
+        final Partition partition = getPartition(partitionId);
+        if (partition instanceof DirectoryPartition) {
+            final DirectoryPartition directoryPartition = (DirectoryPartition) partition;
+            final long directoryId = directoryPartition.getDirectoryId();
+            final long userType = ContactsUtils.determineUserType(directoryId, null);
+            view.setWorkProfileIconEnabled(userType == ContactsUtils.USER_TYPE_WORK);
+        }
+    }
+
+    @Override
+    protected void bindHeaderView(View view, int partitionIndex, Cursor cursor) {
+        Partition partition = getPartition(partitionIndex);
+        if (!(partition instanceof DirectoryPartition)) {
+            return;
+        }
+
+        DirectoryPartition directoryPartition = (DirectoryPartition)partition;
+        long directoryId = directoryPartition.getDirectoryId();
+        TextView labelTextView = (TextView)view.findViewById(R.id.label);
+        TextView displayNameTextView = (TextView)view.findViewById(R.id.display_name);
+        labelTextView.setText(directoryPartition.getLabel());
+        if (!DirectoryCompat.isRemoteDirectoryId(directoryId)) {
+            displayNameTextView.setText(null);
+        } else {
+            String directoryName = directoryPartition.getDisplayName();
+            String displayName = !TextUtils.isEmpty(directoryName)
+                    ? directoryName
+                    : directoryPartition.getDirectoryType();
+            displayNameTextView.setText(displayName);
+        }
+
+        final Resources res = getContext().getResources();
+        final int headerPaddingTop = partitionIndex == 1 && getPartition(0).isEmpty()?
+                0 : res.getDimensionPixelOffset(R.dimen.directory_header_extra_top_padding);
+        // There should be no extra padding at the top of the first directory header
+        view.setPaddingRelative(view.getPaddingStart(), headerPaddingTop, view.getPaddingEnd(),
+                view.getPaddingBottom());
+    }
+
+    // Default implementation simply returns number of rows in the cursor.
+    // Broken out into its own routine so can be overridden by child classes
+    // for eg number of unique contacts for a phone list.
+    protected int getResultCount(Cursor cursor) {
+        return cursor == null ? 0 : cursor.getCount();
+    }
+
+    // TODO: fix PluralRules to handle zero correctly and use Resources.getQuantityText directly
+    public String getQuantityText(int count, int zeroResourceId, int pluralResourceId) {
+        if (count == 0) {
+            return getContext().getString(zeroResourceId);
+        } else {
+            String format = getContext().getResources()
+                    .getQuantityText(pluralResourceId, count).toString();
+            return String.format(format, count);
+        }
+    }
+
+    public boolean isPhotoSupported(int partitionIndex) {
+        Partition partition = getPartition(partitionIndex);
+        if (partition instanceof DirectoryPartition) {
+            return ((DirectoryPartition) partition).isPhotoSupported();
+        }
+        return true;
+    }
+
+    /**
+     * Returns the currently selected filter.
+     */
+    public ContactListFilter getFilter() {
+        return mFilter;
+    }
+
+    public void setFilter(ContactListFilter filter) {
+        mFilter = filter;
+    }
+
+    // TODO: move sharable logic (bindXX() methods) to here with extra arguments
+
+    /**
+     * Loads the photo for the quick contact view and assigns the contact uri.
+     * @param photoIdColumn Index of the photo id column
+     * @param photoUriColumn Index of the photo uri column. Optional: Can be -1
+     * @param contactIdColumn Index of the contact id column
+     * @param lookUpKeyColumn Index of the lookup key column
+     * @param displayNameColumn Index of the display name column
+     */
+    protected void bindQuickContact(final ContactListItemView view, int partitionIndex,
+            Cursor cursor, int photoIdColumn, int photoUriColumn, int contactIdColumn,
+            int lookUpKeyColumn, int displayNameColumn) {
+        long photoId = 0;
+        if (!cursor.isNull(photoIdColumn)) {
+            photoId = cursor.getLong(photoIdColumn);
+        }
+
+        QuickContactBadge quickContact = view.getQuickContact();
+        quickContact.assignContactUri(
+                getContactUri(partitionIndex, cursor, contactIdColumn, lookUpKeyColumn));
+        if (CompatUtils.hasPrioritizedMimeType()) {
+            // The Contacts app never uses the QuickContactBadge. Therefore, it is safe to assume
+            // that only Dialer will use this QuickContact badge. This means prioritizing the phone
+            // mimetype here is reasonable.
+            quickContact.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
+        }
+
+        if (photoId != 0 || photoUriColumn == -1) {
+            getPhotoLoader().loadThumbnail(quickContact, photoId, mDarkTheme, mCircularPhotos,
+                    null);
+        } else {
+            final String photoUriString = cursor.getString(photoUriColumn);
+            final Uri photoUri = photoUriString == null ? null : Uri.parse(photoUriString);
+            DefaultImageRequest request = null;
+            if (photoUri == null) {
+                request = getDefaultImageRequestFromCursor(cursor, displayNameColumn,
+                        lookUpKeyColumn);
+            }
+            getPhotoLoader().loadPhoto(quickContact, photoUri, -1, mDarkTheme, mCircularPhotos,
+                    request);
+        }
+
+    }
+
+    @Override
+    public boolean hasStableIds() {
+        // Whenever bindViewId() is called, the values passed into setId() are stable or
+        // stable-ish. For example, when one contact is modified we don't expect a second
+        // contact's Contact._ID values to change.
+        return true;
+    }
+
+    protected void bindViewId(final ContactListItemView view, Cursor cursor, int idColumn) {
+        // Set a semi-stable id, so that talkback won't get confused when the list gets
+        // refreshed. There is little harm in inserting the same ID twice.
+        long contactId = cursor.getLong(idColumn);
+        view.setId((int) (contactId % Integer.MAX_VALUE));
+
+    }
+
+    protected Uri getContactUri(int partitionIndex, Cursor cursor,
+            int contactIdColumn, int lookUpKeyColumn) {
+        long contactId = cursor.getLong(contactIdColumn);
+        String lookupKey = cursor.getString(lookUpKeyColumn);
+        long directoryId = ((DirectoryPartition)getPartition(partitionIndex)).getDirectoryId();
+        Uri uri = Contacts.getLookupUri(contactId, lookupKey);
+        if (uri != null && directoryId != Directory.DEFAULT) {
+            uri = uri.buildUpon().appendQueryParameter(
+                    ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(directoryId)).build();
+        }
+        return uri;
+    }
+
+    /**
+     * Retrieves the lookup key and display name from a cursor, and returns a
+     * {@link DefaultImageRequest} containing these contact details
+     *
+     * @param cursor Contacts cursor positioned at the current row to retrieve contact details for
+     * @param displayNameColumn Column index of the display name
+     * @param lookupKeyColumn Column index of the lookup key
+     * @return {@link DefaultImageRequest} with the displayName and identifier fields set to the
+     * display name and lookup key of the contact.
+     */
+    public DefaultImageRequest getDefaultImageRequestFromCursor(Cursor cursor,
+            int displayNameColumn, int lookupKeyColumn) {
+        final String displayName = cursor.getString(displayNameColumn);
+        final String lookupKey = cursor.getString(lookupKeyColumn);
+        return new DefaultImageRequest(displayName, lookupKey, mCircularPhotos);
+    }
+}
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
new file mode 100644
index 0000000..72aa44c
--- /dev/null
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -0,0 +1,987 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.LoaderManager;
+import android.app.LoaderManager.LoaderCallbacks;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.Intent;
+import android.content.Loader;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.Parcelable;
+import android.provider.ContactsContract.Directory;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnFocusChangeListener;
+import android.view.View.OnTouchListener;
+import android.view.ViewGroup;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.AdapterView.OnItemLongClickListener;
+import android.widget.ListView;
+
+import com.android.common.widget.CompositeCursorAdapter.Partition;
+import com.android.contacts.ContactPhotoManager;
+import com.android.contacts.logging.ListEvent.ActionType;
+import com.android.contacts.logging.Logger;
+import com.android.contacts.preference.ContactsPreferences;
+
+import java.util.Locale;
+
+/**
+ * Common base class for various contact-related list fragments.
+ */
+public abstract class ContactEntryListFragment<T extends ContactEntryListAdapter>
+        extends Fragment
+        implements OnItemClickListener, OnScrollListener, OnFocusChangeListener, OnTouchListener,
+                OnItemLongClickListener, LoaderCallbacks<Cursor> {
+    private static final String TAG = "ContactEntryList";
+
+    // TODO: Make this protected. This should not be used from the PeopleActivity but
+    // instead use the new startActivityWithResultFromFragment API
+    public static final int ACTIVITY_REQUEST_CODE_PICKER = 1;
+
+    private static final String KEY_LIST_STATE = "liststate";
+    private static final String KEY_SECTION_HEADER_DISPLAY_ENABLED = "sectionHeaderDisplayEnabled";
+    private static final String KEY_PHOTO_LOADER_ENABLED = "photoLoaderEnabled";
+    private static final String KEY_QUICK_CONTACT_ENABLED = "quickContactEnabled";
+    private static final String KEY_ADJUST_SELECTION_BOUNDS_ENABLED =
+            "adjustSelectionBoundsEnabled";
+    private static final String KEY_SEARCH_MODE = "searchMode";
+    private static final String KEY_DISPLAY_DIRECTORY_HEADER = "displayDirectoryHeader";
+    private static final String KEY_VISIBLE_SCROLLBAR_ENABLED = "visibleScrollbarEnabled";
+    private static final String KEY_SCROLLBAR_POSITION = "scrollbarPosition";
+    private static final String KEY_QUERY_STRING = "queryString";
+    private static final String KEY_DIRECTORY_SEARCH_MODE = "directorySearchMode";
+    private static final String KEY_SELECTION_VISIBLE = "selectionVisible";
+    private static final String KEY_REQUEST = "request";
+    private static final String KEY_DARK_THEME = "darkTheme";
+    private static final String KEY_LEGACY_COMPATIBILITY = "legacyCompatibility";
+    private static final String KEY_DIRECTORY_RESULT_LIMIT = "directoryResultLimit";
+    private static final String KEY_LOGS_LIST_EVENTS = "logsListEvents";
+    private static final String KEY_DATA_LOADED = "dataLoaded";
+
+    private static final String DIRECTORY_ID_ARG_KEY = "directoryId";
+
+    private static final int DIRECTORY_LOADER_ID = -1;
+
+    private static final int DIRECTORY_SEARCH_DELAY_MILLIS = 300;
+    private static final int DIRECTORY_SEARCH_MESSAGE = 1;
+
+    private static final int DEFAULT_DIRECTORY_RESULT_LIMIT = 20;
+
+    private boolean mSectionHeaderDisplayEnabled;
+    private boolean mPhotoLoaderEnabled;
+    private boolean mQuickContactEnabled = true;
+    private boolean mAdjustSelectionBoundsEnabled = true;
+    private boolean mIncludeFavorites;
+    private boolean mSearchMode;
+    private boolean mDisplayDirectoryHeader = true;
+    private boolean mVisibleScrollbarEnabled;
+    private boolean mShowEmptyListForEmptyQuery;
+    private int mVerticalScrollbarPosition = getDefaultVerticalScrollbarPosition();
+    private String mQueryString;
+    private int mDirectorySearchMode = DirectoryListLoader.SEARCH_MODE_NONE;
+    private boolean mSelectionVisible;
+    private boolean mLegacyCompatibility;
+    // Whether we should log list LOAD events. It may be modified when list filter is changed.
+    private boolean mLogListEvents = true;
+    // Whether data has been loaded ever. It will stay true once it's set to true in the lifecycle.
+    // We use this flag to log LOAD events when the activity/fragment is initialized.
+    private boolean mDataLoaded;
+
+    private boolean mEnabled = true;
+
+    private T mAdapter;
+    protected View mView;
+    private ListView mListView;
+
+    /**
+     * Used to save the scrolling state of the list when the fragment is not recreated.
+     */
+    private int mListViewTopIndex;
+    private int mListViewTopOffset;
+
+    /**
+     * Used for keeping track of the scroll state of the list.
+     */
+    private Parcelable mListState;
+
+    /**
+     * The type of the contacts list.
+     */
+    private int mListType;
+
+    private int mDisplayOrder;
+    private int mSortOrder;
+    private int mDirectoryResultLimit = DEFAULT_DIRECTORY_RESULT_LIMIT;
+
+    private ContactPhotoManager mPhotoManager;
+    private ContactsPreferences mContactsPrefs;
+
+    private boolean mForceLoad;
+
+    private boolean mDarkTheme;
+
+    private static final int STATUS_NOT_LOADED = 0;
+    private static final int STATUS_LOADING = 1;
+    private static final int STATUS_LOADED = 2;
+
+    private int mDirectoryListStatus = STATUS_NOT_LOADED;
+
+    /**
+     * Indicates whether we are doing the initial complete load of data (false) or
+     * a refresh caused by a change notification (true)
+     */
+    private boolean mLoadPriorityDirectoriesOnly;
+
+    private Context mContext;
+
+    private LoaderManager mLoaderManager;
+
+    private Handler mDelayedDirectorySearchHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if (msg.what == DIRECTORY_SEARCH_MESSAGE) {
+                loadDirectoryPartition(msg.arg1, (DirectoryPartition) msg.obj);
+            }
+        }
+    };
+    private int defaultVerticalScrollbarPosition;
+
+    protected abstract View inflateView(LayoutInflater inflater, ViewGroup container);
+    protected abstract T createListAdapter();
+
+    /**
+     * @param position Please note that the position is already adjusted for
+     *            header views, so "0" means the first list item below header
+     *            views.
+     */
+    protected abstract void onItemClick(int position, long id);
+
+    /**
+     * @param position Please note that the position is already adjusted for
+     *            header views, so "0" means the first list item below header
+     *            views.
+     */
+    protected boolean onItemLongClick(int position, long id) {
+        return false;
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        setContext(activity);
+        setLoaderManager(super.getLoaderManager());
+    }
+
+    /**
+     * Sets a context for the fragment in the unit test environment.
+     */
+    public void setContext(Context context) {
+        mContext = context;
+        configurePhotoLoader();
+    }
+
+    public Context getContext() {
+        return mContext;
+    }
+
+    public void setEnabled(boolean enabled) {
+        if (mEnabled != enabled) {
+            mEnabled = enabled;
+            if (mAdapter != null) {
+                if (mEnabled) {
+                    reloadData();
+                } else {
+                    mAdapter.clearPartitions();
+                }
+            }
+        }
+    }
+
+    /**
+     * Overrides a loader manager for use in unit tests.
+     */
+    public void setLoaderManager(LoaderManager loaderManager) {
+        mLoaderManager = loaderManager;
+    }
+
+    @Override
+    public LoaderManager getLoaderManager() {
+        return mLoaderManager;
+    }
+
+    public T getAdapter() {
+        return mAdapter;
+    }
+
+    @Override
+    public View getView() {
+        return mView;
+    }
+
+    public ListView getListView() {
+        return mListView;
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(KEY_SECTION_HEADER_DISPLAY_ENABLED, mSectionHeaderDisplayEnabled);
+        outState.putBoolean(KEY_PHOTO_LOADER_ENABLED, mPhotoLoaderEnabled);
+        outState.putBoolean(KEY_QUICK_CONTACT_ENABLED, mQuickContactEnabled);
+        outState.putBoolean(KEY_ADJUST_SELECTION_BOUNDS_ENABLED, mAdjustSelectionBoundsEnabled);
+        outState.putBoolean(KEY_SEARCH_MODE, mSearchMode);
+        outState.putBoolean(KEY_DISPLAY_DIRECTORY_HEADER, mDisplayDirectoryHeader);
+        outState.putBoolean(KEY_VISIBLE_SCROLLBAR_ENABLED, mVisibleScrollbarEnabled);
+        outState.putInt(KEY_SCROLLBAR_POSITION, mVerticalScrollbarPosition);
+        outState.putInt(KEY_DIRECTORY_SEARCH_MODE, mDirectorySearchMode);
+        outState.putBoolean(KEY_SELECTION_VISIBLE, mSelectionVisible);
+        outState.putBoolean(KEY_LEGACY_COMPATIBILITY, mLegacyCompatibility);
+        outState.putString(KEY_QUERY_STRING, mQueryString);
+        outState.putInt(KEY_DIRECTORY_RESULT_LIMIT, mDirectoryResultLimit);
+        outState.putBoolean(KEY_DARK_THEME, mDarkTheme);
+        outState.putBoolean(KEY_LOGS_LIST_EVENTS, mLogListEvents);
+        outState.putBoolean(KEY_DATA_LOADED, mDataLoaded);
+
+        if (mListView != null) {
+            outState.putParcelable(KEY_LIST_STATE, mListView.onSaveInstanceState());
+        }
+    }
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        super.onCreate(savedState);
+        restoreSavedState(savedState);
+        mAdapter = createListAdapter();
+        mContactsPrefs = new ContactsPreferences(mContext);
+    }
+
+    public void restoreSavedState(Bundle savedState) {
+        if (savedState == null) {
+            return;
+        }
+
+        mSectionHeaderDisplayEnabled = savedState.getBoolean(KEY_SECTION_HEADER_DISPLAY_ENABLED);
+        mPhotoLoaderEnabled = savedState.getBoolean(KEY_PHOTO_LOADER_ENABLED);
+        mQuickContactEnabled = savedState.getBoolean(KEY_QUICK_CONTACT_ENABLED);
+        mAdjustSelectionBoundsEnabled = savedState.getBoolean(KEY_ADJUST_SELECTION_BOUNDS_ENABLED);
+        mSearchMode = savedState.getBoolean(KEY_SEARCH_MODE);
+        mDisplayDirectoryHeader = savedState.getBoolean(KEY_DISPLAY_DIRECTORY_HEADER);
+        mVisibleScrollbarEnabled = savedState.getBoolean(KEY_VISIBLE_SCROLLBAR_ENABLED);
+        mVerticalScrollbarPosition = savedState.getInt(KEY_SCROLLBAR_POSITION);
+        mDirectorySearchMode = savedState.getInt(KEY_DIRECTORY_SEARCH_MODE);
+        mSelectionVisible = savedState.getBoolean(KEY_SELECTION_VISIBLE);
+        mLegacyCompatibility = savedState.getBoolean(KEY_LEGACY_COMPATIBILITY);
+        mQueryString = savedState.getString(KEY_QUERY_STRING);
+        mDirectoryResultLimit = savedState.getInt(KEY_DIRECTORY_RESULT_LIMIT);
+        mDarkTheme = savedState.getBoolean(KEY_DARK_THEME);
+
+        // Retrieve list state. This will be applied in onLoadFinished
+        mListState = savedState.getParcelable(KEY_LIST_STATE);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+
+        mContactsPrefs.registerChangeListener(mPreferencesChangeListener);
+
+        mForceLoad = loadPreferences();
+
+        mDirectoryListStatus = STATUS_NOT_LOADED;
+        mLoadPriorityDirectoriesOnly = true;
+
+        startLoading();
+    }
+
+    protected void startLoading() {
+        if (mAdapter == null) {
+            // The method was called before the fragment was started
+            return;
+        }
+
+        configureAdapter();
+        int partitionCount = mAdapter.getPartitionCount();
+        for (int i = 0; i < partitionCount; i++) {
+            Partition partition = mAdapter.getPartition(i);
+            if (partition instanceof DirectoryPartition) {
+                DirectoryPartition directoryPartition = (DirectoryPartition)partition;
+                if (directoryPartition.getStatus() == DirectoryPartition.STATUS_NOT_LOADED) {
+                    if (directoryPartition.isPriorityDirectory() || !mLoadPriorityDirectoriesOnly) {
+                        startLoadingDirectoryPartition(i);
+                    }
+                }
+            } else {
+                getLoaderManager().initLoader(i, null, this);
+            }
+        }
+
+        // Next time this method is called, we should start loading non-priority directories
+        mLoadPriorityDirectoriesOnly = false;
+    }
+
+    @Override
+    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+        if (id == DIRECTORY_LOADER_ID) {
+            DirectoryListLoader loader = new DirectoryListLoader(mContext);
+            loader.setDirectorySearchMode(mAdapter.getDirectorySearchMode());
+            loader.setLocalInvisibleDirectoryEnabled(
+                    ContactEntryListAdapter.LOCAL_INVISIBLE_DIRECTORY_ENABLED);
+            return loader;
+        } else {
+            CursorLoader loader = createCursorLoader(mContext);
+            long directoryId = args != null && args.containsKey(DIRECTORY_ID_ARG_KEY)
+                    ? args.getLong(DIRECTORY_ID_ARG_KEY)
+                    : Directory.DEFAULT;
+            mAdapter.configureLoader(loader, directoryId);
+            return loader;
+        }
+    }
+
+    public CursorLoader createCursorLoader(Context context) {
+        return new CursorLoader(context, null, null, null, null, null) {
+            @Override
+            protected Cursor onLoadInBackground() {
+                try {
+                    return super.onLoadInBackground();
+                } catch (RuntimeException e) {
+                    // We don't even know what the projection should be, so no point trying to
+                    // return an empty MatrixCursor with the correct projection here.
+                    Log.w(TAG, "RuntimeException while trying to query ContactsProvider.");
+                    return null;
+                }
+            }
+        };
+    }
+
+    private void startLoadingDirectoryPartition(int partitionIndex) {
+        DirectoryPartition partition = (DirectoryPartition)mAdapter.getPartition(partitionIndex);
+        partition.setStatus(DirectoryPartition.STATUS_LOADING);
+        long directoryId = partition.getDirectoryId();
+        if (mForceLoad) {
+            if (directoryId == Directory.DEFAULT) {
+                loadDirectoryPartition(partitionIndex, partition);
+            } else {
+                loadDirectoryPartitionDelayed(partitionIndex, partition);
+            }
+        } else {
+            Bundle args = new Bundle();
+            args.putLong(DIRECTORY_ID_ARG_KEY, directoryId);
+            getLoaderManager().initLoader(partitionIndex, args, this);
+        }
+    }
+
+    /**
+     * Queues up a delayed request to search the specified directory. Since
+     * directory search will likely introduce a lot of network traffic, we want
+     * to wait for a pause in the user's typing before sending a directory request.
+     */
+    private void loadDirectoryPartitionDelayed(int partitionIndex, DirectoryPartition partition) {
+        mDelayedDirectorySearchHandler.removeMessages(DIRECTORY_SEARCH_MESSAGE, partition);
+        Message msg = mDelayedDirectorySearchHandler.obtainMessage(
+                DIRECTORY_SEARCH_MESSAGE, partitionIndex, 0, partition);
+        mDelayedDirectorySearchHandler.sendMessageDelayed(msg, DIRECTORY_SEARCH_DELAY_MILLIS);
+    }
+
+    /**
+     * Loads the directory partition.
+     */
+    protected void loadDirectoryPartition(int partitionIndex, DirectoryPartition partition) {
+        Bundle args = new Bundle();
+        args.putLong(DIRECTORY_ID_ARG_KEY, partition.getDirectoryId());
+        getLoaderManager().restartLoader(partitionIndex, args, this);
+    }
+
+    /**
+     * Cancels all queued directory loading requests.
+     */
+    private void removePendingDirectorySearchRequests() {
+        mDelayedDirectorySearchHandler.removeMessages(DIRECTORY_SEARCH_MESSAGE);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+        if (!mEnabled) {
+            return;
+        }
+
+        getListView().setVisibility(View.VISIBLE);
+        getView().setVisibility(View.VISIBLE);
+
+        int loaderId = loader.getId();
+        if (loaderId == DIRECTORY_LOADER_ID) {
+            mDirectoryListStatus = STATUS_LOADED;
+            mAdapter.changeDirectories(data);
+            startLoading();
+        } else {
+            onPartitionLoaded(loaderId, data);
+            if (isSearchMode()) {
+                int directorySearchMode = getDirectorySearchMode();
+                if (directorySearchMode != DirectoryListLoader.SEARCH_MODE_NONE) {
+                    if (mDirectoryListStatus == STATUS_NOT_LOADED) {
+                        mDirectoryListStatus = STATUS_LOADING;
+                        getLoaderManager().initLoader(DIRECTORY_LOADER_ID, null, this);
+                    } else {
+                        startLoading();
+                    }
+                }
+            } else {
+                maybeLogListEvent();
+                mDirectoryListStatus = STATUS_NOT_LOADED;
+                getLoaderManager().destroyLoader(DIRECTORY_LOADER_ID);
+            }
+        }
+    }
+
+    protected void maybeLogListEvent() {
+        if (!mDataLoaded || mLogListEvents) {
+            Logger.logListEvent(ActionType.LOAD, getListType(), getAdapter().getCount(),
+                        /* clickedIndex */ -1, /* numSelected */ 0);
+            mLogListEvents = false;
+            mDataLoaded = true;
+        }
+    }
+
+    public void onLoaderReset(Loader<Cursor> loader) {
+    }
+
+    protected void onPartitionLoaded(int partitionIndex, Cursor data) {
+        if (partitionIndex >= mAdapter.getPartitionCount()) {
+            // When we get unsolicited data, ignore it.  This could happen
+            // when we are switching from search mode to the default mode.
+            return;
+        }
+
+        mAdapter.changeCursor(partitionIndex, data);
+        setListHeader();
+
+        if (!isLoading()) {
+            completeRestoreInstanceState();
+        }
+    }
+
+    public boolean isLoading() {
+        if (mAdapter != null && mAdapter.isLoading()) {
+            return true;
+        }
+
+        if (isLoadingDirectoryList()) {
+            return true;
+        }
+
+        return false;
+    }
+
+    public boolean isLoadingDirectoryList() {
+        return isSearchMode() && getDirectorySearchMode() != DirectoryListLoader.SEARCH_MODE_NONE
+                && (mDirectoryListStatus == STATUS_NOT_LOADED
+                        || mDirectoryListStatus == STATUS_LOADING);
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        mContactsPrefs.unregisterChangeListener();
+        mAdapter.clearPartitions();
+    }
+
+    protected void reloadData() {
+        removePendingDirectorySearchRequests();
+        mAdapter.onDataReload();
+        mLoadPriorityDirectoriesOnly = true;
+        mForceLoad = true;
+        startLoading();
+    }
+
+    /**
+     * Shows a view at the top of the list.
+     */
+    protected void setListHeader() {}
+
+    /**
+     * Provides logic that dismisses this fragment. The default implementation
+     * does nothing.
+     */
+    protected void finish() {
+    }
+
+    public void setSectionHeaderDisplayEnabled(boolean flag) {
+        if (mSectionHeaderDisplayEnabled != flag) {
+            mSectionHeaderDisplayEnabled = flag;
+            if (mAdapter != null) {
+                mAdapter.setSectionHeaderDisplayEnabled(flag);
+            }
+            configureVerticalScrollbar();
+        }
+    }
+
+    public boolean isSectionHeaderDisplayEnabled() {
+        return mSectionHeaderDisplayEnabled;
+    }
+
+    public void setVisibleScrollbarEnabled(boolean flag) {
+        if (mVisibleScrollbarEnabled != flag) {
+            mVisibleScrollbarEnabled = flag;
+            configureVerticalScrollbar();
+        }
+    }
+
+    public boolean isVisibleScrollbarEnabled() {
+        return mVisibleScrollbarEnabled;
+    }
+
+    public void setVerticalScrollbarPosition(int position) {
+        if (mVerticalScrollbarPosition != position) {
+            mVerticalScrollbarPosition = position;
+            configureVerticalScrollbar();
+        }
+    }
+
+    private void configureVerticalScrollbar() {
+        boolean hasScrollbar = isVisibleScrollbarEnabled() && isSectionHeaderDisplayEnabled();
+
+        if (mListView != null) {
+            mListView.setFastScrollEnabled(hasScrollbar);
+            mListView.setVerticalScrollbarPosition(mVerticalScrollbarPosition);
+            mListView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
+        }
+    }
+
+    public void setPhotoLoaderEnabled(boolean flag) {
+        mPhotoLoaderEnabled = flag;
+        configurePhotoLoader();
+    }
+
+    public boolean isPhotoLoaderEnabled() {
+        return mPhotoLoaderEnabled;
+    }
+
+    /**
+     * Returns true if the list is supposed to visually highlight the selected item.
+     */
+    public boolean isSelectionVisible() {
+        return mSelectionVisible;
+    }
+
+    public void setSelectionVisible(boolean flag) {
+        this.mSelectionVisible = flag;
+    }
+
+    public void setQuickContactEnabled(boolean flag) {
+        this.mQuickContactEnabled = flag;
+    }
+
+    public void setAdjustSelectionBoundsEnabled(boolean flag) {
+        mAdjustSelectionBoundsEnabled = flag;
+    }
+
+    public void setIncludeFavorites(boolean flag) {
+        mIncludeFavorites = flag;
+        if (mAdapter != null) {
+            mAdapter.setIncludeFavorites(flag);
+        }
+    }
+
+    public void setDisplayDirectoryHeader(boolean flag) {
+        mDisplayDirectoryHeader = flag;
+    }
+
+    /**
+     * Enter/exit search mode. This is method is tightly related to the current query, and should
+     * only be called by {@link #setQueryString}.
+     *
+     * Also note this method doesn't call {@link #reloadData()}; {@link #setQueryString} does it.
+     */
+    protected void setSearchMode(boolean flag) {
+        if (mSearchMode != flag) {
+            mSearchMode = flag;
+            setSectionHeaderDisplayEnabled(!mSearchMode);
+
+            if (!flag) {
+                mDirectoryListStatus = STATUS_NOT_LOADED;
+                getLoaderManager().destroyLoader(DIRECTORY_LOADER_ID);
+            }
+
+            if (mAdapter != null) {
+                mAdapter.setSearchMode(flag);
+
+                mAdapter.clearPartitions();
+                if (!flag) {
+                    // If we are switching from search to regular display, remove all directory
+                    // partitions after default one, assuming they are remote directories which
+                    // should be cleaned up on exiting the search mode.
+                    mAdapter.removeDirectoriesAfterDefault();
+                }
+                mAdapter.configureDefaultPartition(false, shouldDisplayDirectoryHeader());
+            }
+
+            if (mListView != null) {
+                mListView.setFastScrollEnabled(!flag);
+            }
+        }
+    }
+
+    /**
+     * When not in search mode, directory header should always be hidden.
+     * When in search mode, directory header should be displayed when mDisplayDirectoryHeader is
+     * set to true. (mDisplayDirectoryHeader default value is true)
+     */
+    private boolean shouldDisplayDirectoryHeader() {
+        if (!mSearchMode) {
+            return false;
+        }
+        return mDisplayDirectoryHeader;
+    }
+
+    public final boolean isSearchMode() {
+        return mSearchMode;
+    }
+
+    public final String getQueryString() {
+        return mQueryString;
+    }
+
+    // TODO: the paramter delaySelection is not in use, and let's remove it.
+    public void setQueryString(String queryString, boolean delaySelection) {
+        if (!TextUtils.equals(mQueryString, queryString)) {
+            if (mShowEmptyListForEmptyQuery && mAdapter != null && mListView != null) {
+                if (TextUtils.isEmpty(mQueryString)) {
+                    // Restore the adapter if the query used to be empty.
+                    mListView.setAdapter(mAdapter);
+                } else if (TextUtils.isEmpty(queryString)) {
+                    // Instantly clear the list view if the new query is empty.
+                    mListView.setAdapter(null);
+                }
+            }
+
+            mQueryString = queryString;
+            setSearchMode(!TextUtils.isEmpty(mQueryString) || mShowEmptyListForEmptyQuery);
+
+            if (mAdapter != null) {
+                mAdapter.setQueryString(queryString);
+                reloadData();
+            }
+        }
+    }
+
+    public void setShowEmptyListForNullQuery(boolean show) {
+        mShowEmptyListForEmptyQuery = show;
+    }
+
+    public int getDirectoryLoaderId() {
+        return DIRECTORY_LOADER_ID;
+    }
+
+    public int getDirectorySearchMode() {
+        return mDirectorySearchMode;
+    }
+
+    public void setDirectorySearchMode(int mode) {
+        mDirectorySearchMode = mode;
+    }
+
+    public boolean isLegacyCompatibilityMode() {
+        return mLegacyCompatibility;
+    }
+
+    public void setLegacyCompatibilityMode(boolean flag) {
+        mLegacyCompatibility = flag;
+    }
+
+    protected int getContactNameDisplayOrder() {
+        return mDisplayOrder;
+    }
+
+    protected void setContactNameDisplayOrder(int displayOrder) {
+        mDisplayOrder = displayOrder;
+        if (mAdapter != null) {
+            mAdapter.setContactNameDisplayOrder(displayOrder);
+        }
+    }
+
+    public int getSortOrder() {
+        return mSortOrder;
+    }
+
+    public void setSortOrder(int sortOrder) {
+        mSortOrder = sortOrder;
+        if (mAdapter != null) {
+            mAdapter.setSortOrder(sortOrder);
+        }
+    }
+
+    public void setDirectoryResultLimit(int limit) {
+        mDirectoryResultLimit = limit;
+    }
+
+    protected boolean loadPreferences() {
+        boolean changed = false;
+        if (getContactNameDisplayOrder() != mContactsPrefs.getDisplayOrder()) {
+            setContactNameDisplayOrder(mContactsPrefs.getDisplayOrder());
+            changed = true;
+        }
+
+        if (getSortOrder() != mContactsPrefs.getSortOrder()) {
+            setSortOrder(mContactsPrefs.getSortOrder());
+            changed = true;
+        }
+
+        return changed;
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        onCreateView(inflater, container);
+
+        boolean searchMode = isSearchMode();
+        mAdapter.setSearchMode(searchMode);
+        mAdapter.configureDefaultPartition(false, shouldDisplayDirectoryHeader());
+        mAdapter.setPhotoLoader(mPhotoManager);
+        mListView.setAdapter(mAdapter);
+
+        if (!isSearchMode()) {
+            mListView.setFocusableInTouchMode(true);
+            mListView.requestFocus();
+        }
+
+        if (savedInstanceState != null) {
+            mLogListEvents = savedInstanceState.getBoolean(KEY_LOGS_LIST_EVENTS, true);
+            mDataLoaded = savedInstanceState.getBoolean(KEY_DATA_LOADED, false);
+        }
+
+        return mView;
+    }
+
+    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
+        mView = inflateView(inflater, container);
+
+        mListView = (ListView)mView.findViewById(android.R.id.list);
+        if (mListView == null) {
+            throw new RuntimeException(
+                    "Your content must have a ListView whose id attribute is " +
+                    "'android.R.id.list'");
+        }
+
+        View emptyView = mView.findViewById(android.R.id.empty);
+        if (emptyView != null) {
+            mListView.setEmptyView(emptyView);
+        }
+
+        mListView.setOnItemClickListener(this);
+        mListView.setOnItemLongClickListener(this);
+        mListView.setOnFocusChangeListener(this);
+        mListView.setOnTouchListener(this);
+        mListView.setFastScrollEnabled(!isSearchMode());
+
+        // Tell list view to not show dividers. We'll do it ourself so that we can *not* show
+        // them when an A-Z headers is visible.
+        mListView.setDividerHeight(0);
+
+        // We manually save/restore the listview state
+        mListView.setSaveEnabled(false);
+
+        configureVerticalScrollbar();
+        configurePhotoLoader();
+
+        getAdapter().setFragmentRootView(getView());
+    }
+
+    protected void configurePhotoLoader() {
+        if (isPhotoLoaderEnabled() && mContext != null) {
+            if (mPhotoManager == null) {
+                mPhotoManager = ContactPhotoManager.getInstance(mContext);
+            }
+            if (mListView != null) {
+                mListView.setOnScrollListener(this);
+            }
+            if (mAdapter != null) {
+                mAdapter.setPhotoLoader(mPhotoManager);
+            }
+        }
+    }
+
+    protected void configureAdapter() {
+        if (mAdapter == null) {
+            return;
+        }
+
+        mAdapter.setQuickContactEnabled(mQuickContactEnabled);
+        mAdapter.setAdjustSelectionBoundsEnabled(mAdjustSelectionBoundsEnabled);
+        mAdapter.setIncludeFavorites(mIncludeFavorites);
+        mAdapter.setQueryString(mQueryString);
+        mAdapter.setDirectorySearchMode(mDirectorySearchMode);
+        mAdapter.setPinnedPartitionHeadersEnabled(false);
+        mAdapter.setContactNameDisplayOrder(mDisplayOrder);
+        mAdapter.setSortOrder(mSortOrder);
+        mAdapter.setSectionHeaderDisplayEnabled(mSectionHeaderDisplayEnabled);
+        mAdapter.setSelectionVisible(mSelectionVisible);
+        mAdapter.setDirectoryResultLimit(mDirectoryResultLimit);
+        mAdapter.setDarkTheme(mDarkTheme);
+    }
+
+    @Override
+    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
+            int totalItemCount) {
+    }
+
+    @Override
+    public void onScrollStateChanged(AbsListView view, int scrollState) {
+        if (scrollState == OnScrollListener.SCROLL_STATE_FLING) {
+            mPhotoManager.pause();
+        } else if (isPhotoLoaderEnabled()) {
+            mPhotoManager.resume();
+        }
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        hideSoftKeyboard();
+
+        int adjPosition = position - mListView.getHeaderViewsCount();
+        if (adjPosition >= 0) {
+            onItemClick(adjPosition, id);
+        }
+    }
+
+    @Override
+    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
+        int adjPosition = position - mListView.getHeaderViewsCount();
+
+        if (adjPosition >= 0) {
+            return onItemLongClick(adjPosition, id);
+        }
+        return false;
+    }
+
+    private void hideSoftKeyboard() {
+        // Hide soft keyboard, if visible
+        InputMethodManager inputMethodManager = (InputMethodManager)
+                mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
+        inputMethodManager.hideSoftInputFromWindow(mListView.getWindowToken(), 0);
+    }
+
+    /**
+     * Dismisses the soft keyboard when the list takes focus.
+     */
+    @Override
+    public void onFocusChange(View view, boolean hasFocus) {
+        if (view == mListView && hasFocus) {
+            hideSoftKeyboard();
+        }
+    }
+
+    /**
+     * Dismisses the soft keyboard when the list is touched.
+     */
+    @Override
+    public boolean onTouch(View view, MotionEvent event) {
+        if (view == mListView) {
+            hideSoftKeyboard();
+        }
+        return false;
+    }
+
+    @Override
+    public void onPause() {
+        // Save the scrolling state of the list view
+        mListViewTopIndex = mListView.getFirstVisiblePosition();
+        View v = mListView.getChildAt(0);
+        mListViewTopOffset = (v == null) ? 0 : (v.getTop() - mListView.getPaddingTop());
+
+        super.onPause();
+        removePendingDirectorySearchRequests();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        // Restore the selection of the list view. See b/19982820.
+        // This has to be done manually because if the list view has its emptyView set,
+        // the scrolling state will be reset when clearPartitions() is called on the adapter.
+        mListView.setSelectionFromTop(mListViewTopIndex, mListViewTopOffset);
+    }
+
+    /**
+     * Restore the list state after the adapter is populated.
+     */
+    protected void completeRestoreInstanceState() {
+        if (mListState != null) {
+            mListView.onRestoreInstanceState(mListState);
+            mListState = null;
+        }
+    }
+
+    public void setDarkTheme(boolean value) {
+        mDarkTheme = value;
+        if (mAdapter != null) mAdapter.setDarkTheme(value);
+    }
+
+    /**
+     * Processes a result returned by the contact picker.
+     */
+    public void onPickerResult(Intent data) {
+        throw new UnsupportedOperationException("Picker result handler is not implemented.");
+    }
+
+    private ContactsPreferences.ChangeListener mPreferencesChangeListener =
+            new ContactsPreferences.ChangeListener() {
+        @Override
+        public void onChange() {
+            loadPreferences();
+            reloadData();
+        }
+    };
+
+    private int getDefaultVerticalScrollbarPosition() {
+        final Locale locale = Locale.getDefault();
+        final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale);
+        switch (layoutDirection) {
+            case View.LAYOUT_DIRECTION_RTL:
+                return View.SCROLLBAR_POSITION_LEFT;
+            case View.LAYOUT_DIRECTION_LTR:
+            default:
+                return View.SCROLLBAR_POSITION_RIGHT;
+        }
+    }
+
+    public void setListType(int listType) {
+        mListType = listType;
+    }
+
+    public int getListType() {
+        return mListType;
+    }
+
+    public void setLogListEvents(boolean logListEvents) {
+        mLogListEvents = logListEvents;
+    }
+}
diff --git a/src/com/android/contacts/list/ContactListAdapter.java b/src/com/android/contacts/list/ContactListAdapter.java
new file mode 100644
index 0000000..cb63f53
--- /dev/null
+++ b/src/com/android/contacts/list/ContactListAdapter.java
@@ -0,0 +1,444 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Directory;
+import android.provider.ContactsContract.SearchSnippets;
+import android.text.TextUtils;
+import android.view.ViewGroup;
+import android.widget.ListView;
+
+import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.R;
+import com.android.contacts.compat.ContactsCompat;
+import com.android.contacts.preference.ContactsPreferences;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * A cursor adapter for the {@link ContactsContract.Contacts#CONTENT_TYPE} content type.
+ */
+public abstract class ContactListAdapter extends MultiSelectEntryContactListAdapter {
+
+    public static class ContactQuery {
+        public static final String[] CONTACT_PROJECTION_PRIMARY = new String[] {
+            Contacts._ID,                           // 0
+            Contacts.DISPLAY_NAME_PRIMARY,          // 1
+            Contacts.CONTACT_PRESENCE,              // 2
+            Contacts.CONTACT_STATUS,                // 3
+            Contacts.PHOTO_ID,                      // 4
+            Contacts.PHOTO_THUMBNAIL_URI,           // 5
+            Contacts.LOOKUP_KEY,                    // 6
+            Contacts.PHONETIC_NAME,                 // 7
+            Contacts.STARRED,                       // 9
+        };
+
+        private static final String[] CONTACT_PROJECTION_ALTERNATIVE = new String[] {
+            Contacts._ID,                           // 0
+            Contacts.DISPLAY_NAME_ALTERNATIVE,      // 1
+            Contacts.CONTACT_PRESENCE,              // 2
+            Contacts.CONTACT_STATUS,                // 3
+            Contacts.PHOTO_ID,                      // 4
+            Contacts.PHOTO_THUMBNAIL_URI,           // 5
+            Contacts.LOOKUP_KEY,                    // 6
+            Contacts.PHONETIC_NAME,                 // 7
+            Contacts.STARRED,                       // 8
+        };
+
+        private static final String[] FILTER_PROJECTION_PRIMARY = new String[] {
+            Contacts._ID,                           // 0
+            Contacts.DISPLAY_NAME_PRIMARY,          // 1
+            Contacts.CONTACT_PRESENCE,              // 2
+            Contacts.CONTACT_STATUS,                // 3
+            Contacts.PHOTO_ID,                      // 4
+            Contacts.PHOTO_THUMBNAIL_URI,           // 5
+            Contacts.LOOKUP_KEY,                    // 6
+            Contacts.PHONETIC_NAME,                 // 7
+            Contacts.STARRED,                       // 8
+            SearchSnippets.SNIPPET,                 // 9
+        };
+
+        private static final String[] FILTER_PROJECTION_ALTERNATIVE = new String[] {
+            Contacts._ID,                           // 0
+            Contacts.DISPLAY_NAME_ALTERNATIVE,      // 1
+            Contacts.CONTACT_PRESENCE,              // 2
+            Contacts.CONTACT_STATUS,                // 3
+            Contacts.PHOTO_ID,                      // 4
+            Contacts.PHOTO_THUMBNAIL_URI,           // 5
+            Contacts.LOOKUP_KEY,                    // 6
+            Contacts.PHONETIC_NAME,                 // 7
+            Contacts.STARRED,                       // 8
+            SearchSnippets.SNIPPET,                 // 9
+        };
+
+        public static final int CONTACT_ID               = 0;
+        public static final int CONTACT_DISPLAY_NAME     = 1;
+        public static final int CONTACT_PRESENCE_STATUS  = 2;
+        public static final int CONTACT_CONTACT_STATUS   = 3;
+        public static final int CONTACT_PHOTO_ID         = 4;
+        public static final int CONTACT_PHOTO_URI        = 5;
+        public static final int CONTACT_LOOKUP_KEY       = 6;
+        public static final int CONTACT_PHONETIC_NAME    = 7;
+        public static final int CONTACT_STARRED          = 8;
+        public static final int CONTACT_SNIPPET          = 9;
+    }
+
+    private CharSequence mUnknownNameText;
+
+    private long mSelectedContactDirectoryId;
+    private String mSelectedContactLookupKey;
+    private long mSelectedContactId;
+    private ContactListItemView.PhotoPosition mPhotoPosition;
+
+    public ContactListAdapter(Context context) {
+        super(context, ContactQuery.CONTACT_ID);
+
+        mUnknownNameText = context.getText(R.string.missing_name);
+    }
+
+    public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
+        mPhotoPosition = photoPosition;
+    }
+
+    public ContactListItemView.PhotoPosition getPhotoPosition() {
+        return mPhotoPosition;
+    }
+
+    public CharSequence getUnknownNameText() {
+        return mUnknownNameText;
+    }
+
+    public long getSelectedContactDirectoryId() {
+        return mSelectedContactDirectoryId;
+    }
+
+    public String getSelectedContactLookupKey() {
+        return mSelectedContactLookupKey;
+    }
+
+    public long getSelectedContactId() {
+        return mSelectedContactId;
+    }
+
+    public void setSelectedContact(long selectedDirectoryId, String lookupKey, long contactId) {
+        mSelectedContactDirectoryId = selectedDirectoryId;
+        mSelectedContactLookupKey = lookupKey;
+        mSelectedContactId = contactId;
+    }
+
+    protected static Uri buildSectionIndexerUri(Uri uri) {
+        return uri.buildUpon()
+                .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true").build();
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor) getItem(position)).getString(ContactQuery.CONTACT_DISPLAY_NAME);
+    }
+
+    /**
+     * Builds the {@link Contacts#CONTENT_LOOKUP_URI} for the given
+     * {@link ListView} position.
+     */
+    public Uri getContactUri(int position) {
+        int partitionIndex = getPartitionForPosition(position);
+        Cursor item = (Cursor)getItem(position);
+        return item != null ? getContactUri(partitionIndex, item) : null;
+    }
+
+    public Uri getContactUri(int partitionIndex, Cursor cursor) {
+        long contactId = cursor.getLong(ContactQuery.CONTACT_ID);
+        String lookupKey = cursor.getString(ContactQuery.CONTACT_LOOKUP_KEY);
+        Uri uri = Contacts.getLookupUri(contactId, lookupKey);
+        long directoryId = ((DirectoryPartition)getPartition(partitionIndex)).getDirectoryId();
+        if (uri != null && directoryId != Directory.DEFAULT) {
+            uri = uri.buildUpon().appendQueryParameter(
+                    ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(directoryId)).build();
+        }
+        return uri;
+    }
+
+    /**
+     * Returns the {@link Contacts#_ID} for the given {@link ListView} position.
+     */
+    public long getContactId(int position) {
+        final Cursor cursor = (Cursor) getItem(position);
+        return cursor == null ? -1 : cursor.getLong(ContactQuery.CONTACT_ID);
+    }
+
+    public boolean isEnterpriseContact(int position) {
+        final Cursor cursor = (Cursor) getItem(position);
+        if (cursor != null) {
+            final long contactId = cursor.getLong(ContactQuery.CONTACT_ID);
+            return ContactsCompat.isEnterpriseContactId(contactId);
+        }
+        return false;
+    }
+
+    /**
+     * Returns true if the specified contact is selected in the list. For a
+     * contact to be shown as selected, we need both the directory and and the
+     * lookup key to be the same. We are paying no attention to the contactId,
+     * because it is volatile, especially in the case of directories.
+     */
+    public boolean isSelectedContact(int partitionIndex, Cursor cursor) {
+        long directoryId = ((DirectoryPartition)getPartition(partitionIndex)).getDirectoryId();
+        if (getSelectedContactDirectoryId() != directoryId) {
+            return false;
+        }
+        String lookupKey = getSelectedContactLookupKey();
+        if (lookupKey != null && TextUtils.equals(lookupKey,
+                cursor.getString(ContactQuery.CONTACT_LOOKUP_KEY))) {
+            return true;
+        }
+
+        return directoryId != Directory.DEFAULT && directoryId != Directory.LOCAL_INVISIBLE
+                && getSelectedContactId() == cursor.getLong(ContactQuery.CONTACT_ID);
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        ContactListItemView view = super.newView(context, partition, cursor, position, parent);
+        view.setUnknownNameText(mUnknownNameText);
+        view.setQuickContactEnabled(isQuickContactEnabled());
+        view.setAdjustSelectionBoundsEnabled(isAdjustSelectionBoundsEnabled());
+        view.setActivatedStateSupported(isSelectionVisible());
+        if (mPhotoPosition != null) {
+            view.setPhotoPosition(mPhotoPosition);
+        }
+        return view;
+    }
+
+    protected void bindSectionHeaderAndDivider(ContactListItemView view, int position,
+            Cursor cursor) {
+        view.setIsSectionHeaderEnabled(isSectionHeaderDisplayEnabled());
+        if (isSectionHeaderDisplayEnabled()) {
+            Placement placement = getItemPlacementInSection(position);
+            view.setSectionHeader(placement.sectionHeader);
+        } else {
+            view.setSectionHeader(null);
+        }
+    }
+
+    protected void bindPhoto(final ContactListItemView view, int partitionIndex, Cursor cursor) {
+        if (!isPhotoSupported(partitionIndex)) {
+            view.removePhotoView();
+            return;
+        }
+
+        // Set the photo, if available
+        long photoId = 0;
+        if (!cursor.isNull(ContactQuery.CONTACT_PHOTO_ID)) {
+            photoId = cursor.getLong(ContactQuery.CONTACT_PHOTO_ID);
+        }
+
+        if (photoId != 0) {
+            getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false,
+                    getCircularPhotos(), null);
+        } else {
+            final String photoUriString = cursor.getString(ContactQuery.CONTACT_PHOTO_URI);
+            final Uri photoUri = photoUriString == null ? null : Uri.parse(photoUriString);
+            DefaultImageRequest request = null;
+            if (photoUri == null) {
+                request = getDefaultImageRequestFromCursor(cursor,
+                        ContactQuery.CONTACT_DISPLAY_NAME,
+                        ContactQuery.CONTACT_LOOKUP_KEY);
+            }
+            getPhotoLoader().loadDirectoryPhoto(view.getPhotoView(), photoUri, false,
+                    getCircularPhotos(), request);
+        }
+    }
+
+    protected void bindNameAndViewId(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(
+                cursor, ContactQuery.CONTACT_DISPLAY_NAME, getContactNameDisplayOrder());
+        // Note: we don't show phonetic any more (See issue 5265330)
+
+        bindViewId(view, cursor, ContactQuery.CONTACT_ID);
+    }
+
+    protected void bindPresenceAndStatusMessage(final ContactListItemView view, Cursor cursor) {
+        view.showPresenceAndStatusMessage(cursor, ContactQuery.CONTACT_PRESENCE_STATUS,
+                ContactQuery.CONTACT_CONTACT_STATUS);
+    }
+
+    protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
+        view.showSnippet(cursor, ContactQuery.CONTACT_SNIPPET);
+    }
+
+    public int getSelectedContactPosition() {
+        if (mSelectedContactLookupKey == null && mSelectedContactId == 0) {
+            return -1;
+        }
+
+        Cursor cursor = null;
+        int partitionIndex = -1;
+        int partitionCount = getPartitionCount();
+        for (int i = 0; i < partitionCount; i++) {
+            DirectoryPartition partition = (DirectoryPartition) getPartition(i);
+            if (partition.getDirectoryId() == mSelectedContactDirectoryId) {
+                partitionIndex = i;
+                break;
+            }
+        }
+        if (partitionIndex == -1) {
+            return -1;
+        }
+
+        cursor = getCursor(partitionIndex);
+        if (cursor == null) {
+            return -1;
+        }
+
+        cursor.moveToPosition(-1);      // Reset cursor
+        int offset = -1;
+        while (cursor.moveToNext()) {
+            if (mSelectedContactLookupKey != null) {
+                String lookupKey = cursor.getString(ContactQuery.CONTACT_LOOKUP_KEY);
+                if (mSelectedContactLookupKey.equals(lookupKey)) {
+                    offset = cursor.getPosition();
+                    break;
+                }
+            }
+            if (mSelectedContactId != 0 && (mSelectedContactDirectoryId == Directory.DEFAULT
+                    || mSelectedContactDirectoryId == Directory.LOCAL_INVISIBLE)) {
+                long contactId = cursor.getLong(ContactQuery.CONTACT_ID);
+                if (contactId == mSelectedContactId) {
+                    offset = cursor.getPosition();
+                    break;
+                }
+            }
+        }
+        if (offset == -1) {
+            return -1;
+        }
+
+        int position = getPositionForPartition(partitionIndex) + offset;
+        if (hasHeader(partitionIndex)) {
+            position++;
+        }
+        return position;
+    }
+
+    public boolean hasValidSelection() {
+        return getSelectedContactPosition() != -1;
+    }
+
+    public Uri getFirstContactUri() {
+        int partitionCount = getPartitionCount();
+        for (int i = 0; i < partitionCount; i++) {
+            DirectoryPartition partition = (DirectoryPartition) getPartition(i);
+            if (partition.isLoading()) {
+                continue;
+            }
+
+            Cursor cursor = getCursor(i);
+            if (cursor == null) {
+                continue;
+            }
+
+            if (!cursor.moveToFirst()) {
+                continue;
+            }
+
+            return getContactUri(i, cursor);
+        }
+
+        return null;
+    }
+
+    @Override
+    public void changeCursor(int partitionIndex, Cursor cursor) {
+        super.changeCursor(partitionIndex, cursor);
+
+        if (cursor == null || !cursor.moveToFirst()) {
+            return;
+        }
+
+        if (shouldIncludeFavorites()) {
+            if (cursor.getInt(ContactQuery.CONTACT_STARRED) == 1) {
+                final Set<Integer> favorites = new HashSet<>();
+                favorites.add(cursor.getInt(ContactQuery.CONTACT_ID));
+                while (cursor != null && cursor.moveToNext()) {
+                    if (cursor.getInt(ContactQuery.CONTACT_STARRED) != 1
+                            || favorites.contains(cursor.getInt(ContactQuery.CONTACT_ID))) {
+                        break;
+                    }
+                    favorites.add(cursor.getInt(ContactQuery.CONTACT_ID));
+                }
+                setFavoritesSectionHeader(favorites.size());
+            }
+        }
+    }
+
+    /**
+     * @return Projection useful for children.
+     */
+    protected final String[] getProjection(boolean forSearch) {
+        final int sortOrder = getContactNameDisplayOrder();
+        if (forSearch) {
+            if (sortOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+                return ContactQuery.FILTER_PROJECTION_PRIMARY;
+            } else {
+                return ContactQuery.FILTER_PROJECTION_ALTERNATIVE;
+            }
+        } else {
+            if (sortOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+                return ContactQuery.CONTACT_PROJECTION_PRIMARY;
+            } else {
+                return ContactQuery.CONTACT_PROJECTION_ALTERNATIVE;
+            }
+        }
+    }
+
+    /**
+     * @return Projection from Data that is useful for children.
+     */
+    protected final String[] getDataProjectionForContacts(boolean forSearch) {
+        final int sortOrder = getContactNameDisplayOrder();
+        if (forSearch) {
+            if (sortOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+                return replaceFirstString(ContactQuery.FILTER_PROJECTION_PRIMARY);
+            } else {
+                return replaceFirstString(ContactQuery.FILTER_PROJECTION_ALTERNATIVE);
+            }
+        } else {
+            if (sortOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+                return replaceFirstString(ContactQuery.CONTACT_PROJECTION_PRIMARY);
+            } else {
+                return replaceFirstString(ContactQuery.CONTACT_PROJECTION_ALTERNATIVE);
+            }
+        }
+    }
+
+    /**
+     * @param sourceProjection
+     * @return Replace the first String of sourceProjection with Data.CONTACT_ID.
+     */
+    private String[] replaceFirstString(String[] sourceProjection) {
+        String[] result = sourceProjection.clone();
+        result[0] = Data.CONTACT_ID;
+        return result;
+    }
+}
diff --git a/src/com/android/contacts/list/ContactListFilter.java b/src/com/android/contacts/list/ContactListFilter.java
new file mode 100644
index 0000000..32e4b9c
--- /dev/null
+++ b/src/com/android/contacts/list/ContactListFilter.java
@@ -0,0 +1,464 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.accounts.Account;
+import android.content.SharedPreferences;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.ContactsContract.RawContacts;
+import android.text.TextUtils;
+
+import com.android.contacts.logging.ListEvent;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.GoogleAccountType;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Contact list filter parameters.
+ */
+public final class ContactListFilter implements Comparable<ContactListFilter>, Parcelable {
+
+    public static final int FILTER_TYPE_DEFAULT = -1;
+    public static final int FILTER_TYPE_ALL_ACCOUNTS = -2;
+    public static final int FILTER_TYPE_CUSTOM = -3;
+    public static final int FILTER_TYPE_STARRED = -4;
+    public static final int FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY = -5;
+    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_ACCOUNT = 0;
+
+    /**
+     * Obsolete filter which had been used in Honeycomb. This may be stored in
+     * {@link SharedPreferences}, but should be replaced with ALL filter when it is found.
+     *
+     * TODO: "group" filter and relevant variables are all obsolete. Remove them.
+     */
+    private static final int FILTER_TYPE_GROUP = 1;
+
+    private static final String KEY_FILTER_TYPE = "filter.type";
+    private static final String KEY_ACCOUNT_NAME = "filter.accountName";
+    private static final String KEY_ACCOUNT_TYPE = "filter.accountType";
+    private static final String KEY_DATA_SET = "filter.dataSet";
+
+    public final int filterType;
+    public final String accountType;
+    public final String accountName;
+    public final String dataSet;
+    public final Drawable icon;
+    private String mId;
+
+    public ContactListFilter(int filterType, String accountType, String accountName, String dataSet,
+            Drawable icon) {
+        this.filterType = filterType;
+        this.accountType = accountType;
+        this.accountName = accountName;
+        this.dataSet = dataSet;
+        this.icon = icon;
+    }
+
+    public static ContactListFilter createFilterWithType(int filterType) {
+        return new ContactListFilter(filterType, null, null, null, null);
+    }
+
+    public static ContactListFilter createAccountFilter(String accountType, String accountName,
+            String dataSet, Drawable icon) {
+        return new ContactListFilter(ContactListFilter.FILTER_TYPE_ACCOUNT, accountType,
+                accountName, dataSet, icon);
+    }
+
+    public static ContactListFilter createGroupMembersFilter(String accountType, String accountName,
+            String dataSet) {
+        return new ContactListFilter(ContactListFilter.FILTER_TYPE_GROUP_MEMBERS, accountType,
+                accountName, dataSet, /* icon */ null);
+    }
+
+    public static ContactListFilter createDeviceContactsFilter(Drawable icon) {
+        return new ContactListFilter(ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS,
+                /* accountType= */ null, /* accountName= */ null, /* dataSet= */ null, icon);
+    }
+
+    public static ContactListFilter createDeviceContactsFilter(Drawable icon,
+            AccountWithDataSet account) {
+        return new ContactListFilter(ContactListFilter.FILTER_TYPE_DEVICE_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.
+     */
+    public boolean isContactsFilterType() {
+        return filterType == ContactListFilter.FILTER_TYPE_DEFAULT
+                || filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+                || filterType == ContactListFilter.FILTER_TYPE_CUSTOM;
+    }
+
+    /** Returns the {@link ListEvent.ListType} for the type of this filter. */
+    public int toListType() {
+        switch (filterType) {
+            case FILTER_TYPE_DEFAULT:
+                // Fall through
+            case FILTER_TYPE_ALL_ACCOUNTS:
+                return ListEvent.ListType.ALL_CONTACTS;
+            case FILTER_TYPE_CUSTOM:
+                return ListEvent.ListType.CUSTOM;
+            case FILTER_TYPE_STARRED:
+                return ListEvent.ListType.STARRED;
+            case FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY:
+                return ListEvent.ListType.PHONE_NUMBERS;
+            case FILTER_TYPE_SINGLE_CONTACT:
+                return ListEvent.ListType.SINGLE_CONTACT;
+            case FILTER_TYPE_ACCOUNT:
+                return ListEvent.ListType.ACCOUNT;
+            case FILTER_TYPE_GROUP_MEMBERS:
+                return ListEvent.ListType.GROUP;
+            case FILTER_TYPE_DEVICE_CONTACTS:
+                return ListEvent.ListType.DEVICE;
+        }
+        return ListEvent.ListType.UNKNOWN_LIST;
+    }
+
+
+    /**
+     * Returns true if this filter is based on data and may become invalid over time.
+     */
+    public boolean isValidationRequired() {
+        return filterType == FILTER_TYPE_ACCOUNT;
+    }
+
+    @Override
+    public String toString() {
+        switch (filterType) {
+            case FILTER_TYPE_DEFAULT:
+                return "default";
+            case FILTER_TYPE_ALL_ACCOUNTS:
+                return "all_accounts";
+            case FILTER_TYPE_CUSTOM:
+                return "custom";
+            case FILTER_TYPE_STARRED:
+                return "starred";
+            case FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY:
+                return "with_phones";
+            case FILTER_TYPE_SINGLE_CONTACT:
+                return "single";
+            case FILTER_TYPE_ACCOUNT:
+                return "account: " + accountType + (dataSet != null ? "/" + dataSet : "")
+                        + " " + accountName;
+            case FILTER_TYPE_GROUP_MEMBERS:
+                return "group_members";
+            case FILTER_TYPE_DEVICE_CONTACTS:
+                return "device_contacts";
+        }
+        return super.toString();
+    }
+
+    @Override
+    public int compareTo(ContactListFilter another) {
+        int res = accountName.compareTo(another.accountName);
+        if (res != 0) {
+            return res;
+        }
+
+        res = accountType.compareTo(another.accountType);
+        if (res != 0) {
+            return res;
+        }
+
+        return filterType - another.filterType;
+    }
+
+    @Override
+    public int hashCode() {
+        int code = filterType;
+        if (accountType != null) {
+            code = code * 31 + accountType.hashCode();
+        }
+        if (accountName != null) {
+            code = code * 31 + accountName.hashCode();
+        }
+        if (dataSet != null) {
+            code = code * 31 + dataSet.hashCode();
+        }
+        return code;
+    }
+
+    @Override
+    public boolean equals(Object other) {
+        if (this == other) {
+            return true;
+        }
+
+        if (!(other instanceof ContactListFilter)) {
+            return false;
+        }
+
+        ContactListFilter otherFilter = (ContactListFilter) other;
+        if (filterType != otherFilter.filterType
+                || !TextUtils.equals(accountName, otherFilter.accountName)
+                || !TextUtils.equals(accountType, otherFilter.accountType)
+                || !TextUtils.equals(dataSet, otherFilter.dataSet)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Store the given {@link ContactListFilter} to preferences. If the requested filter is
+     * of type {@link #FILTER_TYPE_SINGLE_CONTACT} then do not save it to preferences because
+     * it is a temporary state.
+     */
+    public static void storeToPreferences(SharedPreferences prefs, ContactListFilter filter) {
+        if (filter != null && filter.filterType == FILTER_TYPE_SINGLE_CONTACT) {
+            return;
+        }
+        prefs.edit()
+            .putInt(KEY_FILTER_TYPE, filter == null ? FILTER_TYPE_DEFAULT : filter.filterType)
+            .putString(KEY_ACCOUNT_NAME, filter == null ? null : filter.accountName)
+            .putString(KEY_ACCOUNT_TYPE, filter == null ? null : filter.accountType)
+            .putString(KEY_DATA_SET, filter == null ? null : filter.dataSet)
+            .apply();
+    }
+
+    /**
+     * Try to obtain ContactListFilter object saved in SharedPreference.
+     * If there's no info there, return ALL filter instead.
+     */
+    public static ContactListFilter restoreDefaultPreferences(SharedPreferences prefs) {
+        ContactListFilter filter = restoreFromPreferences(prefs);
+        if (filter == null) {
+            filter = ContactListFilter.createFilterWithType(FILTER_TYPE_ALL_ACCOUNTS);
+        }
+        // "Group" filter is obsolete and thus is not exposed anymore. The "single contact mode"
+        // should also not be stored in preferences anymore since it is a temporary state.
+        if (filter.filterType == FILTER_TYPE_GROUP ||
+                filter.filterType == FILTER_TYPE_SINGLE_CONTACT) {
+            filter = ContactListFilter.createFilterWithType(FILTER_TYPE_ALL_ACCOUNTS);
+        }
+        return filter;
+    }
+
+    private static ContactListFilter restoreFromPreferences(SharedPreferences prefs) {
+        int filterType = prefs.getInt(KEY_FILTER_TYPE, FILTER_TYPE_DEFAULT);
+        if (filterType == FILTER_TYPE_DEFAULT) {
+            return null;
+        }
+
+        String accountName = prefs.getString(KEY_ACCOUNT_NAME, null);
+        String accountType = prefs.getString(KEY_ACCOUNT_TYPE, null);
+        String dataSet = prefs.getString(KEY_DATA_SET, null);
+        return new ContactListFilter(filterType, accountType, accountName, dataSet, null);
+    }
+
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(filterType);
+        dest.writeString(accountName);
+        dest.writeString(accountType);
+        dest.writeString(dataSet);
+    }
+
+    public static final Parcelable.Creator<ContactListFilter> CREATOR =
+            new Parcelable.Creator<ContactListFilter>() {
+        @Override
+        public ContactListFilter createFromParcel(Parcel source) {
+            int filterType = source.readInt();
+            String accountName = source.readString();
+            String accountType = source.readString();
+            String dataSet = source.readString();
+            return new ContactListFilter(filterType, accountType, accountName, dataSet, null);
+        }
+
+        @Override
+        public ContactListFilter[] newArray(int size) {
+            return new ContactListFilter[size];
+        }
+    };
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    /**
+     * Returns a string that can be used as a stable persistent identifier for this filter.
+     */
+    public String getId() {
+        if (mId == null) {
+            StringBuilder sb = new StringBuilder();
+            sb.append(filterType);
+            if (accountType != null) {
+                sb.append('-').append(accountType);
+            }
+            if (dataSet != null) {
+                sb.append('/').append(dataSet);
+            }
+            if (accountName != null) {
+                sb.append('-').append(accountName.replace('-', '_'));
+            }
+            mId = sb.toString();
+        }
+        return mId;
+    }
+
+    /**
+     * Adds the account query parameters to the given {@code uriBuilder}.
+     *
+     * @throws IllegalStateException if the filter type is not {@link #FILTER_TYPE_ACCOUNT} or
+     * {@link #FILTER_TYPE_GROUP_MEMBERS}.
+     */
+    public Uri.Builder addAccountQueryParameterToUrl(Uri.Builder uriBuilder) {
+        if (filterType != FILTER_TYPE_ACCOUNT
+                && filterType != FILTER_TYPE_GROUP_MEMBERS) {
+            throw new IllegalStateException(
+                    "filterType must be FILTER_TYPE_ACCOUNT or FILER_TYPE_GROUP_MEMBERS");
+        }
+        // null account names are not valid, see ContactsProvider2#appendAccountFromParameter
+        if (accountName != null) {
+            uriBuilder.appendQueryParameter(RawContacts.ACCOUNT_NAME, accountName);
+            uriBuilder.appendQueryParameter(RawContacts.ACCOUNT_TYPE, accountType);
+        }
+        if (dataSet != null) {
+            uriBuilder.appendQueryParameter(RawContacts.DATA_SET, dataSet);
+        }
+        return uriBuilder;
+    }
+
+    public AccountWithDataSet toAccountWithDataSet() {
+        if (filterType == FILTER_TYPE_ACCOUNT || filterType == FILTER_TYPE_DEVICE_CONTACTS) {
+            return new AccountWithDataSet(accountName, accountType, dataSet);
+        } else {
+            throw new IllegalStateException("Cannot create Account from filter type " +
+                    filterTypeToString(filterType));
+        }
+    }
+
+    public String toDebugString() {
+        final StringBuilder builder = new StringBuilder();
+        builder.append("[filter type: " + filterType + " (" + filterTypeToString(filterType) + ")");
+        if (filterType == FILTER_TYPE_ACCOUNT) {
+            builder.append(", accountType: " + accountType)
+                    .append(", accountName: " + accountName)
+                    .append(", dataSet: " + dataSet);
+        }
+        builder.append(", icon: " + icon + "]");
+        return builder.toString();
+    }
+
+    public static final String filterTypeToString(int filterType) {
+        switch (filterType) {
+            case FILTER_TYPE_DEFAULT:
+                return "FILTER_TYPE_DEFAULT";
+            case FILTER_TYPE_ALL_ACCOUNTS:
+                return "FILTER_TYPE_ALL_ACCOUNTS";
+            case FILTER_TYPE_CUSTOM:
+                return "FILTER_TYPE_CUSTOM";
+            case FILTER_TYPE_STARRED:
+                return "FILTER_TYPE_STARRED";
+            case FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY:
+                return "FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY";
+            case FILTER_TYPE_SINGLE_CONTACT:
+                return "FILTER_TYPE_SINGLE_CONTACT";
+            case FILTER_TYPE_ACCOUNT:
+                return "FILTER_TYPE_ACCOUNT";
+            case FILTER_TYPE_GROUP_MEMBERS:
+                return "FILTER_TYPE_GROUP_MEMBERS";
+            case FILTER_TYPE_DEVICE_CONTACTS:
+                return "FILTER_TYPE_DEVICE_CONTACTS";
+            default:
+                return "(unknown)";
+        }
+    }
+
+    public boolean isSyncable() {
+        return isGoogleAccountType() && filterType == FILTER_TYPE_ACCOUNT;
+    }
+
+    /**
+     * Returns true if this ContactListFilter contains at least one Google account.
+     * (see {@link #isGoogleAccountType)
+     */
+    public boolean isSyncable(List<AccountWithDataSet> accounts) {
+        if (isSyncable()) {
+            return true;
+        }
+        // Since we don't know which group is selected until the actual contacts loading, we
+        // consider a custom filter syncable as long as there is a Google account on the device,
+        // and don't check if there is any group that belongs to a Google account is selected.
+        if (filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+                || filterType == ContactListFilter.FILTER_TYPE_CUSTOM
+                || filterType == ContactListFilter.FILTER_TYPE_DEFAULT) {
+            if (accounts != null && accounts.size() > 0) {
+                // If we're showing all contacts and there is any Google account on the device then
+                // we're syncable.
+                for (AccountWithDataSet account : accounts) {
+                    if (GoogleAccountType.ACCOUNT_TYPE.equals(account.type)
+                            && account.dataSet == null) {
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    public boolean shouldShowSyncState() {
+        return (isGoogleAccountType() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT)
+                || filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+                || filterType == ContactListFilter.FILTER_TYPE_CUSTOM
+                || filterType == ContactListFilter.FILTER_TYPE_DEFAULT;
+    }
+
+    /**
+     * Returns the Google accounts (see {@link #isGoogleAccountType) for this ContactListFilter.
+     */
+    public List<Account> getSyncableAccounts(List<AccountWithDataSet> accounts) {
+        final List<Account> syncableAccounts = new ArrayList<>();
+
+        if (isGoogleAccountType() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
+            syncableAccounts.add(new Account(accountName, accountType));
+        } else if (filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+                || filterType == ContactListFilter.FILTER_TYPE_CUSTOM
+                || filterType == ContactListFilter.FILTER_TYPE_DEFAULT) {
+            if (accounts != null && accounts.size() > 0) {
+                for (AccountWithDataSet account : accounts) {
+                    if (GoogleAccountType.ACCOUNT_TYPE.equals(account.type)
+                            && account.dataSet == null) {
+                        syncableAccounts.add(new Account(account.name, account.type));
+                    }
+                }
+            }
+        }
+        return syncableAccounts;
+    }
+
+    /**
+     * Returns true if this ContactListFilter is Google account type. (i.e. where
+     * accountType = "com.google" and dataSet = null)
+     */
+    public boolean isGoogleAccountType() {
+        return GoogleAccountType.ACCOUNT_TYPE.equals(accountType) && dataSet == null;
+    }
+}
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
new file mode 100644
index 0000000..df81832
--- /dev/null
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+
+import com.android.contacts.logging.ListEvent;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Manages {@link ContactListFilter}. All methods must be called from UI thread.
+ */
+public abstract class ContactListFilterController {
+
+    // singleton to cache the filter controller
+    private static ContactListFilterControllerImpl sFilterController = null;
+
+    public interface ContactListFilterListener {
+        void onContactListFilterChanged();
+    }
+
+    public static ContactListFilterController getInstance(Context context) {
+        // We may need to synchronize this in the future if background task will call this.
+        if (sFilterController == null) {
+            sFilterController = new ContactListFilterControllerImpl(context);
+        }
+        return sFilterController;
+    }
+
+    public abstract void addListener(ContactListFilterListener listener);
+
+    public abstract void removeListener(ContactListFilterListener listener);
+
+    /**
+     * Return the currently-active filter.
+     */
+    public abstract ContactListFilter getFilter();
+
+    public abstract int getFilterListType();
+
+    /** Whether the persisted filter is a custom filter. */
+    public abstract boolean isCustomFilterPersisted();
+
+    /** Returns the persisted filter. */
+    public abstract ContactListFilter getPersistedFilter();
+
+    /**
+     * @param filter the filter
+     * @param persistent True when the given filter should be saved soon. False when the filter
+     * should not be saved. The latter case may happen when some Intent requires a certain type of
+     * UI (e.g. single contact) temporarily.
+     */
+    public abstract void setContactListFilter(ContactListFilter filter, boolean persistent);
+
+    public abstract void selectCustomFilter();
+
+    /**
+     * Checks if the current filter is valid and reset the filter if not. It may happen when
+     * an account is removed while the filter points to the account with
+     * {@link ContactListFilter#FILTER_TYPE_ACCOUNT} type, for example. It may also happen if
+     * the current filter is {@link ContactListFilter#FILTER_TYPE_SINGLE_CONTACT}, in
+     * which case, we should switch to the last saved filter in {@link SharedPreferences}.
+     */
+    public abstract void checkFilterValidity(boolean notifyListeners);
+}
+
+/**
+ * Stores the {@link ContactListFilter} selected by the user and saves it to
+ * {@link SharedPreferences} if necessary.
+ */
+class ContactListFilterControllerImpl extends ContactListFilterController {
+    private final Context mContext;
+    private final List<ContactListFilterListener> mListeners =
+            new ArrayList<ContactListFilterListener>();
+    private ContactListFilter mFilter;
+
+    public ContactListFilterControllerImpl(Context context) {
+        mContext = context.getApplicationContext();
+        mFilter = ContactListFilter.restoreDefaultPreferences(getSharedPreferences());
+        checkFilterValidity(true /* notify listeners */);
+    }
+
+    @Override
+    public void addListener(ContactListFilterListener listener) {
+        mListeners.add(listener);
+    }
+
+    @Override
+    public void removeListener(ContactListFilterListener listener) {
+        mListeners.remove(listener);
+    }
+
+    @Override
+    public ContactListFilter getFilter() {
+        return mFilter;
+    }
+
+    @Override
+    public int getFilterListType() {
+        return mFilter == null ? ListEvent.ListType.UNKNOWN_LIST : mFilter.toListType();
+    }
+
+    @Override
+    public boolean isCustomFilterPersisted() {
+        final ContactListFilter filter = getPersistedFilter();
+        return filter != null && filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM;
+    }
+
+    @Override
+    public ContactListFilter getPersistedFilter() {
+        return ContactListFilter.restoreDefaultPreferences(getSharedPreferences());
+    }
+
+    private SharedPreferences getSharedPreferences() {
+        return PreferenceManager.getDefaultSharedPreferences(mContext);
+    }
+
+    @Override
+    public void setContactListFilter(ContactListFilter filter, boolean persistent) {
+        setContactListFilter(filter, persistent, /* notifyListeners */ true);
+    }
+
+    private void setContactListFilter(ContactListFilter filter, boolean persistent,
+            boolean notifyListeners) {
+        if (!filter.equals(mFilter)) {
+            mFilter = filter;
+            if (persistent) {
+                ContactListFilter.storeToPreferences(getSharedPreferences(), mFilter);
+            }
+            if (notifyListeners && !mListeners.isEmpty()) {
+                notifyContactListFilterChanged();
+            }
+        }
+    }
+
+    @Override
+    public void selectCustomFilter() {
+        setContactListFilter(ContactListFilter.createFilterWithType(
+                ContactListFilter.FILTER_TYPE_CUSTOM), /* persistent */ true);
+    }
+
+    private void notifyContactListFilterChanged() {
+        for (ContactListFilterListener listener : mListeners) {
+            listener.onContactListFilterChanged();
+        }
+    }
+
+    @Override
+    public void checkFilterValidity(boolean notifyListeners) {
+        if (mFilter == null) {
+            return;
+        }
+
+        switch (mFilter.filterType) {
+            case ContactListFilter.FILTER_TYPE_SINGLE_CONTACT:
+                setContactListFilter(
+                        ContactListFilter.restoreDefaultPreferences(getSharedPreferences()),
+                        false, notifyListeners);
+                break;
+            case ContactListFilter.FILTER_TYPE_ACCOUNT:
+                if (!filterAccountExists()) {
+                    // The current account filter points to invalid account. Use "all" filter
+                    // instead.
+                    setContactListFilter(ContactListFilter.createFilterWithType(
+                            ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS), true, notifyListeners);
+                }
+                break;
+        }
+    }
+
+    /**
+     * @return true if the Account for the current filter exists.
+     */
+    private boolean filterAccountExists() {
+        final AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(mContext);
+        final AccountWithDataSet filterAccount = new AccountWithDataSet(
+                mFilter.accountName, mFilter.accountType, mFilter.dataSet);
+        return accountTypeManager.exists(filterAccount);
+    }
+}
diff --git a/src/com/android/contacts/list/ContactListFilterView.java b/src/com/android/contacts/list/ContactListFilterView.java
new file mode 100644
index 0000000..d4b83c6
--- /dev/null
+++ b/src/com/android/contacts/list/ContactListFilterView.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2012 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.list;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RadioButton;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+
+/**
+ * Contact list filter parameters.
+ */
+public class ContactListFilterView extends LinearLayout {
+
+    private static final String TAG = ContactListFilterView.class.getSimpleName();
+
+    private ImageView mIcon;
+    private TextView mAccountType;
+    private TextView mAccountUserName;
+    private RadioButton mRadioButton;
+    private ContactListFilter mFilter;
+    private boolean mSingleAccount;
+
+    public ContactListFilterView(Context context) {
+        super(context);
+    }
+
+    public ContactListFilterView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public void setContactListFilter(ContactListFilter filter) {
+        mFilter = filter;
+    }
+
+    public ContactListFilter getContactListFilter() {
+        return mFilter;
+    }
+
+    public void setSingleAccount(boolean flag) {
+        this.mSingleAccount = flag;
+    }
+
+    @Override
+    public void setActivated(boolean activated) {
+        super.setActivated(activated);
+        if (mRadioButton != null) {
+            mRadioButton.setChecked(activated);
+        } else {
+            // We're guarding against null-pointer exceptions,
+            // but otherwise this code is not expected to work
+            // properly if the button hasn't been initialized.
+            Log.wtf(TAG, "radio-button cannot be activated because it is null");
+        }
+        setContentDescription(generateContentDescription());
+    }
+
+    public boolean isChecked() {
+        return mRadioButton.isChecked();
+    }
+
+    public void bindView(AccountTypeManager accountTypes) {
+        if (mAccountType == null) {
+            mIcon = (ImageView) findViewById(R.id.icon);
+            mAccountType = (TextView) findViewById(R.id.accountType);
+            mAccountUserName = (TextView) findViewById(R.id.accountUserName);
+            mRadioButton = (RadioButton) findViewById(R.id.radioButton);
+            mRadioButton.setChecked(isActivated());
+        }
+
+        if (mFilter == null) {
+            mAccountType.setText(R.string.contactsList);
+            return;
+        }
+
+        mAccountUserName.setVisibility(View.GONE);
+        switch (mFilter.filterType) {
+            case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS: {
+                bindView(0, R.string.list_filter_all_accounts);
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_STARRED: {
+                bindView(R.drawable.quantum_ic_star_vd_theme_24, R.string.list_filter_all_starred);
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_CUSTOM: {
+                bindView(0, R.string.list_filter_customize);
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY: {
+                bindView(0, R.string.list_filter_phones);
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_SINGLE_CONTACT: {
+                bindView(0, R.string.list_filter_single);
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_ACCOUNT: {
+                mAccountUserName.setVisibility(View.VISIBLE);
+                mIcon.setVisibility(View.VISIBLE);
+                if (mFilter.icon != null) {
+                    mIcon.setImageDrawable(mFilter.icon);
+                } else {
+                    mIcon.setImageResource(R.drawable.unknown_source);
+                }
+                final AccountType accountType =
+                        accountTypes.getAccountType(mFilter.accountType, mFilter.dataSet);
+                mAccountUserName.setText(mFilter.accountName);
+                mAccountType.setText(accountType.getDisplayLabel(getContext()));
+                break;
+            }
+        }
+        setContentDescription(generateContentDescription());
+    }
+
+    private void bindView(int iconResource, int textResource) {
+        if (iconResource != 0) {
+            mIcon.setVisibility(View.VISIBLE);
+            mIcon.setImageResource(iconResource);
+        } else {
+            mIcon.setVisibility(View.GONE);
+        }
+
+        mAccountType.setText(textResource);
+    }
+
+    String generateContentDescription() {
+        final StringBuilder sb = new StringBuilder();
+        if (!TextUtils.isEmpty(mAccountType.getText())) {
+            sb.append(mAccountType.getText());
+        }
+        if (!TextUtils.isEmpty(mAccountUserName.getText())) {
+            if (sb.length() > 0) {
+                sb.append(" ");
+            }
+            sb.append(mAccountUserName.getText());
+        }
+        return getContext().getString(isActivated() ? R.string.account_filter_view_checked :
+                R.string.account_filter_view_not_checked, sb.toString());
+    }
+}
diff --git a/src/com/android/contacts/list/ContactListItemView.java b/src/com/android/contacts/list/ContactListItemView.java
new file mode 100644
index 0000000..4f42a0f
--- /dev/null
+++ b/src/com/android/contacts/list/ContactListItemView.java
@@ -0,0 +1,1896 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
+import android.database.CharArrayBuffer;
+import android.database.Cursor;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Rect;
+import android.graphics.Typeface;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.SearchSnippets;
+import android.support.v4.content.ContextCompat;
+import android.support.v4.content.res.ResourcesCompat;
+import android.support.v4.graphics.drawable.DrawableCompat;
+import android.support.v7.widget.AppCompatCheckBox;
+import android.support.v7.widget.AppCompatImageButton;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.TextUtils.TruncateAt;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AbsListView.SelectionBoundsAdjuster;
+import android.widget.ImageView;
+import android.widget.ImageView.ScaleType;
+import android.widget.QuickContactBadge;
+import android.widget.TextView;
+
+import com.android.contacts.ContactPresenceIconUtil;
+import com.android.contacts.ContactStatusUtil;
+import com.android.contacts.R;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.format.TextHighlighter;
+import com.android.contacts.util.ContactDisplayUtils;
+import com.android.contacts.util.SearchUtil;
+import com.android.contacts.util.ViewUtil;
+
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * A custom view for an item in the contact list.
+ * The view contains the contact's photo, a set of text views (for name, status, etc...) and
+ * icons for presence and call.
+ * The view uses no XML file for layout and all the measurements and layouts are done
+ * in the onMeasure and onLayout methods.
+ *
+ * The layout puts the contact's photo on the right side of the view, the call icon (if present)
+ * to the left of the photo, the text lines are aligned to the left and the presence icon (if
+ * present) is set to the left of the status line.
+ *
+ * The layout also supports a header (used as a header of a group of contacts) that is above the
+ * contact's data and a divider between contact view.
+ */
+
+public class ContactListItemView extends ViewGroup
+        implements SelectionBoundsAdjuster {
+
+    private static final String TAG = "ContactListItemView";
+
+    // Style values for layout and appearance
+    // The initialized values are defaults if none is provided through xml.
+    private int mPreferredHeight = 0;
+    private int mGapBetweenImageAndText = 0;
+    private int mGapBetweenIndexerAndImage = 0;
+    private int mGapBetweenLabelAndData = 0;
+    private int mPresenceIconMargin = 4;
+    private int mPresenceIconSize = 16;
+    private int mTextIndent = 0;
+    private int mTextOffsetTop;
+    private int mAvatarOffsetTop;
+    private int mNameTextViewTextSize;
+    private int mHeaderWidth;
+    private Drawable mActivatedBackgroundDrawable;
+    private int mVideoCallIconSize = 32;
+    private int mVideoCallIconMargin = 16;
+    private int mGapFromScrollBar = 20;
+
+    // Set in onLayout. Represent left and right position of the View on the screen.
+    private int mLeftOffset;
+    private int mRightOffset;
+
+    /**
+     * Used with {@link #mLabelView}, specifying the width ratio between label and data.
+     */
+    private int mLabelViewWidthWeight = 3;
+    /**
+     * Used with {@link #mDataView}, specifying the width ratio between label and data.
+     */
+    private int mDataViewWidthWeight = 5;
+
+    protected static class HighlightSequence {
+        private final int start;
+        private final int end;
+
+        HighlightSequence(int start, int end) {
+            this.start = start;
+            this.end = end;
+        }
+    }
+
+    private ArrayList<HighlightSequence> mNameHighlightSequence;
+    private ArrayList<HighlightSequence> mNumberHighlightSequence;
+
+    // Highlighting prefix for names.
+    private String mHighlightedPrefix;
+
+    /**
+     * Used to notify listeners when a video call icon is clicked.
+     */
+    private PhoneNumberListAdapter.Listener mPhoneNumberListAdapterListener;
+
+    /**
+     * Indicates whether to show the "video call" icon, used to initiate a video call.
+     */
+    private boolean mShowVideoCallIcon = false;
+
+    /**
+     * Indicates whether the view should leave room for the "video call" icon.
+     */
+    private boolean mSupportVideoCallIcon = false;
+
+    /**
+     * Where to put contact photo. This affects the other Views' layout or look-and-feel.
+     *
+     * TODO: replace enum with int constants
+     */
+    public enum PhotoPosition {
+        LEFT,
+        RIGHT
+    }
+
+    static public final PhotoPosition getDefaultPhotoPosition(boolean opposite) {
+        final Locale locale = Locale.getDefault();
+        final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale);
+        switch (layoutDirection) {
+            case View.LAYOUT_DIRECTION_RTL:
+                return (opposite ? PhotoPosition.LEFT : PhotoPosition.RIGHT);
+            case View.LAYOUT_DIRECTION_LTR:
+            default:
+                return (opposite ? PhotoPosition.RIGHT : PhotoPosition.LEFT);
+        }
+    }
+
+    private PhotoPosition mPhotoPosition = getDefaultPhotoPosition(false /* normal/non opposite */);
+
+    // Header layout data
+    private View mHeaderView;
+    private boolean mIsSectionHeaderEnabled;
+
+    // The views inside the contact view
+    private boolean mQuickContactEnabled = true;
+    private QuickContactBadge mQuickContact;
+    private ImageView mPhotoView;
+    private TextView mNameTextView;
+    private TextView mPhoneticNameTextView;
+    private TextView mLabelView;
+    private TextView mDataView;
+    private TextView mSnippetView;
+    private TextView mStatusView;
+    private ImageView mPresenceIcon;
+    private AppCompatCheckBox mCheckBox;
+    private AppCompatImageButton mDeleteImageButton;
+    private ImageView mVideoCallIcon;
+    private ImageView mWorkProfileIcon;
+
+    private ColorStateList mSecondaryTextColor;
+
+    private int mDefaultPhotoViewSize = 0;
+    /**
+     * Can be effective even when {@link #mPhotoView} is null, as we want to have horizontal padding
+     * to align other data in this View.
+     */
+    private int mPhotoViewWidth;
+    /**
+     * Can be effective even when {@link #mPhotoView} is null, as we want to have vertical padding.
+     */
+    private int mPhotoViewHeight;
+
+    /**
+     * Only effective when {@link #mPhotoView} is null.
+     * When true all the Views on the right side of the photo should have horizontal padding on
+     * those left assuming there is a photo.
+     */
+    private boolean mKeepHorizontalPaddingForPhotoView;
+    /**
+     * Only effective when {@link #mPhotoView} is null.
+     */
+    private boolean mKeepVerticalPaddingForPhotoView;
+
+    /**
+     * True when {@link #mPhotoViewWidth} and {@link #mPhotoViewHeight} are ready for being used.
+     * False indicates those values should be updated before being used in position calculation.
+     */
+    private boolean mPhotoViewWidthAndHeightAreReady = false;
+
+    private int mNameTextViewHeight;
+    private int mNameTextViewTextColor = Color.BLACK;
+    private int mPhoneticNameTextViewHeight;
+    private int mLabelViewHeight;
+    private int mDataViewHeight;
+    private int mSnippetTextViewHeight;
+    private int mStatusTextViewHeight;
+    private int mCheckBoxHeight;
+    private int mCheckBoxWidth;
+    private int mDeleteImageButtonHeight;
+    private int mDeleteImageButtonWidth;
+
+    // Holds Math.max(mLabelTextViewHeight, mDataViewHeight), assuming Label and Data share the
+    // same row.
+    private int mLabelAndDataViewMaxHeight;
+
+    // TODO: some TextView fields are using CharArrayBuffer while some are not. Determine which is
+    // more efficient for each case or in general, and simplify the whole implementation.
+    // Note: if we're sure MARQUEE will be used every time, there's no reason to use
+    // CharArrayBuffer, since MARQUEE requires Span and thus we need to copy characters inside the
+    // buffer to Spannable once, while CharArrayBuffer is for directly applying char array to
+    // TextView without any modification.
+    private final CharArrayBuffer mDataBuffer = new CharArrayBuffer(128);
+    private final CharArrayBuffer mPhoneticNameBuffer = new CharArrayBuffer(128);
+
+    private boolean mActivatedStateSupported;
+    private boolean mAdjustSelectionBoundsEnabled = true;
+
+    private Rect mBoundsWithoutHeader = new Rect();
+
+    /** A helper used to highlight a prefix in a text field. */
+    private final TextHighlighter mTextHighlighter;
+    private CharSequence mUnknownNameText;
+    private int mPosition;
+
+    public ContactListItemView(Context context) {
+        super(context);
+
+        mTextHighlighter = new TextHighlighter(Typeface.BOLD);
+        mNameHighlightSequence = new ArrayList<HighlightSequence>();
+        mNumberHighlightSequence = new ArrayList<HighlightSequence>();
+    }
+
+    public ContactListItemView(Context context, AttributeSet attrs, boolean supportVideoCallIcon) {
+        this(context, attrs);
+
+        mSupportVideoCallIcon = supportVideoCallIcon;
+    }
+
+    public ContactListItemView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        TypedArray a;
+
+        if (R.styleable.ContactListItemView != null) {
+            // Read all style values
+            a = getContext().obtainStyledAttributes(attrs, R.styleable.ContactListItemView);
+            mPreferredHeight = a.getDimensionPixelSize(
+                    R.styleable.ContactListItemView_list_item_height, mPreferredHeight);
+            mActivatedBackgroundDrawable = a.getDrawable(
+                    R.styleable.ContactListItemView_activated_background);
+
+            mGapBetweenImageAndText = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_gap_between_image_and_text,
+                    mGapBetweenImageAndText);
+            mGapBetweenIndexerAndImage = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_gap_between_indexer_and_image,
+                    mGapBetweenIndexerAndImage);
+            mGapBetweenLabelAndData = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_gap_between_label_and_data,
+                    mGapBetweenLabelAndData);
+            mPresenceIconMargin = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_presence_icon_margin,
+                    mPresenceIconMargin);
+            mPresenceIconSize = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_presence_icon_size,
+                    mPresenceIconSize);
+            mDefaultPhotoViewSize = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_photo_size, mDefaultPhotoViewSize);
+            mTextIndent = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_text_indent, mTextIndent);
+            mTextOffsetTop = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_text_offset_top, mTextOffsetTop);
+            mAvatarOffsetTop = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_avatar_offset_top, mAvatarOffsetTop);
+            mDataViewWidthWeight = a.getInteger(
+                    R.styleable.ContactListItemView_list_item_data_width_weight,
+                    mDataViewWidthWeight);
+            mLabelViewWidthWeight = a.getInteger(
+                    R.styleable.ContactListItemView_list_item_label_width_weight,
+                    mLabelViewWidthWeight);
+            mNameTextViewTextColor = a.getColor(
+                    R.styleable.ContactListItemView_list_item_name_text_color,
+                    mNameTextViewTextColor);
+            mNameTextViewTextSize = (int) a.getDimension(
+                    R.styleable.ContactListItemView_list_item_name_text_size,
+                    (int) getResources().getDimension(R.dimen.contact_browser_list_item_text_size));
+            mVideoCallIconSize = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_video_call_icon_size,
+                    mVideoCallIconSize);
+            mVideoCallIconMargin = a.getDimensionPixelOffset(
+                    R.styleable.ContactListItemView_list_item_video_call_icon_margin,
+                    mVideoCallIconMargin);
+
+
+            setPaddingRelative(
+                    a.getDimensionPixelOffset(
+                            R.styleable.ContactListItemView_list_item_padding_left, 0),
+                    a.getDimensionPixelOffset(
+                            R.styleable.ContactListItemView_list_item_padding_top, 0),
+                    a.getDimensionPixelOffset(
+                            R.styleable.ContactListItemView_list_item_padding_right, 0),
+                    a.getDimensionPixelOffset(
+                            R.styleable.ContactListItemView_list_item_padding_bottom, 0));
+
+            a.recycle();
+        }
+
+        mTextHighlighter = new TextHighlighter(Typeface.BOLD);
+
+        if (R.styleable.Theme != null) {
+            a = getContext().obtainStyledAttributes(R.styleable.Theme);
+            mSecondaryTextColor = a.getColorStateList(R.styleable.Theme_android_textColorSecondary);
+            a.recycle();
+        }
+
+        mHeaderWidth =
+                getResources().getDimensionPixelSize(R.dimen.contact_list_section_header_width);
+
+        if (mActivatedBackgroundDrawable != null) {
+            mActivatedBackgroundDrawable.setCallback(this);
+        }
+
+        mNameHighlightSequence = new ArrayList<HighlightSequence>();
+        mNumberHighlightSequence = new ArrayList<HighlightSequence>();
+
+        setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
+    }
+
+    public void setUnknownNameText(CharSequence unknownNameText) {
+        mUnknownNameText = unknownNameText;
+    }
+
+    public void setQuickContactEnabled(boolean flag) {
+        mQuickContactEnabled = flag;
+    }
+
+    /**
+     * Sets whether the video calling icon is shown.  For the video calling icon to be shown,
+     * {@link #mSupportVideoCallIcon} must be {@code true}.
+     *
+     * @param showVideoCallIcon {@code true} if the video calling icon is shown, {@code false}
+     *      otherwise.
+     * @param listener Listener to notify when the video calling icon is clicked.
+     * @param position The position in the adapater of the video calling icon.
+     */
+    public void setShowVideoCallIcon(boolean showVideoCallIcon,
+            PhoneNumberListAdapter.Listener listener, int position) {
+        mShowVideoCallIcon = showVideoCallIcon;
+        mPhoneNumberListAdapterListener = listener;
+        mPosition = position;
+
+        if (mShowVideoCallIcon) {
+            if (mVideoCallIcon == null) {
+                mVideoCallIcon = new ImageView(getContext());
+                addView(mVideoCallIcon);
+            }
+            mVideoCallIcon.setContentDescription(getContext().getString(
+                    R.string.description_search_video_call));
+            mVideoCallIcon.setImageResource(R.drawable.quantum_ic_videocam_vd_theme_24);
+            mVideoCallIcon.setScaleType(ScaleType.CENTER);
+            mVideoCallIcon.setVisibility(View.VISIBLE);
+            mVideoCallIcon.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    // Inform the adapter that the video calling icon was clicked.
+                    if (mPhoneNumberListAdapterListener != null) {
+                        mPhoneNumberListAdapterListener.onVideoCallIconClicked(mPosition);
+                    }
+                }
+            });
+        } else {
+            if (mVideoCallIcon != null) {
+                mVideoCallIcon.setVisibility(View.GONE);
+            }
+        }
+    }
+
+    /**
+     * Sets whether the view supports a video calling icon.  This is independent of whether the view
+     * is actually showing an icon.  Support for the video calling icon ensures that the layout
+     * leaves space for the video icon, should it be shown.
+     *
+     * @param supportVideoCallIcon {@code true} if the video call icon is supported, {@code false}
+     *      otherwise.
+     */
+    public void setSupportVideoCallIcon(boolean supportVideoCallIcon) {
+        mSupportVideoCallIcon = supportVideoCallIcon;
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        // We will match parent's width and wrap content vertically, but make sure
+        // height is no less than listPreferredItemHeight.
+        final int specWidth = resolveSize(0, widthMeasureSpec);
+        final int preferredHeight = mPreferredHeight;
+
+        mNameTextViewHeight = 0;
+        mPhoneticNameTextViewHeight = 0;
+        mLabelViewHeight = 0;
+        mDataViewHeight = 0;
+        mLabelAndDataViewMaxHeight = 0;
+        mSnippetTextViewHeight = 0;
+        mStatusTextViewHeight = 0;
+        mCheckBoxWidth = 0;
+        mCheckBoxHeight = 0;
+        mDeleteImageButtonWidth = 0;
+        mDeleteImageButtonHeight = 0;
+
+        ensurePhotoViewSize();
+
+        // Width each TextView is able to use.
+        int effectiveWidth;
+        // All the other Views will honor the photo, so available width for them may be shrunk.
+        if (mPhotoViewWidth > 0 || mKeepHorizontalPaddingForPhotoView) {
+            effectiveWidth = specWidth - getPaddingLeft() - getPaddingRight()
+                    - (mPhotoViewWidth + mGapBetweenImageAndText + mGapBetweenIndexerAndImage);
+        } else {
+            effectiveWidth = specWidth - getPaddingLeft() - getPaddingRight();
+        }
+
+        if (mIsSectionHeaderEnabled) {
+            effectiveWidth -= mHeaderWidth;
+        }
+
+        if (mSupportVideoCallIcon) {
+            effectiveWidth -= (mVideoCallIconSize + mVideoCallIconMargin);
+        }
+
+        // Go over all visible text views and measure actual width of each of them.
+        // Also calculate their heights to get the total height for this entire view.
+
+        if (isVisible(mCheckBox)) {
+            mCheckBox.measure(
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mCheckBoxWidth = mCheckBox.getMeasuredWidth();
+            mCheckBoxHeight = mCheckBox.getMeasuredHeight();
+            effectiveWidth -= mCheckBoxWidth + mGapBetweenImageAndText;
+        }
+
+        if (isVisible(mDeleteImageButton)) {
+            mDeleteImageButton.measure(
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mDeleteImageButtonWidth = mDeleteImageButton.getMeasuredWidth();
+            mDeleteImageButtonHeight = mDeleteImageButton.getMeasuredHeight();
+            effectiveWidth -= mDeleteImageButtonWidth + mGapBetweenImageAndText;
+        }
+
+        if (isVisible(mNameTextView)) {
+            // Calculate width for name text - this parallels similar measurement in onLayout.
+            int nameTextWidth = effectiveWidth;
+            if (mPhotoPosition != PhotoPosition.LEFT) {
+                nameTextWidth -= mTextIndent;
+            }
+            mNameTextView.measure(
+                    MeasureSpec.makeMeasureSpec(nameTextWidth, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mNameTextViewHeight = mNameTextView.getMeasuredHeight();
+        }
+
+        if (isVisible(mPhoneticNameTextView)) {
+            mPhoneticNameTextView.measure(
+                    MeasureSpec.makeMeasureSpec(effectiveWidth, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mPhoneticNameTextViewHeight = mPhoneticNameTextView.getMeasuredHeight();
+        }
+
+        // If both data (phone number/email address) and label (type like "MOBILE") are quite long,
+        // we should ellipsize both using appropriate ratio.
+        final int dataWidth;
+        final int labelWidth;
+        if (isVisible(mDataView)) {
+            if (isVisible(mLabelView)) {
+                final int totalWidth = effectiveWidth - mGapBetweenLabelAndData;
+                dataWidth = ((totalWidth * mDataViewWidthWeight)
+                        / (mDataViewWidthWeight + mLabelViewWidthWeight));
+                labelWidth = ((totalWidth * mLabelViewWidthWeight) /
+                        (mDataViewWidthWeight + mLabelViewWidthWeight));
+            } else {
+                dataWidth = effectiveWidth;
+                labelWidth = 0;
+            }
+        } else {
+            dataWidth = 0;
+            if (isVisible(mLabelView)) {
+                labelWidth = effectiveWidth;
+            } else {
+                labelWidth = 0;
+            }
+        }
+
+        if (isVisible(mDataView)) {
+            mDataView.measure(MeasureSpec.makeMeasureSpec(dataWidth, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mDataViewHeight = mDataView.getMeasuredHeight();
+        }
+
+        if (isVisible(mLabelView)) {
+            mLabelView.measure(MeasureSpec.makeMeasureSpec(labelWidth, MeasureSpec.AT_MOST),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mLabelViewHeight = mLabelView.getMeasuredHeight();
+        }
+        mLabelAndDataViewMaxHeight = Math.max(mLabelViewHeight, mDataViewHeight);
+
+        if (isVisible(mSnippetView)) {
+            mSnippetView.measure(
+                    MeasureSpec.makeMeasureSpec(effectiveWidth, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mSnippetTextViewHeight = mSnippetView.getMeasuredHeight();
+        }
+
+        // Status view height is the biggest of the text view and the presence icon
+        if (isVisible(mPresenceIcon)) {
+            mPresenceIcon.measure(
+                    MeasureSpec.makeMeasureSpec(mPresenceIconSize, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(mPresenceIconSize, MeasureSpec.EXACTLY));
+            mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight();
+        }
+
+        if (mSupportVideoCallIcon && isVisible(mVideoCallIcon)) {
+            mVideoCallIcon.measure(
+                    MeasureSpec.makeMeasureSpec(mVideoCallIconSize, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(mVideoCallIconSize, MeasureSpec.EXACTLY));
+        }
+
+        if (isVisible(mWorkProfileIcon)) {
+            mWorkProfileIcon.measure(
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mNameTextViewHeight =
+                    Math.max(mNameTextViewHeight, mWorkProfileIcon.getMeasuredHeight());
+        }
+
+        if (isVisible(mStatusView)) {
+            // Presence and status are in a same row, so status will be affected by icon size.
+            final int statusWidth;
+            if (isVisible(mPresenceIcon)) {
+                statusWidth = (effectiveWidth - mPresenceIcon.getMeasuredWidth()
+                        - mPresenceIconMargin);
+            } else {
+                statusWidth = effectiveWidth;
+            }
+            mStatusView.measure(MeasureSpec.makeMeasureSpec(statusWidth, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            mStatusTextViewHeight =
+                    Math.max(mStatusTextViewHeight, mStatusView.getMeasuredHeight());
+        }
+
+        // Calculate height including padding.
+        int height = (mNameTextViewHeight + mPhoneticNameTextViewHeight +
+                mLabelAndDataViewMaxHeight +
+                mSnippetTextViewHeight + mStatusTextViewHeight);
+
+        // Make sure the height is at least as high as the photo
+        height = Math.max(height, mPhotoViewHeight + getPaddingBottom() + getPaddingTop());
+
+        // Make sure height is at least the preferred height
+        height = Math.max(height, preferredHeight);
+
+        // Measure the header if it is visible.
+        if (mHeaderView != null && mHeaderView.getVisibility() == VISIBLE) {
+            mHeaderView.measure(
+                    MeasureSpec.makeMeasureSpec(mHeaderWidth, MeasureSpec.EXACTLY),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+        }
+
+        setMeasuredDimension(specWidth, height);
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        final int height = bottom - top;
+        final int width = right - left;
+
+        // Determine the vertical bounds by laying out the header first.
+        int topBound = 0;
+        int bottomBound = height;
+        int leftBound = getPaddingLeft();
+        int rightBound = width - getPaddingRight();
+
+        final boolean isLayoutRtl = ViewUtil.isViewLayoutRtl(this);
+
+        // Put the section header on the left side of the contact view.
+        if (mIsSectionHeaderEnabled) {
+            if (mHeaderView != null) {
+                int headerHeight = mHeaderView.getMeasuredHeight();
+                int headerTopBound = (bottomBound + topBound - headerHeight) / 2 + mTextOffsetTop;
+
+                mHeaderView.layout(
+                        isLayoutRtl ? rightBound - mHeaderWidth : leftBound,
+                        headerTopBound,
+                        isLayoutRtl ? rightBound : leftBound + mHeaderWidth,
+                        headerTopBound + headerHeight);
+            }
+            if (isLayoutRtl) {
+                rightBound -= mHeaderWidth;
+            } else {
+                leftBound += mHeaderWidth;
+            }
+        }
+
+        mBoundsWithoutHeader.set(left + leftBound, topBound, left + rightBound, bottomBound);
+        mLeftOffset = left + leftBound;
+        mRightOffset = left + rightBound;
+        if (isLayoutRtl) {
+            rightBound -= mGapBetweenIndexerAndImage;
+        } else {
+            leftBound += mGapBetweenIndexerAndImage;
+        }
+
+        if (mActivatedStateSupported && isActivated()) {
+            mActivatedBackgroundDrawable.setBounds(mBoundsWithoutHeader);
+        }
+
+        if (isVisible(mCheckBox)) {
+            final int photoTop = topBound + (bottomBound - topBound - mCheckBoxHeight) / 2;
+            if (mPhotoPosition == PhotoPosition.LEFT) {
+                mCheckBox.layout(rightBound - mGapFromScrollBar - mCheckBoxWidth,
+                        photoTop,
+                        rightBound - mGapFromScrollBar,
+                        photoTop + mCheckBoxHeight);
+            } else {
+                mCheckBox.layout(leftBound + mGapFromScrollBar,
+                        photoTop,
+                        leftBound + mGapFromScrollBar + mCheckBoxWidth,
+                        photoTop + mCheckBoxHeight);
+            }
+        }
+
+        if (isVisible(mDeleteImageButton)) {
+            final int photoTop = topBound + (bottomBound - topBound - mDeleteImageButtonHeight) / 2;
+            final int mDeleteImageButtonSize = mDeleteImageButtonHeight > mDeleteImageButtonWidth
+                    ? mDeleteImageButtonHeight : mDeleteImageButtonWidth;
+            if (mPhotoPosition == PhotoPosition.LEFT) {
+                mDeleteImageButton.layout(rightBound - mDeleteImageButtonSize,
+                        photoTop,
+                        rightBound,
+                        photoTop + mDeleteImageButtonSize);
+                rightBound -= mDeleteImageButtonSize;
+            } else {
+                mDeleteImageButton.layout(leftBound,
+                        photoTop,
+                        leftBound + mDeleteImageButtonSize,
+                        photoTop + mDeleteImageButtonSize);
+                leftBound += mDeleteImageButtonSize;
+            }
+        }
+
+        final View photoView = mQuickContact != null ? mQuickContact : mPhotoView;
+        if (mPhotoPosition == PhotoPosition.LEFT) {
+            // Photo is the left most view. All the other Views should on the right of the photo.
+            if (photoView != null) {
+                // Center the photo vertically
+                final int photoTop = topBound + (bottomBound - topBound - mPhotoViewHeight) / 2
+                        + mAvatarOffsetTop;
+                photoView.layout(
+                        leftBound,
+                        photoTop,
+                        leftBound + mPhotoViewWidth,
+                        photoTop + mPhotoViewHeight);
+                leftBound += mPhotoViewWidth + mGapBetweenImageAndText;
+            } else if (mKeepHorizontalPaddingForPhotoView) {
+                // Draw nothing but keep the padding.
+                leftBound += mPhotoViewWidth + mGapBetweenImageAndText;
+            }
+        } else {
+            // Photo is the right most view. Right bound should be adjusted that way.
+            if (photoView != null) {
+                // Center the photo vertically
+                final int photoTop = topBound + (bottomBound - topBound - mPhotoViewHeight) / 2
+                        + mAvatarOffsetTop;
+                photoView.layout(
+                        rightBound - mPhotoViewWidth,
+                        photoTop,
+                        rightBound,
+                        photoTop + mPhotoViewHeight);
+                rightBound -= (mPhotoViewWidth + mGapBetweenImageAndText);
+            } else if (mKeepHorizontalPaddingForPhotoView) {
+                // Draw nothing but keep the padding.
+                rightBound -= (mPhotoViewWidth + mGapBetweenImageAndText);
+            }
+
+            // Add indent between left-most padding and texts.
+            leftBound += mTextIndent;
+        }
+
+        if (mSupportVideoCallIcon) {
+            // Place the video call button at the end of the list (e.g. take into account RTL mode).
+            if (isVisible(mVideoCallIcon)) {
+                // Center the video icon vertically
+                final int videoIconTop = topBound +
+                        (bottomBound - topBound - mVideoCallIconSize) / 2;
+
+                if (!isLayoutRtl) {
+                    // When photo is on left, video icon is placed on the right edge.
+                    mVideoCallIcon.layout(rightBound - mVideoCallIconSize,
+                            videoIconTop,
+                            rightBound,
+                            videoIconTop + mVideoCallIconSize);
+                } else {
+                    // When photo is on right, video icon is placed on the left edge.
+                    mVideoCallIcon.layout(leftBound,
+                            videoIconTop,
+                            leftBound + mVideoCallIconSize,
+                            videoIconTop + mVideoCallIconSize);
+                }
+            }
+
+            if (mPhotoPosition == PhotoPosition.LEFT) {
+                rightBound -= (mVideoCallIconSize + mVideoCallIconMargin);
+            } else {
+                leftBound += mVideoCallIconSize + mVideoCallIconMargin;
+            }
+        }
+
+
+        // Center text vertically, then apply the top offset.
+        final int totalTextHeight = mNameTextViewHeight + mPhoneticNameTextViewHeight +
+                mLabelAndDataViewMaxHeight + mSnippetTextViewHeight + mStatusTextViewHeight;
+        int textTopBound = (bottomBound + topBound - totalTextHeight) / 2 + mTextOffsetTop;
+
+        // Work Profile icon align top
+        int workProfileIconWidth = 0;
+        if (isVisible(mWorkProfileIcon)) {
+            workProfileIconWidth = mWorkProfileIcon.getMeasuredWidth();
+            final int distanceFromEnd = mCheckBoxWidth > 0
+                    ? mCheckBoxWidth + mGapBetweenImageAndText : 0;
+            if (mPhotoPosition == PhotoPosition.LEFT) {
+                // When photo is on left, label is placed on the right edge of the list item.
+                mWorkProfileIcon.layout(rightBound - workProfileIconWidth - distanceFromEnd,
+                        textTopBound,
+                        rightBound - distanceFromEnd,
+                        textTopBound + mNameTextViewHeight);
+            } else {
+                // When photo is on right, label is placed on the left of data view.
+                mWorkProfileIcon.layout(leftBound + distanceFromEnd,
+                        textTopBound,
+                        leftBound + workProfileIconWidth + distanceFromEnd,
+                        textTopBound + mNameTextViewHeight);
+            }
+        }
+
+        // Layout all text view and presence icon
+        // Put name TextView first
+        if (isVisible(mNameTextView)) {
+            final int distanceFromEnd = workProfileIconWidth
+                    + (mCheckBoxWidth > 0 ? mCheckBoxWidth + mGapBetweenImageAndText : 0);
+            if (mPhotoPosition == PhotoPosition.LEFT) {
+                mNameTextView.layout(leftBound,
+                        textTopBound,
+                        rightBound - distanceFromEnd,
+                        textTopBound + mNameTextViewHeight);
+            } else {
+                mNameTextView.layout(leftBound + distanceFromEnd,
+                        textTopBound,
+                        rightBound,
+                        textTopBound + mNameTextViewHeight);
+            }
+        }
+
+        if (isVisible(mNameTextView) || isVisible(mWorkProfileIcon)) {
+            textTopBound += mNameTextViewHeight;
+        }
+
+        // Presence and status
+        if (isLayoutRtl) {
+            int statusRightBound = rightBound;
+            if (isVisible(mPresenceIcon)) {
+                int iconWidth = mPresenceIcon.getMeasuredWidth();
+                mPresenceIcon.layout(
+                        rightBound - iconWidth,
+                        textTopBound,
+                        rightBound,
+                        textTopBound + mStatusTextViewHeight);
+                statusRightBound -= (iconWidth + mPresenceIconMargin);
+            }
+
+            if (isVisible(mStatusView)) {
+                mStatusView.layout(leftBound,
+                        textTopBound,
+                        statusRightBound,
+                        textTopBound + mStatusTextViewHeight);
+            }
+        } else {
+            int statusLeftBound = leftBound;
+            if (isVisible(mPresenceIcon)) {
+                int iconWidth = mPresenceIcon.getMeasuredWidth();
+                mPresenceIcon.layout(
+                        leftBound,
+                        textTopBound,
+                        leftBound + iconWidth,
+                        textTopBound + mStatusTextViewHeight);
+                statusLeftBound += (iconWidth + mPresenceIconMargin);
+            }
+
+            if (isVisible(mStatusView)) {
+                mStatusView.layout(statusLeftBound,
+                        textTopBound,
+                        rightBound,
+                        textTopBound + mStatusTextViewHeight);
+            }
+        }
+
+        if (isVisible(mStatusView) || isVisible(mPresenceIcon)) {
+            textTopBound += mStatusTextViewHeight;
+        }
+
+        // Rest of text views
+        int dataLeftBound = leftBound;
+        if (isVisible(mPhoneticNameTextView)) {
+            mPhoneticNameTextView.layout(leftBound,
+                    textTopBound,
+                    rightBound,
+                    textTopBound + mPhoneticNameTextViewHeight);
+            textTopBound += mPhoneticNameTextViewHeight;
+        }
+
+        // Label and Data align bottom.
+        if (isVisible(mLabelView)) {
+            if (!isLayoutRtl) {
+                mLabelView.layout(dataLeftBound,
+                        textTopBound + mLabelAndDataViewMaxHeight - mLabelViewHeight,
+                        rightBound,
+                        textTopBound + mLabelAndDataViewMaxHeight);
+                dataLeftBound += mLabelView.getMeasuredWidth() + mGapBetweenLabelAndData;
+            } else {
+                dataLeftBound = leftBound + mLabelView.getMeasuredWidth();
+                mLabelView.layout(rightBound - mLabelView.getMeasuredWidth(),
+                        textTopBound + mLabelAndDataViewMaxHeight - mLabelViewHeight,
+                        rightBound,
+                        textTopBound + mLabelAndDataViewMaxHeight);
+                rightBound -= (mLabelView.getMeasuredWidth() + mGapBetweenLabelAndData);
+            }
+        }
+
+        if (isVisible(mDataView)) {
+            if (!isLayoutRtl) {
+                mDataView.layout(dataLeftBound,
+                        textTopBound + mLabelAndDataViewMaxHeight - mDataViewHeight,
+                        rightBound,
+                        textTopBound + mLabelAndDataViewMaxHeight);
+            } else {
+                mDataView.layout(rightBound - mDataView.getMeasuredWidth(),
+                        textTopBound + mLabelAndDataViewMaxHeight - mDataViewHeight,
+                        rightBound,
+                        textTopBound + mLabelAndDataViewMaxHeight);
+            }
+        }
+        if (isVisible(mLabelView) || isVisible(mDataView)) {
+            textTopBound += mLabelAndDataViewMaxHeight;
+        }
+
+        if (isVisible(mSnippetView)) {
+            mSnippetView.layout(leftBound,
+                    textTopBound,
+                    rightBound,
+                    textTopBound + mSnippetTextViewHeight);
+        }
+    }
+
+    @Override
+    public void adjustListItemSelectionBounds(Rect bounds) {
+        if (mAdjustSelectionBoundsEnabled) {
+            bounds.top += mBoundsWithoutHeader.top;
+            bounds.bottom = bounds.top + mBoundsWithoutHeader.height();
+            bounds.left = mBoundsWithoutHeader.left;
+            bounds.right = mBoundsWithoutHeader.right;
+        }
+    }
+
+    protected boolean isVisible(View view) {
+        return view != null && view.getVisibility() == View.VISIBLE;
+    }
+
+    /**
+     * Extracts width and height from the style
+     */
+    private void ensurePhotoViewSize() {
+        if (!mPhotoViewWidthAndHeightAreReady) {
+            mPhotoViewWidth = mPhotoViewHeight = getDefaultPhotoViewSize();
+            if (!mQuickContactEnabled && mPhotoView == null) {
+                if (!mKeepHorizontalPaddingForPhotoView) {
+                    mPhotoViewWidth = 0;
+                }
+                if (!mKeepVerticalPaddingForPhotoView) {
+                    mPhotoViewHeight = 0;
+                }
+            }
+
+            mPhotoViewWidthAndHeightAreReady = true;
+        }
+    }
+
+    protected int getDefaultPhotoViewSize() {
+        return mDefaultPhotoViewSize;
+    }
+
+    /**
+     * Gets a LayoutParam that corresponds to the default photo size.
+     *
+     * @return A new LayoutParam.
+     */
+    private LayoutParams getDefaultPhotoLayoutParams() {
+        LayoutParams params = generateDefaultLayoutParams();
+        params.width = getDefaultPhotoViewSize();
+        params.height = params.width;
+        return params;
+    }
+
+    @Override
+    protected void drawableStateChanged() {
+        super.drawableStateChanged();
+        if (mActivatedStateSupported) {
+            mActivatedBackgroundDrawable.setState(getDrawableState());
+        }
+    }
+
+    @Override
+    protected boolean verifyDrawable(Drawable who) {
+        return who == mActivatedBackgroundDrawable || super.verifyDrawable(who);
+    }
+
+    @Override
+    public void jumpDrawablesToCurrentState() {
+        super.jumpDrawablesToCurrentState();
+        if (mActivatedStateSupported) {
+            mActivatedBackgroundDrawable.jumpToCurrentState();
+        }
+    }
+
+    @Override
+    public void dispatchDraw(Canvas canvas) {
+        if (mActivatedStateSupported && isActivated()) {
+            mActivatedBackgroundDrawable.draw(canvas);
+        }
+
+        super.dispatchDraw(canvas);
+    }
+
+    /**
+     * Sets section header or makes it invisible if the title is null.
+     */
+    public void setSectionHeader(String title) {
+        if (title != null) {
+            // Empty section title is the favorites so show the star here.
+            if (title.isEmpty()) {
+                if (mHeaderView == null) {
+                    addStarImageHeader();
+                } else if (mHeaderView instanceof TextView) {
+                    removeView(mHeaderView);
+                    addStarImageHeader();
+                } else {
+                    mHeaderView.setVisibility(View.VISIBLE);
+                }
+            } else {
+                if (mHeaderView == null) {
+                    addTextHeader(title);
+                } else if (mHeaderView instanceof ImageView) {
+                    removeView(mHeaderView);
+                    addTextHeader(title);
+                } else {
+                    updateHeaderText((TextView) mHeaderView, title);
+                }
+            }
+        } else if (mHeaderView != null) {
+            mHeaderView.setVisibility(View.GONE);
+        }
+    }
+
+    private void addTextHeader(String title) {
+        mHeaderView = new TextView(getContext());
+        final TextView headerTextView = (TextView) mHeaderView;
+        headerTextView.setTextAppearance(getContext(), R.style.SectionHeaderStyle);
+        headerTextView.setGravity(Gravity.CENTER_HORIZONTAL);
+        updateHeaderText(headerTextView, title);
+        addView(headerTextView);
+    }
+
+    private void updateHeaderText(TextView headerTextView, String title) {
+        setMarqueeText(headerTextView, title);
+        headerTextView.setAllCaps(true);
+        if (ContactsSectionIndexer.BLANK_HEADER_STRING.equals(title)) {
+            headerTextView.setContentDescription(
+                    getContext().getString(R.string.description_no_name_header));
+        } else {
+            headerTextView.setContentDescription(title);
+        }
+        headerTextView.setVisibility(View.VISIBLE);
+    }
+
+    private void addStarImageHeader() {
+        mHeaderView = new ImageView(getContext());
+        final ImageView headerImageView = (ImageView) mHeaderView;
+        headerImageView.setImageDrawable(
+                getResources().getDrawable(R.drawable.quantum_ic_star_vd_theme_24,
+                        getContext().getTheme()));
+        headerImageView.setImageTintList(ColorStateList.valueOf(getResources()
+                .getColor(R.color.material_star_pink)));
+        headerImageView.setContentDescription(
+                getContext().getString(R.string.contactsFavoritesLabel));
+        headerImageView.setVisibility(View.VISIBLE);
+        addView(headerImageView);
+    }
+
+    public void setIsSectionHeaderEnabled(boolean isSectionHeaderEnabled) {
+        mIsSectionHeaderEnabled = isSectionHeaderEnabled;
+    }
+
+    /**
+     * Returns the quick contact badge, creating it if necessary.
+     */
+    public QuickContactBadge getQuickContact() {
+        if (!mQuickContactEnabled) {
+            throw new IllegalStateException("QuickContact is disabled for this view");
+        }
+        if (mQuickContact == null) {
+            mQuickContact = new QuickContactBadge(getContext());
+            if (CompatUtils.isLollipopCompatible()) {
+                mQuickContact.setOverlay(null);
+            }
+            mQuickContact.setLayoutParams(getDefaultPhotoLayoutParams());
+            if (mNameTextView != null) {
+                mQuickContact.setContentDescription(getContext().getString(
+                        R.string.description_quick_contact_for, mNameTextView.getText()));
+            }
+
+            addView(mQuickContact);
+            mPhotoViewWidthAndHeightAreReady = false;
+        }
+        return mQuickContact;
+    }
+
+    /**
+     * Returns the photo view, creating it if necessary.
+     */
+    public ImageView getPhotoView() {
+        if (mPhotoView == null) {
+            mPhotoView = new ImageView(getContext());
+            mPhotoView.setLayoutParams(getDefaultPhotoLayoutParams());
+            // Quick contact style used above will set a background - remove it
+            mPhotoView.setBackground(null);
+            addView(mPhotoView);
+            mPhotoViewWidthAndHeightAreReady = false;
+        }
+        return mPhotoView;
+    }
+
+    /**
+     * Removes the photo view.
+     */
+    public void removePhotoView() {
+        removePhotoView(false, true);
+    }
+
+    /**
+     * Removes the photo view.
+     *
+     * @param keepHorizontalPadding True means data on the right side will have
+     *            padding on left, pretending there is still a photo view.
+     * @param keepVerticalPadding True means the View will have some height
+     *            enough for accommodating a photo view.
+     */
+    public void removePhotoView(boolean keepHorizontalPadding, boolean keepVerticalPadding) {
+        mPhotoViewWidthAndHeightAreReady = false;
+        mKeepHorizontalPaddingForPhotoView = keepHorizontalPadding;
+        mKeepVerticalPaddingForPhotoView = keepVerticalPadding;
+        if (mPhotoView != null) {
+            removeView(mPhotoView);
+            mPhotoView = null;
+        }
+        if (mQuickContact != null) {
+            removeView(mQuickContact);
+            mQuickContact = null;
+        }
+    }
+
+    /**
+     * Sets a word prefix that will be highlighted if encountered in fields like
+     * name and search snippet. This will disable the mask highlighting for names.
+     * <p>
+     * NOTE: must be all upper-case
+     */
+    public void setHighlightedPrefix(String upperCasePrefix) {
+        mHighlightedPrefix = upperCasePrefix;
+    }
+
+    /**
+     * Clears previously set highlight sequences for the view.
+     */
+    public void clearHighlightSequences() {
+        mNameHighlightSequence.clear();
+        mNumberHighlightSequence.clear();
+        mHighlightedPrefix = null;
+    }
+
+    /**
+     * Adds a highlight sequence to the name highlighter.
+     * @param start The start position of the highlight sequence.
+     * @param end The end position of the highlight sequence.
+     */
+    public void addNameHighlightSequence(int start, int end) {
+        mNameHighlightSequence.add(new HighlightSequence(start, end));
+    }
+
+    /**
+     * Adds a highlight sequence to the number highlighter.
+     * @param start The start position of the highlight sequence.
+     * @param end The end position of the highlight sequence.
+     */
+    public void addNumberHighlightSequence(int start, int end) {
+        mNumberHighlightSequence.add(new HighlightSequence(start, end));
+    }
+
+    /**
+     * Returns the text view for the contact name, creating it if necessary.
+     */
+    public TextView getNameTextView() {
+        if (mNameTextView == null) {
+            mNameTextView = new TextView(getContext());
+            mNameTextView.setSingleLine(true);
+            mNameTextView.setEllipsize(getTextEllipsis());
+            mNameTextView.setTextColor(ResourcesCompat.getColorStateList(getResources(),
+                    R.color.contact_list_name_text_color, getContext().getTheme()));
+            mNameTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, mNameTextViewTextSize);
+            // Manually call setActivated() since this view may be added after the first
+            // setActivated() call toward this whole item view.
+            mNameTextView.setActivated(isActivated());
+            mNameTextView.setGravity(Gravity.CENTER_VERTICAL);
+            mNameTextView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+            mNameTextView.setId(R.id.cliv_name_textview);
+            if (CompatUtils.isLollipopCompatible()) {
+                mNameTextView.setElegantTextHeight(false);
+            }
+            addView(mNameTextView);
+        }
+        return mNameTextView;
+    }
+
+    /**
+     * Adds or updates a text view for the phonetic name.
+     */
+    public void setPhoneticName(char[] text, int size) {
+        if (text == null || size == 0) {
+            if (mPhoneticNameTextView != null) {
+                mPhoneticNameTextView.setVisibility(View.GONE);
+            }
+        } else {
+            getPhoneticNameTextView();
+            setMarqueeText(mPhoneticNameTextView, text, size);
+            mPhoneticNameTextView.setVisibility(VISIBLE);
+        }
+    }
+
+    /**
+     * Returns the text view for the phonetic name, creating it if necessary.
+     */
+    public TextView getPhoneticNameTextView() {
+        if (mPhoneticNameTextView == null) {
+            mPhoneticNameTextView = new TextView(getContext());
+            mPhoneticNameTextView.setSingleLine(true);
+            mPhoneticNameTextView.setEllipsize(getTextEllipsis());
+            mPhoneticNameTextView.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);
+            mPhoneticNameTextView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+            mPhoneticNameTextView.setTypeface(mPhoneticNameTextView.getTypeface(), Typeface.BOLD);
+            mPhoneticNameTextView.setActivated(isActivated());
+            mPhoneticNameTextView.setId(R.id.cliv_phoneticname_textview);
+            addView(mPhoneticNameTextView);
+        }
+        return mPhoneticNameTextView;
+    }
+
+    /**
+     * Adds or updates a text view for the data label.
+     */
+    public void setLabel(CharSequence text) {
+        if (TextUtils.isEmpty(text)) {
+            if (mLabelView != null) {
+                mLabelView.setVisibility(View.GONE);
+            }
+        } else {
+            getLabelView();
+            setMarqueeText(mLabelView, text);
+            mLabelView.setVisibility(VISIBLE);
+        }
+    }
+
+    /**
+     * Returns the text view for the data label, creating it if necessary.
+     */
+    public TextView getLabelView() {
+        if (mLabelView == null) {
+            mLabelView = new TextView(getContext());
+            mLabelView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
+                    LayoutParams.WRAP_CONTENT));
+
+            mLabelView.setSingleLine(true);
+            mLabelView.setEllipsize(getTextEllipsis());
+            mLabelView.setTextAppearance(getContext(), R.style.TextAppearanceSmall);
+            if (mPhotoPosition == PhotoPosition.LEFT) {
+                mLabelView.setAllCaps(true);
+            } else {
+                mLabelView.setTypeface(mLabelView.getTypeface(), Typeface.BOLD);
+            }
+            mLabelView.setActivated(isActivated());
+            mLabelView.setId(R.id.cliv_label_textview);
+            addView(mLabelView);
+        }
+        return mLabelView;
+    }
+
+    /**
+     * Adds or updates a text view for the data element.
+     */
+    public void setData(char[] text, int size) {
+        if (text == null || size == 0) {
+            if (mDataView != null) {
+                mDataView.setVisibility(View.GONE);
+            }
+        } else {
+            getDataView();
+            setMarqueeText(mDataView, text, size);
+            mDataView.setVisibility(VISIBLE);
+        }
+    }
+
+    /**
+     * Sets phone number for a list item. This takes care of number highlighting if the highlight
+     * mask exists.
+     */
+    public void setPhoneNumber(String text, String countryIso) {
+        if (text == null) {
+            if (mDataView != null) {
+                mDataView.setVisibility(View.GONE);
+            }
+        } else {
+            getDataView();
+
+            // TODO: Format number using PhoneNumberUtils.formatNumber before assigning it to
+            // mDataView. Make sure that determination of the highlight sequences are done only
+            // after number formatting.
+
+            // Sets phone number texts for display after highlighting it, if applicable.
+            // CharSequence textToSet = text;
+            final SpannableString textToSet = new SpannableString(text);
+
+            if (mNumberHighlightSequence.size() != 0) {
+                final HighlightSequence highlightSequence = mNumberHighlightSequence.get(0);
+                mTextHighlighter.applyMaskingHighlight(textToSet, highlightSequence.start,
+                        highlightSequence.end);
+            }
+
+            setMarqueeText(mDataView, textToSet);
+            mDataView.setVisibility(VISIBLE);
+
+            // We have a phone number as "mDataView" so make it always LTR and VIEW_START
+            mDataView.setTextDirection(View.TEXT_DIRECTION_LTR);
+            mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+        }
+    }
+
+    private void setMarqueeText(TextView textView, char[] text, int size) {
+        if (getTextEllipsis() == TruncateAt.MARQUEE) {
+            setMarqueeText(textView, new String(text, 0, size));
+        } else {
+            textView.setText(text, 0, size);
+        }
+    }
+
+    private void setMarqueeText(TextView textView, CharSequence text) {
+        if (getTextEllipsis() == TruncateAt.MARQUEE) {
+            // To show MARQUEE correctly (with END effect during non-active state), we need
+            // to build Spanned with MARQUEE in addition to TextView's ellipsize setting.
+            final SpannableString spannable = new SpannableString(text);
+            spannable.setSpan(TruncateAt.MARQUEE, 0, spannable.length(),
+                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            textView.setText(spannable);
+        } else {
+            textView.setText(text);
+        }
+    }
+
+    /**
+     * Returns the {@link AppCompatCheckBox} view, creating it if necessary.
+     */
+    public AppCompatCheckBox getCheckBox() {
+        if (mCheckBox == null) {
+            mCheckBox = new AppCompatCheckBox(getContext());
+            // Make non-focusable, so the rest of the ContactListItemView can be clicked.
+            mCheckBox.setFocusable(false);
+            addView(mCheckBox);
+        }
+        return mCheckBox;
+    }
+
+    /**
+     * Returns the {@link AppCompatImageButton} delete button, creating it if necessary.
+     */
+    public AppCompatImageButton getDeleteImageButton(
+            final MultiSelectEntryContactListAdapter.DeleteContactListener listener,
+            final int position) {
+        if (mDeleteImageButton == null) {
+            mDeleteImageButton = new AppCompatImageButton(getContext());
+            mDeleteImageButton.setImageResource(R.drawable.quantum_ic_cancel_vd_theme_24);
+            mDeleteImageButton.setScaleType(ScaleType.CENTER);
+            mDeleteImageButton.setBackgroundColor(Color.TRANSPARENT);
+            mDeleteImageButton.setContentDescription(
+                    getResources().getString(R.string.description_delete_contact));
+            if (CompatUtils. isLollipopCompatible()) {
+                final TypedValue typedValue = new TypedValue();
+                getContext().getTheme().resolveAttribute(
+                        android.R.attr.selectableItemBackgroundBorderless, typedValue, true);
+                mDeleteImageButton.setBackgroundResource(typedValue.resourceId);
+            }
+            addView(mDeleteImageButton);
+        }
+        // Reset onClickListener because after reloading the view, position might be changed.
+        mDeleteImageButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                // Inform the adapter that delete icon was clicked.
+                if (listener != null) {
+                    listener.onContactDeleteClicked(position);
+                }
+            }
+        });
+        return mDeleteImageButton;
+    }
+
+    /**
+     * Returns the text view for the data text, creating it if necessary.
+     */
+    public TextView getDataView() {
+        if (mDataView == null) {
+            mDataView = new TextView(getContext());
+            mDataView.setSingleLine(true);
+            mDataView.setEllipsize(getTextEllipsis());
+            mDataView.setTextAppearance(getContext(), R.style.TextAppearanceSmall);
+            mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+            mDataView.setActivated(isActivated());
+            mDataView.setId(R.id.cliv_data_view);
+            if (CompatUtils.isLollipopCompatible()) {
+                mDataView.setElegantTextHeight(false);
+            }
+            addView(mDataView);
+        }
+        return mDataView;
+    }
+
+    /**
+     * Adds or updates a text view for the search snippet.
+     */
+    public void setSnippet(String text) {
+        if (TextUtils.isEmpty(text)) {
+            if (mSnippetView != null) {
+                mSnippetView.setVisibility(View.GONE);
+            }
+        } else {
+            mTextHighlighter.setPrefixText(getSnippetView(), text, mHighlightedPrefix);
+            mSnippetView.setVisibility(VISIBLE);
+            if (ContactDisplayUtils.isPossiblePhoneNumber(text)) {
+                // Give the text-to-speech engine a hint that it's a phone number
+                mSnippetView.setContentDescription(
+                        PhoneNumberUtilsCompat.createTtsSpannable(text));
+            } else {
+                mSnippetView.setContentDescription(null);
+            }
+        }
+    }
+
+    /**
+     * Returns the text view for the search snippet, creating it if necessary.
+     */
+    public TextView getSnippetView() {
+        if (mSnippetView == null) {
+            mSnippetView = new TextView(getContext());
+            mSnippetView.setSingleLine(true);
+            mSnippetView.setEllipsize(getTextEllipsis());
+            mSnippetView.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);
+            mSnippetView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+            mSnippetView.setActivated(isActivated());
+            addView(mSnippetView);
+        }
+        return mSnippetView;
+    }
+
+    /**
+     * Returns the text view for the status, creating it if necessary.
+     */
+    public TextView getStatusView() {
+        if (mStatusView == null) {
+            mStatusView = new TextView(getContext());
+            mStatusView.setSingleLine(true);
+            mStatusView.setEllipsize(getTextEllipsis());
+            mStatusView.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);
+            mStatusView.setTextColor(mSecondaryTextColor);
+            mStatusView.setActivated(isActivated());
+            mStatusView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+            addView(mStatusView);
+        }
+        return mStatusView;
+    }
+
+    /**
+     * Adds or updates a text view for the status.
+     */
+    public void setStatus(CharSequence text) {
+        if (TextUtils.isEmpty(text)) {
+            if (mStatusView != null) {
+                mStatusView.setVisibility(View.GONE);
+            }
+        } else {
+            getStatusView();
+            setMarqueeText(mStatusView, text);
+            mStatusView.setVisibility(VISIBLE);
+        }
+    }
+
+    /**
+     * Adds or updates the presence icon view.
+     */
+    public void setPresence(Drawable icon) {
+        if (icon != null) {
+            if (mPresenceIcon == null) {
+                mPresenceIcon = new ImageView(getContext());
+                addView(mPresenceIcon);
+            }
+            mPresenceIcon.setImageDrawable(icon);
+            mPresenceIcon.setScaleType(ScaleType.CENTER);
+            mPresenceIcon.setVisibility(View.VISIBLE);
+        } else {
+            if (mPresenceIcon != null) {
+                mPresenceIcon.setVisibility(View.GONE);
+            }
+        }
+    }
+
+    /**
+     * Set to display work profile icon or not
+     *
+     * @param enabled set to display work profile icon or not
+     */
+    public void setWorkProfileIconEnabled(boolean enabled) {
+        if (mWorkProfileIcon != null) {
+            mWorkProfileIcon.setVisibility(enabled ? View.VISIBLE : View.GONE);
+        } else if (enabled) {
+            mWorkProfileIcon = new ImageView(getContext());
+            addView(mWorkProfileIcon);
+            mWorkProfileIcon.setImageResource(R.drawable.ic_work_profile);
+            mWorkProfileIcon.setScaleType(ScaleType.CENTER_INSIDE);
+            mWorkProfileIcon.setVisibility(View.VISIBLE);
+        }
+    }
+
+    private TruncateAt getTextEllipsis() {
+        return TruncateAt.MARQUEE;
+    }
+
+    public void showDisplayName(Cursor cursor, int nameColumnIndex, int displayOrder) {
+        CharSequence name = cursor.getString(nameColumnIndex);
+        setDisplayName(name);
+
+        // Since the quick contact content description is derived from the display name and there is
+        // no guarantee that when the quick contact is initialized the display name is already set,
+        // do it here too.
+        if (mQuickContact != null) {
+            mQuickContact.setContentDescription(getContext().getString(
+                    R.string.description_quick_contact_for, mNameTextView.getText()));
+        }
+    }
+
+    public void setDisplayName(CharSequence name, boolean highlight) {
+        if (!TextUtils.isEmpty(name) && highlight) {
+            clearHighlightSequences();
+            addNameHighlightSequence(0, name.length());
+        }
+        setDisplayName(name);
+    }
+
+    public void setDisplayName(CharSequence name) {
+        if (!TextUtils.isEmpty(name)) {
+            // Chooses the available highlighting method for highlighting.
+            if (mHighlightedPrefix != null) {
+                name = mTextHighlighter.applyPrefixHighlight(name, mHighlightedPrefix);
+            } else if (mNameHighlightSequence.size() != 0) {
+                final SpannableString spannableName = new SpannableString(name);
+                for (HighlightSequence highlightSequence : mNameHighlightSequence) {
+                    mTextHighlighter.applyMaskingHighlight(spannableName, highlightSequence.start,
+                            highlightSequence.end);
+                }
+                name = spannableName;
+            }
+        } else {
+            name = mUnknownNameText;
+        }
+        setMarqueeText(getNameTextView(), name);
+
+        if (ContactDisplayUtils.isPossiblePhoneNumber(name)) {
+            // Give the text-to-speech engine a hint that it's a phone number
+            mNameTextView.setTextDirection(View.TEXT_DIRECTION_LTR);
+            mNameTextView.setContentDescription(
+                    PhoneNumberUtilsCompat.createTtsSpannable(name.toString()));
+        } else {
+            // Remove span tags of highlighting for talkback to avoid reading highlighting and rest
+            // of the name into two separate parts.
+            mNameTextView.setContentDescription(name.toString());
+        }
+    }
+
+    public void hideCheckBox() {
+        if (mCheckBox != null) {
+            removeView(mCheckBox);
+            mCheckBox = null;
+        }
+    }
+
+    public void hideDeleteImageButton() {
+        if (mDeleteImageButton != null) {
+            removeView(mDeleteImageButton);
+            mDeleteImageButton = null;
+        }
+    }
+
+    public void hideDisplayName() {
+        if (mNameTextView != null) {
+            removeView(mNameTextView);
+            mNameTextView = null;
+        }
+    }
+
+    public void showPhoneticName(Cursor cursor, int phoneticNameColumnIndex) {
+        cursor.copyStringToBuffer(phoneticNameColumnIndex, mPhoneticNameBuffer);
+        int phoneticNameSize = mPhoneticNameBuffer.sizeCopied;
+        if (phoneticNameSize != 0) {
+            setPhoneticName(mPhoneticNameBuffer.data, phoneticNameSize);
+        } else {
+            setPhoneticName(null, 0);
+        }
+    }
+
+    public void hidePhoneticName() {
+        if (mPhoneticNameTextView != null) {
+            removeView(mPhoneticNameTextView);
+            mPhoneticNameTextView = null;
+        }
+    }
+
+    /**
+     * Sets the proper icon (star or presence or nothing) and/or status message.
+     */
+    public void showPresenceAndStatusMessage(Cursor cursor, int presenceColumnIndex,
+            int contactStatusColumnIndex) {
+        Drawable icon = null;
+        int presence = 0;
+        if (!cursor.isNull(presenceColumnIndex)) {
+            presence = cursor.getInt(presenceColumnIndex);
+            icon = ContactPresenceIconUtil.getPresenceIcon(getContext(), presence);
+        }
+        setPresence(icon);
+
+        String statusMessage = null;
+        if (contactStatusColumnIndex != 0 && !cursor.isNull(contactStatusColumnIndex)) {
+            statusMessage = cursor.getString(contactStatusColumnIndex);
+        }
+        // If there is no status message from the contact, but there was a presence value, then use
+        // the default status message string
+        if (statusMessage == null && presence != 0) {
+            statusMessage = ContactStatusUtil.getStatusString(getContext(), presence);
+        }
+        setStatus(statusMessage);
+    }
+
+    /**
+     * Shows search snippet for email and phone number matches.
+     */
+    public void showSnippet(Cursor cursor, String query, int snippetColumn) {
+        // TODO: this does not properly handle phone numbers with control characters
+        // For example if the phone number is 444-5555, the search query 4445 will match the
+        // number since we normalize it before querying CP2 but the snippet will fail since
+        // the portion to be highlighted is 444-5 not 4445.
+        final String snippet = cursor.getString(snippetColumn);
+        if (snippet == null) {
+            setSnippet(null);
+            return;
+        }
+        final String displayName = cursor.getColumnIndex(Contacts.DISPLAY_NAME) >= 0
+                ? cursor.getString(cursor.getColumnIndex(Contacts.DISPLAY_NAME)) : null;
+        if (snippet.equals(displayName)) {
+            // If the snippet exactly matches the display name (i.e. the phone number or email
+            // address is being used as the display name) then no snippet is necessary
+            setSnippet(null);
+            return;
+        }
+        // Show the snippet with the part of the query that matched it
+        setSnippet(updateSnippet(snippet, query, displayName));
+    }
+
+    /**
+     * Shows search snippet.
+     */
+    public void showSnippet(Cursor cursor, int summarySnippetColumnIndex) {
+        if (cursor.getColumnCount() <= summarySnippetColumnIndex
+            || !SearchSnippets.SNIPPET.equals(cursor.getColumnName(summarySnippetColumnIndex))) {
+            setSnippet(null);
+            return;
+        }
+
+        String snippet = cursor.getString(summarySnippetColumnIndex);
+
+        // Do client side snippeting if provider didn't do it
+        final Bundle extras = cursor.getExtras();
+        if (extras.getBoolean(ContactsContract.DEFERRED_SNIPPETING)) {
+
+            final String query = extras.getString(ContactsContract.DEFERRED_SNIPPETING_QUERY);
+
+            String displayName = null;
+            int displayNameIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
+            if (displayNameIndex >= 0) {
+                displayName = cursor.getString(displayNameIndex);
+            }
+
+            snippet = updateSnippet(snippet, query, displayName);
+
+        } else {
+            if (snippet != null) {
+                int from = 0;
+                int to = snippet.length();
+                int start = snippet.indexOf(DefaultContactListAdapter.SNIPPET_START_MATCH);
+                if (start == -1) {
+                    snippet = null;
+                } else {
+                    int firstNl = snippet.lastIndexOf('\n', start);
+                    if (firstNl != -1) {
+                        from = firstNl + 1;
+                    }
+                    int end = snippet.lastIndexOf(DefaultContactListAdapter.SNIPPET_END_MATCH);
+                    if (end != -1) {
+                        int lastNl = snippet.indexOf('\n', end);
+                        if (lastNl != -1) {
+                            to = lastNl;
+                        }
+                    }
+
+                    StringBuilder sb = new StringBuilder();
+                    for (int i = from; i < to; i++) {
+                        char c = snippet.charAt(i);
+                        if (c != DefaultContactListAdapter.SNIPPET_START_MATCH &&
+                                c != DefaultContactListAdapter.SNIPPET_END_MATCH) {
+                            sb.append(c);
+                        }
+                    }
+                    snippet = sb.toString();
+                }
+            }
+        }
+
+        setSnippet(snippet);
+    }
+
+    /**
+     * Used for deferred snippets from the database. The contents come back as large strings which
+     * need to be extracted for display.
+     *
+     * @param snippet The snippet from the database.
+     * @param query The search query substring.
+     * @param displayName The contact display name.
+     * @return The proper snippet to display.
+     */
+    private String updateSnippet(String snippet, String query, String displayName) {
+
+        if (TextUtils.isEmpty(snippet) || TextUtils.isEmpty(query)) {
+            return null;
+        }
+        query = SearchUtil.cleanStartAndEndOfSearchQuery(query.toLowerCase());
+
+        // If the display name already contains the query term, return empty - snippets should
+        // not be needed in that case.
+        if (!TextUtils.isEmpty(displayName)) {
+            final String lowerDisplayName = displayName.toLowerCase();
+            final List<String> nameTokens = split(lowerDisplayName);
+            for (String nameToken : nameTokens) {
+                if (nameToken.startsWith(query)) {
+                    return null;
+                }
+            }
+        }
+
+        // The snippet may contain multiple data lines.
+        // Show the first line that matches the query.
+        final SearchUtil.MatchedLine matched = SearchUtil.findMatchingLine(snippet, query);
+
+        if (matched != null && matched.line != null) {
+            // Tokenize for long strings since the match may be at the end of it.
+            // Skip this part for short strings since the whole string will be displayed.
+            // Most contact strings are short so the snippetize method will be called infrequently.
+            final int lengthThreshold = getResources().getInteger(
+                    R.integer.snippet_length_before_tokenize);
+            if (matched.line.length() > lengthThreshold) {
+                return snippetize(matched.line, matched.startIndex, lengthThreshold);
+            } else {
+                return matched.line;
+            }
+        }
+
+        // No match found.
+        return null;
+    }
+
+    private String snippetize(String line, int matchIndex, int maxLength) {
+        // Show up to maxLength characters. But we only show full tokens so show the last full token
+        // up to maxLength characters. So as many starting tokens as possible before trying ending
+        // tokens.
+        int remainingLength = maxLength;
+        int tempRemainingLength = remainingLength;
+
+        // Start the end token after the matched query.
+        int index = matchIndex;
+        int endTokenIndex = index;
+
+        // Find the match token first.
+        while (index < line.length()) {
+            if (!Character.isLetterOrDigit(line.charAt(index))) {
+                endTokenIndex = index;
+                remainingLength = tempRemainingLength;
+                break;
+            }
+            tempRemainingLength--;
+            index++;
+        }
+
+        // Find as much content before the match.
+        index = matchIndex - 1;
+        tempRemainingLength = remainingLength;
+        int startTokenIndex = matchIndex;
+        while (index > -1 && tempRemainingLength > 0) {
+            if (!Character.isLetterOrDigit(line.charAt(index))) {
+                startTokenIndex = index;
+                remainingLength = tempRemainingLength;
+            }
+            tempRemainingLength--;
+            index--;
+        }
+
+        index = endTokenIndex;
+        tempRemainingLength = remainingLength;
+        // Find remaining content at after match.
+        while (index < line.length() && tempRemainingLength > 0) {
+            if (!Character.isLetterOrDigit(line.charAt(index))) {
+                endTokenIndex = index;
+            }
+            tempRemainingLength--;
+            index++;
+        }
+        // Append ellipse if there is content before or after.
+        final StringBuilder sb = new StringBuilder();
+        if (startTokenIndex > 0) {
+            sb.append("...");
+        }
+        sb.append(line.substring(startTokenIndex, endTokenIndex));
+        if (endTokenIndex < line.length()) {
+            sb.append("...");
+        }
+        return sb.toString();
+    }
+
+    private static final Pattern SPLIT_PATTERN = Pattern.compile(
+            "([\\w-\\.]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})|[\\w]+");
+
+    /**
+     * Helper method for splitting a string into tokens.  The lists passed in are populated with
+     * the
+     * tokens and offsets into the content of each token.  The tokenization function parses e-mail
+     * addresses as a single token; otherwise it splits on any non-alphanumeric character.
+     *
+     * @param content Content to split.
+     * @return List of token strings.
+     */
+    private static List<String> split(String content) {
+        final Matcher matcher = SPLIT_PATTERN.matcher(content);
+        final ArrayList<String> tokens = Lists.newArrayList();
+        while (matcher.find()) {
+            tokens.add(matcher.group());
+        }
+        return tokens;
+    }
+
+    /**
+     * Shows data element.
+     */
+    public void showData(Cursor cursor, int dataColumnIndex) {
+        cursor.copyStringToBuffer(dataColumnIndex, mDataBuffer);
+        setData(mDataBuffer.data, mDataBuffer.sizeCopied);
+    }
+
+    public void setActivatedStateSupported(boolean flag) {
+        this.mActivatedStateSupported = flag;
+    }
+
+    public void setAdjustSelectionBoundsEnabled(boolean enabled) {
+        mAdjustSelectionBoundsEnabled = enabled;
+    }
+
+    @Override
+    public void requestLayout() {
+        // We will assume that once measured this will not need to resize
+        // itself, so there is no need to pass the layout request to the parent
+        // view (ListView).
+        forceLayout();
+    }
+
+    public void setPhotoPosition(PhotoPosition photoPosition) {
+        mPhotoPosition = photoPosition;
+    }
+
+    public PhotoPosition getPhotoPosition() {
+        return mPhotoPosition;
+    }
+
+    /**
+     * Set drawable resources directly for the drawable resource of the photo view.
+     *
+     * @param drawableId Id of drawable resource.
+     */
+    public void setDrawableResource(int drawableId) {
+        ImageView photo = getPhotoView();
+        photo.setScaleType(ImageView.ScaleType.CENTER);
+        final Drawable drawable = ContextCompat.getDrawable(getContext(), drawableId);
+        final int iconColor =
+                ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
+        if (CompatUtils.isLollipopCompatible()) {
+            photo.setImageDrawable(drawable);
+            photo.setImageTintList(ColorStateList.valueOf(iconColor));
+        } else {
+            final Drawable drawableWrapper = DrawableCompat.wrap(drawable).mutate();
+            DrawableCompat.setTint(drawableWrapper, iconColor);
+            photo.setImageDrawable(drawableWrapper);
+        }
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        final float x = event.getX();
+        final float y = event.getY();
+        // If the touch event's coordinates are not within the view's header, then delegate
+        // to super.onTouchEvent so that regular view behavior is preserved. Otherwise, consume
+        // and ignore the touch event.
+        if (mBoundsWithoutHeader.contains((int) x, (int) y) || !pointIsInView(x, y)) {
+            return super.onTouchEvent(event);
+        } else {
+            return true;
+        }
+    }
+
+    private final boolean pointIsInView(float localX, float localY) {
+        return localX >= mLeftOffset && localX < mRightOffset
+                && localY >= 0 && localY < (getBottom() - getTop());
+    }
+}
diff --git a/src/com/android/contacts/list/ContactListPinnedHeaderView.java b/src/com/android/contacts/list/ContactListPinnedHeaderView.java
new file mode 100644
index 0000000..e65dea0
--- /dev/null
+++ b/src/com/android/contacts/list/ContactListPinnedHeaderView.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Color;
+import android.util.AttributeSet;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.LinearLayout.LayoutParams;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+
+/**
+ * A custom view for the pinned section header shown at the top of the contact list.
+ */
+public class ContactListPinnedHeaderView extends TextView {
+
+    public ContactListPinnedHeaderView(Context context, AttributeSet attrs, View parent) {
+        super(context, attrs);
+
+        if (R.styleable.ContactListItemView == null) {
+            return;
+        }
+        TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ContactListItemView);
+        int backgroundColor = a.getColor(
+                R.styleable.ContactListItemView_list_item_background_color, Color.WHITE);
+        int textOffsetTop = a.getDimensionPixelSize(
+                R.styleable.ContactListItemView_list_item_text_offset_top, 0);
+        int paddingStartOffset = a.getDimensionPixelSize(
+                R.styleable.ContactListItemView_list_item_padding_left, 0);
+        int textWidth = getResources().getDimensionPixelSize(
+                R.dimen.contact_list_section_header_width);
+        int widthIncludingPadding = paddingStartOffset + textWidth;
+        a.recycle();
+
+        setBackgroundColor(backgroundColor);
+        setTextAppearance(getContext(), R.style.SectionHeaderStyle);
+        setLayoutParams(new LayoutParams(widthIncludingPadding, LayoutParams.WRAP_CONTENT));
+        setLayoutDirection(parent.getLayoutDirection());
+        setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
+
+        // Apply text top offset. Multiply by two, because we are implementing this by padding for a
+        // vertically centered view, rather than adjusting the position directly via a layout.
+        setPaddingRelative(
+                getPaddingStart() + paddingStartOffset,
+                getPaddingTop() + (textOffsetTop * 2),
+                getPaddingEnd(),
+                getPaddingBottom());
+    }
+
+    /**
+     * Sets section header or makes it invisible if the title is null.
+     */
+    public void setSectionHeaderTitle(String title) {
+        if (title != null) {
+            setText(title);
+            setVisibility(View.VISIBLE);
+        } else {
+            setVisibility(View.GONE);
+        }
+    }
+}
diff --git a/src/com/android/contacts/list/ContactPickerFragment.java b/src/com/android/contacts/list/ContactPickerFragment.java
index 4e81389..504828f 100644
--- a/src/com/android/contacts/list/ContactPickerFragment.java
+++ b/src/com/android/contacts/list/ContactPickerFragment.java
@@ -24,13 +24,8 @@
 import android.widget.AdapterView;
 
 import com.android.contacts.R;
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactEntryListFragment;
-import com.android.contacts.common.list.ContactListAdapter;
-import com.android.contacts.common.list.ContactListFilter;
-import com.android.contacts.common.list.DirectoryListLoader;
-import com.android.contacts.common.list.ShortcutIntentBuilder;
-import com.android.contacts.common.list.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
+import com.android.contacts.ShortcutIntentBuilder;
+import com.android.contacts.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
 
 /**
  * Fragment for the contact list used for browsing contacts (as compared to
@@ -60,18 +55,10 @@
         mListener = listener;
     }
 
-    public boolean isCreateContactEnabled() {
-        return mCreateContactEnabled;
-    }
-
     public void setCreateContactEnabled(boolean flag) {
         this.mCreateContactEnabled = flag;
     }
 
-    public boolean isEditMode() {
-        return mEditMode;
-    }
-
     public void setEditMode(boolean flag) {
         mEditMode = flag;
     }
@@ -102,16 +89,6 @@
     }
 
     @Override
-    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
-        super.onCreateView(inflater, container);
-        if (mCreateContactEnabled && isLegacyCompatibilityMode()) {
-            // Since we are using the legacy adapter setShowCreateContact(true) isn't supported.
-            // So we need to add an ugly header above the list.
-            getListView().addHeaderView(inflater.inflate(R.layout.create_new_contact, null, false));
-        }
-    }
-
-    @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         if (position == 0 && mCreateContactEnabled && mListener != null) {
             mListener.onCreateNewContactAction();
@@ -141,12 +118,6 @@
         }
     }
 
-    public void createNewContact() {
-        if (mListener != null) {
-            mListener.onCreateNewContactAction();
-        }
-    }
-
     public void editContact(Uri contactUri) {
         if (mListener != null) {
             mListener.onEditContactAction(contactUri);
@@ -180,16 +151,6 @@
     }
 
     @Override
-    protected void configureAdapter() {
-        super.configureAdapter();
-
-        ContactEntryListAdapter adapter = getAdapter();
-
-        // If "Create new contact" is shown, don't display the empty list UI
-        adapter.setEmptyListEnabled(!isCreateContactEnabled());
-    }
-
-    @Override
     protected View inflateView(LayoutInflater inflater, ViewGroup container) {
         return inflater.inflate(R.layout.contact_picker_content, null);
     }
diff --git a/src/com/android/contacts/list/ContactTileListFragment.java b/src/com/android/contacts/list/ContactTileListFragment.java
deleted file mode 100644
index 189cfd3..0000000
--- a/src/com/android/contacts/list/ContactTileListFragment.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (C) 2011 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.list;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.LoaderManager;
-import android.app.LoaderManager.LoaderCallbacks;
-import android.content.CursorLoader;
-import android.content.Loader;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.graphics.Rect;
-import android.net.Uri;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ListView;
-import android.widget.TextView;
-import com.android.contacts.R;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.ContactTileLoaderFactory;
-import com.android.contacts.common.list.ContactTileAdapter;
-import com.android.contacts.common.list.ContactTileAdapter.DisplayType;
-import com.android.contacts.common.list.ContactTileView;
-import com.android.contacts.common.util.ContactListViewUtils;
-import com.android.contacts.common.util.SchedulingUtils;
-
-/**
- * Fragment containing a list of starred contacts followed by a list of frequently contacted.
- *
- * TODO: Make this an abstract class so that the favorites, frequent, and group list functionality
- * can be separated out. This will make it easier to customize any of those lists if necessary
- * (i.e. adding header views to the ListViews in the fragment). This work was started
- * by creating {@link ContactTileFrequentFragment}.
- */
-public class ContactTileListFragment extends Fragment {
-    private static final String TAG = ContactTileListFragment.class.getSimpleName();
-
-    public interface Listener {
-        void onContactSelected(Uri contactUri, Rect targetRect);
-        void onCallNumberDirectly(String phoneNumber);
-    }
-
-    private Listener mListener;
-    private ContactTileAdapter mAdapter;
-    private DisplayType mDisplayType;
-    private TextView mEmptyView;
-    private ListView mListView;
-
-    private boolean mOptionsMenuHasFrequents;
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-
-        Resources res = getResources();
-        int columnCount = res.getInteger(R.integer.contact_tile_column_count_in_favorites);
-
-        mAdapter = new ContactTileAdapter(activity, mAdapterListener,
-                columnCount, mDisplayType);
-        mAdapter.setPhotoLoader(ContactPhotoManager.getInstance(activity));
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        return inflateAndSetupView(inflater, container, savedInstanceState,
-                R.layout.contact_tile_list);
-    }
-
-    protected View inflateAndSetupView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState, int layoutResourceId) {
-        View listLayout = inflater.inflate(layoutResourceId, container, false);
-
-        mEmptyView = (TextView) listLayout.findViewById(R.id.contact_tile_list_empty);
-        mListView = (ListView) listLayout.findViewById(R.id.contact_tile_list);
-
-        mListView.setItemsCanFocus(true);
-        mListView.setAdapter(mAdapter);
-        ContactListViewUtils.applyCardPaddingToView(getResources(), mListView, listLayout);
-
-        return listLayout;
-    }
-
-    @Override
-    public void onHiddenChanged(boolean hidden) {
-        super.onHiddenChanged(hidden);
-        if (getActivity() != null && getView() != null && !hidden) {
-            // If the padding was last applied when in a hidden state, it may have been applied
-            // incorrectly. Therefore we need to reapply it.
-            ContactListViewUtils.applyCardPaddingToView(getResources(), mListView, getView());
-        }
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
-        // initialize the loader for this display type and destroy all others
-        final DisplayType[] loaderTypes = mDisplayType.values();
-        for (int i = 0; i < loaderTypes.length; i++) {
-            if (loaderTypes[i] == mDisplayType) {
-                getLoaderManager().initLoader(mDisplayType.ordinal(), null,
-                        mContactTileLoaderListener);
-            } else {
-                getLoaderManager().destroyLoader(loaderTypes[i].ordinal());
-            }
-        }
-    }
-
-    /**
-     * Returns whether there are any frequents with the side effect of setting the
-     * internal flag mOptionsMenuHasFrequents to the value.  This should be called externally
-     * by the activity that is about to prepare the options menu with the clear frequents
-     * menu item.
-     */
-    public boolean hasFrequents() {
-        mOptionsMenuHasFrequents = internalHasFrequents();
-        return mOptionsMenuHasFrequents;
-    }
-
-    /**
-     * Returns whether there are any frequents.
-     */
-    private boolean internalHasFrequents() {
-        return mAdapter.getNumFrequents() > 0;
-    }
-
-    public void setColumnCount(int columnCount) {
-        mAdapter.setColumnCount(columnCount);
-    }
-
-    public void setDisplayType(DisplayType displayType) {
-        mDisplayType = displayType;
-        mAdapter.setDisplayType(mDisplayType);
-    }
-
-    public void enableQuickContact(boolean enableQuickContact) {
-        mAdapter.enableQuickContact(enableQuickContact);
-    }
-
-    private final LoaderManager.LoaderCallbacks<Cursor> mContactTileLoaderListener =
-            new LoaderCallbacks<Cursor>() {
-
-        @Override
-        public CursorLoader onCreateLoader(int id, Bundle args) {
-            switch (mDisplayType) {
-              case STARRED_ONLY:
-                  return ContactTileLoaderFactory.createStarredLoader(getActivity());
-              case STREQUENT:
-                  return ContactTileLoaderFactory.createStrequentLoader(getActivity());
-              case FREQUENT_ONLY:
-                  return ContactTileLoaderFactory.createFrequentLoader(getActivity());
-              default:
-                  throw new IllegalStateException(
-                      "Unrecognized DisplayType " + mDisplayType);
-            }
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            if (data == null || data.isClosed()) {
-                Log.e(TAG, "Failed to load contacts");
-                return;
-            }
-            mAdapter.setContactCursor(data);
-            mEmptyView.setText(getEmptyStateText());
-            mListView.setEmptyView(mEmptyView);
-
-            // invalidate the menu options if needed
-            invalidateOptionsMenuIfNeeded();
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> loader) {}
-    };
-
-    private boolean isOptionsMenuChanged() {
-        return mOptionsMenuHasFrequents != internalHasFrequents();
-    }
-
-    private void invalidateOptionsMenuIfNeeded() {
-        if (isOptionsMenuChanged()) {
-            getActivity().invalidateOptionsMenu();
-        }
-    }
-
-    private String getEmptyStateText() {
-        String emptyText;
-        switch (mDisplayType) {
-            case STREQUENT:
-            case STARRED_ONLY:
-                emptyText = getString(R.string.listTotalAllContactsZeroStarred);
-                break;
-            case FREQUENT_ONLY:
-            case GROUP_MEMBERS:
-                emptyText = getString(R.string.noContacts);
-                break;
-            default:
-                throw new IllegalArgumentException("Unrecognized DisplayType " + mDisplayType);
-        }
-        return emptyText;
-    }
-
-    public void setListener(Listener listener) {
-        mListener = listener;
-    }
-
-    private ContactTileView.Listener mAdapterListener =
-            new ContactTileView.Listener() {
-        @Override
-        public void onContactSelected(Uri contactUri, Rect targetRect) {
-            if (mListener != null) {
-                mListener.onContactSelected(contactUri, targetRect);
-            }
-        }
-
-        @Override
-        public void onCallNumberDirectly(String phoneNumber) {
-            if (mListener != null) {
-                mListener.onCallNumberDirectly(phoneNumber);
-            }
-        }
-
-        @Override
-        public int getApproximateTileWidth() {
-            return getView().getWidth() / mAdapter.getColumnCount();
-        }
-    };
-}
diff --git a/src/com/android/contacts/list/ContactsIntentResolver.java b/src/com/android/contacts/list/ContactsIntentResolver.java
index 259e0c7..7cf9f5a 100644
--- a/src/com/android/contacts/list/ContactsIntentResolver.java
+++ b/src/com/android/contacts/list/ContactsIntentResolver.java
@@ -28,11 +28,15 @@
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Groups;
 import android.provider.ContactsContract.Intents;
 import android.provider.ContactsContract.Intents.Insert;
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.model.account.AccountWithDataSet;
+
 /**
  * Parses a Contacts intent, extracting all relevant parts and packaging them
  * as a {@link ContactsRequest} object.
@@ -70,6 +74,13 @@
         } else if (UiIntentActions.LIST_GROUP_ACTION.equals(action)) {
             request.setActionCode(ContactsRequest.ACTION_GROUP);
             // We no longer support UiIntentActions.GROUP_NAME_EXTRA_KEY
+        } else if (UiIntentActions.ACTION_SELECT_ITEMS.equals(action)) {
+            final String resolvedType = intent.resolveType(mContext);
+            if (Phone.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_PHONES);
+            } else if (Email.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_EMAILS);
+            }
         } else if (Intent.ACTION_PICK.equals(action)) {
             final String resolvedType = intent.resolveType(mContext);
             if (Contacts.CONTENT_TYPE.equals(resolvedType)) {
@@ -89,6 +100,14 @@
                 request.setLegacyCompatibilityMode(true);
             } else if (Email.CONTENT_TYPE.equals(resolvedType)) {
                 request.setActionCode(ContactsRequest.ACTION_PICK_EMAIL);
+            } else if (Groups.CONTENT_TYPE.equals(resolvedType)) {
+                request.setActionCode(ContactsRequest.ACTION_PICK_GROUP_MEMBERS);
+                request.setAccountWithDataSet(new AccountWithDataSet(
+                        intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_NAME),
+                        intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_TYPE),
+                        intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_DATA_SET)));
+                request.setRawContactIds(intent.getStringArrayListExtra(
+                        UiIntentActions.GROUP_CONTACT_IDS));
             }
         } else if (Intent.ACTION_CREATE_SHORTCUT.equals(action)) {
             String component = intent.getComponent().getClassName();
@@ -119,6 +138,9 @@
             }
         } else if (Intent.ACTION_INSERT_OR_EDIT.equals(action)) {
             request.setActionCode(ContactsRequest.ACTION_INSERT_OR_EDIT_CONTACT);
+        } else if (Intent.ACTION_INSERT.equals(action) &&
+                Groups.CONTENT_TYPE.equals(intent.getType())) {
+            request.setActionCode(ContactsRequest.ACTION_INSERT_GROUP);
         } else if (Intent.ACTION_SEARCH.equals(action)) {
             String query = intent.getStringExtra(SearchManager.QUERY);
             // If the {@link SearchManager.QUERY} is empty, then check if a phone number
@@ -136,11 +158,19 @@
             if (ContactsContract.Contacts.CONTENT_TYPE.equals(resolvedType)
                     || android.provider.Contacts.People.CONTENT_TYPE.equals(resolvedType)) {
                 request.setActionCode(ContactsRequest.ACTION_ALL_CONTACTS);
-            } else {
+            } else if (!GroupUtil.isGroupUri(intent.getData())){
                 request.setActionCode(ContactsRequest.ACTION_VIEW_CONTACT);
                 request.setContactUri(intent.getData());
                 intent.setAction(Intent.ACTION_DEFAULT);
                 intent.setData(null);
+            } else {
+                request.setActionCode(ContactsRequest.ACTION_VIEW_GROUP);
+                request.setContactUri(intent.getData());
+            }
+        } else if (Intent.ACTION_EDIT.equals(action)) {
+            if (GroupUtil.isGroupUri(intent.getData())){
+                request.setActionCode(ContactsRequest.ACTION_EDIT_GROUP);
+                request.setContactUri(intent.getData());
             }
         // Since this is the filter activity it receives all intents
         // dispatched from the SearchManager for security reasons
diff --git a/src/com/android/contacts/list/ContactsRequest.java b/src/com/android/contacts/list/ContactsRequest.java
index 636fe58..f581b0a 100644
--- a/src/com/android/contacts/list/ContactsRequest.java
+++ b/src/com/android/contacts/list/ContactsRequest.java
@@ -16,10 +16,11 @@
 
 package com.android.contacts.list;
 
-import android.content.Intent;
 import android.net.Uri;
-import android.os.Parcel;
-import android.os.Parcelable;
+
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import java.util.ArrayList;
 
 /**
  * Parsed form of the intent sent to the Contacts application.
@@ -38,6 +39,18 @@
     /** Show contents of a specific group */
     public static final int ACTION_GROUP = 20;
 
+    /** Show potential new members of a specific group */
+    public static final int ACTION_PICK_GROUP_MEMBERS = 21;
+
+    /** Create a new group */
+    public static final int ACTION_INSERT_GROUP = 22;
+
+    /** View a group */
+    public static final int ACTION_VIEW_GROUP = 23;
+
+    /** Edit a group */
+    public static final int ACTION_EDIT_GROUP = 24;
+
     /** Show all starred contacts */
     public static final int ACTION_STARRED = 30;
 
@@ -65,6 +78,12 @@
     /** Show all postal addresses and pick them when clicking */
     public static final int ACTION_PICK_EMAIL = 105;
 
+    /** Show a list of emails for selected contacts and select them when clicking */
+    public static final int ACTION_PICK_EMAILS = 106;
+
+    /** Show a list of phones for selected contacts and select them when clicking */
+    public static final int ACTION_PICK_PHONES = 107;
+
     /** Show all contacts and create a shortcut for the picked contact */
     public static final int ACTION_CREATE_SHORTCUT_CONTACT = 110;
 
@@ -85,10 +104,12 @@
     private CharSequence mTitle;
     private boolean mSearchMode;
     private String mQueryString;
-    private boolean mIncludeProfile;
+    private boolean mIncludeFavorites;
     private boolean mLegacyCompatibilityMode;
     private boolean mDirectorySearchEnabled = true;
     private Uri mContactUri;
+    private AccountWithDataSet mAccountWithDataSet;
+    private ArrayList<String> mRawContactIds;
 
     @Override
     public String toString() {
@@ -97,10 +118,12 @@
                 + " mTitle=" + mTitle
                 + " mSearchMode=" + mSearchMode
                 + " mQueryString=" + mQueryString
-                + " mIncludeProfile=" + mIncludeProfile
+                + " mIncludeFavorites=" + mIncludeFavorites
                 + " mLegacyCompatibilityMode=" + mLegacyCompatibilityMode
                 + " mDirectorySearchEnabled=" + mDirectorySearchEnabled
                 + " mContactUri=" + mContactUri
+                + " mAccountWithDataSet=" + mAccountWithDataSet
+                + " mRawContactIds=" + mRawContactIds
                 + "}";
     }
 
@@ -144,12 +167,12 @@
         mQueryString = string;
     }
 
-    public boolean shouldIncludeProfile() {
-        return mIncludeProfile;
+    public boolean shouldIncludeFavorites() {
+        return mIncludeFavorites;
     }
 
-    public void setIncludeProfile(boolean includeProfile) {
-        mIncludeProfile = includeProfile;
+    public void setIncludeFavorites(boolean includeFavorites) {
+        mIncludeFavorites = includeFavorites;
     }
 
     public boolean isLegacyCompatibilityMode() {
@@ -179,4 +202,20 @@
     public void setContactUri(Uri contactUri) {
         this.mContactUri = contactUri;
     }
+
+    public AccountWithDataSet getAccountWithDataSet() {
+        return mAccountWithDataSet;
+    }
+
+    public void setAccountWithDataSet(AccountWithDataSet accountWithDataSet) {
+        mAccountWithDataSet = accountWithDataSet;
+    }
+
+    public ArrayList<String> getRawContactIds() {
+        return mRawContactIds;
+    }
+
+    public void setRawContactIds(ArrayList<String> rawContactIds) {
+        mRawContactIds = rawContactIds;
+    }
 }
diff --git a/src/com/android/contacts/list/ContactsSectionIndexer.java b/src/com/android/contacts/list/ContactsSectionIndexer.java
new file mode 100644
index 0000000..9d20bfe
--- /dev/null
+++ b/src/com/android/contacts/list/ContactsSectionIndexer.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.text.TextUtils;
+import android.widget.SectionIndexer;
+
+import java.util.Arrays;
+
+/**
+ * A section indexer that is configured with precomputed section titles and
+ * their respective counts.
+ */
+public class ContactsSectionIndexer implements SectionIndexer {
+
+    protected static final String BLANK_HEADER_STRING = "\u2026"; // ellipsis
+
+    private String[] mSections;
+    private int[] mPositions;
+    private int mCount;
+
+    /**
+     * Constructor.
+     *
+     * @param sections a non-null array
+     * @param counts a non-null array of the same size as <code>sections</code>
+     */
+    public ContactsSectionIndexer(String[] sections, int[] counts) {
+        if (sections == null || counts == null) {
+            throw new NullPointerException();
+        }
+
+        if (sections.length != counts.length) {
+            throw new IllegalArgumentException(
+                    "The sections and counts arrays must have the same length");
+        }
+
+        // TODO process sections/counts based on current locale and/or specific section titles
+
+        this.mSections = sections;
+        mPositions = new int[counts.length];
+        int position = 0;
+        for (int i = 0; i < counts.length; i++) {
+            // Enforce that there will be no null or empty sections.
+            if (TextUtils.isEmpty(mSections[i])) {
+                mSections[i] = BLANK_HEADER_STRING;
+            } else if (!mSections[i].equals(BLANK_HEADER_STRING)) {
+                mSections[i] = mSections[i].trim();
+            }
+
+            mPositions[i] = position;
+            position += counts[i];
+        }
+        mCount = position;
+    }
+
+    public Object[] getSections() {
+        return mSections;
+    }
+
+    public int[] getPositions() {
+        return mPositions;
+    }
+
+    public int getPositionForSection(int section) {
+        if (section < 0 || section >= mSections.length) {
+            return -1;
+        }
+
+        return mPositions[section];
+    }
+
+    public int getSectionForPosition(int position) {
+        if (position < 0 || position >= mCount) {
+            return -1;
+        }
+
+        int index = Arrays.binarySearch(mPositions, position);
+
+        /*
+         * Consider this example: section positions are 0, 3, 5; the supplied
+         * position is 4. The section corresponding to position 4 starts at
+         * position 3, so the expected return value is 1. Binary search will not
+         * find 4 in the array and thus will return -insertPosition-1, i.e. -3.
+         * To get from that number to the expected value of 1 we need to negate
+         * and subtract 2.
+         */
+        return index >= 0 ? index : -index - 2;
+    }
+
+    public void setFavoritesHeader(int numberOfItemsToAdd) {
+        if (mSections != null) {
+            // Don't do anything if the header is already set properly.
+            if (mSections.length > 0 && mSections[0].isEmpty()) {
+                return;
+            }
+
+            // Since the section indexer isn't aware of the profile at the top, we need to add a
+            // special section at the top for it and shift everything else down.
+            String[] tempSections = new String[mSections.length + 1];
+            int[] tempPositions = new int[mPositions.length + 1];
+            // Favorites section is empty to hide fast scroll preview.
+            tempSections[0] = "";
+            tempPositions[0] = 0;
+            for (int i = 1; i <= mPositions.length; i++) {
+                tempSections[i] = mSections[i - 1];
+                tempPositions[i] = mPositions[i - 1] + numberOfItemsToAdd;
+            }
+            mSections = tempSections;
+            mPositions = tempPositions;
+            mCount = mCount + numberOfItemsToAdd;
+        }
+    }
+}
diff --git a/src/com/android/contacts/list/ContactsUnavailableFragment.java b/src/com/android/contacts/list/ContactsUnavailableFragment.java
index 8cbbaa8..c13e475 100644
--- a/src/com/android/contacts/list/ContactsUnavailableFragment.java
+++ b/src/com/android/contacts/list/ContactsUnavailableFragment.java
@@ -17,6 +17,7 @@
 
 import android.app.Fragment;
 import android.content.Context;
+import android.content.Intent;
 import android.content.res.Configuration;
 import android.graphics.PorterDuff;
 import android.os.Bundle;
@@ -28,12 +29,14 @@
 import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import com.android.contacts.R;
-import com.android.contacts.activities.ActionBarAdapter.TabState;
 import com.android.contacts.compat.ProviderStatusCompat;
+import com.android.contacts.interactions.ImportDialogFragment;
+import com.android.contacts.util.ImplicitIntentsUtil;
 
 /**
  * Fragment shown when contacts are unavailable. It contains provider status
@@ -48,24 +51,26 @@
     private Button mImportContactsButton;
     private ProgressBar mProgress;
     private View mButtonsContainer;
-    private int mNoContactsMsgResId = -1;
-    private int mLastTab = -1;
-
-    private OnContactsUnavailableActionListener mListener;
 
     private Integer mProviderStatus;
 
     @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-    }
-
-    @Override
     public View onCreateView(
             LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         mView = inflater.inflate(R.layout.contacts_unavailable_fragment, null);
 
         mImageView = (ImageView) mView.findViewById(R.id.empty_image);
+        final LinearLayout.LayoutParams layoutParams =
+                (LinearLayout.LayoutParams) mImageView.getLayoutParams();
+        final int screenHeight = getResources().getDisplayMetrics().heightPixels;
+        final int topMargin =
+                screenHeight / getResources()
+                        .getInteger(R.integer.contacts_no_account_empty_image_margin_divisor)
+                - getResources()
+                        .getDimensionPixelSize(R.dimen.contacts_no_account_empty_image_offset);
+        layoutParams.setMargins(0, topMargin, 0, 0);
+        layoutParams.gravity = Gravity.CENTER_HORIZONTAL;
+        mImageView.setLayoutParams(layoutParams);
 
         mMessageView = (TextView) mView.findViewById(R.id.message);
         mAddAccountButton = (Button) mView.findViewById(R.id.add_account_button);
@@ -89,11 +94,6 @@
         return mView;
     }
 
-    public void setOnContactsUnavailableActionListener(
-            OnContactsUnavailableActionListener listener) {
-        mListener = listener;
-    }
-
     public void updateStatus(int providerStatus) {
         mProviderStatus = providerStatus;
         if (mView == null) {
@@ -102,10 +102,9 @@
         }
         if (providerStatus == ProviderStatusCompat.STATUS_EMPTY) {
             updateViewsForEmptyStatus();
-        } else if (providerStatus == ProviderStatusCompat.STATUS_BUSY) {
-            updateViewsForBusyStatus(R.string.upgrade_in_progress);
-        } else if (providerStatus == ProviderStatusCompat.STATUS_CHANGING_LOCALE) {
-            updateViewsForBusyStatus(R.string.locale_change_in_progress);
+        } else if (providerStatus == ProviderStatusCompat.STATUS_BUSY
+                || providerStatus == ProviderStatusCompat.STATUS_CHANGING_LOCALE) {
+            updateViewsForBusyStatus();
         }
     }
 
@@ -113,80 +112,35 @@
      * Update views in the fragment when provider status is empty.
      */
     private void updateViewsForEmptyStatus() {
-        setTabInfo(mNoContactsMsgResId, mLastTab);
-        if (mLastTab == TabState.ALL) {
-            updateButtonVisibilty(View.VISIBLE);
-        }
+        mMessageView.setVisibility(View.VISIBLE);
+        updateButtonVisibility(View.VISIBLE);
         mProgress.setVisibility(View.GONE);
     }
 
     /**
      * Update views in the fragment when provider status is busy.
-     *
-     * @param resId resource ID of the string to show in mMessageView.
      */
-    private void updateViewsForBusyStatus(int resId) {
-        mMessageView.setText(resId);
-        mMessageView.setGravity(Gravity.CENTER_HORIZONTAL);
-        mMessageView.setVisibility(View.VISIBLE);
-        updateButtonVisibilty(View.GONE);
+    private void updateViewsForBusyStatus() {
+        mMessageView.setVisibility(View.GONE);
+        mImageView.setVisibility(View.GONE);
+        updateButtonVisibility(View.GONE);
         mProgress.setVisibility(View.VISIBLE);
-        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
-            final ViewGroup.MarginLayoutParams lp =
-                    (ViewGroup.MarginLayoutParams) mMessageView.getLayoutParams();
-            final int marginTop =
-                    (int) getResources().getDimension(R.dimen.update_contact_list_top_margin);
-            lp.setMargins(0, marginTop, 0, 0);
-            mImageView.setVisibility(View.GONE);
-        } else {
-            mImageView.setVisibility(View.INVISIBLE);
-        }
     }
 
     @Override
     public void onClick(View v) {
-        if (mListener == null) {
-            return;
-        }
-        switch (v.getId()) {
-            case R.id.add_account_button:
-                mListener.onAddAccountAction();
-                break;
-            case R.id.import_contacts_button:
-                mListener.onImportContactsFromFileAction();
-                break;
+        final int id = v.getId();
+        if (id == R.id.add_account_button) {
+            final Intent intent = ImplicitIntentsUtil.getIntentForAddingGoogleAccount();
+            ImplicitIntentsUtil.startActivityOutsideApp(getActivity(), intent);
+
+        } else if (id == R.id.import_contacts_button) {
+            ImportDialogFragment.show(getFragmentManager());
+
         }
     }
 
-    /**
-     * Set the message to be shown if no data is available for the selected tab
-     *
-     * @param resId - String resource ID of the message , -1 means view will not be visible
-     */
-    public void setTabInfo(int resId, int callerTab) {
-        mNoContactsMsgResId = resId;
-        mLastTab = callerTab;
-        if ((mMessageView != null) && (mProviderStatus != null) &&
-                mProviderStatus.equals(ProviderStatusCompat.STATUS_EMPTY)) {
-            if (resId != -1) {
-                mMessageView.setText(mNoContactsMsgResId);
-                mMessageView.setGravity(Gravity.CENTER_HORIZONTAL);
-                mMessageView.setVisibility(View.VISIBLE);
-                if (callerTab == TabState.FAVORITES) {
-                    mImageView.setImageResource(R.drawable.ic_star_black_128dp);
-                    mProgress.setVisibility(View.GONE);
-                    updateButtonVisibilty(View.GONE);
-                } else if (callerTab == TabState.ALL) {
-                    mImageView.setImageResource(R.drawable.ic_person_black_128dp);
-                    updateButtonVisibilty(View.VISIBLE);
-                }
-            } else {
-                mMessageView.setVisibility(View.GONE);
-            }
-        }
-    }
-
-    private void updateButtonVisibilty(int visibility) {
+    private void updateButtonVisibility(int visibility) {
         if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
             mAddAccountButton.setVisibility(visibility);
             mImportContactsButton.setVisibility(visibility);
diff --git a/src/com/android/contacts/list/CustomContactListFilterActivity.java b/src/com/android/contacts/list/CustomContactListFilterActivity.java
new file mode 100644
index 0000000..92087b3
--- /dev/null
+++ b/src/com/android/contacts/list/CustomContactListFilterActivity.java
@@ -0,0 +1,991 @@
+/*
+ * Copyright (C) 2009 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.list;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.LoaderManager.LoaderCallbacks;
+import android.app.ProgressDialog;
+import android.content.ContentProviderOperation;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.Loader;
+import android.content.OperationApplicationException;
+import android.database.Cursor;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Groups;
+import android.provider.ContactsContract.Settings;
+import android.util.Log;
+import android.view.ContextMenu;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MenuItem.OnMenuItemClickListener;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseExpandableListAdapter;
+import android.widget.CheckBox;
+import android.widget.ExpandableListAdapter;
+import android.widget.ExpandableListView;
+import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.GoogleAccountType;
+import com.android.contacts.util.EmptyService;
+import com.android.contacts.util.LocalizedNameResolver;
+import com.android.contacts.util.WeakAsyncTask;
+import com.android.contacts.util.concurrent.ContactsExecutors;
+import com.android.contacts.util.concurrent.ListenableFutureLoader;
+import com.google.common.base.Function;
+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.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.annotation.Nullable;
+
+/**
+ * Shows a list of all available {@link Groups} available, letting the user
+ * select which ones they want to be visible.
+ */
+public class CustomContactListFilterActivity extends Activity implements
+        ExpandableListView.OnChildClickListener,
+        LoaderCallbacks<CustomContactListFilterActivity.AccountSet> {
+    private static final String TAG = "CustomContactListFilter";
+
+    public static final String EXTRA_CURRENT_LIST_FILTER_TYPE = "currentListFilterType";
+
+    private static final int ACCOUNT_SET_LOADER_ID = 1;
+
+    private ExpandableListView mList;
+    private DisplayAdapter mAdapter;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        setContentView(R.layout.contact_list_filter_custom);
+
+        mList = (ExpandableListView) findViewById(android.R.id.list);
+        mList.setOnChildClickListener(this);
+        mList.setHeaderDividersEnabled(true);
+        mList.setChildDivider(new ColorDrawable(Color.TRANSPARENT));
+
+        mList.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
+            @Override
+            public void onLayoutChange(final View v, final int left, final int top, final int right,
+                    final int bottom, final int oldLeft, final int oldTop, final int oldRight,
+                    final int oldBottom) {
+                mList.setIndicatorBounds(
+                        mList.getWidth() - getResources().getDimensionPixelSize(
+                                R.dimen.contact_filter_indicator_padding_end),
+                        mList.getWidth() - getResources().getDimensionPixelSize(
+                                R.dimen.contact_filter_indicator_padding_start));
+            }
+        });
+
+        mAdapter = new DisplayAdapter(this);
+
+        mList.setOnCreateContextMenuListener(this);
+
+        mList.setAdapter(mAdapter);
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            // android.R.id.home will be triggered in onOptionsItemSelected()
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+    }
+
+    public static class CustomFilterConfigurationLoader extends ListenableFutureLoader<AccountSet> {
+
+        private AccountTypeManager mAccountTypeManager;
+
+        public CustomFilterConfigurationLoader(Context context) {
+            super(context, new IntentFilter(AccountTypeManager.BROADCAST_ACCOUNTS_CHANGED));
+            mAccountTypeManager = AccountTypeManager.getInstance(context);
+        }
+
+        @Override
+        public ListenableFuture<AccountSet> loadData() {
+            return Futures.transform(mAccountTypeManager.getAccountsAsync(),
+                    new Function<List<AccountInfo>, AccountSet>() {
+                @Nullable
+                @Override
+                public AccountSet apply(@Nullable List<AccountInfo> input) {
+                    return createAccountSet(input);
+                }
+            }, ContactsExecutors.getDefaultThreadPoolExecutor());
+        }
+
+        private AccountSet createAccountSet(List<AccountInfo> sourceAccounts) {
+            final Context context = getContext();
+            final ContentResolver resolver = context.getContentResolver();
+
+            final AccountSet accounts = new AccountSet();
+
+            // Don't include the null account because it doesn't support writing to
+            // ContactsContract.Settings
+            for (AccountInfo info : sourceAccounts) {
+                final AccountWithDataSet account = info.getAccount();
+                final AccountDisplay accountDisplay = new AccountDisplay(resolver, info);
+
+                final Uri.Builder groupsUri = Groups.CONTENT_URI.buildUpon()
+                        .appendQueryParameter(Groups.ACCOUNT_NAME, account.name)
+                        .appendQueryParameter(Groups.ACCOUNT_TYPE, account.type);
+                if (account.dataSet != null) {
+                    groupsUri.appendQueryParameter(Groups.DATA_SET, account.dataSet).build();
+                }
+                final Cursor cursor = resolver.query(groupsUri.build(), null, null, null, null);
+                if (cursor == null) {
+                    continue;
+                }
+                android.content.EntityIterator iterator =
+                        ContactsContract.Groups.newEntityIterator(cursor);
+                try {
+                    boolean hasGroups = false;
+
+                    // Create entries for each known group
+                    while (iterator.hasNext()) {
+                        final ContentValues values = iterator.next().getEntityValues();
+                        final GroupDelta group = GroupDelta.fromBefore(values);
+                        accountDisplay.addGroup(group);
+                        hasGroups = true;
+                    }
+                    // Create single entry handling ungrouped status
+                    accountDisplay.mUngrouped =
+                        GroupDelta.fromSettings(resolver, account.name, account.type,
+                                account.dataSet, hasGroups);
+                    accountDisplay.addGroup(accountDisplay.mUngrouped);
+                } finally {
+                    iterator.close();
+                }
+
+                accounts.add(accountDisplay);
+            }
+
+            return accounts;
+        }
+    }
+
+    @Override
+    protected void onStart() {
+        getLoaderManager().initLoader(ACCOUNT_SET_LOADER_ID, null, this);
+        super.onStart();
+    }
+
+    @Override
+    public Loader<AccountSet> onCreateLoader(int id, Bundle args) {
+        return new CustomFilterConfigurationLoader(this);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<AccountSet> loader, AccountSet data) {
+        mAdapter.setAccounts(data);
+    }
+
+    @Override
+    public void onLoaderReset(Loader<AccountSet> loader) {
+        mAdapter.setAccounts(null);
+    }
+
+    private static final int DEFAULT_SHOULD_SYNC = 1;
+    private static final int DEFAULT_VISIBLE = 0;
+
+    /**
+     * Entry holding any changes to {@link Groups} or {@link Settings} rows,
+     * such as {@link Groups#SHOULD_SYNC} or {@link Groups#GROUP_VISIBLE}.
+     */
+    protected static class GroupDelta extends ValuesDelta {
+        private boolean mUngrouped = false;
+        private boolean mAccountHasGroups;
+
+        private GroupDelta() {
+            super();
+        }
+
+        /**
+         * Build {@link GroupDelta} from the {@link Settings} row for the given
+         * {@link Settings#ACCOUNT_NAME}, {@link Settings#ACCOUNT_TYPE}, and
+         * {@link Settings#DATA_SET}.
+         */
+        public static GroupDelta fromSettings(ContentResolver resolver, String accountName,
+                String accountType, String dataSet, boolean accountHasGroups) {
+            final Uri.Builder settingsUri = Settings.CONTENT_URI.buildUpon()
+                    .appendQueryParameter(Settings.ACCOUNT_NAME, accountName)
+                    .appendQueryParameter(Settings.ACCOUNT_TYPE, accountType);
+            if (dataSet != null) {
+                settingsUri.appendQueryParameter(Settings.DATA_SET, dataSet);
+            }
+            final Cursor cursor = resolver.query(settingsUri.build(), new String[] {
+                    Settings.SHOULD_SYNC, Settings.UNGROUPED_VISIBLE
+            }, null, null, null);
+
+            try {
+                final ContentValues values = new ContentValues();
+                values.put(Settings.ACCOUNT_NAME, accountName);
+                values.put(Settings.ACCOUNT_TYPE, accountType);
+                values.put(Settings.DATA_SET, dataSet);
+
+                if (cursor != null && cursor.moveToFirst()) {
+                    // Read existing values when present
+                    values.put(Settings.SHOULD_SYNC, cursor.getInt(0));
+                    values.put(Settings.UNGROUPED_VISIBLE, cursor.getInt(1));
+                    return fromBefore(values).setUngrouped(accountHasGroups);
+                } else {
+                    // Nothing found, so treat as create
+                    values.put(Settings.SHOULD_SYNC, DEFAULT_SHOULD_SYNC);
+                    values.put(Settings.UNGROUPED_VISIBLE, DEFAULT_VISIBLE);
+                    return fromAfter(values).setUngrouped(accountHasGroups);
+                }
+            } finally {
+                if (cursor != null) cursor.close();
+            }
+        }
+
+        public static GroupDelta fromBefore(ContentValues before) {
+            final GroupDelta entry = new GroupDelta();
+            entry.mBefore = before;
+            entry.mAfter = new ContentValues();
+            return entry;
+        }
+
+        public static GroupDelta fromAfter(ContentValues after) {
+            final GroupDelta entry = new GroupDelta();
+            entry.mBefore = null;
+            entry.mAfter = after;
+            return entry;
+        }
+
+        protected GroupDelta setUngrouped(boolean accountHasGroups) {
+            mUngrouped = true;
+            mAccountHasGroups = accountHasGroups;
+            return this;
+        }
+
+        @Override
+        public boolean beforeExists() {
+            return mBefore != null;
+        }
+
+        public boolean getShouldSync() {
+            return getAsInteger(mUngrouped ? Settings.SHOULD_SYNC : Groups.SHOULD_SYNC,
+                    DEFAULT_SHOULD_SYNC) != 0;
+        }
+
+        public boolean getVisible() {
+            return getAsInteger(mUngrouped ? Settings.UNGROUPED_VISIBLE : Groups.GROUP_VISIBLE,
+                    DEFAULT_VISIBLE) != 0;
+        }
+
+        public void putShouldSync(boolean shouldSync) {
+            put(mUngrouped ? Settings.SHOULD_SYNC : Groups.SHOULD_SYNC, shouldSync ? 1 : 0);
+        }
+
+        public void putVisible(boolean visible) {
+            put(mUngrouped ? Settings.UNGROUPED_VISIBLE : Groups.GROUP_VISIBLE, visible ? 1 : 0);
+        }
+
+        private String getAccountType() {
+            return (mBefore == null ? mAfter : mBefore).getAsString(Settings.ACCOUNT_TYPE);
+        }
+
+        public CharSequence getTitle(Context context) {
+            if (mUngrouped) {
+                final String customAllContactsName =
+                        LocalizedNameResolver.getAllContactsName(context, getAccountType());
+                if (customAllContactsName != null) {
+                    return customAllContactsName;
+                }
+                if (mAccountHasGroups) {
+                    return context.getText(R.string.display_ungrouped);
+                } else {
+                    return context.getText(R.string.display_all_contacts);
+                }
+            } else {
+                final Integer titleRes = getAsInteger(Groups.TITLE_RES);
+                if (titleRes != null && titleRes != 0) {
+                    final String packageName = getAsString(Groups.RES_PACKAGE);
+                    if (packageName != null) {
+                        return context.getPackageManager().getText(packageName, titleRes, null);
+                    }
+                }
+                return getAsString(Groups.TITLE);
+            }
+        }
+
+        /**
+         * Build a possible {@link ContentProviderOperation} to persist any
+         * changes to the {@link Groups} or {@link Settings} row described by
+         * this {@link GroupDelta}.
+         */
+        public ContentProviderOperation buildDiff() {
+            if (isInsert()) {
+                // Only allow inserts for Settings
+                if (mUngrouped) {
+                    mAfter.remove(mIdColumn);
+                    return ContentProviderOperation.newInsert(Settings.CONTENT_URI)
+                            .withValues(mAfter)
+                            .build();
+                }
+                else {
+                    throw new IllegalStateException("Unexpected diff");
+                }
+            } else if (isUpdate()) {
+                if (mUngrouped) {
+                    String accountName = this.getAsString(Settings.ACCOUNT_NAME);
+                    String accountType = this.getAsString(Settings.ACCOUNT_TYPE);
+                    String dataSet = this.getAsString(Settings.DATA_SET);
+                    StringBuilder selection = new StringBuilder(Settings.ACCOUNT_NAME + "=? AND "
+                            + Settings.ACCOUNT_TYPE + "=?");
+                    String[] selectionArgs;
+                    if (dataSet == null) {
+                        selection.append(" AND " + Settings.DATA_SET + " IS NULL");
+                        selectionArgs = new String[] {accountName, accountType};
+                    } else {
+                        selection.append(" AND " + Settings.DATA_SET + "=?");
+                        selectionArgs = new String[] {accountName, accountType, dataSet};
+                    }
+                    return ContentProviderOperation.newUpdate(Settings.CONTENT_URI)
+                            .withSelection(selection.toString(), selectionArgs)
+                            .withValues(mAfter)
+                            .build();
+                } else {
+                    return ContentProviderOperation.newUpdate(
+                                    addCallerIsSyncAdapterParameter(Groups.CONTENT_URI))
+                            .withSelection(Groups._ID + "=" + this.getId(), null)
+                            .withValues(mAfter)
+                            .build();
+                }
+            } else {
+                return null;
+            }
+        }
+    }
+
+    private static Uri addCallerIsSyncAdapterParameter(Uri uri) {
+        return uri.buildUpon()
+            .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
+            .build();
+    }
+
+    /**
+     * {@link Comparator} to sort by {@link Groups#_ID}.
+     */
+    private static Comparator<GroupDelta> sIdComparator = new Comparator<GroupDelta>() {
+        public int compare(GroupDelta object1, GroupDelta object2) {
+            final Long id1 = object1.getId();
+            final Long id2 = object2.getId();
+            if (id1 == null && id2 == null) {
+                return 0;
+            } else if (id1 == null) {
+                return -1;
+            } else if (id2 == null) {
+                return 1;
+            } else if (id1 < id2) {
+                return -1;
+            } else if (id1 > id2) {
+                return 1;
+            } else {
+                return 0;
+            }
+        }
+    };
+
+    /**
+     * Set of all {@link AccountDisplay} entries, one for each source.
+     */
+    protected static class AccountSet extends ArrayList<AccountDisplay> {
+        public ArrayList<ContentProviderOperation> buildDiff() {
+            final ArrayList<ContentProviderOperation> diff = Lists.newArrayList();
+            for (AccountDisplay account : this) {
+                account.buildDiff(diff);
+            }
+            return diff;
+        }
+    }
+
+    /**
+     * {@link GroupDelta} details for a single {@link AccountWithDataSet}, usually shown as
+     * children under a single expandable group.
+     */
+    protected static class AccountDisplay {
+        public final String mName;
+        public final String mType;
+        public final String mDataSet;
+        public final AccountInfo mAccountInfo;
+
+        public GroupDelta mUngrouped;
+        public ArrayList<GroupDelta> mSyncedGroups = Lists.newArrayList();
+        public ArrayList<GroupDelta> mUnsyncedGroups = Lists.newArrayList();
+
+        public GroupDelta getGroup(int position) {
+            if (position < mSyncedGroups.size()) {
+                return mSyncedGroups.get(position);
+            }
+            position -= mSyncedGroups.size();
+            return mUnsyncedGroups.get(position);
+        }
+
+        /**
+         * Build an {@link AccountDisplay} covering all {@link Groups} under the
+         * given {@link AccountWithDataSet}.
+         */
+        public AccountDisplay(ContentResolver resolver, AccountInfo accountInfo) {
+            mName = accountInfo.getAccount().name;
+            mType = accountInfo.getAccount().type;
+            mDataSet = accountInfo.getAccount().dataSet;
+            mAccountInfo = accountInfo;
+        }
+
+        /**
+         * Add the given {@link GroupDelta} internally, filing based on its
+         * {@link GroupDelta#getShouldSync()} status.
+         */
+        private void addGroup(GroupDelta group) {
+            if (group.getShouldSync()) {
+                mSyncedGroups.add(group);
+            } else {
+                mUnsyncedGroups.add(group);
+            }
+        }
+
+        /**
+         * Set the {@link GroupDelta#putShouldSync(boolean)} value for all
+         * children {@link GroupDelta} rows.
+         */
+        public void setShouldSync(boolean shouldSync) {
+            final Iterator<GroupDelta> oppositeChildren = shouldSync ?
+                    mUnsyncedGroups.iterator() : mSyncedGroups.iterator();
+            while (oppositeChildren.hasNext()) {
+                final GroupDelta child = oppositeChildren.next();
+                setShouldSync(child, shouldSync, false);
+                oppositeChildren.remove();
+            }
+        }
+
+        public void setShouldSync(GroupDelta child, boolean shouldSync) {
+            setShouldSync(child, shouldSync, true);
+        }
+
+        /**
+         * Set {@link GroupDelta#putShouldSync(boolean)}, and file internally
+         * based on updated state.
+         */
+        public void setShouldSync(GroupDelta child, boolean shouldSync, boolean attemptRemove) {
+            child.putShouldSync(shouldSync);
+            if (shouldSync) {
+                if (attemptRemove) {
+                    mUnsyncedGroups.remove(child);
+                }
+                mSyncedGroups.add(child);
+                Collections.sort(mSyncedGroups, sIdComparator);
+            } else {
+                if (attemptRemove) {
+                    mSyncedGroups.remove(child);
+                }
+                mUnsyncedGroups.add(child);
+            }
+        }
+
+        /**
+         * Build set of {@link ContentProviderOperation} to persist any user
+         * changes to {@link GroupDelta} rows under this {@link AccountWithDataSet}.
+         */
+        public void buildDiff(ArrayList<ContentProviderOperation> diff) {
+            for (GroupDelta group : mSyncedGroups) {
+                final ContentProviderOperation oper = group.buildDiff();
+                if (oper != null) diff.add(oper);
+            }
+            for (GroupDelta group : mUnsyncedGroups) {
+                final ContentProviderOperation oper = group.buildDiff();
+                if (oper != null) diff.add(oper);
+            }
+        }
+    }
+
+    /**
+     * {@link ExpandableListAdapter} that shows {@link GroupDelta} settings,
+     * grouped by {@link AccountWithDataSet} type. Shows footer row when any groups are
+     * unsynced, as determined through {@link AccountDisplay#mUnsyncedGroups}.
+     */
+    protected static class DisplayAdapter extends BaseExpandableListAdapter {
+        private Context mContext;
+        private LayoutInflater mInflater;
+        private AccountTypeManager mAccountTypes;
+        private AccountSet mAccounts;
+
+        private boolean mChildWithPhones = false;
+
+        public DisplayAdapter(Context context) {
+            mContext = context;
+            mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            mAccountTypes = AccountTypeManager.getInstance(context);
+        }
+
+        public void setAccounts(AccountSet accounts) {
+            mAccounts = accounts;
+            notifyDataSetChanged();
+        }
+
+        /**
+         * In group descriptions, show the number of contacts with phone
+         * numbers, in addition to the total contacts.
+         */
+        public void setChildDescripWithPhones(boolean withPhones) {
+            mChildWithPhones = withPhones;
+        }
+
+        @Override
+        public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
+                ViewGroup parent) {
+            if (convertView == null) {
+                convertView = mInflater.inflate(
+                        R.layout.custom_contact_list_filter_account, parent, false);
+            }
+
+            final TextView text1 = (TextView)convertView.findViewById(android.R.id.text1);
+            final TextView text2 = (TextView)convertView.findViewById(android.R.id.text2);
+
+            final AccountDisplay account = (AccountDisplay)this.getGroup(groupPosition);
+
+            text1.setText(account.mAccountInfo.getNameLabel());
+            text1.setVisibility(!account.mAccountInfo.isDeviceAccount()
+                    || account.mAccountInfo.hasDistinctName()
+                    ? View.VISIBLE : View.GONE);
+            text2.setText(account.mAccountInfo.getTypeLabel());
+
+            final int textColor = mContext.getResources().getColor(isExpanded
+                    ? R.color.dialtacts_theme_color
+                    : R.color.account_filter_text_color);
+            text1.setTextColor(textColor);
+            text2.setTextColor(textColor);
+
+            return convertView;
+        }
+
+        @Override
+        public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
+                View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = mInflater.inflate(
+                        R.layout.custom_contact_list_filter_group, parent, false);
+            }
+
+            final TextView text1 = (TextView)convertView.findViewById(android.R.id.text1);
+            final TextView text2 = (TextView)convertView.findViewById(android.R.id.text2);
+            final CheckBox checkbox = (CheckBox)convertView.findViewById(android.R.id.checkbox);
+
+            final AccountDisplay account = mAccounts.get(groupPosition);
+            final GroupDelta child = (GroupDelta)this.getChild(groupPosition, childPosition);
+            if (child != null) {
+                // Handle normal group, with title and checkbox
+                final boolean groupVisible = child.getVisible();
+                checkbox.setVisibility(View.VISIBLE);
+                checkbox.setChecked(groupVisible);
+
+                final CharSequence groupTitle = child.getTitle(mContext);
+                text1.setText(groupTitle);
+                text2.setVisibility(View.GONE);
+            } else {
+                // When unknown child, this is "more" footer view
+                checkbox.setVisibility(View.GONE);
+                text1.setText(R.string.display_more_groups);
+                text2.setVisibility(View.GONE);
+            }
+
+            // Show divider at bottom only for the last child.
+            final View dividerBottom = convertView.findViewById(R.id.adapter_divider_bottom);
+            dividerBottom.setVisibility(isLastChild ? View.VISIBLE : View.GONE);
+
+            return convertView;
+        }
+
+        @Override
+        public Object getChild(int groupPosition, int childPosition) {
+            final AccountDisplay account = mAccounts.get(groupPosition);
+            final boolean validChild = childPosition >= 0
+                    && childPosition < account.mSyncedGroups.size()
+                    + account.mUnsyncedGroups.size();
+            if (validChild) {
+                return account.getGroup(childPosition);
+            } else {
+                return null;
+            }
+        }
+
+        @Override
+        public long getChildId(int groupPosition, int childPosition) {
+            final GroupDelta child = (GroupDelta)getChild(groupPosition, childPosition);
+            if (child != null) {
+                final Long childId = child.getId();
+                return childId != null ? childId : Long.MIN_VALUE;
+            } else {
+                return Long.MIN_VALUE;
+            }
+        }
+
+        @Override
+        public int getChildrenCount(int groupPosition) {
+            // Count is any synced groups, plus possible footer
+            final AccountDisplay account = mAccounts.get(groupPosition);
+            return account.mSyncedGroups.size() + account.mUnsyncedGroups.size();
+        }
+
+        @Override
+        public Object getGroup(int groupPosition) {
+            return mAccounts.get(groupPosition);
+        }
+
+        @Override
+        public int getGroupCount() {
+            if (mAccounts == null) {
+                return 0;
+            }
+            return mAccounts.size();
+        }
+
+        @Override
+        public long getGroupId(int groupPosition) {
+            return groupPosition;
+        }
+
+        @Override
+        public boolean hasStableIds() {
+            return true;
+        }
+
+        @Override
+        public boolean isChildSelectable(int groupPosition, int childPosition) {
+            return true;
+        }
+    }
+
+    /**
+     * Handle any clicks on {@link ExpandableListAdapter} children, which
+     * usually mean toggling its visible state.
+     */
+    @Override
+    public boolean onChildClick(ExpandableListView parent, View view, int groupPosition,
+            int childPosition, long id) {
+        final CheckBox checkbox = (CheckBox)view.findViewById(android.R.id.checkbox);
+
+        final AccountDisplay account = (AccountDisplay)mAdapter.getGroup(groupPosition);
+        final GroupDelta child = (GroupDelta)mAdapter.getChild(groupPosition, childPosition);
+        if (child != null) {
+            checkbox.toggle();
+            child.putVisible(checkbox.isChecked());
+        } else {
+            // Open context menu for bringing back unsynced
+            this.openContextMenu(view);
+        }
+        return true;
+    }
+
+    // TODO: move these definitions to framework constants when we begin
+    // defining this mode through <sync-adapter> tags
+    private static final int SYNC_MODE_UNSUPPORTED = 0;
+    private static final int SYNC_MODE_UNGROUPED = 1;
+    private static final int SYNC_MODE_EVERYTHING = 2;
+
+    protected int getSyncMode(AccountDisplay account) {
+        // TODO: read sync mode through <sync-adapter> definition
+        if (GoogleAccountType.ACCOUNT_TYPE.equals(account.mType) && account.mDataSet == null) {
+            return SYNC_MODE_EVERYTHING;
+        } else {
+            return SYNC_MODE_UNSUPPORTED;
+        }
+    }
+
+    @Override
+    public void onCreateContextMenu(ContextMenu menu, View view,
+            ContextMenu.ContextMenuInfo menuInfo) {
+        super.onCreateContextMenu(menu, view, menuInfo);
+
+        // Bail if not working with expandable long-press, or if not child
+        if (!(menuInfo instanceof ExpandableListContextMenuInfo)) return;
+
+        final ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) menuInfo;
+        final int groupPosition = ExpandableListView.getPackedPositionGroup(info.packedPosition);
+        final int childPosition = ExpandableListView.getPackedPositionChild(info.packedPosition);
+
+        // Skip long-press on expandable parents
+        if (childPosition == -1) return;
+
+        final AccountDisplay account = (AccountDisplay)mAdapter.getGroup(groupPosition);
+        final GroupDelta child = (GroupDelta)mAdapter.getChild(groupPosition, childPosition);
+
+        // Ignore when selective syncing unsupported
+        final int syncMode = getSyncMode(account);
+        if (syncMode == SYNC_MODE_UNSUPPORTED) return;
+
+        if (child != null) {
+            showRemoveSync(menu, account, child, syncMode);
+        } else {
+            showAddSync(menu, account, syncMode);
+        }
+    }
+
+    protected void showRemoveSync(ContextMenu menu, final AccountDisplay account,
+            final GroupDelta child, final int syncMode) {
+        final CharSequence title = child.getTitle(this);
+
+        menu.setHeaderTitle(title);
+        menu.add(R.string.menu_sync_remove).setOnMenuItemClickListener(
+                new OnMenuItemClickListener() {
+                    public boolean onMenuItemClick(MenuItem item) {
+                        handleRemoveSync(account, child, syncMode, title);
+                        return true;
+                    }
+                });
+    }
+
+    protected void handleRemoveSync(final AccountDisplay account, final GroupDelta child,
+            final int syncMode, CharSequence title) {
+        final boolean shouldSyncUngrouped = account.mUngrouped.getShouldSync();
+        if (syncMode == SYNC_MODE_EVERYTHING && shouldSyncUngrouped
+                && !child.equals(account.mUngrouped)) {
+            // Warn before removing this group when it would cause ungrouped to stop syncing
+            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
+            final CharSequence removeMessage = this.getString(
+                    R.string.display_warn_remove_ungrouped, title);
+            builder.setTitle(R.string.menu_sync_remove);
+            builder.setMessage(removeMessage);
+            builder.setNegativeButton(android.R.string.cancel, null);
+            builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+                public void onClick(DialogInterface dialog, int which) {
+                    // Mark both this group and ungrouped to stop syncing
+                    account.setShouldSync(account.mUngrouped, false);
+                    account.setShouldSync(child, false);
+                    mAdapter.notifyDataSetChanged();
+                }
+            });
+            builder.show();
+        } else {
+            // Mark this group to not sync
+            account.setShouldSync(child, false);
+            mAdapter.notifyDataSetChanged();
+        }
+    }
+
+    protected void showAddSync(ContextMenu menu, final AccountDisplay account, final int syncMode) {
+        menu.setHeaderTitle(R.string.dialog_sync_add);
+
+        // Create item for each available, unsynced group
+        for (final GroupDelta child : account.mUnsyncedGroups) {
+            if (!child.getShouldSync()) {
+                final CharSequence title = child.getTitle(this);
+                menu.add(title).setOnMenuItemClickListener(new OnMenuItemClickListener() {
+                    public boolean onMenuItemClick(MenuItem item) {
+                        // Adding specific group for syncing
+                        if (child.mUngrouped && syncMode == SYNC_MODE_EVERYTHING) {
+                            account.setShouldSync(true);
+                        } else {
+                            account.setShouldSync(child, true);
+                        }
+                        mAdapter.notifyDataSetChanged();
+                        return true;
+                    }
+                });
+            }
+        }
+    }
+
+    private boolean hasUnsavedChanges() {
+        if (mAdapter == null || mAdapter.mAccounts == null) {
+            return false;
+        }
+        if (getCurrentListFilterType() != ContactListFilter.FILTER_TYPE_CUSTOM) {
+            return true;
+        }
+        final ArrayList<ContentProviderOperation> diff = mAdapter.mAccounts.buildDiff();
+        if (diff.isEmpty()) {
+            return false;
+        }
+        return true;
+    }
+
+    @SuppressWarnings("unchecked")
+    private void doSaveAction() {
+        if (mAdapter == null || mAdapter.mAccounts == null) {
+            finish();
+            return;
+        }
+
+        setResult(RESULT_OK);
+
+        final ArrayList<ContentProviderOperation> diff = mAdapter.mAccounts.buildDiff();
+        if (diff.isEmpty()) {
+            finish();
+            return;
+        }
+
+        new UpdateTask(this).execute(diff);
+    }
+
+    /**
+     * Background task that persists changes to {@link Groups#GROUP_VISIBLE},
+     * showing spinner dialog to user while updating.
+     */
+    public static class UpdateTask extends
+            WeakAsyncTask<ArrayList<ContentProviderOperation>, Void, Void, Activity> {
+        private ProgressDialog mProgress;
+
+        public UpdateTask(Activity target) {
+            super(target);
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        protected void onPreExecute(Activity target) {
+            final Context context = target;
+
+            mProgress = ProgressDialog.show(
+                    context, null, context.getText(R.string.savingDisplayGroups));
+
+            // Before starting this task, start an empty service to protect our
+            // process from being reclaimed by the system.
+            context.startService(new Intent(context, EmptyService.class));
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        protected Void doInBackground(
+                Activity target, ArrayList<ContentProviderOperation>... params) {
+            final Context context = target;
+            final ContentValues values = new ContentValues();
+            final ContentResolver resolver = context.getContentResolver();
+
+            try {
+                final ArrayList<ContentProviderOperation> diff = params[0];
+                resolver.applyBatch(ContactsContract.AUTHORITY, diff);
+            } catch (RemoteException e) {
+                Log.e(TAG, "Problem saving display groups", e);
+            } catch (OperationApplicationException e) {
+                Log.e(TAG, "Problem saving display groups", e);
+            }
+
+            return null;
+        }
+
+        /** {@inheritDoc} */
+        @Override
+        protected void onPostExecute(Activity target, Void result) {
+            final Context context = target;
+
+            try {
+                mProgress.dismiss();
+            } catch (Exception e) {
+                Log.e(TAG, "Error dismissing progress dialog", e);
+            }
+
+            target.finish();
+
+            // Stop the service that was protecting us
+            context.stopService(new Intent(context, EmptyService.class));
+        }
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+
+        final MenuItem menuItem = menu.add(Menu.NONE, R.id.menu_save, Menu.NONE,
+                R.string.menu_custom_filter_save);
+        menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
+
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int id = item.getItemId();
+        if (id == android.R.id.home) {
+            confirmFinish();
+            return true;
+        } else if (id == R.id.menu_save) {
+            this.doSaveAction();
+            return true;
+        } else {
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public void onBackPressed() {
+        confirmFinish();
+    }
+
+    private void confirmFinish() {
+        // Prompt the user whether they want to discard there customizations unless
+        // nothing will be changed.
+        if (hasUnsavedChanges()) {
+            new ConfirmNavigationDialogFragment().show(getFragmentManager(),
+                    "ConfirmNavigationDialog");
+        } else {
+            setResult(RESULT_CANCELED);
+            finish();
+        }
+    }
+
+    private int getCurrentListFilterType() {
+        return getIntent().getIntExtra(EXTRA_CURRENT_LIST_FILTER_TYPE,
+                ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
+    }
+
+    public static class ConfirmNavigationDialogFragment
+            extends DialogFragment implements DialogInterface.OnClickListener {
+
+        @Override
+        public Dialog onCreateDialog(Bundle savedInstanceState) {
+            return new AlertDialog.Builder(getActivity(), getTheme())
+                    .setMessage(R.string.leave_customize_confirmation_dialog_message)
+                    .setNegativeButton(android.R.string.no, null)
+                    .setPositiveButton(android.R.string.yes, this)
+                    .create();
+        }
+
+        @Override
+        public void onClick(DialogInterface dialogInterface, int i) {
+            if (i == DialogInterface.BUTTON_POSITIVE) {
+                getActivity().setResult(RESULT_CANCELED);
+                getActivity().finish();
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 9ea8a1d..f07c4a5 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -15,62 +15,232 @@
  */
 package com.android.contacts.list;
 
+import android.accounts.Account;
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
+import android.content.ContentResolver;
+import android.content.ContentUris;
 import android.content.Context;
 import android.content.CursorLoader;
 import android.content.Intent;
+import android.content.Loader;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.graphics.PorterDuff;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
-import android.provider.ContactsContract.Contacts;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Directory;
+import android.support.v4.content.ContextCompat;
+import android.support.v4.widget.SwipeRefreshLayout;
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.Gravity;
 import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
 import android.view.View;
-import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
 import android.widget.Button;
 import android.widget.FrameLayout;
-import android.widget.ListView;
+import android.widget.ImageView;
+import android.widget.LinearLayout.LayoutParams;
 import android.widget.TextView;
+import android.widget.Toast;
 
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.Experiments;
 import com.android.contacts.R;
-import com.android.contacts.common.list.ContactListAdapter;
-import com.android.contacts.common.list.ContactListFilter;
-import com.android.contacts.common.list.ContactListFilterController;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.DefaultContactListAdapter;
-import com.android.contacts.common.list.ProfileAndContactsLoader;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-import com.android.contacts.editor.ContactEditorFragment;
-import com.android.contacts.common.util.AccountFilterUtil;
+import com.android.contacts.activities.ActionBarAdapter;
+import com.android.contacts.activities.PeopleActivity;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.interactions.ContactDeletionInteraction;
+import com.android.contacts.interactions.ContactMultiDeletionInteraction;
+import com.android.contacts.interactions.ContactMultiDeletionInteraction.MultiContactDeleteListener;
+import com.android.contacts.logging.ListEvent;
+import com.android.contacts.logging.Logger;
+import com.android.contacts.logging.ScreenEvent;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.quickcontact.QuickContactActivity;
+import com.android.contacts.util.AccountFilterUtil;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.util.SharedPreferenceUtil;
+import com.android.contacts.util.SyncUtil;
+import com.android.contactsbind.FeatureHighlightHelper;
+import com.android.contactsbind.experiments.Flags;
+import com.google.common.util.concurrent.Futures;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.concurrent.Future;
 
 /**
  * Fragment containing a contact list used for browsing (as compared to
  * picking a contact with one of the PICK intents).
  */
-public class DefaultContactBrowseListFragment extends ContactBrowseListFragment {
-    private static final String TAG = DefaultContactBrowseListFragment.class.getSimpleName();
+public class DefaultContactBrowseListFragment extends ContactBrowseListFragment
+        implements EnableGlobalSyncDialogFragment.Listener {
 
-    private static final int REQUEST_CODE_ACCOUNT_FILTER = 1;
+    private static final String TAG = "DefaultListFragment";
+    private static final String ENABLE_DEBUG_OPTIONS_HIDDEN_CODE = "debug debug!";
+    private static final String KEY_DELETION_IN_PROGRESS = "deletionInProgress";
+    private static final String KEY_SEARCH_RESULT_CLICKED = "search_result_clicked";
+
+    private static final int ACTIVITY_REQUEST_CODE_SHARE = 0;
 
     private View mSearchHeaderView;
-    private View mAccountFilterHeader;
-    private FrameLayout mProfileHeaderContainer;
-    private View mProfileHeader;
-    private Button mProfileMessage;
-    private TextView mProfileTitle;
     private View mSearchProgress;
+    private View mEmptyAccountView;
+    private View mEmptyHomeView;
+    private View mAccountFilterContainer;
     private TextView mSearchProgressText;
 
-    private class FilterHeaderClickListener implements OnClickListener {
+    private SwipeRefreshLayout mSwipeRefreshLayout;
+    private final Handler mHandler = new Handler();
+    private final Runnable mCancelRefresh = new Runnable() {
         @Override
-        public void onClick(View view) {
-            AccountFilterUtil.startAccountFilterActivityForResult(
-                        DefaultContactBrowseListFragment.this,
-                        REQUEST_CODE_ACCOUNT_FILTER,
-                        getFilter());
+        public void run() {
+            if (mSwipeRefreshLayout.isRefreshing()) {
+                mSwipeRefreshLayout.setRefreshing(false);
+            }
         }
-    }
-    private OnClickListener mFilterHeaderClickListener = new FilterHeaderClickListener();
+    };
+
+    private View mAlertContainer;
+    private TextView mAlertText;
+    private ImageView mAlertDismissIcon;
+    private int mReasonSyncOff = SyncUtil.SYNC_SETTING_SYNC_ON;
+
+    private boolean mContactsAvailable;
+    private boolean mEnableDebugMenuOptions;
+    private boolean mIsRecreatedInstance;
+    private boolean mOptionsMenuContactsAvailable;
+
+    private boolean mCanSetActionBar = false;
+
+    /**
+     * If {@link #configureFragment()} is already called. Used to avoid calling it twice
+     * in {@link #onResume()}.
+     * (This initialization only needs to be done once in onResume() when the Activity was just
+     * created from scratch -- i.e. onCreate() was just called)
+     */
+    private boolean mFragmentInitialized;
+
+    private boolean mFromOnNewIntent;
+
+    /**
+     * This is to tell whether we need to restart ContactMultiDeletionInteraction and set listener.
+     * if screen is rotated while deletion dialog is shown.
+     */
+    private boolean mIsDeletionInProgress;
+
+    /**
+     * This is to disable {@link #onOptionsItemSelected} when we trying to stop the
+     * activity/fragment.
+     */
+    private boolean mDisableOptionItemSelected;
+
+    private boolean mSearchResultClicked;
+
+    private ActionBarAdapter mActionBarAdapter;
+    private PeopleActivity mActivity;
+    private ContactsRequest mContactsRequest;
+    private ContactListFilterController mContactListFilterController;
+
+    private Future<List<AccountInfo>> mWritableAccountsFuture;
+
+    private final ActionBarAdapter.Listener mActionBarListener = new ActionBarAdapter.Listener() {
+        @Override
+        public void onAction(int action) {
+            switch (action) {
+                case ActionBarAdapter.Listener.Action.START_SELECTION_MODE:
+                    displayCheckBoxes(true);
+                    startSearchOrSelectionMode();
+                    break;
+                case ActionBarAdapter.Listener.Action.START_SEARCH_MODE:
+                    if (!mIsRecreatedInstance) {
+                        Logger.logScreenView(mActivity, ScreenEvent.ScreenType.SEARCH);
+                    }
+                    startSearchOrSelectionMode();
+                    break;
+                case ActionBarAdapter.Listener.Action.BEGIN_STOPPING_SEARCH_AND_SELECTION_MODE:
+                    mActivity.showFabWithAnimation(/* showFab */ true);
+                    break;
+                case ActionBarAdapter.Listener.Action.STOP_SEARCH_AND_SELECTION_MODE:
+                    // If queryString is empty, fragment data will not be reloaded,
+                    // so hamburger promo should be checked now.
+                    // Otherwise, promo should be checked and displayed after reloading, b/30706521.
+                    if (TextUtils.isEmpty(getQueryString())) {
+                        maybeShowHamburgerFeatureHighlight();
+                    }
+                    setQueryTextToFragment("");
+                    maybeHideCheckBoxes();
+                    mActivity.invalidateOptionsMenu();
+                    mActivity.showFabWithAnimation(/* showFab */ true);
+
+                    // Alert user if sync is off and not dismissed before
+                    setSyncOffAlert();
+
+                    // Determine whether the account has pullToRefresh feature
+                    setSwipeRefreshLayoutEnabledOrNot(getFilter());
+                    break;
+                case ActionBarAdapter.Listener.Action.CHANGE_SEARCH_QUERY:
+                    final String queryString = mActionBarAdapter.getQueryString();
+                    setQueryTextToFragment(queryString);
+                    updateDebugOptionsVisibility(
+                            ENABLE_DEBUG_OPTIONS_HIDDEN_CODE.equals(queryString));
+                    break;
+                default:
+                    throw new IllegalStateException("Unknown ActionBarAdapter action: " + action);
+            }
+        }
+
+        private void startSearchOrSelectionMode() {
+            configureContactListFragment();
+            maybeHideCheckBoxes();
+            mActivity.invalidateOptionsMenu();
+            mActivity.showFabWithAnimation(/* showFab */ false);
+
+            final Context context = getContext();
+            if (!SharedPreferenceUtil.getHamburgerPromoTriggerActionHappenedBefore(context)) {
+                SharedPreferenceUtil.setHamburgerPromoTriggerActionHappenedBefore(context);
+            }
+        }
+
+        private void updateDebugOptionsVisibility(boolean visible) {
+            if (mEnableDebugMenuOptions != visible) {
+                mEnableDebugMenuOptions = visible;
+                mActivity.invalidateOptionsMenu();
+            }
+        }
+
+        private void setQueryTextToFragment(String query) {
+            setQueryString(query, true);
+            setVisibleScrollbarEnabled(!isSearchMode());
+        }
+
+        @Override
+        public void onUpButtonPressed() {
+            mActivity.onBackPressed();
+        }
+    };
+
+    private final View.OnClickListener mAddContactListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            AccountFilterUtil.startEditorIntent(getContext(), mActivity.getIntent(), getFilter());
+        }
+    };
 
     public DefaultContactBrowseListFragment() {
         setPhotoLoaderEnabled(true);
@@ -79,11 +249,136 @@
         setQuickContactEnabled(false);
         setSectionHeaderDisplayEnabled(true);
         setVisibleScrollbarEnabled(true);
+        setDisplayDirectoryHeader(false);
+        setHasOptionsMenu(true);
+    }
+
+    /**
+     * Whether a search result was clicked by the user. Tracked so that we can distinguish
+     * between exiting the search mode after a result was clicked from exiting w/o clicking
+     * any search result.
+     */
+    public boolean wasSearchResultClicked() {
+        return mSearchResultClicked;
+    }
+
+    /**
+     * Resets whether a search result was clicked by the user to false.
+     */
+    public void resetSearchResultClicked() {
+        mSearchResultClicked = false;
     }
 
     @Override
     public CursorLoader createCursorLoader(Context context) {
-        return new ProfileAndContactsLoader(context);
+        return new FavoritesAndContactsLoader(context);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+        if (loader.getId() == Directory.DEFAULT) {
+            bindListHeader(data == null ? 0 : data.getCount());
+        }
+        super.onLoadFinished(loader, data);
+        if (!isSearchMode()) {
+            maybeShowHamburgerFeatureHighlight();
+        }
+        if (mActionBarAdapter != null) {
+            mActionBarAdapter.updateOverflowButtonColor();
+        }
+    }
+
+    private void maybeShowHamburgerFeatureHighlight() {
+        if (mActionBarAdapter!= null && !mActionBarAdapter.isSearchMode()
+                && !mActionBarAdapter.isSelectionMode()
+                && !isTalkbackOnAndOnPreLollipopMr1()
+                && SharedPreferenceUtil.getShouldShowHamburgerPromo(getContext())) {
+            if (FeatureHighlightHelper.showHamburgerFeatureHighlight(mActivity)) {
+                SharedPreferenceUtil.setHamburgerPromoDisplayedBefore(getContext());
+            }
+        }
+    }
+
+    // There's a crash if we show feature highlight when Talkback is on, on API 21 and below.
+    // See b/31180524.
+    private boolean isTalkbackOnAndOnPreLollipopMr1(){
+        return ((AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE))
+                .isTouchExplorationEnabled()
+                    && !CompatUtils.isLollipopMr1Compatible();
+    }
+
+    private void bindListHeader(int numberOfContacts) {
+        final ContactListFilter filter = getFilter();
+        // If the phone has at least one Google account whose sync status is unsyncable or pending
+        // or active, we have to make mAccountFilterContainer visible.
+        if (!isSearchMode() && numberOfContacts <= 0 && shouldShowEmptyView(filter)) {
+            if (filter != null && filter.isContactsFilterType()) {
+                makeViewVisible(mEmptyHomeView);
+            } else {
+                makeViewVisible(mEmptyAccountView);
+            }
+            return;
+        }
+        makeViewVisible(mAccountFilterContainer);
+        if (isSearchMode()) {
+            hideHeaderAndAddPadding(getContext(), getListView(), mAccountFilterContainer);
+        } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+            bindListHeaderCustom(getListView(), mAccountFilterContainer);
+        } else if (filter.filterType != ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
+            final AccountWithDataSet accountWithDataSet = new AccountWithDataSet(
+                    filter.accountName, filter.accountType, filter.dataSet);
+            bindListHeader(getContext(), getListView(), mAccountFilterContainer,
+                    accountWithDataSet, numberOfContacts);
+        } else {
+            hideHeaderAndAddPadding(getContext(), getListView(), mAccountFilterContainer);
+        }
+    }
+
+    /**
+     * If at least one Google account is unsyncable or its sync status is pending or active, we
+     * should not show empty view even if the number of contacts is 0. We should show sync status
+     * with empty list instead.
+     */
+    private boolean shouldShowEmptyView(ContactListFilter filter) {
+        if (filter == null) {
+            return true;
+        }
+        // TODO(samchen) : Check ContactListFilter.FILTER_TYPE_CUSTOM
+        if (ContactListFilter.FILTER_TYPE_DEFAULT == filter.filterType
+                || ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS == filter.filterType) {
+            final List<AccountInfo> syncableAccounts =
+                    AccountTypeManager.getInstance(getContext()).getWritableGoogleAccounts();
+
+            if (syncableAccounts != null && syncableAccounts.size() > 0) {
+                for (AccountInfo info : syncableAccounts) {
+                    // Won't be null because Google accounts have a non-null name and type.
+                    final Account account = info.getAccount().getAccountOrNull();
+                    if (SyncUtil.isSyncStatusPendingOrActive(account)
+                            || SyncUtil.isUnsyncableGoogleAccount(account)) {
+                        return false;
+                    }
+                }
+            }
+        } else if (ContactListFilter.FILTER_TYPE_ACCOUNT == filter.filterType) {
+            final Account account = new Account(filter.accountName, filter.accountType);
+            return !(SyncUtil.isSyncStatusPendingOrActive(account)
+                    || SyncUtil.isUnsyncableGoogleAccount(account));
+        }
+        return true;
+    }
+
+    // Show the view that's specified by id and hide the other two.
+    private void makeViewVisible(View view) {
+        mEmptyAccountView.setVisibility(view == mEmptyAccountView ? View.VISIBLE : View.GONE);
+        mEmptyHomeView.setVisibility(view == mEmptyHomeView ? View.VISIBLE : View.GONE);
+        mAccountFilterContainer.setVisibility(
+                view == mAccountFilterContainer ? View.VISIBLE : View.GONE);
+    }
+
+    public void scrollToTop() {
+        if (getListView() != null) {
+            getListView().setSelection(0);
+        }
     }
 
     @Override
@@ -92,7 +387,16 @@
         if (uri == null) {
             return;
         }
-        viewContact(uri, getAdapter().isEnterpriseContact(position));
+        if (getAdapter().isDisplayingCheckBoxes()) {
+            super.onItemClick(position, id);
+            return;
+        } else {
+            if (isSearchMode()) {
+                mSearchResultClicked = true;
+                Logger.logSearchEvent(createSearchStateForSearchResultClick(position));
+            }
+        }
+        viewContact(position, uri, getAdapter().isEnterpriseContact(position));
     }
 
     @Override
@@ -106,25 +410,90 @@
     }
 
     @Override
+    public ContactListFilter getFilter() {
+        return mContactListFilterController.getFilter();
+    }
+
+    @Override
     protected View inflateView(LayoutInflater inflater, ViewGroup container) {
-        return inflater.inflate(R.layout.contact_list_content, null);
+        final View view = inflater.inflate(R.layout.contact_list_content, null);
+
+        mAccountFilterContainer = view.findViewById(R.id.account_filter_header_container);
+
+        // Add empty main view and account view to list.
+        final FrameLayout contactListLayout = (FrameLayout) view.findViewById(R.id.contact_list);
+        mEmptyAccountView = getEmptyAccountView(inflater);
+        mEmptyHomeView = getEmptyHomeView(inflater);
+        contactListLayout.addView(mEmptyAccountView);
+        contactListLayout.addView(mEmptyHomeView);
+
+        return view;
+    }
+
+    private View getEmptyHomeView(LayoutInflater inflater) {
+        final View emptyHomeView = inflater.inflate(R.layout.empty_home_view, null);
+        // Set image margins.
+        final ImageView image = (ImageView) emptyHomeView.findViewById(R.id.empty_home_image);
+        final LayoutParams params = (LayoutParams) image.getLayoutParams();
+        final int screenHeight = getResources().getDisplayMetrics().heightPixels;
+        final int marginTop = screenHeight / 2 -
+                getResources().getDimensionPixelSize(R.dimen.empty_home_view_image_offset) ;
+        params.setMargins(0, marginTop, 0, 0);
+        params.gravity = Gravity.CENTER_HORIZONTAL;
+        image.setLayoutParams(params);
+
+        // Set up add contact button.
+        final Button addContactButton =
+                (Button) emptyHomeView.findViewById(R.id.add_contact_button);
+        addContactButton.setOnClickListener(mAddContactListener);
+        return emptyHomeView;
+    }
+
+    private View getEmptyAccountView(LayoutInflater inflater) {
+        final View emptyAccountView = inflater.inflate(R.layout.empty_account_view, null);
+        // Set image margins.
+        final ImageView image = (ImageView) emptyAccountView.findViewById(R.id.empty_account_image);
+        final LayoutParams params = (LayoutParams) image.getLayoutParams();
+        final int height = getResources().getDisplayMetrics().heightPixels;
+        final int divisor =
+                getResources().getInteger(R.integer.empty_account_view_image_margin_divisor);
+        final int offset =
+                getResources().getDimensionPixelSize(R.dimen.empty_account_view_image_offset);
+        params.setMargins(0, height / divisor + offset, 0, 0);
+        params.gravity = Gravity.CENTER_HORIZONTAL;
+        image.setLayoutParams(params);
+
+        // Set up add contact button.
+        final Button addContactButton =
+                (Button) emptyAccountView.findViewById(R.id.add_contact_button);
+        addContactButton.setOnClickListener(mAddContactListener);
+        return emptyAccountView;
+    }
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        super.onCreate(savedState);
+        mIsRecreatedInstance = (savedState != null);
+        mContactListFilterController = ContactListFilterController.getInstance(getContext());
+        mContactListFilterController.checkFilterValidity(false);
+        // Use FILTER_TYPE_ALL_ACCOUNTS filter if the instance is not a re-created one.
+        // This is useful when user upgrades app while an account filter was
+        // stored in sharedPreference in a previous version of Contacts app.
+        final ContactListFilter filter = mIsRecreatedInstance
+                ? getFilter()
+                : AccountFilterUtil.createContactsFilter(getContext());
+        setContactListFilter(filter);
     }
 
     @Override
     protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
         super.onCreateView(inflater, container);
 
-        mAccountFilterHeader = getView().findViewById(R.id.account_filter_header_container);
-        mAccountFilterHeader.setOnClickListener(mFilterHeaderClickListener);
-
-        // Create an empty user profile header and hide it for now (it will be visible if the
-        // contacts list will have no user profile).
-        addEmptyUserProfileHeader(inflater);
-        showEmptyUserProfile(false);
+        initSwipeRefreshLayout();
 
         // Putting the header view inside a container will allow us to make
         // it invisible later. See checkHeaderViewVisibility()
-        FrameLayout headerContainer = new FrameLayout(inflater.getContext());
+        final FrameLayout headerContainer = new FrameLayout(inflater.getContext());
         mSearchHeaderView = inflater.inflate(R.layout.search_header, null, false);
         headerContainer.addView(mSearchHeaderView);
         getListView().addHeaderView(headerContainer, null, false);
@@ -132,6 +501,284 @@
 
         mSearchProgress = getView().findViewById(R.id.search_progress);
         mSearchProgressText = (TextView) mSearchHeaderView.findViewById(R.id.totalContactsText);
+
+        mAlertContainer = getView().findViewById(R.id.alert_container);
+        mAlertText = (TextView) mAlertContainer.findViewById(R.id.alert_text);
+        mAlertDismissIcon = (ImageView) mAlertContainer.findViewById(R.id.alert_dismiss_icon);
+        mAlertText.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                turnSyncOn();
+            }
+        });
+        mAlertDismissIcon.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                dismiss();
+            }
+        });
+
+        mAlertContainer.setVisibility(View.GONE);
+    }
+
+    private void turnSyncOn() {
+        final ContactListFilter filter = getFilter();
+        if (filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT
+                && mReasonSyncOff == SyncUtil.SYNC_SETTING_ACCOUNT_SYNC_OFF) {
+            ContentResolver.setSyncAutomatically(
+                    new Account(filter.accountName, filter.accountType),
+                    ContactsContract.AUTHORITY, true);
+            mAlertContainer.setVisibility(View.GONE);
+        } else {
+            final EnableGlobalSyncDialogFragment dialog = new
+                    EnableGlobalSyncDialogFragment();
+            dialog.show(this, filter);
+        }
+    }
+
+    @Override
+    public void onEnableAutoSync(ContactListFilter filter) {
+        // Turn on auto-sync
+        ContentResolver.setMasterSyncAutomatically(true);
+
+        // This should be OK (won't block) because this only happens after a user action
+        final List<AccountInfo> accountInfos = Futures.getUnchecked(mWritableAccountsFuture);
+        // Also enable Contacts sync
+        final List<AccountWithDataSet> accounts = AccountInfo.extractAccounts(accountInfos);
+        final List<Account> syncableAccounts = filter.getSyncableAccounts(accounts);
+        if (syncableAccounts != null && syncableAccounts.size() > 0) {
+            for (Account account : syncableAccounts) {
+                ContentResolver.setSyncAutomatically(new Account(account.name, account.type),
+                        ContactsContract.AUTHORITY, true);
+            }
+        }
+        mAlertContainer.setVisibility(View.GONE);
+    }
+
+    private void dismiss() {
+        if (mReasonSyncOff == SyncUtil.SYNC_SETTING_GLOBAL_SYNC_OFF) {
+            SharedPreferenceUtil.incNumOfDismissesForAutoSyncOff(getContext());
+        } else if (mReasonSyncOff == SyncUtil.SYNC_SETTING_ACCOUNT_SYNC_OFF) {
+            SharedPreferenceUtil.incNumOfDismissesForAccountSyncOff(
+                    getContext(), getFilter().accountName);
+        }
+        mAlertContainer.setVisibility(View.GONE);
+    }
+
+    private void initSwipeRefreshLayout() {
+        mSwipeRefreshLayout = (SwipeRefreshLayout) mView.findViewById(R.id.swipe_refresh);
+        if (mSwipeRefreshLayout == null) {
+            return;
+        }
+
+        mSwipeRefreshLayout.setEnabled(true);
+        // Request sync contacts
+        mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                mHandler.removeCallbacks(mCancelRefresh);
+
+                final boolean isNetworkConnected = SyncUtil.isNetworkConnected(getContext());
+                if (!isNetworkConnected) {
+                    mSwipeRefreshLayout.setRefreshing(false);
+                    ((PeopleActivity)getActivity()).showConnectionErrorMsg();
+                    return;
+                }
+
+                syncContacts(getFilter());
+                mHandler.postDelayed(mCancelRefresh, Flags.getInstance()
+                        .getInteger(Experiments.PULL_TO_REFRESH_CANCEL_REFRESH_MILLIS));
+            }
+        });
+        mSwipeRefreshLayout.setColorSchemeResources(
+                R.color.swipe_refresh_color1,
+                R.color.swipe_refresh_color2,
+                R.color.swipe_refresh_color3,
+                R.color.swipe_refresh_color4);
+        mSwipeRefreshLayout.setDistanceToTriggerSync(
+                (int) getResources().getDimension(R.dimen.pull_to_refresh_distance));
+    }
+
+    /**
+     * Request sync for the Google accounts (not include Google+ accounts) specified by the given
+     * filter.
+     */
+    private void syncContacts(ContactListFilter filter) {
+        if (filter == null) {
+            return;
+        }
+
+        final Bundle bundle = new Bundle();
+        bundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
+        bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
+
+        final List<AccountWithDataSet> accounts = AccountInfo.extractAccounts(
+                Futures.getUnchecked(mWritableAccountsFuture));
+        final List<Account> syncableAccounts = filter.getSyncableAccounts(accounts);
+        if (syncableAccounts != null && syncableAccounts.size() > 0) {
+            for (Account account : syncableAccounts) {
+                // We can prioritize Contacts sync if sync is not initialized yet.
+                if (!SyncUtil.isSyncStatusPendingOrActive(account)
+                        || SyncUtil.isUnsyncableGoogleAccount(account)) {
+                    ContentResolver.requestSync(account, ContactsContract.AUTHORITY, bundle);
+                }
+            }
+        }
+    }
+
+    private void setSyncOffAlert() {
+        final ContactListFilter filter = getFilter();
+        final Account account =  filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT
+                && filter.isGoogleAccountType()
+                ? new Account(filter.accountName, filter.accountType) : null;
+
+        if (account == null && !filter.isContactsFilterType()) {
+            mAlertContainer.setVisibility(View.GONE);
+        } else {
+            mReasonSyncOff = SyncUtil.calculateReasonSyncOff(getContext(), account);
+            final boolean isAlertVisible =
+                    SyncUtil.isAlertVisible(getContext(), account, mReasonSyncOff);
+            setSyncOffMsg(mReasonSyncOff);
+            mAlertContainer.setVisibility(isAlertVisible ? View.VISIBLE : View.GONE);
+        }
+    }
+
+    private void setSyncOffMsg(int reason) {
+        final Resources resources = getResources();
+        switch (reason) {
+            case SyncUtil.SYNC_SETTING_GLOBAL_SYNC_OFF:
+                mAlertText.setText(resources.getString(R.string.auto_sync_off));
+                break;
+            case SyncUtil.SYNC_SETTING_ACCOUNT_SYNC_OFF:
+                mAlertText.setText(resources.getString(R.string.account_sync_off));
+                break;
+            default:
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        mActivity = (PeopleActivity) getActivity();
+        mActionBarAdapter = new ActionBarAdapter(mActivity, mActionBarListener,
+                mActivity.getSupportActionBar(), mActivity.getToolbar(),
+                R.string.enter_contact_name);
+        mActionBarAdapter.setShowHomeIcon(true);
+        initializeActionBarAdapter(savedInstanceState);
+        if (isSearchMode()) {
+            mActionBarAdapter.setFocusOnSearchView();
+        }
+
+        setCheckBoxListListener(new CheckBoxListListener());
+        setOnContactListActionListener(new ContactBrowserActionListener());
+        if (savedInstanceState != null) {
+            if (savedInstanceState.getBoolean(KEY_DELETION_IN_PROGRESS)) {
+                deleteSelectedContacts();
+            }
+            mSearchResultClicked = savedInstanceState.getBoolean(KEY_SEARCH_RESULT_CLICKED);
+        }
+
+        setDirectorySearchMode();
+        mCanSetActionBar = true;
+    }
+
+    public void initializeActionBarAdapter(Bundle savedInstanceState) {
+        if (mActionBarAdapter != null) {
+            mActionBarAdapter.initialize(savedInstanceState, mContactsRequest);
+        }
+    }
+
+    private void configureFragment() {
+        if (mFragmentInitialized && !mFromOnNewIntent) {
+            return;
+        }
+
+        mFragmentInitialized = true;
+
+        if (mFromOnNewIntent || !mIsRecreatedInstance) {
+            mFromOnNewIntent = false;
+            configureFragmentForRequest();
+        }
+
+        configureContactListFragment();
+    }
+
+    private void configureFragmentForRequest() {
+        ContactListFilter filter = null;
+        final int actionCode = mContactsRequest.getActionCode();
+        boolean searchMode = mContactsRequest.isSearchMode();
+        switch (actionCode) {
+            case ContactsRequest.ACTION_ALL_CONTACTS:
+                filter = AccountFilterUtil.createContactsFilter(getContext());
+                break;
+            case ContactsRequest.ACTION_CONTACTS_WITH_PHONES:
+                filter = ContactListFilter.createFilterWithType(
+                        ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY);
+                break;
+
+            case ContactsRequest.ACTION_FREQUENT:
+            case ContactsRequest.ACTION_STREQUENT:
+            case ContactsRequest.ACTION_STARRED:
+            case ContactsRequest.ACTION_VIEW_CONTACT:
+            default:
+                break;
+        }
+
+        if (filter != null) {
+            setContactListFilter(filter);
+            searchMode = false;
+        }
+
+        if (mContactsRequest.getContactUri() != null) {
+            searchMode = false;
+        }
+
+        mActionBarAdapter.setSearchMode(searchMode);
+        configureContactListFragmentForRequest();
+    }
+
+    private void configureContactListFragmentForRequest() {
+        final Uri contactUri = mContactsRequest.getContactUri();
+        if (contactUri != null) {
+            setSelectedContactUri(contactUri);
+        }
+
+        setQueryString(mActionBarAdapter.getQueryString(), true);
+        setVisibleScrollbarEnabled(!isSearchMode());
+    }
+
+    private void setDirectorySearchMode() {
+        if (mContactsRequest != null && mContactsRequest.isDirectorySearchEnabled()) {
+            setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_DEFAULT);
+        } else {
+            setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        configureFragment();
+        maybeShowHamburgerFeatureHighlight();
+        // Re-register the listener, which may have been cleared when onSaveInstanceState was
+        // called. See also: onSaveInstanceState
+        mActionBarAdapter.setListener(mActionBarListener);
+        mDisableOptionItemSelected = false;
+        maybeHideCheckBoxes();
+
+        mWritableAccountsFuture = AccountTypeManager.getInstance(getContext()).filterAccountsAsync(
+                AccountTypeManager.writableFilter());
+    }
+
+    private void maybeHideCheckBoxes() {
+        if (!mActionBarAdapter.isSelectionMode()) {
+            displayCheckBoxes(false);
+        }
+    }
+
+    public ActionBarAdapter getActionBarAdapter(){
+        return mActionBarAdapter;
     }
 
     @Override
@@ -149,8 +796,6 @@
     }
 
     private void checkHeaderViewVisibility() {
-        updateFilterHeaderView();
-
         // Hide the search header by default.
         if (mSearchHeaderView != null) {
             mSearchHeaderView.setVisibility(View.GONE);
@@ -158,102 +803,447 @@
     }
 
     @Override
-    public void setFilter(ContactListFilter filter) {
-        super.setFilter(filter);
-        updateFilterHeaderView();
+    protected void setListHeader() {
+        if (!isSearchMode()) {
+            return;
+        }
+        ContactListAdapter adapter = getAdapter();
+        if (adapter == null) {
+            return;
+        }
+
+        // In search mode we only display the header if there is nothing found
+        if (TextUtils.isEmpty(getQueryString()) || !adapter.areAllPartitionsEmpty()) {
+            mSearchHeaderView.setVisibility(View.GONE);
+            showSearchProgress(false);
+        } else {
+            mSearchHeaderView.setVisibility(View.VISIBLE);
+            if (adapter.isLoading()) {
+                mSearchProgressText.setText(R.string.search_results_searching);
+                showSearchProgress(true);
+            } else {
+                mSearchProgressText.setText(R.string.listFoundAllContactsZero);
+                mSearchProgressText.sendAccessibilityEvent(
+                        AccessibilityEvent.TYPE_VIEW_SELECTED);
+                showSearchProgress(false);
+            }
+        }
     }
 
-    private void updateFilterHeaderView() {
-        if (mAccountFilterHeader == null) {
-            return; // Before onCreateView -- just ignore it.
+    public SwipeRefreshLayout getSwipeRefreshLayout() {
+        return mSwipeRefreshLayout;
+    }
+
+    private final class CheckBoxListListener implements OnCheckBoxListActionListener {
+        @Override
+        public void onStartDisplayingCheckBoxes() {
+            mActionBarAdapter.setSelectionMode(true);
+            mActivity.invalidateOptionsMenu();
         }
-        final ContactListFilter filter = getFilter();
-        if (filter != null && !isSearchMode()) {
-            final boolean shouldShowHeader = AccountFilterUtil.updateAccountFilterTitleForPeople(
-                    mAccountFilterHeader, filter, false);
-            mAccountFilterHeader.setVisibility(shouldShowHeader ? View.VISIBLE : View.GONE);
-        } else {
-            mAccountFilterHeader.setVisibility(View.GONE);
+
+        @Override
+        public void onSelectedContactIdsChanged() {
+            mActionBarAdapter.setSelectionCount(getSelectedContactIds().size());
+            mActivity.invalidateOptionsMenu();
+            mActionBarAdapter.updateOverflowButtonColor();
         }
+
+        @Override
+        public void onStopDisplayingCheckBoxes() {
+            mActionBarAdapter.setSelectionMode(false);
+        }
+    }
+
+    public void setFilterAndUpdateTitle(ContactListFilter filter) {
+        setFilterAndUpdateTitle(filter, true);
+    }
+
+    private void setFilterAndUpdateTitle(ContactListFilter filter, boolean restoreSelectedUri) {
+        setContactListFilter(filter);
+        updateListFilter(filter, restoreSelectedUri);
+        mActivity.setTitle(AccountFilterUtil.getActionBarTitleForFilter(mActivity, filter));
+
+        // Alert user if sync is off and not dismissed before
+        setSyncOffAlert();
+
+        // Determine whether the account has pullToRefresh feature
+        setSwipeRefreshLayoutEnabledOrNot(filter);
+    }
+
+    private void setSwipeRefreshLayoutEnabledOrNot(ContactListFilter filter) {
+        final SwipeRefreshLayout swipeRefreshLayout = getSwipeRefreshLayout();
+        if (swipeRefreshLayout == null) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Can not load swipeRefreshLayout, swipeRefreshLayout is null");
+            }
+            return;
+        }
+
+        swipeRefreshLayout.setRefreshing(false);
+        swipeRefreshLayout.setEnabled(false);
+
+        if (filter != null && !mActionBarAdapter.isSearchMode()
+                && !mActionBarAdapter.isSelectionMode()) {
+            if (filter.isSyncable()
+                    || (filter.shouldShowSyncState()
+                    && SyncUtil.hasSyncableAccount(AccountTypeManager.getInstance(getContext())))) {
+                swipeRefreshLayout.setEnabled(true);
+            }
+        }
+    }
+
+    private void configureContactListFragment() {
+        // Filter may be changed when activity is in background.
+        setFilterAndUpdateTitle(getFilter());
+        setVerticalScrollbarPosition(getScrollBarPosition());
+        setSelectionVisible(false);
+        mActivity.invalidateOptionsMenu();
+    }
+
+    private int getScrollBarPosition() {
+        final Locale locale = Locale.getDefault();
+        final boolean isRTL =
+                TextUtils.getLayoutDirectionFromLocale(locale) == View.LAYOUT_DIRECTION_RTL;
+        return isRTL ? View.SCROLLBAR_POSITION_LEFT : View.SCROLLBAR_POSITION_RIGHT;
+    }
+
+    private final class ContactBrowserActionListener implements OnContactBrowserActionListener {
+        ContactBrowserActionListener() {}
+
+        @Override
+        public void onSelectionChange() {
+        }
+
+        @Override
+        public void onViewContactAction(int position, Uri contactLookupUri,
+                boolean isEnterpriseContact) {
+            if (isEnterpriseContact) {
+                // No implicit intent as user may have a different contacts app in work profile.
+                ContactsContract.QuickContact.showQuickContact(getContext(), new Rect(),
+                        contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED, null);
+            } else {
+                final int previousScreen;
+                if (isSearchMode()) {
+                    previousScreen = ScreenEvent.ScreenType.SEARCH;
+                } else {
+                    if (isAllContactsFilter(getFilter())) {
+                        if (position < getAdapter().getNumberOfFavorites()) {
+                            previousScreen = ScreenEvent.ScreenType.FAVORITES;
+                        } else {
+                            previousScreen = ScreenEvent.ScreenType.ALL_CONTACTS;
+                        }
+                    } else {
+                        previousScreen = ScreenEvent.ScreenType.LIST_ACCOUNT;
+                    }
+                }
+
+                Logger.logListEvent(ListEvent.ActionType.CLICK,
+                        /* listType */ getListTypeIncludingSearch(),
+                        /* count */ getAdapter().getCount(),
+                        /* clickedIndex */ position, /* numSelected */ 0);
+
+                ImplicitIntentsUtil.startQuickContact(
+                        getActivity(), contactLookupUri, previousScreen);
+            }
+        }
+
+        @Override
+        public void onDeleteContactAction(Uri contactUri) {
+            ContactDeletionInteraction.start(mActivity, contactUri, false);
+        }
+
+        @Override
+        public void onFinishAction() {
+            mActivity.onBackPressed();
+        }
+
+        @Override
+        public void onInvalidSelection() {
+            ContactListFilter filter;
+            ContactListFilter currentFilter = getFilter();
+            if (currentFilter != null
+                    && currentFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+                filter = AccountFilterUtil.createContactsFilter(getContext());
+                setFilterAndUpdateTitle(filter);
+            } else {
+                filter = ContactListFilter.createFilterWithType(
+                        ContactListFilter.FILTER_TYPE_SINGLE_CONTACT);
+                setFilterAndUpdateTitle(filter, /* restoreSelectedUri */ false);
+            }
+            setContactListFilter(filter);
+        }
+    }
+
+    private boolean isAllContactsFilter(ContactListFilter filter) {
+        return filter != null && filter.isContactsFilterType();
+    }
+
+    public void setContactsAvailable(boolean contactsAvailable) {
+        mContactsAvailable = contactsAvailable;
+    }
+
+    /**
+     * Set filter via ContactListFilterController
+     */
+    private void setContactListFilter(ContactListFilter filter) {
+        mContactListFilterController.setContactListFilter(filter,
+                /* persistent */ isAllContactsFilter(filter));
     }
 
     @Override
-    protected void setProfileHeader() {
-        mUserProfileExists = getAdapter().hasProfile();
-        showEmptyUserProfile(!mUserProfileExists && !isSearchMode());
-
-        if (isSearchMode()) {
-            ContactListAdapter adapter = getAdapter();
-            if (adapter == null) {
-                return;
-            }
-
-            // In search mode we only display the header if there is nothing found
-            if (TextUtils.isEmpty(getQueryString()) || !adapter.areAllPartitionsEmpty()) {
-                mSearchHeaderView.setVisibility(View.GONE);
-                showSearchProgress(false);
-            } else {
-                mSearchHeaderView.setVisibility(View.VISIBLE);
-                if (adapter.isLoading()) {
-                    mSearchProgressText.setText(R.string.search_results_searching);
-                    showSearchProgress(true);
-                } else {
-                    mSearchProgressText.setText(R.string.listFoundAllContactsZero);
-                    mSearchProgressText.sendAccessibilityEvent(
-                            AccessibilityEvent.TYPE_VIEW_SELECTED);
-                    showSearchProgress(false);
-                }
-            }
-            showEmptyUserProfile(false);
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        if (!mContactsAvailable || mActivity.isInSecondLevel()) {
+            // If contacts aren't available or this fragment is not visible, hide all menu items.
+            return;
         }
+        super.onCreateOptionsMenu(menu, inflater);
+        inflater.inflate(R.menu.people_options, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        mOptionsMenuContactsAvailable = mContactsAvailable;
+        if (!mOptionsMenuContactsAvailable) {
+            return;
+        }
+
+        final boolean isSearchOrSelectionMode = mActionBarAdapter.isSearchMode()
+                || mActionBarAdapter.isSelectionMode();
+        makeMenuItemVisible(menu, R.id.menu_search, !isSearchOrSelectionMode);
+
+        final boolean showSelectedContactOptions = mActionBarAdapter.isSelectionMode()
+                && getSelectedContactIds().size() != 0;
+        makeMenuItemVisible(menu, R.id.menu_share, showSelectedContactOptions);
+        makeMenuItemVisible(menu, R.id.menu_delete, showSelectedContactOptions);
+        final boolean showLinkContactsOptions = mActionBarAdapter.isSelectionMode()
+                && getSelectedContactIds().size() > 1;
+        makeMenuItemVisible(menu, R.id.menu_join, showLinkContactsOptions);
+
+        // Debug options need to be visible even in search mode.
+        makeMenuItemVisible(menu, R.id.export_database, mEnableDebugMenuOptions &&
+                hasExportIntentHandler());
+
+        // Light tint the icons for normal mode, dark tint for search or selection mode.
+        for (int i = 0; i < menu.size(); ++i) {
+            final Drawable icon = menu.getItem(i).getIcon();
+            if (icon != null && !isSearchOrSelectionMode) {
+                icon.mutate().setColorFilter(ContextCompat.getColor(getContext(),
+                        R.color.actionbar_icon_color), PorterDuff.Mode.SRC_ATOP);
+            }
+        }
+    }
+
+    private void makeMenuItemVisible(Menu menu, int itemId, boolean visible) {
+        final MenuItem item = menu.findItem(itemId);
+        if (item != null) {
+            item.setVisible(visible);
+        }
+    }
+
+    private boolean hasExportIntentHandler() {
+        final Intent intent = new Intent();
+        intent.setAction("com.android.providers.contacts.DUMP_DATABASE");
+        final List<ResolveInfo> receivers =
+                getContext().getPackageManager().queryIntentActivities(intent,
+                PackageManager.MATCH_DEFAULT_ONLY);
+        return receivers != null && receivers.size() > 0;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (mDisableOptionItemSelected) {
+            return false;
+        }
+
+        final int id = item.getItemId();
+        if (id == android.R.id.home) {
+            if (mActionBarAdapter.isUpShowing()) {
+                // "UP" icon press -- should be treated as "back".
+                mActivity.onBackPressed();
+            }
+            return true;
+        } else if (id == R.id.menu_search) {
+            if (!mActionBarAdapter.isSelectionMode()) {
+                mActionBarAdapter.setSearchMode(true);
+            }
+            return true;
+        } else if (id == R.id.menu_share) {
+            shareSelectedContacts();
+            return true;
+        } else if (id == R.id.menu_join) {
+            Logger.logListEvent(ListEvent.ActionType.LINK,
+                        /* listType */ getListTypeIncludingSearch(),
+                        /* count */ getAdapter().getCount(), /* clickedIndex */ -1,
+                        /* numSelected */ getAdapter().getSelectedContactIds().size());
+            joinSelectedContacts();
+            return true;
+        } else if (id == R.id.menu_delete) {
+            deleteSelectedContacts();
+            return true;
+        } else if (id == R.id.export_database) {
+            final Intent intent = new Intent("com.android.providers.contacts.DUMP_DATABASE");
+            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+            ImplicitIntentsUtil.startActivityOutsideApp(getContext(), intent);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    /**
+     * Share all contacts that are currently selected. This method is pretty inefficient for
+     * handling large numbers of contacts. I don't expect this to be a problem.
+     */
+    private void shareSelectedContacts() {
+        final StringBuilder uriListBuilder = new StringBuilder();
+        for (Long contactId : getSelectedContactIds()) {
+            final Uri contactUri = ContentUris.withAppendedId(
+                    ContactsContract.Contacts.CONTENT_URI, contactId);
+            final Uri lookupUri = ContactsContract.Contacts.getLookupUri(
+                    getContext().getContentResolver(), contactUri);
+            if (lookupUri == null) {
+                continue;
+            }
+            final List<String> pathSegments = lookupUri.getPathSegments();
+            if (pathSegments.size() < 2) {
+                continue;
+            }
+            final String lookupKey = pathSegments.get(pathSegments.size() - 2);
+            if (uriListBuilder.length() > 0) {
+                uriListBuilder.append(':');
+            }
+            uriListBuilder.append(Uri.encode(lookupKey));
+        }
+        if (uriListBuilder.length() == 0) {
+            return;
+        }
+        final Uri uri = Uri.withAppendedPath(
+                ContactsContract.Contacts.CONTENT_MULTI_VCARD_URI,
+                Uri.encode(uriListBuilder.toString()));
+        final Intent intent = new Intent(Intent.ACTION_SEND);
+        intent.setType(ContactsContract.Contacts.CONTENT_VCARD_TYPE);
+        intent.putExtra(Intent.EXTRA_STREAM, uri);
+        try {
+            startActivityForResult(Intent.createChooser(intent, getResources().getQuantityString(
+                    R.plurals.title_share_via,/* quantity */ getSelectedContactIds().size()))
+                    , ACTIVITY_REQUEST_CODE_SHARE);
+        } catch (final ActivityNotFoundException ex) {
+            Toast.makeText(getContext(), R.string.share_error, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    private void joinSelectedContacts() {
+        final Context context = getContext();
+        final Intent intent = ContactSaveService.createJoinSeveralContactsIntent(
+                context, getSelectedContactIdsArray());
+        context.startService(intent);
+
+        mActionBarAdapter.setSelectionMode(false);
+    }
+
+    private void deleteSelectedContacts() {
+        final ContactMultiDeletionInteraction multiDeletionInteraction =
+                ContactMultiDeletionInteraction.start(this, getSelectedContactIds());
+        multiDeletionInteraction.setListener(new MultiDeleteListener());
+        mIsDeletionInProgress = true;
+    }
+
+    private final class MultiDeleteListener implements MultiContactDeleteListener {
+        @Override
+        public void onDeletionFinished() {
+            // The parameters count and numSelected are both the number of contacts before deletion.
+            Logger.logListEvent(ListEvent.ActionType.DELETE,
+                /* listType */ getListTypeIncludingSearch(),
+                /* count */ getAdapter().getCount(), /* clickedIndex */ -1,
+                /* numSelected */ getSelectedContactIds().size());
+            mActionBarAdapter.setSelectionMode(false);
+            mIsDeletionInProgress = false;
+        }
+    }
+
+    private int getListTypeIncludingSearch() {
+        return isSearchMode() ? ListEvent.ListType.SEARCH_RESULT : getListType();
+    }
+
+    public void setParameters(ContactsRequest contactsRequest, boolean fromOnNewIntent) {
+        mContactsRequest = contactsRequest;
+        mFromOnNewIntent = fromOnNewIntent;
     }
 
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode == REQUEST_CODE_ACCOUNT_FILTER) {
-            if (getActivity() != null) {
-                AccountFilterUtil.handleAccountFilterResult(
-                        ContactListFilterController.getInstance(getActivity()), resultCode, data);
-            } else {
-                Log.e(TAG, "getActivity() returns null during Fragment#onActivityResult()");
-            }
+        switch (requestCode) {
+            // TODO: Using the new startActivityWithResultFromFragment API this should not be needed
+            // anymore
+            case ContactEntryListFragment.ACTIVITY_REQUEST_CODE_PICKER:
+                if (resultCode == Activity.RESULT_OK) {
+                    onPickerResult(data);
+                }
+            case ACTIVITY_REQUEST_CODE_SHARE:
+                Logger.logListEvent(ListEvent.ActionType.SHARE,
+                    /* listType */ getListTypeIncludingSearch(),
+                    /* count */ getAdapter().getCount(), /* clickedIndex */ -1,
+                    /* numSelected */ getAdapter().getSelectedContactIds().size());
+
+// TODO fix or remove multipicker code: ag/54762
+//                else if (resultCode == RESULT_CANCELED && mMode == MODE_PICK_MULTIPLE_PHONES) {
+//                    // Finish the activity if the sub activity was canceled as back key is used
+//                    // to confirm user selection in MODE_PICK_MULTIPLE_PHONES.
+//                    finish();
+//                }
+//                break;
         }
     }
 
-    private void showEmptyUserProfile(boolean show) {
-        // Changing visibility of just the mProfileHeader doesn't do anything unless
-        // you change visibility of its children, hence the call to mCounterHeaderView
-        // and mProfileTitle
-        mProfileHeaderContainer.setVisibility(show ? View.VISIBLE : View.GONE);
-        mProfileHeader.setVisibility(show ? View.VISIBLE : View.GONE);
-        mProfileTitle.setVisibility(show ? View.VISIBLE : View.GONE);
-        mProfileMessage.setVisibility(show ? View.VISIBLE : View.GONE);
+    public boolean getOptionsMenuContactsAvailable() {
+        return mOptionsMenuContactsAvailable;
     }
 
-    /**
-     * This method creates a pseudo user profile contact. When the returned query doesn't have
-     * a profile, this methods creates 2 views that are inserted as headers to the listview:
-     * 1. A header view with the "ME" title and the contacts count.
-     * 2. A button that prompts the user to create a local profile
-     */
-    private void addEmptyUserProfileHeader(LayoutInflater inflater) {
-        ListView list = getListView();
-        // Add a header with the "ME" name. The view is embedded in a frame view since you cannot
-        // change the visibility of a view in a ListView without having a parent view.
-        mProfileHeader = inflater.inflate(R.layout.user_profile_header, null, false);
-        mProfileTitle = (TextView) mProfileHeader.findViewById(R.id.profile_title);
-        mProfileHeaderContainer = new FrameLayout(inflater.getContext());
-        mProfileHeaderContainer.addView(mProfileHeader);
-        list.addHeaderView(mProfileHeaderContainer, null, false);
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        // Clear the listener to make sure we don't get callbacks after onSaveInstanceState,
+        // in order to avoid doing fragment transactions after it.
+        // TODO Figure out a better way to deal with the issue (ag/120686).
+        if (mActionBarAdapter != null) {
+            mActionBarAdapter.setListener(null);
+            mActionBarAdapter.onSaveInstanceState(outState);
+        }
+        mDisableOptionItemSelected = true;
+        outState.putBoolean(KEY_DELETION_IN_PROGRESS, mIsDeletionInProgress);
+        outState.putBoolean(KEY_SEARCH_RESULT_CLICKED, mSearchResultClicked);
+    }
 
-        // Add a button with a message inviting the user to create a local profile
-        mProfileMessage = (Button) mProfileHeader.findViewById(R.id.user_profile_button);
-        mProfileMessage.setOnClickListener(new View.OnClickListener() {
-            public void onClick(View v) {
-                Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
-                intent.putExtra(ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE, true);
-                ImplicitIntentsUtil.startActivityInApp(getActivity(), intent);
-            }
-        });
+    @Override
+    public void onPause() {
+        mOptionsMenuContactsAvailable = false;
+        super.onPause();
+    }
+
+    @Override
+    public void onDestroy() {
+        if (mActionBarAdapter != null) {
+            mActionBarAdapter.setListener(null);
+        }
+        super.onDestroy();
+    }
+
+    public boolean onKeyDown(int unicodeChar) {
+        if (mActionBarAdapter != null && mActionBarAdapter.isSelectionMode()) {
+            // Ignore keyboard input when in selection mode.
+            return true;
+        }
+
+        if (mActionBarAdapter != null && !mActionBarAdapter.isSearchMode()) {
+            final String query = new String(new int[]{unicodeChar}, 0, 1);
+            mActionBarAdapter.setSearchMode(true);
+            mActionBarAdapter.setQueryString(query);
+            return true;
+        }
+
+        return false;
+    }
+
+    public boolean canSetActionBar() {
+        return mCanSetActionBar;
     }
 }
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
new file mode 100644
index 0000000..e50fe48
--- /dev/null
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -0,0 +1,300 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.preference.PreferenceManager;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Directory;
+import android.provider.ContactsContract.SearchSnippets;
+import android.text.TextUtils;
+import android.view.View;
+
+import com.android.contacts.compat.ContactsCompat;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.preference.ContactsPreferences;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A cursor adapter for the {@link ContactsContract.Contacts#CONTENT_TYPE} content type.
+ */
+public class DefaultContactListAdapter extends ContactListAdapter {
+
+    public static final char SNIPPET_START_MATCH = '[';
+    public static final char SNIPPET_END_MATCH = ']';
+
+    // Contacts contacted within the last 3 days (in seconds)
+    private static final long LAST_TIME_USED_3_DAYS_SEC = 3L * 24 * 60 * 60;
+
+    // Contacts contacted within the last 7 days (in seconds)
+    private static final long LAST_TIME_USED_7_DAYS_SEC = 7L * 24 * 60 * 60;
+
+    // Contacts contacted within the last 14 days (in seconds)
+    private static final long LAST_TIME_USED_14_DAYS_SEC = 14L * 24 * 60 * 60;
+
+    // Contacts contacted within the last 30 days (in seconds)
+    private static final long LAST_TIME_USED_30_DAYS_SEC = 30L * 24 * 60 * 60;
+
+    private static final String TIME_SINCE_LAST_USED_SEC =
+            "(strftime('%s', 'now') - " + Contacts.LAST_TIME_CONTACTED + "/1000)";
+
+    private static final String STREQUENT_SORT =
+            "(CASE WHEN " + TIME_SINCE_LAST_USED_SEC + " < " + LAST_TIME_USED_3_DAYS_SEC +
+                    " THEN 0 " +
+                    " WHEN " + TIME_SINCE_LAST_USED_SEC + " < " + LAST_TIME_USED_7_DAYS_SEC +
+                    " THEN 1 " +
+                    " WHEN " + TIME_SINCE_LAST_USED_SEC + " < " + LAST_TIME_USED_14_DAYS_SEC +
+                    " THEN 2 " +
+                    " WHEN " + TIME_SINCE_LAST_USED_SEC + " < " + LAST_TIME_USED_30_DAYS_SEC +
+                    " THEN 3 " +
+                    " ELSE 4 END), " +
+                    Contacts.TIMES_CONTACTED + " DESC, " +
+                    Contacts.STARRED + " DESC";
+
+    public DefaultContactListAdapter(Context context) {
+        super(context);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        if (loader instanceof FavoritesAndContactsLoader) {
+            ((FavoritesAndContactsLoader) loader).setLoadFavorites(shouldIncludeFavorites());
+        }
+
+        String sortOrder = null;
+        if (isSearchMode()) {
+            String query = getQueryString();
+            if (query == null) query = "";
+            query = query.trim();
+            if (TextUtils.isEmpty(query)) {
+                // Regardless of the directory, we don't want anything returned,
+                // so let's just send a "nothing" query to the local directory.
+                loader.setUri(Contacts.CONTENT_URI);
+                loader.setProjection(getProjection(false));
+                loader.setSelection("0");
+            } else if (isGroupMembersFilter()) {
+                final ContactListFilter filter = getFilter();
+                configureUri(loader, directoryId, filter);
+                // TODO: This is not the normal type to filter URI so we load the non-search
+                // projection. Consider creating a specific group member adapter to make it more
+                // clear.
+                loader.setProjection(getProjection(/* forSearch */ false));
+                loader.setSelection(
+                        Contacts.DISPLAY_NAME_PRIMARY + " LIKE ?1 OR " +
+                        Contacts.DISPLAY_NAME_ALTERNATIVE + " LIKE ?1");
+                final String[] args = new String[1];
+                args[0] = query + "%";
+                loader.setSelectionArgs(args);
+            } else {
+                final Builder builder = ContactsCompat.getContentUri().buildUpon();
+                appendSearchParameters(builder, query, directoryId);
+                loader.setUri(builder.build());
+                loader.setProjection(getProjection(true));
+                sortOrder = STREQUENT_SORT;
+            }
+        } else {
+            final ContactListFilter filter = getFilter();
+            configureUri(loader, directoryId, filter);
+            if (filter != null
+                    && filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
+                loader.setProjection(getDataProjectionForContacts(false));
+            } else {
+                loader.setProjection(getProjection(false));
+            }
+            configureSelection(loader, directoryId, filter);
+        }
+
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+            if (sortOrder == null) {
+                sortOrder = Contacts.SORT_KEY_PRIMARY;
+            } else {
+                sortOrder += ", " + Contacts.SORT_KEY_PRIMARY;
+            }
+        } else {
+            if (sortOrder == null) {
+                sortOrder = Contacts.SORT_KEY_ALTERNATIVE;
+            } else {
+                sortOrder += ", " + Contacts.SORT_KEY_ALTERNATIVE;
+            }
+        }
+        loader.setSortOrder(sortOrder);
+    }
+
+    private boolean isGroupMembersFilter() {
+        final ContactListFilter filter = getFilter();
+        return filter != null && filter.filterType == ContactListFilter.FILTER_TYPE_GROUP_MEMBERS;
+    }
+
+    private void appendSearchParameters(Builder builder, String query, long directoryId) {
+        builder.appendPath(query); // Builder will encode the query
+        builder.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                String.valueOf(directoryId));
+        if (directoryId != Directory.DEFAULT && directoryId != Directory.LOCAL_INVISIBLE) {
+            builder.appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY,
+                    String.valueOf(getDirectoryResultLimit(getDirectoryById(directoryId))));
+        }
+        builder.appendQueryParameter(SearchSnippets.DEFERRED_SNIPPETING_KEY, "1");
+    }
+
+    protected void configureUri(CursorLoader loader, long directoryId, ContactListFilter filter) {
+        Uri uri = Contacts.CONTENT_URI;
+        if (filter != null) {
+            if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+                String lookupKey = getSelectedContactLookupKey();
+                if (lookupKey != null) {
+                    uri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey);
+                } else {
+                    uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, getSelectedContactId());
+                }
+            } else if (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
+                uri = Data.CONTENT_URI;
+            }
+        }
+
+        if (directoryId == Directory.DEFAULT && isSectionHeaderDisplayEnabled()) {
+            uri = ContactListAdapter.buildSectionIndexerUri(uri);
+        }
+
+        if (filter != null
+                && filter.filterType != ContactListFilter.FILTER_TYPE_CUSTOM
+                && filter.filterType != ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+            final Uri.Builder builder = uri.buildUpon();
+            if (filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT
+                || filter.filterType == ContactListFilter.FILTER_TYPE_GROUP_MEMBERS) {
+                filter.addAccountQueryParameterToUrl(builder);
+            }
+            uri = builder.build();
+        }
+
+        loader.setUri(uri);
+    }
+
+    private void configureSelection(
+            CursorLoader loader, long directoryId, ContactListFilter filter) {
+        if (filter == null) {
+            return;
+        }
+
+        if (directoryId != Directory.DEFAULT) {
+            return;
+        }
+
+        StringBuilder selection = new StringBuilder();
+        List<String> selectionArgs = new ArrayList<String>();
+
+        switch (filter.filterType) {
+            case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS: {
+                // We have already added directory=0 to the URI, which takes care of this
+                // filter
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_SINGLE_CONTACT: {
+                // We have already added the lookup key to the URI, which takes care of this
+                // filter
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_STARRED: {
+                selection.append(Contacts.STARRED + "!=0");
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY: {
+                selection.append(Contacts.HAS_PHONE_NUMBER + "=1");
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_CUSTOM: {
+                selection.append(Contacts.IN_VISIBLE_GROUP + "=1");
+                if (isCustomFilterForPhoneNumbersOnly()) {
+                    selection.append(" AND " + Contacts.HAS_PHONE_NUMBER + "=1");
+                }
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_ACCOUNT: {
+                // We use query parameters for account filter, so no selection to add here.
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_GROUP_MEMBERS: {
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS: {
+                if (filter.accountType != null) {
+                    selection.append(ContactsContract.RawContacts.ACCOUNT_TYPE)
+                            .append("=?");
+                    selectionArgs.add(filter.accountType);
+                    if (filter.accountName != null) {
+                        selection.append(" AND ").append(ContactsContract.RawContacts.ACCOUNT_NAME)
+                                .append(("=?"));
+                        selectionArgs.add(filter.accountName);
+                    }
+                } else {
+                    selection.append(AccountWithDataSet.LOCAL_ACCOUNT_SELECTION);
+                }
+                break;
+            }
+        }
+        loader.setSelection(selection.toString());
+        loader.setSelectionArgs(selectionArgs.toArray(new String[0]));
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        final ContactListItemView view = (ContactListItemView)itemView;
+
+        view.setHighlightedPrefix(isSearchMode() ? getUpperCaseQueryString() : null);
+
+        if (isSelectionVisible()) {
+            view.setActivated(isSelectedContact(partition, cursor));
+        }
+
+        bindSectionHeaderAndDivider(view, position, cursor);
+
+        if (isQuickContactEnabled()) {
+            bindQuickContact(view, partition, cursor, ContactQuery.CONTACT_PHOTO_ID,
+                    ContactQuery.CONTACT_PHOTO_URI, ContactQuery.CONTACT_ID,
+                    ContactQuery.CONTACT_LOOKUP_KEY, ContactQuery.CONTACT_DISPLAY_NAME);
+        } else {
+            if (getDisplayPhotos()) {
+                bindPhoto(view, partition, cursor);
+            }
+        }
+
+        bindNameAndViewId(view, cursor);
+        bindPresenceAndStatusMessage(view, cursor);
+
+        if (isSearchMode()) {
+            bindSearchSnippet(view, cursor);
+        } else {
+            view.setSnippet(null);
+        }
+    }
+
+    private boolean isCustomFilterForPhoneNumbersOnly() {
+        // TODO: this flag should not be stored in shared prefs.  It needs to be in the db.
+        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+        return prefs.getBoolean(ContactsPreferences.PREF_DISPLAY_ONLY_PHONES,
+                ContactsPreferences.PREF_DISPLAY_ONLY_PHONES_DEFAULT);
+    }
+}
diff --git a/src/com/android/contacts/list/DirectoryListLoader.java b/src/com/android/contacts/list/DirectoryListLoader.java
new file mode 100644
index 0000000..192c744
--- /dev/null
+++ b/src/com/android/contacts/list/DirectoryListLoader.java
@@ -0,0 +1,217 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.AsyncTaskLoader;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.os.Handler;
+import android.provider.ContactsContract.Directory;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.R;
+import com.android.contacts.compat.DirectoryCompat;
+
+/**
+ * A specialized loader for the list of directories, see {@link Directory}.
+ */
+public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
+
+    private static final String TAG = "ContactEntryListAdapter";
+
+    public static final int SEARCH_MODE_NONE = 0;
+    public static final int SEARCH_MODE_DEFAULT = 1;
+    public static final int SEARCH_MODE_CONTACT_SHORTCUT = 2;
+    public static final int SEARCH_MODE_DATA_SHORTCUT = 3;
+
+    private static final class DirectoryQuery {
+        public static final String ORDER_BY = Directory._ID;
+
+        public static final String[] PROJECTION = {
+            Directory._ID,
+            Directory.PACKAGE_NAME,
+            Directory.TYPE_RESOURCE_ID,
+            Directory.DISPLAY_NAME,
+            Directory.PHOTO_SUPPORT,
+        };
+
+        public static final int ID = 0;
+        public static final int PACKAGE_NAME = 1;
+        public static final int TYPE_RESOURCE_ID = 2;
+        public static final int DISPLAY_NAME = 3;
+        public static final int PHOTO_SUPPORT = 4;
+
+        public static Uri getDirectoryUri(int mode) {
+            if (mode == SEARCH_MODE_DATA_SHORTCUT || mode == SEARCH_MODE_CONTACT_SHORTCUT) {
+                return Directory.CONTENT_URI;
+            } else {
+                return DirectoryCompat.getContentUri();
+            }
+        }
+    }
+
+    // This is a virtual column created for a MatrixCursor.
+    public static final String DIRECTORY_TYPE = "directoryType";
+
+    private static final String[] RESULT_PROJECTION = {
+        Directory._ID,
+        DIRECTORY_TYPE,
+        Directory.DISPLAY_NAME,
+        Directory.PHOTO_SUPPORT,
+    };
+
+    private final ContentObserver mObserver = new ContentObserver(new Handler()) {
+        @Override
+        public void onChange(boolean selfChange) {
+            forceLoad();
+        }
+    };
+
+    private int mDirectorySearchMode;
+    private boolean mLocalInvisibleDirectoryEnabled;
+
+    private MatrixCursor mDefaultDirectoryList;
+
+    public DirectoryListLoader(Context context) {
+        super(context);
+    }
+
+    public void setDirectorySearchMode(int mode) {
+        mDirectorySearchMode = mode;
+    }
+
+    /**
+     * A flag that indicates whether the {@link Directory#LOCAL_INVISIBLE} directory should
+     * be included in the results.
+     */
+    public void setLocalInvisibleDirectoryEnabled(boolean flag) {
+        this.mLocalInvisibleDirectoryEnabled = flag;
+    }
+
+    @Override
+    protected void onStartLoading() {
+        getContext().getContentResolver().
+                registerContentObserver(DirectoryQuery.getDirectoryUri(mDirectorySearchMode),
+                        false, mObserver);
+        forceLoad();
+    }
+
+    @Override
+    protected void onStopLoading() {
+        getContext().getContentResolver().unregisterContentObserver(mObserver);
+    }
+
+    @Override
+    public Cursor loadInBackground() {
+        if (mDirectorySearchMode == SEARCH_MODE_NONE) {
+            return getDefaultDirectories();
+        }
+
+        MatrixCursor result = new MatrixCursor(RESULT_PROJECTION);
+        Context context = getContext();
+        PackageManager pm = context.getPackageManager();
+        String selection;
+        switch (mDirectorySearchMode) {
+            case SEARCH_MODE_DEFAULT:
+                selection = null;
+                break;
+
+            case SEARCH_MODE_CONTACT_SHORTCUT:
+                selection = Directory.SHORTCUT_SUPPORT + "=" + Directory.SHORTCUT_SUPPORT_FULL;
+                break;
+
+            case SEARCH_MODE_DATA_SHORTCUT:
+                selection = Directory.SHORTCUT_SUPPORT + " IN ("
+                        + Directory.SHORTCUT_SUPPORT_FULL + ", "
+                        + Directory.SHORTCUT_SUPPORT_DATA_ITEMS_ONLY + ")";
+                break;
+
+            default:
+                throw new RuntimeException(
+                        "Unsupported directory search mode: " + mDirectorySearchMode);
+        }
+        Cursor cursor = null;
+        try {
+            cursor = context.getContentResolver().query(
+                    DirectoryQuery.getDirectoryUri(mDirectorySearchMode),
+                    DirectoryQuery.PROJECTION, selection, null, DirectoryQuery.ORDER_BY);
+
+            if (cursor == null) {
+                return result;
+            }
+
+            while(cursor.moveToNext()) {
+                long directoryId = cursor.getLong(DirectoryQuery.ID);
+                if (!mLocalInvisibleDirectoryEnabled
+                        && DirectoryCompat.isInvisibleDirectory(directoryId)) {
+                    continue;
+                }
+                String directoryType = null;
+
+                String packageName = cursor.getString(DirectoryQuery.PACKAGE_NAME);
+                int typeResourceId = cursor.getInt(DirectoryQuery.TYPE_RESOURCE_ID);
+                if (!TextUtils.isEmpty(packageName) && typeResourceId != 0) {
+                    try {
+                        directoryType = pm.getResourcesForApplication(packageName)
+                                .getString(typeResourceId);
+                    } catch (Exception e) {
+                        Log.e(TAG, "Cannot obtain directory type from package: " + packageName);
+                    }
+                }
+                String displayName = cursor.getString(DirectoryQuery.DISPLAY_NAME);
+                int photoSupport = cursor.getInt(DirectoryQuery.PHOTO_SUPPORT);
+                result.addRow(new Object[]{directoryId, directoryType, displayName, photoSupport});
+            }
+        } catch (RuntimeException e) {
+            Log.w(TAG, "Runtime Exception when querying directory");
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+
+        return result;
+    }
+
+    private Cursor getDefaultDirectories() {
+        if (mDefaultDirectoryList == null) {
+            mDefaultDirectoryList = new MatrixCursor(RESULT_PROJECTION);
+            mDefaultDirectoryList.addRow(new Object[] {
+                    Directory.DEFAULT,
+                    getContext().getString(R.string.contactsList),
+                    null,
+                    null
+            });
+            mDefaultDirectoryList.addRow(new Object[] {
+                    Directory.LOCAL_INVISIBLE,
+                    getContext().getString(R.string.local_invisible_directory),
+                    null,
+                    null
+            });
+        }
+        return mDefaultDirectoryList;
+    }
+
+    @Override
+    protected void onReset() {
+        stopLoading();
+    }
+}
diff --git a/src/com/android/contacts/list/DirectoryPartition.java b/src/com/android/contacts/list/DirectoryPartition.java
new file mode 100644
index 0000000..bf0456b
--- /dev/null
+++ b/src/com/android/contacts/list/DirectoryPartition.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.provider.ContactsContract.Directory;
+
+import com.android.common.widget.CompositeCursorAdapter;
+
+/**
+ * Model object for a {@link Directory} row.
+ */
+public final class DirectoryPartition extends CompositeCursorAdapter.Partition {
+
+    public static final int STATUS_NOT_LOADED = 0;
+    public static final int STATUS_LOADING = 1;
+    public static final int STATUS_LOADED = 2;
+
+    public static final int RESULT_LIMIT_DEFAULT = -1;
+
+    private long mDirectoryId;
+    private String mContentUri;
+    private String mDirectoryType;
+    private String mDisplayName;
+    private int mStatus;
+    private boolean mPriorityDirectory;
+    private boolean mPhotoSupported;
+    private int mResultLimit = RESULT_LIMIT_DEFAULT;
+    private boolean mDisplayNumber = true;
+
+    private String mLabel;
+
+    public DirectoryPartition(boolean showIfEmpty, boolean hasHeader) {
+        super(showIfEmpty, hasHeader);
+    }
+
+    /**
+     * Directory ID, see {@link Directory}.
+     */
+    public long getDirectoryId() {
+        return mDirectoryId;
+    }
+
+    public void setDirectoryId(long directoryId) {
+        this.mDirectoryId = directoryId;
+    }
+
+    /**
+     * Directory type resolved from {@link Directory#PACKAGE_NAME} and
+     * {@link Directory#TYPE_RESOURCE_ID};
+     */
+    public String getDirectoryType() {
+        return mDirectoryType;
+    }
+
+    public void setDirectoryType(String directoryType) {
+        this.mDirectoryType = directoryType;
+    }
+
+    /**
+     * See {@link Directory#DISPLAY_NAME}.
+     */
+    public String getDisplayName() {
+        return mDisplayName;
+    }
+
+    public void setDisplayName(String displayName) {
+        this.mDisplayName = displayName;
+    }
+
+    public int getStatus() {
+        return mStatus;
+    }
+
+    public void setStatus(int status) {
+        mStatus = status;
+    }
+
+    public boolean isLoading() {
+        return mStatus == STATUS_NOT_LOADED || mStatus == STATUS_LOADING;
+    }
+
+    /**
+     * Returns true if this directory should be loaded before non-priority directories.
+     */
+    public boolean isPriorityDirectory() {
+        return mPriorityDirectory;
+    }
+
+    public void setPriorityDirectory(boolean priorityDirectory) {
+        mPriorityDirectory = priorityDirectory;
+    }
+
+    /**
+     * Returns true if this directory supports photos.
+     */
+    public boolean isPhotoSupported() {
+        return mPhotoSupported;
+    }
+
+    public void setPhotoSupported(boolean flag) {
+        this.mPhotoSupported = flag;
+    }
+
+    /**
+     * Max number of results for this directory. Defaults to {@link #RESULT_LIMIT_DEFAULT} which
+     * implies using the adapter's
+     * {@link com.android.contacts.list.ContactListAdapter#getDirectoryResultLimit()}
+     */
+    public int getResultLimit() {
+        return mResultLimit;
+    }
+
+    public void setResultLimit(int resultLimit) {
+        mResultLimit = resultLimit;
+    }
+
+    /**
+     * Used by extended directories to specify a custom content URI. Extended directories MUST have
+     * a content URI
+     */
+    public String getContentUri() {
+        return mContentUri;
+    }
+
+    public void setContentUri(String contentUri) {
+        mContentUri = contentUri;
+    }
+
+    /**
+     * A label to display in the header next to the display name.
+     */
+    public String getLabel() {
+        return mLabel;
+    }
+
+    public void setLabel(String label) {
+        mLabel = label;
+    }
+
+    @Override
+    public String toString() {
+        return "DirectoryPartition{" +
+                "mDirectoryId=" + mDirectoryId +
+                ", mContentUri='" + mContentUri + '\'' +
+                ", mDirectoryType='" + mDirectoryType + '\'' +
+                ", mDisplayName='" + mDisplayName + '\'' +
+                ", mStatus=" + mStatus +
+                ", mPriorityDirectory=" + mPriorityDirectory +
+                ", mPhotoSupported=" + mPhotoSupported +
+                ", mResultLimit=" + mResultLimit +
+                ", mLabel='" + mLabel + '\'' +
+                '}';
+    }
+
+    /**
+     * Whether or not to display the phone number in app that have that option - Dialer. If false,
+     * Phone Label should be used instead of Phone Number.
+     */
+    public boolean isDisplayNumber() {
+        return mDisplayNumber;
+    }
+
+    public void setDisplayNumber(boolean displayNumber) {
+        mDisplayNumber = displayNumber;
+    }
+}
diff --git a/src/com/android/contacts/list/EmailAddressListAdapter.java b/src/com/android/contacts/list/EmailAddressListAdapter.java
index d19f960..04297a4 100644
--- a/src/com/android/contacts/list/EmailAddressListAdapter.java
+++ b/src/com/android/contacts/list/EmailAddressListAdapter.java
@@ -28,10 +28,8 @@
 import android.view.View;
 import android.view.ViewGroup;
 
-import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.preference.ContactsPreferences;
 
 /**
  * A cursor adapter for the {@link Email#CONTENT_TYPE} content type.
diff --git a/src/com/android/contacts/list/EmailAddressPickerFragment.java b/src/com/android/contacts/list/EmailAddressPickerFragment.java
index f89f743..7dcc766 100644
--- a/src/com/android/contacts/list/EmailAddressPickerFragment.java
+++ b/src/com/android/contacts/list/EmailAddressPickerFragment.java
@@ -21,9 +21,6 @@
 import android.view.ViewGroup;
 
 import com.android.contacts.R;
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactEntryListFragment;
-import com.android.contacts.common.list.DirectoryListLoader;
 
 /**
  * Fragment containing an email list for picking.
diff --git a/src/com/android/contacts/list/EnableGlobalSyncDialogFragment.java b/src/com/android/contacts/list/EnableGlobalSyncDialogFragment.java
new file mode 100644
index 0000000..08822d1
--- /dev/null
+++ b/src/com/android/contacts/list/EnableGlobalSyncDialogFragment.java
@@ -0,0 +1,84 @@
+/*
+ * 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.list;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.os.Bundle;
+
+import com.android.contacts.R;
+
+/**
+ * Confirmation dialog for turning global auto-sync setting on.
+ */
+public class EnableGlobalSyncDialogFragment extends DialogFragment{
+
+    private static final String ARG_FILTER = "filter";
+    private ContactListFilter mFilter;
+
+    /**
+     * Callbacks for the dialog host.
+     */
+    public interface Listener {
+
+        /**
+         * Invoked after the user has confirmed that they want to turn on sync.
+         *
+         * @param filter the filter of current contacts list.
+         */
+        void onEnableAutoSync(ContactListFilter filter);
+    }
+
+    public static void show(DefaultContactBrowseListFragment fragment, ContactListFilter filter) {
+        final Bundle args = new Bundle();
+        args.putParcelable(ARG_FILTER, filter);
+
+        final EnableGlobalSyncDialogFragment dialog = new
+                EnableGlobalSyncDialogFragment();
+        dialog.setTargetFragment(fragment, 0);
+        dialog.setArguments(args);
+        dialog.show(fragment.getFragmentManager(), "globalSync");
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mFilter = getArguments().getParcelable(ARG_FILTER);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final Listener targetListener = (Listener) getTargetFragment();
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setTitle(R.string.turn_auto_sync_on_dialog_title)
+                .setMessage(R.string.turn_auto_sync_on_dialog_body)
+                .setPositiveButton(R.string.turn_auto_sync_on_dialog_confirm_btn,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                    if (targetListener != null) {
+                                        targetListener.onEnableAutoSync(mFilter);
+                                    }
+                                }
+                            });
+        builder.setNegativeButton(android.R.string.cancel, null);
+        builder.setCancelable(false);
+        return builder.create();
+    }
+}
diff --git a/src/com/android/contacts/list/FavoritesAndContactsLoader.java b/src/com/android/contacts/list/FavoritesAndContactsLoader.java
new file mode 100644
index 0000000..54e5f3f
--- /dev/null
+++ b/src/com/android/contacts/list/FavoritesAndContactsLoader.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2011 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.list;
+
+import android.content.Context;
+import android.content.CursorLoader;
+import android.database.Cursor;
+import android.database.MergeCursor;
+import android.database.sqlite.SQLiteException;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+/**
+ * A loader for use in the default contact list, which will also query for favorite contacts
+ * if configured to do so.
+ */
+public class FavoritesAndContactsLoader extends CursorLoader {
+
+    private boolean mLoadFavorites;
+
+    private String[] mProjection;
+
+
+    public FavoritesAndContactsLoader(Context context) {
+        super(context);
+    }
+
+    /** Whether to load favorites and merge results in before any other results. */
+    public void setLoadFavorites(boolean flag) {
+        mLoadFavorites = flag;
+    }
+
+    public void setProjection(String[] projection) {
+        super.setProjection(projection);
+        mProjection = projection;
+    }
+
+    @Override
+    public Cursor loadInBackground() {
+        List<Cursor> cursors = Lists.newArrayList();
+        if (mLoadFavorites) {
+            cursors.add(loadFavoritesContacts());
+        }
+        final Cursor contactsCursor = loadContacts();
+        cursors.add(contactsCursor);
+        return new MergeCursor(cursors.toArray(new Cursor[cursors.size()])) {
+            @Override
+            public Bundle getExtras() {
+                // Need to get the extras from the contacts cursor.
+                return contactsCursor == null ? new Bundle() : contactsCursor.getExtras();
+            }
+        };
+    }
+
+    private Cursor loadContacts() {
+        // ContactsCursor.loadInBackground() can return null; MergeCursor
+        // correctly handles null cursors.
+        try {
+            return super.loadInBackground();
+
+        } catch (NullPointerException | SQLiteException | SecurityException e) {
+            // Ignore NPEs, SQLiteExceptions and SecurityExceptions thrown by providers
+        }
+        return null;
+    }
+
+    private Cursor loadFavoritesContacts() {
+        final StringBuilder selection = new StringBuilder();
+        selection.append(Contacts.STARRED + "=?");
+        final ContactListFilter filter =
+                ContactListFilterController.getInstance(getContext()).getFilter();
+        if (filter != null && filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+            selection.append(" AND ").append(Contacts.IN_VISIBLE_GROUP + "=1");
+        }
+        return getContext().getContentResolver().query(
+                Contacts.CONTENT_URI, mProjection, selection.toString(), new String[]{"1"},
+                getSortOrder());
+    }
+}
diff --git a/src/com/android/contacts/list/GroupMemberPickerFragment.java b/src/com/android/contacts/list/GroupMemberPickerFragment.java
new file mode 100644
index 0000000..e94d73b
--- /dev/null
+++ b/src/com/android/contacts/list/GroupMemberPickerFragment.java
@@ -0,0 +1,319 @@
+/*
+ * 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.list;
+
+import android.app.Activity;
+import android.content.Loader;
+import android.database.Cursor;
+import android.database.CursorWrapper;
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.ContactSelectionActivity;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.list.ContactListAdapter.ContactQuery;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Fragment containing raw contacts for a specified account that are not already in a group.
+ */
+public class GroupMemberPickerFragment extends
+        MultiSelectContactsListFragment<DefaultContactListAdapter> {
+
+    public static final String TAG = "GroupMemberPicker";
+
+    private static final String KEY_ACCOUNT_NAME = "accountName";
+    private static final String KEY_ACCOUNT_TYPE = "accountType";
+    private static final String KEY_ACCOUNT_DATA_SET = "accountDataSet";
+    private static final String KEY_CONTACT_IDS = "contactIds";
+
+    private static final String ARG_ACCOUNT_NAME = "accountName";
+    private static final String ARG_ACCOUNT_TYPE = "accountType";
+    private static final String ARG_ACCOUNT_DATA_SET = "accountDataSet";
+    private static final String ARG_CONTACT_IDS = "contactIds";
+
+    /** Callbacks for host of {@link GroupMemberPickerFragment}. */
+    public interface Listener {
+
+        /** Invoked when a potential group member is selected. */
+        void onGroupMemberClicked(long contactId);
+
+        /** Invoked when user has initiated multiple selection mode. */
+        void onSelectGroupMembers();
+    }
+
+    /** Filters out raw contacts that are already in the group. */
+    private class FilterCursorWrapper extends CursorWrapper {
+
+        private int[] mIndex;
+        private int mCount = 0;
+        private int mPos = 0;
+
+        public FilterCursorWrapper(Cursor cursor) {
+            super(cursor);
+
+            mCount = super.getCount();
+            mIndex = new int[mCount];
+
+            final List<Integer> indicesToFilter = new ArrayList<>();
+
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "RawContacts CursorWrapper start: " + mCount);
+            }
+
+            final Bundle bundle = cursor.getExtras();
+            final String sections[] = bundle.getStringArray(Contacts
+                    .EXTRA_ADDRESS_BOOK_INDEX_TITLES);
+            final int counts[] = bundle.getIntArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS);
+            final ContactsSectionIndexer indexer = (sections == null || counts == null)
+                    ? null : new ContactsSectionIndexer(sections, counts);
+
+            for (int i = 0; i < mCount; i++) {
+                super.moveToPosition(i);
+                final String contactId = getString(ContactQuery.CONTACT_ID);
+                if (!mContactIds.contains(contactId)) {
+                    mIndex[mPos++] = i;
+                } else {
+                    indicesToFilter.add(i);
+                }
+            }
+
+            if (indexer != null && GroupUtil.needTrimming(mCount, counts, indexer.getPositions())) {
+                GroupUtil.updateBundle(bundle, indexer, indicesToFilter, sections, counts);
+            }
+
+            mCount = mPos;
+            mPos = 0;
+            super.moveToFirst();
+
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "RawContacts CursorWrapper end: " + mCount);
+            }
+        }
+
+        @Override
+        public boolean move(int offset) {
+            return moveToPosition(mPos + offset);
+        }
+
+        @Override
+        public boolean moveToNext() {
+            return moveToPosition(mPos + 1);
+        }
+
+        @Override
+        public boolean moveToPrevious() {
+            return moveToPosition(mPos - 1);
+        }
+
+        @Override
+        public boolean moveToFirst() {
+            return moveToPosition(0);
+        }
+
+        @Override
+        public boolean moveToLast() {
+            return moveToPosition(mCount - 1);
+        }
+
+        @Override
+        public boolean moveToPosition(int position) {
+            if (position >= mCount) {
+                mPos = mCount;
+                return false;
+            } else if (position < 0) {
+                mPos = -1;
+                return false;
+            }
+            mPos = mIndex[position];
+            return super.moveToPosition(mPos);
+        }
+
+        @Override
+        public int getCount() {
+            return mCount;
+        }
+
+        @Override
+        public int getPosition() {
+            return mPos;
+        }
+    }
+
+    private String mAccountName;
+    private String mAccountType;
+    private String mAccountDataSet;
+    private ArrayList<String> mContactIds;
+    private Listener mListener;
+
+    public static GroupMemberPickerFragment newInstance(String accountName, String accountType,
+            String accountDataSet, ArrayList<String> contactIds) {
+        final Bundle args = new Bundle();
+        args.putString(ARG_ACCOUNT_NAME, accountName);
+        args.putString(ARG_ACCOUNT_TYPE, accountType);
+        args.putString(ARG_ACCOUNT_DATA_SET, accountDataSet);
+        args.putStringArrayList(ARG_CONTACT_IDS, contactIds);
+
+        final GroupMemberPickerFragment fragment = new GroupMemberPickerFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    public GroupMemberPickerFragment() {
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setHasOptionsMenu(true);
+        setDisplayDirectoryHeader(false);
+    }
+
+    @Override
+    public void onCreate(Bundle savedState) {
+        if (savedState == null) {
+            mAccountName = getArguments().getString(ARG_ACCOUNT_NAME);
+            mAccountType = getArguments().getString(ARG_ACCOUNT_TYPE);
+            mAccountDataSet = getArguments().getString(ARG_ACCOUNT_DATA_SET);
+            mContactIds = getArguments().getStringArrayList(ARG_CONTACT_IDS);
+        } else {
+            mAccountName = savedState.getString(KEY_ACCOUNT_NAME);
+            mAccountType = savedState.getString(KEY_ACCOUNT_TYPE);
+            mAccountDataSet = savedState.getString(KEY_ACCOUNT_DATA_SET);
+            mContactIds = savedState.getStringArrayList(KEY_CONTACT_IDS);
+        }
+        super.onCreate(savedState);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putString(KEY_ACCOUNT_NAME, mAccountName);
+        outState.putString(KEY_ACCOUNT_TYPE, mAccountType);
+        outState.putString(KEY_ACCOUNT_DATA_SET, mAccountDataSet);
+        outState.putStringArrayList(KEY_CONTACT_IDS, mContactIds);
+    }
+
+    public void setListener(Listener listener) {
+        mListener = listener;
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(R.layout.contact_list_content, null);
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+        if (data != null) {
+            // Wait until contacts are loaded before showing the scrollbar
+            setVisibleScrollbarEnabled(true);
+
+            final FilterCursorWrapper cursorWrapper = new FilterCursorWrapper(data);
+            final View accountFilterContainer = getView().findViewById(
+                    R.id.account_filter_header_container);
+            final AccountWithDataSet accountWithDataSet = new AccountWithDataSet(mAccountName,
+                    mAccountType, mAccountDataSet);
+            bindListHeader(getContext(), getListView(), accountFilterContainer,
+                    accountWithDataSet, cursorWrapper.getCount());
+
+            super.onLoadFinished(loader, cursorWrapper);
+        }
+    }
+
+    @Override
+    protected DefaultContactListAdapter createListAdapter() {
+        final DefaultContactListAdapter adapter = new DefaultContactListAdapter(getActivity());
+        adapter.setFilter(ContactListFilter.createGroupMembersFilter(
+                mAccountType, mAccountName, mAccountDataSet));
+        adapter.setSectionHeaderDisplayEnabled(true);
+        adapter.setDisplayPhotos(true);
+        return adapter;
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        if (getAdapter().isDisplayingCheckBoxes()) {
+            super.onItemClick(position, id);
+            return;
+        }
+        if (mListener != null) {
+            final long contactId = getAdapter().getContactId(position);
+            if (contactId > 0) {
+                mListener.onGroupMemberClicked(contactId);
+            }
+        }
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) {
+        super.onCreateOptionsMenu(menu, menuInflater);
+        menuInflater.inflate(R.menu.group_member_picker, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        final ContactSelectionActivity activity = getContactSelectionActivity();
+        final boolean hasContacts = mContactIds == null ? false : mContactIds.size() > 0;
+        final boolean isSearchMode = activity == null ? false : activity.isSearchMode();
+        final boolean isSelectionMode = activity == null ? false : activity.isSelectionMode();
+
+        // Added in ContactSelectionActivity but we must account for selection mode
+        setVisible(menu, R.id.menu_search, !isSearchMode && !isSelectionMode);
+        setVisible(menu, R.id.menu_select, hasContacts && !isSearchMode && !isSelectionMode);
+    }
+
+    private ContactSelectionActivity getContactSelectionActivity() {
+        final Activity activity = getActivity();
+        if (activity != null && activity instanceof ContactSelectionActivity) {
+            return (ContactSelectionActivity) activity;
+        }
+        return null;
+    }
+
+    private static void setVisible(Menu menu, int id, boolean visible) {
+        final MenuItem menuItem = menu.findItem(id);
+        if (menuItem != null) {
+            menuItem.setVisible(visible);
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int id = item.getItemId();
+        if (id == android.R.id.home) {
+            final Activity activity = getActivity();
+            if (activity != null) {
+                activity.onBackPressed();
+            }
+            return true;
+        } else if (id == R.id.menu_select) {
+            if (mListener != null) {
+                mListener.onSelectGroupMembers();
+            }
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/com/android/contacts/list/GroupMemberTileAdapter.java b/src/com/android/contacts/list/GroupMemberTileAdapter.java
deleted file mode 100644
index 15e67f1..0000000
--- a/src/com/android/contacts/list/GroupMemberTileAdapter.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2012 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.list;
-
-import android.content.Context;
-import android.database.Cursor;
-
-import com.android.contacts.GroupMemberLoader;
-import com.android.contacts.common.list.ContactEntry;
-import com.android.contacts.common.list.ContactTileAdapter;
-import com.android.contacts.common.list.ContactTileView;
-import com.google.common.collect.Lists;
-
-import java.util.ArrayList;
-
-/**
- * Tile adapter for groups.
- */
-public class GroupMemberTileAdapter extends ContactTileAdapter {
-
-    public GroupMemberTileAdapter(Context context, ContactTileView.Listener listener, int numCols) {
-        super(context, listener, numCols, DisplayType.GROUP_MEMBERS);
-    }
-
-    @Override
-    protected void bindColumnIndices() {
-        mIdIndex = GroupMemberLoader.GroupDetailQuery.CONTACT_ID;
-        mLookupIndex = GroupMemberLoader.GroupDetailQuery.CONTACT_LOOKUP_KEY;
-        mPhotoUriIndex = GroupMemberLoader.GroupDetailQuery.CONTACT_PHOTO_URI;
-        mNameIndex = GroupMemberLoader.GroupDetailQuery.CONTACT_DISPLAY_NAME_PRIMARY;
-        mPresenceIndex = GroupMemberLoader.GroupDetailQuery.CONTACT_PRESENCE_STATUS;
-        mStatusIndex = GroupMemberLoader.GroupDetailQuery.CONTACT_STATUS;
-    }
-
-    @Override
-    protected void saveNumFrequentsFromCursor(Cursor cursor) {
-        mNumFrequents = 0;
-    }
-
-    @Override
-    public int getItemViewType(int position) {
-        return ViewTypes.STARRED;
-    }
-
-    @Override
-    protected int getDividerPosition(Cursor cursor) {
-        // No divider
-        return -1;
-    }
-
-    @Override
-    public int getCount() {
-        if (mContactCursor == null || mContactCursor.isClosed()) {
-            return 0;
-        }
-
-        return getRowCount(mContactCursor.getCount());
-    }
-
-    @Override
-    public ArrayList<ContactEntry> getItem(int position) {
-        final ArrayList<ContactEntry> resultList = Lists.newArrayListWithCapacity(mColumnCount);
-        int contactIndex = position * mColumnCount;
-
-        for (int columnCounter = 0; columnCounter < mColumnCount; columnCounter++) {
-            resultList.add(createContactEntryFromCursor(mContactCursor, contactIndex));
-            contactIndex++;
-        }
-        return resultList;
-    }
-}
diff --git a/src/com/android/contacts/list/HeaderEntryContactListAdapter.java b/src/com/android/contacts/list/HeaderEntryContactListAdapter.java
index 9822b79..43c2428 100644
--- a/src/com/android/contacts/list/HeaderEntryContactListAdapter.java
+++ b/src/com/android/contacts/list/HeaderEntryContactListAdapter.java
@@ -15,15 +15,13 @@
  */
 package com.android.contacts.list;
 
-import com.android.contacts.R;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.DefaultContactListAdapter;
-
 import android.content.Context;
 import android.database.Cursor;
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.android.contacts.R;
+
 /**
  * Equivalent to DefaultContactListAdapter, except with an optional header entry that has the same
  * formatting as the other entries in the list.
@@ -66,7 +64,7 @@
             } else {
                 itemView = (ContactListItemView) convertView;
             }
-            itemView.setDrawableResource(R.drawable.ic_search_add_contact);
+            itemView.setDrawableResource(R.drawable.quantum_ic_person_add_vd_theme_24);
             itemView.setDisplayName(getContext().getResources().getString(
                     R.string.header_entry_contact_list_adapter_header_title));
             return itemView;
diff --git a/src/com/android/contacts/list/IndexerListAdapter.java b/src/com/android/contacts/list/IndexerListAdapter.java
new file mode 100644
index 0000000..969e6a2
--- /dev/null
+++ b/src/com/android/contacts/list/IndexerListAdapter.java
@@ -0,0 +1,246 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+import android.widget.SectionIndexer;
+
+/**
+ * A list adapter that supports section indexer and a pinned header.
+ */
+public abstract class IndexerListAdapter extends PinnedHeaderListAdapter implements SectionIndexer {
+
+    protected Context mContext;
+    private SectionIndexer mIndexer;
+    private int mIndexedPartition = 0;
+    private boolean mSectionHeaderDisplayEnabled;
+    private View mHeader;
+
+    /**
+     * An item view is displayed differently depending on whether it is placed
+     * at the beginning, middle or end of a section. It also needs to know the
+     * section header when it is at the beginning of a section. This object
+     * captures all this configuration.
+     */
+    public static final class Placement {
+        private int position = ListView.INVALID_POSITION;
+        public boolean firstInSection;
+        public boolean lastInSection;
+        public String sectionHeader;
+
+        public void invalidate() {
+            position = ListView.INVALID_POSITION;
+        }
+    }
+
+    private Placement mPlacementCache = new Placement();
+
+    /**
+     * Constructor.
+     */
+    public IndexerListAdapter(Context context) {
+        super(context);
+        mContext = context;
+    }
+
+    /**
+     * Creates a section header view that will be pinned at the top of the list
+     * as the user scrolls.
+     */
+    protected abstract View createPinnedSectionHeaderView(Context context, ViewGroup parent);
+
+    /**
+     * Sets the title in the pinned header as the user scrolls.
+     */
+    protected abstract void setPinnedSectionTitle(View pinnedHeaderView, String title);
+
+    public boolean isSectionHeaderDisplayEnabled() {
+        return mSectionHeaderDisplayEnabled;
+    }
+
+    public void setSectionHeaderDisplayEnabled(boolean flag) {
+        this.mSectionHeaderDisplayEnabled = flag;
+    }
+
+    public int getIndexedPartition() {
+        return mIndexedPartition;
+    }
+
+    public void setIndexedPartition(int partition) {
+        this.mIndexedPartition = partition;
+    }
+
+    public SectionIndexer getIndexer() {
+        return mIndexer;
+    }
+
+    public void setIndexer(SectionIndexer indexer) {
+        mIndexer = indexer;
+        mPlacementCache.invalidate();
+    }
+
+    public Object[] getSections() {
+        if (mIndexer == null) {
+            return new String[] { " " };
+        } else {
+            return mIndexer.getSections();
+        }
+    }
+
+    /**
+     * @return relative position of the section in the indexed partition
+     */
+    public int getPositionForSection(int sectionIndex) {
+        if (mIndexer == null) {
+            return -1;
+        }
+
+        return mIndexer.getPositionForSection(sectionIndex);
+    }
+
+    /**
+     * @param position relative position in the indexed partition
+     */
+    public int getSectionForPosition(int position) {
+        if (mIndexer == null) {
+            return -1;
+        }
+
+        return mIndexer.getSectionForPosition(position);
+    }
+
+    @Override
+    public int getPinnedHeaderCount() {
+        if (isSectionHeaderDisplayEnabled()) {
+            return super.getPinnedHeaderCount() + 1;
+        } else {
+            return super.getPinnedHeaderCount();
+        }
+    }
+
+    @Override
+    public View getPinnedHeaderView(int viewIndex, View convertView, ViewGroup parent) {
+        if (isSectionHeaderDisplayEnabled() && viewIndex == getPinnedHeaderCount() - 1) {
+            if (mHeader == null) {
+                mHeader = createPinnedSectionHeaderView(mContext, parent);
+            }
+            return mHeader;
+        } else {
+            return super.getPinnedHeaderView(viewIndex, convertView, parent);
+        }
+    }
+
+    @Override
+    public void configurePinnedHeaders(PinnedHeaderListView listView) {
+        super.configurePinnedHeaders(listView);
+
+        if (!isSectionHeaderDisplayEnabled()) {
+            return;
+        }
+
+        int index = getPinnedHeaderCount() - 1;
+        if (mIndexer == null || getCount() == 0) {
+            listView.setHeaderInvisible(index, false);
+        } else {
+            int listPosition = listView.getPositionAt(listView.getTotalTopPinnedHeaderHeight());
+            int position = listPosition - listView.getHeaderViewsCount();
+
+            int section = -1;
+            int partition = getPartitionForPosition(position);
+            if (partition == mIndexedPartition) {
+                int offset = getOffsetInPartition(position);
+                if (offset != -1) {
+                    section = getSectionForPosition(offset);
+                }
+            }
+
+            if (section == -1) {
+                listView.setHeaderInvisible(index, false);
+            } else {
+                View topChild = getViewAtVisiblePosition(listView, listPosition);
+                if (topChild != null) {
+                    // Match the pinned header's height to the height of the list item.
+                    mHeader.setMinimumHeight(topChild.getMeasuredHeight());
+                }
+                setPinnedSectionTitle(mHeader, (String)mIndexer.getSections()[section]);
+
+                // Compute the item position where the current partition begins
+                int partitionStart = getPositionForPartition(mIndexedPartition);
+                if (hasHeader(mIndexedPartition)) {
+                    partitionStart++;
+                }
+
+                // Compute the item position where the next section begins
+                int nextSectionPosition = partitionStart + getPositionForSection(section + 1);
+                boolean isLastInSection = position == nextSectionPosition - 1;
+                listView.setFadingHeader(index, listPosition, isLastInSection);
+            }
+        }
+    }
+
+    /**
+     * Returns the view used for the specified list position assuming it is visible or null if
+     * it isn't.
+     *
+     * <p>This makes some assumptions about the implementation of ListView (child views are the
+     * item views and are ordered in the same way as the adapter items they are displaying)
+     * but they are probably safe given that the API is stable.</p>
+     */
+    private View getViewAtVisiblePosition(ListView list, int position) {
+        final int firstVisiblePosition = list.getFirstVisiblePosition();
+        final int childCount = list.getChildCount();
+        final int index = position - firstVisiblePosition;
+        if (index >= 0 && index < childCount) {
+            // Position is on-screen, use existing view.
+            return list.getChildAt(index);
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Computes the item's placement within its section and populates the {@code placement}
+     * object accordingly.  Please note that the returned object is volatile and should be
+     * copied if the result needs to be used later.
+     */
+    public Placement getItemPlacementInSection(int position) {
+        if (mPlacementCache.position == position) {
+            return mPlacementCache;
+        }
+
+        mPlacementCache.position = position;
+        if (isSectionHeaderDisplayEnabled()) {
+            int section = getSectionForPosition(position);
+            if (section != -1 && getPositionForSection(section) == position) {
+                mPlacementCache.firstInSection = true;
+                mPlacementCache.sectionHeader = (String)getSections()[section];
+            } else {
+                mPlacementCache.firstInSection = false;
+                mPlacementCache.sectionHeader = null;
+            }
+
+            mPlacementCache.lastInSection = (getPositionForSection(section + 1) - 1 == position);
+        } else {
+            mPlacementCache.firstInSection = false;
+            mPlacementCache.lastInSection = false;
+            mPlacementCache.sectionHeader = null;
+        }
+        return mPlacementCache;
+    }
+}
diff --git a/src/com/android/contacts/list/JoinContactListAdapter.java b/src/com/android/contacts/list/JoinContactListAdapter.java
index f08fcbb..82da6f7 100644
--- a/src/com/android/contacts/list/JoinContactListAdapter.java
+++ b/src/com/android/contacts/list/JoinContactListAdapter.java
@@ -31,10 +31,7 @@
 import android.widget.TextView;
 
 import com.android.contacts.R;
-import com.android.contacts.common.list.ContactListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.DirectoryListLoader;
-import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.preference.ContactsPreferences;
 
 public class JoinContactListAdapter extends ContactListAdapter {
 
diff --git a/src/com/android/contacts/list/JoinContactListFragment.java b/src/com/android/contacts/list/JoinContactListFragment.java
index 89b02da..998f593 100644
--- a/src/com/android/contacts/list/JoinContactListFragment.java
+++ b/src/com/android/contacts/list/JoinContactListFragment.java
@@ -32,9 +32,8 @@
 import android.widget.TextView;
 
 import com.android.contacts.R;
-import com.android.contacts.common.list.ContactEntryListFragment;
-import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.list.JoinContactLoader.JoinContactLoaderResult;
+import com.android.contacts.logging.ListEvent;
 
 /**
  * Fragment for the Join Contact list.
@@ -85,6 +84,7 @@
                         final Cursor suggestionsCursor =
                                 ((JoinContactLoaderResult) data).suggestionCursor;
                         onContactListLoaded(suggestionsCursor, data);
+                        maybeLogListEvent();
                     }
                     break;
                 }
@@ -101,6 +101,8 @@
         setSectionHeaderDisplayEnabled(true);
         setVisibleScrollbarEnabled(false);
         setQuickContactEnabled(false);
+        setListType(ListEvent.ListType.PICK_JOIN);
+        setLogListEvents(true);
     }
 
     public void setOnContactPickerActionListener(OnContactPickerActionListener listener) {
@@ -142,7 +144,7 @@
     @Override
     public JoinContactListAdapter createListAdapter() {
         JoinContactListAdapter adapter = new JoinContactListAdapter(getActivity());
-        adapter.setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(true /* opposite */));
+        adapter.setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(false /* opposite */));
         return adapter;
     }
 
diff --git a/src/com/android/contacts/list/LegacyContactListAdapter.java b/src/com/android/contacts/list/LegacyContactListAdapter.java
index 837991b..a2f98de 100644
--- a/src/com/android/contacts/list/LegacyContactListAdapter.java
+++ b/src/com/android/contacts/list/LegacyContactListAdapter.java
@@ -24,9 +24,6 @@
 import android.view.View;
 import android.view.ViewGroup;
 
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-
 /**
  * A cursor adapter for the People.CONTENT_TYPE content type.
  */
diff --git a/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java b/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java
index b5c96df..63df215 100644
--- a/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java
+++ b/src/com/android/contacts/list/LegacyPhoneNumberListAdapter.java
@@ -26,9 +26,6 @@
 import android.view.View;
 import android.view.ViewGroup;
 
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-
 /**
  * A cursor adapter for the Phones.CONTENT_TYPE content type.
  */
diff --git a/src/com/android/contacts/list/LegacyPhoneNumberPickerFragment.java b/src/com/android/contacts/list/LegacyPhoneNumberPickerFragment.java
index 5b6e11f..1402a78 100644
--- a/src/com/android/contacts/list/LegacyPhoneNumberPickerFragment.java
+++ b/src/com/android/contacts/list/LegacyPhoneNumberPickerFragment.java
@@ -19,16 +19,12 @@
 import android.net.Uri;
 import android.util.Log;
 
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.PhoneNumberPickerFragment;
-
 /**
  * Version of PhoneNumberPickerFragment used specifically for legacy support.
  */
 public class LegacyPhoneNumberPickerFragment extends PhoneNumberPickerFragment {
 
-    private static final String TAG = LegacyPhoneNumberPickerFragment.class.getSimpleName();
+    private static final String TAG = "LegacyPhoneNumberPicker";
 
     @Override
     protected boolean getVisibleScrollbarEnabled() {
diff --git a/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java b/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java
index 4c598cd..c3fa57d 100644
--- a/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java
+++ b/src/com/android/contacts/list/LegacyPostalAddressListAdapter.java
@@ -26,9 +26,6 @@
 import android.view.View;
 import android.view.ViewGroup;
 
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-
 /**
  * A cursor adapter for the ContactMethods.CONTENT_TYPE content type.
  */
diff --git a/src/com/android/contacts/list/MultiSelectContactsListFragment.java b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
index 76dd3f3..61e92b8 100644
--- a/src/com/android/contacts/list/MultiSelectContactsListFragment.java
+++ b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
@@ -16,19 +16,34 @@
 
 package com.android.contacts.list;
 
-import com.android.contacts.common.list.ContactListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.DefaultContactListAdapter;
-import com.android.contacts.common.logging.SearchState;
-import com.android.contacts.list.MultiSelectEntryContactListAdapter.SelectedContactsListener;
-import com.android.contacts.common.logging.Logger;
-
+import android.content.Context;
 import android.database.Cursor;
-import android.net.Uri;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.provider.ContactsContract;
-import android.text.TextUtils;
+import android.support.v4.view.ViewCompat;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityEvent;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.AbsListView;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.ActionBarAdapter;
+import com.android.contacts.group.GroupMembersFragment;
+import com.android.contacts.list.MultiSelectEntryContactListAdapter.SelectedContactsListener;
+import com.android.contacts.logging.ListEvent.ActionType;
+import com.android.contacts.logging.Logger;
+import com.android.contacts.logging.SearchState;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.GoogleAccountType;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -38,9 +53,13 @@
  * Fragment containing a contact list used for browsing contacts and optionally selecting
  * multiple contacts via checkboxes.
  */
-public class MultiSelectContactsListFragment extends DefaultContactBrowseListFragment
+public abstract class MultiSelectContactsListFragment<T extends MultiSelectEntryContactListAdapter>
+        extends ContactEntryListFragment<T>
         implements SelectedContactsListener {
 
+    protected boolean mAnimateOnLoad;
+    private static final String TAG = "MultiContactsList";
+
     public interface OnCheckBoxListActionListener {
         void onStartDisplayingCheckBoxes();
         void onSelectedContactIdsChanged();
@@ -49,46 +68,29 @@
 
     private static final String EXTRA_KEY_SELECTED_CONTACTS = "selected_contacts";
 
-    private static final String KEY_SEARCH_RESULT_CLICKED = "search_result_clicked";
-
     private OnCheckBoxListActionListener mCheckBoxListListener;
-    private boolean mSearchResultClicked;
 
     public void setCheckBoxListListener(OnCheckBoxListActionListener checkBoxListListener) {
         mCheckBoxListListener = checkBoxListListener;
     }
 
-    /**
-     * Whether a search result was clicked by the user. Tracked so that we can distinguish
-     * between exiting the search mode after a result was clicked from existing w/o clicking
-     * any search result.
-     */
-    public boolean wasSearchResultClicked() {
-        return mSearchResultClicked;
-    }
-
-    /**
-     * Resets whether a search result was clicked by the user to false.
-     */
-    public void resetSearchResultClicked() {
-        mSearchResultClicked = false;
+    public void setAnimateOnLoad(boolean shouldAnimate) {
+        mAnimateOnLoad = shouldAnimate;
     }
 
     @Override
     public void onSelectedContactsChanged() {
-        if (mCheckBoxListListener != null) {
-            mCheckBoxListListener.onSelectedContactIdsChanged();
-        }
+        if (mCheckBoxListListener != null) mCheckBoxListListener.onSelectedContactIdsChanged();
     }
 
     @Override
-    public void onSelectedContactsChangedViaCheckBox() {
-        if (getAdapter().getSelectedContactIds().size() == 0) {
-            // Last checkbox has been unchecked. So we should stop displaying checkboxes.
-            mCheckBoxListListener.onStopDisplayingCheckBoxes();
-        } else {
-            onSelectedContactsChanged();
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        super.onCreateView(inflater, container, savedInstanceState);
+        if (savedInstanceState == null && mAnimateOnLoad) {
+            setLayoutAnimation(getListView(), R.anim.slide_and_fade_in_layout_animation);
         }
+        return getView();
     }
 
     @Override
@@ -98,21 +100,23 @@
             final TreeSet<Long> selectedContactIds = (TreeSet<Long>)
                     savedInstanceState.getSerializable(EXTRA_KEY_SELECTED_CONTACTS);
             getAdapter().setSelectedContactIds(selectedContactIds);
-            if (mCheckBoxListListener != null) {
-                mCheckBoxListListener.onSelectedContactIdsChanged();
-            }
-            mSearchResultClicked = savedInstanceState.getBoolean(KEY_SEARCH_RESULT_CLICKED);
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (mCheckBoxListListener != null) {
+            mCheckBoxListListener.onSelectedContactIdsChanged();
         }
     }
 
     public TreeSet<Long> getSelectedContactIds() {
-        final MultiSelectEntryContactListAdapter adapter = getAdapter();
-        return adapter.getSelectedContactIds();
+        return getAdapter().getSelectedContactIds();
     }
 
-    @Override
-    public MultiSelectEntryContactListAdapter getAdapter() {
-        return (MultiSelectEntryContactListAdapter) super.getAdapter();
+    public long[] getSelectedContactIdsArray() {
+        return getAdapter().getSelectedContactIdsArray();
     }
 
     @Override
@@ -125,13 +129,14 @@
     public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putSerializable(EXTRA_KEY_SELECTED_CONTACTS, getSelectedContactIds());
-        outState.putBoolean(KEY_SEARCH_RESULT_CLICKED, mSearchResultClicked);
     }
 
     public void displayCheckBoxes(boolean displayCheckBoxes) {
-        getAdapter().setDisplayCheckBoxes(displayCheckBoxes);
-        if (!displayCheckBoxes) {
-            clearCheckBoxes();
+        if (getAdapter() != null) {
+            getAdapter().setDisplayCheckBoxes(displayCheckBoxes);
+            if (!displayCheckBoxes) {
+                clearCheckBoxes();
+            }
         }
     }
 
@@ -142,24 +147,23 @@
     @Override
     protected boolean onItemLongClick(int position, long id) {
         final int previouslySelectedCount = getAdapter().getSelectedContactIds().size();
-        final Uri uri = getAdapter().getContactUri(position);
+        final long contactId = getContactId(position);
         final int partition = getAdapter().getPartitionForPosition(position);
-        if (uri != null && (partition == ContactsContract.Directory.DEFAULT
-                && (position > 0 || !getAdapter().hasProfile()))) {
-            final String contactId = uri.getLastPathSegment();
-            if (!TextUtils.isEmpty(contactId)) {
-                if (mCheckBoxListListener != null) {
-                    mCheckBoxListListener.onStartDisplayingCheckBoxes();
-                }
-                getAdapter().toggleSelectionOfContactId(Long.valueOf(contactId));
-                // Manually send clicked event if there is a checkbox.
-                // See b/24098561.  TalkBack will not read it otherwise.
-                final int index = position + getListView().getHeaderViewsCount() - getListView()
-                        .getFirstVisiblePosition();
-                if (index >= 0 && index < getListView().getChildCount()) {
-                    getListView().getChildAt(index).sendAccessibilityEvent(AccessibilityEvent
-                            .TYPE_VIEW_CLICKED);
-                }
+        if (contactId >= 0 && partition == ContactsContract.Directory.DEFAULT) {
+            if (mCheckBoxListListener != null) {
+                mCheckBoxListListener.onStartDisplayingCheckBoxes();
+            }
+            getAdapter().toggleSelectionOfContactId(contactId);
+            Logger.logListEvent(ActionType.SELECT, getListType(),
+                    /* count */ getAdapter().getCount(), /* clickedIndex */ position,
+                    /* numSelected */ 1);
+            // Manually send clicked event if there is a checkbox.
+            // See b/24098561. TalkBack will not read it otherwise.
+            final int index = position + getListView().getHeaderViewsCount() - getListView()
+                    .getFirstVisiblePosition();
+            if (index >= 0 && index < getListView().getChildCount()) {
+                getListView().getChildAt(index).sendAccessibilityEvent(AccessibilityEvent
+                        .TYPE_VIEW_CLICKED);
             }
         }
         final int nowSelectedCount = getAdapter().getSelectedContactIds().size();
@@ -173,27 +177,32 @@
 
     @Override
     protected void onItemClick(int position, long id) {
-        final Uri uri = getAdapter().getContactUri(position);
-        if (uri == null) {
+        final long contactId = getContactId(position);
+        if (contactId < 0) {
             return;
         }
         if (getAdapter().isDisplayingCheckBoxes()) {
-            final String contactId = uri.getLastPathSegment();
-            if (!TextUtils.isEmpty(contactId)) {
-                getAdapter().toggleSelectionOfContactId(Long.valueOf(contactId));
-            }
-        } else {
-            if (isSearchMode()) {
-                mSearchResultClicked = true;
-                Logger.logSearchEvent(createSearchStateForSearchResultClick(position));
-            }
-            super.onItemClick(position, id);
+            getAdapter().toggleSelectionOfContactId(contactId);
         }
         if (mCheckBoxListListener != null && getAdapter().getSelectedContactIds().size() == 0) {
             mCheckBoxListListener.onStopDisplayingCheckBoxes();
         }
     }
 
+    private long getContactId(int position) {
+        final int contactIdColumnIndex = getAdapter().getContactColumnIdIndex();
+
+        final Cursor cursor = (Cursor) getAdapter().getItem(position);
+        if (cursor != null) {
+            if (cursor.getColumnCount() > contactIdColumnIndex) {
+                return cursor.getLong(contactIdColumnIndex);
+            }
+        }
+
+        Log.w(TAG, "Failed to get contact ID from cursor column " + contactIdColumnIndex);
+        return -1;
+    }
+
     /**
      * Returns the state of the search results currently presented to the user.
      */
@@ -261,13 +270,168 @@
         return searchState;
     }
 
+    protected void setLayoutAnimation(final ViewGroup view, int animationId) {
+        if (view == null) {
+            return;
+        }
+        view.setLayoutAnimationListener(new Animation.AnimationListener() {
+            @Override
+            public void onAnimationStart(Animation animation) {
+            }
+
+            @Override
+            public void onAnimationEnd(Animation animation) {
+                view.setLayoutAnimation(null);
+            }
+
+            @Override
+            public void onAnimationRepeat(Animation animation) {
+            }
+        });
+        view.setLayoutAnimation(AnimationUtils.loadLayoutAnimation(getActivity(), animationId));
+    }
+
     @Override
-    protected ContactListAdapter createListAdapter() {
-        DefaultContactListAdapter adapter = new MultiSelectEntryContactListAdapter(getContext());
-        adapter.setSectionHeaderDisplayEnabled(isSectionHeaderDisplayEnabled());
-        adapter.setDisplayPhotos(true);
-        adapter.setPhotoPosition(
-                ContactListItemView.getDefaultPhotoPosition(/* opposite = */ false));
-        return adapter;
+    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
+            int totalItemCount) {
+        final View accountFilterContainer = getView().findViewById(
+                R.id.account_filter_header_container);
+        if (accountFilterContainer == null) {
+            return;
+        }
+
+        int firstCompletelyVisibleItem = firstVisibleItem;
+        if (view != null && view.getChildAt(0) != null && view.getChildAt(0).getTop() < 0) {
+            firstCompletelyVisibleItem++;
+        }
+
+        if (firstCompletelyVisibleItem == 0) {
+            ViewCompat.setElevation(accountFilterContainer, 0);
+        } else {
+            ViewCompat.setElevation(accountFilterContainer,
+                    getResources().getDimension(R.dimen.contact_list_header_elevation));
+        }
+    }
+
+    protected void bindListHeaderCustom(View listView, View accountFilterContainer) {
+        bindListHeaderCommon(listView, accountFilterContainer);
+
+        final TextView accountFilterHeader = (TextView) accountFilterContainer.findViewById(
+                R.id.account_filter_header);
+        accountFilterHeader.setText(R.string.listCustomView);
+        accountFilterHeader.setAllCaps(false);
+
+        final ImageView accountFilterHeaderIcon = (ImageView) accountFilterContainer
+                .findViewById(R.id.account_filter_icon);
+        accountFilterHeaderIcon.setVisibility(View.GONE);
+    }
+
+    /**
+     * Show account icon, count of contacts and account name in the header of the list.
+     */
+    protected void bindListHeader(Context context, View listView, View accountFilterContainer,
+            AccountWithDataSet accountWithDataSet, int memberCount) {
+        if (memberCount < 0) {
+            hideHeaderAndAddPadding(context, listView, accountFilterContainer);
+            return;
+        }
+
+        bindListHeaderCommon(listView, accountFilterContainer);
+
+        final AccountTypeManager accountTypeManager = AccountTypeManager.getInstance(context);
+        final AccountType accountType = accountTypeManager.getAccountType(
+                accountWithDataSet.type, accountWithDataSet.dataSet);
+
+        // Set text of count of contacts and account name
+        final TextView accountFilterHeader = (TextView) accountFilterContainer.findViewById(
+                R.id.account_filter_header);
+        final String headerText = shouldShowAccountName(accountType)
+                ? String.format(context.getResources().getQuantityString(
+                        R.plurals.contacts_count_with_account, memberCount),
+                                memberCount, accountWithDataSet.name)
+                : context.getResources().getQuantityString(
+                        R.plurals.contacts_count, memberCount, memberCount);
+        accountFilterHeader.setText(headerText);
+        accountFilterHeader.setAllCaps(false);
+
+        // Set icon of the account
+        final Drawable icon = accountType != null ? accountType.getDisplayIcon(context) : null;
+        final ImageView accountFilterHeaderIcon = (ImageView) accountFilterContainer
+                .findViewById(R.id.account_filter_icon);
+
+        // If it's a writable Google account, we set icon size as 24dp; otherwise, we set it as
+        // 20dp. And we need to change margin accordingly. This is because the Google icon looks
+        // smaller when the icons are of the same size.
+        if (accountType instanceof GoogleAccountType) {
+            accountFilterHeaderIcon.getLayoutParams().height = getResources()
+                    .getDimensionPixelOffset(R.dimen.contact_browser_list_header_icon_size);
+            accountFilterHeaderIcon.getLayoutParams().width = getResources()
+                    .getDimensionPixelOffset(R.dimen.contact_browser_list_header_icon_size);
+
+            setMargins(accountFilterHeaderIcon,
+                    getResources().getDimensionPixelOffset(
+                            R.dimen.contact_browser_list_header_icon_left_margin),
+                    getResources().getDimensionPixelOffset(
+                            R.dimen.contact_browser_list_header_icon_right_margin));
+        } else {
+            accountFilterHeaderIcon.getLayoutParams().height = getResources()
+                    .getDimensionPixelOffset(R.dimen.contact_browser_list_header_icon_size_alt);
+            accountFilterHeaderIcon.getLayoutParams().width = getResources()
+                    .getDimensionPixelOffset(R.dimen.contact_browser_list_header_icon_size_alt);
+
+            setMargins(accountFilterHeaderIcon,
+                    getResources().getDimensionPixelOffset(
+                            R.dimen.contact_browser_list_header_icon_left_margin_alt),
+                    getResources().getDimensionPixelOffset(
+                            R.dimen.contact_browser_list_header_icon_right_margin_alt));
+        }
+        accountFilterHeaderIcon.requestLayout();
+
+        accountFilterHeaderIcon.setVisibility(View.VISIBLE);
+        accountFilterHeaderIcon.setImageDrawable(icon);
+    }
+
+    private boolean shouldShowAccountName(AccountType accountType) {
+        return (accountType.isGroupMembershipEditable() && this instanceof GroupMembersFragment)
+                || GoogleAccountType.ACCOUNT_TYPE.equals(accountType.accountType);
+    }
+
+    private void setMargins(View v, int l, int r) {
+        if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
+            ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
+            p.setMarginStart(l);
+            p.setMarginEnd(r);
+            v.setLayoutParams(p);
+            v.requestLayout();
+        }
+    }
+
+    private void bindListHeaderCommon(View listView, View accountFilterContainer) {
+        // Show header and remove top padding of the list
+        accountFilterContainer.setVisibility(View.VISIBLE);
+        setListViewPaddingTop(listView, /* paddingTop */ 0);
+    }
+
+    /**
+     * Hide header of list view and add padding to the top of list view.
+     */
+    protected void hideHeaderAndAddPadding(Context context, View listView,
+            View accountFilterContainer) {
+        accountFilterContainer.setVisibility(View.GONE);
+        setListViewPaddingTop(listView,
+                /* paddingTop */ context.getResources().getDimensionPixelSize(
+                        R.dimen.contact_browser_list_item_padding_top_or_bottom));
+    }
+
+    private void setListViewPaddingTop(View listView, int paddingTop) {
+        listView.setPadding(listView.getPaddingLeft(), paddingTop, listView.getPaddingRight(),
+                listView.getPaddingBottom());
+    }
+
+    /**
+     * Returns the {@link ActionBarAdapter} object associated with list fragment.
+     */
+    public ActionBarAdapter getActionBarAdapter() {
+        return null;
     }
 }
diff --git a/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java b/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
new file mode 100644
index 0000000..ff2cbaf
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
@@ -0,0 +1,191 @@
+/*
+ * 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.list;
+
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.preference.ContactsPreferences;
+
+/** Email addresses multi-select cursor adapter. */
+public class MultiSelectEmailAddressesListAdapter extends MultiSelectEntryContactListAdapter {
+
+    protected static class EmailQuery {
+        public static final String[] PROJECTION_PRIMARY = new String[] {
+                Email._ID,                          // 0
+                Email.TYPE,                         // 1
+                Email.LABEL,                        // 2
+                Email.ADDRESS,                      // 3
+                Email.CONTACT_ID,                   // 4
+                Email.LOOKUP_KEY,                   // 5
+                Email.PHOTO_ID,                     // 6
+                Email.DISPLAY_NAME_PRIMARY,         // 7
+                Email.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final String[] PROJECTION_ALTERNATIVE = new String[] {
+                Email._ID,                          // 0
+                Email.TYPE,                         // 1
+                Email.LABEL,                        // 2
+                Email.ADDRESS,                      // 3
+                Email.CONTACT_ID,                   // 4
+                Email.LOOKUP_KEY,                   // 5
+                Email.PHOTO_ID,                     // 6
+                Email.DISPLAY_NAME_ALTERNATIVE,     // 7
+                Email.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final int EMAIL_ID                = 0;
+        public static final int EMAIL_TYPE              = 1;
+        public static final int EMAIL_LABEL             = 2;
+        public static final int EMAIL_ADDRESS           = 3;
+        public static final int CONTACT_ID              = 4;
+        public static final int LOOKUP_KEY              = 5;
+        public static final int PHOTO_ID                = 6;
+        public static final int DISPLAY_NAME            = 7;
+        public static final int PHOTO_URI               = 8;
+    }
+
+    private final CharSequence mUnknownNameText;
+    private long[] mContactIdsFilter = null;
+
+    public MultiSelectEmailAddressesListAdapter(Context context) {
+        super(context, EmailQuery.EMAIL_ID);
+
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    public void setArguments(Bundle bundle) {
+        mContactIdsFilter = bundle.getLongArray(UiIntentActions.SELECTION_ITEM_LIST);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        final Builder builder;
+        if (isSearchMode()) {
+            builder = Email.CONTENT_FILTER_URI.buildUpon();
+            final String query = getQueryString();
+            builder.appendPath(TextUtils.isEmpty(query) ? "" : query);
+        } else {
+            builder = Email.CONTENT_URI.buildUpon();
+            if (isSectionHeaderDisplayEnabled()) {
+                builder.appendQueryParameter(Email.EXTRA_ADDRESS_BOOK_INDEX, "true");
+            }
+        }
+        builder.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                String.valueOf(directoryId));
+        loader.setUri(builder.build());
+
+        if (mContactIdsFilter != null) {
+            loader.setSelection(ContactsContract.Data.CONTACT_ID
+                    + " IN (" + GroupUtil.convertArrayToString(mContactIdsFilter) + ")");
+        }
+
+        if (getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+            loader.setProjection(EmailQuery.PROJECTION_PRIMARY);
+        } else {
+            loader.setProjection(EmailQuery.PROJECTION_ALTERNATIVE);
+        }
+
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+            loader.setSortOrder(Email.SORT_KEY_PRIMARY);
+        } else {
+            loader.setSortOrder(Email.SORT_KEY_ALTERNATIVE);
+        }
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor) getItem(position)).getString(EmailQuery.DISPLAY_NAME);
+    }
+
+    /**
+     * Builds a {@link Data#CONTENT_URI} for the current cursor position.
+     */
+    public Uri getDataUri(int position) {
+        final long id = ((Cursor) getItem(position)).getLong(EmailQuery.EMAIL_ID);
+        return ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, id);
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
+        view.setUnknownNameText(mUnknownNameText);
+        view.setQuickContactEnabled(isQuickContactEnabled());
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        final ContactListItemView view = (ContactListItemView)itemView;
+
+        cursor.moveToPosition(position);
+        boolean isFirstEntry = true;
+        final long currentContactId = cursor.getLong(EmailQuery.CONTACT_ID);
+        if (cursor.moveToPrevious() && !cursor.isBeforeFirst()) {
+            final long previousContactId = cursor.getLong(EmailQuery.CONTACT_ID);
+            if (currentContactId == previousContactId) {
+                isFirstEntry = false;
+            }
+        }
+        cursor.moveToPosition(position);
+
+        bindViewId(view, cursor, EmailQuery.EMAIL_ID);
+        if (isFirstEntry) {
+            bindName(view, cursor);
+            bindPhoto(view, cursor, EmailQuery.PHOTO_ID, EmailQuery.LOOKUP_KEY,
+                    EmailQuery.DISPLAY_NAME);
+        } else {
+            unbindName(view);
+            view.removePhotoView(true, false);
+        }
+        bindEmailAddress(view, cursor);
+    }
+
+    protected void unbindName(final ContactListItemView view) {
+        view.hideDisplayName();
+    }
+
+    protected void bindEmailAddress(ContactListItemView view, Cursor cursor) {
+        CharSequence label = null;
+        if (!cursor.isNull(EmailQuery.EMAIL_TYPE)) {
+            final int type = cursor.getInt(EmailQuery.EMAIL_TYPE);
+            final String customLabel = cursor.getString(EmailQuery.EMAIL_LABEL);
+
+            // TODO cache
+            label = Email.getTypeLabel(getContext().getResources(), type, customLabel);
+        }
+        view.setLabel(label);
+        view.showData(cursor, EmailQuery.EMAIL_ADDRESS);
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, EmailQuery.DISPLAY_NAME, getContactNameDisplayOrder());
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java b/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java
new file mode 100644
index 0000000..6f6a3c7
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectEmailAddressesListFragment.java
@@ -0,0 +1,140 @@
+/*
+ * 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.list;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.logging.ListEvent;
+
+import java.util.List;
+import java.util.TreeSet;
+
+/** Displays a list of emails with check boxes. */
+public class MultiSelectEmailAddressesListFragment
+        extends MultiSelectContactsListFragment<MultiSelectEmailAddressesListAdapter>{
+
+    public MultiSelectEmailAddressesListFragment() {
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(false);
+        setSearchMode(false);
+        setHasOptionsMenu(true);
+        setListType(ListEvent.ListType.PICK_EMAIL);
+    }
+
+    @Override
+    public MultiSelectEmailAddressesListAdapter createListAdapter() {
+        final MultiSelectEmailAddressesListAdapter adapter =
+                new MultiSelectEmailAddressesListAdapter(getActivity());
+        adapter.setArguments(getArguments());
+        return adapter;
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
+        super.onCreateOptionsMenu(menu, inflater);
+        inflater.inflate(R.menu.items_multi_select, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        final MenuItem item = menu.findItem(R.id.menu_send);
+        item.setVisible(getAdapter().hasSelectedItems());
+        item.getActionView().setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onOptionsItemSelected(item);
+            }
+        });
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        getActivity().finish();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.menu_send) {
+            final String scheme = getActivity().getIntent().getStringExtra(
+                    UiIntentActions.SELECTION_SEND_SCHEME);
+            final String title = getActivity().getIntent().getStringExtra(
+                    UiIntentActions.SELECTION_SEND_TITLE);
+            final List<String> items = GroupUtil.getSendToDataForIds(
+                    getActivity(), getAdapter().getSelectedContactIdsArray(), scheme);
+            final String list = TextUtils.join(",", items);
+            GroupUtil.startSendToSelectionActivity(this, list, scheme, title);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final long[] selectedIds = getActivity().getIntent().getLongArrayExtra(
+                UiIntentActions.SELECTION_DEFAULT_SELECTION);
+        if (selectedIds != null && selectedIds.length != 0) {
+            final TreeSet<Long> selectedIdsTree = new TreeSet<>();
+            for (int i = 0; i < selectedIds.length; i++) {
+                selectedIdsTree.add(selectedIds[i]);
+            }
+            getAdapter().setSelectedContactIds(selectedIdsTree);
+            onSelectedContactsChanged();
+        }
+        return super.onCreateView(inflater, container, savedInstanceState);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        displayCheckBoxes(true);
+
+        final long[] itemIds = getActivity().getIntent().getLongArrayExtra(
+                UiIntentActions.SELECTION_ITEM_LIST);
+        final boolean[] selectedFlags = getActivity().getIntent().getBooleanArrayExtra(
+                UiIntentActions.SELECTION_DEFAULT_SELECTION);
+        if (itemIds != null && selectedFlags != null && itemIds.length == selectedFlags.length) {
+            TreeSet<Long> selectedIds = new TreeSet<>();
+            for (int i = 0; i < itemIds.length; i++) {
+                if (selectedFlags[i]) {
+                    selectedIds.add(itemIds[i]);
+                }
+            }
+            getAdapter().setSelectedContactIds(selectedIds);
+            onSelectedContactsChanged();
+        }
+    }
+
+    @Override
+    protected boolean onItemLongClick(int position, long id) {
+        return true;
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(com.android.contacts.R.layout.contact_list_content, null);
+    }
+}
diff --git a/src/com/android/contacts/list/MultiSelectEntryContactListAdapter.java b/src/com/android/contacts/list/MultiSelectEntryContactListAdapter.java
index 3ba86db..a0b4f3c 100644
--- a/src/com/android/contacts/list/MultiSelectEntryContactListAdapter.java
+++ b/src/com/android/contacts/list/MultiSelectEntryContactListAdapter.java
@@ -16,35 +16,62 @@
 
 package com.android.contacts.list;
 
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.DefaultContactListAdapter;
-
 import android.content.Context;
 import android.database.Cursor;
 import android.provider.ContactsContract;
 import android.view.View;
-import android.view.View.OnClickListener;
 import android.widget.CheckBox;
 
+import com.android.contacts.ContactPhotoManager;
+import com.android.contacts.group.GroupUtil;
+
 import java.util.TreeSet;
 
 /**
  * An extension of the default contact adapter that adds checkboxes and the ability
  * to select multiple contacts.
  */
-public class MultiSelectEntryContactListAdapter extends DefaultContactListAdapter {
+public abstract class MultiSelectEntryContactListAdapter extends ContactEntryListAdapter {
 
     private SelectedContactsListener mSelectedContactsListener;
-    private TreeSet<Long> mSelectedContactIds = new TreeSet<Long>();
+    private DeleteContactListener mDeleteContactListener;
+    private TreeSet<Long> mSelectedContactIds = new TreeSet<>();
     private boolean mDisplayCheckBoxes;
+    private final int mContactIdColumnIndex;
 
     public interface SelectedContactsListener {
         void onSelectedContactsChanged();
-        void onSelectedContactsChangedViaCheckBox();
     }
 
-    public MultiSelectEntryContactListAdapter(Context context) {
+    public interface DeleteContactListener {
+        void onContactDeleteClicked(int position);
+    }
+
+    /**
+     * @param contactIdColumnIndex the column index of the contact ID in the underlying cursor;
+     *         it is passed in so that this adapter can support different kinds of contact
+     *         lists (e.g. aggregate contacts or raw contacts).
+     */
+    public MultiSelectEntryContactListAdapter(Context context, int contactIdColumnIndex) {
         super(context);
+        mContactIdColumnIndex = contactIdColumnIndex;
+    }
+
+    /**
+     * Returns the column index of the contact ID in the underlying cursor; the contact ID
+     * retrieved using this index is the value that is selected by this adapter (and returned
+     * by {@link #getSelectedContactIds}).
+     */
+    public int getContactColumnIdIndex() {
+        return mContactIdColumnIndex;
+    }
+
+    public DeleteContactListener getDeleteContactListener() {
+        return mDeleteContactListener;
+    }
+
+    public void setDeleteContactListener(DeleteContactListener deleteContactListener) {
+        mDeleteContactListener = deleteContactListener;
     }
 
     public void setSelectedContactsListener(SelectedContactsListener listener) {
@@ -58,6 +85,17 @@
         return mSelectedContactIds;
     }
 
+    public boolean hasSelectedItems() {
+        return mSelectedContactIds.size() > 0;
+    }
+
+    /**
+     * Returns the selected contacts as an array.
+     */
+    public long[] getSelectedContactIdsArray() {
+        return GroupUtil.convertLongSetToLongArray(mSelectedContactIds);
+    }
+
     /**
      * Update set of selected contacts. This changes which checkboxes are set.
      */
@@ -74,9 +112,6 @@
      * Not guaranteed to work with all configurations of this adapter.
      */
     public void setDisplayCheckBoxes(boolean showCheckBoxes) {
-        if (!mDisplayCheckBoxes && showCheckBoxes) {
-            setSelectedContactIds(new TreeSet<Long>());
-        }
         mDisplayCheckBoxes = showCheckBoxes;
         notifyDataSetChanged();
         if (mSelectedContactsListener != null) {
@@ -107,44 +142,54 @@
     }
 
     @Override
+    public long getItemId(int position) {
+        Cursor cursor = (Cursor) getItem(position);
+        if (cursor != null) {
+            return cursor.getLong(getContactColumnIdIndex());
+        }
+        return 0;
+    }
+
+    @Override
     protected void bindView(View itemView, int partition, Cursor cursor, int position) {
         super.bindView(itemView, partition, cursor, position);
         final ContactListItemView view = (ContactListItemView) itemView;
-        bindCheckBox(view, cursor, position, partition == ContactsContract.Directory.DEFAULT);
+        bindViewId(view, cursor, getContactColumnIdIndex());
+        bindCheckBox(view, cursor, partition == ContactsContract.Directory.DEFAULT);
     }
 
-    private void bindCheckBox(ContactListItemView view, Cursor cursor, int position,
-            boolean isLocalDirectory) {
-        // Disable clicking on the ME profile and all contacts from remote directories
-        // when showing check boxes. We do this by telling the view to handle clicking itself.
-        view.setClickable((position == 0 && hasProfile() || !isLocalDirectory)
-                && mDisplayCheckBoxes);
+    /**
+      * Loads the photo for the photo view.
+      * @param photoIdColumn Index of the photo id column
+      * @param lookUpKeyColumn Index of the lookup key column
+      * @param displayNameColumn Index of the display name column
+      */
+    protected void bindPhoto(final ContactListItemView view, final Cursor cursor,
+           final int photoIdColumn, final int lookUpKeyColumn, final int displayNameColumn) {
+        final long photoId = cursor.isNull(photoIdColumn)
+            ? 0 : cursor.getLong(photoIdColumn);
+        final ContactPhotoManager.DefaultImageRequest imageRequest = photoId == 0
+            ? getDefaultImageRequestFromCursor(cursor, displayNameColumn,
+            lookUpKeyColumn)
+            : null;
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                imageRequest);
+    }
+
+    private void bindCheckBox(ContactListItemView view, Cursor cursor, boolean isLocalDirectory) {
+        // Disable clicking on all contacts from remote directories when showing check boxes. We do
+        // this by telling the view to handle clicking itself.
+        view.setClickable(!isLocalDirectory && mDisplayCheckBoxes);
         // Only show checkboxes if mDisplayCheckBoxes is enabled. Also, never show the
-        // checkbox for the Me profile entry and other directory contacts except local directory.
-        if (position == 0 && hasProfile() || !mDisplayCheckBoxes || !isLocalDirectory) {
+        // checkbox for other directory contacts except local directory.
+        if (!mDisplayCheckBoxes || !isLocalDirectory) {
             view.hideCheckBox();
             return;
         }
         final CheckBox checkBox = view.getCheckBox();
-        final long contactId = cursor.getLong(ContactQuery.CONTACT_ID);
+        final long contactId = cursor.getLong(mContactIdColumnIndex);
         checkBox.setChecked(mSelectedContactIds.contains(contactId));
+        checkBox.setClickable(false);
         checkBox.setTag(contactId);
-        checkBox.setOnClickListener(mCheckBoxClickListener);
     }
-
-    private final OnClickListener mCheckBoxClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            final CheckBox checkBox = (CheckBox) v;
-            final Long contactId = (Long) checkBox.getTag();
-            if (checkBox.isChecked()) {
-                mSelectedContactIds.add(contactId);
-            } else {
-                mSelectedContactIds.remove(contactId);
-            }
-            if (mSelectedContactsListener != null) {
-                mSelectedContactsListener.onSelectedContactsChangedViaCheckBox();
-            }
-        }
-    };
 }
diff --git a/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java b/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
new file mode 100644
index 0000000..30d5429
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
@@ -0,0 +1,191 @@
+/*
+ * 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.list;
+
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.preference.ContactsPreferences;
+
+/** Phone Numbers multi-select cursor adapter. */
+public class MultiSelectPhoneNumbersListAdapter extends MultiSelectEntryContactListAdapter {
+
+    public static class PhoneQuery {
+        public static final String[] PROJECTION_PRIMARY = new String[] {
+                Phone._ID,                          // 0
+                Phone.TYPE,                         // 1
+                Phone.LABEL,                        // 2
+                Phone.NUMBER,                       // 3
+                Phone.CONTACT_ID,                   // 4
+                Phone.LOOKUP_KEY,                   // 5
+                Phone.PHOTO_ID,                     // 6
+                Phone.DISPLAY_NAME_PRIMARY,         // 7
+                Phone.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final String[] PROJECTION_ALTERNATIVE = new String[] {
+                Phone._ID,                          // 0
+                Phone.TYPE,                         // 1
+                Phone.LABEL,                        // 2
+                Phone.NUMBER,                       // 3
+                Phone.CONTACT_ID,                   // 4
+                Phone.LOOKUP_KEY,                   // 5
+                Phone.PHOTO_ID,                     // 6
+                Phone.DISPLAY_NAME_ALTERNATIVE,     // 7
+                Phone.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final int PHONE_ID                = 0;
+        public static final int PHONE_TYPE              = 1;
+        public static final int PHONE_LABEL             = 2;
+        public static final int PHONE_NUMBER            = 3;
+        public static final int CONTACT_ID              = 4;
+        public static final int LOOKUP_KEY              = 5;
+        public static final int PHOTO_ID                = 6;
+        public static final int DISPLAY_NAME            = 7;
+        public static final int PHOTO_URI               = 8;
+    }
+
+    private final CharSequence mUnknownNameText;
+    private long[] mContactIdsFilter = null;
+
+    public MultiSelectPhoneNumbersListAdapter(Context context) {
+        super(context, PhoneQuery.PHONE_ID);
+
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+    }
+
+    public void setArguments(Bundle bundle) {
+        mContactIdsFilter = bundle.getLongArray(UiIntentActions.SELECTION_ITEM_LIST);
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        final Builder builder;
+        if (isSearchMode()) {
+            builder = Phone.CONTENT_FILTER_URI.buildUpon();
+            final String query = getQueryString();
+            builder.appendPath(TextUtils.isEmpty(query) ? "" : query);
+        } else {
+            builder = Phone.CONTENT_URI.buildUpon();
+            if (isSectionHeaderDisplayEnabled()) {
+                builder.appendQueryParameter(Phone.EXTRA_ADDRESS_BOOK_INDEX, "true");
+            }
+        }
+        builder.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                String.valueOf(directoryId));
+        loader.setUri(builder.build());
+
+        if (mContactIdsFilter != null) {
+            loader.setSelection(ContactsContract.Data.CONTACT_ID
+                    + " IN (" + GroupUtil.convertArrayToString(mContactIdsFilter) + ")");
+        }
+
+        if (getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+            loader.setProjection(PhoneQuery.PROJECTION_PRIMARY);
+        } else {
+            loader.setProjection(PhoneQuery.PROJECTION_ALTERNATIVE);
+        }
+
+        if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+            loader.setSortOrder(Phone.SORT_KEY_PRIMARY);
+        } else {
+            loader.setSortOrder(Phone.SORT_KEY_ALTERNATIVE);
+        }
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor) getItem(position)).getString(PhoneQuery.DISPLAY_NAME);
+    }
+
+    /**
+     * Builds a {@link Data#CONTENT_URI} for the current cursor position.
+     */
+    public Uri getDataUri(int position) {
+        final long id = ((Cursor) getItem(position)).getLong(PhoneQuery.PHONE_ID);
+        return ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, id);
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
+        view.setUnknownNameText(mUnknownNameText);
+        view.setQuickContactEnabled(isQuickContactEnabled());
+        return view;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        final ContactListItemView view = (ContactListItemView)itemView;
+
+        cursor.moveToPosition(position);
+        boolean isFirstEntry = true;
+        final long currentContactId = cursor.getLong(PhoneQuery.CONTACT_ID);
+        if (cursor.moveToPrevious() && !cursor.isBeforeFirst()) {
+            final long previousContactId = cursor.getLong(PhoneQuery.CONTACT_ID);
+            if (currentContactId == previousContactId) {
+                isFirstEntry = false;
+            }
+        }
+        cursor.moveToPosition(position);
+
+        bindViewId(view, cursor, PhoneQuery.PHONE_ID);
+        if (isFirstEntry) {
+            bindName(view, cursor);
+            bindPhoto(view, cursor, PhoneQuery.PHOTO_ID, PhoneQuery.LOOKUP_KEY,
+                PhoneQuery.DISPLAY_NAME);
+        } else {
+            unbindName(view);
+            view.removePhotoView(true, false);
+        }
+        bindPhoneNumber(view, cursor);
+    }
+
+    protected void unbindName(final ContactListItemView view) {
+        view.hideDisplayName();
+    }
+
+    protected void bindPhoneNumber(ContactListItemView view, Cursor cursor) {
+        CharSequence label = null;
+        if (!cursor.isNull(PhoneQuery.PHONE_TYPE)) {
+            final int type = cursor.getInt(PhoneQuery.PHONE_TYPE);
+            final String customLabel = cursor.getString(PhoneQuery.PHONE_LABEL);
+
+            // TODO cache
+            label = Phone.getTypeLabel(getContext().getResources(), type, customLabel);
+        }
+        view.setLabel(label);
+        view.showData(cursor, PhoneQuery.PHONE_NUMBER);
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, PhoneQuery.DISPLAY_NAME, getContactNameDisplayOrder());
+    }
+}
diff --git a/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java b/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java
new file mode 100644
index 0000000..2b7021e
--- /dev/null
+++ b/src/com/android/contacts/list/MultiSelectPhoneNumbersListFragment.java
@@ -0,0 +1,125 @@
+/*
+ * 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.list;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.logging.ListEvent;
+
+import java.util.List;
+import java.util.TreeSet;
+
+/** Displays a list of phone numbers with check boxes. */
+public class MultiSelectPhoneNumbersListFragment
+        extends MultiSelectContactsListFragment<MultiSelectPhoneNumbersListAdapter> {
+
+    public MultiSelectPhoneNumbersListFragment() {
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(false);
+        setSearchMode(false);
+        setHasOptionsMenu(true);
+        setListType(ListEvent.ListType.PICK_PHONE);
+    }
+
+    @Override
+    public MultiSelectPhoneNumbersListAdapter createListAdapter() {
+        final MultiSelectPhoneNumbersListAdapter adapter =
+                new MultiSelectPhoneNumbersListAdapter(getActivity());
+        adapter.setArguments(getArguments());
+        return adapter;
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
+        super.onCreateOptionsMenu(menu, inflater);
+        inflater.inflate(R.menu.items_multi_select, menu);
+    }
+
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        final MenuItem item = menu.findItem(R.id.menu_send);
+        item.setVisible(getAdapter().hasSelectedItems());
+        item.getActionView().setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onOptionsItemSelected(item);
+            }
+        });
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        getActivity().finish();
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.menu_send) {
+            final String scheme = getActivity().getIntent().getStringExtra(
+                    UiIntentActions.SELECTION_SEND_SCHEME);
+            final String title = getActivity().getIntent().getStringExtra(
+                    UiIntentActions.SELECTION_SEND_TITLE);
+            final List<String> items = GroupUtil.getSendToDataForIds(
+                    getActivity(), getAdapter().getSelectedContactIdsArray(), scheme);
+            final String list = TextUtils.join(",", items);
+            GroupUtil.startSendToSelectionActivity(this, list, scheme, title);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final long[] selectedIds = getActivity().getIntent().getLongArrayExtra(
+                UiIntentActions.SELECTION_DEFAULT_SELECTION);
+        if (selectedIds != null && selectedIds.length != 0) {
+            final TreeSet<Long> selectedIdsTree = new TreeSet<>();
+            for (int i = 0; i < selectedIds.length; i++) {
+                selectedIdsTree.add(selectedIds[i]);
+            }
+            getAdapter().setSelectedContactIds(selectedIdsTree);
+            onSelectedContactsChanged();
+        }
+        return super.onCreateView(inflater, container, savedInstanceState);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        displayCheckBoxes(true);
+    }
+
+    @Override
+    protected boolean onItemLongClick(int position, long id) {
+        return true;
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(com.android.contacts.R.layout.contact_list_content, null);
+    }
+}
diff --git a/src/com/android/contacts/list/OnContactBrowserActionListener.java b/src/com/android/contacts/list/OnContactBrowserActionListener.java
index 59fc611..5c046d1 100644
--- a/src/com/android/contacts/list/OnContactBrowserActionListener.java
+++ b/src/com/android/contacts/list/OnContactBrowserActionListener.java
@@ -31,9 +31,10 @@
     /**
      * Opens the specified contact for viewing.
      *
-     * @param contactLookupUri The lookup-uri of the Contact that should be opened
+     * @param position The index of the contact that should be opened
+     * @param contactLookupUri The lookup-uri of the contact that should be opened
      */
-    void onViewContactAction(Uri contactLookupUri, boolean isEnterpriseContact);
+    void onViewContactAction(int position, Uri contactLookupUri, boolean isEnterpriseContact);
 
     /**
      * Initiates the contact deletion process.
diff --git a/src/com/android/contacts/list/OnContactsUnavailableActionListener.java b/src/com/android/contacts/list/OnContactsUnavailableActionListener.java
deleted file mode 100644
index cc381e4..0000000
--- a/src/com/android/contacts/list/OnContactsUnavailableActionListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2010 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.list;
-
-/**
- * Action callbacks that can be sent by the "contacts unavailable" fragment.
- */
-public interface OnContactsUnavailableActionListener  {
-
-    /**
-     * Creates a new contact.
-     */
-    void onCreateNewContactAction();
-
-    /**
-     * Initiates addition of a contacts account.
-     */
-    void onAddAccountAction();
-
-    /**
-     * Initiates contact import from a file.
-     */
-    void onImportContactsFromFileAction();
-}
diff --git a/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java b/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java
new file mode 100644
index 0000000..616562c
--- /dev/null
+++ b/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.app.ActionBar;
+import android.content.Intent;
+import android.net.Uri;
+
+/**
+ * Action callbacks that can be sent by a phone number picker.
+ */
+public interface OnPhoneNumberPickerActionListener  {
+    public static final int CALL_INITIATION_UNKNOWN = 0;
+
+    /**
+     * Returns the selected phone number uri to the requester.
+     */
+    void onPickDataUri(Uri dataUri, boolean isVideoCall, int callInitiationType);
+
+    /**
+     * Returns the specified phone number to the requester.
+     * May call the specified phone number, either as an audio or video call.
+     */
+    void onPickPhoneNumber(String phoneNumber, boolean isVideoCall, int callInitiationType);
+
+    /**
+     * Returns the selected number as a shortcut intent.
+     */
+    void onShortcutIntentCreated(Intent intent);
+
+    /**
+     * Called when home menu in {@link ActionBar} is clicked by the user.
+     */
+    void onHomeInActionBarSelected();
+}
diff --git a/src/com/android/contacts/list/PhoneNumberListAdapter.java b/src/com/android/contacts/list/PhoneNumberListAdapter.java
new file mode 100644
index 0000000..d459d47
--- /dev/null
+++ b/src/com/android/contacts/list/PhoneNumberListAdapter.java
@@ -0,0 +1,657 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Callable;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Directory;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.CallUtil;
+import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.GeoUtil;
+import com.android.contacts.R;
+import com.android.contacts.compat.CallableCompat;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.compat.DirectoryCompat;
+import com.android.contacts.compat.PhoneCompat;
+import com.android.contacts.extensions.ExtendedPhoneDirectoriesManager;
+import com.android.contacts.extensions.ExtensionsFactory;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.Constants;
+
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A cursor adapter for the {@link Phone#CONTENT_ITEM_TYPE} and
+ * {@link SipAddress#CONTENT_ITEM_TYPE}.
+ *
+ * By default this adapter just handles phone numbers. When {@link #setUseCallableUri(boolean)} is
+ * called with "true", this adapter starts handling SIP addresses too, by using {@link Callable}
+ * API instead of {@link Phone}.
+ */
+public class PhoneNumberListAdapter extends ContactEntryListAdapter {
+
+    private static final String TAG = PhoneNumberListAdapter.class.getSimpleName();
+
+    public interface Listener {
+        void onVideoCallIconClicked(int position);
+    }
+
+    // A list of extended directories to add to the directories from the database
+    private final List<DirectoryPartition> mExtendedDirectories;
+
+    // Extended directories will have ID's that are higher than any of the id's from the database,
+    // so that we can identify them and set them up properly. If no extended directories
+    // exist, this will be Long.MAX_VALUE
+    private long mFirstExtendedDirectoryId = Long.MAX_VALUE;
+
+    public static class PhoneQuery {
+
+        /**
+         * Optional key used as part of a JSON lookup key to specify an analytics category
+         * associated with the row.
+         */
+        public static final String ANALYTICS_CATEGORY = "analytics_category";
+
+        /**
+         * Optional key used as part of a JSON lookup key to specify an analytics action associated
+         * with the row.
+         */
+        public static final String ANALYTICS_ACTION = "analytics_action";
+
+        /**
+         * Optional key used as part of a JSON lookup key to specify an analytics value associated
+         * with the row.
+         */
+        public static final String ANALYTICS_VALUE = "analytics_value";
+
+        public static final String[] PROJECTION_PRIMARY_INTERNAL = new String[] {
+            Phone._ID,                          // 0
+            Phone.TYPE,                         // 1
+            Phone.LABEL,                        // 2
+            Phone.NUMBER,                       // 3
+            Phone.CONTACT_ID,                   // 4
+            Phone.LOOKUP_KEY,                   // 5
+            Phone.PHOTO_ID,                     // 6
+            Phone.DISPLAY_NAME_PRIMARY,         // 7
+            Phone.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final String[] PROJECTION_PRIMARY;
+
+        static {
+            final List<String> projectionList = Lists.newArrayList(PROJECTION_PRIMARY_INTERNAL);
+            if (CompatUtils.isMarshmallowCompatible()) {
+                projectionList.add(Phone.CARRIER_PRESENCE); // 9
+            }
+            PROJECTION_PRIMARY = projectionList.toArray(new String[projectionList.size()]);
+        }
+
+        public static final String[] PROJECTION_ALTERNATIVE_INTERNAL = new String[] {
+            Phone._ID,                          // 0
+            Phone.TYPE,                         // 1
+            Phone.LABEL,                        // 2
+            Phone.NUMBER,                       // 3
+            Phone.CONTACT_ID,                   // 4
+            Phone.LOOKUP_KEY,                   // 5
+            Phone.PHOTO_ID,                     // 6
+            Phone.DISPLAY_NAME_ALTERNATIVE,     // 7
+            Phone.PHOTO_THUMBNAIL_URI,          // 8
+        };
+
+        public static final String[] PROJECTION_ALTERNATIVE;
+
+        static {
+            final List<String> projectionList = Lists.newArrayList(PROJECTION_ALTERNATIVE_INTERNAL);
+            if (CompatUtils.isMarshmallowCompatible()) {
+                projectionList.add(Phone.CARRIER_PRESENCE); // 9
+            }
+            PROJECTION_ALTERNATIVE = projectionList.toArray(new String[projectionList.size()]);
+        }
+
+        public static final int PHONE_ID                = 0;
+        public static final int PHONE_TYPE              = 1;
+        public static final int PHONE_LABEL             = 2;
+        public static final int PHONE_NUMBER            = 3;
+        public static final int CONTACT_ID              = 4;
+        public static final int LOOKUP_KEY              = 5;
+        public static final int PHOTO_ID                = 6;
+        public static final int DISPLAY_NAME            = 7;
+        public static final int PHOTO_URI               = 8;
+        public static final int CARRIER_PRESENCE        = 9;
+    }
+
+    private static final String IGNORE_NUMBER_TOO_LONG_CLAUSE =
+            "length(" + Phone.NUMBER + ") < 1000";
+
+    private final CharSequence mUnknownNameText;
+    private final String mCountryIso;
+
+    private ContactListItemView.PhotoPosition mPhotoPosition;
+
+    private boolean mUseCallableUri;
+
+    private Listener mListener;
+
+    private boolean mIsVideoEnabled;
+    private boolean mIsPresenceEnabled;
+
+    public PhoneNumberListAdapter(Context context) {
+        super(context);
+        setDefaultFilterHeaderText(R.string.list_filter_phones);
+        mUnknownNameText = context.getText(android.R.string.unknownName);
+        mCountryIso = GeoUtil.getCurrentCountryIso(context);
+
+        final ExtendedPhoneDirectoriesManager manager
+                = ExtensionsFactory.getExtendedPhoneDirectoriesManager();
+        if (manager != null) {
+            mExtendedDirectories = manager.getExtendedDirectories(mContext);
+        } else {
+            // Empty list to avoid sticky NPE's
+            mExtendedDirectories = new ArrayList<DirectoryPartition>();
+        }
+
+        int videoCapabilities = CallUtil.getVideoCallingAvailability(context);
+        mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0;
+        mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0;
+    }
+
+    protected CharSequence getUnknownNameText() {
+        return mUnknownNameText;
+    }
+
+    @Override
+    public void configureLoader(CursorLoader loader, long directoryId) {
+        String query = getQueryString();
+        if (query == null) {
+            query = "";
+        }
+        if (isExtendedDirectory(directoryId)) {
+            final DirectoryPartition directory = getExtendedDirectoryFromId(directoryId);
+            final String contentUri = directory.getContentUri();
+            if (contentUri == null) {
+                throw new IllegalStateException("Extended directory must have a content URL: "
+                        + directory);
+            }
+            final Builder builder = Uri.parse(contentUri).buildUpon();
+            builder.appendPath(query);
+            builder.appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY,
+                    String.valueOf(getDirectoryResultLimit(directory)));
+            loader.setUri(builder.build());
+            loader.setProjection(PhoneQuery.PROJECTION_PRIMARY);
+        } else {
+            final boolean isRemoteDirectoryQuery
+                    = DirectoryCompat.isRemoteDirectoryId(directoryId);
+            final Builder builder;
+            if (isSearchMode()) {
+                final Uri baseUri;
+                if (isRemoteDirectoryQuery) {
+                    baseUri = PhoneCompat.getContentFilterUri();
+                } else if (mUseCallableUri) {
+                    baseUri = CallableCompat.getContentFilterUri();
+                } else {
+                    baseUri = PhoneCompat.getContentFilterUri();
+                }
+                builder = baseUri.buildUpon();
+                builder.appendPath(query);      // Builder will encode the query
+                builder.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                        String.valueOf(directoryId));
+                if (isRemoteDirectoryQuery) {
+                    builder.appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY,
+                            String.valueOf(getDirectoryResultLimit(getDirectoryById(directoryId))));
+                }
+            } else {
+                Uri baseUri = mUseCallableUri ? Callable.CONTENT_URI : Phone.CONTENT_URI;
+                builder = baseUri.buildUpon().appendQueryParameter(
+                        ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(Directory.DEFAULT));
+                if (isSectionHeaderDisplayEnabled()) {
+                    builder.appendQueryParameter(Phone.EXTRA_ADDRESS_BOOK_INDEX, "true");
+                }
+                applyFilter(loader, builder, directoryId, getFilter());
+            }
+
+            // Ignore invalid phone numbers that are too long. These can potentially cause freezes
+            // in the UI and there is no reason to display them.
+            final String prevSelection = loader.getSelection();
+            final String newSelection;
+            if (!TextUtils.isEmpty(prevSelection)) {
+                newSelection = prevSelection + " AND " + IGNORE_NUMBER_TOO_LONG_CLAUSE;
+            } else {
+                newSelection = IGNORE_NUMBER_TOO_LONG_CLAUSE;
+            }
+            loader.setSelection(newSelection);
+
+            // Remove duplicates when it is possible.
+            builder.appendQueryParameter(ContactsContract.REMOVE_DUPLICATE_ENTRIES, "true");
+            loader.setUri(builder.build());
+
+            // TODO a projection that includes the search snippet
+            if (getContactNameDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+                loader.setProjection(PhoneQuery.PROJECTION_PRIMARY);
+            } else {
+                loader.setProjection(PhoneQuery.PROJECTION_ALTERNATIVE);
+            }
+
+            if (getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+                loader.setSortOrder(Phone.SORT_KEY_PRIMARY);
+            } else {
+                loader.setSortOrder(Phone.SORT_KEY_ALTERNATIVE);
+            }
+        }
+    }
+
+    protected boolean isExtendedDirectory(long directoryId) {
+        return directoryId >= mFirstExtendedDirectoryId;
+    }
+
+    private DirectoryPartition getExtendedDirectoryFromId(long directoryId) {
+        final int directoryIndex = (int) (directoryId - mFirstExtendedDirectoryId);
+        return mExtendedDirectories.get(directoryIndex);
+    }
+
+    /**
+     * Configure {@code loader} and {@code uriBuilder} according to {@code directoryId} and {@code
+     * filter}.
+     */
+    private void applyFilter(CursorLoader loader, Uri.Builder uriBuilder, long directoryId,
+            ContactListFilter filter) {
+        if (filter == null || directoryId != Directory.DEFAULT) {
+            return;
+        }
+
+        final StringBuilder selection = new StringBuilder();
+        final List<String> selectionArgs = new ArrayList<String>();
+
+        switch (filter.filterType) {
+            case ContactListFilter.FILTER_TYPE_CUSTOM: {
+                selection.append(Contacts.IN_VISIBLE_GROUP + "=1");
+                selection.append(" AND " + Contacts.HAS_PHONE_NUMBER + "=1");
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_ACCOUNT: {
+                filter.addAccountQueryParameterToUrl(uriBuilder);
+                break;
+            }
+            case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS:
+            case ContactListFilter.FILTER_TYPE_DEFAULT:
+                break; // No selection needed.
+            case ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY:
+                break; // This adapter is always "phone only", so no selection needed either.
+            default:
+                Log.w(TAG, "Unsupported filter type came " +
+                        "(type: " + filter.filterType + ", toString: " + filter + ")" +
+                        " showing all contacts.");
+                // No selection.
+                break;
+        }
+        loader.setSelection(selection.toString());
+        loader.setSelectionArgs(selectionArgs.toArray(new String[0]));
+    }
+
+    @Override
+    public String getContactDisplayName(int position) {
+        return ((Cursor) getItem(position)).getString(PhoneQuery.DISPLAY_NAME);
+    }
+
+    public String getPhoneNumber(int position) {
+        final Cursor item = (Cursor)getItem(position);
+        return item != null ? item.getString(PhoneQuery.PHONE_NUMBER) : null;
+    }
+
+    /**
+     * Builds a {@link Data#CONTENT_URI} for the given cursor position.
+     *
+     * @return Uri for the data. may be null if the cursor is not ready.
+     */
+    public Uri getDataUri(int position) {
+        final int partitionIndex = getPartitionForPosition(position);
+        final Cursor item = (Cursor)getItem(position);
+        return item != null ? getDataUri(partitionIndex, item) : null;
+    }
+
+    public Uri getDataUri(int partitionIndex, Cursor cursor) {
+        final long directoryId =
+                ((DirectoryPartition)getPartition(partitionIndex)).getDirectoryId();
+        if (DirectoryCompat.isRemoteDirectoryId(directoryId)) {
+            return null;
+        } else if (DirectoryCompat.isEnterpriseDirectoryId(directoryId)) {
+            /*
+             * ContentUris.withAppendedId(Data.CONTENT_URI, phoneId), is invalid if
+             * isEnterpriseDirectoryId returns true, because the uri itself will fail since the
+             * ContactsProvider in Android Framework currently doesn't support it. return null until
+             * Android framework has enterprise version of Data.CONTENT_URI
+             */
+            return null;
+        } else {
+            final long phoneId = cursor.getLong(PhoneQuery.PHONE_ID);
+            return ContentUris.withAppendedId(Data.CONTENT_URI, phoneId);
+        }
+    }
+
+    /**
+     * Retrieves the lookup key for the given cursor position.
+     *
+     * @param position The cursor position.
+     * @return The lookup key.
+     */
+    public String getLookupKey(int position) {
+        final Cursor item = (Cursor)getItem(position);
+        return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null;
+    }
+
+    @Override
+    protected ContactListItemView newView(
+            Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+        ContactListItemView view = super.newView(context, partition, cursor, position, parent);
+        view.setUnknownNameText(mUnknownNameText);
+        view.setQuickContactEnabled(isQuickContactEnabled());
+        view.setPhotoPosition(mPhotoPosition);
+        return view;
+    }
+
+    protected void setHighlight(ContactListItemView view, Cursor cursor) {
+        view.setHighlightedPrefix(isSearchMode() ? getUpperCaseQueryString() : null);
+    }
+
+    // Override default, which would return number of phone numbers, so we
+    // instead return number of contacts.
+    @Override
+    protected int getResultCount(Cursor cursor) {
+        if (cursor == null) {
+            return 0;
+        }
+        cursor.moveToPosition(-1);
+        long curContactId = -1;
+        int numContacts = 0;
+        while(cursor.moveToNext()) {
+            final long contactId = cursor.getLong(PhoneQuery.CONTACT_ID);
+            if (contactId != curContactId) {
+                curContactId = contactId;
+                ++numContacts;
+            }
+        }
+        return numContacts;
+    }
+
+    @Override
+    protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+        super.bindView(itemView, partition, cursor, position);
+        ContactListItemView view = (ContactListItemView)itemView;
+
+        setHighlight(view, cursor);
+
+        // Look at elements before and after this position, checking if contact IDs are same.
+        // If they have one same contact ID, it means they can be grouped.
+        //
+        // In one group, only the first entry will show its photo and its name, and the other
+        // entries in the group show just their data (e.g. phone number, email address).
+        cursor.moveToPosition(position);
+        boolean isFirstEntry = true;
+        boolean showBottomDivider = true;
+        final long currentContactId = cursor.getLong(PhoneQuery.CONTACT_ID);
+        if (cursor.moveToPrevious() && !cursor.isBeforeFirst()) {
+            final long previousContactId = cursor.getLong(PhoneQuery.CONTACT_ID);
+            if (currentContactId == previousContactId) {
+                isFirstEntry = false;
+            }
+        }
+        cursor.moveToPosition(position);
+        if (cursor.moveToNext() && !cursor.isAfterLast()) {
+            final long nextContactId = cursor.getLong(PhoneQuery.CONTACT_ID);
+            if (currentContactId == nextContactId) {
+                // The following entry should be in the same group, which means we don't want a
+                // divider between them.
+                // TODO: we want a different divider than the divider between groups. Just hiding
+                // this divider won't be enough.
+                showBottomDivider = false;
+            }
+        }
+        cursor.moveToPosition(position);
+
+        bindViewId(view, cursor, PhoneQuery.PHONE_ID);
+
+        bindSectionHeaderAndDivider(view, position);
+        if (isFirstEntry) {
+            bindName(view, cursor);
+            if (isQuickContactEnabled()) {
+                bindQuickContact(view, partition, cursor, PhoneQuery.PHOTO_ID,
+                        PhoneQuery.PHOTO_URI, PhoneQuery.CONTACT_ID,
+                        PhoneQuery.LOOKUP_KEY, PhoneQuery.DISPLAY_NAME);
+            } else {
+                if (getDisplayPhotos()) {
+                    bindPhoto(view, partition, cursor);
+                }
+            }
+        } else {
+            unbindName(view);
+
+            view.removePhotoView(true, false);
+        }
+
+        final DirectoryPartition directory = (DirectoryPartition) getPartition(partition);
+        bindPhoneNumber(view, cursor, directory.isDisplayNumber(), position);
+    }
+
+    protected void bindPhoneNumber(ContactListItemView view, Cursor cursor, boolean displayNumber,
+            int position) {
+        CharSequence label = null;
+        if (displayNumber &&  !cursor.isNull(PhoneQuery.PHONE_TYPE)) {
+            final int type = cursor.getInt(PhoneQuery.PHONE_TYPE);
+            final String customLabel = cursor.getString(PhoneQuery.PHONE_LABEL);
+
+            // TODO cache
+            label = Phone.getTypeLabel(getContext().getResources(), type, customLabel);
+        }
+        view.setLabel(label);
+        final String text;
+        if (displayNumber) {
+            text = cursor.getString(PhoneQuery.PHONE_NUMBER);
+        } else {
+            // Display phone label. If that's null, display geocoded location for the number
+            final String phoneLabel = cursor.getString(PhoneQuery.PHONE_LABEL);
+            if (phoneLabel != null) {
+                text = phoneLabel;
+            } else {
+                final String phoneNumber = cursor.getString(PhoneQuery.PHONE_NUMBER);
+                text = GeoUtil.getGeocodedLocationFor(mContext, phoneNumber);
+            }
+        }
+        view.setPhoneNumber(text, mCountryIso);
+
+        if (CompatUtils.isVideoCompatible()) {
+            // Determine if carrier presence indicates the number supports video calling.
+            int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE);
+            boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
+
+            boolean isVideoIconShown = mIsVideoEnabled && (
+                    mIsPresenceEnabled && isPresent || !mIsPresenceEnabled);
+            view.setShowVideoCallIcon(isVideoIconShown, mListener, position);
+        }
+    }
+
+    protected void bindSectionHeaderAndDivider(final ContactListItemView view, int position) {
+        if (isSectionHeaderDisplayEnabled()) {
+            Placement placement = getItemPlacementInSection(position);
+            view.setSectionHeader(placement.firstInSection ? placement.sectionHeader : null);
+        } else {
+            view.setSectionHeader(null);
+        }
+    }
+
+    protected void bindName(final ContactListItemView view, Cursor cursor) {
+        view.showDisplayName(cursor, PhoneQuery.DISPLAY_NAME, getContactNameDisplayOrder());
+        // Note: we don't show phonetic names any more (see issue 5265330)
+    }
+
+    protected void unbindName(final ContactListItemView view) {
+        view.hideDisplayName();
+    }
+
+    @Override
+    protected void bindWorkProfileIcon(final ContactListItemView view, int partition) {
+        final DirectoryPartition directory = (DirectoryPartition) getPartition(partition);
+        final long directoryId = directory.getDirectoryId();
+        final long userType = ContactsUtils.determineUserType(directoryId, null);
+        // Work directory must not be a extended directory. An extended directory is custom
+        // directory in the app, but not a directory provided by framework. So it can't be
+        // USER_TYPE_WORK.
+        view.setWorkProfileIconEnabled(
+                !isExtendedDirectory(directoryId) && userType == ContactsUtils.USER_TYPE_WORK);
+    }
+
+    protected void bindPhoto(final ContactListItemView view, int partitionIndex, Cursor cursor) {
+        if (!isPhotoSupported(partitionIndex)) {
+            view.removePhotoView();
+            return;
+        }
+
+        long photoId = 0;
+        if (!cursor.isNull(PhoneQuery.PHOTO_ID)) {
+            photoId = cursor.getLong(PhoneQuery.PHOTO_ID);
+        }
+
+        if (photoId != 0) {
+            getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false,
+                    getCircularPhotos(), null);
+        } else {
+            final String photoUriString = cursor.getString(PhoneQuery.PHOTO_URI);
+            final Uri photoUri = photoUriString == null ? null : Uri.parse(photoUriString);
+
+            DefaultImageRequest request = null;
+            if (photoUri == null) {
+                final String displayName = cursor.getString(PhoneQuery.DISPLAY_NAME);
+                final String lookupKey = cursor.getString(PhoneQuery.LOOKUP_KEY);
+                request = new DefaultImageRequest(displayName, lookupKey, getCircularPhotos());
+            }
+            getPhotoLoader().loadDirectoryPhoto(view.getPhotoView(), photoUri, false,
+                    getCircularPhotos(), request);
+        }
+    }
+
+    public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
+        mPhotoPosition = photoPosition;
+    }
+
+    public ContactListItemView.PhotoPosition getPhotoPosition() {
+        return mPhotoPosition;
+    }
+
+    public void setUseCallableUri(boolean useCallableUri) {
+        mUseCallableUri = useCallableUri;
+    }
+
+    public boolean usesCallableUri() {
+        return mUseCallableUri;
+    }
+
+    /**
+     * Override base implementation to inject extended directories between local & remote
+     * directories. This is done in the following steps:
+     * 1. Call base implementation to add directories from the cursor.
+     * 2. Iterate all base directories and establish the following information:
+     *   a. The highest directory id so that we can assign unused id's to the extended directories.
+     *   b. The index of the last non-remote directory. This is where we will insert extended
+     *      directories.
+     * 3. Iterate the extended directories and for each one, assign an ID and insert it in the
+     *    proper location.
+     */
+    @Override
+    public void changeDirectories(Cursor cursor) {
+        super.changeDirectories(cursor);
+        if (getDirectorySearchMode() == DirectoryListLoader.SEARCH_MODE_NONE) {
+            return;
+        }
+        final int numExtendedDirectories = mExtendedDirectories.size();
+        if (getPartitionCount() == cursor.getCount() + numExtendedDirectories) {
+            // already added all directories;
+            return;
+        }
+        //
+        mFirstExtendedDirectoryId = Long.MAX_VALUE;
+        if (numExtendedDirectories > 0) {
+            // The Directory.LOCAL_INVISIBLE is not in the cursor but we can't reuse it's
+            // "special" ID.
+            long maxId = Directory.LOCAL_INVISIBLE;
+            int insertIndex = 0;
+            for (int i = 0, n = getPartitionCount(); i < n; i++) {
+                final DirectoryPartition partition = (DirectoryPartition) getPartition(i);
+                final long id = partition.getDirectoryId();
+                if (id > maxId) {
+                    maxId = id;
+                }
+                if (!DirectoryCompat.isRemoteDirectoryId(id)) {
+                    // assuming remote directories come after local, we will end up with the index
+                    // where we should insert extended directories. This also works if there are no
+                    // remote directories at all.
+                    insertIndex = i + 1;
+                }
+            }
+            // Extended directories ID's cannot collide with base directories
+            mFirstExtendedDirectoryId = maxId + 1;
+            for (int i = 0; i < numExtendedDirectories; i++) {
+                final long id = mFirstExtendedDirectoryId + i;
+                final DirectoryPartition directory = mExtendedDirectories.get(i);
+                if (getPartitionByDirectoryId(id) == -1) {
+                    addPartition(insertIndex, directory);
+                    directory.setDirectoryId(id);
+                }
+            }
+        }
+    }
+
+    @Override
+    protected Uri getContactUri(int partitionIndex, Cursor cursor,
+            int contactIdColumn, int lookUpKeyColumn) {
+        final DirectoryPartition directory = (DirectoryPartition) getPartition(partitionIndex);
+        final long directoryId = directory.getDirectoryId();
+        if (!isExtendedDirectory(directoryId)) {
+            return super.getContactUri(partitionIndex, cursor, contactIdColumn, lookUpKeyColumn);
+        }
+        return Contacts.CONTENT_LOOKUP_URI.buildUpon()
+                .appendPath(Constants.LOOKUP_URI_ENCODED)
+                .appendQueryParameter(Directory.DISPLAY_NAME, directory.getLabel())
+                .appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+                        String.valueOf(directoryId))
+                .encodedFragment(cursor.getString(lookUpKeyColumn))
+                .build();
+    }
+
+    public Listener getListener() {
+        return mListener;
+    }
+
+    public void setListener(Listener listener) {
+        mListener = listener;
+    }
+}
diff --git a/src/com/android/contacts/list/PhoneNumberPickerFragment.java b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
new file mode 100644
index 0000000..cbc8def
--- /dev/null
+++ b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
@@ -0,0 +1,298 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Intent;
+import android.content.Loader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+import com.android.contacts.ShortcutIntentBuilder;
+import com.android.contacts.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
+
+/**
+ * Fragment containing a phone number list for picking.
+ */
+public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactEntryListAdapter>
+        implements OnShortcutIntentCreatedListener, PhoneNumberListAdapter.Listener {
+    private static final String TAG = "PhoneNumberPicker";
+
+    private static final String KEY_SHORTCUT_ACTION = "shortcutAction";
+
+    private OnPhoneNumberPickerActionListener mListener;
+    private String mShortcutAction;
+
+    private ContactListFilter mFilter;
+
+    private static final String KEY_FILTER = "filter";
+
+    /** true if the loader has started at least once. */
+    private boolean mLoaderStarted;
+
+    private boolean mUseCallableUri;
+
+    private ContactListItemView.PhotoPosition mPhotoPosition =
+            ContactListItemView.getDefaultPhotoPosition(false /* normal/non opposite */);
+
+    /**
+     * Handles a click on the video call icon for a row in the list.
+     *
+     * @param position The position in the list where the click ocurred.
+     */
+    @Override
+    public void onVideoCallIconClicked(int position) {
+        callNumber(position, true /* isVideoCall */);
+    }
+
+    public PhoneNumberPickerFragment() {
+        setQuickContactEnabled(false);
+        setPhotoLoaderEnabled(true);
+        setSectionHeaderDisplayEnabled(true);
+        setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
+
+        // Show nothing instead of letting caller Activity show something.
+        setHasOptionsMenu(true);
+    }
+
+    public void setDirectorySearchEnabled(boolean flag) {
+        setDirectorySearchMode(flag ? DirectoryListLoader.SEARCH_MODE_DEFAULT
+                : DirectoryListLoader.SEARCH_MODE_NONE);
+    }
+
+    public void setOnPhoneNumberPickerActionListener(OnPhoneNumberPickerActionListener listener) {
+        this.mListener = listener;
+    }
+
+    public OnPhoneNumberPickerActionListener getOnPhoneNumberPickerListener() {
+        return mListener;
+    }
+
+    @Override
+    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
+        super.onCreateView(inflater, container);
+
+        setVisibleScrollbarEnabled(getVisibleScrollbarEnabled());
+    }
+
+    protected boolean getVisibleScrollbarEnabled() {
+        return true;
+    }
+
+    @Override
+    public void restoreSavedState(Bundle savedState) {
+        super.restoreSavedState(savedState);
+
+        if (savedState == null) {
+            return;
+        }
+
+        mFilter = savedState.getParcelable(KEY_FILTER);
+        mShortcutAction = savedState.getString(KEY_SHORTCUT_ACTION);
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelable(KEY_FILTER, mFilter);
+        outState.putString(KEY_SHORTCUT_ACTION, mShortcutAction);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        final int itemId = item.getItemId();
+        if (itemId == android.R.id.home) {  // See ActionBar#setDisplayHomeAsUpEnabled()
+            if (mListener != null) {
+                mListener.onHomeInActionBarSelected();
+            }
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    /**
+     * @param shortcutAction either {@link Intent#ACTION_CALL} or
+     *            {@link Intent#ACTION_SENDTO} or null.
+     */
+    public void setShortcutAction(String shortcutAction) {
+        this.mShortcutAction = shortcutAction;
+    }
+
+    @Override
+    protected void onItemClick(int position, long id) {
+        callNumber(position, false /* isVideoCall */);
+    }
+
+    /**
+     * Initiates a call to the number at the specified position.
+     *
+     * @param position The position.
+     * @param isVideoCall {@code true} if the call should be initiated as a video call,
+     *      {@code false} otherwise.
+     */
+    private void callNumber(int position, boolean isVideoCall) {
+        final Uri phoneUri = getPhoneUri(position);
+
+        if (phoneUri != null) {
+            pickPhoneNumber(phoneUri, isVideoCall);
+        } else {
+            final String number = getPhoneNumber(position);
+            if (!TextUtils.isEmpty(number)) {
+                cacheContactInfo(position);
+                mListener.onPickPhoneNumber(number, isVideoCall,
+                        getCallInitiationType(true /* isRemoteDirectory */));
+            } else {
+                Log.w(TAG, "Item at " + position + " was clicked before"
+                        + " adapter is ready. Ignoring");
+            }
+        }
+    }
+
+    protected void cacheContactInfo(int position) {
+        // Not implemented. Hook for child classes
+    }
+
+    protected String getPhoneNumber(int position) {
+        final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter();
+        return adapter.getPhoneNumber(position);
+    }
+
+    protected Uri getPhoneUri(int position) {
+        final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter();
+        return adapter.getDataUri(position);
+    }
+
+    protected String getLookupKey(int position) {
+        final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter();
+        return adapter.getLookupKey(position);
+    }
+
+    @Override
+    protected void startLoading() {
+        mLoaderStarted = true;
+        super.startLoading();
+    }
+
+    @Override
+    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+        super.onLoadFinished(loader, data);
+
+        // disable scroll bar if there is no data
+        setVisibleScrollbarEnabled(data != null && !data.isClosed() && data.getCount() > 0);
+    }
+
+    public void setUseCallableUri(boolean useCallableUri) {
+        mUseCallableUri = useCallableUri;
+    }
+
+    public boolean usesCallableUri() {
+        return mUseCallableUri;
+    }
+
+    @Override
+    protected ContactEntryListAdapter createListAdapter() {
+        PhoneNumberListAdapter adapter = new PhoneNumberListAdapter(getActivity());
+        adapter.setDisplayPhotos(true);
+        adapter.setUseCallableUri(mUseCallableUri);
+        return adapter;
+    }
+
+    @Override
+    protected void configureAdapter() {
+        super.configureAdapter();
+
+        final ContactEntryListAdapter adapter = getAdapter();
+        if (adapter == null) {
+            return;
+        }
+
+        if (!isSearchMode() && mFilter != null) {
+            adapter.setFilter(mFilter);
+        }
+
+        setPhotoPosition(adapter);
+    }
+
+    protected void setPhotoPosition(ContactEntryListAdapter adapter) {
+        ((PhoneNumberListAdapter) adapter).setPhotoPosition(mPhotoPosition);
+    }
+
+    @Override
+    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
+        return inflater.inflate(R.layout.contact_list_content, null);
+    }
+
+    public void pickPhoneNumber(Uri uri, boolean isVideoCall) {
+        if (mShortcutAction == null) {
+            mListener.onPickDataUri(uri, isVideoCall,
+                    getCallInitiationType(false /* isRemoteDirectory */));
+        } else {
+            startPhoneNumberShortcutIntent(uri, isVideoCall);
+        }
+    }
+
+    protected void startPhoneNumberShortcutIntent(Uri uri, boolean isVideoCall) {
+        ShortcutIntentBuilder builder = new ShortcutIntentBuilder(getActivity(), this);
+        builder.createPhoneNumberShortcutIntent(uri, mShortcutAction);
+    }
+
+    @Override
+    public void onShortcutIntentCreated(Uri uri, Intent shortcutIntent) {
+        mListener.onShortcutIntentCreated(shortcutIntent);
+    }
+
+    @Override
+    public void onPickerResult(Intent data) {
+        mListener.onPickDataUri(data.getData(), false /* isVideoCall */,
+                getCallInitiationType(false /* isRemoteDirectory */));
+    }
+
+    public void setFilter(ContactListFilter filter) {
+        if ((mFilter == null && filter == null) ||
+                (mFilter != null && mFilter.equals(filter))) {
+            return;
+        }
+
+        mFilter = filter;
+        if (mLoaderStarted) {
+            reloadData();
+        }
+    }
+
+    public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
+        mPhotoPosition = photoPosition;
+
+        final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter();
+        if (adapter != null) {
+            adapter.setPhotoPosition(photoPosition);
+        }
+    }
+
+    /**
+     * @param isRemoteDirectory {@code true} if the call was initiated using a contact/phone number
+     *         not in the local contacts database
+     */
+    protected int getCallInitiationType(boolean isRemoteDirectory) {
+        return OnPhoneNumberPickerActionListener.CALL_INITIATION_UNKNOWN;
+    }
+}
diff --git a/src/com/android/contacts/list/PinnedHeaderListAdapter.java b/src/com/android/contacts/list/PinnedHeaderListAdapter.java
new file mode 100644
index 0000000..6a76421
--- /dev/null
+++ b/src/com/android/contacts/list/PinnedHeaderListAdapter.java
@@ -0,0 +1,169 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.common.widget.CompositeCursorAdapter;
+
+/**
+ * A subclass of {@link CompositeCursorAdapter} that manages pinned partition headers.
+ */
+public abstract class PinnedHeaderListAdapter extends CompositeCursorAdapter
+        implements PinnedHeaderListView.PinnedHeaderAdapter {
+
+    public static final int PARTITION_HEADER_TYPE = 0;
+
+    private boolean mPinnedPartitionHeadersEnabled;
+    private boolean mHeaderVisibility[];
+
+    public PinnedHeaderListAdapter(Context context) {
+        super(context);
+    }
+
+    public PinnedHeaderListAdapter(Context context, int initialCapacity) {
+        super(context, initialCapacity);
+    }
+
+    public boolean getPinnedPartitionHeadersEnabled() {
+        return mPinnedPartitionHeadersEnabled;
+    }
+
+    public void setPinnedPartitionHeadersEnabled(boolean flag) {
+        this.mPinnedPartitionHeadersEnabled = flag;
+    }
+
+    @Override
+    public int getPinnedHeaderCount() {
+        if (mPinnedPartitionHeadersEnabled) {
+            return getPartitionCount();
+        } else {
+            return 0;
+        }
+    }
+
+    protected boolean isPinnedPartitionHeaderVisible(int partition) {
+        return getPinnedPartitionHeadersEnabled() && hasHeader(partition)
+                && !isPartitionEmpty(partition);
+    }
+
+    /**
+     * The default implementation creates the same type of view as a normal
+     * partition header.
+     */
+    @Override
+    public View getPinnedHeaderView(int partition, View convertView, ViewGroup parent) {
+        if (hasHeader(partition)) {
+            View view = null;
+            if (convertView != null) {
+                Integer headerType = (Integer)convertView.getTag();
+                if (headerType != null && headerType == PARTITION_HEADER_TYPE) {
+                    view = convertView;
+                }
+            }
+            if (view == null) {
+                view = newHeaderView(getContext(), partition, null, parent);
+                view.setTag(PARTITION_HEADER_TYPE);
+                view.setFocusable(false);
+                view.setEnabled(false);
+            }
+            bindHeaderView(view, partition, getCursor(partition));
+            view.setLayoutDirection(parent.getLayoutDirection());
+            return view;
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public void configurePinnedHeaders(PinnedHeaderListView listView) {
+        if (!getPinnedPartitionHeadersEnabled()) {
+            return;
+        }
+
+        int size = getPartitionCount();
+
+        // Cache visibility bits, because we will need them several times later on
+        if (mHeaderVisibility == null || mHeaderVisibility.length != size) {
+            mHeaderVisibility = new boolean[size];
+        }
+        for (int i = 0; i < size; i++) {
+            boolean visible = isPinnedPartitionHeaderVisible(i);
+            mHeaderVisibility[i] = visible;
+            if (!visible) {
+                listView.setHeaderInvisible(i, true);
+            }
+        }
+
+        int headerViewsCount = listView.getHeaderViewsCount();
+
+        // Starting at the top, find and pin headers for partitions preceding the visible one(s)
+        int maxTopHeader = -1;
+        int topHeaderHeight = 0;
+        for (int i = 0; i < size; i++) {
+            if (mHeaderVisibility[i]) {
+                int position = listView.getPositionAt(topHeaderHeight) - headerViewsCount;
+                int partition = getPartitionForPosition(position);
+                if (i > partition) {
+                    break;
+                }
+
+                listView.setHeaderPinnedAtTop(i, topHeaderHeight, false);
+                topHeaderHeight += listView.getPinnedHeaderHeight(i);
+                maxTopHeader = i;
+            }
+        }
+
+        // Starting at the bottom, find and pin headers for partitions following the visible one(s)
+        int maxBottomHeader = size;
+        int bottomHeaderHeight = 0;
+        int listHeight = listView.getHeight();
+        for (int i = size; --i > maxTopHeader;) {
+            if (mHeaderVisibility[i]) {
+                int position = listView.getPositionAt(listHeight - bottomHeaderHeight)
+                        - headerViewsCount;
+                if (position < 0) {
+                    break;
+                }
+
+                int partition = getPartitionForPosition(position - 1);
+                if (partition == -1 || i <= partition) {
+                    break;
+                }
+
+                int height = listView.getPinnedHeaderHeight(i);
+                bottomHeaderHeight += height;
+
+                listView.setHeaderPinnedAtBottom(i, listHeight - bottomHeaderHeight, false);
+                maxBottomHeader = i;
+            }
+        }
+
+        // Headers in between the top-pinned and bottom-pinned should be hidden
+        for (int i = maxTopHeader + 1; i < maxBottomHeader; i++) {
+            if (mHeaderVisibility[i]) {
+                listView.setHeaderInvisible(i, isPartitionEmpty(i));
+            }
+        }
+    }
+
+    @Override
+    public int getScrollPositionForHeader(int viewIndex) {
+        return getPositionForPartition(viewIndex);
+    }
+}
diff --git a/src/com/android/contacts/list/PinnedHeaderListView.java b/src/com/android/contacts/list/PinnedHeaderListView.java
new file mode 100644
index 0000000..01895c7
--- /dev/null
+++ b/src/com/android/contacts/list/PinnedHeaderListView.java
@@ -0,0 +1,581 @@
+/*
+ * Copyright (C) 2010 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.list;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.RectF;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.ListAdapter;
+import android.widget.TextView;
+
+import com.android.contacts.util.ViewUtil;
+
+/**
+ * A ListView that maintains a header pinned at the top of the list. The
+ * pinned header can be pushed up and dissolved as needed.
+ */
+public class PinnedHeaderListView extends AutoScrollListView
+        implements OnScrollListener, OnItemSelectedListener {
+
+    /**
+     * Adapter interface.  The list adapter must implement this interface.
+     */
+    public interface PinnedHeaderAdapter {
+
+        /**
+         * Returns the overall number of pinned headers, visible or not.
+         */
+        int getPinnedHeaderCount();
+
+        /**
+         * Creates or updates the pinned header view.
+         */
+        View getPinnedHeaderView(int viewIndex, View convertView, ViewGroup parent);
+
+        /**
+         * Configures the pinned headers to match the visible list items. The
+         * adapter should call {@link PinnedHeaderListView#setHeaderPinnedAtTop},
+         * {@link PinnedHeaderListView#setHeaderPinnedAtBottom},
+         * {@link PinnedHeaderListView#setFadingHeader} or
+         * {@link PinnedHeaderListView#setHeaderInvisible}, for each header that
+         * needs to change its position or visibility.
+         */
+        void configurePinnedHeaders(PinnedHeaderListView listView);
+
+        /**
+         * Returns the list position to scroll to if the pinned header is touched.
+         * Return -1 if the list does not need to be scrolled.
+         */
+        int getScrollPositionForHeader(int viewIndex);
+    }
+
+    private static final int MAX_ALPHA = 255;
+    private static final int TOP = 0;
+    private static final int BOTTOM = 1;
+    private static final int FADING = 2;
+
+    private static final int DEFAULT_ANIMATION_DURATION = 20;
+
+    private static final int DEFAULT_SMOOTH_SCROLL_DURATION = 100;
+
+    private static final class PinnedHeader {
+        View view;
+        boolean visible;
+        int y;
+        int height;
+        int alpha;
+        int state;
+
+        boolean animating;
+        boolean targetVisible;
+        int sourceY;
+        int targetY;
+        long targetTime;
+    }
+
+    private PinnedHeaderAdapter mAdapter;
+    private int mSize;
+    private PinnedHeader[] mHeaders;
+    private RectF mBounds = new RectF();
+    private OnScrollListener mOnScrollListener;
+    private OnItemSelectedListener mOnItemSelectedListener;
+    private int mScrollState;
+
+    private boolean mScrollToSectionOnHeaderTouch = false;
+    private boolean mHeaderTouched = false;
+
+    private int mAnimationDuration = DEFAULT_ANIMATION_DURATION;
+    private boolean mAnimating;
+    private long mAnimationTargetTime;
+    private int mHeaderPaddingStart;
+    private int mHeaderWidth;
+
+    public PinnedHeaderListView(Context context) {
+        this(context, null, android.R.attr.listViewStyle);
+    }
+
+    public PinnedHeaderListView(Context context, AttributeSet attrs) {
+        this(context, attrs, android.R.attr.listViewStyle);
+    }
+
+    public PinnedHeaderListView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        super.setOnScrollListener(this);
+        super.setOnItemSelectedListener(this);
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int l, int t, int r, int b) {
+        super.onLayout(changed, l, t, r, b);
+        mHeaderPaddingStart = getPaddingStart();
+        mHeaderWidth = r - l - mHeaderPaddingStart - getPaddingEnd();
+    }
+
+    @Override
+    public void setAdapter(ListAdapter adapter) {
+        mAdapter = (PinnedHeaderAdapter)adapter;
+        super.setAdapter(adapter);
+    }
+
+    @Override
+    public void setOnScrollListener(OnScrollListener onScrollListener) {
+        mOnScrollListener = onScrollListener;
+        super.setOnScrollListener(this);
+    }
+
+    @Override
+    public void setOnItemSelectedListener(OnItemSelectedListener listener) {
+        mOnItemSelectedListener = listener;
+        super.setOnItemSelectedListener(this);
+    }
+
+    public void setScrollToSectionOnHeaderTouch(boolean value) {
+        mScrollToSectionOnHeaderTouch = value;
+    }
+
+    @Override
+    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
+            int totalItemCount) {
+        if (mAdapter != null) {
+            int count = mAdapter.getPinnedHeaderCount();
+            if (count != mSize) {
+                mSize = count;
+                if (mHeaders == null) {
+                    mHeaders = new PinnedHeader[mSize];
+                } else if (mHeaders.length < mSize) {
+                    PinnedHeader[] headers = mHeaders;
+                    mHeaders = new PinnedHeader[mSize];
+                    System.arraycopy(headers, 0, mHeaders, 0, headers.length);
+                }
+            }
+
+            for (int i = 0; i < mSize; i++) {
+                if (mHeaders[i] == null) {
+                    mHeaders[i] = new PinnedHeader();
+                }
+                mHeaders[i].view = mAdapter.getPinnedHeaderView(i, mHeaders[i].view, this);
+            }
+
+            mAnimationTargetTime = System.currentTimeMillis() + mAnimationDuration;
+            mAdapter.configurePinnedHeaders(this);
+            invalidateIfAnimating();
+        }
+        if (mOnScrollListener != null) {
+            mOnScrollListener.onScroll(this, firstVisibleItem, visibleItemCount, totalItemCount);
+        }
+    }
+
+    @Override
+    protected float getTopFadingEdgeStrength() {
+        // Disable vertical fading at the top when the pinned header is present
+        return mSize > 0 ? 0 : super.getTopFadingEdgeStrength();
+    }
+
+    @Override
+    public void onScrollStateChanged(AbsListView view, int scrollState) {
+        mScrollState = scrollState;
+        if (mOnScrollListener != null) {
+            mOnScrollListener.onScrollStateChanged(this, scrollState);
+        }
+    }
+
+    /**
+     * Ensures that the selected item is positioned below the top-pinned headers
+     * and above the bottom-pinned ones.
+     */
+    @Override
+    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+        int height = getHeight();
+
+        int windowTop = 0;
+        int windowBottom = height;
+
+        for (int i = 0; i < mSize; i++) {
+            PinnedHeader header = mHeaders[i];
+            if (header.visible) {
+                if (header.state == TOP) {
+                    windowTop = header.y + header.height;
+                } else if (header.state == BOTTOM) {
+                    windowBottom = header.y;
+                    break;
+                }
+            }
+        }
+
+        View selectedView = getSelectedView();
+        if (selectedView != null) {
+            if (selectedView.getTop() < windowTop) {
+                setSelectionFromTop(position, windowTop);
+            } else if (selectedView.getBottom() > windowBottom) {
+                setSelectionFromTop(position, windowBottom - selectedView.getHeight());
+            }
+        }
+
+        if (mOnItemSelectedListener != null) {
+            mOnItemSelectedListener.onItemSelected(parent, view, position, id);
+        }
+    }
+
+    @Override
+    public void onNothingSelected(AdapterView<?> parent) {
+        if (mOnItemSelectedListener != null) {
+            mOnItemSelectedListener.onNothingSelected(parent);
+        }
+    }
+
+    public int getPinnedHeaderHeight(int viewIndex) {
+        ensurePinnedHeaderLayout(viewIndex);
+        return mHeaders[viewIndex].view.getHeight();
+    }
+
+    /**
+     * Set header to be pinned at the top.
+     *
+     * @param viewIndex index of the header view
+     * @param y is position of the header in pixels.
+     * @param animate true if the transition to the new coordinate should be animated
+     */
+    public void setHeaderPinnedAtTop(int viewIndex, int y, boolean animate) {
+        ensurePinnedHeaderLayout(viewIndex);
+        PinnedHeader header = mHeaders[viewIndex];
+        header.visible = true;
+        header.y = y;
+        header.state = TOP;
+
+        // TODO perhaps we should animate at the top as well
+        header.animating = false;
+    }
+
+    /**
+     * Set header to be pinned at the bottom.
+     *
+     * @param viewIndex index of the header view
+     * @param y is position of the header in pixels.
+     * @param animate true if the transition to the new coordinate should be animated
+     */
+    public void setHeaderPinnedAtBottom(int viewIndex, int y, boolean animate) {
+        ensurePinnedHeaderLayout(viewIndex);
+        PinnedHeader header = mHeaders[viewIndex];
+        header.state = BOTTOM;
+        if (header.animating) {
+            header.targetTime = mAnimationTargetTime;
+            header.sourceY = header.y;
+            header.targetY = y;
+        } else if (animate && (header.y != y || !header.visible)) {
+            if (header.visible) {
+                header.sourceY = header.y;
+            } else {
+                header.visible = true;
+                header.sourceY = y + header.height;
+            }
+            header.animating = true;
+            header.targetVisible = true;
+            header.targetTime = mAnimationTargetTime;
+            header.targetY = y;
+        } else {
+            header.visible = true;
+            header.y = y;
+        }
+    }
+
+    /**
+     * Set header to be pinned at the top of the first visible item.
+     *
+     * @param viewIndex index of the header view
+     * @param position is position of the header in pixels.
+     */
+    public void setFadingHeader(int viewIndex, int position, boolean fade) {
+        ensurePinnedHeaderLayout(viewIndex);
+
+        View child = getChildAt(position - getFirstVisiblePosition());
+        if (child == null) return;
+
+        PinnedHeader header = mHeaders[viewIndex];
+        // Hide header when it's a star.
+        // TODO: try showing the view even when it's a star;
+        // if we have to hide the star view, then try hiding it in some higher layer.
+        header.visible = !((TextView) header.view).getText().toString().isEmpty();
+        header.state = FADING;
+        header.alpha = MAX_ALPHA;
+        header.animating = false;
+
+        int top = getTotalTopPinnedHeaderHeight();
+        header.y = top;
+        if (fade) {
+            int bottom = child.getBottom() - top;
+            int headerHeight = header.height;
+            if (bottom < headerHeight) {
+                int portion = bottom - headerHeight;
+                header.alpha = MAX_ALPHA * (headerHeight + portion) / headerHeight;
+                header.y = top + portion;
+            }
+        }
+    }
+
+    /**
+     * Makes header invisible.
+     *
+     * @param viewIndex index of the header view
+     * @param animate true if the transition to the new coordinate should be animated
+     */
+    public void setHeaderInvisible(int viewIndex, boolean animate) {
+        PinnedHeader header = mHeaders[viewIndex];
+        if (header.visible && (animate || header.animating) && header.state == BOTTOM) {
+            header.sourceY = header.y;
+            if (!header.animating) {
+                header.visible = true;
+                header.targetY = getBottom() + header.height;
+            }
+            header.animating = true;
+            header.targetTime = mAnimationTargetTime;
+            header.targetVisible = false;
+        } else {
+            header.visible = false;
+        }
+    }
+
+    private void ensurePinnedHeaderLayout(int viewIndex) {
+        View view = mHeaders[viewIndex].view;
+        if (view.isLayoutRequested()) {
+            ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
+            int widthSpec;
+            int heightSpec;
+
+            if (layoutParams != null && layoutParams.width > 0) {
+                widthSpec = View.MeasureSpec
+                        .makeMeasureSpec(layoutParams.width, View.MeasureSpec.EXACTLY);
+            } else {
+                widthSpec = View.MeasureSpec
+                        .makeMeasureSpec(mHeaderWidth, View.MeasureSpec.EXACTLY);
+            }
+
+            if (layoutParams != null && layoutParams.height > 0) {
+                heightSpec = View.MeasureSpec
+                        .makeMeasureSpec(layoutParams.height, View.MeasureSpec.EXACTLY);
+            } else {
+                heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
+            }
+            view.measure(widthSpec, heightSpec);
+            int height = view.getMeasuredHeight();
+            mHeaders[viewIndex].height = height;
+            view.layout(0, 0, view.getMeasuredWidth(), height);
+        }
+    }
+
+    /**
+     * Returns the sum of heights of headers pinned to the top.
+     */
+    public int getTotalTopPinnedHeaderHeight() {
+        for (int i = mSize; --i >= 0;) {
+            PinnedHeader header = mHeaders[i];
+            if (header.visible && header.state == TOP) {
+                return header.y + header.height;
+            }
+        }
+        return 0;
+    }
+
+    /**
+     * Returns the list item position at the specified y coordinate.
+     */
+    public int getPositionAt(int y) {
+        do {
+            int position = pointToPosition(getPaddingLeft() + 1, y);
+            if (position != -1) {
+                return position;
+            }
+            // If position == -1, we must have hit a separator. Let's examine
+            // a nearby pixel
+            y--;
+        } while (y > 0);
+        return 0;
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent ev) {
+        mHeaderTouched = false;
+        if (super.onInterceptTouchEvent(ev)) {
+            return true;
+        }
+
+        if (mScrollState == SCROLL_STATE_IDLE) {
+            final int y = (int)ev.getY();
+            final int x = (int)ev.getX();
+            for (int i = mSize; --i >= 0;) {
+                PinnedHeader header = mHeaders[i];
+                final int padding = ViewUtil.isViewLayoutRtl(this) ?
+                        getWidth() - mHeaderPaddingStart - header.view.getWidth() :
+                        mHeaderPaddingStart;
+                if (header.visible && header.y <= y && header.y + header.height > y &&
+                        x >= padding && padding + header.view.getWidth() >= x) {
+                    mHeaderTouched = true;
+                    if (mScrollToSectionOnHeaderTouch &&
+                            ev.getAction() == MotionEvent.ACTION_DOWN) {
+                        return smoothScrollToPartition(i);
+                    } else {
+                        return true;
+                    }
+                }
+            }
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent ev) {
+        if (mHeaderTouched) {
+            if (ev.getAction() == MotionEvent.ACTION_UP) {
+                mHeaderTouched = false;
+            }
+            return true;
+        }
+        return super.onTouchEvent(ev);
+    }
+
+    private boolean smoothScrollToPartition(int partition) {
+        if (mAdapter == null) {
+            return false;
+        }
+        final int position = mAdapter.getScrollPositionForHeader(partition);
+        if (position == -1) {
+            return false;
+        }
+
+        int offset = 0;
+        for (int i = 0; i < partition; i++) {
+            PinnedHeader header = mHeaders[i];
+            if (header.visible) {
+                offset += header.height;
+            }
+        }
+        smoothScrollToPositionFromTop(position + getHeaderViewsCount(), offset,
+                DEFAULT_SMOOTH_SCROLL_DURATION);
+        return true;
+    }
+
+    private void invalidateIfAnimating() {
+        mAnimating = false;
+        for (int i = 0; i < mSize; i++) {
+            if (mHeaders[i].animating) {
+                mAnimating = true;
+                invalidate();
+                return;
+            }
+        }
+    }
+
+    @Override
+    protected void dispatchDraw(Canvas canvas) {
+        long currentTime = mAnimating ? System.currentTimeMillis() : 0;
+
+        int top = 0;
+        int right = 0;
+        int bottom = getBottom();
+        boolean hasVisibleHeaders = false;
+        for (int i = 0; i < mSize; i++) {
+            PinnedHeader header = mHeaders[i];
+            if (header.visible) {
+                hasVisibleHeaders = true;
+                if (header.state == BOTTOM && header.y < bottom) {
+                    bottom = header.y;
+                } else if (header.state == TOP || header.state == FADING) {
+                    int newTop = header.y + header.height;
+                    if (newTop > top) {
+                        top = newTop;
+                    }
+                }
+            }
+        }
+
+        if (hasVisibleHeaders) {
+            canvas.save();
+        }
+
+        super.dispatchDraw(canvas);
+
+        if (hasVisibleHeaders) {
+            canvas.restore();
+
+            // If the first item is visible and if it has a positive top that is greater than the
+            // first header's assigned y-value, use that for the first header's y value. This way,
+            // the header inherits any padding applied to the list view.
+            if (mSize > 0 && getFirstVisiblePosition() == 0) {
+                View firstChild = getChildAt(0);
+                PinnedHeader firstHeader = mHeaders[0];
+
+                if (firstHeader != null) {
+                    int firstHeaderTop = firstChild != null ? firstChild.getTop() : 0;
+                    firstHeader.y = Math.max(firstHeader.y, firstHeaderTop);
+                }
+            }
+
+            // First draw top headers, then the bottom ones to handle the Z axis correctly
+            for (int i = mSize; --i >= 0;) {
+                PinnedHeader header = mHeaders[i];
+                if (header.visible && (header.state == TOP || header.state == FADING)) {
+                    drawHeader(canvas, header, currentTime);
+                }
+            }
+
+            for (int i = 0; i < mSize; i++) {
+                PinnedHeader header = mHeaders[i];
+                if (header.visible && header.state == BOTTOM) {
+                    drawHeader(canvas, header, currentTime);
+                }
+            }
+        }
+
+        invalidateIfAnimating();
+    }
+
+    private void drawHeader(Canvas canvas, PinnedHeader header, long currentTime) {
+        if (header.animating) {
+            int timeLeft = (int)(header.targetTime - currentTime);
+            if (timeLeft <= 0) {
+                header.y = header.targetY;
+                header.visible = header.targetVisible;
+                header.animating = false;
+            } else {
+                header.y = header.targetY + (header.sourceY - header.targetY) * timeLeft
+                        / mAnimationDuration;
+            }
+        }
+        if (header.visible) {
+            View view = header.view;
+            int saveCount = canvas.save();
+            int translateX = ViewUtil.isViewLayoutRtl(this) ?
+                    getWidth() - mHeaderPaddingStart - view.getWidth() :
+                    mHeaderPaddingStart;
+            canvas.translate(translateX, header.y);
+            if (header.state == FADING) {
+                mBounds.set(0, 0, view.getWidth(), view.getHeight());
+                canvas.saveLayerAlpha(mBounds, header.alpha, Canvas.ALL_SAVE_FLAG);
+            }
+            view.draw(canvas);
+            canvas.restoreToCount(saveCount);
+        }
+    }
+}
diff --git a/src/com/android/contacts/list/PostalAddressListAdapter.java b/src/com/android/contacts/list/PostalAddressListAdapter.java
index 951a933..c0c2353 100644
--- a/src/com/android/contacts/list/PostalAddressListAdapter.java
+++ b/src/com/android/contacts/list/PostalAddressListAdapter.java
@@ -27,10 +27,8 @@
 import android.view.View;
 import android.view.ViewGroup;
 
-import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.preference.ContactsPreferences;
 
 /**
  * A cursor adapter for the {@link StructuredPostal#CONTENT_TYPE} content type.
diff --git a/src/com/android/contacts/list/PostalAddressPickerFragment.java b/src/com/android/contacts/list/PostalAddressPickerFragment.java
index c64e173..c2aacee 100644
--- a/src/com/android/contacts/list/PostalAddressPickerFragment.java
+++ b/src/com/android/contacts/list/PostalAddressPickerFragment.java
@@ -21,9 +21,6 @@
 import android.view.ViewGroup;
 
 import com.android.contacts.R;
-import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactEntryListFragment;
-import com.android.contacts.common.list.DirectoryListLoader;
 
 /**
  * Fragment containing a postal address list for picking.
diff --git a/src/com/android/contacts/list/ProviderStatusWatcher.java b/src/com/android/contacts/list/ProviderStatusWatcher.java
index 51f776b..64dc298 100644
--- a/src/com/android/contacts/list/ProviderStatusWatcher.java
+++ b/src/com/android/contacts/list/ProviderStatusWatcher.java
@@ -15,7 +15,6 @@
  */
 package com.android.contacts.list;
 
-import android.content.ContentValues;
 import android.content.Context;
 import android.database.ContentObserver;
 import android.database.Cursor;
@@ -26,6 +25,7 @@
 import android.util.Log;
 
 import com.android.contacts.compat.ProviderStatusCompat;
+import com.android.contactsbind.FeedbackHelper;
 
 import com.google.common.collect.Lists;
 
@@ -231,6 +231,10 @@
                     }
                 }
                 return false;
+            } catch (SecurityException e) {
+                FeedbackHelper.sendFeedback(mContext, TAG,
+                        "Security exception when querying provider status", e);
+                return false;
             } finally {
                 synchronized (mSignal) {
                     mSignal.notifyAll();
diff --git a/src/com/android/contacts/list/UiIntentActions.java b/src/com/android/contacts/list/UiIntentActions.java
index 5539635..b2157fb 100644
--- a/src/com/android/contacts/list/UiIntentActions.java
+++ b/src/com/android/contacts/list/UiIntentActions.java
@@ -29,17 +29,77 @@
             "com.android.contacts.action.LIST_DEFAULT";
 
     /**
+     * The action for contacts list tab.
+     */
+    public static final String LIST_CONTACTS =
+            "com.android.contacts.action.LIST_CONTACTS";
+
+    /**
+     * The action for selecting multiple items (email, phone) from a list.
+     */
+    public static final String ACTION_SELECT_ITEMS =
+            "com.android.contacts.action.ACTION_SELECT_ITEMS";
+
+    /**
      * The action for the contacts list tab.
      */
     public static final String LIST_GROUP_ACTION =
             "com.android.contacts.action.LIST_GROUP";
 
     /**
+     * The send scheme for multi email/phone picker fragment
+     */
+    public static final String SELECTION_SEND_SCHEME =
+            "com.android.contacts.extra.SELECTION_SEND_SCHEME";
+
+    /**
+     * The send title for multi email/phone picker fragment
+     */
+    public static final String SELECTION_SEND_TITLE =
+            "com.android.contacts.extra.SELECTION_SEND_TITLE";
+
+    /**
+     * The item ids for multi select picker fragment/adapter
+     */
+    public static final String SELECTION_ITEM_LIST =
+            "com.android.contacts.extra.SELECTION_ITEM_LIST";
+
+    /**
+     * The default selection flags for the multi select picker fragment/adapter
+     */
+    public static final String SELECTION_DEFAULT_SELECTION =
+            "com.android.contacts.extra.SELECTION_DEFAULT_SELECTION";
+
+    /**
      * When in LIST_GROUP_ACTION mode, this is the group to display.
      */
     public static final String GROUP_NAME_EXTRA_KEY = "com.android.contacts.extra.GROUP";
 
     /**
+     * The account name used to filter potential new group members.
+     */
+    public static final String GROUP_ACCOUNT_NAME =
+            "com.android.contacts.extra.GROUP_ACCOUNT_NAME";
+
+    /**
+     * The account type used to filter potential new group members.
+     */
+    public static final String GROUP_ACCOUNT_TYPE =
+            "com.android.contacts.extra.GROUP_ACCOUNT_TYPE";
+
+    /**
+     * The account data set used to filter potential new group members.
+     */
+    public static final String GROUP_ACCOUNT_DATA_SET =
+            "com.android.contacts.extra.GROUP_ACCOUNT_DATA_SET";
+
+    /**
+     * The contact IDs for existing group members.
+     */
+    public static final String GROUP_CONTACT_IDS =
+            "com.android.contacts.extra.GROUP_CONTACT_IDS";
+
+    /**
      * The action for the all contacts list tab.
      */
     public static final String LIST_ALL_CONTACTS_ACTION =
@@ -99,4 +159,7 @@
      */
     public static final String TARGET_CONTACT_ID_EXTRA_KEY
             = "com.android.contacts.action.CONTACT_ID";
+
+    public static final String TARGET_CONTACT_IDS_EXTRA_KEY
+            = "com.android.contacts.action.CONTACT_IDS";
 }
\ No newline at end of file
diff --git a/src/com/android/contacts/location/CountryDetector.java b/src/com/android/contacts/location/CountryDetector.java
new file mode 100644
index 0000000..9d08fc0
--- /dev/null
+++ b/src/com/android/contacts/location/CountryDetector.java
@@ -0,0 +1,126 @@
+package com.android.contacts.location;
+
+import android.content.Context;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import java.util.Locale;
+
+/**
+ * This class is used to detect the country where the user is. It is a simplified version of the
+ * country detector service in the framework. The sources of country location are queried in the
+ * following order of reliability:
+ * <ul>
+ * <li>Mobile network</li>
+ * <li>SIM's country</li>
+ * <li>User's default locale</li>
+ * </ul>
+ *
+ * As far as possible this class tries to replicate the behavior of the system's country detector
+ * service:
+ * 1) Order in priority of sources of country location
+ * 2) Mobile network information provided by CDMA phones is ignored
+ */
+public class CountryDetector {
+    private static final String TAG = "CountryDetector";
+
+    private static CountryDetector sInstance;
+
+    private final Context mContext;
+    private final LocaleProvider mLocaleProvider;
+    private final TelephonyManager mTelephonyManager;
+
+    // Used as a default country code when all the sources of country data have failed in the
+    // exceedingly rare event that the device does not have a default locale set for some reason.
+    private final String DEFAULT_COUNTRY_ISO = "US";
+
+    /**
+     * Class that can be used to return the user's default locale. This is in its own class so that
+     * it can be mocked out.
+     */
+    public static class LocaleProvider {
+        public Locale getDefaultLocale() {
+            return Locale.getDefault();
+        }
+    }
+
+    private CountryDetector(Context context) {
+        this (context, (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE),
+                new LocaleProvider());
+    }
+
+    private CountryDetector(Context context, TelephonyManager telephonyManager,
+            LocaleProvider localeProvider) {
+        mTelephonyManager = telephonyManager;
+        mLocaleProvider = localeProvider;
+        mContext = context;
+    }
+
+    /**
+     * Factory method for {@link CountryDetector} that allows the caller to provide mock objects.
+     */
+    public CountryDetector getInstanceForTest(Context context, TelephonyManager telephonyManager,
+            LocaleProvider localeProvider) {
+        return new CountryDetector(context, telephonyManager, localeProvider);
+    }
+
+    /**
+     * Returns the instance of the country detector. {@link #initialize(Context)} must have been
+     * called previously.
+     *
+     * @return the initialized country detector.
+     */
+    public synchronized static CountryDetector getInstance(Context context) {
+        if (sInstance == null) {
+            sInstance = new CountryDetector(context.getApplicationContext());
+        }
+        return sInstance;
+    }
+
+    public String getCurrentCountryIso() {
+        String result = null;
+        if (isNetworkCountryCodeAvailable()) {
+            result = getNetworkBasedCountryIso();
+        }
+        if (TextUtils.isEmpty(result)) {
+            result = getSimBasedCountryIso();
+        }
+        if (TextUtils.isEmpty(result)) {
+            result = getLocaleBasedCountryIso();
+        }
+        if (TextUtils.isEmpty(result)) {
+            result = DEFAULT_COUNTRY_ISO;
+        }
+        return result.toUpperCase(Locale.US);
+    }
+
+    /**
+     * @return the country code of the current telephony network the user is connected to.
+     */
+    private String getNetworkBasedCountryIso() {
+        return mTelephonyManager.getNetworkCountryIso();
+    }
+
+    /**
+     * @return the country code of the SIM card currently inserted in the device.
+     */
+    private String getSimBasedCountryIso() {
+        return mTelephonyManager.getSimCountryIso();
+    }
+
+    /**
+     * @return the country code of the user's currently selected locale.
+     */
+    private String getLocaleBasedCountryIso() {
+        Locale defaultLocale = mLocaleProvider.getDefaultLocale();
+        if (defaultLocale != null) {
+            return defaultLocale.getCountry();
+        }
+        return null;
+    }
+
+    private boolean isNetworkCountryCodeAvailable() {
+        // On CDMA TelephonyManager.getNetworkCountryIso() just returns the SIM's country code.
+        return mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM;
+    }
+}
diff --git a/src/com/android/contacts/logging/EditorEvent.java b/src/com/android/contacts/logging/EditorEvent.java
new file mode 100644
index 0000000..48308ac
--- /dev/null
+++ b/src/com/android/contacts/logging/EditorEvent.java
@@ -0,0 +1,40 @@
+/*
+ * 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.logging;
+
+import com.google.common.base.MoreObjects;
+
+public class EditorEvent {
+
+    /** The editor event type that is logged. */
+    public int eventType;
+
+    /** The number of raw contacts shown in the raw contacts picker. */
+    public int numberRawContacts;
+
+    public static final class EventType {
+        public static final int UNKNOWN = 0;
+        public static final int SHOW_RAW_CONTACT_PICKER = 1;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("eventType", eventType)
+                .add("numberRawContacts", numberRawContacts)
+                .toString();
+    }
+}
diff --git a/src/com/android/contacts/logging/ListEvent.java b/src/com/android/contacts/logging/ListEvent.java
new file mode 100644
index 0000000..50da98f
--- /dev/null
+++ b/src/com/android/contacts/logging/ListEvent.java
@@ -0,0 +1,94 @@
+/*
+ * 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.logging;
+
+import com.google.common.base.MoreObjects;
+
+/**
+ * Describes how user view and use a list
+ */
+public final class ListEvent {
+
+    /** The type of action taken by the user. **/
+    public int actionType;
+
+    /** The type of list the user is viewing. **/
+    public int listType;
+
+    /** The number of contacts in the list. **/
+    public int count;
+
+    /** The index of contact clicked by user. **/
+    public int clickedIndex = -1;
+
+    /** The number of contact selected when user takes an action (link, delete, share, etc). **/
+    public int numSelected;
+
+    // Should match ContactsExtension.ListEvent.ActionType values in
+    // http://cs/google3/logs/proto/wireless/android/contacts/contacts_extensions.proto
+    public static final class ActionType {
+        public static final int UNKNOWN = 0;
+        public static final int LOAD = 1;
+        public static final int CLICK = 2;
+        public static final int SELECT = 3;
+        public static final int SHARE = 4;
+        public static final int DELETE = 5;
+        public static final int LINK = 6;
+        public static final int REMOVE_LABEL = 7;
+
+        private ActionType() {
+        }
+    }
+
+    // Should match ContactsExtension.ListEvent.ListType values in
+    // http://cs/google3/logs/proto/wireless/android/contacts/contacts_extensions.proto
+    public static final class ListType {
+        public static final int UNKNOWN_LIST = 0;
+        public static final int ALL_CONTACTS = 1;
+        public static final int ACCOUNT = 2;
+        public static final int GROUP = 3;
+        public static final int SEARCH_RESULT = 4;
+        public static final int DEVICE = 5;
+        public static final int CUSTOM = 6;
+        public static final int STARRED = 7;
+        public static final int PHONE_NUMBERS = 8;
+        public static final int SINGLE_CONTACT = 9;
+        public static final int PICK_CONTACT = 10;
+        public static final int PICK_CONTACT_FOR_SHORTCUT = 11;
+        public static final int PICK_PHONE = 12;
+        public static final int PICK_EMAIL = 13;
+        public static final int PICK_POSTAL = 14;
+        public static final int PICK_JOIN = 15;
+        public static final int PICK_GROUP_MEMBERS = 16;
+
+        private ListType() {
+        }
+    }
+
+    public ListEvent() {
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("actionType", actionType)
+                .add("listType", listType)
+                .add("count", count)
+                .add("clickedIndex", clickedIndex)
+                .add("numSelected", numSelected)
+                .toString();
+    }
+}
diff --git a/src/com/android/contacts/logging/Logger.java b/src/com/android/contacts/logging/Logger.java
new file mode 100644
index 0000000..366c19b
--- /dev/null
+++ b/src/com/android/contacts/logging/Logger.java
@@ -0,0 +1,114 @@
+/*
+ * 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.logging;
+
+import android.app.Activity;
+
+import com.android.contacts.logging.ScreenEvent.ScreenType;
+import com.android.contactsbind.ObjectFactory;
+
+/**
+ * Logs analytics events.
+ */
+public abstract class Logger {
+    public static final String TAG = "Logger";
+
+    private static Logger getInstance() {
+        return ObjectFactory.getLogger();
+    }
+
+    /**
+     * Logs an event indicating that a screen was displayed.
+     *
+     * @param screenType integer identifier of the displayed screen
+     * @param activity Parent activity of the displayed screen.
+     */
+    public static void logScreenView(Activity activity, int screenType) {
+        logScreenView(activity, screenType, ScreenType.UNKNOWN);
+    }
+
+    /**
+     * @param previousScreenType integer identifier of the displayed screen the user came from.
+     */
+    public static void logScreenView(Activity activity, int screenType, int previousScreenType) {
+        final Logger logger = getInstance();
+        if (logger != null) {
+            logger.logScreenViewImpl(screenType, previousScreenType);
+        }
+    }
+
+    /**
+     * Logs the results of a user search for a particular contact.
+     */
+    public static void logSearchEvent(SearchState searchState) {
+        final Logger logger = getInstance();
+        if (logger != null) {
+            logger.logSearchEventImpl(searchState);
+        }
+    }
+
+    /**
+     * Logs how users view and use a contacts list. See {@link ListEvent} for definition of
+     * parameters.
+     */
+    public static void logListEvent(int actionType, int listType, int count, int clickedIndex,
+            int numSelected) {
+        final ListEvent event = new ListEvent();
+        event.actionType = actionType;
+        event.listType = listType;
+        event.count = count;
+        event.clickedIndex = clickedIndex;
+        event.numSelected = numSelected;
+
+        final Logger logger = getInstance();
+        if (logger != null) {
+            logger.logListEventImpl(event);
+        }
+    }
+
+    /**
+     * Logs an event on QuickContact. See {@link QuickContactEvent} for definition of parameters.
+     */
+    public static void logQuickContactEvent(String referrer, int contactType, int cardType,
+            int actionType, String thirdPartyAction) {
+        final Logger logger = getInstance();
+        if (logger != null) {
+            final QuickContactEvent event = new QuickContactEvent();
+            event.referrer = referrer == null ? "Unknown" : referrer;
+            event.contactType = contactType;
+            event.cardType = cardType;
+            event.actionType = actionType;
+            event.thirdPartyAction = thirdPartyAction == null ? "" : thirdPartyAction;
+            logger.logQuickContactEventImpl(event);
+        }
+    }
+
+    public static void logEditorEvent(int eventType, int numberRawContacts) {
+        final Logger logger = getInstance();
+        if (logger != null) {
+            final EditorEvent event = new EditorEvent();
+            event.eventType = eventType;
+            event.numberRawContacts = numberRawContacts;
+            logger.logEditorEventImpl(event);
+        }
+    }
+
+    public abstract void logScreenViewImpl(int screenType, int previousScreenType);
+    public abstract void logSearchEventImpl(SearchState searchState);
+    public abstract void logListEventImpl(ListEvent event);
+    public abstract void logQuickContactEventImpl(QuickContactEvent event);
+    public abstract void logEditorEventImpl(EditorEvent event);
+}
diff --git a/src/com/android/contacts/logging/QuickContactEvent.java b/src/com/android/contacts/logging/QuickContactEvent.java
new file mode 100644
index 0000000..05d7308
--- /dev/null
+++ b/src/com/android/contacts/logging/QuickContactEvent.java
@@ -0,0 +1,89 @@
+/*
+ * 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.logging;
+
+import com.google.common.base.MoreObjects;
+
+/**
+ * Describes how user views and takes action in Quick contact
+ */
+public final class QuickContactEvent {
+
+    /** The package name that QuickContact is launched from. **/
+    public String referrer;
+
+    /** The type of the contact displayed in QuickContact. **/
+    public int contactType;
+
+    /** The type of the card displayed in QuickContact. **/
+    public int cardType;
+
+    /** The type of the user action in QuickContact. **/
+    public int actionType;
+
+    /** The third party action that a user takes. **/
+    public String thirdPartyAction;
+
+    // Should match ContactsExtension.QuickContactEvent values in
+    // http://cs/google3/logs/proto/wireless/android/contacts/contacts_extensions.proto
+    public static final class ContactType {
+        public static final int UNKNOWN_TYPE = 0;
+        public static final int EDITABLE = 1;
+        public static final int INVISIBLE_AND_ADDABLE = 2;
+        public static final int DIRECTORY = 3;
+    }
+
+    public static final class CardType {
+        public static final int UNKNOWN_CARD = 0;
+        public static final int NO_CONTACT = 1;
+        public static final int CONTACT = 2;
+        public static final int RECENT = 3;
+        public static final int ABOUT = 4;
+        public static final int PERMISSION = 5;
+    }
+
+    public static final class ActionType {
+        public static final int UNKNOWN_ACTION = 0;
+        public static final int START = 1;
+        public static final int STAR = 2;
+        public static final int UNSTAR = 3;
+        public static final int EDIT = 4;
+        public static final int ADD = 5;
+        public static final int REMOVE = 6;
+        public static final int SHARE = 7;
+        public static final int SHORTCUT = 8;
+        public static final int HELP = 9;
+        public static final int CALL = 10;
+        public static final int SMS = 11;
+        public static final int VIDEOCALL = 12;
+        public static final int EMAIL = 13;
+        public static final int SIPCALL = 14;
+        public static final int ADDRESS = 15;
+        public static final int DIRECTIONS = 16;
+        public static final int THIRD_PARTY = 17;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("referrer", referrer)
+                .add("contactType", contactType)
+                .add("cardType", cardType)
+                .add("actionType", actionType)
+                .add("thirdPartyAction", thirdPartyAction)
+                .toString();
+    }
+}
diff --git a/src/com/android/contacts/logging/ScreenEvent.java b/src/com/android/contacts/logging/ScreenEvent.java
new file mode 100644
index 0000000..bdea66d
--- /dev/null
+++ b/src/com/android/contacts/logging/ScreenEvent.java
@@ -0,0 +1,38 @@
+/*
+ * 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.logging;
+
+/**
+ * Stores constants identifying individual screens/dialogs/fragments in the application, and also
+ * provides a mapping of integer id -> screen name mappings for analytics purposes.
+ */
+public class ScreenEvent {
+
+    // Should match ContactsExtension.ScreenEvent.ScreenType values in
+    // http://cs/google3/logs/proto/wireless/android/contacts/contacts_extensions.proto
+    public static class ScreenType {
+        public static final int UNKNOWN = 0;
+        public static final int SEARCH = 1;
+        public static final int SEARCH_EXIT = 2;
+        public static final int FAVORITES = 3;
+        public static final int ALL_CONTACTS = 4;
+        public static final int QUICK_CONTACT = 5;
+        public static final int EDITOR = 6;
+        public static final int LIST_ACCOUNT = 8;
+        public static final int LIST_GROUP = 9;
+        public static final int ME_CONTACT = 10;
+    }
+}
diff --git a/src/com/android/contacts/logging/SearchState.java b/src/com/android/contacts/logging/SearchState.java
new file mode 100644
index 0000000..8b1872d
--- /dev/null
+++ b/src/com/android/contacts/logging/SearchState.java
@@ -0,0 +1,109 @@
+/*
+ * 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.logging;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import com.google.common.base.MoreObjects;
+
+/**
+ * Describes the results of a user search for a particular contact.
+ */
+public final class SearchState implements Parcelable {
+
+    /** The length of the query string input by the user. */
+    public int queryLength;
+
+    /** The number of partitions (groups of results) presented to the user. */
+    public int numPartitions;
+
+    /** The total number of results (across all partitions) presented to the user. */
+    public int numResults;
+
+    /** The number of results presented to the user in the partition that was selected. */
+    public int numResultsInSelectedPartition = -1;
+
+    /** The zero-based index of the partition in which the clicked query result resides. */
+    public int selectedPartition = -1;
+
+    /** The index of the clicked query result within its partition. */
+    public int selectedIndexInPartition = -1;
+
+    /**
+     * The zero-based index of the clicked query result among all results displayed to the user
+     * (across partitions).
+     */
+    public int selectedIndex = -1;
+
+    public static final Creator<SearchState> CREATOR = new Creator<SearchState>() {
+        @Override
+        public SearchState createFromParcel(Parcel in) {
+            return new SearchState(in);
+        }
+
+        @Override
+        public SearchState[] newArray(int size) {
+            return new SearchState[size];
+        }
+    };
+
+    public SearchState() {
+    }
+
+    protected SearchState(Parcel source) {
+        readFromParcel(source);
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("queryLength", queryLength)
+                .add("numPartitions", numPartitions)
+                .add("numResults", numResults)
+                .add("numResultsInSelectedPartition", numResultsInSelectedPartition)
+                .add("selectedPartition", selectedPartition)
+                .add("selectedIndexInPartition", selectedIndexInPartition)
+                .add("selectedIndex", selectedIndex)
+                .toString();
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(queryLength);
+        dest.writeInt(numPartitions);
+        dest.writeInt(numResults);
+        dest.writeInt(numResultsInSelectedPartition);
+        dest.writeInt(selectedPartition);
+        dest.writeInt(selectedIndexInPartition);
+        dest.writeInt(selectedIndex);
+    }
+
+    private void readFromParcel(Parcel source) {
+        queryLength = source.readInt();
+        numPartitions = source.readInt();
+        numResults = source.readInt();
+        numResultsInSelectedPartition = source.readInt();
+        selectedPartition = source.readInt();
+        selectedIndexInPartition = source.readInt();
+        selectedIndex = source.readInt();
+    }
+}
diff --git a/src/com/android/contacts/model/AccountTypeManager.java b/src/com/android/contacts/model/AccountTypeManager.java
new file mode 100644
index 0000000..b442e4f
--- /dev/null
+++ b/src/com/android/contacts/model/AccountTypeManager.java
@@ -0,0 +1,710 @@
+/*
+ * Copyright (C) 2009 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.Account;
+import android.accounts.AccountManager;
+import android.accounts.OnAccountsUpdateListener;
+import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+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 android.support.v4.content.ContextCompat;
+import android.support.v4.content.LocalBroadcastManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.Experiments;
+import com.android.contacts.R;
+import com.android.contacts.list.ContactListFilterController;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountTypeProvider;
+import com.android.contacts.model.account.AccountTypeWithDataSet;
+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.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.Predicate;
+import com.google.common.collect.Collections2;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.ListeningExecutorService;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.Executor;
+
+import javax.annotation.Nullable;
+
+/**
+ * Singleton holder for all parsed {@link AccountType} available on the
+ * system, typically filled through {@link PackageManager} queries.
+ */
+public abstract class AccountTypeManager {
+    static final String TAG = "AccountTypeManager";
+
+    private static final Object mInitializationLock = new Object();
+    private static AccountTypeManager mAccountTypeManager;
+
+    public static final String BROADCAST_ACCOUNTS_CHANGED = AccountTypeManager.class.getName() +
+            ".AccountsChanged";
+
+    public enum AccountFilter implements Predicate<AccountInfo> {
+        ALL {
+            @Override
+            public boolean apply(@Nullable AccountInfo input) {
+                return input != null;
+            }
+        },
+        CONTACTS_WRITABLE {
+            @Override
+            public boolean apply(@Nullable AccountInfo input) {
+                return input != null && input.getType().areContactsWritable();
+            }
+        },
+        GROUPS_WRITABLE {
+            @Override
+            public boolean apply(@Nullable AccountInfo input) {
+                return input != null && input.getType().isGroupMembershipEditable();
+            }
+        };
+    }
+
+    /**
+     * Requests the singleton instance of {@link AccountTypeManager} with data bound from
+     * the available authenticators. This method can safely be called from the UI thread.
+     */
+    public static AccountTypeManager getInstance(Context context) {
+        if (!hasRequiredPermissions(context)) {
+            // Hopefully any component that depends on the values returned by this class
+            // will be restarted if the permissions change.
+            return EMPTY;
+        }
+        synchronized (mInitializationLock) {
+            if (mAccountTypeManager == null) {
+                context = context.getApplicationContext();
+                mAccountTypeManager = new AccountTypeManagerImpl(context);
+            }
+        }
+        return mAccountTypeManager;
+    }
+
+    /**
+     * Set the instance of account type manager.  This is only for and should only be used by unit
+     * tests.  While having this method is not ideal, it's simpler than the alternative of
+     * holding this as a service in the ContactsApplication context class.
+     *
+     * @param mockManager The mock AccountTypeManager.
+     */
+    public static void setInstanceForTest(AccountTypeManager mockManager) {
+        synchronized (mInitializationLock) {
+            mAccountTypeManager = mockManager;
+        }
+    }
+
+    private static final AccountTypeManager EMPTY = new AccountTypeManager() {
+
+        @Override
+        public ListenableFuture<List<AccountInfo>> getAccountsAsync() {
+            return Futures.immediateFuture(Collections.<AccountInfo>emptyList());
+        }
+
+        @Override
+        public ListenableFuture<List<AccountInfo>> filterAccountsAsync(
+                Predicate<AccountInfo> filter) {
+            return Futures.immediateFuture(Collections.<AccountInfo>emptyList());
+        }
+
+        @Override
+        public AccountInfo getAccountInfoForAccount(AccountWithDataSet account) {
+            return null;
+        }
+
+        @Override
+        public Account getDefaultGoogleAccount() {
+            return null;
+        }
+
+        @Override
+        public AccountType getAccountType(AccountTypeWithDataSet accountTypeWithDataSet) {
+            return null;
+        }
+    };
+
+    /**
+     * Returns the list of all accounts (if contactWritableOnly is false) or just the list of
+     * contact writable accounts (if contactWritableOnly is true).
+     *
+     * <p>TODO(mhagerott) delete this method. It's left in place to prevent build breakages when
+     * this change is automerged. Usages of this method in downstream branches should be
+     * replaced with an asynchronous account loading pattern</p>
+     */
+    public List<AccountWithDataSet> getAccounts(boolean contactWritableOnly) {
+        return contactWritableOnly
+                ? blockForWritableAccounts()
+                : AccountInfo.extractAccounts(Futures.getUnchecked(getAccountsAsync()));
+    }
+
+    /**
+     * Returns all contact writable accounts
+     *
+     * <p>In general this method should be avoided. It exists to support some legacy usages of
+     * accounts in infrequently used features where refactoring to asynchronous loading is
+     * not justified. The chance that this will actually block is pretty low if the app has been
+     * launched previously</p>
+     */
+    public List<AccountWithDataSet> blockForWritableAccounts() {
+        return AccountInfo.extractAccounts(
+                Futures.getUnchecked(filterAccountsAsync(AccountFilter.CONTACTS_WRITABLE)));
+    }
+
+    /**
+     * Loads accounts in background and returns future that will complete with list of all accounts
+     */
+    public abstract ListenableFuture<List<AccountInfo>> getAccountsAsync();
+
+    /**
+     * Loads accounts and applies the fitler returning only for which the predicate is true
+     */
+    public abstract ListenableFuture<List<AccountInfo>> filterAccountsAsync(
+            Predicate<AccountInfo> filter);
+
+    public abstract AccountInfo getAccountInfoForAccount(AccountWithDataSet account);
+
+    /**
+     * Returns the default google account.
+     */
+    public abstract Account getDefaultGoogleAccount();
+
+    /**
+     * Returns the Google Accounts.
+     *
+     * <p>This method exists in addition to filterAccountsByTypeAsync because it should be safe
+     * to call synchronously.
+     * </p>
+     */
+    public List<AccountInfo> getWritableGoogleAccounts() {
+        // This implementation may block and should be overridden by the Impl class
+        return Futures.getUnchecked(filterAccountsAsync(new Predicate<AccountInfo>() {
+            @Override
+            public boolean apply(@Nullable AccountInfo input) {
+                return  input.getType().areContactsWritable() &&
+                        GoogleAccountType.ACCOUNT_TYPE.equals(input.getType().accountType);
+            }
+        }));
+    }
+
+    /**
+     * Returns true if there are real accounts (not "local" account) in the list of accounts.
+     */
+    public boolean hasNonLocalAccount() {
+        final List<AccountWithDataSet> allAccounts =
+                AccountInfo.extractAccounts(Futures.getUnchecked(getAccountsAsync()));
+        if (allAccounts == null || allAccounts.size() == 0) {
+            return false;
+        }
+        if (allAccounts.size() > 1) {
+            return true;
+        }
+        return !allAccounts.get(0).isNullAccount();
+    }
+
+    static Account getDefaultGoogleAccount(AccountManager accountManager,
+            SharedPreferences prefs, String defaultAccountKey) {
+        // Get all the google accounts on the device
+        final Account[] accounts = accountManager.getAccountsByType(
+                GoogleAccountType.ACCOUNT_TYPE);
+        if (accounts == null || accounts.length == 0) {
+            return null;
+        }
+
+        // Get the default account from preferences
+        final String defaultAccount = prefs.getString(defaultAccountKey, null);
+        final AccountWithDataSet accountWithDataSet = defaultAccount == null ? null :
+                AccountWithDataSet.unstringify(defaultAccount);
+
+        // Look for an account matching the one from preferences
+        if (accountWithDataSet != null) {
+            for (int i = 0; i < accounts.length; i++) {
+                if (TextUtils.equals(accountWithDataSet.name, accounts[i].name)
+                        && TextUtils.equals(accountWithDataSet.type, accounts[i].type)) {
+                    return accounts[i];
+                }
+            }
+        }
+
+        // Just return the first one
+        return accounts[0];
+    }
+
+    public abstract AccountType getAccountType(AccountTypeWithDataSet accountTypeWithDataSet);
+
+    public final AccountType getAccountType(String accountType, String dataSet) {
+        return getAccountType(AccountTypeWithDataSet.get(accountType, dataSet));
+    }
+
+    public final AccountType getAccountTypeForAccount(AccountWithDataSet account) {
+        if (account != null) {
+            return getAccountType(account.getAccountTypeWithDataSet());
+        }
+        return getAccountType(null, null);
+    }
+
+    /**
+     * Find the best {@link DataKind} matching the requested
+     * {@link AccountType#accountType}, {@link AccountType#dataSet}, and {@link DataKind#mimeType}.
+     * If no direct match found, we try searching {@link FallbackAccountType}.
+     */
+    public DataKind getKindOrFallback(AccountType type, String mimeType) {
+        return type == null ? null : type.getKindForMimetype(mimeType);
+    }
+
+    /**
+     * Returns whether the specified account still exists
+     */
+    public boolean exists(AccountWithDataSet account) {
+        final List<AccountWithDataSet> accounts =
+                AccountInfo.extractAccounts(Futures.getUnchecked(getAccountsAsync()));
+        return accounts.contains(account);
+    }
+
+    /**
+     * Returns whether the specified account is writable
+     *
+     * <p>This checks that the account still exists and that
+     * {@link AccountType#areContactsWritable()} is true</p>
+     */
+    public boolean isWritable(AccountWithDataSet account) {
+        return exists(account) && getAccountInfoForAccount(account).getType().areContactsWritable();
+    }
+
+    public boolean hasGoogleAccount() {
+        return getDefaultGoogleAccount() != null;
+    }
+
+    private static boolean hasRequiredPermissions(Context context) {
+        final boolean canGetAccounts = ContextCompat.checkSelfPermission(context,
+                android.Manifest.permission.GET_ACCOUNTS) == PackageManager.PERMISSION_GRANTED;
+        final boolean canReadContacts = ContextCompat.checkSelfPermission(context,
+                android.Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED;
+        return canGetAccounts && canReadContacts;
+    }
+
+    public static Predicate<AccountInfo> writableFilter() {
+        return AccountFilter.CONTACTS_WRITABLE;
+    }
+
+    public static Predicate<AccountInfo> groupWritableFilter() {
+        return AccountFilter.GROUPS_WRITABLE;
+    }
+}
+
+class AccountTypeManagerImpl extends AccountTypeManager
+        implements OnAccountsUpdateListener, SyncStatusObserver {
+
+    private final Context mContext;
+    private final AccountManager mAccountManager;
+    private final DeviceLocalAccountLocator mLocalAccountLocator;
+    private final Executor mMainThreadExecutor;
+    private final ListeningExecutorService mExecutor;
+    private AccountTypeProvider mTypeProvider;
+
+    private final AccountType mFallbackAccountType;
+
+    private ListenableFuture<List<AccountWithDataSet>> mLocalAccountsFuture;
+    private ListenableFuture<AccountTypeProvider> mAccountTypesFuture;
+
+    private List<AccountWithDataSet> mLocalAccounts = new ArrayList<>();
+    private List<AccountWithDataSet> mAccountManagerAccounts = new ArrayList<>();
+
+    private final Handler mMainThreadHandler = new Handler(Looper.getMainLooper());
+
+    private final Function<AccountTypeProvider, List<AccountWithDataSet>> mAccountsExtractor =
+            new Function<AccountTypeProvider, List<AccountWithDataSet>>() {
+                @Nullable
+                @Override
+                public List<AccountWithDataSet> apply(@Nullable AccountTypeProvider typeProvider) {
+                    return getAccountsWithDataSets(mAccountManager.getAccounts(), typeProvider);
+                }
+            };
+
+
+    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            // Don't use reloadAccountTypesIfNeeded when packages change in case a contacts.xml
+            // was updated.
+            reloadAccountTypes();
+        }
+    };
+
+    /**
+     * Internal constructor that only performs initial parsing.
+     */
+    public AccountTypeManagerImpl(Context context) {
+        mContext = context;
+        mLocalAccountLocator = DeviceLocalAccountLocator.create(context);
+        mTypeProvider = new AccountTypeProvider(context);
+        mFallbackAccountType = new FallbackAccountType(context);
+
+        mAccountManager = AccountManager.get(mContext);
+
+        mExecutor = ContactsExecutors.getDefaultThreadPoolExecutor();
+        mMainThreadExecutor = ContactsExecutors.newHandlerExecutor(mMainThreadHandler);
+
+        // Request updates when packages or accounts change
+        IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
+        filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+        filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
+        filter.addDataScheme("package");
+        mContext.registerReceiver(mBroadcastReceiver, filter);
+        IntentFilter sdFilter = new IntentFilter();
+        sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
+        sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
+        mContext.registerReceiver(mBroadcastReceiver, sdFilter);
+
+        // Request updates when locale is changed so that the order of each field will
+        // be able to be changed on the locale change.
+        filter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
+        mContext.registerReceiver(mBroadcastReceiver, filter);
+
+        mAccountManager.addOnAccountsUpdatedListener(this, mMainThreadHandler, false);
+
+        ContentResolver.addStatusChangeListener(ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS, this);
+
+        if (Flags.getInstance().getBoolean(Experiments.CP2_DEVICE_ACCOUNT_DETECTION_ENABLED)) {
+            // Observe changes to RAW_CONTACTS so that we will update the list of "Device" accounts
+            // if a new device contact is added.
+            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();
+    }
+
+    @Override
+    public void onStatusChanged(int which) {
+        reloadAccountTypesIfNeeded();
+    }
+
+    /* This notification will arrive on the UI thread */
+    public void onAccountsUpdated(Account[] accounts) {
+        reloadLocalAccounts();
+        maybeNotifyAccountsUpdated(mAccountManagerAccounts,
+                getAccountsWithDataSets(accounts, mTypeProvider));
+    }
+
+    private void maybeNotifyAccountsUpdated(List<AccountWithDataSet> current,
+            List<AccountWithDataSet> update) {
+        if (Objects.equal(current, update)) {
+            return;
+        }
+        current.clear();
+        current.addAll(update);
+        notifyAccountsChanged();
+    }
+
+    private void notifyAccountsChanged() {
+        ContactListFilterController.getInstance(mContext).checkFilterValidity(true);
+        LocalBroadcastManager.getInstance(mContext).sendBroadcast(
+                new Intent(BROADCAST_ACCOUNTS_CHANGED));
+    }
+
+    private synchronized void startLoadingIfNeeded() {
+        if (mTypeProvider == null && mAccountTypesFuture == null) {
+            reloadAccountTypesIfNeeded();
+        }
+        if (mLocalAccountsFuture == null) {
+            reloadLocalAccounts();
+        }
+    }
+
+    private synchronized void loadAccountTypes() {
+        mTypeProvider = new AccountTypeProvider(mContext);
+
+        mAccountTypesFuture = mExecutor.submit(new Callable<AccountTypeProvider>() {
+            @Override
+            public AccountTypeProvider call() throws Exception {
+                // This will request the AccountType for each Account forcing them to be loaded
+                getAccountsWithDataSets(mAccountManager.getAccounts(), mTypeProvider);
+                return mTypeProvider;
+            }
+        });
+    }
+
+    private FutureCallback<List<AccountWithDataSet>> newAccountsUpdatedCallback(
+            final List<AccountWithDataSet> currentAccounts) {
+        return new FutureCallback<List<AccountWithDataSet>>() {
+            @Override
+            public void onSuccess(List<AccountWithDataSet> result) {
+                maybeNotifyAccountsUpdated(currentAccounts, result);
+            }
+
+            @Override
+            public void onFailure(Throwable t) {
+            }
+        };
+    }
+
+    private synchronized void reloadAccountTypesIfNeeded() {
+        if (mTypeProvider == null || mTypeProvider.shouldUpdate(
+                mAccountManager.getAuthenticatorTypes(), ContentResolver.getSyncAdapterTypes())) {
+            reloadAccountTypes();
+        }
+    }
+
+    private synchronized void reloadAccountTypes() {
+        loadAccountTypes();
+        Futures.addCallback(
+                Futures.transform(mAccountTypesFuture, mAccountsExtractor),
+                newAccountsUpdatedCallback(mAccountManagerAccounts),
+                mMainThreadExecutor);
+    }
+
+    private synchronized void loadLocalAccounts() {
+        mLocalAccountsFuture = mExecutor.submit(new Callable<List<AccountWithDataSet>>() {
+            @Override
+            public List<AccountWithDataSet> call() throws Exception {
+                return mLocalAccountLocator.getDeviceLocalAccounts();
+            }
+        });
+    }
+
+    private synchronized void reloadLocalAccounts() {
+        loadLocalAccounts();
+        Futures.addCallback(mLocalAccountsFuture, newAccountsUpdatedCallback(mLocalAccounts),
+                mMainThreadExecutor);
+    }
+
+    @Override
+    public ListenableFuture<List<AccountInfo>> getAccountsAsync() {
+        return getAllAccountsAsyncInternal();
+    }
+
+    private synchronized ListenableFuture<List<AccountInfo>> getAllAccountsAsyncInternal() {
+        startLoadingIfNeeded();
+        final AccountTypeProvider typeProvider = mTypeProvider;
+        final ListenableFuture<List<List<AccountWithDataSet>>> all =
+                Futures.nonCancellationPropagating(
+                        Futures.successfulAsList(
+                                Futures.transform(mAccountTypesFuture, mAccountsExtractor),
+                                mLocalAccountsFuture));
+
+        return Futures.transform(all, new Function<List<List<AccountWithDataSet>>,
+                List<AccountInfo>>() {
+            @Nullable
+            @Override
+            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");
+
+                final List<AccountInfo> result = new ArrayList<>();
+                for (AccountWithDataSet account : input.get(0)) {
+                    result.add(
+                            typeProvider.getTypeForAccount(account).wrapAccount(mContext, account));
+                }
+
+                for (AccountWithDataSet account : input.get(1)) {
+                    result.add(
+                            typeProvider.getTypeForAccount(account).wrapAccount(mContext, account));
+                }
+                AccountInfo.sortAccounts(null, result);
+                return result;
+            }
+        });
+    }
+
+    @Override
+    public ListenableFuture<List<AccountInfo>> filterAccountsAsync(
+            final Predicate<AccountInfo> filter) {
+        return Futures.transform(getAllAccountsAsyncInternal(), new Function<List<AccountInfo>,
+                List<AccountInfo>>() {
+            @Override
+            public List<AccountInfo> apply(List<AccountInfo> input) {
+                return new ArrayList<>(Collections2.filter(input, filter));
+            }
+        }, mExecutor);
+    }
+
+    @Override
+    public AccountInfo getAccountInfoForAccount(AccountWithDataSet account) {
+        if (account == null) {
+            return null;
+        }
+        AccountType type = mTypeProvider.getTypeForAccount(account);
+        if (type == null) {
+            type = mFallbackAccountType;
+        }
+        return type.wrapAccount(mContext, account);
+    }
+
+    private List<AccountWithDataSet> getAccountsWithDataSets(Account[] accounts,
+            AccountTypeProvider typeProvider) {
+        List<AccountWithDataSet> result = new ArrayList<>();
+        for (Account account : accounts) {
+            final List<AccountType> types = typeProvider.getAccountTypes(account.type);
+            for (AccountType type : types) {
+                result.add(new AccountWithDataSet(
+                        account.name, account.type, type.dataSet));
+            }
+        }
+        return result;
+    }
+
+    /**
+     * Returns the default google account specified in preferences, the first google account
+     * if it is not specified in preferences or is no longer on the device, and null otherwise.
+     */
+    @Override
+    public Account getDefaultGoogleAccount() {
+        final SharedPreferences sharedPreferences =
+                mContext.getSharedPreferences(mContext.getPackageName(), Context.MODE_PRIVATE);
+        final String defaultAccountKey =
+                mContext.getResources().getString(R.string.contact_editor_default_account_key);
+        return getDefaultGoogleAccount(mAccountManager, sharedPreferences, defaultAccountKey);
+    }
+
+    @Override
+    public List<AccountInfo> getWritableGoogleAccounts() {
+        final Account[] googleAccounts =
+                mAccountManager.getAccountsByType(GoogleAccountType.ACCOUNT_TYPE);
+        final List<AccountInfo> result = new ArrayList<>();
+        for (Account account : googleAccounts) {
+            final AccountWithDataSet accountWithDataSet = new AccountWithDataSet(
+                    account.name, account.type, null);
+            final AccountType type = mTypeProvider.getTypeForAccount(accountWithDataSet);
+
+            // Accounts with a dataSet (e.g. Google plus accounts) are not writable.
+            result.add(type.wrapAccount(mContext, accountWithDataSet));
+        }
+        return result;
+    }
+
+    /**
+     * Returns true if there are real accounts (not "local" account) in the list of accounts.
+     *
+     * <p>This is overriden for performance since the default implementation blocks until all
+     * accounts are loaded
+     * </p>
+     */
+    @Override
+    public boolean hasNonLocalAccount() {
+        final Account[] accounts = mAccountManager.getAccounts();
+        if (accounts == null) {
+            return false;
+        }
+        for (Account account : accounts) {
+            if (mTypeProvider.supportsContactsSyncing(account.type)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Find the best {@link DataKind} matching the requested
+     * {@link AccountType#accountType}, {@link AccountType#dataSet}, and {@link DataKind#mimeType}.
+     * If no direct match found, we try searching {@link FallbackAccountType}.
+     */
+    @Override
+    public DataKind getKindOrFallback(AccountType type, String mimeType) {
+        DataKind kind = null;
+
+        // Try finding account type and kind matching request
+        if (type != null) {
+            kind = type.getKindForMimetype(mimeType);
+        }
+
+        if (kind == null) {
+            // Nothing found, so try fallback as last resort
+            kind = mFallbackAccountType.getKindForMimetype(mimeType);
+        }
+
+        if (kind == null) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Unknown type=" + type + ", mime=" + mimeType);
+            }
+        }
+
+        return kind;
+    }
+
+    /**
+     * Returns whether the account still exists on the device
+     *
+     * <p>This is overridden for performance. The default implementation loads all accounts then
+     * searches through them for specified. This implementation will only load the types for the
+     * specified AccountType (it may still require blocking on IO in some cases but it shouldn't
+     * be as bad as blocking for all accounts).
+     * </p>
+     */
+    @Override
+    public boolean exists(AccountWithDataSet account) {
+        final Account[] accounts = mAccountManager.getAccountsByType(account.type);
+        for (Account existingAccount : accounts) {
+            if (existingAccount.name.equals(account.name)) {
+                return mTypeProvider.getTypeForAccount(account) != null;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Return {@link AccountType} for the given account type and data set.
+     */
+    @Override
+    public AccountType getAccountType(AccountTypeWithDataSet accountTypeWithDataSet) {
+        final AccountType type = mTypeProvider.getType(
+                accountTypeWithDataSet.accountType, accountTypeWithDataSet.dataSet);
+        return type != null ? type : mFallbackAccountType;
+    }
+}
diff --git a/src/com/android/contacts/model/BuilderWrapper.java b/src/com/android/contacts/model/BuilderWrapper.java
new file mode 100644
index 0000000..4a96c36
--- /dev/null
+++ b/src/com/android/contacts/model/BuilderWrapper.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2015 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.ContentProviderOperation.Builder;
+
+/**
+ * This class is created for the purpose of compatibility and make the type of
+ * ContentProviderOperation available on pre-M SDKs. Since ContentProviderOperation is
+ * usually created by Builder and we don’t have access to the type via Builder, so we need to
+ * create a wrapper class for Builder first and include type. Then we could use the builder and
+ * the type in this class to create a wrapper of ContentProviderOperation.
+ */
+public class BuilderWrapper {
+    private Builder mBuilder;
+    private int mType;
+
+    public BuilderWrapper(Builder builder, int type) {
+        mBuilder = builder;
+        mType = type;
+    }
+
+    public int getType() {
+        return mType;
+    }
+
+    public void setType(int mType) {
+        this.mType = mType;
+    }
+
+    public Builder getBuilder() {
+        return mBuilder;
+    }
+
+    public void setBuilder(Builder mBuilder) {
+        this.mBuilder = mBuilder;
+    }
+}
diff --git a/src/com/android/contacts/model/CPOWrapper.java b/src/com/android/contacts/model/CPOWrapper.java
new file mode 100644
index 0000000..12e00dd
--- /dev/null
+++ b/src/com/android/contacts/model/CPOWrapper.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2015 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.ContentProviderOperation;
+
+/**
+ * This class is created for the purpose of compatibility and make the type of
+ * ContentProviderOperation available on pre-M SDKs.
+ */
+public class CPOWrapper {
+    private ContentProviderOperation mOperation;
+    private int mType;
+
+    public CPOWrapper(ContentProviderOperation builder, int type) {
+        mOperation = builder;
+        mType = type;
+    }
+
+    public int getType() {
+        return mType;
+    }
+
+    public void setType(int type) {
+        this.mType = type;
+    }
+
+    public ContentProviderOperation getOperation() {
+        return mOperation;
+    }
+
+    public void setOperation(ContentProviderOperation operation) {
+        this.mOperation = operation;
+    }
+}
diff --git a/src/com/android/contacts/model/Contact.java b/src/com/android/contacts/model/Contact.java
new file mode 100644
index 0000000..8266123
--- /dev/null
+++ b/src/com/android/contacts/model/Contact.java
@@ -0,0 +1,496 @@
+/*
+ * Copyright (C) 2012 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.ContentValues;
+import android.content.Context;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Directory;
+import android.provider.ContactsContract.DisplayNameSources;
+
+import com.android.contacts.group.GroupMetaData;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.SimAccountType;
+import com.android.contacts.util.DataStatus;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+import java.util.ArrayList;
+
+/**
+ * A Contact represents a single person or logical entity as perceived by the user.  The information
+ * about a contact can come from multiple data sources, which are each represented by a RawContact
+ * object.  Thus, a Contact is associated with a collection of RawContact objects.
+ *
+ * The aggregation of raw contacts into a single contact is performed automatically, and it is
+ * also possible for users to manually split and join raw contacts into various contacts.
+ *
+ * Only the {@link ContactLoader} class can create a Contact object with various flags to allow
+ * partial loading of contact data.  Thus, an instance of this class should be treated as
+ * a read-only object.
+ */
+public class Contact {
+    private enum Status {
+        /** Contact is successfully loaded */
+        LOADED,
+        /** There was an error loading the contact */
+        ERROR,
+        /** Contact is not found */
+        NOT_FOUND,
+    }
+
+    private final Uri mRequestedUri;
+    private final Uri mLookupUri;
+    private final Uri mUri;
+    private final long mDirectoryId;
+    private final String mLookupKey;
+    private final long mId;
+    private final long mNameRawContactId;
+    private final int mDisplayNameSource;
+    private final long mPhotoId;
+    private final String mPhotoUri;
+    private final String mDisplayName;
+    private final String mAltDisplayName;
+    private final String mPhoneticName;
+    private final boolean mStarred;
+    private final Integer mPresence;
+    private ImmutableList<RawContact> mRawContacts;
+    private ImmutableMap<Long,DataStatus> mStatuses;
+
+    private String mDirectoryDisplayName;
+    private String mDirectoryType;
+    private String mDirectoryAccountType;
+    private String mDirectoryAccountName;
+    private int mDirectoryExportSupport;
+
+    private ImmutableList<GroupMetaData> mGroups;
+
+    private byte[] mPhotoBinaryData;
+    /**
+     * Small version of the contact photo loaded from a blob instead of from a file. If a large
+     * contact photo is not available yet, then this has the same value as mPhotoBinaryData.
+     */
+    private byte[] mThumbnailPhotoBinaryData;
+    private final boolean mSendToVoicemail;
+    private final String mCustomRingtone;
+    private final boolean mIsUserProfile;
+
+    private final Contact.Status mStatus;
+    private final Exception mException;
+
+    /**
+     * Constructor for special results, namely "no contact found" and "error".
+     */
+    private Contact(Uri requestedUri, Contact.Status status, Exception exception) {
+        if (status == Status.ERROR && exception == null) {
+            throw new IllegalArgumentException("ERROR result must have exception");
+        }
+        mStatus = status;
+        mException = exception;
+        mRequestedUri = requestedUri;
+        mLookupUri = null;
+        mUri = null;
+        mDirectoryId = -1;
+        mLookupKey = null;
+        mId = -1;
+        mRawContacts = null;
+        mStatuses = null;
+        mNameRawContactId = -1;
+        mDisplayNameSource = DisplayNameSources.UNDEFINED;
+        mPhotoId = -1;
+        mPhotoUri = null;
+        mDisplayName = null;
+        mAltDisplayName = null;
+        mPhoneticName = null;
+        mStarred = false;
+        mPresence = null;
+        mSendToVoicemail = false;
+        mCustomRingtone = null;
+        mIsUserProfile = false;
+    }
+
+    public static Contact forError(Uri requestedUri, Exception exception) {
+        return new Contact(requestedUri, Status.ERROR, exception);
+    }
+
+    public static Contact forNotFound(Uri requestedUri) {
+        return new Contact(requestedUri, Status.NOT_FOUND, null);
+    }
+
+    /**
+     * Constructor to call when contact was found
+     */
+    public Contact(Uri requestedUri, Uri uri, Uri lookupUri, long directoryId, String lookupKey,
+            long id, long nameRawContactId, int displayNameSource, long photoId,
+            String photoUri, String displayName, String altDisplayName, String phoneticName,
+            boolean starred, Integer presence, boolean sendToVoicemail, String customRingtone,
+            boolean isUserProfile) {
+        mStatus = Status.LOADED;
+        mException = null;
+        mRequestedUri = requestedUri;
+        mLookupUri = lookupUri;
+        mUri = uri;
+        mDirectoryId = directoryId;
+        mLookupKey = lookupKey;
+        mId = id;
+        mRawContacts = null;
+        mStatuses = null;
+        mNameRawContactId = nameRawContactId;
+        mDisplayNameSource = displayNameSource;
+        mPhotoId = photoId;
+        mPhotoUri = photoUri;
+        mDisplayName = displayName;
+        mAltDisplayName = altDisplayName;
+        mPhoneticName = phoneticName;
+        mStarred = starred;
+        mPresence = presence;
+        mSendToVoicemail = sendToVoicemail;
+        mCustomRingtone = customRingtone;
+        mIsUserProfile = isUserProfile;
+    }
+
+    public Contact(Uri requestedUri, Contact from) {
+        mRequestedUri = requestedUri;
+
+        mStatus = from.mStatus;
+        mException = from.mException;
+        mLookupUri = from.mLookupUri;
+        mUri = from.mUri;
+        mDirectoryId = from.mDirectoryId;
+        mLookupKey = from.mLookupKey;
+        mId = from.mId;
+        mNameRawContactId = from.mNameRawContactId;
+        mDisplayNameSource = from.mDisplayNameSource;
+        mPhotoId = from.mPhotoId;
+        mPhotoUri = from.mPhotoUri;
+        mDisplayName = from.mDisplayName;
+        mAltDisplayName = from.mAltDisplayName;
+        mPhoneticName = from.mPhoneticName;
+        mStarred = from.mStarred;
+        mPresence = from.mPresence;
+        mRawContacts = from.mRawContacts;
+        mStatuses = from.mStatuses;
+
+        mDirectoryDisplayName = from.mDirectoryDisplayName;
+        mDirectoryType = from.mDirectoryType;
+        mDirectoryAccountType = from.mDirectoryAccountType;
+        mDirectoryAccountName = from.mDirectoryAccountName;
+        mDirectoryExportSupport = from.mDirectoryExportSupport;
+
+        mGroups = from.mGroups;
+
+        mPhotoBinaryData = from.mPhotoBinaryData;
+        mSendToVoicemail = from.mSendToVoicemail;
+        mCustomRingtone = from.mCustomRingtone;
+        mIsUserProfile = from.mIsUserProfile;
+    }
+
+    /**
+     * @param exportSupport See {@link Directory#EXPORT_SUPPORT}.
+     */
+    public void setDirectoryMetaData(String displayName, String directoryType,
+            String accountType, String accountName, int exportSupport) {
+        mDirectoryDisplayName = displayName;
+        mDirectoryType = directoryType;
+        mDirectoryAccountType = accountType;
+        mDirectoryAccountName = accountName;
+        mDirectoryExportSupport = exportSupport;
+    }
+
+    /* package */ void setPhotoBinaryData(byte[] photoBinaryData) {
+        mPhotoBinaryData = photoBinaryData;
+    }
+
+    /* package */ void setThumbnailPhotoBinaryData(byte[] photoBinaryData) {
+        mThumbnailPhotoBinaryData = photoBinaryData;
+    }
+
+    /**
+     * Returns the URI for the contact that contains both the lookup key and the ID. This is
+     * the best URI to reference a contact.
+     * For directory contacts, this is the same a the URI as returned by {@link #getUri()}
+     */
+    public Uri getLookupUri() {
+        return mLookupUri;
+    }
+
+    public String getLookupKey() {
+        return mLookupKey;
+    }
+
+    /**
+     * Returns the contact Uri that was passed to the provider to make the query. This is
+     * the same as the requested Uri, unless the requested Uri doesn't specify a Contact:
+     * If it either references a Raw-Contact or a Person (a pre-Eclair style Uri), this Uri will
+     * always reference the full aggregate contact.
+     */
+    public Uri getUri() {
+        return mUri;
+    }
+
+    /**
+     * Returns the URI for which this {@link ContactLoader) was initially requested.
+     */
+    public Uri getRequestedUri() {
+        return mRequestedUri;
+    }
+
+    /**
+     * Instantiate a new RawContactDeltaList for this contact.
+     */
+    public RawContactDeltaList createRawContactDeltaList() {
+        return RawContactDeltaList.fromIterator(getRawContacts().iterator());
+    }
+
+    /**
+     * Returns the contact ID.
+     */
+    @VisibleForTesting
+    public long getId() {
+        return mId;
+    }
+
+    /**
+     * @return true when an exception happened during loading, in which case
+     *     {@link #getException} returns the actual exception object.
+     *     Note {@link #isNotFound()} and {@link #isError()} are mutually exclusive; If
+     *     {@link #isError()} is {@code true}, {@link #isNotFound()} is always {@code false},
+     *     and vice versa.
+     */
+    public boolean isError() {
+        return mStatus == Status.ERROR;
+    }
+
+    public Exception getException() {
+        return mException;
+    }
+
+    /**
+     * @return true when the specified contact is not found.
+     *     Note {@link #isNotFound()} and {@link #isError()} are mutually exclusive; If
+     *     {@link #isError()} is {@code true}, {@link #isNotFound()} is always {@code false},
+     *     and vice versa.
+     */
+    public boolean isNotFound() {
+        return mStatus == Status.NOT_FOUND;
+    }
+
+    /**
+     * @return true if the specified contact is successfully loaded.
+     *     i.e. neither {@link #isError()} nor {@link #isNotFound()}.
+     */
+    public boolean isLoaded() {
+        return mStatus == Status.LOADED;
+    }
+
+    public long getNameRawContactId() {
+        return mNameRawContactId;
+    }
+
+    public int getDisplayNameSource() {
+        return mDisplayNameSource;
+    }
+
+    /**
+     * Used by various classes to determine whether or not this contact should be displayed as
+     * a business rather than a person.
+     */
+    public boolean isDisplayNameFromOrganization() {
+        return DisplayNameSources.ORGANIZATION == mDisplayNameSource;
+    }
+
+    public long getPhotoId() {
+        return mPhotoId;
+    }
+
+    public String getPhotoUri() {
+        return mPhotoUri;
+    }
+
+    public String getDisplayName() {
+        return mDisplayName;
+    }
+
+    public String getAltDisplayName() {
+        return mAltDisplayName;
+    }
+
+    public String getPhoneticName() {
+        return mPhoneticName;
+    }
+
+    public boolean getStarred() {
+        return mStarred;
+    }
+
+    public Integer getPresence() {
+        return mPresence;
+    }
+
+    public ImmutableList<RawContact> getRawContacts() {
+        return mRawContacts;
+    }
+
+    public ImmutableMap<Long, DataStatus> getStatuses() {
+        return mStatuses;
+    }
+
+    public long getDirectoryId() {
+        return mDirectoryId;
+    }
+
+    public boolean isDirectoryEntry() {
+        return mDirectoryId != -1 && mDirectoryId != Directory.DEFAULT
+                && mDirectoryId != Directory.LOCAL_INVISIBLE;
+    }
+
+    /**
+     * @return true if this is a contact (not group, etc.) with at least one
+     *         writable raw-contact, and false otherwise.
+     */
+    public boolean isWritableContact(final Context context) {
+        return getFirstWritableRawContactId(context) != -1;
+    }
+
+    /**
+     * Return the ID of the first raw-contact in the contact data that belongs to a
+     * contact-writable account, or -1 if no such entity exists.
+     */
+    public long getFirstWritableRawContactId(final Context context) {
+        // Directory entries are non-writable
+        if (isDirectoryEntry()) return -1;
+
+        // Iterate through raw-contacts; if we find a writable on, return its ID.
+        for (RawContact rawContact : getRawContacts()) {
+            AccountType accountType = rawContact.getAccountType(context);
+            if (accountType != null && accountType.areContactsWritable()) {
+                return rawContact.getId();
+            }
+        }
+        // No writable raw-contact was found.
+        return -1;
+    }
+
+    public int getDirectoryExportSupport() {
+        return mDirectoryExportSupport;
+    }
+
+    public String getDirectoryDisplayName() {
+        return mDirectoryDisplayName;
+    }
+
+    public String getDirectoryType() {
+        return mDirectoryType;
+    }
+
+    public String getDirectoryAccountType() {
+        return mDirectoryAccountType;
+    }
+
+    public String getDirectoryAccountName() {
+        return mDirectoryAccountName;
+    }
+
+    public byte[] getPhotoBinaryData() {
+        return mPhotoBinaryData;
+    }
+
+    public byte[] getThumbnailPhotoBinaryData() {
+        return mThumbnailPhotoBinaryData;
+    }
+
+    public ArrayList<ContentValues> getContentValues() {
+        if (mRawContacts.size() != 1) {
+            throw new IllegalStateException(
+                    "Cannot extract content values from an aggregated contact");
+        }
+
+        RawContact rawContact = mRawContacts.get(0);
+        ArrayList<ContentValues> result = rawContact.getContentValues();
+
+        // If the photo was loaded using the URI, create an entry for the photo
+        // binary data.
+        if (mPhotoId == 0 && mPhotoBinaryData != null) {
+            ContentValues photo = new ContentValues();
+            photo.put(Data.MIMETYPE, Photo.CONTENT_ITEM_TYPE);
+            photo.put(Photo.PHOTO, mPhotoBinaryData);
+            result.add(photo);
+        }
+
+        return result;
+    }
+
+    /**
+     * This can return non-null group meta-data only if the {@link ContactLoader} was configured to
+     * load group metadata in its constructor.
+     * @return
+     */
+    public ImmutableList<GroupMetaData> getGroupMetaData() {
+        return mGroups;
+    }
+
+    public boolean isSendToVoicemail() {
+        return mSendToVoicemail;
+    }
+
+    public String getCustomRingtone() {
+        return mCustomRingtone;
+    }
+
+    public boolean isUserProfile() {
+        return mIsUserProfile;
+    }
+
+    public boolean isMultipleRawContacts() {
+        return mRawContacts.size() > 1;
+    }
+
+    /**
+     * @return true if all the raw contacts are from SIM accounts, and false otherwise.
+     */
+    public boolean areAllRawContactsSimAccounts(final Context context) {
+        if (getRawContacts() == null) return false;
+
+        for (RawContact rawContact : getRawContacts()) {
+            final AccountType accountType = rawContact.getAccountType(context);
+            if (!(accountType instanceof SimAccountType)) return false;
+        }
+        return true;
+    }
+
+    @Override
+    public String toString() {
+        return "{requested=" + mRequestedUri + ",lookupkey=" + mLookupKey +
+                ",uri=" + mUri + ",status=" + mStatus + "}";
+    }
+
+    /* package */ void setRawContacts(ImmutableList<RawContact> rawContacts) {
+        mRawContacts = rawContacts;
+    }
+
+    /* package */ void setStatuses(ImmutableMap<Long, DataStatus> statuses) {
+        mStatuses = statuses;
+    }
+
+    /* package */ void setGroupMetaData(ImmutableList<GroupMetaData> groups) {
+        mGroups = groups;
+    }
+}
diff --git a/src/com/android/contacts/model/ContactLoader.java b/src/com/android/contacts/model/ContactLoader.java
new file mode 100644
index 0000000..acb8212
--- /dev/null
+++ b/src/com/android/contacts/model/ContactLoader.java
@@ -0,0 +1,960 @@
+/*
+ * Copyright (C) 2010 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.AsyncTaskLoader;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.AssetFileDescriptor;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Directory;
+import android.provider.ContactsContract.Groups;
+import android.provider.ContactsContract.RawContacts;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.GeoUtil;
+import com.android.contacts.GroupMetaDataLoader;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.group.GroupMetaData;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountTypeWithDataSet;
+import com.android.contacts.model.dataitem.DataItem;
+import com.android.contacts.model.dataitem.PhoneDataItem;
+import com.android.contacts.model.dataitem.PhotoDataItem;
+import com.android.contacts.util.Constants;
+import com.android.contacts.util.ContactLoaderUtils;
+import com.android.contacts.util.DataStatus;
+import com.android.contacts.util.UriUtils;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * Loads a single Contact and all it constituent RawContacts.
+ */
+public class ContactLoader extends AsyncTaskLoader<Contact> {
+
+    private static final String TAG = ContactLoader.class.getSimpleName();
+
+    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+
+    /** A short-lived cache that can be set by {@link #cacheResult()} */
+    private static Contact sCachedResult = null;
+
+    private final Uri mRequestedUri;
+    private Uri mLookupUri;
+    private boolean mLoadGroupMetaData;
+    private boolean mPostViewNotification;
+    private boolean mComputeFormattedPhoneNumber;
+    private Contact mContact;
+    private ForceLoadContentObserver mObserver;
+    private final Set<Long> mNotifiedRawContactIds = Sets.newHashSet();
+
+    public ContactLoader(Context context, Uri lookupUri, boolean postViewNotification) {
+        this(context, lookupUri, false, postViewNotification, false);
+    }
+
+    public ContactLoader(Context context, Uri lookupUri, boolean postViewNotification,
+            boolean loadGroupMetaData) {
+        this(context, lookupUri, loadGroupMetaData, postViewNotification, false);
+    }
+
+    public ContactLoader(Context context, Uri lookupUri, boolean loadGroupMetaData,
+            boolean postViewNotification, boolean computeFormattedPhoneNumber) {
+        super(context);
+        mLookupUri = lookupUri;
+        mRequestedUri = lookupUri;
+        mLoadGroupMetaData = loadGroupMetaData;
+        mPostViewNotification = postViewNotification;
+        mComputeFormattedPhoneNumber = computeFormattedPhoneNumber;
+    }
+
+    /**
+     * Projection used for the query that loads all data for the entire contact (except for
+     * social stream items).
+     */
+    private static class ContactQuery {
+        static final String[] COLUMNS_INTERNAL = new String[] {
+                Contacts.NAME_RAW_CONTACT_ID,
+                Contacts.DISPLAY_NAME_SOURCE,
+                Contacts.LOOKUP_KEY,
+                Contacts.DISPLAY_NAME,
+                Contacts.DISPLAY_NAME_ALTERNATIVE,
+                Contacts.PHONETIC_NAME,
+                Contacts.PHOTO_ID,
+                Contacts.STARRED,
+                Contacts.CONTACT_PRESENCE,
+                Contacts.CONTACT_STATUS,
+                Contacts.CONTACT_STATUS_TIMESTAMP,
+                Contacts.CONTACT_STATUS_RES_PACKAGE,
+                Contacts.CONTACT_STATUS_LABEL,
+                Contacts.Entity.CONTACT_ID,
+                Contacts.Entity.RAW_CONTACT_ID,
+
+                RawContacts.ACCOUNT_NAME,
+                RawContacts.ACCOUNT_TYPE,
+                RawContacts.DATA_SET,
+                RawContacts.DIRTY,
+                RawContacts.VERSION,
+                RawContacts.SOURCE_ID,
+                RawContacts.SYNC1,
+                RawContacts.SYNC2,
+                RawContacts.SYNC3,
+                RawContacts.SYNC4,
+                RawContacts.DELETED,
+
+                Contacts.Entity.DATA_ID,
+                Data.DATA1,
+                Data.DATA2,
+                Data.DATA3,
+                Data.DATA4,
+                Data.DATA5,
+                Data.DATA6,
+                Data.DATA7,
+                Data.DATA8,
+                Data.DATA9,
+                Data.DATA10,
+                Data.DATA11,
+                Data.DATA12,
+                Data.DATA13,
+                Data.DATA14,
+                Data.DATA15,
+                Data.SYNC1,
+                Data.SYNC2,
+                Data.SYNC3,
+                Data.SYNC4,
+                Data.DATA_VERSION,
+                Data.IS_PRIMARY,
+                Data.IS_SUPER_PRIMARY,
+                Data.MIMETYPE,
+
+                GroupMembership.GROUP_SOURCE_ID,
+
+                Data.PRESENCE,
+                Data.CHAT_CAPABILITY,
+                Data.STATUS,
+                Data.STATUS_RES_PACKAGE,
+                Data.STATUS_ICON,
+                Data.STATUS_LABEL,
+                Data.STATUS_TIMESTAMP,
+
+                Contacts.PHOTO_URI,
+                Contacts.SEND_TO_VOICEMAIL,
+                Contacts.CUSTOM_RINGTONE,
+                Contacts.IS_USER_PROFILE,
+
+                Data.TIMES_USED,
+                Data.LAST_TIME_USED
+        };
+
+        static final String[] COLUMNS;
+
+        static {
+            List<String> projectionList = Lists.newArrayList(COLUMNS_INTERNAL);
+            if (CompatUtils.isMarshmallowCompatible()) {
+                projectionList.add(Data.CARRIER_PRESENCE);
+            }
+            COLUMNS = projectionList.toArray(new String[projectionList.size()]);
+        }
+
+        public static final int NAME_RAW_CONTACT_ID = 0;
+        public static final int DISPLAY_NAME_SOURCE = 1;
+        public static final int LOOKUP_KEY = 2;
+        public static final int DISPLAY_NAME = 3;
+        public static final int ALT_DISPLAY_NAME = 4;
+        public static final int PHONETIC_NAME = 5;
+        public static final int PHOTO_ID = 6;
+        public static final int STARRED = 7;
+        public static final int CONTACT_PRESENCE = 8;
+        public static final int CONTACT_STATUS = 9;
+        public static final int CONTACT_STATUS_TIMESTAMP = 10;
+        public static final int CONTACT_STATUS_RES_PACKAGE = 11;
+        public static final int CONTACT_STATUS_LABEL = 12;
+        public static final int CONTACT_ID = 13;
+        public static final int RAW_CONTACT_ID = 14;
+
+        public static final int ACCOUNT_NAME = 15;
+        public static final int ACCOUNT_TYPE = 16;
+        public static final int DATA_SET = 17;
+        public static final int DIRTY = 18;
+        public static final int VERSION = 19;
+        public static final int SOURCE_ID = 20;
+        public static final int SYNC1 = 21;
+        public static final int SYNC2 = 22;
+        public static final int SYNC3 = 23;
+        public static final int SYNC4 = 24;
+        public static final int DELETED = 25;
+
+        public static final int DATA_ID = 26;
+        public static final int DATA1 = 27;
+        public static final int DATA2 = 28;
+        public static final int DATA3 = 29;
+        public static final int DATA4 = 30;
+        public static final int DATA5 = 31;
+        public static final int DATA6 = 32;
+        public static final int DATA7 = 33;
+        public static final int DATA8 = 34;
+        public static final int DATA9 = 35;
+        public static final int DATA10 = 36;
+        public static final int DATA11 = 37;
+        public static final int DATA12 = 38;
+        public static final int DATA13 = 39;
+        public static final int DATA14 = 40;
+        public static final int DATA15 = 41;
+        public static final int DATA_SYNC1 = 42;
+        public static final int DATA_SYNC2 = 43;
+        public static final int DATA_SYNC3 = 44;
+        public static final int DATA_SYNC4 = 45;
+        public static final int DATA_VERSION = 46;
+        public static final int IS_PRIMARY = 47;
+        public static final int IS_SUPERPRIMARY = 48;
+        public static final int MIMETYPE = 49;
+
+        public static final int GROUP_SOURCE_ID = 50;
+
+        public static final int PRESENCE = 51;
+        public static final int CHAT_CAPABILITY = 52;
+        public static final int STATUS = 53;
+        public static final int STATUS_RES_PACKAGE = 54;
+        public static final int STATUS_ICON = 55;
+        public static final int STATUS_LABEL = 56;
+        public static final int STATUS_TIMESTAMP = 57;
+
+        public static final int PHOTO_URI = 58;
+        public static final int SEND_TO_VOICEMAIL = 59;
+        public static final int CUSTOM_RINGTONE = 60;
+        public static final int IS_USER_PROFILE = 61;
+
+        public static final int TIMES_USED = 62;
+        public static final int LAST_TIME_USED = 63;
+        public static final int CARRIER_PRESENCE = 64;
+    }
+
+    /**
+     * Projection used for the query that loads all data for the entire contact.
+     */
+    private static class DirectoryQuery {
+        static final String[] COLUMNS = new String[] {
+            Directory.DISPLAY_NAME,
+            Directory.PACKAGE_NAME,
+            Directory.TYPE_RESOURCE_ID,
+            Directory.ACCOUNT_TYPE,
+            Directory.ACCOUNT_NAME,
+            Directory.EXPORT_SUPPORT,
+        };
+
+        public static final int DISPLAY_NAME = 0;
+        public static final int PACKAGE_NAME = 1;
+        public static final int TYPE_RESOURCE_ID = 2;
+        public static final int ACCOUNT_TYPE = 3;
+        public static final int ACCOUNT_NAME = 4;
+        public static final int EXPORT_SUPPORT = 5;
+    }
+
+    public void setNewLookup(Uri lookupUri) {
+        mLookupUri = lookupUri;
+        mContact = null;
+    }
+
+    @Override
+    public Contact loadInBackground() {
+        try {
+            final ContentResolver resolver = getContext().getContentResolver();
+            final Uri uriCurrentFormat = ContactLoaderUtils.ensureIsContactUri(
+                    resolver, mLookupUri);
+            final Contact cachedResult = sCachedResult;
+            sCachedResult = null;
+            // Is this the same Uri as what we had before already? In that case, reuse that result
+            final Contact result;
+            final boolean resultIsCached;
+            if (cachedResult != null &&
+                    UriUtils.areEqual(cachedResult.getLookupUri(), mLookupUri)) {
+                // We are using a cached result from earlier. Below, we should make sure
+                // we are not doing any more network or disc accesses
+                result = new Contact(mRequestedUri, cachedResult);
+                resultIsCached = true;
+            } else {
+                if (uriCurrentFormat.getLastPathSegment().equals(Constants.LOOKUP_URI_ENCODED)) {
+                    result = loadEncodedContactEntity(uriCurrentFormat, mLookupUri);
+                } else {
+                    result = loadContactEntity(resolver, uriCurrentFormat);
+                }
+                resultIsCached = false;
+            }
+            if (result.isLoaded()) {
+                if (result.isDirectoryEntry()) {
+                    if (!resultIsCached) {
+                        loadDirectoryMetaData(result);
+                    }
+                } else if (mLoadGroupMetaData) {
+                    if (result.getGroupMetaData() == null) {
+                        loadGroupMetaData(result);
+                    }
+                }
+                if (mComputeFormattedPhoneNumber) {
+                    computeFormattedPhoneNumbers(result);
+                }
+                if (!resultIsCached) loadPhotoBinaryData(result);
+
+            }
+            return result;
+        } catch (Exception e) {
+            Log.e(TAG, "Error loading the contact: " + mLookupUri, e);
+            return Contact.forError(mRequestedUri, e);
+        }
+    }
+
+    /**
+     * Parses a {@link Contact} stored as a JSON string in a lookup URI.
+     *
+     * @param lookupUri The contact information to parse .
+     * @return The parsed {@code Contact} information.
+     * @throws JSONException
+     */
+    public static Contact parseEncodedContactEntity(Uri lookupUri)  {
+        try {
+            return loadEncodedContactEntity(lookupUri, lookupUri);
+        } catch (JSONException je) {
+            return null;
+        }
+    }
+
+    private static Contact loadEncodedContactEntity(Uri uri, Uri lookupUri) throws JSONException {
+        final String jsonString = uri.getEncodedFragment();
+        final JSONObject json = new JSONObject(jsonString);
+
+        final long directoryId =
+                Long.valueOf(uri.getQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY));
+
+        final String displayName = json.optString(Contacts.DISPLAY_NAME);
+        final String altDisplayName = json.optString(
+                Contacts.DISPLAY_NAME_ALTERNATIVE, displayName);
+        final int displayNameSource = json.getInt(Contacts.DISPLAY_NAME_SOURCE);
+        final String photoUri = json.optString(Contacts.PHOTO_URI, null);
+        final Contact contact = new Contact(
+                uri, uri,
+                lookupUri,
+                directoryId,
+                null /* lookupKey */,
+                -1 /* id */,
+                -1 /* nameRawContactId */,
+                displayNameSource,
+                0 /* photoId */,
+                photoUri,
+                displayName,
+                altDisplayName,
+                null /* phoneticName */,
+                false /* starred */,
+                null /* presence */,
+                false /* sendToVoicemail */,
+                null /* customRingtone */,
+                false /* isUserProfile */);
+
+        contact.setStatuses(new ImmutableMap.Builder<Long, DataStatus>().build());
+
+        final String accountName = json.optString(RawContacts.ACCOUNT_NAME, null);
+        final String directoryName = uri.getQueryParameter(Directory.DISPLAY_NAME);
+        if (accountName != null) {
+            final String accountType = json.getString(RawContacts.ACCOUNT_TYPE);
+            contact.setDirectoryMetaData(directoryName, null, accountName, accountType,
+                    json.optInt(Directory.EXPORT_SUPPORT,
+                            Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY));
+        } else {
+            contact.setDirectoryMetaData(directoryName, null, null, null,
+                    json.optInt(Directory.EXPORT_SUPPORT, Directory.EXPORT_SUPPORT_ANY_ACCOUNT));
+        }
+
+        final ContentValues values = new ContentValues();
+        values.put(Data._ID, -1);
+        values.put(Data.CONTACT_ID, -1);
+        final RawContact rawContact = new RawContact(values);
+
+        final JSONObject items = json.getJSONObject(Contacts.CONTENT_ITEM_TYPE);
+        final Iterator keys = items.keys();
+        while (keys.hasNext()) {
+            final String mimetype = (String) keys.next();
+
+            // Could be single object or array.
+            final JSONObject obj = items.optJSONObject(mimetype);
+            if (obj == null) {
+                final JSONArray array = items.getJSONArray(mimetype);
+                for (int i = 0; i < array.length(); i++) {
+                    final JSONObject item = array.getJSONObject(i);
+                    processOneRecord(rawContact, item, mimetype);
+                }
+            } else {
+                processOneRecord(rawContact, obj, mimetype);
+            }
+        }
+
+        contact.setRawContacts(new ImmutableList.Builder<RawContact>()
+                .add(rawContact)
+                .build());
+        return contact;
+    }
+
+    private static void processOneRecord(RawContact rawContact, JSONObject item, String mimetype)
+            throws JSONException {
+        final ContentValues itemValues = new ContentValues();
+        itemValues.put(Data.MIMETYPE, mimetype);
+        itemValues.put(Data._ID, -1);
+
+        final Iterator iterator = item.keys();
+        while (iterator.hasNext()) {
+            String name = (String) iterator.next();
+            final Object o = item.get(name);
+            if (o instanceof String) {
+                itemValues.put(name, (String) o);
+            } else if (o instanceof Integer) {
+                itemValues.put(name, (Integer) o);
+            }
+        }
+        rawContact.addDataItemValues(itemValues);
+    }
+
+    private Contact loadContactEntity(ContentResolver resolver, Uri contactUri) {
+        Uri entityUri = Uri.withAppendedPath(contactUri, Contacts.Entity.CONTENT_DIRECTORY);
+        Cursor cursor = resolver.query(entityUri, ContactQuery.COLUMNS, null, null,
+                Contacts.Entity.RAW_CONTACT_ID);
+        if (cursor == null) {
+            Log.e(TAG, "No cursor returned in loadContactEntity");
+            return Contact.forNotFound(mRequestedUri);
+        }
+
+        try {
+            if (!cursor.moveToFirst()) {
+                cursor.close();
+                return Contact.forNotFound(mRequestedUri);
+            }
+
+            // Create the loaded contact starting with the header data.
+            Contact contact = loadContactHeaderData(cursor, contactUri);
+
+            // Fill in the raw contacts, which is wrapped in an Entity and any
+            // status data.  Initially, result has empty entities and statuses.
+            long currentRawContactId = -1;
+            RawContact rawContact = null;
+            ImmutableList.Builder<RawContact> rawContactsBuilder =
+                    new ImmutableList.Builder<RawContact>();
+            ImmutableMap.Builder<Long, DataStatus> statusesBuilder =
+                    new ImmutableMap.Builder<Long, DataStatus>();
+            do {
+                long rawContactId = cursor.getLong(ContactQuery.RAW_CONTACT_ID);
+                if (rawContactId != currentRawContactId) {
+                    // First time to see this raw contact id, so create a new entity, and
+                    // add it to the result's entities.
+                    currentRawContactId = rawContactId;
+                    rawContact = new RawContact(loadRawContactValues(cursor));
+                    rawContactsBuilder.add(rawContact);
+                }
+                if (!cursor.isNull(ContactQuery.DATA_ID)) {
+                    ContentValues data = loadDataValues(cursor);
+                    rawContact.addDataItemValues(data);
+
+                    if (!cursor.isNull(ContactQuery.PRESENCE)
+                            || !cursor.isNull(ContactQuery.STATUS)) {
+                        final DataStatus status = new DataStatus(cursor);
+                        final long dataId = cursor.getLong(ContactQuery.DATA_ID);
+                        statusesBuilder.put(dataId, status);
+                    }
+                }
+            } while (cursor.moveToNext());
+
+            contact.setRawContacts(rawContactsBuilder.build());
+            contact.setStatuses(statusesBuilder.build());
+
+            return contact;
+        } finally {
+            cursor.close();
+        }
+    }
+
+    /**
+     * Looks for the photo data item in entities. If found, a thumbnail will be stored. A larger
+     * photo will also be stored if available.
+     */
+    private void loadPhotoBinaryData(Contact contactData) {
+        loadThumbnailBinaryData(contactData);
+
+        // Try to load the large photo from a file using the photo URI.
+        String photoUri = contactData.getPhotoUri();
+        if (photoUri != null) {
+            try {
+                final InputStream inputStream;
+                final AssetFileDescriptor fd;
+                final Uri uri = Uri.parse(photoUri);
+                final String scheme = uri.getScheme();
+                if ("http".equals(scheme) || "https".equals(scheme)) {
+                    // Support HTTP urls that might come from extended directories
+                    inputStream = new URL(photoUri).openStream();
+                    fd = null;
+                } else {
+                    fd = getContext().getContentResolver().openAssetFileDescriptor(uri, "r");
+                    inputStream = fd.createInputStream();
+                }
+                byte[] buffer = new byte[16 * 1024];
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                try {
+                    int size;
+                    while ((size = inputStream.read(buffer)) != -1) {
+                        baos.write(buffer, 0, size);
+                    }
+                    contactData.setPhotoBinaryData(baos.toByteArray());
+                } finally {
+                    inputStream.close();
+                    if (fd != null) {
+                        fd.close();
+                    }
+                }
+                return;
+            } catch (IOException ioe) {
+                // Just fall back to the case below.
+            }
+        }
+
+        // If we couldn't load from a file, fall back to the data blob.
+        contactData.setPhotoBinaryData(contactData.getThumbnailPhotoBinaryData());
+    }
+
+    private void loadThumbnailBinaryData(Contact contactData) {
+        final long photoId = contactData.getPhotoId();
+        if (photoId <= 0) {
+            // No photo ID
+            return;
+        }
+
+        for (RawContact rawContact : contactData.getRawContacts()) {
+            for (DataItem dataItem : rawContact.getDataItems()) {
+                if (dataItem.getId() == photoId) {
+                    if (!(dataItem instanceof PhotoDataItem)) {
+                        break;
+                    }
+
+                    final PhotoDataItem photo = (PhotoDataItem) dataItem;
+                    contactData.setThumbnailPhotoBinaryData(photo.getPhoto());
+                    break;
+                }
+            }
+        }
+    }
+
+    /**
+     * Extracts Contact level columns from the cursor.
+     */
+    private Contact loadContactHeaderData(final Cursor cursor, Uri contactUri) {
+        final String directoryParameter =
+                contactUri.getQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY);
+        final long directoryId = directoryParameter == null
+                ? Directory.DEFAULT
+                : Long.parseLong(directoryParameter);
+        final long contactId = cursor.getLong(ContactQuery.CONTACT_ID);
+        final String lookupKey = cursor.getString(ContactQuery.LOOKUP_KEY);
+        final long nameRawContactId = cursor.getLong(ContactQuery.NAME_RAW_CONTACT_ID);
+        final int displayNameSource = cursor.getInt(ContactQuery.DISPLAY_NAME_SOURCE);
+        final String displayName = cursor.getString(ContactQuery.DISPLAY_NAME);
+        final String altDisplayName = cursor.getString(ContactQuery.ALT_DISPLAY_NAME);
+        final String phoneticName = cursor.getString(ContactQuery.PHONETIC_NAME);
+        final long photoId = cursor.getLong(ContactQuery.PHOTO_ID);
+        final String photoUri = cursor.getString(ContactQuery.PHOTO_URI);
+        final boolean starred = cursor.getInt(ContactQuery.STARRED) != 0;
+        final Integer presence = cursor.isNull(ContactQuery.CONTACT_PRESENCE)
+                ? null
+                : cursor.getInt(ContactQuery.CONTACT_PRESENCE);
+        final boolean sendToVoicemail = cursor.getInt(ContactQuery.SEND_TO_VOICEMAIL) == 1;
+        final String customRingtone = cursor.getString(ContactQuery.CUSTOM_RINGTONE);
+        final boolean isUserProfile = cursor.getInt(ContactQuery.IS_USER_PROFILE) == 1;
+
+        Uri lookupUri;
+        if (directoryId == Directory.DEFAULT || directoryId == Directory.LOCAL_INVISIBLE) {
+            lookupUri = ContentUris.withAppendedId(
+                Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey), contactId);
+        } else {
+            lookupUri = contactUri;
+        }
+
+        return new Contact(mRequestedUri, contactUri, lookupUri, directoryId, lookupKey,
+                contactId, nameRawContactId, displayNameSource, photoId, photoUri, displayName,
+                altDisplayName, phoneticName, starred, presence, sendToVoicemail,
+                customRingtone, isUserProfile);
+    }
+
+    /**
+     * Extracts RawContact level columns from the cursor.
+     */
+    private ContentValues loadRawContactValues(Cursor cursor) {
+        ContentValues cv = new ContentValues();
+
+        cv.put(RawContacts._ID, cursor.getLong(ContactQuery.RAW_CONTACT_ID));
+
+        cursorColumnToContentValues(cursor, cv, ContactQuery.ACCOUNT_NAME);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.ACCOUNT_TYPE);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA_SET);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DIRTY);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.VERSION);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.SOURCE_ID);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.SYNC1);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.SYNC2);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.SYNC3);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.SYNC4);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DELETED);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.CONTACT_ID);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.STARRED);
+
+        return cv;
+    }
+
+    /**
+     * Extracts Data level columns from the cursor.
+     */
+    private ContentValues loadDataValues(Cursor cursor) {
+        ContentValues cv = new ContentValues();
+
+        cv.put(Data._ID, cursor.getLong(ContactQuery.DATA_ID));
+
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA1);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA2);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA3);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA4);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA5);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA6);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA7);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA8);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA9);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA10);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA11);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA12);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA13);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA14);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA15);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA_SYNC1);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA_SYNC2);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA_SYNC3);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA_SYNC4);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.DATA_VERSION);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.IS_PRIMARY);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.IS_SUPERPRIMARY);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.MIMETYPE);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.GROUP_SOURCE_ID);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.CHAT_CAPABILITY);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.TIMES_USED);
+        cursorColumnToContentValues(cursor, cv, ContactQuery.LAST_TIME_USED);
+        if (CompatUtils.isMarshmallowCompatible()) {
+            cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE);
+        }
+
+        return cv;
+    }
+
+    private void cursorColumnToContentValues(
+            Cursor cursor, ContentValues values, int index) {
+        switch (cursor.getType(index)) {
+            case Cursor.FIELD_TYPE_NULL:
+                // don't put anything in the content values
+                break;
+            case Cursor.FIELD_TYPE_INTEGER:
+                values.put(ContactQuery.COLUMNS[index], cursor.getLong(index));
+                break;
+            case Cursor.FIELD_TYPE_STRING:
+                values.put(ContactQuery.COLUMNS[index], cursor.getString(index));
+                break;
+            case Cursor.FIELD_TYPE_BLOB:
+                values.put(ContactQuery.COLUMNS[index], cursor.getBlob(index));
+                break;
+            default:
+                throw new IllegalStateException("Invalid or unhandled data type");
+        }
+    }
+
+    private void loadDirectoryMetaData(Contact result) {
+        long directoryId = result.getDirectoryId();
+
+        Cursor cursor = getContext().getContentResolver().query(
+                ContentUris.withAppendedId(Directory.CONTENT_URI, directoryId),
+                DirectoryQuery.COLUMNS, null, null, null);
+        if (cursor == null) {
+            return;
+        }
+        try {
+            if (cursor.moveToFirst()) {
+                final String displayName = cursor.getString(DirectoryQuery.DISPLAY_NAME);
+                final String packageName = cursor.getString(DirectoryQuery.PACKAGE_NAME);
+                final int typeResourceId = cursor.getInt(DirectoryQuery.TYPE_RESOURCE_ID);
+                final String accountType = cursor.getString(DirectoryQuery.ACCOUNT_TYPE);
+                final String accountName = cursor.getString(DirectoryQuery.ACCOUNT_NAME);
+                final int exportSupport = cursor.getInt(DirectoryQuery.EXPORT_SUPPORT);
+                String directoryType = null;
+                if (!TextUtils.isEmpty(packageName)) {
+                    PackageManager pm = getContext().getPackageManager();
+                    try {
+                        Resources resources = pm.getResourcesForApplication(packageName);
+                        directoryType = resources.getString(typeResourceId);
+                    } catch (NameNotFoundException e) {
+                        Log.w(TAG, "Contact directory resource not found: "
+                                + packageName + "." + typeResourceId);
+                    }
+                }
+
+                result.setDirectoryMetaData(
+                        displayName, directoryType, accountType, accountName, exportSupport);
+            }
+        } finally {
+            cursor.close();
+        }
+    }
+
+    static private class AccountKey {
+        private final String mAccountName;
+        private final String mAccountType;
+        private final String mDataSet;
+
+        public AccountKey(String accountName, String accountType, String dataSet) {
+            mAccountName = accountName;
+            mAccountType = accountType;
+            mDataSet = dataSet;
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(mAccountName, mAccountType, mDataSet);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (!(obj instanceof AccountKey)) {
+                return false;
+            }
+            final AccountKey other = (AccountKey) obj;
+            return Objects.equals(mAccountName, other.mAccountName)
+                && Objects.equals(mAccountType, other.mAccountType)
+                && Objects.equals(mDataSet, other.mDataSet);
+        }
+    }
+
+    /**
+     * Loads groups meta-data for all groups associated with all constituent raw contacts'
+     * accounts.
+     */
+    private void loadGroupMetaData(Contact result) {
+        StringBuilder selection = new StringBuilder();
+        ArrayList<String> selectionArgs = new ArrayList<String>();
+        final HashSet<AccountKey> accountsSeen = new HashSet<>();
+        for (RawContact rawContact : result.getRawContacts()) {
+            final String accountName = rawContact.getAccountName();
+            final String accountType = rawContact.getAccountTypeString();
+            final String dataSet = rawContact.getDataSet();
+            final AccountKey accountKey = new AccountKey(accountName, accountType, dataSet);
+            if (accountName != null && accountType != null &&
+                    !accountsSeen.contains(accountKey)) {
+                accountsSeen.add(accountKey);
+                if (selection.length() != 0) {
+                    selection.append(" OR ");
+                }
+                selection.append(
+                        "(" + Groups.ACCOUNT_NAME + "=? AND " + Groups.ACCOUNT_TYPE + "=?");
+                selectionArgs.add(accountName);
+                selectionArgs.add(accountType);
+
+                selection.append(" AND " + Groups.DELETED + "=0");
+
+                if (dataSet != null) {
+                    selection.append(" AND " + Groups.DATA_SET + "=?");
+                    selectionArgs.add(dataSet);
+                } else {
+                    selection.append(" AND " + Groups.DATA_SET + " IS NULL");
+                }
+                selection.append(")");
+            }
+        }
+        final ImmutableList.Builder<GroupMetaData> groupListBuilder = new ImmutableList.Builder<>();
+        final Cursor cursor = getContext().getContentResolver().query(Groups.CONTENT_URI,
+                GroupMetaDataLoader.COLUMNS, selection.toString(),
+                selectionArgs.toArray(new String[0]), null);
+        if (cursor != null) {
+            try {
+                while (cursor.moveToNext()) {
+                    groupListBuilder.add(new GroupMetaData(getContext(), cursor));
+                }
+            } finally {
+                cursor.close();
+            }
+        }
+        result.setGroupMetaData(groupListBuilder.build());
+    }
+
+    /**
+     * Iterates over all data items that represent phone numbers are tries to calculate a formatted
+     * number. This function can safely be called several times as no unformatted data is
+     * overwritten
+     */
+    private void computeFormattedPhoneNumbers(Contact contactData) {
+        final String countryIso = GeoUtil.getCurrentCountryIso(getContext());
+        final ImmutableList<RawContact> rawContacts = contactData.getRawContacts();
+        final int rawContactCount = rawContacts.size();
+        for (int rawContactIndex = 0; rawContactIndex < rawContactCount; rawContactIndex++) {
+            final RawContact rawContact = rawContacts.get(rawContactIndex);
+            final List<DataItem> dataItems = rawContact.getDataItems();
+            final int dataCount = dataItems.size();
+            for (int dataIndex = 0; dataIndex < dataCount; dataIndex++) {
+                final DataItem dataItem = dataItems.get(dataIndex);
+                if (dataItem instanceof PhoneDataItem) {
+                    final PhoneDataItem phoneDataItem = (PhoneDataItem) dataItem;
+                    phoneDataItem.computeFormattedPhoneNumber(countryIso);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void deliverResult(Contact result) {
+        unregisterObserver();
+
+        // The creator isn't interested in any further updates
+        if (isReset() || result == null) {
+            return;
+        }
+
+        mContact = result;
+
+        if (result.isLoaded()) {
+            mLookupUri = result.getLookupUri();
+
+            if (!result.isDirectoryEntry()) {
+                Log.i(TAG, "Registering content observer for " + mLookupUri);
+                if (mObserver == null) {
+                    mObserver = new ForceLoadContentObserver();
+                }
+                getContext().getContentResolver().registerContentObserver(
+                        mLookupUri, true, mObserver);
+            }
+
+            if (mPostViewNotification) {
+                // inform the source of the data that this contact is being looked at
+                postViewNotificationToSyncAdapter();
+            }
+        }
+
+        super.deliverResult(mContact);
+    }
+
+    /**
+     * Posts a message to the contributing sync adapters that have opted-in, notifying them
+     * that the contact has just been loaded
+     */
+    private void postViewNotificationToSyncAdapter() {
+        Context context = getContext();
+        for (RawContact rawContact : mContact.getRawContacts()) {
+            final long rawContactId = rawContact.getId();
+            if (mNotifiedRawContactIds.contains(rawContactId)) {
+                continue; // Already notified for this raw contact.
+            }
+            mNotifiedRawContactIds.add(rawContactId);
+            final AccountType accountType = rawContact.getAccountType(context);
+            final String serviceName = accountType.getViewContactNotifyServiceClassName();
+            final String servicePackageName = accountType.getViewContactNotifyServicePackageName();
+            if (!TextUtils.isEmpty(serviceName) && !TextUtils.isEmpty(servicePackageName)) {
+                final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId);
+                final Intent intent = new Intent();
+                intent.setClassName(servicePackageName, serviceName);
+                intent.setAction(Intent.ACTION_VIEW);
+                intent.setDataAndType(uri, RawContacts.CONTENT_ITEM_TYPE);
+                try {
+                    context.startService(intent);
+                } catch (Exception e) {
+                    Log.e(TAG, "Error sending message to source-app", e);
+                }
+            }
+        }
+    }
+
+    private void unregisterObserver() {
+        if (mObserver != null) {
+            getContext().getContentResolver().unregisterContentObserver(mObserver);
+            mObserver = null;
+        }
+    }
+
+    public Uri getLookupUri() {
+        return mLookupUri;
+    }
+
+    @Override
+    protected void onStartLoading() {
+        if (mContact != null) {
+            deliverResult(mContact);
+        }
+
+        if (takeContentChanged() || mContact == null) {
+            forceLoad();
+        }
+    }
+
+    @Override
+    protected void onStopLoading() {
+        cancelLoad();
+    }
+
+    @Override
+    protected void onReset() {
+        super.onReset();
+        cancelLoad();
+        unregisterObserver();
+        mContact = null;
+    }
+
+    /**
+     * Caches the result, which is useful when we switch from activity to activity, using the same
+     * contact. If the next load is for a different contact, the cached result will be dropped
+     */
+    public void cacheResult() {
+        if (mContact == null || !mContact.isLoaded()) {
+            sCachedResult = null;
+        } else {
+            sCachedResult = mContact;
+        }
+    }
+}
diff --git a/src/com/android/contacts/model/Cp2DeviceLocalAccountLocator.java b/src/com/android/contacts/model/Cp2DeviceLocalAccountLocator.java
new file mode 100644
index 0000000..307577d
--- /dev/null
+++ b/src/com/android/contacts/model/Cp2DeviceLocalAccountLocator.java
@@ -0,0 +1,139 @@
+/*
+ * 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 android.support.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
new file mode 100644
index 0000000..4281de9
--- /dev/null
+++ b/src/com/android/contacts/model/DeviceLocalAccountLocator.java
@@ -0,0 +1,105 @@
+/*
+ * 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.Account;
+import android.accounts.AccountManager;
+import android.content.Context;
+
+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 {
+
+    /**
+     * Returns a list of device local accounts
+     */
+    public abstract List<AccountWithDataSet> getDeviceLocalAccounts();
+
+    // 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);
+        } else {
+            return new NexusDeviceAccountLocator(accountManager);
+        }
+    }
+
+    /**
+     * On Nexus the "device" account uses "null" values for the account name and type columns
+     *
+     * <p>However, the focus sync adapter automatically 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
+     * </p>
+     */
+    public static class NexusDeviceAccountLocator extends DeviceLocalAccountLocator {
+
+        private final AccountManager mAccountManager;
+
+        public NexusDeviceAccountLocator(AccountManager accountManager) {
+            mAccountManager = accountManager;
+        }
+
+        @Override
+        public List<AccountWithDataSet> getDeviceLocalAccounts() {
+            @SuppressWarnings("MissingPermission")
+            final Account[] accounts = mAccountManager
+                    .getAccountsByType(GoogleAccountType.ACCOUNT_TYPE);
+
+            if (accounts.length > 0) {
+                return Collections.emptyList();
+            } else {
+                return Collections.singletonList(AccountWithDataSet.getNullAccount());
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/model/RawContact.java b/src/com/android/contacts/model/RawContact.java
new file mode 100644
index 0000000..0059fec
--- /dev/null
+++ b/src/com/android/contacts/model/RawContact.java
@@ -0,0 +1,368 @@
+/*
+ * Copyright (C) 2012 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.ContentValues;
+import android.content.Context;
+import android.content.Entity;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.RawContacts;
+
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.dataitem.DataItem;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * RawContact represents a single raw contact in the raw contacts database.
+ * It has specialized getters/setters for raw contact
+ * items, and also contains a collection of DataItem objects.  A RawContact contains the information
+ * from a single account.
+ *
+ * This allows RawContact objects to be thought of as a class with raw contact
+ * fields (like account type, name, data set, sync state, etc.) and a list of
+ * DataItem objects that represent contact information elements (like phone
+ * numbers, email, address, etc.).
+ */
+final public class RawContact implements Parcelable {
+
+    private AccountTypeManager mAccountTypeManager;
+    private final ContentValues mValues;
+    private final ArrayList<NamedDataItem> mDataItems;
+
+    final public static class NamedDataItem implements Parcelable {
+        public final Uri mUri;
+
+        // This use to be a DataItem. DataItem creation is now delayed until the point of request
+        // since there is no benefit to storing them here due to the multiple inheritance.
+        // Eventually instanceof still has to be used anyways to determine which sub-class of
+        // DataItem it is. And having parent DataItem's here makes it very difficult to serialize or
+        // parcelable.
+        //
+        // Instead of having a common DataItem super class, we should refactor this to be a generic
+        // Object where the object is a concrete class that no longer relies on ContentValues.
+        // (this will also make the classes easier to use).
+        // Since instanceof is used later anyways, having a list of Objects won't hurt and is no
+        // worse than having a DataItem.
+        public final ContentValues mContentValues;
+
+        public NamedDataItem(Uri uri, ContentValues values) {
+            this.mUri = uri;
+            this.mContentValues = values;
+        }
+
+        public NamedDataItem(Parcel parcel) {
+            this.mUri = parcel.readParcelable(Uri.class.getClassLoader());
+            this.mContentValues = parcel.readParcelable(ContentValues.class.getClassLoader());
+        }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel parcel, int i) {
+            parcel.writeParcelable(mUri, i);
+            parcel.writeParcelable(mContentValues, i);
+        }
+
+        public static final Parcelable.Creator<NamedDataItem> CREATOR
+                = new Parcelable.Creator<NamedDataItem>() {
+
+            @Override
+            public NamedDataItem createFromParcel(Parcel parcel) {
+                return new NamedDataItem(parcel);
+            }
+
+            @Override
+            public NamedDataItem[] newArray(int i) {
+                return new NamedDataItem[i];
+            }
+        };
+
+        @Override
+        public int hashCode() {
+            return Objects.hashCode(mUri, mContentValues);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (obj == null) return false;
+            if (getClass() != obj.getClass()) return false;
+
+            final NamedDataItem other = (NamedDataItem) obj;
+            return Objects.equal(mUri, other.mUri) &&
+                    Objects.equal(mContentValues, other.mContentValues);
+        }
+    }
+
+    public static RawContact createFrom(Entity entity) {
+        final ContentValues values = entity.getEntityValues();
+        final ArrayList<Entity.NamedContentValues> subValues = entity.getSubValues();
+
+        RawContact rawContact = new RawContact(values);
+        for (Entity.NamedContentValues subValue : subValues) {
+            rawContact.addNamedDataItemValues(subValue.uri, subValue.values);
+        }
+        return rawContact;
+    }
+
+    /**
+     * A RawContact object can be created with or without a context.
+     */
+    public RawContact() {
+        this(new ContentValues());
+    }
+
+    public RawContact(ContentValues values) {
+        mValues = values;
+        mDataItems = new ArrayList<NamedDataItem>();
+    }
+
+    /**
+     * Constructor for the parcelable.
+     *
+     * @param parcel The parcel to de-serialize from.
+     */
+    private RawContact(Parcel parcel) {
+        mValues = parcel.readParcelable(ContentValues.class.getClassLoader());
+        mDataItems = Lists.newArrayList();
+        parcel.readTypedList(mDataItems, NamedDataItem.CREATOR);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int i) {
+        parcel.writeParcelable(mValues, i);
+        parcel.writeTypedList(mDataItems);
+    }
+
+    /**
+     * Create for building the parcelable.
+     */
+    public static final Parcelable.Creator<RawContact> CREATOR
+            = new Parcelable.Creator<RawContact>() {
+
+        @Override
+        public RawContact createFromParcel(Parcel parcel) {
+            return new RawContact(parcel);
+        }
+
+        @Override
+        public RawContact[] newArray(int i) {
+            return new RawContact[i];
+        }
+    };
+
+    public AccountTypeManager getAccountTypeManager(Context context) {
+        if (mAccountTypeManager == null) {
+            mAccountTypeManager = AccountTypeManager.getInstance(context);
+        }
+        return mAccountTypeManager;
+    }
+
+    public ContentValues getValues() {
+        return mValues;
+    }
+
+    /**
+     * Returns the id of the raw contact.
+     */
+    public Long getId() {
+        return getValues().getAsLong(RawContacts._ID);
+    }
+
+    /**
+     * Returns the account name of the raw contact.
+     */
+    public String getAccountName() {
+        return getValues().getAsString(RawContacts.ACCOUNT_NAME);
+    }
+
+    /**
+     * Returns the account type of the raw contact.
+     */
+    public String getAccountTypeString() {
+        return getValues().getAsString(RawContacts.ACCOUNT_TYPE);
+    }
+
+    /**
+     * Returns the data set of the raw contact.
+     */
+    public String getDataSet() {
+        return getValues().getAsString(RawContacts.DATA_SET);
+    }
+
+    public boolean isDirty() {
+        return getValues().getAsBoolean(RawContacts.DIRTY);
+    }
+
+    public String getSourceId() {
+        return getValues().getAsString(RawContacts.SOURCE_ID);
+    }
+
+    public String getSync1() {
+        return getValues().getAsString(RawContacts.SYNC1);
+    }
+
+    public String getSync2() {
+        return getValues().getAsString(RawContacts.SYNC2);
+    }
+
+    public String getSync3() {
+        return getValues().getAsString(RawContacts.SYNC3);
+    }
+
+    public String getSync4() {
+        return getValues().getAsString(RawContacts.SYNC4);
+    }
+
+    public boolean isDeleted() {
+        return getValues().getAsBoolean(RawContacts.DELETED);
+    }
+
+    public long getContactId() {
+        return getValues().getAsLong(Contacts.Entity.CONTACT_ID);
+    }
+
+    public boolean isStarred() {
+        return getValues().getAsBoolean(Contacts.STARRED);
+    }
+
+    public AccountType getAccountType(Context context) {
+        return getAccountTypeManager(context).getAccountType(getAccountTypeString(), getDataSet());
+    }
+
+    /**
+     * Sets the account name, account type, and data set strings.
+     * Valid combinations for account-name, account-type, data-set
+     * 1) null, null, null (local account)
+     * 2) non-null, non-null, null (valid account without data-set)
+     * 3) non-null, non-null, non-null (valid account with data-set)
+     */
+    private void setAccount(String accountName, String accountType, String dataSet) {
+        final ContentValues values = getValues();
+        if (accountName == null) {
+            if (accountType == null && dataSet == null) {
+                // This is a local account
+                values.putNull(RawContacts.ACCOUNT_NAME);
+                values.putNull(RawContacts.ACCOUNT_TYPE);
+                values.putNull(RawContacts.DATA_SET);
+                return;
+            }
+        } else {
+            if (accountType != null) {
+                // This is a valid account, either with or without a dataSet.
+                values.put(RawContacts.ACCOUNT_NAME, accountName);
+                values.put(RawContacts.ACCOUNT_TYPE, accountType);
+                if (dataSet == null) {
+                    values.putNull(RawContacts.DATA_SET);
+                } else {
+                    values.put(RawContacts.DATA_SET, dataSet);
+                }
+                return;
+            }
+        }
+        throw new IllegalArgumentException(
+                "Not a valid combination of account name, type, and data set.");
+    }
+
+    public void setAccount(AccountWithDataSet accountWithDataSet) {
+        if (accountWithDataSet != null) {
+            setAccount(accountWithDataSet.name, accountWithDataSet.type,
+                    accountWithDataSet.dataSet);
+        } else {
+            setAccount(null, null, null);
+        }
+    }
+
+    public void setAccountToLocal() {
+        setAccount(null, null, null);
+    }
+
+    /**
+     * Creates and inserts a DataItem object that wraps the content values, and returns it.
+     */
+    public void addDataItemValues(ContentValues values) {
+        addNamedDataItemValues(Data.CONTENT_URI, values);
+    }
+
+    public NamedDataItem addNamedDataItemValues(Uri uri, ContentValues values) {
+        final NamedDataItem namedItem = new NamedDataItem(uri, values);
+        mDataItems.add(namedItem);
+        return namedItem;
+    }
+
+    public ArrayList<ContentValues> getContentValues() {
+        final ArrayList<ContentValues> list = Lists.newArrayListWithCapacity(mDataItems.size());
+        for (NamedDataItem dataItem : mDataItems) {
+            if (Data.CONTENT_URI.equals(dataItem.mUri)) {
+                list.add(dataItem.mContentValues);
+            }
+        }
+        return list;
+    }
+
+    public List<DataItem> getDataItems() {
+        final ArrayList<DataItem> list = Lists.newArrayListWithCapacity(mDataItems.size());
+        for (NamedDataItem dataItem : mDataItems) {
+            if (Data.CONTENT_URI.equals(dataItem.mUri)) {
+                list.add(DataItem.createFrom(dataItem.mContentValues));
+            }
+        }
+        return list;
+    }
+
+    public String toString() {
+        final StringBuilder sb = new StringBuilder();
+        sb.append("RawContact: ").append(mValues);
+        for (RawContact.NamedDataItem namedDataItem : mDataItems) {
+            sb.append("\n  ").append(namedDataItem.mUri);
+            sb.append("\n  -> ").append(namedDataItem.mContentValues);
+        }
+        return sb.toString();
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(mValues, mDataItems);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == null) return false;
+        if (getClass() != obj.getClass()) return false;
+
+        RawContact other = (RawContact) obj;
+        return Objects.equal(mValues, other.mValues) &&
+                Objects.equal(mDataItems, other.mDataItems);
+    }
+}
diff --git a/src/com/android/contacts/model/RawContactDelta.java b/src/com/android/contacts/model/RawContactDelta.java
new file mode 100644
index 0000000..6ee31ba
--- /dev/null
+++ b/src/com/android/contacts/model/RawContactDelta.java
@@ -0,0 +1,660 @@
+/*
+ * Copyright (C) 2009 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.ContentProviderOperation;
+import android.content.ContentProviderOperation.Builder;
+import android.content.ContentValues;
+import android.content.Context;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.BaseColumns;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Profile;
+import android.provider.ContactsContract.RawContacts;
+import android.util.Log;
+
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * Contains a {@link RawContact} and records any modifications separately so the
+ * original {@link RawContact} can be swapped out with a newer version and the
+ * changes still cleanly applied.
+ * <p>
+ * One benefit of this approach is that we can build changes entirely on an
+ * empty {@link RawContact}, which then becomes an insert {@link RawContacts} case.
+ * <p>
+ * When applying modifications over an {@link RawContact}, we try finding the
+ * original {@link Data#_ID} rows where the modifications took place. If those
+ * rows are missing from the new {@link RawContact}, we know the original data must
+ * be deleted, but to preserve the user modifications we treat as an insert.
+ */
+public class RawContactDelta implements Parcelable {
+    // TODO: optimize by using contentvalues pool, since we allocate so many of them
+
+    private static final String TAG = "EntityDelta";
+    private static final boolean DEBUG = false;
+
+    /**
+     * Direct values from {@link Entity#getEntityValues()}.
+     */
+    private ValuesDelta mValues;
+
+    /**
+     * URI used for contacts queries, by default it is set to query raw contacts.
+     * It can be set to query the profile's raw contact(s).
+     */
+    private Uri mContactsQueryUri = RawContacts.CONTENT_URI;
+
+    /**
+     * Internal map of children values from {@link Entity#getSubValues()}, which
+     * we store here sorted into {@link Data#MIMETYPE} bins.
+     */
+    private final HashMap<String, ArrayList<ValuesDelta>> mEntries = Maps.newHashMap();
+
+    public RawContactDelta() {
+    }
+
+    public RawContactDelta(ValuesDelta values) {
+        mValues = values;
+    }
+
+    /**
+     * Build an {@link RawContactDelta} using the given {@link RawContact} as a
+     * starting point; the "before" snapshot.
+     */
+    public static RawContactDelta fromBefore(RawContact before) {
+        final RawContactDelta rawContactDelta = new RawContactDelta();
+        rawContactDelta.mValues = ValuesDelta.fromBefore(before.getValues());
+        rawContactDelta.mValues.setIdColumn(RawContacts._ID);
+        for (final ContentValues values : before.getContentValues()) {
+            rawContactDelta.addEntry(ValuesDelta.fromBefore(values));
+        }
+        return rawContactDelta;
+    }
+
+    /**
+     * Merge the "after" values from the given {@link RawContactDelta} onto the
+     * "before" state represented by this {@link RawContactDelta}, discarding any
+     * existing "after" states. This is typically used when re-parenting changes
+     * onto an updated {@link Entity}.
+     */
+    public static RawContactDelta mergeAfter(RawContactDelta local, RawContactDelta remote) {
+        // Bail early if trying to merge delete with missing local
+        final ValuesDelta remoteValues = remote.mValues;
+        if (local == null && (remoteValues.isDelete() || remoteValues.isTransient())) return null;
+
+        // Create local version if none exists yet
+        if (local == null) local = new RawContactDelta();
+
+        if (DEBUG) {
+            final Long localVersion = (local.mValues == null) ? null : local.mValues
+                    .getAsLong(RawContacts.VERSION);
+            final Long remoteVersion = remote.mValues.getAsLong(RawContacts.VERSION);
+            Log.d(TAG, "Re-parenting from original version " + remoteVersion + " to "
+                    + localVersion);
+        }
+
+        // Create values if needed, and merge "after" changes
+        local.mValues = ValuesDelta.mergeAfter(local.mValues, remote.mValues);
+
+        // Find matching local entry for each remote values, or create
+        for (ArrayList<ValuesDelta> mimeEntries : remote.mEntries.values()) {
+            for (ValuesDelta remoteEntry : mimeEntries) {
+                final Long childId = remoteEntry.getId();
+
+                // Find or create local match and merge
+                final ValuesDelta localEntry = local.getEntry(childId);
+                final ValuesDelta merged = ValuesDelta.mergeAfter(localEntry, remoteEntry);
+
+                if (localEntry == null && merged != null) {
+                    // No local entry before, so insert
+                    local.addEntry(merged);
+                }
+            }
+        }
+
+        return local;
+    }
+
+    public ValuesDelta getValues() {
+        return mValues;
+    }
+
+    public boolean isContactInsert() {
+        return mValues.isInsert();
+    }
+
+    /**
+     * Get the {@link ValuesDelta} child marked as {@link Data#IS_PRIMARY},
+     * which may return null when no entry exists.
+     */
+    public ValuesDelta getPrimaryEntry(String mimeType) {
+        final ArrayList<ValuesDelta> mimeEntries = getMimeEntries(mimeType, false);
+        if (mimeEntries == null) return null;
+
+        for (ValuesDelta entry : mimeEntries) {
+            if (entry.isPrimary()) {
+                return entry;
+            }
+        }
+
+        // When no direct primary, return something
+        return mimeEntries.size() > 0 ? mimeEntries.get(0) : null;
+    }
+
+    /**
+     * calls {@link #getSuperPrimaryEntry(String, boolean)} with true
+     * @see #getSuperPrimaryEntry(String, boolean)
+     */
+    public ValuesDelta getSuperPrimaryEntry(String mimeType) {
+        return getSuperPrimaryEntry(mimeType, true);
+    }
+
+    /**
+     * Returns the super-primary entry for the given mime type
+     * @param forceSelection if true, will try to return some value even if a super-primary
+     *     doesn't exist (may be a primary, or just a random item
+     * @return
+     */
+    public ValuesDelta getSuperPrimaryEntry(String mimeType, boolean forceSelection) {
+        final ArrayList<ValuesDelta> mimeEntries = getMimeEntries(mimeType, false);
+        if (mimeEntries == null) return null;
+
+        ValuesDelta primary = null;
+        for (ValuesDelta entry : mimeEntries) {
+            if (entry.isSuperPrimary()) {
+                return entry;
+            } else if (entry.isPrimary()) {
+                primary = entry;
+            }
+        }
+
+        if (!forceSelection) {
+            return null;
+        }
+
+        // When no direct super primary, return something
+        if (primary != null) {
+            return primary;
+        }
+        return mimeEntries.size() > 0 ? mimeEntries.get(0) : null;
+    }
+
+    /**
+     * Return the AccountType that this raw-contact belongs to.
+     */
+    public AccountType getRawContactAccountType(Context context) {
+        ContentValues entityValues = getValues().getCompleteValues();
+        String type = entityValues.getAsString(RawContacts.ACCOUNT_TYPE);
+        String dataSet = entityValues.getAsString(RawContacts.DATA_SET);
+        return AccountTypeManager.getInstance(context).getAccountType(type, dataSet);
+    }
+
+    public Long getRawContactId() {
+        return getValues().getAsLong(RawContacts._ID);
+    }
+
+    public String getAccountName() {
+        return getValues().getAsString(RawContacts.ACCOUNT_NAME);
+    }
+
+    public String getAccountType() {
+        return getValues().getAsString(RawContacts.ACCOUNT_TYPE);
+    }
+
+    public String getDataSet() {
+        return getValues().getAsString(RawContacts.DATA_SET);
+    }
+
+    public AccountType getAccountType(AccountTypeManager manager) {
+        return manager.getAccountType(getAccountType(), getDataSet());
+    }
+
+    public AccountWithDataSet getAccountWithDataSet() {
+        return new AccountWithDataSet(getAccountName(), getAccountType(), getDataSet());
+    }
+
+    public boolean isVisible() {
+        return getValues().isVisible();
+    }
+
+    /**
+     * Return the list of child {@link ValuesDelta} from our optimized map,
+     * creating the list if requested.
+     */
+    private ArrayList<ValuesDelta> getMimeEntries(String mimeType, boolean lazyCreate) {
+        ArrayList<ValuesDelta> mimeEntries = mEntries.get(mimeType);
+        if (mimeEntries == null && lazyCreate) {
+            mimeEntries = Lists.newArrayList();
+            mEntries.put(mimeType, mimeEntries);
+        }
+        return mimeEntries;
+    }
+
+    public ArrayList<ValuesDelta> getMimeEntries(String mimeType) {
+        return getMimeEntries(mimeType, false);
+    }
+
+    public int getMimeEntriesCount(String mimeType, boolean onlyVisible) {
+        final ArrayList<ValuesDelta> mimeEntries = getMimeEntries(mimeType);
+        if (mimeEntries == null) return 0;
+
+        int count = 0;
+        for (ValuesDelta child : mimeEntries) {
+            // Skip deleted items when requesting only visible
+            if (onlyVisible && !child.isVisible()) continue;
+            count++;
+        }
+        return count;
+    }
+
+    public boolean hasMimeEntries(String mimeType) {
+        return mEntries.containsKey(mimeType);
+    }
+
+    public ValuesDelta addEntry(ValuesDelta entry) {
+        final String mimeType = entry.getMimetype();
+        getMimeEntries(mimeType, true).add(entry);
+        return entry;
+    }
+
+    public ArrayList<ContentValues> getContentValues() {
+        ArrayList<ContentValues> values = Lists.newArrayList();
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta entry : mimeEntries) {
+                if (!entry.isDelete()) {
+                    values.add(entry.getCompleteValues());
+                }
+            }
+        }
+        return values;
+    }
+
+    /**
+     * Find entry with the given {@link BaseColumns#_ID} value.
+     */
+    public ValuesDelta getEntry(Long childId) {
+        if (childId == null) {
+            // Requesting an "insert" entry, which has no "before"
+            return null;
+        }
+
+        // Search all children for requested entry
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta entry : mimeEntries) {
+                if (childId.equals(entry.getId())) {
+                    return entry;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Return the total number of {@link ValuesDelta} contained.
+     */
+    public int getEntryCount(boolean onlyVisible) {
+        int count = 0;
+        for (String mimeType : mEntries.keySet()) {
+            count += getMimeEntriesCount(mimeType, onlyVisible);
+        }
+        return count;
+    }
+
+    @Override
+    public boolean equals(Object object) {
+        if (object instanceof RawContactDelta) {
+            final RawContactDelta other = (RawContactDelta)object;
+
+            // Equality failed if parent values different
+            if (!other.mValues.equals(mValues)) return false;
+
+            for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+                for (ValuesDelta child : mimeEntries) {
+                    // Equality failed if any children unmatched
+                    if (!other.containsEntry(child)) return false;
+                }
+            }
+
+            // Passed all tests, so equal
+            return true;
+        }
+        return false;
+    }
+
+    private boolean containsEntry(ValuesDelta entry) {
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta child : mimeEntries) {
+                // Contained if we find any child that matches
+                if (child.equals(entry)) return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Mark this entire object deleted, including any {@link ValuesDelta}.
+     */
+    public void markDeleted() {
+        this.mValues.markDeleted();
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta child : mimeEntries) {
+                child.markDeleted();
+            }
+        }
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder builder = new StringBuilder();
+        builder.append("\n(");
+        builder.append("Uri=");
+        builder.append(mContactsQueryUri);
+        builder.append(", Values=");
+        builder.append(mValues != null ? mValues.toString() : "null");
+        builder.append(", Entries={");
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta child : mimeEntries) {
+                builder.append("\n\t");
+                child.toString(builder);
+            }
+        }
+        builder.append("\n})\n");
+        return builder.toString();
+    }
+
+    /**
+     * Consider building the given {@link ContentProviderOperation.Builder} and
+     * appending it to the given list, which only happens if builder is valid.
+     */
+    private void possibleAdd(ArrayList<ContentProviderOperation> diff,
+            ContentProviderOperation.Builder builder) {
+        if (builder != null) {
+            diff.add(builder.build());
+        }
+    }
+
+    /**
+     * For compatibility purpose, this method is copied from {@link #possibleAdd} and takes
+     * BuilderWrapper and an ArrayList of CPOWrapper as parameters.
+     */
+    private void possibleAddWrapper(ArrayList<CPOWrapper> diff, BuilderWrapper bw) {
+        if (bw != null && bw.getBuilder() != null) {
+            diff.add(new CPOWrapper(bw.getBuilder().build(), bw.getType()));
+        }
+    }
+
+    /**
+     * Build a list of {@link ContentProviderOperation} that will assert any
+     * "before" state hasn't changed. This is maintained separately so that all
+     * asserts can take place before any updates occur.
+     */
+    public void buildAssert(ArrayList<ContentProviderOperation> buildInto) {
+        final Builder builder = buildAssertHelper();
+        if (builder != null) {
+            buildInto.add(builder.build());
+        }
+    }
+
+    /**
+     * For compatibility purpose, this method is copied from {@link #buildAssert} and takes an
+     * ArrayList of CPOWrapper as parameter.
+     */
+    public void buildAssertWrapper(ArrayList<CPOWrapper> buildInto) {
+        final Builder builder = buildAssertHelper();
+        if (builder != null) {
+            buildInto.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_ASSERT));
+        }
+    }
+
+    private Builder buildAssertHelper() {
+        final boolean isContactInsert = mValues.isInsert();
+        ContentProviderOperation.Builder builder = null;
+        if (!isContactInsert) {
+            // Assert version is consistent while persisting changes
+            final Long beforeId = mValues.getId();
+            final Long beforeVersion = mValues.getAsLong(RawContacts.VERSION);
+            if (beforeId == null || beforeVersion == null) return builder;
+            builder = ContentProviderOperation.newAssertQuery(mContactsQueryUri);
+            builder.withSelection(RawContacts._ID + "=" + beforeId, null);
+            builder.withValue(RawContacts.VERSION, beforeVersion);
+        }
+        return builder;
+    }
+
+    /**
+     * Build a list of {@link ContentProviderOperation} that will transform the
+     * current "before" {@link Entity} state into the modified state which this
+     * {@link RawContactDelta} represents.
+     */
+    public void buildDiff(ArrayList<ContentProviderOperation> buildInto) {
+        final int firstIndex = buildInto.size();
+
+        final boolean isContactInsert = mValues.isInsert();
+        final boolean isContactDelete = mValues.isDelete();
+        final boolean isContactUpdate = !isContactInsert && !isContactDelete;
+
+        final Long beforeId = mValues.getId();
+
+        Builder builder;
+
+        if (isContactInsert) {
+            // TODO: for now simply disabling aggregation when a new contact is
+            // created on the phone.  In the future, will show aggregation suggestions
+            // after saving the contact.
+            mValues.put(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_SUSPENDED);
+        }
+
+        // Build possible operation at Contact level
+        builder = mValues.buildDiff(mContactsQueryUri);
+        possibleAdd(buildInto, builder);
+
+        // Build operations for all children
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta child : mimeEntries) {
+                // Ignore children if parent was deleted
+                if (isContactDelete) continue;
+
+                // Use the profile data URI if the contact is the profile.
+                if (mContactsQueryUri.equals(Profile.CONTENT_RAW_CONTACTS_URI)) {
+                    builder = child.buildDiff(Uri.withAppendedPath(Profile.CONTENT_URI,
+                            RawContacts.Data.CONTENT_DIRECTORY));
+                } else {
+                    builder = child.buildDiff(Data.CONTENT_URI);
+                }
+
+                if (child.isInsert()) {
+                    if (isContactInsert) {
+                        // Parent is brand new insert, so back-reference _id
+                        builder.withValueBackReference(Data.RAW_CONTACT_ID, firstIndex);
+                    } else {
+                        // Inserting under existing, so fill with known _id
+                        builder.withValue(Data.RAW_CONTACT_ID, beforeId);
+                    }
+                } else if (isContactInsert && builder != null) {
+                    // Child must be insert when Contact insert
+                    throw new IllegalArgumentException("When parent insert, child must be also");
+                }
+                possibleAdd(buildInto, builder);
+            }
+        }
+
+        final boolean addedOperations = buildInto.size() > firstIndex;
+        if (addedOperations && isContactUpdate) {
+            // Suspend aggregation while persisting updates
+            builder = buildSetAggregationMode(beforeId, RawContacts.AGGREGATION_MODE_SUSPENDED);
+            buildInto.add(firstIndex, builder.build());
+
+            // Restore aggregation mode as last operation
+            builder = buildSetAggregationMode(beforeId, RawContacts.AGGREGATION_MODE_DEFAULT);
+            buildInto.add(builder.build());
+        } else if (isContactInsert) {
+            // Restore aggregation mode as last operation
+            builder = ContentProviderOperation.newUpdate(mContactsQueryUri);
+            builder.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DEFAULT);
+            builder.withSelection(RawContacts._ID + "=?", new String[1]);
+            builder.withSelectionBackReference(0, firstIndex);
+            buildInto.add(builder.build());
+        }
+    }
+
+    /**
+     * For compatibility purpose, this method is copied from {@link #buildDiff} and takes an
+     * ArrayList of CPOWrapper as parameter.
+     */
+    public void buildDiffWrapper(ArrayList<CPOWrapper> buildInto) {
+        final int firstIndex = buildInto.size();
+
+        final boolean isContactInsert = mValues.isInsert();
+        final boolean isContactDelete = mValues.isDelete();
+        final boolean isContactUpdate = !isContactInsert && !isContactDelete;
+
+        final Long beforeId = mValues.getId();
+
+        if (isContactInsert) {
+            // TODO: for now simply disabling aggregation when a new contact is
+            // created on the phone.  In the future, will show aggregation suggestions
+            // after saving the contact.
+            mValues.put(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_SUSPENDED);
+        }
+
+        // Build possible operation at Contact level
+        BuilderWrapper bw = mValues.buildDiffWrapper(mContactsQueryUri);
+        possibleAddWrapper(buildInto, bw);
+
+        // Build operations for all children
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta child : mimeEntries) {
+                // Ignore children if parent was deleted
+                if (isContactDelete) continue;
+
+                // Use the profile data URI if the contact is the profile.
+                if (mContactsQueryUri.equals(Profile.CONTENT_RAW_CONTACTS_URI)) {
+                    bw = child.buildDiffWrapper(Uri.withAppendedPath(Profile.CONTENT_URI,
+                            RawContacts.Data.CONTENT_DIRECTORY));
+                } else {
+                    bw = child.buildDiffWrapper(Data.CONTENT_URI);
+                }
+
+                if (child.isInsert()) {
+                    if (isContactInsert) {
+                        // Parent is brand new insert, so back-reference _id
+                        bw.getBuilder().withValueBackReference(Data.RAW_CONTACT_ID, firstIndex);
+                    } else {
+                        // Inserting under existing, so fill with known _id
+                        bw.getBuilder().withValue(Data.RAW_CONTACT_ID, beforeId);
+                    }
+                } else if (isContactInsert && bw != null && bw.getBuilder() != null) {
+                    // Child must be insert when Contact insert
+                    throw new IllegalArgumentException("When parent insert, child must be also");
+                }
+                possibleAddWrapper(buildInto, bw);
+            }
+        }
+
+        final boolean addedOperations = buildInto.size() > firstIndex;
+        if (addedOperations && isContactUpdate) {
+            // Suspend aggregation while persisting updates
+            Builder builder =
+                    buildSetAggregationMode(beforeId, RawContacts.AGGREGATION_MODE_SUSPENDED);
+            buildInto.add(firstIndex, new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+
+            // Restore aggregation mode as last operation
+            builder = buildSetAggregationMode(beforeId, RawContacts.AGGREGATION_MODE_DEFAULT);
+            buildInto.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+        } else if (isContactInsert) {
+            // Restore aggregation mode as last operation
+            Builder builder = ContentProviderOperation.newUpdate(mContactsQueryUri);
+            builder.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DEFAULT);
+            builder.withSelection(RawContacts._ID + "=?", new String[1]);
+            builder.withSelectionBackReference(0, firstIndex);
+            buildInto.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+        }
+    }
+
+    /**
+     * Build a {@link ContentProviderOperation} that changes
+     * {@link RawContacts#AGGREGATION_MODE} to the given value.
+     */
+    protected Builder buildSetAggregationMode(Long beforeId, int mode) {
+        Builder builder = ContentProviderOperation.newUpdate(mContactsQueryUri);
+        builder.withValue(RawContacts.AGGREGATION_MODE, mode);
+        builder.withSelection(RawContacts._ID + "=" + beforeId, null);
+        return builder;
+    }
+
+    /** {@inheritDoc} */
+    public int describeContents() {
+        // Nothing special about this parcel
+        return 0;
+    }
+
+    /** {@inheritDoc} */
+    public void writeToParcel(Parcel dest, int flags) {
+        final int size = this.getEntryCount(false);
+        dest.writeInt(size);
+        dest.writeParcelable(mValues, flags);
+        dest.writeParcelable(mContactsQueryUri, flags);
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta child : mimeEntries) {
+                dest.writeParcelable(child, flags);
+            }
+        }
+    }
+
+    public void readFromParcel(Parcel source) {
+        final ClassLoader loader = getClass().getClassLoader();
+        final int size = source.readInt();
+        mValues = source.<ValuesDelta> readParcelable(loader);
+        mContactsQueryUri = source.<Uri> readParcelable(loader);
+        for (int i = 0; i < size; i++) {
+            final ValuesDelta child = source.<ValuesDelta> readParcelable(loader);
+            this.addEntry(child);
+        }
+    }
+
+    /**
+     * Used to set the query URI to the profile URI to store profiles.
+     */
+    public void setProfileQueryUri() {
+        mContactsQueryUri = Profile.CONTENT_RAW_CONTACTS_URI;
+    }
+
+    public static final Parcelable.Creator<RawContactDelta> CREATOR =
+            new Parcelable.Creator<RawContactDelta>() {
+        public RawContactDelta createFromParcel(Parcel in) {
+            final RawContactDelta state = new RawContactDelta();
+            state.readFromParcel(in);
+            return state;
+        }
+
+        public RawContactDelta[] newArray(int size) {
+            return new RawContactDelta[size];
+        }
+    };
+
+}
diff --git a/src/com/android/contacts/model/RawContactDeltaList.java b/src/com/android/contacts/model/RawContactDeltaList.java
new file mode 100644
index 0000000..2fe475a
--- /dev/null
+++ b/src/com/android/contacts/model/RawContactDeltaList.java
@@ -0,0 +1,463 @@
+/*
+ * Copyright (C) 2009 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.ContentProviderOperation;
+import android.content.ContentProviderOperation.Builder;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Entity;
+import android.content.EntityIterator;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.ContactsContract.AggregationExceptions;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.RawContacts;
+import android.util.Log;
+
+import com.android.contacts.compat.CompatUtils;
+
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+
+/**
+ * Container for multiple {@link RawContactDelta} objects, usually when editing
+ * together as an entire aggregate. Provides convenience methods for parceling
+ * and applying another {@link RawContactDeltaList} over it.
+ */
+public class RawContactDeltaList extends ArrayList<RawContactDelta> implements Parcelable {
+    private static final String TAG = RawContactDeltaList.class.getSimpleName();
+    private static final boolean VERBOSE_LOGGING = Log.isLoggable(TAG, Log.VERBOSE);
+
+    private boolean mSplitRawContacts;
+    private long[] mJoinWithRawContactIds;
+
+    public RawContactDeltaList() {
+    }
+
+    /**
+     * Create an {@link RawContactDeltaList} based on {@link Contacts} specified by the
+     * given query parameters. This closes the {@link EntityIterator} when
+     * finished, so it doesn't subscribe to updates.
+     */
+    public static RawContactDeltaList fromQuery(Uri entityUri, ContentResolver resolver,
+            String selection, String[] selectionArgs, String sortOrder) {
+        final EntityIterator iterator = RawContacts.newEntityIterator(
+                resolver.query(entityUri, null, selection, selectionArgs, sortOrder));
+        try {
+            return fromIterator(iterator);
+        } finally {
+            iterator.close();
+        }
+    }
+
+    /**
+     * Create an {@link RawContactDeltaList} that contains the entities of the Iterator as before
+     * values.  This function can be passed an iterator of Entity objects or an iterator of
+     * RawContact objects.
+     */
+    public static RawContactDeltaList fromIterator(Iterator<?> iterator) {
+        final RawContactDeltaList state = new RawContactDeltaList();
+        state.addAll(iterator);
+        return state;
+    }
+
+    public void addAll(Iterator<?> iterator) {
+        // Perform background query to pull contact details
+        while (iterator.hasNext()) {
+            // Read all contacts into local deltas to prepare for edits
+            Object nextObject = iterator.next();
+            final RawContact before = nextObject instanceof Entity
+                    ? RawContact.createFrom((Entity) nextObject)
+                    : (RawContact) nextObject;
+            final RawContactDelta rawContactDelta = RawContactDelta.fromBefore(before);
+            add(rawContactDelta);
+        }
+    }
+
+    /**
+     * Merge the "after" values from the given {@link RawContactDeltaList}, discarding any
+     * previous "after" states. This is typically used when re-parenting user
+     * edits onto an updated {@link RawContactDeltaList}.
+     */
+    public static RawContactDeltaList mergeAfter(RawContactDeltaList local,
+            RawContactDeltaList remote) {
+        if (local == null) local = new RawContactDeltaList();
+
+        // For each entity in the remote set, try matching over existing
+        for (RawContactDelta remoteEntity : remote) {
+            final Long rawContactId = remoteEntity.getValues().getId();
+
+            // Find or create local match and merge
+            final RawContactDelta localEntity = local.getByRawContactId(rawContactId);
+            final RawContactDelta merged = RawContactDelta.mergeAfter(localEntity, remoteEntity);
+
+            if (localEntity == null && merged != null) {
+                // No local entry before, so insert
+                local.add(merged);
+            }
+        }
+
+        return local;
+    }
+
+    /**
+     * Build a list of {@link CPOWrapper} that will transform all
+     * the "before" {@link Entity} states into the modified state which all
+     * {@link RawContactDelta} objects represent. This method specifically creates
+     * any {@link AggregationExceptions} rules needed to groups edits together.
+     */
+    public ArrayList<CPOWrapper> buildDiffWrapper() {
+        if (VERBOSE_LOGGING) {
+            Log.v(TAG, "buildDiffWrapper: list=" + toString());
+        }
+        final ArrayList<CPOWrapper> diffWrapper = Lists.newArrayList();
+
+        final long rawContactId = this.findRawContactId();
+        int firstInsertRow = -1;
+
+        // First pass enforces versions remain consistent
+        for (RawContactDelta delta : this) {
+            delta.buildAssertWrapper(diffWrapper);
+        }
+
+        final int assertMark = diffWrapper.size();
+        int backRefs[] = new int[size()];
+
+        int rawContactIndex = 0;
+
+        // Second pass builds actual operations
+        for (RawContactDelta delta : this) {
+            final int firstBatch = diffWrapper.size();
+            final boolean isInsert = delta.isContactInsert();
+            backRefs[rawContactIndex++] = isInsert ? firstBatch : -1;
+
+            delta.buildDiffWrapper(diffWrapper);
+
+            // If the user chose to join with some other existing raw contact(s) at save time,
+            // add aggregation exceptions for all those raw contacts.
+            if (mJoinWithRawContactIds != null) {
+                for (Long joinedRawContactId : mJoinWithRawContactIds) {
+                    final Builder builder = beginKeepTogether();
+                    builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, joinedRawContactId);
+                    if (rawContactId != -1) {
+                        builder.withValue(AggregationExceptions.RAW_CONTACT_ID2, rawContactId);
+                    } else {
+                        builder.withValueBackReference(
+                                AggregationExceptions.RAW_CONTACT_ID2, firstBatch);
+                    }
+                    diffWrapper.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+                }
+            }
+
+            // Only create rules for inserts
+            if (!isInsert) continue;
+
+            // If we are going to split all contacts, there is no point in first combining them
+            if (mSplitRawContacts) continue;
+
+            if (rawContactId != -1) {
+                // Has existing contact, so bind to it strongly
+                final Builder builder = beginKeepTogether();
+                builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, rawContactId);
+                builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID2, firstBatch);
+                diffWrapper.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+
+            } else if (firstInsertRow == -1) {
+                // First insert case, so record row
+                firstInsertRow = firstBatch;
+
+            } else {
+                // Additional insert case, so point at first insert
+                final Builder builder = beginKeepTogether();
+                builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID1,
+                        firstInsertRow);
+                builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID2, firstBatch);
+                diffWrapper.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+            }
+        }
+
+        if (mSplitRawContacts) {
+            buildSplitContactDiffWrapper(diffWrapper, backRefs);
+        }
+
+        // No real changes if only left with asserts
+        if (diffWrapper.size() == assertMark) {
+            diffWrapper.clear();
+        }
+        if (VERBOSE_LOGGING) {
+            Log.v(TAG, "buildDiff: ops=" + diffToStringWrapper(diffWrapper));
+        }
+        return diffWrapper;
+    }
+
+    private static String diffToString(ArrayList<ContentProviderOperation> ops) {
+        final StringBuilder sb = new StringBuilder();
+        sb.append("[\n");
+        for (ContentProviderOperation op : ops) {
+            sb.append(op.toString());
+            sb.append(",\n");
+        }
+        sb.append("]\n");
+        return sb.toString();
+    }
+
+    /**
+     * For compatibility purpose.
+     */
+    private static String diffToStringWrapper(ArrayList<CPOWrapper> cpoWrappers) {
+        ArrayList<ContentProviderOperation> ops = Lists.newArrayList();
+        for (CPOWrapper cpoWrapper : cpoWrappers) {
+            ops.add(cpoWrapper.getOperation());
+        }
+        return diffToString(ops);
+    }
+
+    /**
+     * Start building a {@link ContentProviderOperation} that will keep two
+     * {@link RawContacts} together.
+     */
+    protected Builder beginKeepTogether() {
+        final Builder builder = ContentProviderOperation
+                .newUpdate(AggregationExceptions.CONTENT_URI);
+        builder.withValue(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_TOGETHER);
+        return builder;
+    }
+
+    /**
+     * Builds {@link AggregationExceptions} to split all constituent raw contacts into
+     * separate contacts.
+     */
+    private void buildSplitContactDiffWrapper(final ArrayList<CPOWrapper> diff, int[] backRefs) {
+        final int count = size();
+        for (int i = 0; i < count; i++) {
+            for (int j = 0; j < count; j++) {
+                if (i == j) {
+                    continue;
+                }
+                final Builder builder = buildSplitContactDiffHelper(i, j, backRefs);
+                if (builder != null) {
+                    diff.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+                }
+            }
+        }
+    }
+
+    private Builder buildSplitContactDiffHelper(int index1, int index2, int[] backRefs) {
+        final Builder builder =
+                ContentProviderOperation.newUpdate(AggregationExceptions.CONTENT_URI);
+        builder.withValue(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_SEPARATE);
+
+        Long rawContactId1 = get(index1).getValues().getAsLong(RawContacts._ID);
+        int backRef1 = backRefs[index1];
+        if (rawContactId1 != null && rawContactId1 >= 0) {
+            builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, rawContactId1);
+        } else if (backRef1 >= 0) {
+            builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID1, backRef1);
+        } else {
+            return null;
+        }
+
+        Long rawContactId2 = get(index2).getValues().getAsLong(RawContacts._ID);
+        int backRef2 = backRefs[index2];
+        if (rawContactId2 != null && rawContactId2 >= 0) {
+            builder.withValue(AggregationExceptions.RAW_CONTACT_ID2, rawContactId2);
+        } else if (backRef2 >= 0) {
+            builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID2, backRef2);
+        } else {
+            return null;
+        }
+        return builder;
+    }
+
+    /**
+     * Search all contained {@link RawContactDelta} for the first one with an
+     * existing {@link RawContacts#_ID} value. Usually used when creating
+     * {@link AggregationExceptions} during an update.
+     */
+    public long findRawContactId() {
+        for (RawContactDelta delta : this) {
+            final Long rawContactId = delta.getValues().getAsLong(RawContacts._ID);
+            if (rawContactId != null && rawContactId >= 0) {
+                return rawContactId;
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Find {@link RawContacts#_ID} of the requested {@link RawContactDelta}.
+     */
+    public Long getRawContactId(int index) {
+        if (index >= 0 && index < this.size()) {
+            final RawContactDelta delta = this.get(index);
+            final ValuesDelta values = delta.getValues();
+            if (values.isVisible()) {
+                return values.getAsLong(RawContacts._ID);
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Find the raw-contact (an {@link RawContactDelta}) with the specified ID.
+     */
+    public RawContactDelta getByRawContactId(Long rawContactId) {
+        final int index = this.indexOfRawContactId(rawContactId);
+        return (index == -1) ? null : this.get(index);
+    }
+
+    /**
+     * Find index of given {@link RawContacts#_ID} when present.
+     */
+    public int indexOfRawContactId(Long rawContactId) {
+        if (rawContactId == null) return -1;
+        final int size = this.size();
+        for (int i = 0; i < size; i++) {
+            final Long currentId = getRawContactId(i);
+            if (rawContactId.equals(currentId)) {
+                return i;
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Return the index of the first RawContactDelta corresponding to a writable raw-contact, or -1.
+     * */
+    public int indexOfFirstWritableRawContact(Context context) {
+        // Find the first writable entity.
+        int entityIndex = 0;
+        for (RawContactDelta delta : this) {
+            if (delta.getRawContactAccountType(context).areContactsWritable()) return entityIndex;
+            entityIndex++;
+        }
+        return -1;
+    }
+
+    /**  Return the first RawContactDelta corresponding to a writable raw-contact, or null. */
+    public RawContactDelta getFirstWritableRawContact(Context context) {
+        final int index = indexOfFirstWritableRawContact(context);
+        return (index == -1) ? null : get(index);
+    }
+
+    public ValuesDelta getSuperPrimaryEntry(final String mimeType) {
+        ValuesDelta primary = null;
+        ValuesDelta randomEntry = null;
+        for (RawContactDelta delta : this) {
+            final ArrayList<ValuesDelta> mimeEntries = delta.getMimeEntries(mimeType);
+            if (mimeEntries == null) return null;
+
+            for (ValuesDelta entry : mimeEntries) {
+                if (entry.isSuperPrimary()) {
+                    return entry;
+                } else if (primary == null && entry.isPrimary()) {
+                    primary = entry;
+                } else if (randomEntry == null) {
+                    randomEntry = entry;
+                }
+            }
+        }
+        // When no direct super primary, return something
+        if (primary != null) {
+            return primary;
+        }
+        return randomEntry;
+    }
+
+    /**
+     * Sets a flag that will split ("explode") the raw_contacts into seperate contacts
+     */
+    public void markRawContactsForSplitting() {
+        mSplitRawContacts = true;
+    }
+
+    public boolean isMarkedForSplitting() {
+        return mSplitRawContacts;
+    }
+
+    public void setJoinWithRawContacts(long[] rawContactIds) {
+        mJoinWithRawContactIds = rawContactIds;
+    }
+
+    public boolean isMarkedForJoining() {
+        return mJoinWithRawContactIds != null && mJoinWithRawContactIds.length > 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public int describeContents() {
+        // Nothing special about this parcel
+        return 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        final int size = this.size();
+        dest.writeInt(size);
+        for (RawContactDelta delta : this) {
+            dest.writeParcelable(delta, flags);
+        }
+        dest.writeLongArray(mJoinWithRawContactIds);
+        dest.writeInt(mSplitRawContacts ? 1 : 0);
+    }
+
+    @SuppressWarnings("unchecked")
+    public void readFromParcel(Parcel source) {
+        final ClassLoader loader = getClass().getClassLoader();
+        final int size = source.readInt();
+        for (int i = 0; i < size; i++) {
+            this.add(source.<RawContactDelta> readParcelable(loader));
+        }
+        mJoinWithRawContactIds = source.createLongArray();
+        mSplitRawContacts = source.readInt() != 0;
+    }
+
+    public static final Parcelable.Creator<RawContactDeltaList> CREATOR =
+            new Parcelable.Creator<RawContactDeltaList>() {
+        @Override
+        public RawContactDeltaList createFromParcel(Parcel in) {
+            final RawContactDeltaList state = new RawContactDeltaList();
+            state.readFromParcel(in);
+            return state;
+        }
+
+        @Override
+        public RawContactDeltaList[] newArray(int size) {
+            return new RawContactDeltaList[size];
+        }
+    };
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("(");
+        sb.append("Split=");
+        sb.append(mSplitRawContacts);
+        sb.append(", Join=[");
+        sb.append(Arrays.toString(mJoinWithRawContactIds));
+        sb.append("], Values=");
+        sb.append(super.toString());
+        sb.append(")");
+        return sb.toString();
+    }
+}
diff --git a/src/com/android/contacts/model/RawContactModifier.java b/src/com/android/contacts/model/RawContactModifier.java
new file mode 100644
index 0000000..789bd10
--- /dev/null
+++ b/src/com/android/contacts/model/RawContactModifier.java
@@ -0,0 +1,1356 @@
+/*
+ * Copyright (C) 2009 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.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.BaseTypes;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.Relation;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Intents;
+import android.provider.ContactsContract.Intents.Insert;
+import android.provider.ContactsContract.RawContacts;
+import android.text.TextUtils;
+import android.util.Log;
+import android.util.SparseArray;
+import android.util.SparseIntArray;
+
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountType.EditField;
+import com.android.contacts.model.account.AccountType.EditType;
+import com.android.contacts.model.account.AccountType.EventEditType;
+import com.android.contacts.model.account.GoogleAccountType;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.model.dataitem.PhoneDataItem;
+import com.android.contacts.model.dataitem.StructuredNameDataItem;
+import com.android.contacts.util.CommonDateUtils;
+import com.android.contacts.util.DateUtils;
+import com.android.contacts.util.NameConverter;
+
+import java.text.ParsePosition;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+
+/**
+ * Helper methods for modifying an {@link RawContactDelta}, such as inserting
+ * new rows, or enforcing {@link AccountType}.
+ */
+public class RawContactModifier {
+    private static final String TAG = RawContactModifier.class.getSimpleName();
+
+    /** Set to true in order to view logs on entity operations */
+    private static final boolean DEBUG = false;
+
+    /**
+     * For the given {@link RawContactDelta}, determine if the given
+     * {@link DataKind} could be inserted under specific
+     * {@link AccountType}.
+     */
+    public static boolean canInsert(RawContactDelta state, DataKind kind) {
+        // Insert possible when have valid types and under overall maximum
+        final int visibleCount = state.getMimeEntriesCount(kind.mimeType, true);
+        final boolean validTypes = hasValidTypes(state, kind);
+        final boolean validOverall = (kind.typeOverallMax == -1)
+                || (visibleCount < kind.typeOverallMax);
+        return (validTypes && validOverall);
+    }
+
+    public static boolean hasValidTypes(RawContactDelta state, DataKind kind) {
+        if (RawContactModifier.hasEditTypes(kind)) {
+            return (getValidTypes(state, kind, null, true, null, true).size() > 0);
+        } else {
+            return true;
+        }
+    }
+
+    /**
+     * Ensure that at least one of the given {@link DataKind} exists in the
+     * given {@link RawContactDelta} state, and try creating one if none exist.
+     * @return The child (either newly created or the first existing one), or null if the
+     *     account doesn't support this {@link DataKind}.
+     */
+    public static ValuesDelta ensureKindExists(
+            RawContactDelta state, AccountType accountType, String mimeType) {
+        final DataKind kind = accountType.getKindForMimetype(mimeType);
+        final boolean hasChild = state.getMimeEntriesCount(mimeType, true) > 0;
+
+        if (kind != null) {
+            if (hasChild) {
+                // Return the first entry.
+                return state.getMimeEntries(mimeType).get(0);
+            } else {
+                // Create child when none exists and valid kind
+                final ValuesDelta child = insertChild(state, kind);
+                if (kind.mimeType.equals(Photo.CONTENT_ITEM_TYPE)) {
+                    child.setFromTemplate(true);
+                }
+                return child;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * For the given {@link RawContactDelta} and {@link DataKind}, return the
+     * list possible {@link EditType} options available based on
+     * {@link AccountType}.
+     *
+     * @param forceInclude Always include this {@link EditType} in the returned
+     *            list, even when an otherwise-invalid choice. This is useful
+     *            when showing a dialog that includes the current type.
+     * @param includeSecondary If true, include any valid types marked as
+     *            {@link EditType#secondary}.
+     * @param typeCount When provided, will be used for the frequency count of
+     *            each {@link EditType}, otherwise built using
+     *            {@link #getTypeFrequencies(RawContactDelta, DataKind)}.
+     * @param checkOverall If true, check if the overall number of types is under limit.
+     */
+    public static ArrayList<EditType> getValidTypes(RawContactDelta state, DataKind kind,
+            EditType forceInclude, boolean includeSecondary, SparseIntArray typeCount,
+            boolean checkOverall) {
+        final ArrayList<EditType> validTypes = new ArrayList<EditType>();
+
+        // Bail early if no types provided
+        if (!hasEditTypes(kind)) return validTypes;
+
+        if (typeCount == null) {
+            // Build frequency counts if not provided
+            typeCount = getTypeFrequencies(state, kind);
+        }
+
+        // Build list of valid types
+        boolean validOverall = true;
+        if (checkOverall) {
+            final int overallCount = typeCount.get(FREQUENCY_TOTAL);
+            validOverall = (kind.typeOverallMax == -1 ? true
+                    : overallCount < kind.typeOverallMax);
+        }
+
+        for (EditType type : kind.typeList) {
+            final boolean validSpecific = (type.specificMax == -1 ? true : typeCount
+                    .get(type.rawValue) < type.specificMax);
+            final boolean validSecondary = (includeSecondary ? true : !type.secondary);
+            final boolean forcedInclude = type.equals(forceInclude);
+            if (forcedInclude || (validOverall && validSpecific && validSecondary)) {
+                // Type is valid when no limit, under limit, or forced include
+                validTypes.add(type);
+            }
+        }
+
+        return validTypes;
+    }
+
+    private static final int FREQUENCY_TOTAL = Integer.MIN_VALUE;
+
+    /**
+     * Count up the frequency that each {@link EditType} appears in the given
+     * {@link RawContactDelta}. The returned {@link SparseIntArray} maps from
+     * {@link EditType#rawValue} to counts, with the total overall count stored
+     * as {@link #FREQUENCY_TOTAL}.
+     */
+    private static SparseIntArray getTypeFrequencies(RawContactDelta state, DataKind kind) {
+        final SparseIntArray typeCount = new SparseIntArray();
+
+        // Find all entries for this kind, bailing early if none found
+        final List<ValuesDelta> mimeEntries = state.getMimeEntries(kind.mimeType);
+        if (mimeEntries == null) return typeCount;
+
+        int totalCount = 0;
+        for (ValuesDelta entry : mimeEntries) {
+            // Only count visible entries
+            if (!entry.isVisible()) continue;
+            totalCount++;
+
+            final EditType type = getCurrentType(entry, kind);
+            if (type != null) {
+                final int count = typeCount.get(type.rawValue);
+                typeCount.put(type.rawValue, count + 1);
+            }
+        }
+        typeCount.put(FREQUENCY_TOTAL, totalCount);
+        return typeCount;
+    }
+
+    /**
+     * Check if the given {@link DataKind} has multiple types that should be
+     * displayed for users to pick.
+     */
+    public static boolean hasEditTypes(DataKind kind) {
+        return kind != null && kind.typeList != null && kind.typeList.size() > 0;
+    }
+
+    /**
+     * Find the {@link EditType} that describes the given
+     * {@link ValuesDelta} row, assuming the given {@link DataKind} dictates
+     * the possible types.
+     */
+    public static EditType getCurrentType(ValuesDelta entry, DataKind kind) {
+        final Long rawValue = entry.getAsLong(kind.typeColumn);
+        if (rawValue == null) return null;
+        return getType(kind, rawValue.intValue());
+    }
+
+    /**
+     * Find the {@link EditType} that describes the given {@link ContentValues} row,
+     * assuming the given {@link DataKind} dictates the possible types.
+     */
+    public static EditType getCurrentType(ContentValues entry, DataKind kind) {
+        if (kind.typeColumn == null) return null;
+        final Integer rawValue = entry.getAsInteger(kind.typeColumn);
+        if (rawValue == null) return null;
+        return getType(kind, rawValue);
+    }
+
+    /**
+     * Find the {@link EditType} that describes the given {@link Cursor} row,
+     * assuming the given {@link DataKind} dictates the possible types.
+     */
+    public static EditType getCurrentType(Cursor cursor, DataKind kind) {
+        if (kind.typeColumn == null) return null;
+        final int index = cursor.getColumnIndex(kind.typeColumn);
+        if (index == -1) return null;
+        final int rawValue = cursor.getInt(index);
+        return getType(kind, rawValue);
+    }
+
+    /**
+     * Find the {@link EditType} with the given {@link EditType#rawValue}.
+     */
+    public static EditType getType(DataKind kind, int rawValue) {
+        for (EditType type : kind.typeList) {
+            if (type.rawValue == rawValue) {
+                return type;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Return the precedence for the the given {@link EditType#rawValue}, where
+     * lower numbers are higher precedence.
+     */
+    public static int getTypePrecedence(DataKind kind, int rawValue) {
+        for (int i = 0; i < kind.typeList.size(); i++) {
+            final EditType type = kind.typeList.get(i);
+            if (type.rawValue == rawValue) {
+                return i;
+            }
+        }
+        return Integer.MAX_VALUE;
+    }
+
+    /**
+     * Find the best {@link EditType} for a potential insert. The "best" is the
+     * first primary type that doesn't already exist. When all valid types
+     * exist, we pick the last valid option.
+     */
+    public static EditType getBestValidType(RawContactDelta state, DataKind kind,
+            boolean includeSecondary, int exactValue) {
+        // Shortcut when no types
+        if (kind == null || kind.typeColumn == null) return null;
+
+        // Find type counts and valid primary types, bail if none
+        final SparseIntArray typeCount = getTypeFrequencies(state, kind);
+        final ArrayList<EditType> validTypes = getValidTypes(state, kind, null, includeSecondary,
+                typeCount, /*checkOverall=*/ true);
+        if (validTypes.size() == 0) return null;
+
+        // Keep track of the last valid type
+        final EditType lastType = validTypes.get(validTypes.size() - 1);
+
+        // Remove any types that already exist
+        Iterator<EditType> iterator = validTypes.iterator();
+        while (iterator.hasNext()) {
+            final EditType type = iterator.next();
+            final int count = typeCount.get(type.rawValue);
+
+            if (exactValue == type.rawValue) {
+                // Found exact value match
+                return type;
+            }
+
+            if (count > 0) {
+                // Type already appears, so don't consider
+                iterator.remove();
+            }
+        }
+
+        // Use the best remaining, otherwise the last valid
+        if (validTypes.size() > 0) {
+            return validTypes.get(0);
+        } else {
+            return lastType;
+        }
+    }
+
+    /**
+     * Insert a new child of kind {@link DataKind} into the given
+     * {@link RawContactDelta}. Tries using the best {@link EditType} found using
+     * {@link #getBestValidType(RawContactDelta, DataKind, boolean, int)}.
+     */
+    public static ValuesDelta insertChild(RawContactDelta state, DataKind kind) {
+        // Bail early if invalid kind
+        if (kind == null) return null;
+        // First try finding a valid primary
+        EditType bestType = getBestValidType(state, kind, false, Integer.MIN_VALUE);
+        if (bestType == null) {
+            // No valid primary found, so expand search to secondary
+            bestType = getBestValidType(state, kind, true, Integer.MIN_VALUE);
+        }
+        return insertChild(state, kind, bestType);
+    }
+
+    /**
+     * Insert a new child of kind {@link DataKind} into the given
+     * {@link RawContactDelta}, marked with the given {@link EditType}.
+     */
+    public static ValuesDelta insertChild(RawContactDelta state, DataKind kind, EditType type) {
+        // Bail early if invalid kind
+        if (kind == null) return null;
+        final ContentValues after = new ContentValues();
+
+        // Our parent CONTACT_ID is provided later
+        after.put(Data.MIMETYPE, kind.mimeType);
+
+        // Fill-in with any requested default values
+        if (kind.defaultValues != null) {
+            after.putAll(kind.defaultValues);
+        }
+
+        if (kind.typeColumn != null && type != null) {
+            // Set type, if provided
+            after.put(kind.typeColumn, type.rawValue);
+        }
+
+        final ValuesDelta child = ValuesDelta.fromAfter(after);
+        state.addEntry(child);
+        return child;
+    }
+
+    /**
+     * Processing to trim any empty {@link ValuesDelta} and {@link RawContactDelta}
+     * from the given {@link RawContactDeltaList}, assuming the given {@link AccountTypeManager}
+     * dictates the structure for various fields. This method ignores rows not
+     * described by the {@link AccountType}.
+     */
+    public static void trimEmpty(RawContactDeltaList set, AccountTypeManager accountTypes) {
+        for (RawContactDelta state : set) {
+            ValuesDelta values = state.getValues();
+            final String accountType = values.getAsString(RawContacts.ACCOUNT_TYPE);
+            final String dataSet = values.getAsString(RawContacts.DATA_SET);
+            final AccountType type = accountTypes.getAccountType(accountType, dataSet);
+            trimEmpty(state, type);
+        }
+    }
+
+    public static boolean hasChanges(RawContactDeltaList set, AccountTypeManager accountTypes) {
+        return hasChanges(set, accountTypes, /* excludedMimeTypes =*/ null);
+    }
+
+    public static boolean hasChanges(RawContactDeltaList set, AccountTypeManager accountTypes,
+            Set<String> excludedMimeTypes) {
+        if (set.isMarkedForSplitting() || set.isMarkedForJoining()) {
+            return true;
+        }
+
+        for (RawContactDelta state : set) {
+            ValuesDelta values = state.getValues();
+            final String accountType = values.getAsString(RawContacts.ACCOUNT_TYPE);
+            final String dataSet = values.getAsString(RawContacts.DATA_SET);
+            final AccountType type = accountTypes.getAccountType(accountType, dataSet);
+            if (hasChanges(state, type, excludedMimeTypes)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Processing to trim any empty {@link ValuesDelta} rows from the given
+     * {@link RawContactDelta}, assuming the given {@link AccountType} dictates
+     * the structure for various fields. This method ignores rows not described
+     * by the {@link AccountType}.
+     */
+    public static void trimEmpty(RawContactDelta state, AccountType accountType) {
+        boolean hasValues = false;
+
+        // Walk through entries for each well-known kind
+        for (DataKind kind : accountType.getSortedDataKinds()) {
+            final String mimeType = kind.mimeType;
+            final ArrayList<ValuesDelta> entries = state.getMimeEntries(mimeType);
+            if (entries == null) continue;
+
+            for (ValuesDelta entry : entries) {
+                // Skip any values that haven't been touched
+                final boolean touched = entry.isInsert() || entry.isUpdate();
+                if (!touched) {
+                    hasValues = true;
+                    continue;
+                }
+
+                // Test and remove this row if empty and it isn't a photo from google
+                final boolean isGoogleAccount = TextUtils.equals(GoogleAccountType.ACCOUNT_TYPE,
+                        state.getValues().getAsString(RawContacts.ACCOUNT_TYPE));
+                final boolean isPhoto = TextUtils.equals(Photo.CONTENT_ITEM_TYPE, kind.mimeType);
+                final boolean isGooglePhoto = isPhoto && isGoogleAccount;
+
+                if (RawContactModifier.isEmpty(entry, kind) && !isGooglePhoto) {
+                    if (DEBUG) {
+                        Log.v(TAG, "Trimming: " + entry.toString());
+                    }
+                    entry.markDeleted();
+                } else if (!entry.isFromTemplate()) {
+                    hasValues = true;
+                }
+            }
+        }
+        if (!hasValues) {
+            // Trim overall entity if no children exist
+            state.markDeleted();
+        }
+    }
+
+    private static boolean hasChanges(RawContactDelta state, AccountType accountType,
+            Set<String> excludedMimeTypes) {
+        for (DataKind kind : accountType.getSortedDataKinds()) {
+            final String mimeType = kind.mimeType;
+            if (excludedMimeTypes != null && excludedMimeTypes.contains(mimeType)) continue;
+            final ArrayList<ValuesDelta> entries = state.getMimeEntries(mimeType);
+            if (entries == null) continue;
+
+            for (ValuesDelta entry : entries) {
+                // An empty Insert must be ignored, because it won't save anything (an example
+                // is an empty name that stays empty)
+                final boolean isRealInsert = entry.isInsert() && !isEmpty(entry, kind);
+                if (isRealInsert || entry.isUpdate() || entry.isDelete()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Test if the given {@link ValuesDelta} would be considered "empty" in
+     * terms of {@link DataKind#fieldList}.
+     */
+    public static boolean isEmpty(ValuesDelta values, DataKind kind) {
+        if (Photo.CONTENT_ITEM_TYPE.equals(kind.mimeType)) {
+            return values.isInsert() && values.getAsByteArray(Photo.PHOTO) == null;
+        }
+
+        // No defined fields mean this row is always empty
+        if (kind.fieldList == null) return true;
+
+        for (EditField field : kind.fieldList) {
+            // If any field has values, we're not empty
+            final String value = values.getAsString(field.column);
+            if (ContactsUtils.isGraphic(value)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Compares corresponding fields in values1 and values2. Only the fields
+     * declared by the DataKind are taken into consideration.
+     */
+    protected static boolean areEqual(ValuesDelta values1, ContentValues values2, DataKind kind) {
+        if (kind.fieldList == null) return false;
+
+        for (EditField field : kind.fieldList) {
+            final String value1 = values1.getAsString(field.column);
+            final String value2 = values2.getAsString(field.column);
+            if (!TextUtils.equals(value1, value2)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Parse the given {@link Bundle} into the given {@link RawContactDelta} state,
+     * assuming the extras defined through {@link Intents}.
+     */
+    public static void parseExtras(Context context, AccountType accountType, RawContactDelta state,
+            Bundle extras) {
+        if (extras == null || extras.size() == 0) {
+            // Bail early if no useful data
+            return;
+        }
+
+        parseStructuredNameExtra(context, accountType, state, extras);
+        parseStructuredPostalExtra(accountType, state, extras);
+
+        {
+            // Phone
+            final DataKind kind = accountType.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+            parseExtras(state, kind, extras, Insert.PHONE_TYPE, Insert.PHONE, Phone.NUMBER);
+            parseExtras(state, kind, extras, Insert.SECONDARY_PHONE_TYPE, Insert.SECONDARY_PHONE,
+                    Phone.NUMBER);
+            parseExtras(state, kind, extras, Insert.TERTIARY_PHONE_TYPE, Insert.TERTIARY_PHONE,
+                    Phone.NUMBER);
+        }
+
+        {
+            // Email
+            final DataKind kind = accountType.getKindForMimetype(Email.CONTENT_ITEM_TYPE);
+            parseExtras(state, kind, extras, Insert.EMAIL_TYPE, Insert.EMAIL, Email.DATA);
+            parseExtras(state, kind, extras, Insert.SECONDARY_EMAIL_TYPE, Insert.SECONDARY_EMAIL,
+                    Email.DATA);
+            parseExtras(state, kind, extras, Insert.TERTIARY_EMAIL_TYPE, Insert.TERTIARY_EMAIL,
+                    Email.DATA);
+        }
+
+        {
+            // Im
+            final DataKind kind = accountType.getKindForMimetype(Im.CONTENT_ITEM_TYPE);
+            fixupLegacyImType(extras);
+            parseExtras(state, kind, extras, Insert.IM_PROTOCOL, Insert.IM_HANDLE, Im.DATA);
+        }
+
+        // Organization
+        final boolean hasOrg = extras.containsKey(Insert.COMPANY)
+                || extras.containsKey(Insert.JOB_TITLE);
+        final DataKind kindOrg = accountType.getKindForMimetype(Organization.CONTENT_ITEM_TYPE);
+        if (hasOrg && RawContactModifier.canInsert(state, kindOrg)) {
+            final ValuesDelta child = RawContactModifier.insertChild(state, kindOrg);
+
+            final String company = extras.getString(Insert.COMPANY);
+            if (ContactsUtils.isGraphic(company)) {
+                child.put(Organization.COMPANY, company);
+            }
+
+            final String title = extras.getString(Insert.JOB_TITLE);
+            if (ContactsUtils.isGraphic(title)) {
+                child.put(Organization.TITLE, title);
+            }
+        }
+
+        // Notes
+        final boolean hasNotes = extras.containsKey(Insert.NOTES);
+        final DataKind kindNotes = accountType.getKindForMimetype(Note.CONTENT_ITEM_TYPE);
+        if (hasNotes && RawContactModifier.canInsert(state, kindNotes)) {
+            final ValuesDelta child = RawContactModifier.insertChild(state, kindNotes);
+
+            final String notes = extras.getString(Insert.NOTES);
+            if (ContactsUtils.isGraphic(notes)) {
+                child.put(Note.NOTE, notes);
+            }
+        }
+
+        // Arbitrary additional data
+        ArrayList<ContentValues> values = extras.getParcelableArrayList(Insert.DATA);
+        if (values != null) {
+            parseValues(state, accountType, values);
+        }
+    }
+
+    private static void parseStructuredNameExtra(
+            Context context, AccountType accountType, RawContactDelta state, Bundle extras) {
+        // StructuredName
+        RawContactModifier.ensureKindExists(state, accountType, StructuredName.CONTENT_ITEM_TYPE);
+        final ValuesDelta child = state.getPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE);
+
+        final String name = extras.getString(Insert.NAME);
+        if (ContactsUtils.isGraphic(name)) {
+            final DataKind kind = accountType.getKindForMimetype(StructuredName.CONTENT_ITEM_TYPE);
+            boolean supportsDisplayName = false;
+            if (kind.fieldList != null) {
+                for (EditField field : kind.fieldList) {
+                    if (StructuredName.DISPLAY_NAME.equals(field.column)) {
+                        supportsDisplayName = true;
+                        break;
+                    }
+                }
+            }
+
+            if (supportsDisplayName) {
+                child.put(StructuredName.DISPLAY_NAME, name);
+            } else {
+                Uri uri = ContactsContract.AUTHORITY_URI.buildUpon()
+                        .appendPath("complete_name")
+                        .appendQueryParameter(StructuredName.DISPLAY_NAME, name)
+                        .build();
+                Cursor cursor = context.getContentResolver().query(uri,
+                        new String[]{
+                                StructuredName.PREFIX,
+                                StructuredName.GIVEN_NAME,
+                                StructuredName.MIDDLE_NAME,
+                                StructuredName.FAMILY_NAME,
+                                StructuredName.SUFFIX,
+                        }, null, null, null);
+
+                if (cursor != null) {
+                    try {
+                        if (cursor.moveToFirst()) {
+                            child.put(StructuredName.PREFIX, cursor.getString(0));
+                            child.put(StructuredName.GIVEN_NAME, cursor.getString(1));
+                            child.put(StructuredName.MIDDLE_NAME, cursor.getString(2));
+                            child.put(StructuredName.FAMILY_NAME, cursor.getString(3));
+                            child.put(StructuredName.SUFFIX, cursor.getString(4));
+                        }
+                    } finally {
+                        cursor.close();
+                    }
+                }
+            }
+        }
+
+        final String phoneticName = extras.getString(Insert.PHONETIC_NAME);
+        if (ContactsUtils.isGraphic(phoneticName)) {
+            StructuredNameDataItem dataItem = NameConverter.parsePhoneticName(phoneticName, null);
+            child.put(StructuredName.PHONETIC_FAMILY_NAME, dataItem.getPhoneticFamilyName());
+            child.put(StructuredName.PHONETIC_MIDDLE_NAME, dataItem.getPhoneticMiddleName());
+            child.put(StructuredName.PHONETIC_GIVEN_NAME, dataItem.getPhoneticGivenName());
+        }
+    }
+
+    private static void parseStructuredPostalExtra(
+            AccountType accountType, RawContactDelta state, Bundle extras) {
+        // StructuredPostal
+        final DataKind kind = accountType.getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE);
+        final ValuesDelta child = parseExtras(state, kind, extras, Insert.POSTAL_TYPE,
+                Insert.POSTAL, StructuredPostal.FORMATTED_ADDRESS);
+        String address = child == null ? null
+                : child.getAsString(StructuredPostal.FORMATTED_ADDRESS);
+        if (!TextUtils.isEmpty(address)) {
+            boolean supportsFormatted = false;
+            if (kind.fieldList != null) {
+                for (EditField field : kind.fieldList) {
+                    if (StructuredPostal.FORMATTED_ADDRESS.equals(field.column)) {
+                        supportsFormatted = true;
+                        break;
+                    }
+                }
+            }
+
+            if (!supportsFormatted) {
+                child.put(StructuredPostal.STREET, address);
+                child.putNull(StructuredPostal.FORMATTED_ADDRESS);
+            }
+        }
+    }
+
+    private static void parseValues(
+            RawContactDelta state, AccountType accountType,
+            ArrayList<ContentValues> dataValueList) {
+        for (ContentValues values : dataValueList) {
+            String mimeType = values.getAsString(Data.MIMETYPE);
+            if (TextUtils.isEmpty(mimeType)) {
+                Log.e(TAG, "Mimetype is required. Ignoring: " + values);
+                continue;
+            }
+
+            // Won't override the contact name
+            if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                continue;
+            } else if (Phone.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                values.remove(PhoneDataItem.KEY_FORMATTED_PHONE_NUMBER);
+                final Integer type = values.getAsInteger(Phone.TYPE);
+                // If the provided phone number provides a custom phone type but not a label,
+                // replace it with mobile (by default) to avoid the "Enter custom label" from
+                // popping up immediately upon entering the ContactEditorFragment
+                if (type != null && type == Phone.TYPE_CUSTOM &&
+                        TextUtils.isEmpty(values.getAsString(Phone.LABEL))) {
+                    values.put(Phone.TYPE, Phone.TYPE_MOBILE);
+                }
+            }
+
+            DataKind kind = accountType.getKindForMimetype(mimeType);
+            if (kind == null) {
+                Log.e(TAG, "Mimetype not supported for account type "
+                        + accountType.getAccountTypeAndDataSet() + ". Ignoring: " + values);
+                continue;
+            }
+
+            ValuesDelta entry = ValuesDelta.fromAfter(values);
+            if (isEmpty(entry, kind)) {
+                continue;
+            }
+
+            ArrayList<ValuesDelta> entries = state.getMimeEntries(mimeType);
+
+            if ((kind.typeOverallMax != 1) || GroupMembership.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                // Check for duplicates
+                boolean addEntry = true;
+                int count = 0;
+                if (entries != null && entries.size() > 0) {
+                    for (ValuesDelta delta : entries) {
+                        if (!delta.isDelete()) {
+                            if (areEqual(delta, values, kind)) {
+                                addEntry = false;
+                                break;
+                            }
+                            count++;
+                        }
+                    }
+                }
+
+                if (kind.typeOverallMax != -1 && count >= kind.typeOverallMax) {
+                    Log.e(TAG, "Mimetype allows at most " + kind.typeOverallMax
+                            + " entries. Ignoring: " + values);
+                    addEntry = false;
+                }
+
+                if (addEntry) {
+                    addEntry = adjustType(entry, entries, kind);
+                }
+
+                if (addEntry) {
+                    state.addEntry(entry);
+                }
+            } else {
+                // Non-list entries should not be overridden
+                boolean addEntry = true;
+                if (entries != null && entries.size() > 0) {
+                    for (ValuesDelta delta : entries) {
+                        if (!delta.isDelete() && !isEmpty(delta, kind)) {
+                            addEntry = false;
+                            break;
+                        }
+                    }
+                    if (addEntry) {
+                        for (ValuesDelta delta : entries) {
+                            delta.markDeleted();
+                        }
+                    }
+                }
+
+                if (addEntry) {
+                    addEntry = adjustType(entry, entries, kind);
+                }
+
+                if (addEntry) {
+                    state.addEntry(entry);
+                } else if (Note.CONTENT_ITEM_TYPE.equals(mimeType)){
+                    // Note is most likely to contain large amounts of text
+                    // that we don't want to drop on the ground.
+                    for (ValuesDelta delta : entries) {
+                        if (!isEmpty(delta, kind)) {
+                            delta.put(Note.NOTE, delta.getAsString(Note.NOTE) + "\n"
+                                    + values.getAsString(Note.NOTE));
+                            break;
+                        }
+                    }
+                } else {
+                    Log.e(TAG, "Will not override mimetype " + mimeType + ". Ignoring: "
+                            + values);
+                }
+            }
+        }
+    }
+
+    /**
+     * Checks if the data kind allows addition of another entry (e.g. Exchange only
+     * supports two "work" phone numbers).  If not, tries to switch to one of the
+     * unused types.  If successful, returns true.
+     */
+    private static boolean adjustType(
+            ValuesDelta entry, ArrayList<ValuesDelta> entries, DataKind kind) {
+        if (kind.typeColumn == null || kind.typeList == null || kind.typeList.size() == 0) {
+            return true;
+        }
+
+        Integer typeInteger = entry.getAsInteger(kind.typeColumn);
+        int type = typeInteger != null ? typeInteger : kind.typeList.get(0).rawValue;
+
+        if (isTypeAllowed(type, entries, kind)) {
+            entry.put(kind.typeColumn, type);
+            return true;
+        }
+
+        // Specified type is not allowed - choose the first available type that is allowed
+        int size = kind.typeList.size();
+        for (int i = 0; i < size; i++) {
+            EditType editType = kind.typeList.get(i);
+            if (isTypeAllowed(editType.rawValue, entries, kind)) {
+                entry.put(kind.typeColumn, editType.rawValue);
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Checks if a new entry of the specified type can be added to the raw
+     * contact. For example, Exchange only supports two "work" phone numbers, so
+     * addition of a third would not be allowed.
+     */
+    private static boolean isTypeAllowed(int type, ArrayList<ValuesDelta> entries, DataKind kind) {
+        int max = 0;
+        int size = kind.typeList.size();
+        for (int i = 0; i < size; i++) {
+            EditType editType = kind.typeList.get(i);
+            if (editType.rawValue == type) {
+                max = editType.specificMax;
+                break;
+            }
+        }
+
+        if (max == 0) {
+            // This type is not allowed at all
+            return false;
+        }
+
+        if (max == -1) {
+            // Unlimited instances of this type are allowed
+            return true;
+        }
+
+        return getEntryCountByType(entries, kind.typeColumn, type) < max;
+    }
+
+    /**
+     * Counts occurrences of the specified type in the supplied entry list.
+     *
+     * @return The count of occurrences of the type in the entry list. 0 if entries is
+     * {@literal null}
+     */
+    private static int getEntryCountByType(ArrayList<ValuesDelta> entries, String typeColumn,
+            int type) {
+        int count = 0;
+        if (entries != null) {
+            for (ValuesDelta entry : entries) {
+                Integer typeInteger = entry.getAsInteger(typeColumn);
+                if (typeInteger != null && typeInteger == type) {
+                    count++;
+                }
+            }
+        }
+        return count;
+    }
+
+    /**
+     * Attempt to parse legacy {@link Insert#IM_PROTOCOL} values, replacing them
+     * with updated values.
+     */
+    @SuppressWarnings("deprecation")
+    private static void fixupLegacyImType(Bundle bundle) {
+        final String encodedString = bundle.getString(Insert.IM_PROTOCOL);
+        if (encodedString == null) return;
+
+        try {
+            final Object protocol = android.provider.Contacts.ContactMethods
+                    .decodeImProtocol(encodedString);
+            if (protocol instanceof Integer) {
+                bundle.putInt(Insert.IM_PROTOCOL, (Integer)protocol);
+            } else {
+                bundle.putString(Insert.IM_PROTOCOL, (String)protocol);
+            }
+        } catch (IllegalArgumentException e) {
+            // Ignore exception when legacy parser fails
+        }
+    }
+
+    /**
+     * Parse a specific entry from the given {@link Bundle} and insert into the
+     * given {@link RawContactDelta}. Silently skips the insert when missing value
+     * or no valid {@link EditType} found.
+     *
+     * @param typeExtra {@link Bundle} key that holds the incoming
+     *            {@link EditType#rawValue} value.
+     * @param valueExtra {@link Bundle} key that holds the incoming value.
+     * @param valueColumn Column to write value into {@link ValuesDelta}.
+     */
+    public static ValuesDelta parseExtras(RawContactDelta state, DataKind kind, Bundle extras,
+            String typeExtra, String valueExtra, String valueColumn) {
+        final CharSequence value = extras.getCharSequence(valueExtra);
+
+        // Bail early if account type doesn't handle this MIME type
+        if (kind == null) return null;
+
+        // Bail when can't insert type, or value missing
+        final boolean canInsert = RawContactModifier.canInsert(state, kind);
+        final boolean validValue = (value != null && TextUtils.isGraphic(value));
+        if (!validValue || !canInsert) return null;
+
+        // Find exact type when requested, otherwise best available type
+        final boolean hasType = extras.containsKey(typeExtra);
+        final int typeValue = extras.getInt(typeExtra, hasType ? BaseTypes.TYPE_CUSTOM
+                : Integer.MIN_VALUE);
+        final EditType editType = RawContactModifier.getBestValidType(state, kind, true, typeValue);
+
+        // Create data row and fill with value
+        final ValuesDelta child = RawContactModifier.insertChild(state, kind, editType);
+        child.put(valueColumn, value.toString());
+
+        if (editType != null && editType.customColumn != null) {
+            // Write down label when custom type picked
+            final String customType = extras.getString(typeExtra);
+            child.put(editType.customColumn, customType);
+        }
+
+        return child;
+    }
+
+    /**
+     * Generic mime types with type support (e.g. TYPE_HOME).
+     * Here, "type support" means if the data kind has CommonColumns#TYPE or not. Data kinds which
+     * have their own migrate methods aren't listed here.
+     */
+    private static final Set<String> sGenericMimeTypesWithTypeSupport = new HashSet<String>(
+            Arrays.asList(Phone.CONTENT_ITEM_TYPE,
+                    Email.CONTENT_ITEM_TYPE,
+                    Im.CONTENT_ITEM_TYPE,
+                    Nickname.CONTENT_ITEM_TYPE,
+                    Website.CONTENT_ITEM_TYPE,
+                    Relation.CONTENT_ITEM_TYPE,
+                    SipAddress.CONTENT_ITEM_TYPE));
+    private static final Set<String> sGenericMimeTypesWithoutTypeSupport = new HashSet<String>(
+            Arrays.asList(Organization.CONTENT_ITEM_TYPE,
+                    Note.CONTENT_ITEM_TYPE,
+                    Photo.CONTENT_ITEM_TYPE,
+                    GroupMembership.CONTENT_ITEM_TYPE));
+    // CommonColumns.TYPE cannot be accessed as it is protected interface, so use
+    // Phone.TYPE instead.
+    private static final String COLUMN_FOR_TYPE  = Phone.TYPE;
+    private static final String COLUMN_FOR_LABEL  = Phone.LABEL;
+    private static final int TYPE_CUSTOM = Phone.TYPE_CUSTOM;
+
+    /**
+     * Migrates old RawContactDelta to newly created one with a new restriction supplied from
+     * newAccountType.
+     *
+     * This is only for account switch during account creation (which must be insert operation).
+     */
+    public static void migrateStateForNewContact(Context context,
+            RawContactDelta oldState, RawContactDelta newState,
+            AccountType oldAccountType, AccountType newAccountType) {
+        if (newAccountType == oldAccountType) {
+            // Just copying all data in oldState isn't enough, but we can still rely on a lot of
+            // shortcuts.
+            for (DataKind kind : newAccountType.getSortedDataKinds()) {
+                final String mimeType = kind.mimeType;
+                // The fields with short/long form capability must be treated properly.
+                if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                    migrateStructuredName(context, oldState, newState, kind);
+                } else {
+                    List<ValuesDelta> entryList = oldState.getMimeEntries(mimeType);
+                    if (entryList != null && !entryList.isEmpty()) {
+                        for (ValuesDelta entry : entryList) {
+                            ContentValues values = entry.getAfter();
+                            if (values != null) {
+                                newState.addEntry(ValuesDelta.fromAfter(values));
+                            }
+                        }
+                    }
+                }
+            }
+        } else {
+            // Migrate data supported by the new account type.
+            // All the other data inside oldState are silently dropped.
+            for (DataKind kind : newAccountType.getSortedDataKinds()) {
+                if (!kind.editable) continue;
+                final String mimeType = kind.mimeType;
+                if (DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME.equals(mimeType) ||
+                        DataKind.PSEUDO_MIME_TYPE_NAME.equals(mimeType)) {
+                    // Ignore pseudo data.
+                    continue;
+                } else if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                    migrateStructuredName(context, oldState, newState, kind);
+                } else if (StructuredPostal.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                    migratePostal(oldState, newState, kind);
+                } else if (Event.CONTENT_ITEM_TYPE.equals(mimeType)) {
+                    migrateEvent(oldState, newState, kind, null /* default Year */);
+                } else if (sGenericMimeTypesWithoutTypeSupport.contains(mimeType)) {
+                    migrateGenericWithoutTypeColumn(oldState, newState, kind);
+                } else if (sGenericMimeTypesWithTypeSupport.contains(mimeType)) {
+                    migrateGenericWithTypeColumn(oldState, newState, kind);
+                } else {
+                    throw new IllegalStateException("Unexpected editable mime-type: " + mimeType);
+                }
+            }
+        }
+    }
+
+    /**
+     * Checks {@link DataKind#isList} and {@link DataKind#typeOverallMax}, and restricts
+     * the number of entries (ValuesDelta) inside newState.
+     */
+    private static ArrayList<ValuesDelta> ensureEntryMaxSize(RawContactDelta newState,
+            DataKind kind, ArrayList<ValuesDelta> mimeEntries) {
+        if (mimeEntries == null) {
+            return null;
+        }
+
+        final int typeOverallMax = kind.typeOverallMax;
+        if (typeOverallMax >= 0 && (mimeEntries.size() > typeOverallMax)) {
+            ArrayList<ValuesDelta> newMimeEntries = new ArrayList<ValuesDelta>(typeOverallMax);
+            for (int i = 0; i < typeOverallMax; i++) {
+                newMimeEntries.add(mimeEntries.get(i));
+            }
+            mimeEntries = newMimeEntries;
+        }
+        return mimeEntries;
+    }
+
+    /** @hide Public only for testing. */
+    public static void migrateStructuredName(
+            Context context, RawContactDelta oldState, RawContactDelta newState,
+            DataKind newDataKind) {
+        final ContentValues values =
+                oldState.getPrimaryEntry(StructuredName.CONTENT_ITEM_TYPE).getAfter();
+        if (values == null) {
+            return;
+        }
+
+        boolean supportPhoneticFamilyName = false;
+        boolean supportPhoneticMiddleName = false;
+        boolean supportPhoneticGivenName = false;
+        for (EditField editField : newDataKind.fieldList) {
+            if (StructuredName.PHONETIC_FAMILY_NAME.equals(editField.column)) {
+                supportPhoneticFamilyName = true;
+            }
+            if (StructuredName.PHONETIC_MIDDLE_NAME.equals(editField.column)) {
+                supportPhoneticMiddleName = true;
+            }
+            if (StructuredName.PHONETIC_GIVEN_NAME.equals(editField.column)) {
+                supportPhoneticGivenName = true;
+            }
+        }
+
+        if (!supportPhoneticFamilyName) {
+            values.remove(StructuredName.PHONETIC_FAMILY_NAME);
+        }
+        if (!supportPhoneticMiddleName) {
+            values.remove(StructuredName.PHONETIC_MIDDLE_NAME);
+        }
+        if (!supportPhoneticGivenName) {
+            values.remove(StructuredName.PHONETIC_GIVEN_NAME);
+        }
+
+        newState.addEntry(ValuesDelta.fromAfter(values));
+    }
+
+    /** @hide Public only for testing. */
+    public static void migratePostal(RawContactDelta oldState, RawContactDelta newState,
+            DataKind newDataKind) {
+        final ArrayList<ValuesDelta> mimeEntries = ensureEntryMaxSize(newState, newDataKind,
+                oldState.getMimeEntries(StructuredPostal.CONTENT_ITEM_TYPE));
+        if (mimeEntries == null || mimeEntries.isEmpty()) {
+            return;
+        }
+
+        boolean supportFormattedAddress = false;
+        boolean supportStreet = false;
+        final String firstColumn = newDataKind.fieldList.get(0).column;
+        for (EditField editField : newDataKind.fieldList) {
+            if (StructuredPostal.FORMATTED_ADDRESS.equals(editField.column)) {
+                supportFormattedAddress = true;
+            }
+            if (StructuredPostal.STREET.equals(editField.column)) {
+                supportStreet = true;
+            }
+        }
+
+        final Set<Integer> supportedTypes = new HashSet<Integer>();
+        if (newDataKind.typeList != null && !newDataKind.typeList.isEmpty()) {
+            for (EditType editType : newDataKind.typeList) {
+                supportedTypes.add(editType.rawValue);
+            }
+        }
+
+        for (ValuesDelta entry : mimeEntries) {
+            final ContentValues values = entry.getAfter();
+            if (values == null) {
+                continue;
+            }
+            final Integer oldType = values.getAsInteger(StructuredPostal.TYPE);
+            if (!supportedTypes.contains(oldType)) {
+                int defaultType;
+                if (newDataKind.defaultValues != null) {
+                    defaultType = newDataKind.defaultValues.getAsInteger(StructuredPostal.TYPE);
+                } else {
+                    defaultType = newDataKind.typeList.get(0).rawValue;
+                }
+                values.put(StructuredPostal.TYPE, defaultType);
+                if (oldType != null && oldType == StructuredPostal.TYPE_CUSTOM) {
+                    values.remove(StructuredPostal.LABEL);
+                }
+            }
+
+            final String formattedAddress = values.getAsString(StructuredPostal.FORMATTED_ADDRESS);
+            if (!TextUtils.isEmpty(formattedAddress)) {
+                if (!supportFormattedAddress) {
+                    // Old data has a formatted address, while the new account doesn't allow it.
+                    values.remove(StructuredPostal.FORMATTED_ADDRESS);
+
+                    // Unlike StructuredName we don't have logic to split it, so first
+                    // try to use street field and. If the new account doesn't have one,
+                    // then select first one anyway.
+                    if (supportStreet) {
+                        values.put(StructuredPostal.STREET, formattedAddress);
+                    } else {
+                        values.put(firstColumn, formattedAddress);
+                    }
+                }
+            } else {
+                if (supportFormattedAddress) {
+                    // Old data does not have formatted address, while the new account requires it.
+                    // Unlike StructuredName we don't have logic to join multiple address values.
+                    // Use poor join heuristics for now.
+                    String[] structuredData;
+                    final boolean useJapaneseOrder =
+                            Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage());
+                    if (useJapaneseOrder) {
+                        structuredData = new String[] {
+                                values.getAsString(StructuredPostal.COUNTRY),
+                                values.getAsString(StructuredPostal.POSTCODE),
+                                values.getAsString(StructuredPostal.REGION),
+                                values.getAsString(StructuredPostal.CITY),
+                                values.getAsString(StructuredPostal.NEIGHBORHOOD),
+                                values.getAsString(StructuredPostal.STREET),
+                                values.getAsString(StructuredPostal.POBOX) };
+                    } else {
+                        structuredData = new String[] {
+                                values.getAsString(StructuredPostal.POBOX),
+                                values.getAsString(StructuredPostal.STREET),
+                                values.getAsString(StructuredPostal.NEIGHBORHOOD),
+                                values.getAsString(StructuredPostal.CITY),
+                                values.getAsString(StructuredPostal.REGION),
+                                values.getAsString(StructuredPostal.POSTCODE),
+                                values.getAsString(StructuredPostal.COUNTRY) };
+                    }
+                    final StringBuilder builder = new StringBuilder();
+                    for (String elem : structuredData) {
+                        if (!TextUtils.isEmpty(elem)) {
+                            builder.append(elem + "\n");
+                        }
+                    }
+                    values.put(StructuredPostal.FORMATTED_ADDRESS, builder.toString());
+
+                    values.remove(StructuredPostal.POBOX);
+                    values.remove(StructuredPostal.STREET);
+                    values.remove(StructuredPostal.NEIGHBORHOOD);
+                    values.remove(StructuredPostal.CITY);
+                    values.remove(StructuredPostal.REGION);
+                    values.remove(StructuredPostal.POSTCODE);
+                    values.remove(StructuredPostal.COUNTRY);
+                }
+            }
+
+            newState.addEntry(ValuesDelta.fromAfter(values));
+        }
+    }
+
+    /** @hide Public only for testing. */
+    public static void migrateEvent(RawContactDelta oldState, RawContactDelta newState,
+            DataKind newDataKind, Integer defaultYear) {
+        final ArrayList<ValuesDelta> mimeEntries = ensureEntryMaxSize(newState, newDataKind,
+                oldState.getMimeEntries(Event.CONTENT_ITEM_TYPE));
+        if (mimeEntries == null || mimeEntries.isEmpty()) {
+            return;
+        }
+
+        final SparseArray<EventEditType> allowedTypes = new SparseArray<EventEditType>();
+        for (EditType editType : newDataKind.typeList) {
+            allowedTypes.put(editType.rawValue, (EventEditType) editType);
+        }
+        for (ValuesDelta entry : mimeEntries) {
+            final ContentValues values = entry.getAfter();
+            if (values == null) {
+                continue;
+            }
+            final String dateString = values.getAsString(Event.START_DATE);
+            final Integer type = values.getAsInteger(Event.TYPE);
+            if (type != null && (allowedTypes.indexOfKey(type) >= 0)
+                    && !TextUtils.isEmpty(dateString)) {
+                EventEditType suitableType = allowedTypes.get(type);
+
+                final ParsePosition position = new ParsePosition(0);
+                boolean yearOptional = false;
+                Date date = CommonDateUtils.DATE_AND_TIME_FORMAT.parse(dateString, position);
+                if (date == null) {
+                    yearOptional = true;
+                    date = CommonDateUtils.NO_YEAR_DATE_FORMAT.parse(dateString, position);
+                }
+                if (date != null) {
+                    if (yearOptional && !suitableType.isYearOptional()) {
+                        // The new EditType doesn't allow optional year. Supply default.
+                        final Calendar calendar = Calendar.getInstance(DateUtils.UTC_TIMEZONE,
+                                Locale.US);
+                        if (defaultYear == null) {
+                            defaultYear = calendar.get(Calendar.YEAR);
+                        }
+                        calendar.setTime(date);
+                        final int month = calendar.get(Calendar.MONTH);
+                        final int day = calendar.get(Calendar.DAY_OF_MONTH);
+                        // Exchange requires 8:00 for birthdays
+                        calendar.set(defaultYear, month, day,
+                                CommonDateUtils.DEFAULT_HOUR, 0, 0);
+                        values.put(Event.START_DATE,
+                                CommonDateUtils.FULL_DATE_FORMAT.format(calendar.getTime()));
+                    }
+                }
+                newState.addEntry(ValuesDelta.fromAfter(values));
+            } else {
+                // Just drop it.
+            }
+        }
+    }
+
+    /** @hide Public only for testing. */
+    public static void migrateGenericWithoutTypeColumn(
+            RawContactDelta oldState, RawContactDelta newState, DataKind newDataKind) {
+        final ArrayList<ValuesDelta> mimeEntries = ensureEntryMaxSize(newState, newDataKind,
+                oldState.getMimeEntries(newDataKind.mimeType));
+        if (mimeEntries == null || mimeEntries.isEmpty()) {
+            return;
+        }
+
+        for (ValuesDelta entry : mimeEntries) {
+            ContentValues values = entry.getAfter();
+            if (values != null) {
+                newState.addEntry(ValuesDelta.fromAfter(values));
+            }
+        }
+    }
+
+    /** @hide Public only for testing. */
+    public static void migrateGenericWithTypeColumn(
+            RawContactDelta oldState, RawContactDelta newState, DataKind newDataKind) {
+        final ArrayList<ValuesDelta> mimeEntries = oldState.getMimeEntries(newDataKind.mimeType);
+        if (mimeEntries == null || mimeEntries.isEmpty()) {
+            return;
+        }
+
+        // Note that type specified with the old account may be invalid with the new account, while
+        // we want to preserve its data as much as possible. e.g. if a user typed a phone number
+        // with a type which is valid with an old account but not with a new account, the user
+        // probably wants to have the number with default type, rather than seeing complete data
+        // loss.
+        //
+        // Specifically, this method works as follows:
+        // 1. detect defaultType
+        // 2. prepare constants & variables for iteration
+        // 3. iterate over mimeEntries:
+        // 3.1 stop iteration if total number of mimeEntries reached typeOverallMax specified in
+        //     DataKind
+        // 3.2 replace unallowed types with defaultType
+        // 3.3 check if the number of entries is below specificMax specified in AccountType
+
+        // Here, defaultType can be supplied in two ways
+        // - via kind.defaultValues
+        // - via kind.typeList.get(0).rawValue
+        Integer defaultType = null;
+        if (newDataKind.defaultValues != null) {
+            defaultType = newDataKind.defaultValues.getAsInteger(COLUMN_FOR_TYPE);
+        }
+        final Set<Integer> allowedTypes = new HashSet<Integer>();
+        // key: type, value: the number of entries allowed for the type (specificMax)
+        final SparseIntArray typeSpecificMaxMap = new SparseIntArray();
+        if (defaultType != null) {
+            allowedTypes.add(defaultType);
+            typeSpecificMaxMap.put(defaultType, -1);
+        }
+        // Note: typeList may be used in different purposes when defaultValues are specified.
+        // Especially in IM, typeList contains available protocols (e.g. PROTOCOL_GOOGLE_TALK)
+        // instead of "types" which we want to treate here (e.g. TYPE_HOME). So we don't add
+        // anything other than defaultType into allowedTypes and typeSpecificMapMax.
+        if (!Im.CONTENT_ITEM_TYPE.equals(newDataKind.mimeType) &&
+                newDataKind.typeList != null && !newDataKind.typeList.isEmpty()) {
+            for (EditType editType : newDataKind.typeList) {
+                allowedTypes.add(editType.rawValue);
+                typeSpecificMaxMap.put(editType.rawValue, editType.specificMax);
+            }
+            if (defaultType == null) {
+                defaultType = newDataKind.typeList.get(0).rawValue;
+            }
+        }
+
+        if (defaultType == null) {
+            Log.w(TAG, "Default type isn't available for mimetype " + newDataKind.mimeType);
+        }
+
+        final int typeOverallMax = newDataKind.typeOverallMax;
+
+        // key: type, value: the number of current entries.
+        final SparseIntArray currentEntryCount = new SparseIntArray();
+        int totalCount = 0;
+
+        for (ValuesDelta entry : mimeEntries) {
+            if (typeOverallMax != -1 && totalCount >= typeOverallMax) {
+                break;
+            }
+
+            final ContentValues values = entry.getAfter();
+            if (values == null) {
+                continue;
+            }
+
+            final Integer oldType = entry.getAsInteger(COLUMN_FOR_TYPE);
+            final Integer typeForNewAccount;
+            if (!allowedTypes.contains(oldType)) {
+                // The new account doesn't support the type.
+                if (defaultType != null) {
+                    typeForNewAccount = defaultType.intValue();
+                    values.put(COLUMN_FOR_TYPE, defaultType.intValue());
+                    if (oldType != null && oldType == TYPE_CUSTOM) {
+                        values.remove(COLUMN_FOR_LABEL);
+                    }
+                } else {
+                    typeForNewAccount = null;
+                    values.remove(COLUMN_FOR_TYPE);
+                }
+            } else {
+                typeForNewAccount = oldType;
+            }
+            if (typeForNewAccount != null) {
+                final int specificMax = typeSpecificMaxMap.get(typeForNewAccount, 0);
+                if (specificMax >= 0) {
+                    final int currentCount = currentEntryCount.get(typeForNewAccount, 0);
+                    if (currentCount >= specificMax) {
+                        continue;
+                    }
+                    currentEntryCount.put(typeForNewAccount, currentCount + 1);
+                }
+            }
+            newState.addEntry(ValuesDelta.fromAfter(values));
+            totalCount++;
+        }
+    }
+}
diff --git a/src/com/android/contacts/model/SimCard.java b/src/com/android/contacts/model/SimCard.java
new file mode 100644
index 0000000..2105ac7
--- /dev/null
+++ b/src/com/android/contacts/model/SimCard.java
@@ -0,0 +1,257 @@
+/*
+ * 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.os.Build;
+import android.support.annotation.RequiresApi;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.SubscriptionInfo;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.Objects;
+
+/**
+ * Holds data for a SIM card in the device.
+ */
+public class SimCard {
+
+    private static final String TAG = "SimCard";
+
+    public static final int NO_SUBSCRIPTION_ID = -1;
+
+    // This state is created from the info we get from the system
+    private final String mSimId;
+    private final int mSubscriptionId;
+    private final CharSequence mCarrierName;
+    private final CharSequence mDisplayName;
+    private final String mPhoneNumber;
+    private final String mCountryCode;
+
+    // This is our own state that we associate with SIM cards. Currently these are only used
+    // in the GoogleContacts app.
+    // Note: these are logically immutable but are not final to reduce required constructor
+    // parameters
+    private boolean mDismissed = false;
+    private boolean mImported = false;
+
+    private List<SimContact> mContacts;
+
+    public SimCard(SimCard other) {
+        mSimId = other.mSimId;
+        mSubscriptionId = other.mSubscriptionId;
+        mCarrierName = other.mCarrierName;
+        mDisplayName = other.mDisplayName;
+        mPhoneNumber = other.mPhoneNumber;
+        mCountryCode = other.mCountryCode;
+        mDismissed = other.mDismissed;
+        mImported = other.mImported;
+        if (other.mContacts != null) {
+            mContacts = new ArrayList<>(other.mContacts);
+        }
+    }
+
+    public SimCard(String simId, int subscriptionId, CharSequence carrierName,
+            CharSequence displayName, String phoneNumber, String countryCode) {
+        mSimId = simId;
+        mSubscriptionId = subscriptionId;
+        mCarrierName = carrierName;
+        mDisplayName = displayName;
+        mPhoneNumber = phoneNumber;
+        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;
+    }
+
+    public int getSubscriptionId() {
+        return mSubscriptionId;
+    }
+
+    public boolean hasValidSubscriptionId() {
+        return mSubscriptionId != NO_SUBSCRIPTION_ID;
+    }
+
+    public CharSequence getDisplayName() {
+        return mDisplayName;
+    }
+
+    public String getPhone() {
+        return mPhoneNumber;
+    }
+
+    public CharSequence getFormattedPhone() {
+        if (mPhoneNumber == null) {
+            return null;
+        }
+        return PhoneNumberUtils.formatNumber(mPhoneNumber, mCountryCode);
+    }
+
+    public boolean hasPhone() {
+        return mPhoneNumber != null;
+    }
+
+    public String getCountryCode() {
+        return mCountryCode;
+    }
+
+    /**
+     * Returns whether the contacts for this SIM card have been initialized.
+     */
+    public boolean areContactsAvailable() {
+        return mContacts != null;
+    }
+
+    /**
+     * Returns whether this SIM card has any SIM contacts.
+     *
+     * A precondition of this method is that the contacts have been initialized.
+     */
+    public boolean hasContacts() {
+        if (mContacts == null) {
+            throw new IllegalStateException("Contacts not loaded.");
+        }
+        return !mContacts.isEmpty();
+    }
+
+    /**
+     * Returns the number of contacts stored on this SIM card.
+     *
+     * A precondition of this method is that the contacts have been initialized.
+     */
+    public int getContactCount() {
+        if (mContacts == null) {
+            throw new IllegalStateException("Contacts not loaded.");
+        }
+        return mContacts.size();
+    }
+
+    public boolean isDismissed() {
+        return mDismissed;
+    }
+
+    public boolean isImported() {
+        return mImported;
+    }
+
+    public boolean isImportable() {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "isImportable: isDismissed? " + isDismissed() +
+                    " isImported? " + isImported() + " contacts=" + mContacts);
+        }
+        return !isDismissed() && !isImported() && hasContacts();
+    }
+
+    /**
+     * Returns the contacts for this SIM card or null if the contacts have not been initialized.
+     */
+    public List<SimContact> getContacts() {
+        return mContacts;
+    }
+
+    public SimCard withImportAndDismissStates(boolean imported, boolean dismissed) {
+        SimCard copy = new SimCard(this);
+        copy.mImported = imported;
+        copy.mDismissed = dismissed;
+        return copy;
+    }
+
+    public SimCard withImportedState(boolean imported) {
+        return withImportAndDismissStates(imported, mDismissed);
+    }
+
+    public SimCard withDismissedState(boolean dismissed) {
+        return withImportAndDismissStates(mImported, dismissed);
+    }
+
+    public SimCard withContacts(List<SimContact> contacts) {
+        final SimCard copy = new SimCard(this);
+        copy.mContacts = contacts;
+        return copy;
+    }
+
+    public SimCard withContacts(SimContact... contacts) {
+        final SimCard copy = new SimCard(this);
+        copy.mContacts = Arrays.asList(contacts);
+        return copy;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        SimCard simCard = (SimCard) o;
+
+        return mSubscriptionId == simCard.mSubscriptionId && mDismissed == simCard.mDismissed &&
+                mImported == simCard.mImported && Objects.equals(mSimId, simCard.mSimId) &&
+                Objects.equals(mPhoneNumber, simCard.mPhoneNumber) &&
+                Objects.equals(mCountryCode, simCard.mCountryCode);
+    }
+
+    @Override
+    public int hashCode() {
+        int result = Objects.hash(mSimId, mPhoneNumber, mCountryCode);
+        result = 31 * result + mSubscriptionId;
+        result = 31 * result + (mDismissed ? 1 : 0);
+        result = 31 * result + (mImported ? 1 : 0);
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        return "SimCard{" +
+                "mSimId='" + mSimId + '\'' +
+                ", mSubscriptionId=" + mSubscriptionId +
+                ", mCarrierName=" + mCarrierName +
+                ", mDisplayName=" + mDisplayName +
+                ", mPhoneNumber='" + mPhoneNumber + '\'' +
+                ", mCountryCode='" + mCountryCode + '\'' +
+                ", mDismissed=" + mDismissed +
+                ", mImported=" + mImported +
+                ", mContacts=" + mContacts +
+                '}';
+    }
+
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
+    public static SimCard create(SubscriptionInfo info) {
+        return new SimCard(info.getIccId(), info.getSubscriptionId(),
+                info.getCarrierName(), info.getDisplayName(), info.getNumber(),
+                info.getCountryIso());
+    }
+
+    public static SimCard create(TelephonyManager telephony, String displayLabel) {
+        if (telephony.getSimState() == TelephonyManager.SIM_STATE_READY) {
+            return new SimCard(telephony.getSimSerialNumber(),
+                    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,
+                    /* phone number */ "", /* Country code */ null);
+        }
+    }
+}
diff --git a/src/com/android/contacts/model/SimContact.java b/src/com/android/contacts/model/SimContact.java
new file mode 100644
index 0000000..7babe27
--- /dev/null
+++ b/src/com/android/contacts/model/SimContact.java
@@ -0,0 +1,260 @@
+/*
+ * 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.ContentProviderOperation;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.text.TextUtils;
+
+import com.android.contacts.ContactPhotoManager;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import com.google.common.collect.ComparisonChain;
+import com.google.common.collect.Ordering;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Holds data for contacts loaded from the SIM card.
+ */
+public class SimContact implements Parcelable {
+    private final long mId;
+    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(long id, String name, String phone, String[] emails) {
+        mId = id;
+        mName = name;
+        mPhone = phone == null ? "" : phone.trim();
+        mEmails = emails;
+    }
+
+    public SimContact(SimContact other) {
+        this(other.mId, other.mName, other.mPhone, other.mEmails);
+    }
+
+    public long getId() {
+        return mId;
+    }
+
+    public String getName() {
+        return mName;
+    }
+
+    public String getPhone() {
+        return mPhone;
+    }
+
+    public String[] getEmails() {
+        return mEmails;
+    }
+
+    public void appendCreateContactOperations(List<ContentProviderOperation> ops,
+            AccountWithDataSet targetAccount) {
+        // There is nothing to save so skip it.
+        if (!hasName() && !hasPhone() && !hasEmails()) return;
+
+        final int rawContactOpIndex = ops.size();
+        ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
+                .withYieldAllowed(true)
+                .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, targetAccount.name)
+                .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, targetAccount.type)
+                .withValue(ContactsContract.RawContacts.DATA_SET, targetAccount.dataSet)
+                .build());
+        if (mName != null) {
+            ops.add(createInsertOp(rawContactOpIndex, StructuredName.CONTENT_ITEM_TYPE,
+                    StructuredName.DISPLAY_NAME, mName));
+        }
+        if (!mPhone.isEmpty()) {
+            ops.add(createInsertOp(rawContactOpIndex, Phone.CONTENT_ITEM_TYPE,
+                    Phone.NUMBER, mPhone));
+        }
+        if (mEmails != null) {
+            for (String email : mEmails) {
+                ops.add(createInsertOp(rawContactOpIndex, Email.CONTENT_ITEM_TYPE,
+                        Email.ADDRESS, email));
+            }
+        }
+    }
+
+    private ContentProviderOperation createInsertOp(int rawContactOpIndex, String mimeType,
+            String column, String value) {
+        return ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
+                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactOpIndex)
+                .withValue(ContactsContract.Data.MIMETYPE, mimeType)
+                .withValue(column, value)
+                .build();
+    }
+
+    public void appendAsContactRow(MatrixCursor cursor) {
+        cursor.newRow().add(ContactsContract.Contacts._ID, mId)
+                .add(ContactsContract.Contacts.DISPLAY_NAME_PRIMARY, mName)
+                .add(ContactsContract.Contacts.LOOKUP_KEY, getLookupKey());
+    }
+
+    public boolean hasName() {
+        return !TextUtils.isEmpty(mName);
+    }
+
+    public boolean hasPhone() {
+        return !mPhone.isEmpty();
+    }
+
+    public boolean hasEmails() {
+        return mEmails != null && mEmails.length > 0;
+    }
+
+    /**
+     * Generate a "fake" lookup key. This is needed because
+     * {@link ContactPhotoManager} will only generate a letter avatar
+     * if the contact has a lookup key.
+     */
+    private String getLookupKey() {
+        if (mName != null) {
+            return "sim-n-" + Uri.encode(mName);
+        } else if (mPhone != null) {
+            return "sim-p-" + Uri.encode(mPhone);
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public String toString() {
+        return "SimContact{" +
+                "mId=" + mId +
+                ", mName='" + mName + '\'' +
+                ", mPhone='" + mPhone + '\'' +
+                ", mEmails=" + Arrays.toString(mEmails) +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        final SimContact that = (SimContact) o;
+
+        return mId == that.mId && 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));
+        result = 31 * result + (mName != null ? mName.hashCode() : 0);
+        result = 31 * result + (mPhone != null ? mPhone.hashCode() : 0);
+        result = 31 * result + Arrays.hashCode(mEmails);
+        return result;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeLong(mId);
+        dest.writeString(mName);
+        dest.writeString(mPhone);
+        dest.writeStringArray(mEmails);
+    }
+
+    public static final Creator<SimContact> CREATOR = new Creator<SimContact>() {
+        @Override
+        public SimContact createFromParcel(Parcel source) {
+            final long id = source.readLong();
+            final String name = source.readString();
+            final String phone = source.readString();
+            final String[] emails = source.createStringArray();
+            return new SimContact(id, name, phone, emails);
+        }
+
+        @Override
+        public SimContact[] newArray(int size) {
+            return new SimContact[size];
+        }
+    };
+
+    /**
+     * Convert a collection of SIM contacts to a Cursor matching a query from
+     * {@link android.provider.ContactsContract.Contacts#CONTENT_URI} with the provided projection.
+     *
+     * This allows a collection of SIM contacts to be displayed using the existing adapters for
+     * contacts.
+     */
+    public static final MatrixCursor convertToContactsCursor(Collection<SimContact> contacts,
+            String[] projection) {
+        final MatrixCursor result = new MatrixCursor(projection);
+        for (SimContact contact : contacts) {
+            contact.appendAsContactRow(result);
+        }
+        return result;
+    }
+
+    /**
+     * Returns the index of a contact with a matching name and phone
+     * @param contacts list to search. Should be sorted using
+     * {@link SimContact#compareByPhoneThenName()}
+     * @param phone the phone to search for
+     * @param name the name to search for
+     */
+    public static int findByPhoneAndName(List<SimContact> contacts, String phone, String name) {
+        return Collections.binarySearch(contacts, new SimContact(-1, name, phone, null),
+                compareByPhoneThenName());
+    }
+
+    public static final Comparator<SimContact> compareByPhoneThenName() {
+        return new Comparator<SimContact>() {
+            @Override
+            public int compare(SimContact lhs, SimContact rhs) {
+                return ComparisonChain.start()
+                        .compare(lhs.mPhone, rhs.mPhone)
+                        .compare(lhs.mName, rhs.mName, Ordering.<String>natural().nullsFirst())
+                        .result();
+            }
+        };
+    }
+
+    public static final Comparator<SimContact> compareById() {
+        return new Comparator<SimContact>() {
+            @Override
+            public int compare(SimContact lhs, SimContact rhs) {
+                // We assume ids are unique.
+                return Long.compare(lhs.mId, rhs.mId);
+            }
+        };
+    }
+}
diff --git a/src/com/android/contacts/model/ValuesDelta.java b/src/com/android/contacts/model/ValuesDelta.java
new file mode 100644
index 0000000..120c205
--- /dev/null
+++ b/src/com/android/contacts/model/ValuesDelta.java
@@ -0,0 +1,599 @@
+/*
+ * Copyright (C) 2012 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.ContentProviderOperation;
+import android.content.ContentValues;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.BaseColumns;
+import android.provider.ContactsContract;
+
+import com.android.contacts.compat.CompatUtils;
+
+import com.google.common.collect.Sets;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Type of {@link android.content.ContentValues} that maintains both an original state and a
+ * modified version of that state. This allows us to build insert, update,
+ * or delete operations based on a "before" {@link Entity} snapshot.
+ */
+public class ValuesDelta implements Parcelable {
+    protected ContentValues mBefore;
+    protected ContentValues mAfter;
+    protected String mIdColumn = BaseColumns._ID;
+    private boolean mFromTemplate;
+
+    /**
+     * Next value to assign to {@link #mIdColumn} when building an insert
+     * operation through {@link #fromAfter(android.content.ContentValues)}. This is used so
+     * we can concretely reference this {@link ValuesDelta} before it has
+     * been persisted.
+     */
+    protected static int sNextInsertId = -1;
+
+    protected ValuesDelta() {
+    }
+
+    /**
+     * Create {@link ValuesDelta}, using the given object as the
+     * "before" state, usually from an {@link Entity}.
+     */
+    public static ValuesDelta fromBefore(ContentValues before) {
+        final ValuesDelta entry = new ValuesDelta();
+        entry.mBefore = before;
+        entry.mAfter = new ContentValues();
+        return entry;
+    }
+
+    /**
+     * Create {@link ValuesDelta}, using the given object as the "after"
+     * state, usually when we are inserting a row instead of updating.
+     */
+    public static ValuesDelta fromAfter(ContentValues after) {
+        final ValuesDelta entry = new ValuesDelta();
+        entry.mBefore = null;
+        entry.mAfter = after;
+
+        // Assign temporary id which is dropped before insert.
+        entry.mAfter.put(entry.mIdColumn, sNextInsertId--);
+        return entry;
+    }
+
+    public ContentValues getAfter() {
+        return mAfter;
+    }
+
+    public ContentValues getBefore() {
+        return mBefore;
+    }
+
+    public boolean containsKey(String key) {
+        return ((mAfter != null && mAfter.containsKey(key)) ||
+                (mBefore != null && mBefore.containsKey(key)));
+    }
+
+    public String getAsString(String key) {
+        if (mAfter != null && mAfter.containsKey(key)) {
+            return mAfter.getAsString(key);
+        } else if (mBefore != null && mBefore.containsKey(key)) {
+            return mBefore.getAsString(key);
+        } else {
+            return null;
+        }
+    }
+
+    public byte[] getAsByteArray(String key) {
+        if (mAfter != null && mAfter.containsKey(key)) {
+            return mAfter.getAsByteArray(key);
+        } else if (mBefore != null && mBefore.containsKey(key)) {
+            return mBefore.getAsByteArray(key);
+        } else {
+            return null;
+        }
+    }
+
+    public Long getAsLong(String key) {
+        if (mAfter != null && mAfter.containsKey(key)) {
+            return mAfter.getAsLong(key);
+        } else if (mBefore != null && mBefore.containsKey(key)) {
+            return mBefore.getAsLong(key);
+        } else {
+            return null;
+        }
+    }
+
+    public Integer getAsInteger(String key) {
+        return getAsInteger(key, null);
+    }
+
+    public Integer getAsInteger(String key, Integer defaultValue) {
+        if (mAfter != null && mAfter.containsKey(key)) {
+            return mAfter.getAsInteger(key);
+        } else if (mBefore != null && mBefore.containsKey(key)) {
+            return mBefore.getAsInteger(key);
+        } else {
+            return defaultValue;
+        }
+    }
+
+    public boolean isChanged(String key) {
+        if (mAfter == null || !mAfter.containsKey(key)) {
+            return false;
+        }
+
+        Object newValue = mAfter.get(key);
+        Object oldValue = mBefore.get(key);
+
+        if (oldValue == null) {
+            return newValue != null;
+        }
+
+        return !oldValue.equals(newValue);
+    }
+
+    public String getMimetype() {
+        return getAsString(ContactsContract.Data.MIMETYPE);
+    }
+
+    public Long getId() {
+        return getAsLong(mIdColumn);
+    }
+
+    public void setIdColumn(String idColumn) {
+        mIdColumn = idColumn;
+    }
+
+    public boolean isPrimary() {
+        final Long isPrimary = getAsLong(ContactsContract.Data.IS_PRIMARY);
+        return isPrimary == null ? false : isPrimary != 0;
+    }
+
+    public void setFromTemplate(boolean isFromTemplate) {
+        mFromTemplate = isFromTemplate;
+    }
+
+    public boolean isFromTemplate() {
+        return mFromTemplate;
+    }
+
+    public boolean isSuperPrimary() {
+        final Long isSuperPrimary = getAsLong(ContactsContract.Data.IS_SUPER_PRIMARY);
+        return isSuperPrimary == null ? false : isSuperPrimary != 0;
+    }
+
+    public boolean beforeExists() {
+        return (mBefore != null && mBefore.containsKey(mIdColumn));
+    }
+
+    /**
+     * When "after" is present, then visible
+     */
+    public boolean isVisible() {
+        return (mAfter != null);
+    }
+
+    /**
+     * When "after" is wiped, action is "delete"
+     */
+    public boolean isDelete() {
+        return beforeExists() && (mAfter == null);
+    }
+
+    /**
+     * When no "before" or "after", is transient
+     */
+    public boolean isTransient() {
+        return (mBefore == null) && (mAfter == null);
+    }
+
+    /**
+     * When "after" has some changes, action is "update"
+     */
+    public boolean isUpdate() {
+        if (!beforeExists() || mAfter == null || mAfter.size() == 0) {
+            return false;
+        }
+        for (String key : mAfter.keySet()) {
+            Object newValue = mAfter.get(key);
+            Object oldValue = mBefore.get(key);
+            if (oldValue == null) {
+                if (newValue != null) {
+                    return true;
+                }
+            } else if (!oldValue.equals(newValue)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * When "after" has no changes, action is no-op
+     */
+    public boolean isNoop() {
+        return beforeExists() && (mAfter != null && mAfter.size() == 0);
+    }
+
+    /**
+     * When no "before" id, and has "after", action is "insert"
+     */
+    public boolean isInsert() {
+        return !beforeExists() && (mAfter != null);
+    }
+
+    public void markDeleted() {
+        mAfter = null;
+    }
+
+    /**
+     * Ensure that our internal structure is ready for storing updates.
+     */
+    private void ensureUpdate() {
+        if (mAfter == null) {
+            mAfter = new ContentValues();
+        }
+    }
+
+    public void put(String key, String value) {
+        ensureUpdate();
+        mAfter.put(key, value);
+    }
+
+    public void put(String key, byte[] value) {
+        ensureUpdate();
+        mAfter.put(key, value);
+    }
+
+    public void put(String key, int value) {
+        ensureUpdate();
+        mAfter.put(key, value);
+    }
+
+    public void put(String key, long value) {
+        ensureUpdate();
+        mAfter.put(key, value);
+    }
+
+    public void putNull(String key) {
+        ensureUpdate();
+        mAfter.putNull(key);
+    }
+
+    public void copyStringFrom(ValuesDelta from, String key) {
+        ensureUpdate();
+        if (containsKey(key) || from.containsKey(key)) {
+            put(key, from.getAsString(key));
+        }
+    }
+
+    /**
+     * Return set of all keys defined through this object.
+     */
+    public Set<String> keySet() {
+        final HashSet<String> keys = Sets.newHashSet();
+
+        if (mBefore != null) {
+            for (Map.Entry<String, Object> entry : mBefore.valueSet()) {
+                keys.add(entry.getKey());
+            }
+        }
+
+        if (mAfter != null) {
+            for (Map.Entry<String, Object> entry : mAfter.valueSet()) {
+                keys.add(entry.getKey());
+            }
+        }
+
+        return keys;
+    }
+
+    /**
+     * Return complete set of "before" and "after" values mixed together,
+     * giving full state regardless of edits.
+     */
+    public ContentValues getCompleteValues() {
+        final ContentValues values = new ContentValues();
+        if (mBefore != null) {
+            values.putAll(mBefore);
+        }
+        if (mAfter != null) {
+            values.putAll(mAfter);
+        }
+        if (values.containsKey(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID)) {
+            // Clear to avoid double-definitions, and prefer rows
+            values.remove(ContactsContract.CommonDataKinds.GroupMembership.GROUP_SOURCE_ID);
+        }
+
+        return values;
+    }
+
+    /**
+     * Merge the "after" values from the given {@link ValuesDelta},
+     * discarding any existing "after" state. This is typically used when
+     * re-parenting changes onto an updated {@link Entity}.
+     */
+    public static ValuesDelta mergeAfter(ValuesDelta local, ValuesDelta remote) {
+        // Bail early if trying to merge delete with missing local
+        if (local == null && (remote.isDelete() || remote.isTransient())) return null;
+
+        // Create local version if none exists yet
+        if (local == null) local = new ValuesDelta();
+
+        if (!local.beforeExists()) {
+            // Any "before" record is missing, so take all values as "insert"
+            local.mAfter = remote.getCompleteValues();
+        } else {
+            // Existing "update" with only "after" values
+            local.mAfter = remote.mAfter;
+        }
+
+        return local;
+    }
+
+    @Override
+    public boolean equals(Object object) {
+        if (object instanceof ValuesDelta) {
+            // Only exactly equal with both are identical subsets
+            final ValuesDelta other = (ValuesDelta)object;
+            return this.subsetEquals(other) && other.subsetEquals(this);
+        }
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder builder = new StringBuilder();
+        toString(builder);
+        return builder.toString();
+    }
+
+    /**
+     * Helper for building string representation, leveraging the given
+     * {@link StringBuilder} to minimize allocations.
+     */
+    public void toString(StringBuilder builder) {
+        builder.append("{ ");
+        builder.append("IdColumn=");
+        builder.append(mIdColumn);
+        builder.append(", FromTemplate=");
+        builder.append(mFromTemplate);
+        builder.append(", ");
+        for (String key : this.keySet()) {
+            builder.append(key);
+            builder.append("=");
+            builder.append(this.getAsString(key));
+            builder.append(", ");
+        }
+        builder.append("}");
+    }
+
+    /**
+     * Check if the given {@link ValuesDelta} is both a subset of this
+     * object, and any defined keys have equal values.
+     */
+    public boolean subsetEquals(ValuesDelta other) {
+        for (String key : this.keySet()) {
+            final String ourValue = this.getAsString(key);
+            final String theirValue = other.getAsString(key);
+            if (ourValue == null) {
+                // If they have value when we're null, no match
+                if (theirValue != null) return false;
+            } else {
+                // If both values defined and aren't equal, no match
+                if (!ourValue.equals(theirValue)) return false;
+            }
+        }
+        // All values compared and matched
+        return true;
+    }
+
+    /**
+     * Build a {@link android.content.ContentProviderOperation} that will transform our
+     * "before" state into our "after" state, using insert, update, or
+     * delete as needed.
+     */
+    public ContentProviderOperation.Builder buildDiff(Uri targetUri) {
+        return buildDiffHelper(targetUri);
+    }
+
+    /**
+     * For compatibility purpose.
+     */
+    public BuilderWrapper buildDiffWrapper(Uri targetUri) {
+        final ContentProviderOperation.Builder builder = buildDiffHelper(targetUri);
+        BuilderWrapper bw = null;
+        if (isInsert()) {
+            bw = new BuilderWrapper(builder, CompatUtils.TYPE_INSERT);
+        } else if (isDelete()) {
+            bw = new BuilderWrapper(builder, CompatUtils.TYPE_DELETE);
+        } else if (isUpdate()) {
+            bw = new BuilderWrapper(builder, CompatUtils.TYPE_UPDATE);
+        }
+        return bw;
+    }
+
+    private ContentProviderOperation.Builder buildDiffHelper(Uri targetUri) {
+        ContentProviderOperation.Builder builder = null;
+        if (isInsert()) {
+            // Changed values are "insert" back-referenced to Contact
+            mAfter.remove(mIdColumn);
+            builder = ContentProviderOperation.newInsert(targetUri);
+            builder.withValues(mAfter);
+        } else if (isDelete()) {
+            // When marked for deletion and "before" exists, then "delete"
+            builder = ContentProviderOperation.newDelete(targetUri);
+            builder.withSelection(mIdColumn + "=" + getId(), null);
+        } else if (isUpdate()) {
+            // When has changes and "before" exists, then "update"
+            builder = ContentProviderOperation.newUpdate(targetUri);
+            builder.withSelection(mIdColumn + "=" + getId(), null);
+            builder.withValues(mAfter);
+        }
+        return builder;
+    }
+
+    /** {@inheritDoc} */
+    public int describeContents() {
+        // Nothing special about this parcel
+        return 0;
+    }
+
+    /** {@inheritDoc} */
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeParcelable(mBefore, flags);
+        dest.writeParcelable(mAfter, flags);
+        dest.writeString(mIdColumn);
+    }
+
+    public void readFromParcel(Parcel source) {
+        final ClassLoader loader = getClass().getClassLoader();
+        mBefore = source.<ContentValues> readParcelable(loader);
+        mAfter = source.<ContentValues> readParcelable(loader);
+        mIdColumn = source.readString();
+    }
+
+    public static final Creator<ValuesDelta> CREATOR = new Creator<ValuesDelta>() {
+        public ValuesDelta createFromParcel(Parcel in) {
+            final ValuesDelta values = new ValuesDelta();
+            values.readFromParcel(in);
+            return values;
+        }
+
+        public ValuesDelta[] newArray(int size) {
+            return new ValuesDelta[size];
+        }
+    };
+
+    public void setGroupRowId(long groupId) {
+        put(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID, groupId);
+    }
+
+    public Long getGroupRowId() {
+        return getAsLong(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID);
+    }
+
+    public void setPhoto(byte[] value) {
+        put(ContactsContract.CommonDataKinds.Photo.PHOTO, value);
+    }
+
+    public byte[] getPhoto() {
+        return getAsByteArray(ContactsContract.CommonDataKinds.Photo.PHOTO);
+    }
+
+    public void setSuperPrimary(boolean val) {
+        if (val) {
+            put(ContactsContract.Data.IS_SUPER_PRIMARY, 1);
+        } else {
+            put(ContactsContract.Data.IS_SUPER_PRIMARY, 0);
+        }
+    }
+
+    public void setPhoneticFamilyName(String value) {
+        put(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME, value);
+    }
+
+    public void setPhoneticMiddleName(String value) {
+        put(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_MIDDLE_NAME, value);
+    }
+
+    public void setPhoneticGivenName(String value) {
+        put(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_GIVEN_NAME, value);
+    }
+
+    public String getPhoneticFamilyName() {
+        return getAsString(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME);
+    }
+
+    public String getPhoneticMiddleName() {
+        return getAsString(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_MIDDLE_NAME);
+    }
+
+    public String getPhoneticGivenName() {
+        return getAsString(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_GIVEN_NAME);
+    }
+
+    public String getDisplayName() {
+        return getAsString(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME);
+    }
+
+    public void setDisplayName(String name) {
+        if (name == null) {
+            putNull(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME);
+        } else {
+            put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);
+        }
+    }
+
+    public void copyStructuredNameFieldsFrom(ValuesDelta name) {
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME);
+
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME);
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME);
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.PREFIX);
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME);
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.SUFFIX);
+
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.PHONETIC_GIVEN_NAME);
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.PHONETIC_MIDDLE_NAME);
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME);
+
+        copyStringFrom(name, ContactsContract.CommonDataKinds.StructuredName.FULL_NAME_STYLE);
+        copyStringFrom(name, ContactsContract.Data.DATA11);
+    }
+
+    public String getPhoneNumber() {
+        return getAsString(ContactsContract.CommonDataKinds.Phone.NUMBER);
+    }
+
+    public String getPhoneNormalizedNumber() {
+        return getAsString(ContactsContract.CommonDataKinds.Phone.NORMALIZED_NUMBER);
+    }
+
+    public boolean hasPhoneType() {
+        return getPhoneType() != null;
+    }
+
+    public Integer getPhoneType() {
+        return getAsInteger(ContactsContract.CommonDataKinds.Phone.TYPE);
+    }
+
+    public String getPhoneLabel() {
+        return getAsString(ContactsContract.CommonDataKinds.Phone.LABEL);
+    }
+
+    public String getEmailData() {
+        return getAsString(ContactsContract.CommonDataKinds.Email.DATA);
+    }
+
+    public boolean hasEmailType() {
+        return getEmailType() != null;
+    }
+
+    public Integer getEmailType() {
+        return getAsInteger(ContactsContract.CommonDataKinds.Email.TYPE);
+    }
+
+    public String getEmailLabel() {
+        return getAsString(ContactsContract.CommonDataKinds.Email.LABEL);
+    }
+}
diff --git a/src/com/android/contacts/model/account/AccountComparator.java b/src/com/android/contacts/model/account/AccountComparator.java
new file mode 100644
index 0000000..70ccf49
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountComparator.java
@@ -0,0 +1,71 @@
+/*
+ * 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.account;
+
+import com.google.common.base.Objects;
+
+import java.util.Comparator;
+
+/**
+ * Orders accounts for display such that the default account is first
+ */
+public class AccountComparator implements Comparator<AccountWithDataSet> {
+    private AccountWithDataSet mDefaultAccount;
+
+    public AccountComparator(AccountWithDataSet defaultAccount) {
+        mDefaultAccount = defaultAccount;
+    }
+
+    @Override
+    public int compare(AccountWithDataSet a, AccountWithDataSet b) {
+        if (Objects.equal(a.name, b.name) && Objects.equal(a.type, b.type)
+                && Objects.equal(a.dataSet, b.dataSet)) {
+            return 0;
+        } else if (b.name == null || b.type == null) {
+            return -1;
+        } else if (a.name == null || a.type == null) {
+            return 1;
+        } else if (isWritableGoogleAccount(a) && a.equals(mDefaultAccount)) {
+            return -1;
+        } else if (isWritableGoogleAccount(b) && b.equals(mDefaultAccount)) {
+            return 1;
+        } else if (isWritableGoogleAccount(a) && !isWritableGoogleAccount(b)) {
+            return -1;
+        } else if (isWritableGoogleAccount(b) && !isWritableGoogleAccount(a)) {
+            return 1;
+        } else {
+            int diff = a.name.compareToIgnoreCase(b.name);
+            if (diff != 0) {
+                return diff;
+            }
+            diff = a.type.compareToIgnoreCase(b.type);
+            if (diff != 0) {
+                return diff;
+            }
+
+            // Accounts without data sets get sorted before those that have them.
+            if (a.dataSet != null) {
+                return b.dataSet == null ? 1 : a.dataSet.compareToIgnoreCase(b.dataSet);
+            } else {
+                return -1;
+            }
+        }
+    }
+
+    private static boolean isWritableGoogleAccount(AccountWithDataSet account) {
+        return GoogleAccountType.ACCOUNT_TYPE.equals(account.type) && account.dataSet == null;
+    }
+}
diff --git a/src/com/android/contacts/model/account/AccountDisplayInfo.java b/src/com/android/contacts/model/account/AccountDisplayInfo.java
new file mode 100644
index 0000000..fe0c570
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountDisplayInfo.java
@@ -0,0 +1,100 @@
+/*
+ * 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.account;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.support.annotation.StringRes;
+import android.text.TextUtils;
+
+/**
+ * Wrapper around AccountWithDataSet that contains user-friendly labels and an icon.
+ *
+ * The raw values for name and type in AccountWithDataSet are not always (or even usually)
+ * appropriate for direct display to the user.
+ */
+public class AccountDisplayInfo {
+    private final AccountWithDataSet mSource;
+
+    private final CharSequence mName;
+    private final CharSequence mType;
+    private final Drawable mIcon;
+
+    private final boolean mIsDeviceAccount;
+
+    public AccountDisplayInfo(AccountWithDataSet account, CharSequence name, CharSequence type,
+            Drawable icon, boolean isDeviceAccount) {
+        mSource = account;
+        mName = name;
+        mType = type;
+        mIcon = icon;
+        mIsDeviceAccount = isDeviceAccount;
+    }
+
+    public AccountWithDataSet getSource() {
+        return mSource;
+    }
+
+    public CharSequence getNameLabel() {
+        return mName;
+    }
+
+    public CharSequence getTypeLabel() {
+        return mType;
+    }
+
+    public Drawable getIcon() {
+        return mIcon;
+    }
+
+    public boolean hasGoogleAccountType() {
+        return GoogleAccountType.ACCOUNT_TYPE.equals(mSource.type);
+    }
+
+    public boolean isGoogleAccount() {
+        return GoogleAccountType.ACCOUNT_TYPE.equals(mSource.type) && mSource.dataSet == null;
+    }
+
+    public boolean isDeviceAccount() {
+        return mIsDeviceAccount;
+    }
+
+    public boolean hasDistinctName() {
+        return !TextUtils.equals(mName, mType);
+    }
+
+    public AccountDisplayInfo withName(CharSequence name) {
+        return withNameAndType(name, mType);
+    }
+
+    public AccountDisplayInfo withType(CharSequence type) {
+        return withNameAndType(mName, type);
+    }
+
+    public AccountDisplayInfo withNameAndType(CharSequence name, CharSequence type) {
+        return new AccountDisplayInfo(mSource, name, type, mIcon, mIsDeviceAccount);
+    }
+
+    public AccountDisplayInfo formatted(Context context, @StringRes int nameFormat,
+            @StringRes int typeFormat) {
+        return new AccountDisplayInfo(mSource, context.getString(nameFormat, mName),
+                context.getString(typeFormat, mType), mIcon, mIsDeviceAccount);
+    }
+
+    public AccountDisplayInfo withFormattedName(Context context, @StringRes int nameFormat) {
+        return withName(context.getString(nameFormat, mName));
+    }
+}
diff --git a/src/com/android/contacts/model/account/AccountDisplayInfoFactory.java b/src/com/android/contacts/model/account/AccountDisplayInfoFactory.java
new file mode 100644
index 0000000..ac1ad35
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountDisplayInfoFactory.java
@@ -0,0 +1,110 @@
+/*
+ * 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.account;
+
+import android.content.Context;
+
+import com.android.contacts.list.ContactListFilter;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.util.DeviceLocalAccountTypeFactory;
+import com.android.contactsbind.ObjectFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Provides methods to get AccountDisplayInfo instances for available accounts.
+ *
+ * For most accounts the account name will be used for the label but device accounts and
+ * SIM accounts have friendly names associated with them unless there is more than one of these
+ * types of accounts present in the list.
+ */
+public class AccountDisplayInfoFactory {
+
+    private final Context mContext;
+    private final AccountTypeManager mAccountTypeManager;
+
+    private final DeviceLocalAccountTypeFactory mDeviceAccountTypeFactory;
+
+    private final int mDeviceAccountCount;
+    private final int mSimAccountCount;
+
+    public AccountDisplayInfoFactory(Context context, List<AccountWithDataSet> accounts) {
+        this(context, AccountTypeManager.getInstance(context),
+                ObjectFactory.getDeviceLocalAccountTypeFactory(context), accounts);
+    }
+
+    public AccountDisplayInfoFactory(Context context, AccountTypeManager accountTypeManager,
+            DeviceLocalAccountTypeFactory deviceAccountTypeFactory,
+            List<AccountWithDataSet> accounts) {
+        mContext = context;
+        mAccountTypeManager = accountTypeManager;
+        mDeviceAccountTypeFactory = deviceAccountTypeFactory;
+
+        mSimAccountCount = countOfType(DeviceLocalAccountTypeFactory.TYPE_SIM, accounts);
+        mDeviceAccountCount = countOfType(DeviceLocalAccountTypeFactory.TYPE_DEVICE, accounts);
+    }
+
+    public AccountDisplayInfo getAccountDisplayInfo(AccountWithDataSet account) {
+        final AccountType type = mAccountTypeManager.getAccountTypeForAccount(account);
+        final CharSequence name = shouldUseTypeLabelForName(account)
+                ? type.getDisplayLabel(mContext)
+                : account.name;
+        return new AccountDisplayInfo(account, name, type.getDisplayLabel(mContext),
+                type.getDisplayIcon(mContext),
+                DeviceLocalAccountTypeFactory.Util.isLocalAccountType(mDeviceAccountTypeFactory,
+                        type.accountType));
+    }
+
+    public AccountDisplayInfo getAccountDisplayInfoFor(ContactListFilter filter) {
+        return getAccountDisplayInfo(filter.toAccountWithDataSet());
+    }
+
+    public AccountDisplayInfo getAccountDisplayInfoFor(RawContactDelta delta) {
+        final AccountWithDataSet account = new AccountWithDataSet(delta.getAccountName(),
+                delta.getAccountType(), delta.getDataSet());
+        return getAccountDisplayInfo(account);
+    }
+
+    public static AccountDisplayInfoFactory fromListFilters(Context context,
+            List<ContactListFilter> filters) {
+        final List<AccountWithDataSet> accounts = new ArrayList<>(filters.size());
+        for (ContactListFilter filter : filters) {
+            accounts.add(filter.toAccountWithDataSet());
+        }
+        return new AccountDisplayInfoFactory(context, accounts);
+    }
+
+    private boolean shouldUseTypeLabelForName(AccountWithDataSet account) {
+        final int type = mDeviceAccountTypeFactory.classifyAccount(account.type);
+        return (type == DeviceLocalAccountTypeFactory.TYPE_SIM && mSimAccountCount == 1)
+                || (type == DeviceLocalAccountTypeFactory.TYPE_DEVICE && mDeviceAccountCount == 1)
+                || account.name == null;
+
+    }
+
+    private int countOfType(@DeviceLocalAccountTypeFactory.LocalAccountType int type,
+            List<AccountWithDataSet> accounts) {
+        int count = 0;
+        for (AccountWithDataSet account : accounts) {
+            if (mDeviceAccountTypeFactory.classifyAccount(account.type) == type) {
+                count++;
+            }
+        }
+        return count;
+    }
+}
diff --git a/src/com/android/contacts/model/account/AccountInfo.java b/src/com/android/contacts/model/account/AccountInfo.java
new file mode 100644
index 0000000..b07204e
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountInfo.java
@@ -0,0 +1,156 @@
+/*
+ * 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.account;
+
+import android.graphics.drawable.Drawable;
+
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Holds an {@link AccountWithDataSet} and the corresponding {@link AccountType} for an account.
+ */
+public class AccountInfo {
+
+    private final AccountDisplayInfo mDisplayInfo;
+    private final AccountType mType;
+
+    public AccountInfo(AccountDisplayInfo displayInfo, AccountType type) {
+        this.mDisplayInfo = displayInfo;
+        this.mType = type;
+    }
+
+    public AccountType getType() {
+        return mType;
+    }
+
+    public AccountWithDataSet getAccount() {
+        return mDisplayInfo.getSource();
+    }
+
+    /**
+     * Returns the displayable account name label for the account
+     */
+    public CharSequence getNameLabel() {
+        return mDisplayInfo.getNameLabel();
+    }
+
+    /**
+     * Returns the displayable account type label for the account
+     */
+    public CharSequence getTypeLabel() {
+        return mDisplayInfo.getTypeLabel();
+    }
+
+    /**
+     * Returns the icon for the account type
+     */
+    public Drawable getIcon() {
+        return mDisplayInfo.getIcon();
+    }
+
+    public boolean hasDistinctName() {
+        return mDisplayInfo.hasDistinctName();
+    }
+
+    public boolean isDeviceAccount() {
+        return mDisplayInfo.isDeviceAccount();
+    }
+
+    public boolean hasGoogleAccountType() {
+        return mDisplayInfo.hasGoogleAccountType();
+    }
+
+    public boolean sameAccount(AccountInfo other) {
+        return sameAccount(other.getAccount());
+    }
+
+    public boolean sameAccount(AccountWithDataSet other) {
+        return Objects.equals(getAccount(), other);
+    }
+
+    /**
+     * Returns whether accounts contains an account that is the same as account
+     *
+     * <p>This does not use equality rather checks whether the source account ({@link #getAccount()}
+     * is the same</p>
+     */
+    public static boolean contains(List<AccountInfo> accounts, AccountInfo account) {
+        return contains(accounts, account.getAccount());
+    }
+
+    /**
+     * Returns whether accounts contains an account that is the same as account
+     *
+     * <p>This does not use equality rather checks whether the source account ({@link #getAccount()}
+     * is the same</p>
+     */
+    public static boolean contains(List<AccountInfo> accounts, AccountWithDataSet account) {
+        return getAccount(accounts, account) != null;
+    }
+
+    /**
+     * Returns the AccountInfo from the list that has the specified account as it's source account
+     */
+    public static AccountInfo getAccount(List<AccountInfo> accounts, AccountWithDataSet account) {
+        Preconditions.checkNotNull(accounts);
+
+        for (AccountInfo info : accounts) {
+            if (info.sameAccount(account)) {
+                return info;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Sorts the accounts using the same ordering as {@link AccountComparator}
+     */
+    public static void sortAccounts(AccountWithDataSet defaultAccount, List<AccountInfo> accounts) {
+        Collections.sort(accounts, sourceComparator(defaultAccount));
+    }
+
+    /**
+     * Gets a list of the AccountWithDataSet for accounts
+     */
+    public static List<AccountWithDataSet> extractAccounts(List<AccountInfo> accounts) {
+        return Lists.transform(accounts, ACCOUNT_EXTRACTOR);
+    }
+
+    private static Comparator<AccountInfo> sourceComparator(AccountWithDataSet defaultAccount) {
+        final AccountComparator accountComparator = new AccountComparator(defaultAccount);
+        return new Comparator<AccountInfo>() {
+            @Override
+            public int compare(AccountInfo o1, AccountInfo o2) {
+                return accountComparator.compare(o1.getAccount(), o2.getAccount());
+            }
+        };
+    }
+
+    public static final Function<AccountInfo, AccountWithDataSet> ACCOUNT_EXTRACTOR =
+            new Function<AccountInfo, AccountWithDataSet>() {
+                @Override
+                public AccountWithDataSet apply(AccountInfo from) {
+                    return from.getAccount();
+                }
+            };
+}
diff --git a/src/com/android/contacts/model/account/AccountType.java b/src/com/android/contacts/model/account/AccountType.java
new file mode 100644
index 0000000..bddfc09
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountType.java
@@ -0,0 +1,529 @@
+/*
+ * Copyright (C) 2009 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.account;
+
+import android.accounts.AuthenticatorDescription;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.RawContacts;
+import android.view.inputmethod.EditorInfo;
+import android.widget.EditText;
+
+import com.android.contacts.R;
+import com.android.contacts.model.dataitem.DataKind;
+
+import com.google.common.base.Preconditions;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Objects;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Internal structure that represents constraints and styles for a specific data
+ * source, such as the various data types they support, including details on how
+ * those types should be rendered and edited.
+ * <p>
+ * In the future this may be inflated from XML defined by a data source.
+ */
+public abstract class AccountType {
+    private static final String TAG = "AccountType";
+
+    /**
+     * The {@link RawContacts#ACCOUNT_TYPE} these constraints apply to.
+     */
+    public String accountType = null;
+
+    /**
+     * The {@link RawContacts#DATA_SET} these constraints apply to.
+     */
+    public String dataSet = null;
+
+    /**
+     * Package that resources should be loaded from.  Will be null for embedded types, in which
+     * case resources are stored in this package itself.
+     *
+     * TODO Clean up {@link #resourcePackageName}, {@link #syncAdapterPackageName} and
+     * {@link #getViewContactNotifyServicePackageName()}.
+     *
+     * There's the following invariants:
+     * - {@link #syncAdapterPackageName} is always set to the actual sync adapter package name.
+     * - {@link #resourcePackageName} too is set to the same value, unless {@link #isEmbedded()},
+     *   in which case it'll be null.
+     * There's an unfortunate exception of {@link FallbackAccountType}.  Even though it
+     * {@link #isEmbedded()}, but we set non-null to {@link #resourcePackageName} for unit tests.
+     */
+    public String resourcePackageName;
+    /**
+     * The package name for the authenticator (for the embedded types, i.e. Google and Exchange)
+     * or the sync adapter (for external type, including extensions).
+     */
+    public String syncAdapterPackageName;
+
+    public int titleRes;
+    public int iconRes;
+
+    /**
+     * Set of {@link DataKind} supported by this source.
+     */
+    private ArrayList<DataKind> mKinds = Lists.newArrayList();
+
+    /**
+     * Lookup map of {@link #mKinds} on {@link DataKind#mimeType}.
+     */
+    private HashMap<String, DataKind> mMimeKinds = Maps.newHashMap();
+
+    protected boolean mIsInitialized;
+
+    protected static class DefinitionException extends Exception {
+        public DefinitionException(String message) {
+            super(message);
+        }
+
+        public DefinitionException(String message, Exception inner) {
+            super(message, inner);
+        }
+    }
+
+    /**
+     * Whether this account type was able to be fully initialized.  This may be false if
+     * (for example) the package name associated with the account type could not be found.
+     */
+    public final boolean isInitialized() {
+        return mIsInitialized;
+    }
+
+    /**
+     * @return Whether this type is an "embedded" type.  i.e. any of {@link FallbackAccountType},
+     * {@link GoogleAccountType} or {@link ExternalAccountType}.
+     *
+     * If an embedded type cannot be initialized (i.e. if {@link #isInitialized()} returns
+     * {@code false}) it's considered critical, and the application will crash.  On the other
+     * hand if it's not an embedded type, we just skip loading the type.
+     */
+    public boolean isEmbedded() {
+        return true;
+    }
+
+    public boolean isExtension() {
+        return false;
+    }
+
+    /**
+     * @return True if contacts can be created and edited using this app. If false,
+     * there could still be an external editor as provided by
+     * {@link #getEditContactActivityClassName()} or {@link #getCreateContactActivityClassName()}
+     */
+    public abstract boolean areContactsWritable();
+
+    /**
+     * Returns an optional custom invite contact activity.
+     *
+     * Only makes sense for non-embedded account types.
+     * The activity class should reside in the sync adapter package as determined by
+     * {@link #syncAdapterPackageName}.
+     */
+    public String getInviteContactActivityClassName() {
+        return null;
+    }
+
+    /**
+     * Returns an optional service that can be launched whenever a contact is being looked at.
+     * This allows the sync adapter to provide more up-to-date information.
+     *
+     * The service class should reside in the sync adapter package as determined by
+     * {@link #getViewContactNotifyServicePackageName()}.
+     */
+    public String getViewContactNotifyServiceClassName() {
+        return null;
+    }
+
+    /**
+     * TODO This is way too hacky should be removed.
+     *
+     * This is introduced for {@link GoogleAccountType} where {@link #syncAdapterPackageName}
+     * is the authenticator package name but the notification service is in the sync adapter
+     * package.  See {@link #resourcePackageName} -- we should clean up those.
+     */
+    public String getViewContactNotifyServicePackageName() {
+        return syncAdapterPackageName;
+    }
+
+    /** Returns an optional Activity string that can be used to view the group. */
+    public String getViewGroupActivity() {
+        return null;
+    }
+
+    public CharSequence getDisplayLabel(Context context) {
+        // Note this resource is defined in the sync adapter package, not resourcePackageName.
+        return getResourceText(context, syncAdapterPackageName, titleRes, accountType);
+    }
+
+    /**
+     * Creates an {@link AccountInfo} for the specified account with the same type
+     *
+     * <p>The {@link AccountWithDataSet#type} must match {@link #accountType} of this instance</p>
+     */
+    public AccountInfo wrapAccount(Context context, AccountWithDataSet account) {
+        Preconditions.checkArgument(Objects.equal(account.type, accountType),
+                "Account types must match: account.type=%s but accountType=%s",
+                account.type, accountType);
+
+        return new AccountInfo(
+                new AccountDisplayInfo(account, account.name,
+                        getDisplayLabel(context), getDisplayIcon(context), false), this);
+    }
+
+    /**
+     * @return resource ID for the "invite contact" action label, or -1 if not defined.
+     */
+    protected int getInviteContactActionResId() {
+        return -1;
+    }
+
+    /**
+     * @return resource ID for the "view group" label, or -1 if not defined.
+     */
+    protected int getViewGroupLabelResId() {
+        return -1;
+    }
+
+    /**
+     * Returns {@link AccountTypeWithDataSet} for this type.
+     */
+    public AccountTypeWithDataSet getAccountTypeAndDataSet() {
+        return AccountTypeWithDataSet.get(accountType, dataSet);
+    }
+
+    /**
+     * Returns a list of additional package names that should be inspected as additional
+     * external account types.  This allows for a primary account type to indicate other packages
+     * that may not be sync adapters but which still provide contact data, perhaps under a
+     * separate data set within the account.
+     */
+    public List<String> getExtensionPackageNames() {
+        return new ArrayList<String>();
+    }
+
+    /**
+     * Returns an optional custom label for the "invite contact" action, which will be shown on
+     * the contact card.  (If not defined, returns null.)
+     */
+    public CharSequence getInviteContactActionLabel(Context context) {
+        // Note this resource is defined in the sync adapter package, not resourcePackageName.
+        return getResourceText(context, syncAdapterPackageName, getInviteContactActionResId(), "");
+    }
+
+    /**
+     * Returns a label for the "view group" action. If not defined, this falls back to our
+     * own "View Updates" string
+     */
+    public CharSequence getViewGroupLabel(Context context) {
+        // Note this resource is defined in the sync adapter package, not resourcePackageName.
+        final CharSequence customTitle =
+                getResourceText(context, syncAdapterPackageName, getViewGroupLabelResId(), null);
+
+        return customTitle == null
+                ? context.getText(R.string.view_updates_from_group)
+                : customTitle;
+    }
+
+    /**
+     * Return a string resource loaded from the given package (or the current package
+     * if {@code packageName} is null), unless {@code resId} is -1, in which case it returns
+     * {@code defaultValue}.
+     *
+     * (The behavior is undefined if the resource or package doesn't exist.)
+     */
+    @VisibleForTesting
+    static CharSequence getResourceText(Context context, String packageName, int resId,
+            String defaultValue) {
+        if (resId != -1 && packageName != null) {
+            final PackageManager pm = context.getPackageManager();
+            return pm.getText(packageName, resId, null);
+        } else if (resId != -1) {
+            return context.getText(resId);
+        } else {
+            return defaultValue;
+        }
+    }
+
+    public Drawable getDisplayIcon(Context context) {
+        return getDisplayIcon(context, titleRes, iconRes, syncAdapterPackageName);
+    }
+
+    public static Drawable getDisplayIcon(Context context, int titleRes, int iconRes,
+            String syncAdapterPackageName) {
+        if (titleRes != -1 && syncAdapterPackageName != null) {
+            final PackageManager pm = context.getPackageManager();
+            return pm.getDrawable(syncAdapterPackageName, iconRes, null);
+        } else if (titleRes != -1) {
+            return context.getResources().getDrawable(iconRes);
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Whether or not groups created under this account type have editable membership lists.
+     */
+    abstract public boolean isGroupMembershipEditable();
+
+    /**
+     * {@link Comparator} to sort by {@link DataKind#weight}.
+     */
+    private static Comparator<DataKind> sWeightComparator = new Comparator<DataKind>() {
+        @Override
+        public int compare(DataKind object1, DataKind object2) {
+            return object1.weight - object2.weight;
+        }
+    };
+
+    /**
+     * Return list of {@link DataKind} supported, sorted by
+     * {@link DataKind#weight}.
+     */
+    public ArrayList<DataKind> getSortedDataKinds() {
+        // TODO: optimize by marking if already sorted
+        Collections.sort(mKinds, sWeightComparator);
+        return mKinds;
+    }
+
+    /**
+     * Find the {@link DataKind} for a specific MIME-type, if it's handled by
+     * this data source.
+     */
+    public DataKind getKindForMimetype(String mimeType) {
+        return this.mMimeKinds.get(mimeType);
+    }
+
+    public void initializeFieldsFromAuthenticator(AuthenticatorDescription authenticator) {
+        accountType = authenticator.type;
+        titleRes = authenticator.labelId;
+        iconRes = authenticator.iconId;
+    }
+
+    /**
+     * Add given {@link DataKind} to list of those provided by this source.
+     */
+    public DataKind addKind(DataKind kind) throws DefinitionException {
+        if (kind.mimeType == null) {
+            throw new DefinitionException("null is not a valid mime type");
+        }
+        if (mMimeKinds.get(kind.mimeType) != null) {
+            throw new DefinitionException(
+                    "mime type '" + kind.mimeType + "' is already registered");
+        }
+
+        kind.resourcePackageName = this.resourcePackageName;
+        this.mKinds.add(kind);
+        this.mMimeKinds.put(kind.mimeType, kind);
+        return kind;
+    }
+
+    /**
+     * Description of a specific "type" or "label" of a {@link DataKind} row,
+     * such as {@link Phone#TYPE_WORK}. Includes constraints on total number of
+     * rows a {@link Contacts} may have of this type, and details on how
+     * user-defined labels are stored.
+     */
+    public static class EditType {
+        public int rawValue;
+        public int labelRes;
+        public boolean secondary;
+        /**
+         * The number of entries allowed for the type. -1 if not specified.
+         * @see DataKind#typeOverallMax
+         */
+        public int specificMax;
+        public String customColumn;
+
+        public EditType(int rawValue, int labelRes) {
+            this.rawValue = rawValue;
+            this.labelRes = labelRes;
+            this.specificMax = -1;
+        }
+
+        public EditType setSecondary(boolean secondary) {
+            this.secondary = secondary;
+            return this;
+        }
+
+        public EditType setSpecificMax(int specificMax) {
+            this.specificMax = specificMax;
+            return this;
+        }
+
+        public EditType setCustomColumn(String customColumn) {
+            this.customColumn = customColumn;
+            return this;
+        }
+
+        @Override
+        public boolean equals(Object object) {
+            if (object instanceof EditType) {
+                final EditType other = (EditType)object;
+                return other.rawValue == rawValue;
+            }
+            return false;
+        }
+
+        @Override
+        public int hashCode() {
+            return rawValue;
+        }
+
+        @Override
+        public String toString() {
+            return this.getClass().getSimpleName()
+                    + " rawValue=" + rawValue
+                    + " labelRes=" + labelRes
+                    + " secondary=" + secondary
+                    + " specificMax=" + specificMax
+                    + " customColumn=" + customColumn;
+        }
+    }
+
+    public static class EventEditType extends EditType {
+        private boolean mYearOptional;
+
+        public EventEditType(int rawValue, int labelRes) {
+            super(rawValue, labelRes);
+        }
+
+        public boolean isYearOptional() {
+            return mYearOptional;
+        }
+
+        public EventEditType setYearOptional(boolean yearOptional) {
+            mYearOptional = yearOptional;
+            return this;
+        }
+
+        @Override
+        public String toString() {
+            return super.toString() + " mYearOptional=" + mYearOptional;
+        }
+    }
+
+    /**
+     * Description of a user-editable field on a {@link DataKind} row, such as
+     * {@link Phone#NUMBER}. Includes flags to apply to an {@link EditText}, and
+     * the column where this field is stored.
+     */
+    public static final class EditField {
+        public String column;
+        public int titleRes;
+        public int inputType;
+        public int minLines;
+        public boolean optional;
+        public boolean shortForm;
+        public boolean longForm;
+
+        public EditField(String column, int titleRes) {
+            this.column = column;
+            this.titleRes = titleRes;
+        }
+
+        public EditField(String column, int titleRes, int inputType) {
+            this(column, titleRes);
+            this.inputType = inputType;
+        }
+
+        public EditField setOptional(boolean optional) {
+            this.optional = optional;
+            return this;
+        }
+
+        public EditField setShortForm(boolean shortForm) {
+            this.shortForm = shortForm;
+            return this;
+        }
+
+        public EditField setLongForm(boolean longForm) {
+            this.longForm = longForm;
+            return this;
+        }
+
+        public EditField setMinLines(int minLines) {
+            this.minLines = minLines;
+            return this;
+        }
+
+        public boolean isMultiLine() {
+            return (inputType & EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE) != 0;
+        }
+
+
+        @Override
+        public String toString() {
+            return this.getClass().getSimpleName() + ":"
+                    + " column=" + column
+                    + " titleRes=" + titleRes
+                    + " inputType=" + inputType
+                    + " minLines=" + minLines
+                    + " optional=" + optional
+                    + " shortForm=" + shortForm
+                    + " longForm=" + longForm;
+        }
+    }
+
+    /**
+     * Generic method of inflating a given {@link ContentValues} into a user-readable
+     * {@link CharSequence}. For example, an inflater could combine the multiple
+     * columns of {@link StructuredPostal} together using a string resource
+     * before presenting to the user.
+     */
+    public interface StringInflater {
+        public CharSequence inflateUsing(Context context, ContentValues values);
+    }
+
+    /**
+     * Compare two {@link AccountType} by their {@link AccountType#getDisplayLabel} with the
+     * current locale.
+     */
+    public static class DisplayLabelComparator implements Comparator<AccountType> {
+        private final Context mContext;
+        /** {@link Comparator} for the current locale. */
+        private final Collator mCollator = Collator.getInstance();
+
+        public DisplayLabelComparator(Context context) {
+            mContext = context;
+        }
+
+        private String getDisplayLabel(AccountType type) {
+            CharSequence label = type.getDisplayLabel(mContext);
+            return (label == null) ? "" : label.toString();
+        }
+
+        @Override
+        public int compare(AccountType lhs, AccountType rhs) {
+            return mCollator.compare(getDisplayLabel(lhs), getDisplayLabel(rhs));
+        }
+    }
+}
diff --git a/src/com/android/contacts/model/account/AccountTypeProvider.java b/src/com/android/contacts/model/account/AccountTypeProvider.java
new file mode 100644
index 0000000..4f83ec6
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountTypeProvider.java
@@ -0,0 +1,276 @@
+/*
+ * 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.account;
+
+import static com.android.contacts.util.DeviceLocalAccountTypeFactory.Util.isLocalAccountType;
+
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorDescription;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.SyncAdapterType;
+import android.provider.ContactsContract;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.util.DeviceLocalAccountTypeFactory;
+import com.android.contactsbind.ObjectFactory;
+import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * Provides access to {@link AccountType}s with contact data
+ *
+ * This class parses the contacts.xml for third-party accounts and caches the result.
+ * This means that {@link AccountTypeProvider#getAccountTypes(String)}} should be called from a
+ * background thread.
+ */
+public class AccountTypeProvider {
+    private static final String TAG = "AccountTypeProvider";
+
+    private final Context mContext;
+    private final DeviceLocalAccountTypeFactory mLocalAccountTypeFactory;
+    private final ImmutableMap<String, AuthenticatorDescription> mAuthTypes;
+
+    private final ConcurrentMap<String, List<AccountType>> mCache = new ConcurrentHashMap<>();
+
+    public AccountTypeProvider(Context context) {
+        this(context,
+                ObjectFactory.getDeviceLocalAccountTypeFactory(context),
+                ContentResolver.getSyncAdapterTypes(),
+                ((AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE))
+                        .getAuthenticatorTypes());
+    }
+
+    public AccountTypeProvider(Context context, DeviceLocalAccountTypeFactory localTypeFactory,
+            SyncAdapterType[] syncAdapterTypes,
+            AuthenticatorDescription[] authenticatorDescriptions) {
+        mContext = context;
+        mLocalAccountTypeFactory = localTypeFactory;
+
+        mAuthTypes = onlyContactSyncable(authenticatorDescriptions, syncAdapterTypes);
+    }
+
+    /**
+     * Returns all account types associated with the provided type
+     *
+     * <p>There are many {@link AccountType}s for each accountType because {@AccountType} includes
+     * a dataSet and accounts can declare extension packages in contacts.xml that provide additional
+     * data sets for a particular type
+     * </p>
+     */
+    public List<AccountType> getAccountTypes(String accountType) {
+        // ConcurrentHashMap doesn't support null keys
+        if (accountType == null) {
+            AccountType type = mLocalAccountTypeFactory.getAccountType(accountType);
+            // Just in case the DeviceLocalAccountTypeFactory doesn't handle the null type
+            if (type == null) {
+                type = new FallbackAccountType(mContext);
+            }
+            return Collections.singletonList(type);
+        }
+
+        List<AccountType> types = mCache.get(accountType);
+        if (types == null) {
+            types = loadTypes(accountType);
+            mCache.put(accountType, types);
+        }
+        return types;
+    }
+
+    public boolean hasTypeForAccount(AccountWithDataSet account) {
+        return getTypeForAccount(account) != null;
+    }
+
+    public boolean hasTypeWithDataset(String type, String dataSet) {
+        // getAccountTypes() never returns null
+        final List<AccountType> accountTypes = getAccountTypes(type);
+        for (AccountType accountType : accountTypes) {
+            if (Objects.equal(accountType.dataSet, dataSet)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Returns the AccountType with the matching type and dataSet or null if no account with those
+     * members exists
+     */
+    public AccountType getType(String type, String dataSet) {
+        final List<AccountType> accountTypes = getAccountTypes(type);
+        for (AccountType accountType : accountTypes) {
+            if (Objects.equal(accountType.dataSet, dataSet)) {
+                return accountType;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns the AccountType for a particular account or null if no account type exists for the
+     * account
+     */
+    public AccountType getTypeForAccount(AccountWithDataSet account) {
+        return getType(account.type, account.dataSet);
+    }
+
+    public boolean shouldUpdate(AuthenticatorDescription[] auths, SyncAdapterType[] syncTypes) {
+        Map<String, AuthenticatorDescription> contactsAuths = onlyContactSyncable(auths, syncTypes);
+        if (!contactsAuths.keySet().equals(mAuthTypes.keySet())) {
+            return true;
+        }
+        for (AuthenticatorDescription auth : contactsAuths.values()) {
+            if (!deepEquals(mAuthTypes.get(auth.type), auth)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public boolean supportsContactsSyncing(String accountType) {
+        return mAuthTypes.containsKey(accountType);
+    }
+
+    private List<AccountType> loadTypes(String type) {
+        final AuthenticatorDescription auth = mAuthTypes.get(type);
+        if (auth == null) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Null auth type for " + type);
+            }
+            return Collections.emptyList();
+        }
+
+        AccountType accountType;
+        if (GoogleAccountType.ACCOUNT_TYPE.equals(type)) {
+            accountType = new GoogleAccountType(mContext, auth.packageName);
+        } else if (ExchangeAccountType.isExchangeType(type)) {
+            accountType = new ExchangeAccountType(mContext, auth.packageName, type);
+        } else if (SamsungAccountType.isSamsungAccountType(mContext, type,
+                auth.packageName)) {
+            accountType = new SamsungAccountType(mContext, auth.packageName, type);
+        } else if (!ExternalAccountType.hasContactsXml(mContext, auth.packageName)
+                && isLocalAccountType(mLocalAccountTypeFactory, type)) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Registering local account type=" + type
+                        + ", packageName=" + auth.packageName);
+            }
+            accountType = mLocalAccountTypeFactory.getAccountType(type);
+        } else {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Registering external account type=" + type
+                        + ", packageName=" + auth.packageName);
+            }
+            accountType = new ExternalAccountType(mContext, auth.packageName, false);
+        }
+        if (!accountType.isInitialized()) {
+            if (accountType.isEmbedded()) {
+                throw new IllegalStateException("Problem initializing embedded type "
+                        + accountType.getClass().getCanonicalName());
+            } else {
+                // Skip external account types that couldn't be initialized
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Skipping external account type=" + type
+                            + ", packageName=" + auth.packageName);
+                }
+                return Collections.emptyList();
+            }
+        }
+
+        accountType.initializeFieldsFromAuthenticator(auth);
+
+        final ImmutableList.Builder<AccountType> result = ImmutableList.builder();
+        result.add(accountType);
+
+        for (String extensionPackage : accountType.getExtensionPackageNames()) {
+            final ExternalAccountType extensionType =
+                    new ExternalAccountType(mContext, extensionPackage, true);
+            if (!extensionType.isInitialized()) {
+                // Skip external account types that couldn't be initialized.
+                continue;
+            }
+            if (!extensionType.hasContactsMetadata()) {
+                Log.w(TAG, "Skipping extension package " + extensionPackage + " because"
+                        + " it doesn't have the CONTACTS_STRUCTURE metadata");
+                continue;
+            }
+            if (TextUtils.isEmpty(extensionType.accountType)) {
+                Log.w(TAG, "Skipping extension package " + extensionPackage + " because"
+                        + " the CONTACTS_STRUCTURE metadata doesn't have the accountType"
+                        + " attribute");
+                continue;
+            }
+            if (!Objects.equal(extensionType.accountType, type)) {
+                Log.w(TAG, "Skipping extension package " + extensionPackage + " because"
+                        + " the account type + " + extensionType.accountType +
+                        " doesn't match expected type " + type);
+                continue;
+            }
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Registering extension package account type="
+                        + accountType.accountType + ", dataSet=" + accountType.dataSet
+                        + ", packageName=" + extensionPackage);
+            }
+
+            result.add(extensionType);
+        }
+        return result.build();
+    }
+
+    private static ImmutableMap<String, AuthenticatorDescription> onlyContactSyncable(
+            AuthenticatorDescription[] auths, SyncAdapterType[] syncTypes) {
+        final Set<String> mContactSyncableTypes = new HashSet<>();
+        for (SyncAdapterType type : syncTypes) {
+            if (type.authority.equals(ContactsContract.AUTHORITY)) {
+                mContactSyncableTypes.add(type.accountType);
+            }
+        }
+
+        final ImmutableMap.Builder<String, AuthenticatorDescription> builder =
+                ImmutableMap.builder();
+        for (AuthenticatorDescription auth : auths) {
+            if (mContactSyncableTypes.contains(auth.type)) {
+                builder.put(auth.type, auth);
+            }
+        }
+        return builder.build();
+    }
+
+    /**
+     * Compares all fields in auth1 and auth2
+     *
+     * <p>By default {@link AuthenticatorDescription#equals(Object)} only checks the type</p>
+     */
+    private boolean deepEquals(AuthenticatorDescription auth1, AuthenticatorDescription auth2) {
+        return Objects.equal(auth1, auth2) &&
+                Objects.equal(auth1.packageName, auth2.packageName) &&
+                auth1.labelId == auth2.labelId &&
+                auth1.iconId == auth2.iconId &&
+                auth1.smallIconId == auth2.smallIconId &&
+                auth1.accountPreferencesId == auth2.accountPreferencesId &&
+                auth1.customTokens == auth2.customTokens;
+    }
+
+}
diff --git a/src/com/android/contacts/model/account/AccountTypeWithDataSet.java b/src/com/android/contacts/model/account/AccountTypeWithDataSet.java
new file mode 100644
index 0000000..ab0a891
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountTypeWithDataSet.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2011 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.account;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.BaseColumns;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.RawContacts;
+import android.text.TextUtils;
+
+import com.google.common.base.Objects;
+
+
+/**
+ * Encapsulates an "account type" string and a "data set" string.
+ */
+public class AccountTypeWithDataSet {
+
+    private static final String[] ID_PROJECTION = new String[] {BaseColumns._ID};
+    private static final Uri RAW_CONTACTS_URI_LIMIT_1 = RawContacts.CONTENT_URI.buildUpon()
+            .appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY, "1").build();
+
+    /** account type.  Can be null for fallback type. */
+    public final String accountType;
+
+    /** dataSet may be null, but never be "". */
+    public final String dataSet;
+
+    private AccountTypeWithDataSet(String accountType, String dataSet) {
+        this.accountType = TextUtils.isEmpty(accountType) ? null : accountType;
+        this.dataSet = TextUtils.isEmpty(dataSet) ? null : dataSet;
+    }
+
+    public static AccountTypeWithDataSet get(String accountType, String dataSet) {
+        return new AccountTypeWithDataSet(accountType, dataSet);
+    }
+
+    /**
+     * Return true if there are any contacts in the database with this account type and data set.
+     * Touches DB. Don't use in the UI thread.
+     */
+    public boolean hasData(Context context) {
+        final String BASE_SELECTION = RawContacts.ACCOUNT_TYPE + " = ?";
+        final String selection;
+        final String[] args;
+        if (TextUtils.isEmpty(dataSet)) {
+            selection = BASE_SELECTION + " AND " + RawContacts.DATA_SET + " IS NULL";
+            args = new String[] {accountType};
+        } else {
+            selection = BASE_SELECTION + " AND " + RawContacts.DATA_SET + " = ?";
+            args = new String[] {accountType, dataSet};
+        }
+
+        final Cursor c = context.getContentResolver().query(RAW_CONTACTS_URI_LIMIT_1,
+                ID_PROJECTION, selection, args, null);
+        if (c == null) return false;
+        try {
+            return c.moveToFirst();
+        } finally {
+            c.close();
+        }
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (!(o instanceof AccountTypeWithDataSet)) return false;
+
+        AccountTypeWithDataSet other = (AccountTypeWithDataSet) o;
+        return Objects.equal(accountType, other.accountType)
+                && Objects.equal(dataSet, other.dataSet);
+    }
+
+    @Override
+    public int hashCode() {
+        return (accountType == null ? 0 : accountType.hashCode())
+                ^ (dataSet == null ? 0 : dataSet.hashCode());
+    }
+
+    @Override
+    public String toString() {
+        return "[" + accountType + "/" + dataSet + "]";
+    }
+}
diff --git a/src/com/android/contacts/model/account/AccountWithDataSet.java b/src/com/android/contacts/model/account/AccountWithDataSet.java
new file mode 100644
index 0000000..a163139
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountWithDataSet.java
@@ -0,0 +1,258 @@
+/*
+ * Copyright (C) 2011 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.account;
+
+import android.accounts.Account;
+import android.content.ContentProviderOperation;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.BaseColumns;
+import android.provider.ContactsContract;
+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;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
+/**
+ * Wrapper for an account that includes a data set (which may be null).
+ */
+public class AccountWithDataSet implements Parcelable {
+    private static final String STRINGIFY_SEPARATOR = "\u0001";
+    private static final String ARRAY_STRINGIFY_SEPARATOR = "\u0002";
+
+    private static final Pattern STRINGIFY_SEPARATOR_PAT =
+            Pattern.compile(Pattern.quote(STRINGIFY_SEPARATOR));
+    private static final Pattern ARRAY_STRINGIFY_SEPARATOR_PAT =
+            Pattern.compile(Pattern.quote(ARRAY_STRINGIFY_SEPARATOR));
+
+    public final String name;
+    public final String type;
+    public final String dataSet;
+    private final AccountTypeWithDataSet mAccountTypeWithDataSet;
+
+    private static final String[] ID_PROJECTION = new String[] {BaseColumns._ID};
+    private static final Uri RAW_CONTACTS_URI_LIMIT_1 = RawContacts.CONTENT_URI.buildUpon()
+            .appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY, "1").build();
+
+    public static final String LOCAL_ACCOUNT_SELECTION = RawContacts.ACCOUNT_TYPE + " IS NULL AND "
+            + RawContacts.ACCOUNT_NAME + " IS NULL AND "
+            + RawContacts.DATA_SET + " IS NULL";
+
+    public AccountWithDataSet(String name, String type, String dataSet) {
+        this.name = emptyToNull(name);
+        this.type = emptyToNull(type);
+        this.dataSet = emptyToNull(dataSet);
+        mAccountTypeWithDataSet = AccountTypeWithDataSet.get(type, dataSet);
+    }
+
+    private static final String emptyToNull(String text) {
+        return TextUtils.isEmpty(text) ? null : text;
+    }
+
+    public AccountWithDataSet(Parcel in) {
+        this.name = in.readString();
+        this.type = in.readString();
+        this.dataSet = in.readString();
+        mAccountTypeWithDataSet = AccountTypeWithDataSet.get(type, dataSet);
+    }
+
+    public boolean isNullAccount() {
+        return name == null && type == null && dataSet == null;
+    }
+
+    public static AccountWithDataSet getNullAccount() {
+        return new AccountWithDataSet(null, null, null);
+    }
+
+    public Account getAccountOrNull() {
+        if (name != null && type != null) {
+            return new Account(name, type);
+        }
+        return null;
+    }
+
+    public int describeContents() {
+        return 0;
+    }
+
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeString(name);
+        dest.writeString(type);
+        dest.writeString(dataSet);
+    }
+
+    // For Parcelable
+    public static final Creator<AccountWithDataSet> CREATOR = new Creator<AccountWithDataSet>() {
+        public AccountWithDataSet createFromParcel(Parcel source) {
+            return new AccountWithDataSet(source);
+        }
+
+        public AccountWithDataSet[] newArray(int size) {
+            return new AccountWithDataSet[size];
+        }
+    };
+
+    public AccountTypeWithDataSet getAccountTypeWithDataSet() {
+        return mAccountTypeWithDataSet;
+    }
+
+    /**
+     * Return {@code true} if this account has any contacts in the database.
+     * Touches DB.  Don't use in the UI thread.
+     */
+    public boolean hasData(Context context) {
+        String selection;
+        String[] args = null;
+        if (isNullAccount()) {
+            selection = LOCAL_ACCOUNT_SELECTION;
+        } else {
+            final String BASE_SELECTION =
+                    RawContacts.ACCOUNT_TYPE + " = ?" + " AND " + RawContacts.ACCOUNT_NAME + " = ?";
+            if (TextUtils.isEmpty(dataSet)) {
+                selection = BASE_SELECTION + " AND " + RawContacts.DATA_SET + " IS NULL";
+                args = new String[] {type, name};
+            } else {
+                selection = BASE_SELECTION + " AND " + RawContacts.DATA_SET + " = ?";
+                args = new String[] {type, name, dataSet};
+            }
+        }
+        selection += " AND " + RawContacts.DELETED + "=0";
+
+        final Cursor c = context.getContentResolver().query(RAW_CONTACTS_URI_LIMIT_1,
+                ID_PROJECTION, selection, args, null);
+        if (c == null) return false;
+        try {
+            return c.moveToFirst();
+        } finally {
+            c.close();
+        }
+    }
+
+    public boolean equals(Object obj) {
+        if (obj instanceof AccountWithDataSet) {
+            AccountWithDataSet other = (AccountWithDataSet) obj;
+            return Objects.equal(name, other.name)
+                    && Objects.equal(type, other.type)
+                    && Objects.equal(dataSet, other.dataSet);
+        }
+        return false;
+    }
+
+    public int hashCode() {
+        int result = 17;
+        result = 31 * result + (name != null ? name.hashCode() : 0);
+        result = 31 * result + (type != null ? type.hashCode() : 0);
+        result = 31 * result + (dataSet != null ? dataSet.hashCode() : 0);
+        return result;
+    }
+
+    public String toString() {
+        return "AccountWithDataSet {name=" + name + ", type=" + type + ", dataSet=" + dataSet + "}";
+    }
+
+    private static StringBuilder addStringified(StringBuilder sb, AccountWithDataSet account) {
+        if (!TextUtils.isEmpty(account.name)) sb.append(account.name);
+        sb.append(STRINGIFY_SEPARATOR);
+        if (!TextUtils.isEmpty(account.type)) sb.append(account.type);
+        sb.append(STRINGIFY_SEPARATOR);
+        if (!TextUtils.isEmpty(account.dataSet)) sb.append(account.dataSet);
+
+        return sb;
+    }
+
+    /**
+     * Pack the instance into a string.
+     */
+    public String stringify() {
+        return addStringified(new StringBuilder(), this).toString();
+    }
+
+    /**
+     * Returns a {@link ContentProviderOperation} that will create a RawContact in this account
+     */
+    public ContentProviderOperation newRawContactOperation() {
+        final ContentProviderOperation.Builder builder =
+                ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
+                        .withValue(RawContacts.ACCOUNT_NAME, name)
+                        .withValue(RawContacts.ACCOUNT_TYPE, type);
+        if (dataSet != null) {
+            builder.withValue(RawContacts.DATA_SET, dataSet);
+        }
+        return builder.build();
+    }
+
+    /**
+     * Unpack a string created by {@link #stringify}.
+     *
+     * @throws IllegalArgumentException if it's an invalid string.
+     */
+    public static AccountWithDataSet unstringify(String s) {
+        final String[] array = STRINGIFY_SEPARATOR_PAT.split(s, 3);
+        if (array.length < 3) {
+            throw new IllegalArgumentException("Invalid string " + s);
+        }
+        return new AccountWithDataSet(array[0], array[1],
+                TextUtils.isEmpty(array[2]) ? null : array[2]);
+    }
+
+    /**
+     * Pack a list of {@link AccountWithDataSet} into a string.
+     */
+    public static String stringifyList(List<AccountWithDataSet> accounts) {
+        final StringBuilder sb = new StringBuilder();
+
+        for (AccountWithDataSet account : accounts) {
+            if (sb.length() > 0) {
+                sb.append(ARRAY_STRINGIFY_SEPARATOR);
+            }
+            addStringified(sb, account);
+        }
+
+        return sb.toString();
+    }
+
+    /**
+     * Unpack a list of {@link AccountWithDataSet} into a string.
+     *
+     * @throws IllegalArgumentException if it's an invalid string.
+     */
+    public static List<AccountWithDataSet> unstringifyList(String s) {
+        final ArrayList<AccountWithDataSet> ret = Lists.newArrayList();
+        if (TextUtils.isEmpty(s)) {
+            return ret;
+        }
+
+        final String[] array = ARRAY_STRINGIFY_SEPARATOR_PAT.split(s);
+
+        for (int i = 0; i < array.length; i++) {
+            ret.add(unstringify(array[i]));
+        }
+
+        return ret;
+    }
+}
+
diff --git a/src/com/android/contacts/model/account/AccountsLoader.java b/src/com/android/contacts/model/account/AccountsLoader.java
new file mode 100644
index 0000000..e3b4336
--- /dev/null
+++ b/src/com/android/contacts/model/account/AccountsLoader.java
@@ -0,0 +1,111 @@
+/*
+ * 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.account;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.LoaderManager;
+import android.content.Context;
+import android.content.IntentFilter;
+import android.content.Loader;
+import android.os.Bundle;
+
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.util.concurrent.ListenableFutureLoader;
+import com.google.common.base.Objects;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.List;
+
+/**
+ * Loads the accounts from AccountTypeManager
+ */
+public class AccountsLoader extends ListenableFutureLoader<List<AccountInfo>> {
+    private final AccountTypeManager mAccountTypeManager;
+    private final Predicate<AccountInfo> mFilter;
+
+    public AccountsLoader(Context context) {
+        this(context, Predicates.<AccountInfo>alwaysTrue());
+    }
+
+    public AccountsLoader(Context context, Predicate<AccountInfo> filter) {
+        super(context, new IntentFilter(AccountTypeManager.BROADCAST_ACCOUNTS_CHANGED));
+        mAccountTypeManager = AccountTypeManager.getInstance(context);
+        mFilter = filter;
+    }
+
+    @Override
+    protected ListenableFuture<List<AccountInfo>> loadData() {
+        return mAccountTypeManager.filterAccountsAsync(mFilter);
+    }
+
+    @Override
+    protected boolean isSameData(List<AccountInfo> previous, List<AccountInfo> next) {
+        return Objects.equal(AccountInfo.extractAccounts(previous),
+                AccountInfo.extractAccounts(next));
+    }
+
+
+    public interface AccountsListener {
+        void onAccountsLoaded(List<AccountInfo> accounts);
+    }
+
+    /**
+     * Loads the accounts into the target fragment using {@link LoaderManager}
+     *
+     * <p>This is a convenience method to reduce the
+     * boilerplate needed when implementing {@link android.app.LoaderManager.LoaderCallbacks}
+     * in the simple case that the fragment wants to just load the accounts directly</p>
+     * <p>Note that changing the filter between invocations in the same component will not work
+     * properly because the loader is cached.</p>
+     */
+    public static <FragmentType extends Fragment & AccountsListener> void loadAccounts(
+            final FragmentType fragment, int loaderId, final Predicate<AccountInfo> filter) {
+        loadAccounts(
+                fragment.getActivity(), fragment.getLoaderManager(), loaderId, filter, fragment);
+    }
+
+    /**
+     * Same as {@link #loadAccounts(Fragment, int, Predicate)} for an Activity
+     */
+    public static <ActivityType extends Activity & AccountsListener> void loadAccounts(
+            final ActivityType activity, int id, final Predicate<AccountInfo> filter) {
+        loadAccounts(activity, activity.getLoaderManager(), id, filter, activity);
+    }
+
+    private static void loadAccounts(final Context context, LoaderManager loaderManager, int id,
+            final Predicate<AccountInfo> filter, final AccountsListener listener) {
+        loaderManager.initLoader(id, null,
+                new LoaderManager.LoaderCallbacks<List<AccountInfo>>() {
+                    @Override
+                    public Loader<List<AccountInfo>> onCreateLoader(int id, Bundle args) {
+                        return new AccountsLoader(context, filter);
+                    }
+
+                    @Override
+                    public void onLoadFinished(
+                            Loader<List<AccountInfo>> loader, List<AccountInfo> data) {
+                        listener.onAccountsLoaded(data);
+                    }
+
+                    @Override
+                    public void onLoaderReset(Loader<List<AccountInfo>> loader) {
+                    }
+                });
+    }
+}
diff --git a/src/com/android/contacts/model/account/BaseAccountType.java b/src/com/android/contacts/model/account/BaseAccountType.java
new file mode 100644
index 0000000..50f623a
--- /dev/null
+++ b/src/com/android/contacts/model/account/BaseAccountType.java
@@ -0,0 +1,1469 @@
+/*
+ * Copyright (C) 2009 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.account;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.res.Resources;
+import android.provider.ContactsContract.CommonDataKinds.BaseTypes;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.Relation;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.provider.ContactsContract.Data;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.inputmethod.EditorInfo;
+
+import com.android.contacts.R;
+import com.android.contacts.model.dataitem.CustomDataItem;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.util.CommonDateUtils;
+import com.android.contacts.util.ContactDisplayUtils;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+public abstract class BaseAccountType extends AccountType {
+    private static final String TAG = "BaseAccountType";
+
+    protected static final int FLAGS_PHONE = EditorInfo.TYPE_CLASS_PHONE;
+    protected static final int FLAGS_EMAIL = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
+    protected static final int FLAGS_PERSON_NAME = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS | EditorInfo.TYPE_TEXT_VARIATION_PERSON_NAME;
+    protected static final int FLAGS_PHONETIC = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_VARIATION_PHONETIC;
+    protected static final int FLAGS_GENERIC_NAME = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS;
+    protected static final int FLAGS_NOTE = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE;
+    protected static final int FLAGS_EVENT = EditorInfo.TYPE_CLASS_TEXT;
+    protected static final int FLAGS_WEBSITE = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_VARIATION_URI;
+    protected static final int FLAGS_POSTAL = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_VARIATION_POSTAL_ADDRESS | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS
+            | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE;
+    protected static final int FLAGS_SIP_ADDRESS = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;  // since SIP addresses have the same
+                                                             // basic format as email addresses
+    protected static final int FLAGS_RELATION = EditorInfo.TYPE_CLASS_TEXT
+            | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS | EditorInfo.TYPE_TEXT_VARIATION_PERSON_NAME;
+
+    // Specify the maximum number of lines that can be used to display various field types.  If no
+    // value is specified for a particular type, we use the default value from {@link DataKind}.
+    protected static final int MAX_LINES_FOR_POSTAL_ADDRESS = 10;
+    protected static final int MAX_LINES_FOR_GROUP = 10;
+    protected static final int MAX_LINES_FOR_NOTE = 100;
+
+    private interface Tag {
+        static final String DATA_KIND = "DataKind";
+        static final String TYPE = "Type";
+    }
+
+    private interface Attr {
+        static final String MAX_OCCURRENCE = "maxOccurs";
+        static final String DATE_WITH_TIME = "dateWithTime";
+        static final String YEAR_OPTIONAL = "yearOptional";
+        static final String KIND = "kind";
+        static final String TYPE = "type";
+    }
+
+    protected interface Weight {
+        static final int NONE = -1;
+        static final int PHONE = 10;
+        static final int EMAIL = 15;
+        static final int STRUCTURED_POSTAL = 25;
+        static final int NICKNAME = 111;
+        static final int EVENT = 120;
+        static final int ORGANIZATION = 125;
+        static final int NOTE = 130;
+        static final int IM = 140;
+        static final int SIP_ADDRESS = 145;
+        static final int GROUP_MEMBERSHIP = 150;
+        static final int WEBSITE = 160;
+        static final int RELATIONSHIP = 999;
+    }
+
+    public BaseAccountType() {
+        this.accountType = null;
+        this.dataSet = null;
+        this.titleRes = R.string.account_phone;
+        this.iconRes = R.mipmap.ic_contacts_launcher;
+    }
+
+    protected static EditType buildPhoneType(int type) {
+        return new EditType(type, Phone.getTypeLabelResource(type));
+    }
+
+    protected static EditType buildEmailType(int type) {
+        return new EditType(type, Email.getTypeLabelResource(type));
+    }
+
+    protected static EditType buildPostalType(int type) {
+        return new EditType(type, StructuredPostal.getTypeLabelResource(type));
+    }
+
+    protected static EditType buildImType(int type) {
+        return new EditType(type, Im.getProtocolLabelResource(type));
+    }
+
+    protected static EditType buildEventType(int type, boolean yearOptional) {
+        return new EventEditType(type, Event.getTypeResource(type)).setYearOptional(yearOptional);
+    }
+
+    protected static EditType buildRelationType(int type) {
+        return new EditType(type, Relation.getTypeLabelResource(type));
+    }
+
+    protected DataKind addDataKindStructuredName(Context context) throws DefinitionException {
+        final DataKind kind = addKind(new DataKind(StructuredName.CONTENT_ITEM_TYPE,
+                R.string.nameLabelsGroup, Weight.NONE, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
+                FLAGS_PERSON_NAME).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+                FLAGS_PERSON_NAME).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
+                FLAGS_PERSON_NAME).setLongForm(true));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                R.string.name_phonetic_family, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
+                R.string.name_phonetic_middle, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                R.string.name_phonetic_given, FLAGS_PHONETIC));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindName(Context context) throws DefinitionException {
+        final DataKind kind = addKind(new DataKind(DataKind.PSEUDO_MIME_TYPE_NAME,
+                R.string.nameLabelsGroup, Weight.NONE, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        final boolean displayOrderPrimary =
+                context.getResources().getBoolean(R.bool.config_editor_field_order_primary);
+
+        kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
+                FLAGS_PERSON_NAME).setOptional(true));
+        if (!displayOrderPrimary) {
+            kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                    FLAGS_PERSON_NAME));
+            kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+                    FLAGS_PERSON_NAME).setOptional(true));
+            kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                    FLAGS_PERSON_NAME));
+        } else {
+            kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                    FLAGS_PERSON_NAME));
+            kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+                    FLAGS_PERSON_NAME).setOptional(true));
+            kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                    FLAGS_PERSON_NAME));
+        }
+        kind.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
+                FLAGS_PERSON_NAME).setOptional(true));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindPhoneticName(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME,
+                R.string.name_phonetic, Weight.NONE, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                R.string.name_phonetic_family, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
+                R.string.name_phonetic_middle, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                R.string.name_phonetic_given, FLAGS_PHONETIC));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindNickname(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Nickname.CONTENT_ITEM_TYPE,
+                    R.string.nicknameLabelsGroup, Weight.NICKNAME, true));
+        kind.typeOverallMax = 1;
+        kind.actionHeader = new SimpleInflater(R.string.nicknameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+        kind.defaultValues = new ContentValues();
+        kind.defaultValues.put(Nickname.TYPE, Nickname.TYPE_DEFAULT);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Nickname.NAME, R.string.nicknameLabelsGroup,
+                FLAGS_PERSON_NAME));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindPhone(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Phone.CONTENT_ITEM_TYPE, R.string.phoneLabelsGroup,
+                Weight.PHONE, true));
+        kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24;
+        kind.iconAltDescriptionRes = R.string.sms;
+        kind.actionHeader = new PhoneActionInflater();
+        kind.actionAltHeader = new PhoneActionAltInflater();
+        kind.actionBody = new SimpleInflater(Phone.NUMBER);
+        kind.typeColumn = Phone.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MOBILE));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_HOME));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_WORK));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_WORK).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_HOME).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_PAGER).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_OTHER));
+        kind.typeList.add(
+                buildPhoneType(Phone.TYPE_CUSTOM).setSecondary(true).setCustomColumn(Phone.LABEL));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_CALLBACK).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_CAR).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_COMPANY_MAIN).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_ISDN).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MAIN).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_OTHER_FAX).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_RADIO).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_TELEX).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_TTY_TDD).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_WORK_MOBILE).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_WORK_PAGER).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_ASSISTANT).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MMS).setSecondary(true));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Phone.NUMBER, R.string.phoneLabelsGroup, FLAGS_PHONE));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindEmail(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Email.CONTENT_ITEM_TYPE, R.string.emailLabelsGroup,
+                Weight.EMAIL, true));
+        kind.actionHeader = new EmailActionInflater();
+        kind.actionBody = new SimpleInflater(Email.DATA);
+        kind.typeColumn = Email.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildEmailType(Email.TYPE_HOME));
+        kind.typeList.add(buildEmailType(Email.TYPE_WORK));
+        kind.typeList.add(buildEmailType(Email.TYPE_OTHER));
+        kind.typeList.add(buildEmailType(Email.TYPE_MOBILE));
+        kind.typeList.add(
+                buildEmailType(Email.TYPE_CUSTOM).setSecondary(true).setCustomColumn(Email.LABEL));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Email.DATA, R.string.emailLabelsGroup, FLAGS_EMAIL));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindStructuredPostal(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(StructuredPostal.CONTENT_ITEM_TYPE,
+                R.string.postalLabelsGroup, Weight.STRUCTURED_POSTAL, true));
+        kind.actionHeader = new PostalActionInflater();
+        kind.actionBody = new SimpleInflater(StructuredPostal.FORMATTED_ADDRESS);
+        kind.typeColumn = StructuredPostal.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_HOME));
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_WORK));
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_OTHER));
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_CUSTOM).setSecondary(true)
+                .setCustomColumn(StructuredPostal.LABEL));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(
+                new EditField(StructuredPostal.FORMATTED_ADDRESS, R.string.postal_address,
+                        FLAGS_POSTAL));
+
+        kind.maxLinesForDisplay = MAX_LINES_FOR_POSTAL_ADDRESS;
+
+        return kind;
+    }
+
+    protected DataKind addDataKindIm(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Im.CONTENT_ITEM_TYPE, R.string.imLabelsGroup,
+                Weight.IM, true));
+        kind.actionHeader = new ImActionInflater();
+        kind.actionBody = new SimpleInflater(Im.DATA);
+
+        // NOTE: even though a traditional "type" exists, for editing
+        // purposes we're using the protocol to pick labels
+
+        kind.defaultValues = new ContentValues();
+        kind.defaultValues.put(Im.TYPE, Im.TYPE_OTHER);
+
+        kind.typeColumn = Im.PROTOCOL;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildImType(Im.PROTOCOL_AIM));
+        kind.typeList.add(buildImType(Im.PROTOCOL_MSN));
+        kind.typeList.add(buildImType(Im.PROTOCOL_YAHOO));
+        kind.typeList.add(buildImType(Im.PROTOCOL_SKYPE));
+        kind.typeList.add(buildImType(Im.PROTOCOL_QQ));
+        kind.typeList.add(buildImType(Im.PROTOCOL_GOOGLE_TALK));
+        kind.typeList.add(buildImType(Im.PROTOCOL_ICQ));
+        kind.typeList.add(buildImType(Im.PROTOCOL_JABBER));
+        kind.typeList.add(buildImType(Im.PROTOCOL_CUSTOM).setSecondary(true).setCustomColumn(
+                Im.CUSTOM_PROTOCOL));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Im.DATA, R.string.imLabelsGroup, FLAGS_EMAIL));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindOrganization(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Organization.CONTENT_ITEM_TYPE,
+                    R.string.organizationLabelsGroup, Weight.ORGANIZATION, true));
+        kind.actionHeader = new SimpleInflater(R.string.organizationLabelsGroup);
+        kind.actionBody = ORGANIZATION_BODY_INFLATER;
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Organization.COMPANY, R.string.ghostData_company,
+                FLAGS_GENERIC_NAME));
+        kind.fieldList.add(new EditField(Organization.TITLE, R.string.ghostData_title,
+                FLAGS_GENERIC_NAME));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindPhoto(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Photo.CONTENT_ITEM_TYPE, -1, Weight.NONE, true));
+        kind.typeOverallMax = 1;
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Photo.PHOTO, -1, -1));
+        return kind;
+    }
+
+    protected DataKind addDataKindNote(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Note.CONTENT_ITEM_TYPE, R.string.label_notes,
+                Weight.NOTE, true));
+        kind.typeOverallMax = 1;
+        kind.actionHeader = new SimpleInflater(R.string.label_notes);
+        kind.actionBody = new SimpleInflater(Note.NOTE);
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Note.NOTE, R.string.label_notes, FLAGS_NOTE));
+
+        kind.maxLinesForDisplay = MAX_LINES_FOR_NOTE;
+
+        return kind;
+    }
+
+    protected DataKind addDataKindWebsite(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Website.CONTENT_ITEM_TYPE,
+                R.string.websiteLabelsGroup, Weight.WEBSITE, true));
+        kind.actionHeader = new SimpleInflater(R.string.websiteLabelsGroup);
+        kind.actionBody = new SimpleInflater(Website.URL);
+        kind.defaultValues = new ContentValues();
+        kind.defaultValues.put(Website.TYPE, Website.TYPE_OTHER);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Website.URL, R.string.websiteLabelsGroup, FLAGS_WEBSITE));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindSipAddress(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(SipAddress.CONTENT_ITEM_TYPE,
+                    R.string.label_sip_address, Weight.SIP_ADDRESS, true));
+
+        kind.actionHeader = new SimpleInflater(R.string.label_sip_address);
+        kind.actionBody = new SimpleInflater(SipAddress.SIP_ADDRESS);
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(SipAddress.SIP_ADDRESS,
+                                         R.string.label_sip_address, FLAGS_SIP_ADDRESS));
+        kind.typeOverallMax = 1;
+
+        return kind;
+    }
+
+    protected DataKind addDataKindGroupMembership(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(GroupMembership.CONTENT_ITEM_TYPE,
+                R.string.groupsLabel, Weight.GROUP_MEMBERSHIP, true));
+
+        kind.typeOverallMax = 1;
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(GroupMembership.GROUP_ROW_ID, -1, -1));
+
+        kind.maxLinesForDisplay = MAX_LINES_FOR_GROUP;
+
+        return kind;
+    }
+
+    protected DataKind addDataKindCustomField(Context context) throws DefinitionException {
+        final DataKind kind = addKind(new DataKind(CustomDataItem.MIMETYPE_CUSTOM_FIELD,
+                R.string.label_custom_field, Weight.NONE, /* editable */ false));
+        kind.actionBody = new SimpleInflater(Data.DATA2);
+        return kind;
+    }
+
+    /**
+     * Simple inflater that assumes a string resource has a "%s" that will be
+     * filled from the given column.
+     */
+    public static class SimpleInflater implements StringInflater {
+        private final int mStringRes;
+        private final String mColumnName;
+
+        public SimpleInflater(int stringRes) {
+            this(stringRes, null);
+        }
+
+        public SimpleInflater(String columnName) {
+            this(-1, columnName);
+        }
+
+        public SimpleInflater(int stringRes, String columnName) {
+            mStringRes = stringRes;
+            mColumnName = columnName;
+        }
+
+        @Override
+        public CharSequence inflateUsing(Context context, ContentValues values) {
+            final boolean validColumn = values.containsKey(mColumnName);
+            final boolean validString = mStringRes > 0;
+
+            final CharSequence stringValue = validString ? context.getText(mStringRes) : null;
+            final CharSequence columnValue = validColumn ? values.getAsString(mColumnName) : null;
+
+            if (validString && validColumn) {
+                return String.format(stringValue.toString(), columnValue);
+            } else if (validString) {
+                return stringValue;
+            } else if (validColumn) {
+                return columnValue;
+            } else {
+                return null;
+            }
+        }
+
+        @Override
+        public String toString() {
+            return this.getClass().getSimpleName()
+                    + " mStringRes=" + mStringRes
+                    + " mColumnName" + mColumnName;
+        }
+
+        public String getColumnNameForTest() {
+            return mColumnName;
+        }
+    }
+
+    public static abstract class CommonInflater implements StringInflater {
+        protected abstract int getTypeLabelResource(Integer type);
+
+        protected boolean isCustom(Integer type) {
+            return type == BaseTypes.TYPE_CUSTOM;
+        }
+
+        protected String getTypeColumn() {
+            return Phone.TYPE;
+        }
+
+        protected String getLabelColumn() {
+            return Phone.LABEL;
+        }
+
+        protected CharSequence getTypeLabel(Resources res, Integer type, CharSequence label) {
+            final int labelRes = getTypeLabelResource(type);
+            if (type == null) {
+                return res.getText(labelRes);
+            } else if (isCustom(type)) {
+                return res.getString(labelRes, label == null ? "" : label);
+            } else {
+                return res.getText(labelRes);
+            }
+        }
+
+        @Override
+        public CharSequence inflateUsing(Context context, ContentValues values) {
+            final Integer type = values.getAsInteger(getTypeColumn());
+            final String label = values.getAsString(getLabelColumn());
+            return getTypeLabel(context.getResources(), type, label);
+        }
+
+        @Override
+        public String toString() {
+            return this.getClass().getSimpleName();
+        }
+    }
+
+    public static class PhoneActionInflater extends CommonInflater {
+        @Override
+        protected boolean isCustom(Integer type) {
+            return ContactDisplayUtils.isCustomPhoneType(type);
+        }
+
+        @Override
+        protected int getTypeLabelResource(Integer type) {
+            return ContactDisplayUtils.getPhoneLabelResourceId(type);
+        }
+    }
+
+    public static class PhoneActionAltInflater extends CommonInflater {
+        @Override
+        protected boolean isCustom(Integer type) {
+            return ContactDisplayUtils.isCustomPhoneType(type);
+        }
+
+        @Override
+        protected int getTypeLabelResource(Integer type) {
+            return ContactDisplayUtils.getSmsLabelResourceId(type);
+        }
+    }
+
+    public static class EmailActionInflater extends CommonInflater {
+        @Override
+        protected int getTypeLabelResource(Integer type) {
+            if (type == null) return R.string.email;
+            switch (type) {
+                case Email.TYPE_HOME: return R.string.email_home;
+                case Email.TYPE_WORK: return R.string.email_work;
+                case Email.TYPE_OTHER: return R.string.email_other;
+                case Email.TYPE_MOBILE: return R.string.email_mobile;
+                default: return R.string.email_custom;
+            }
+        }
+    }
+
+    public static class EventActionInflater extends CommonInflater {
+        @Override
+        protected int getTypeLabelResource(Integer type) {
+            return Event.getTypeResource(type);
+        }
+    }
+
+    public static class RelationActionInflater extends CommonInflater {
+        @Override
+        protected int getTypeLabelResource(Integer type) {
+            return Relation.getTypeLabelResource(type == null ? Relation.TYPE_CUSTOM : type);
+        }
+    }
+
+    public static class PostalActionInflater extends CommonInflater {
+        @Override
+        protected int getTypeLabelResource(Integer type) {
+            if (type == null) return R.string.map_other;
+            switch (type) {
+                case StructuredPostal.TYPE_HOME: return R.string.map_home;
+                case StructuredPostal.TYPE_WORK: return R.string.map_work;
+                case StructuredPostal.TYPE_OTHER: return R.string.map_other;
+                default: return R.string.map_custom;
+            }
+        }
+    }
+
+    public static class ImActionInflater extends CommonInflater {
+        @Override
+        protected String getTypeColumn() {
+            return Im.PROTOCOL;
+        }
+
+        @Override
+        protected String getLabelColumn() {
+            return Im.CUSTOM_PROTOCOL;
+        }
+
+        @Override
+        protected int getTypeLabelResource(Integer type) {
+            if (type == null) return R.string.chat;
+            switch (type) {
+                case Im.PROTOCOL_AIM: return R.string.chat_aim;
+                case Im.PROTOCOL_MSN: return R.string.chat_msn;
+                case Im.PROTOCOL_YAHOO: return R.string.chat_yahoo;
+                case Im.PROTOCOL_SKYPE: return R.string.chat_skype;
+                case Im.PROTOCOL_QQ: return R.string.chat_qq;
+                case Im.PROTOCOL_GOOGLE_TALK: return R.string.chat_gtalk;
+                case Im.PROTOCOL_ICQ: return R.string.chat_icq;
+                case Im.PROTOCOL_JABBER: return R.string.chat_jabber;
+                case Im.PROTOCOL_NETMEETING: return R.string.chat;
+                default: return R.string.chat;
+            }
+        }
+    }
+
+    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;
+
+            if (companyValue != null && titleValue != null) {
+                return companyValue +  ": " + titleValue;
+            } else if (companyValue == null) {
+                return titleValue;
+            } else {
+                return companyValue;
+            }
+        }
+    };
+
+    @Override
+    public boolean isGroupMembershipEditable() {
+        return false;
+    }
+
+    /**
+     * Parses the content of the EditSchema tag in contacts.xml.
+     */
+    protected final void parseEditSchema(Context context, XmlPullParser parser, AttributeSet attrs)
+            throws XmlPullParserException, IOException, DefinitionException {
+
+        final int outerDepth = parser.getDepth();
+        int type;
+        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
+            final int depth = parser.getDepth();
+            if (type != XmlPullParser.START_TAG || depth != outerDepth + 1) {
+                continue; // Not direct child tag
+            }
+
+            final String tag = parser.getName();
+
+            if (Tag.DATA_KIND.equals(tag)) {
+                for (DataKind kind : KindParser.INSTANCE.parseDataKindTag(context, parser, attrs)) {
+                    addKind(kind);
+                }
+            } else {
+                Log.w(TAG, "Skipping unknown tag " + tag);
+            }
+        }
+    }
+
+    // Utility methods to keep code shorter.
+    private static boolean getAttr(AttributeSet attrs, String attribute, boolean defaultValue) {
+        return attrs.getAttributeBooleanValue(null, attribute, defaultValue);
+    }
+
+    private static int getAttr(AttributeSet attrs, String attribute, int defaultValue) {
+        return attrs.getAttributeIntValue(null, attribute, defaultValue);
+    }
+
+    private static String getAttr(AttributeSet attrs, String attribute) {
+        return attrs.getAttributeValue(null, attribute);
+    }
+
+    // TODO Extract it to its own class, and move all KindBuilders to it as well.
+    private static class KindParser {
+        public static final KindParser INSTANCE = new KindParser();
+
+        private final Map<String, KindBuilder> mBuilders = Maps.newHashMap();
+
+        private KindParser() {
+            addBuilder(new NameKindBuilder());
+            addBuilder(new NicknameKindBuilder());
+            addBuilder(new PhoneKindBuilder());
+            addBuilder(new EmailKindBuilder());
+            addBuilder(new StructuredPostalKindBuilder());
+            addBuilder(new ImKindBuilder());
+            addBuilder(new OrganizationKindBuilder());
+            addBuilder(new PhotoKindBuilder());
+            addBuilder(new NoteKindBuilder());
+            addBuilder(new WebsiteKindBuilder());
+            addBuilder(new SipAddressKindBuilder());
+            addBuilder(new GroupMembershipKindBuilder());
+            addBuilder(new EventKindBuilder());
+            addBuilder(new RelationshipKindBuilder());
+        }
+
+        private void addBuilder(KindBuilder builder) {
+            mBuilders.put(builder.getTagName(), builder);
+        }
+
+        /**
+         * Takes a {@link XmlPullParser} at the start of a DataKind tag, parses it and returns
+         * {@link DataKind}s.  (Usually just one, but there are three for the "name" kind.)
+         *
+         * This method returns a list, because we need to add 3 kinds for the name data kind.
+         * (structured, display and phonetic)
+         */
+        public List<DataKind> parseDataKindTag(Context context, XmlPullParser parser,
+                AttributeSet attrs)
+                throws DefinitionException, XmlPullParserException, IOException {
+            final String kind = getAttr(attrs, Attr.KIND);
+            final KindBuilder builder = mBuilders.get(kind);
+            if (builder != null) {
+                return builder.parseDataKind(context, parser, attrs);
+            } else {
+                throw new DefinitionException("Undefined data kind '" + kind + "'");
+            }
+        }
+    }
+
+    private static abstract class KindBuilder {
+
+        public abstract String getTagName();
+
+        /**
+         * DataKind tag parser specific to each kind.  Subclasses must implement it.
+         */
+        public abstract List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException, IOException;
+
+        /**
+         * Creates a new {@link DataKind}, and also parses the child Type tags in the DataKind
+         * tag.
+         */
+        protected final DataKind newDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs, boolean isPseudo, String mimeType, String typeColumn,
+                int titleRes, int weight, StringInflater actionHeader, StringInflater actionBody)
+                throws DefinitionException, XmlPullParserException, IOException {
+
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Adding DataKind: " + mimeType);
+            }
+
+            final DataKind kind = new DataKind(mimeType, titleRes, weight, true);
+            kind.typeColumn = typeColumn;
+            kind.actionHeader = actionHeader;
+            kind.actionBody = actionBody;
+            kind.fieldList = Lists.newArrayList();
+
+            // Get more information from the tag...
+            // A pseudo data kind doesn't have corresponding tag the XML, so we skip this.
+            if (!isPseudo) {
+                kind.typeOverallMax = getAttr(attrs, Attr.MAX_OCCURRENCE, -1);
+
+                // Process "Type" tags.
+                // If a kind has the type column, contacts.xml must have at least one type
+                // definition.  Otherwise, it mustn't have a type definition.
+                if (kind.typeColumn != null) {
+                    // Parse and add types.
+                    kind.typeList = Lists.newArrayList();
+                    parseTypes(context, parser, attrs, kind, true);
+                    if (kind.typeList.size() == 0) {
+                        throw new DefinitionException(
+                                "Kind " + kind.mimeType + " must have at least one type");
+                    }
+                } else {
+                    // Make sure it has no types.
+                    parseTypes(context, parser, attrs, kind, false /* can't have types */);
+                }
+            }
+
+            return kind;
+        }
+
+        /**
+         * Parses Type elements in a DataKind element, and if {@code canHaveTypes} is true adds
+         * them to the given {@link DataKind}. Otherwise the {@link DataKind} can't have a type,
+         * so throws {@link DefinitionException}.
+         */
+        private void parseTypes(Context context, XmlPullParser parser, AttributeSet attrs,
+                DataKind kind, boolean canHaveTypes)
+                throws DefinitionException, XmlPullParserException, IOException {
+            final int outerDepth = parser.getDepth();
+            int type;
+            while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                    && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
+                final int depth = parser.getDepth();
+                if (type != XmlPullParser.START_TAG || depth != outerDepth + 1) {
+                    continue; // Not direct child tag
+                }
+
+                final String tag = parser.getName();
+                if (Tag.TYPE.equals(tag)) {
+                    if (canHaveTypes) {
+                        kind.typeList.add(parseTypeTag(parser, attrs, kind));
+                    } else {
+                        throw new DefinitionException(
+                                "Kind " + kind.mimeType + " can't have types");
+                    }
+                } else {
+                    throw new DefinitionException("Unknown tag: " + tag);
+                }
+            }
+        }
+
+        /**
+         * Parses a single Type element and returns an {@link EditType} built from it.  Uses
+         * {@link #buildEditTypeForTypeTag} defined in subclasses to actually build an
+         * {@link EditType}.
+         */
+        private EditType parseTypeTag(XmlPullParser parser, AttributeSet attrs, DataKind kind)
+                throws DefinitionException {
+
+            final String typeName = getAttr(attrs, Attr.TYPE);
+
+            final EditType et = buildEditTypeForTypeTag(attrs, typeName);
+            if (et == null) {
+                throw new DefinitionException(
+                        "Undefined type '" + typeName + "' for data kind '" + kind.mimeType + "'");
+            }
+            et.specificMax = getAttr(attrs, Attr.MAX_OCCURRENCE, -1);
+
+            return et;
+        }
+
+        /**
+         * Returns an {@link EditType} for the given "type".  Subclasses may optionally use
+         * the attributes in the tag to set optional values.
+         * (e.g. "yearOptional" for the event kind)
+         */
+        protected EditType buildEditTypeForTypeTag(AttributeSet attrs, String type) {
+            return null;
+        }
+
+        protected final void throwIfList(DataKind kind) throws DefinitionException {
+            if (kind.typeOverallMax != 1) {
+                throw new DefinitionException(
+                        "Kind " + kind.mimeType + " must have 'overallMax=\"1\"'");
+            }
+        }
+    }
+
+    /**
+     * DataKind parser for Name. (structured, display, phonetic)
+     */
+    private static class NameKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "name";
+        }
+
+        private static void checkAttributeTrue(boolean value, String attrName)
+                throws DefinitionException {
+            if (!value) {
+                throw new DefinitionException(attrName + " must be true");
+            }
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+
+            // Build 3 data kinds:
+            // - StructuredName.CONTENT_ITEM_TYPE
+            // - DataKind.PSEUDO_MIME_TYPE_NAME
+            // - DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME
+
+            final boolean displayOrderPrimary =
+                    context.getResources().getBoolean(R.bool.config_editor_field_order_primary);
+
+            final boolean supportsPrefix = getAttr(attrs, "supportsPrefix", false);
+            final boolean supportsMiddleName = getAttr(attrs, "supportsMiddleName", false);
+            final boolean supportsSuffix = getAttr(attrs, "supportsSuffix", false);
+            final boolean supportsPhoneticFamilyName =
+                    getAttr(attrs, "supportsPhoneticFamilyName", false);
+            final boolean supportsPhoneticMiddleName =
+                    getAttr(attrs, "supportsPhoneticMiddleName", false);
+            final boolean supportsPhoneticGivenName =
+                    getAttr(attrs, "supportsPhoneticGivenName", false);
+
+            // For now, every thing must be supported.
+            checkAttributeTrue(supportsPrefix, "supportsPrefix");
+            checkAttributeTrue(supportsMiddleName, "supportsMiddleName");
+            checkAttributeTrue(supportsSuffix, "supportsSuffix");
+            checkAttributeTrue(supportsPhoneticFamilyName, "supportsPhoneticFamilyName");
+            checkAttributeTrue(supportsPhoneticMiddleName, "supportsPhoneticMiddleName");
+            checkAttributeTrue(supportsPhoneticGivenName, "supportsPhoneticGivenName");
+
+            final List<DataKind> kinds = Lists.newArrayList();
+
+            // Structured name
+            final DataKind ks = newDataKind(context, parser, attrs, false,
+                    StructuredName.CONTENT_ITEM_TYPE, null, R.string.nameLabelsGroup, Weight.NONE,
+                    new SimpleInflater(R.string.nameLabelsGroup),
+                    new SimpleInflater(Nickname.NAME));
+
+            ks.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
+                    FLAGS_PERSON_NAME).setLongForm(true));
+            ks.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                    FLAGS_PERSON_NAME));
+            ks.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+                    FLAGS_PERSON_NAME).setLongForm(true));
+            ks.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                    FLAGS_PERSON_NAME));
+            ks.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
+                    FLAGS_PERSON_NAME).setLongForm(true));
+            ks.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                    R.string.name_phonetic_family, FLAGS_PHONETIC));
+            ks.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
+                    R.string.name_phonetic_middle, FLAGS_PHONETIC));
+            ks.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                    R.string.name_phonetic_given, FLAGS_PHONETIC));
+
+            throwIfList(ks);
+            kinds.add(ks);
+
+            // Name
+            final DataKind kn = newDataKind(context, parser, attrs, true,
+                    DataKind.PSEUDO_MIME_TYPE_NAME, null,
+                    R.string.nameLabelsGroup, Weight.NONE,
+                    new SimpleInflater(R.string.nameLabelsGroup),
+                    new SimpleInflater(Nickname.NAME));
+            kn.typeOverallMax = 1;
+            throwIfList(kn);
+            kinds.add(kn);
+
+            kn.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
+                    FLAGS_PERSON_NAME).setOptional(true));
+            if (!displayOrderPrimary) {
+                kn.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                        FLAGS_PERSON_NAME));
+                kn.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+                        FLAGS_PERSON_NAME).setOptional(true));
+                kn.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                        FLAGS_PERSON_NAME));
+            } else {
+                kn.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                        FLAGS_PERSON_NAME));
+                kn.fieldList.add(new EditField(StructuredName.MIDDLE_NAME, R.string.name_middle,
+                        FLAGS_PERSON_NAME).setOptional(true));
+                kn.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                        FLAGS_PERSON_NAME));
+            }
+            kn.fieldList.add(new EditField(StructuredName.SUFFIX, R.string.name_suffix,
+                    FLAGS_PERSON_NAME).setOptional(true));
+
+            // Phonetic name
+            final DataKind kp = newDataKind(context, parser, attrs, true,
+                    DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME, null,
+                    R.string.name_phonetic, Weight.NONE,
+                    new SimpleInflater(R.string.nameLabelsGroup),
+                    new SimpleInflater(Nickname.NAME));
+            kp.typeOverallMax = 1;
+            kinds.add(kp);
+
+            // We may want to change the order depending on displayOrderPrimary too.
+            kp.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                    R.string.name_phonetic_family, FLAGS_PHONETIC));
+            kp.fieldList.add(new EditField(StructuredName.PHONETIC_MIDDLE_NAME,
+                    R.string.name_phonetic_middle, FLAGS_PHONETIC));
+            kp.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                    R.string.name_phonetic_given, FLAGS_PHONETIC));
+            return kinds;
+        }
+    }
+
+    private static class NicknameKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "nickname";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Nickname.CONTENT_ITEM_TYPE, null, R.string.nicknameLabelsGroup, Weight.NICKNAME,
+                    new SimpleInflater(R.string.nicknameLabelsGroup),
+                    new SimpleInflater(Nickname.NAME));
+
+            kind.fieldList.add(new EditField(Nickname.NAME, R.string.nicknameLabelsGroup,
+                    FLAGS_PERSON_NAME));
+
+            kind.defaultValues = new ContentValues();
+            kind.defaultValues.put(Nickname.TYPE, Nickname.TYPE_DEFAULT);
+
+            throwIfList(kind);
+            return Lists.newArrayList(kind);
+        }
+    }
+
+    private static class PhoneKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "phone";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Phone.CONTENT_ITEM_TYPE, Phone.TYPE, R.string.phoneLabelsGroup, Weight.PHONE,
+                    new PhoneActionInflater(), new SimpleInflater(Phone.NUMBER));
+
+            kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24;
+            kind.iconAltDescriptionRes = R.string.sms;
+            kind.actionAltHeader = new PhoneActionAltInflater();
+
+            kind.fieldList.add(new EditField(Phone.NUMBER, R.string.phoneLabelsGroup, FLAGS_PHONE));
+
+            return Lists.newArrayList(kind);
+        }
+
+        /** Just to avoid line-wrapping... */
+        protected static EditType build(int type, boolean secondary) {
+            return new EditType(type, Phone.getTypeLabelResource(type)).setSecondary(secondary);
+        }
+
+        @Override
+        protected EditType buildEditTypeForTypeTag(AttributeSet attrs, String type) {
+            if ("home".equals(type)) return build(Phone.TYPE_HOME, false);
+            if ("mobile".equals(type)) return build(Phone.TYPE_MOBILE, false);
+            if ("work".equals(type)) return build(Phone.TYPE_WORK, false);
+            if ("fax_work".equals(type)) return build(Phone.TYPE_FAX_WORK, true);
+            if ("fax_home".equals(type)) return build(Phone.TYPE_FAX_HOME, true);
+            if ("pager".equals(type)) return build(Phone.TYPE_PAGER, true);
+            if ("other".equals(type)) return build(Phone.TYPE_OTHER, false);
+            if ("callback".equals(type)) return build(Phone.TYPE_CALLBACK, true);
+            if ("car".equals(type)) return build(Phone.TYPE_CAR, true);
+            if ("company_main".equals(type)) return build(Phone.TYPE_COMPANY_MAIN, true);
+            if ("isdn".equals(type)) return build(Phone.TYPE_ISDN, true);
+            if ("main".equals(type)) return build(Phone.TYPE_MAIN, true);
+            if ("other_fax".equals(type)) return build(Phone.TYPE_OTHER_FAX, true);
+            if ("radio".equals(type)) return build(Phone.TYPE_RADIO, true);
+            if ("telex".equals(type)) return build(Phone.TYPE_TELEX, true);
+            if ("tty_tdd".equals(type)) return build(Phone.TYPE_TTY_TDD, true);
+            if ("work_mobile".equals(type)) return build(Phone.TYPE_WORK_MOBILE, true);
+            if ("work_pager".equals(type)) return build(Phone.TYPE_WORK_PAGER, true);
+
+            // Note "assistant" used to be a custom column for the fallback type, but not anymore.
+            if ("assistant".equals(type)) return build(Phone.TYPE_ASSISTANT, true);
+            if ("mms".equals(type)) return build(Phone.TYPE_MMS, true);
+            if ("custom".equals(type)) {
+                return build(Phone.TYPE_CUSTOM, true).setCustomColumn(Phone.LABEL);
+            }
+            return null;
+        }
+    }
+
+    private static class EmailKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "email";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Email.CONTENT_ITEM_TYPE, Email.TYPE, R.string.emailLabelsGroup, Weight.EMAIL,
+                    new EmailActionInflater(), new SimpleInflater(Email.DATA));
+            kind.fieldList.add(new EditField(Email.DATA, R.string.emailLabelsGroup, FLAGS_EMAIL));
+
+            return Lists.newArrayList(kind);
+        }
+
+        @Override
+        protected EditType buildEditTypeForTypeTag(AttributeSet attrs, String type) {
+            // EditType is mutable, so we need to create a new instance every time.
+            if ("home".equals(type)) return buildEmailType(Email.TYPE_HOME);
+            if ("work".equals(type)) return buildEmailType(Email.TYPE_WORK);
+            if ("other".equals(type)) return buildEmailType(Email.TYPE_OTHER);
+            if ("mobile".equals(type)) return buildEmailType(Email.TYPE_MOBILE);
+            if ("custom".equals(type)) {
+                return buildEmailType(Email.TYPE_CUSTOM)
+                        .setSecondary(true).setCustomColumn(Email.LABEL);
+            }
+            return null;
+        }
+    }
+
+    private static class StructuredPostalKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "postal";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    StructuredPostal.CONTENT_ITEM_TYPE, StructuredPostal.TYPE,
+                    R.string.postalLabelsGroup, Weight.STRUCTURED_POSTAL,
+                    new PostalActionInflater(),
+                    new SimpleInflater(StructuredPostal.FORMATTED_ADDRESS));
+
+            if (getAttr(attrs, "needsStructured", false)) {
+                if (Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage())) {
+                    // Japanese order
+                    kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+                            R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+                    kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+                            R.string.postal_postcode, FLAGS_POSTAL));
+                    kind.fieldList.add(new EditField(StructuredPostal.REGION,
+                            R.string.postal_region, FLAGS_POSTAL));
+                    kind.fieldList.add(new EditField(StructuredPostal.CITY,
+                            R.string.postal_city,FLAGS_POSTAL));
+                    kind.fieldList.add(new EditField(StructuredPostal.STREET,
+                            R.string.postal_street, FLAGS_POSTAL));
+                } else {
+                    // Generic order
+                    kind.fieldList.add(new EditField(StructuredPostal.STREET,
+                            R.string.postal_street, FLAGS_POSTAL));
+                    kind.fieldList.add(new EditField(StructuredPostal.CITY,
+                            R.string.postal_city,FLAGS_POSTAL));
+                    kind.fieldList.add(new EditField(StructuredPostal.REGION,
+                            R.string.postal_region, FLAGS_POSTAL));
+                    kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+                            R.string.postal_postcode, FLAGS_POSTAL));
+                    kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+                            R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+                }
+            } else {
+                kind.maxLinesForDisplay= MAX_LINES_FOR_POSTAL_ADDRESS;
+                kind.fieldList.add(
+                        new EditField(StructuredPostal.FORMATTED_ADDRESS, R.string.postal_address,
+                                FLAGS_POSTAL));
+            }
+
+            return Lists.newArrayList(kind);
+        }
+
+        @Override
+        protected EditType buildEditTypeForTypeTag(AttributeSet attrs, String type) {
+            // EditType is mutable, so we need to create a new instance every time.
+            if ("home".equals(type)) return buildPostalType(StructuredPostal.TYPE_HOME);
+            if ("work".equals(type)) return buildPostalType(StructuredPostal.TYPE_WORK);
+            if ("other".equals(type)) return buildPostalType(StructuredPostal.TYPE_OTHER);
+            if ("custom".equals(type)) {
+                return buildPostalType(StructuredPostal.TYPE_CUSTOM)
+                        .setSecondary(true).setCustomColumn(Email.LABEL);
+            }
+            return null;
+        }
+    }
+
+    private static class ImKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "im";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+
+            // IM is special:
+            // - It uses "protocol" as the custom label field
+            // - Its TYPE is fixed to TYPE_OTHER
+
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Im.CONTENT_ITEM_TYPE, Im.PROTOCOL, R.string.imLabelsGroup, Weight.IM,
+                    new ImActionInflater(), new SimpleInflater(Im.DATA) // header / action
+                    );
+            kind.fieldList.add(new EditField(Im.DATA, R.string.imLabelsGroup, FLAGS_EMAIL));
+
+            kind.defaultValues = new ContentValues();
+            kind.defaultValues.put(Im.TYPE, Im.TYPE_OTHER);
+
+            return Lists.newArrayList(kind);
+        }
+
+        @Override
+        protected EditType buildEditTypeForTypeTag(AttributeSet attrs, String type) {
+            if ("aim".equals(type)) return buildImType(Im.PROTOCOL_AIM);
+            if ("msn".equals(type)) return buildImType(Im.PROTOCOL_MSN);
+            if ("yahoo".equals(type)) return buildImType(Im.PROTOCOL_YAHOO);
+            if ("skype".equals(type)) return buildImType(Im.PROTOCOL_SKYPE);
+            if ("qq".equals(type)) return buildImType(Im.PROTOCOL_QQ);
+            if ("google_talk".equals(type)) return buildImType(Im.PROTOCOL_GOOGLE_TALK);
+            if ("icq".equals(type)) return buildImType(Im.PROTOCOL_ICQ);
+            if ("jabber".equals(type)) return buildImType(Im.PROTOCOL_JABBER);
+            if ("custom".equals(type)) {
+                return buildImType(Im.PROTOCOL_CUSTOM).setSecondary(true)
+                        .setCustomColumn(Im.CUSTOM_PROTOCOL);
+            }
+            return null;
+        }
+    }
+
+    private static class OrganizationKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "organization";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Organization.CONTENT_ITEM_TYPE, null, R.string.organizationLabelsGroup,
+                    Weight.ORGANIZATION,
+                    new SimpleInflater(R.string.organizationLabelsGroup),
+                    ORGANIZATION_BODY_INFLATER);
+
+            kind.fieldList.add(new EditField(Organization.COMPANY, R.string.ghostData_company,
+                    FLAGS_GENERIC_NAME));
+            kind.fieldList.add(new EditField(Organization.TITLE, R.string.ghostData_title,
+                    FLAGS_GENERIC_NAME));
+
+            throwIfList(kind);
+
+            return Lists.newArrayList(kind);
+        }
+    }
+
+    private static class PhotoKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "photo";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Photo.CONTENT_ITEM_TYPE, null /* no type */, Weight.NONE, -1,
+                    null, null // no header, no body
+                    );
+
+            kind.fieldList.add(new EditField(Photo.PHOTO, -1, -1));
+
+            throwIfList(kind);
+
+            return Lists.newArrayList(kind);
+        }
+    }
+
+    private static class NoteKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "note";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Note.CONTENT_ITEM_TYPE, null, R.string.label_notes, Weight.NOTE,
+                    new SimpleInflater(R.string.label_notes), new SimpleInflater(Note.NOTE));
+
+            kind.fieldList.add(new EditField(Note.NOTE, R.string.label_notes, FLAGS_NOTE));
+            kind.maxLinesForDisplay = MAX_LINES_FOR_NOTE;
+
+            throwIfList(kind);
+
+            return Lists.newArrayList(kind);
+        }
+    }
+
+    private static class WebsiteKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "website";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Website.CONTENT_ITEM_TYPE, null, R.string.websiteLabelsGroup, Weight.WEBSITE,
+                    new SimpleInflater(R.string.websiteLabelsGroup),
+                    new SimpleInflater(Website.URL));
+
+            kind.fieldList.add(new EditField(Website.URL, R.string.websiteLabelsGroup,
+                    FLAGS_WEBSITE));
+
+            kind.defaultValues = new ContentValues();
+            kind.defaultValues.put(Website.TYPE, Website.TYPE_OTHER);
+
+            return Lists.newArrayList(kind);
+        }
+    }
+
+    private static class SipAddressKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "sip_address";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    SipAddress.CONTENT_ITEM_TYPE, null, R.string.label_sip_address,
+                    Weight.SIP_ADDRESS,
+                    new SimpleInflater(R.string.label_sip_address),
+                    new SimpleInflater(SipAddress.SIP_ADDRESS));
+
+            kind.fieldList.add(new EditField(SipAddress.SIP_ADDRESS,
+                    R.string.label_sip_address, FLAGS_SIP_ADDRESS));
+
+            throwIfList(kind);
+
+            return Lists.newArrayList(kind);
+        }
+    }
+
+    private static class GroupMembershipKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "group_membership";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    GroupMembership.CONTENT_ITEM_TYPE, null,
+                    R.string.groupsLabel, Weight.GROUP_MEMBERSHIP, null, null);
+
+            kind.fieldList.add(new EditField(GroupMembership.GROUP_ROW_ID, -1, -1));
+            kind.maxLinesForDisplay = MAX_LINES_FOR_GROUP;
+
+            throwIfList(kind);
+
+            return Lists.newArrayList(kind);
+        }
+    }
+
+    /**
+     * Event DataKind parser.
+     *
+     * Event DataKind is used only for Google/Exchange types, so this parser is not used for now.
+     */
+    private static class EventKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "event";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Event.CONTENT_ITEM_TYPE, Event.TYPE, R.string.eventLabelsGroup, Weight.EVENT,
+                    new EventActionInflater(), new SimpleInflater(Event.START_DATE));
+
+            kind.fieldList.add(new EditField(Event.DATA, R.string.eventLabelsGroup, FLAGS_EVENT));
+
+            if (getAttr(attrs, Attr.DATE_WITH_TIME, false)) {
+                kind.dateFormatWithoutYear = CommonDateUtils.NO_YEAR_DATE_AND_TIME_FORMAT;
+                kind.dateFormatWithYear = CommonDateUtils.DATE_AND_TIME_FORMAT;
+            } else {
+                kind.dateFormatWithoutYear = CommonDateUtils.NO_YEAR_DATE_FORMAT;
+                kind.dateFormatWithYear = CommonDateUtils.FULL_DATE_FORMAT;
+            }
+
+            return Lists.newArrayList(kind);
+        }
+
+        @Override
+        protected EditType buildEditTypeForTypeTag(AttributeSet attrs, String type) {
+            final boolean yo = getAttr(attrs, Attr.YEAR_OPTIONAL, false);
+
+            if ("birthday".equals(type)) {
+                return buildEventType(Event.TYPE_BIRTHDAY, yo).setSpecificMax(1);
+            }
+            if ("anniversary".equals(type)) return buildEventType(Event.TYPE_ANNIVERSARY, yo);
+            if ("other".equals(type)) return buildEventType(Event.TYPE_OTHER, yo);
+            if ("custom".equals(type)) {
+                return buildEventType(Event.TYPE_CUSTOM, yo)
+                        .setSecondary(true).setCustomColumn(Event.LABEL);
+            }
+            return null;
+        }
+    }
+
+    /**
+     * Relationship DataKind parser.
+     *
+     * Relationship DataKind is used only for Google/Exchange types, so this parser is not used for
+     * now.
+     */
+    private static class RelationshipKindBuilder extends KindBuilder {
+        @Override
+        public String getTagName() {
+            return "relationship";
+        }
+
+        @Override
+        public List<DataKind> parseDataKind(Context context, XmlPullParser parser,
+                AttributeSet attrs) throws DefinitionException, XmlPullParserException,
+                IOException {
+            final DataKind kind = newDataKind(context, parser, attrs, false,
+                    Relation.CONTENT_ITEM_TYPE, Relation.TYPE,
+                    R.string.relationLabelsGroup, Weight.RELATIONSHIP,
+                    new RelationActionInflater(), new SimpleInflater(Relation.NAME));
+
+            kind.fieldList.add(new EditField(Relation.DATA, R.string.relationLabelsGroup,
+                    FLAGS_RELATION));
+
+            kind.defaultValues = new ContentValues();
+            kind.defaultValues.put(Relation.TYPE, Relation.TYPE_SPOUSE);
+
+            return Lists.newArrayList(kind);
+        }
+
+        @Override
+        protected EditType buildEditTypeForTypeTag(AttributeSet attrs, String type) {
+            // EditType is mutable, so we need to create a new instance every time.
+            if ("assistant".equals(type)) return buildRelationType(Relation.TYPE_ASSISTANT);
+            if ("brother".equals(type)) return buildRelationType(Relation.TYPE_BROTHER);
+            if ("child".equals(type)) return buildRelationType(Relation.TYPE_CHILD);
+            if ("domestic_partner".equals(type)) {
+                    return buildRelationType(Relation.TYPE_DOMESTIC_PARTNER);
+            }
+            if ("father".equals(type)) return buildRelationType(Relation.TYPE_FATHER);
+            if ("friend".equals(type)) return buildRelationType(Relation.TYPE_FRIEND);
+            if ("manager".equals(type)) return buildRelationType(Relation.TYPE_MANAGER);
+            if ("mother".equals(type)) return buildRelationType(Relation.TYPE_MOTHER);
+            if ("parent".equals(type)) return buildRelationType(Relation.TYPE_PARENT);
+            if ("partner".equals(type)) return buildRelationType(Relation.TYPE_PARTNER);
+            if ("referred_by".equals(type)) return buildRelationType(Relation.TYPE_REFERRED_BY);
+            if ("relative".equals(type)) return buildRelationType(Relation.TYPE_RELATIVE);
+            if ("sister".equals(type)) return buildRelationType(Relation.TYPE_SISTER);
+            if ("spouse".equals(type)) return buildRelationType(Relation.TYPE_SPOUSE);
+            if ("custom".equals(type)) {
+                return buildRelationType(Relation.TYPE_CUSTOM).setSecondary(true)
+                        .setCustomColumn(Relation.LABEL);
+            }
+            return null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/model/account/DeviceLocalAccountType.java b/src/com/android/contacts/model/account/DeviceLocalAccountType.java
new file mode 100644
index 0000000..c6c7d07
--- /dev/null
+++ b/src/com/android/contacts/model/account/DeviceLocalAccountType.java
@@ -0,0 +1,46 @@
+/*
+ * 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.account;
+
+import android.content.Context;
+
+public class DeviceLocalAccountType extends FallbackAccountType {
+
+    private final boolean mGroupsEditable;
+
+    public DeviceLocalAccountType(Context context, boolean groupsEditable) {
+        super(context);
+        mGroupsEditable = groupsEditable;
+    }
+
+    public DeviceLocalAccountType(Context context) {
+        this(context, false);
+    }
+
+    @Override
+    public boolean isGroupMembershipEditable() {
+        return mGroupsEditable;
+    }
+
+    @Override
+    public AccountInfo wrapAccount(Context context, AccountWithDataSet account) {
+        // Use the "Device" type label for the name as well because on OEM phones the "name" is
+        // not always user-friendly
+        return new AccountInfo(
+                new AccountDisplayInfo(account, getDisplayLabel(context), getDisplayLabel(context),
+                        getDisplayIcon(context), true), this);
+    }
+}
diff --git a/src/com/android/contacts/model/account/ExchangeAccountType.java b/src/com/android/contacts/model/account/ExchangeAccountType.java
new file mode 100644
index 0000000..bd79852
--- /dev/null
+++ b/src/com/android/contacts/model/account/ExchangeAccountType.java
@@ -0,0 +1,318 @@
+/*
+ * Copyright (C) 2009 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.account;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+
+import com.android.contacts.R;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.util.CommonDateUtils;
+import com.android.contactsbind.FeedbackHelper;
+
+import com.google.common.collect.Lists;
+
+import java.util.Locale;
+
+public class ExchangeAccountType extends BaseAccountType {
+    private static final String TAG = "ExchangeAccountType";
+
+    private static final String ACCOUNT_TYPE_AOSP = "com.android.exchange";
+    private static final String ACCOUNT_TYPE_GOOGLE_1 = "com.google.android.exchange";
+    private static final String ACCOUNT_TYPE_GOOGLE_2 = "com.google.android.gm.exchange";
+
+    public ExchangeAccountType(Context context, String authenticatorPackageName, String type) {
+        this.accountType = type;
+        this.resourcePackageName = null;
+        this.syncAdapterPackageName = authenticatorPackageName;
+
+        try {
+            addDataKindStructuredName(context);
+            addDataKindName(context);
+            addDataKindPhoneticName(context);
+            addDataKindNickname(context);
+            addDataKindPhone(context);
+            addDataKindEmail(context);
+            addDataKindStructuredPostal(context);
+            addDataKindIm(context);
+            addDataKindOrganization(context);
+            addDataKindPhoto(context);
+            addDataKindNote(context);
+            addDataKindEvent(context);
+            addDataKindWebsite(context);
+            addDataKindGroupMembership(context);
+
+            mIsInitialized = true;
+        } catch (DefinitionException e) {
+            // TODO: Change this to fail fast if there are no feedback reports
+            FeedbackHelper.sendFeedback(context, TAG, "Failed to build exchange account type", e);
+        }
+    }
+
+    public static boolean isExchangeType(String type) {
+        return ACCOUNT_TYPE_AOSP.equals(type) || ACCOUNT_TYPE_GOOGLE_1.equals(type)
+                || ACCOUNT_TYPE_GOOGLE_2.equals(type);
+    }
+
+    @Override
+    protected DataKind addDataKindStructuredName(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(StructuredName.CONTENT_ITEM_TYPE,
+                R.string.nameLabelsGroup, Weight.NONE, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(StructuredName.PREFIX, R.string.name_prefix,
+                FLAGS_PERSON_NAME).setOptional(true));
+        kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME,
+                R.string.name_family, FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.MIDDLE_NAME,
+                R.string.name_middle, FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME,
+                R.string.name_given, FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.SUFFIX,
+                R.string.name_suffix, FLAGS_PERSON_NAME));
+
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                R.string.name_phonetic_family, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                R.string.name_phonetic_given, FLAGS_PHONETIC));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindPhoneticName(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME,
+                R.string.name_phonetic, Weight.NONE, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_FAMILY_NAME,
+                R.string.name_phonetic_family, FLAGS_PHONETIC));
+        kind.fieldList.add(new EditField(StructuredName.PHONETIC_GIVEN_NAME,
+                R.string.name_phonetic_given, FLAGS_PHONETIC));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindNickname(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindNickname(context);
+
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Nickname.NAME, R.string.nicknameLabelsGroup,
+                FLAGS_PERSON_NAME));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindPhone(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindPhone(context);
+
+        kind.typeColumn = Phone.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MOBILE).setSpecificMax(1));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_HOME).setSpecificMax(2));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_WORK).setSpecificMax(2));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_WORK).setSecondary(true)
+                .setSpecificMax(1));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_HOME).setSecondary(true)
+                .setSpecificMax(1));
+        kind.typeList
+                .add(buildPhoneType(Phone.TYPE_PAGER).setSecondary(true).setSpecificMax(1));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_CAR).setSecondary(true).setSpecificMax(1));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_COMPANY_MAIN).setSecondary(true)
+                .setSpecificMax(1));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MMS).setSecondary(true).setSpecificMax(1));
+        kind.typeList
+                .add(buildPhoneType(Phone.TYPE_RADIO).setSecondary(true).setSpecificMax(1));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_ASSISTANT).setSecondary(true)
+                .setSpecificMax(1));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Phone.NUMBER, R.string.phoneLabelsGroup, FLAGS_PHONE));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindEmail(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindEmail(context);
+
+        kind.typeOverallMax = 3;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Email.DATA, R.string.emailLabelsGroup, FLAGS_EMAIL));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindStructuredPostal(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindStructuredPostal(context);
+
+        final boolean useJapaneseOrder =
+            Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage());
+        kind.typeColumn = StructuredPostal.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_WORK).setSpecificMax(1));
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_HOME).setSpecificMax(1));
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_OTHER).setSpecificMax(1));
+
+        kind.fieldList = Lists.newArrayList();
+        if (useJapaneseOrder) {
+            kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+                    R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+            kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+                    R.string.postal_postcode, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.REGION,
+                    R.string.postal_region, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.CITY,
+                    R.string.postal_city,FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.STREET,
+                    R.string.postal_street, FLAGS_POSTAL));
+        } else {
+            kind.fieldList.add(new EditField(StructuredPostal.STREET,
+                    R.string.postal_street, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.CITY,
+                    R.string.postal_city,FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.REGION,
+                    R.string.postal_region, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+                    R.string.postal_postcode, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+                    R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+        }
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindIm(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindIm(context);
+
+        // Types are not supported for IM. There can be 3 IMs, but OWA only shows only the first
+        kind.typeOverallMax = 3;
+
+        kind.defaultValues = new ContentValues();
+        kind.defaultValues.put(Im.TYPE, Im.TYPE_OTHER);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Im.DATA, R.string.imLabelsGroup, FLAGS_EMAIL));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindOrganization(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindOrganization(context);
+
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Organization.COMPANY, R.string.ghostData_company,
+                FLAGS_GENERIC_NAME));
+        kind.fieldList.add(new EditField(Organization.TITLE, R.string.ghostData_title,
+                FLAGS_GENERIC_NAME));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindPhoto(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindPhoto(context);
+
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Photo.PHOTO, -1, -1));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindNote(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindNote(context);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Note.NOTE, R.string.label_notes, FLAGS_NOTE));
+
+        return kind;
+    }
+
+    protected DataKind addDataKindEvent(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Event.CONTENT_ITEM_TYPE, R.string.eventLabelsGroup,
+                Weight.EVENT, true));
+        kind.actionHeader = new EventActionInflater();
+        kind.actionBody = new SimpleInflater(Event.START_DATE);
+
+        kind.typeOverallMax = 1;
+
+        kind.typeColumn = Event.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildEventType(Event.TYPE_BIRTHDAY, false).setSpecificMax(1));
+
+        kind.dateFormatWithYear = CommonDateUtils.DATE_AND_TIME_FORMAT;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Event.DATA, R.string.eventLabelsGroup, FLAGS_EVENT));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindWebsite(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindWebsite(context);
+
+        kind.typeOverallMax = 1;
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Website.URL, R.string.websiteLabelsGroup, FLAGS_WEBSITE));
+
+        return kind;
+    }
+
+    @Override
+    public boolean isGroupMembershipEditable() {
+        return true;
+    }
+
+    @Override
+    public boolean areContactsWritable() {
+        return true;
+    }
+}
diff --git a/src/com/android/contacts/model/account/ExternalAccountType.java b/src/com/android/contacts/model/account/ExternalAccountType.java
new file mode 100644
index 0000000..c914c74
--- /dev/null
+++ b/src/com/android/contacts/model/account/ExternalAccountType.java
@@ -0,0 +1,450 @@
+/*
+ * Copyright (C) 2009 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.account;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.content.res.XmlResourceParser;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.Xml;
+
+import com.android.contacts.R;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contactsbind.FeedbackHelper;
+
+import com.google.common.annotations.VisibleForTesting;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A general contacts account type descriptor.
+ */
+public class ExternalAccountType extends BaseAccountType {
+    private static final String TAG = "ExternalAccountType";
+
+    private static final String SYNC_META_DATA = "android.content.SyncAdapter";
+
+    /**
+     * The metadata name for so-called "contacts.xml".
+     *
+     * On LMP and later, we also accept the "alternate" name.
+     * This is to allow sync adapters to have a contacts.xml without making it visible on older
+     * platforms. If you modify this also update the corresponding list in
+     * ContactsProvider/PhotoPriorityResolver
+     */
+    private static final String[] METADATA_CONTACTS_NAMES = new String[] {
+            "android.provider.ALTERNATE_CONTACTS_STRUCTURE",
+            "android.provider.CONTACTS_STRUCTURE"
+    };
+
+    private static final String TAG_CONTACTS_SOURCE_LEGACY = "ContactsSource";
+    private static final String TAG_CONTACTS_ACCOUNT_TYPE = "ContactsAccountType";
+    private static final String TAG_CONTACTS_DATA_KIND = "ContactsDataKind";
+    private static final String TAG_EDIT_SCHEMA = "EditSchema";
+
+    private static final String ATTR_INVITE_CONTACT_ACTIVITY = "inviteContactActivity";
+    private static final String ATTR_INVITE_CONTACT_ACTION_LABEL = "inviteContactActionLabel";
+    private static final String ATTR_VIEW_CONTACT_NOTIFY_SERVICE = "viewContactNotifyService";
+    private static final String ATTR_VIEW_GROUP_ACTIVITY = "viewGroupActivity";
+    private static final String ATTR_VIEW_GROUP_ACTION_LABEL = "viewGroupActionLabel";
+    private static final String ATTR_DATA_SET = "dataSet";
+    private static final String ATTR_EXTENSION_PACKAGE_NAMES = "extensionPackageNames";
+
+    // The following attributes should only be set in non-sync-adapter account types.  They allow
+    // for the account type and resource IDs to be specified without an associated authenticator.
+    private static final String ATTR_ACCOUNT_TYPE = "accountType";
+    private static final String ATTR_ACCOUNT_LABEL = "accountTypeLabel";
+    private static final String ATTR_ACCOUNT_ICON = "accountTypeIcon";
+
+    private final boolean mIsExtension;
+
+    private String mInviteContactActivity;
+    private String mInviteActionLabelAttribute;
+    private int mInviteActionLabelResId;
+    private String mViewContactNotifyService;
+    private String mViewGroupActivity;
+    private String mViewGroupLabelAttribute;
+    private int mViewGroupLabelResId;
+    private List<String> mExtensionPackageNames;
+    private String mAccountTypeLabelAttribute;
+    private String mAccountTypeIconAttribute;
+    private boolean mHasContactsMetadata;
+    private boolean mHasEditSchema;
+    private boolean mGroupMembershipEditable;
+
+    public ExternalAccountType(Context context, String resPackageName, boolean isExtension) {
+        this(context, resPackageName, isExtension, null);
+    }
+
+    /**
+     * Constructor used for testing to initialize with any arbitrary XML.
+     *
+     * @param injectedMetadata If non-null, it'll be used to initialize the type.  Only set by
+     *     tests.  If null, the metadata is loaded from the specified package.
+     */
+    ExternalAccountType(Context context, String packageName, boolean isExtension,
+            XmlResourceParser injectedMetadata) {
+        this.mIsExtension = isExtension;
+        this.resourcePackageName = packageName;
+        this.syncAdapterPackageName = packageName;
+
+        final XmlResourceParser parser;
+        if (injectedMetadata == null) {
+            parser = loadContactsXml(context, packageName);
+        } else {
+            parser = injectedMetadata;
+        }
+        boolean needLineNumberInErrorLog = true;
+        try {
+            if (parser != null) {
+                inflate(context, parser);
+            }
+
+            // Done parsing; line number no longer needed in error log.
+            needLineNumberInErrorLog = false;
+            if (mHasEditSchema) {
+                checkKindExists(StructuredName.CONTENT_ITEM_TYPE);
+                checkKindExists(DataKind.PSEUDO_MIME_TYPE_NAME);
+                checkKindExists(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME);
+                checkKindExists(Photo.CONTENT_ITEM_TYPE);
+            } else {
+                // Bring in name and photo from fallback source, which are non-optional
+                addDataKindStructuredName(context);
+                addDataKindName(context);
+                addDataKindPhoneticName(context);
+                addDataKindPhoto(context);
+            }
+        } catch (DefinitionException e) {
+            final StringBuilder error = new StringBuilder();
+            error.append("Problem reading XML");
+            if (needLineNumberInErrorLog && (parser != null)) {
+                error.append(" in line ");
+                error.append(parser.getLineNumber());
+            }
+            error.append(" for external package ");
+            error.append(packageName);
+            // Only send feedback if not from tests. There are tests that expect failures so no need
+            // to report those.
+            if (injectedMetadata == null) {
+                FeedbackHelper.sendFeedback(context, TAG, "Failed to build external account type",
+                        e);
+            }
+            return;
+        } finally {
+            if (parser != null) {
+                parser.close();
+            }
+        }
+
+        mExtensionPackageNames = new ArrayList<String>();
+        mInviteActionLabelResId = resolveExternalResId(context, mInviteActionLabelAttribute,
+                syncAdapterPackageName, ATTR_INVITE_CONTACT_ACTION_LABEL);
+        mViewGroupLabelResId = resolveExternalResId(context, mViewGroupLabelAttribute,
+                syncAdapterPackageName, ATTR_VIEW_GROUP_ACTION_LABEL);
+        titleRes = resolveExternalResId(context, mAccountTypeLabelAttribute,
+                syncAdapterPackageName, ATTR_ACCOUNT_LABEL);
+        iconRes = resolveExternalResId(context, mAccountTypeIconAttribute,
+                syncAdapterPackageName, ATTR_ACCOUNT_ICON);
+
+        final DataKind dataKind = getKindForMimetype(GroupMembership.CONTENT_ITEM_TYPE);
+        mGroupMembershipEditable = dataKind != null && dataKind.editable;
+
+        // If we reach this point, the account type has been successfully initialized.
+        mIsInitialized = true;
+    }
+
+    /**
+     * Returns the CONTACTS_STRUCTURE metadata (aka "contacts.xml") in the given apk package.
+     *
+     * This method looks through all services in the package that handle sync adapter
+     * intents for the first one that contains CONTACTS_STRUCTURE metadata. We have to look
+     * through all sync adapters in the package in case there are contacts and other sync
+     * adapters (eg, calendar) in the same package.
+     *
+     * Returns {@code null} if the package has no CONTACTS_STRUCTURE metadata.  In this case
+     * the account type *will* be initialized with minimal configuration.
+     */
+    public static XmlResourceParser loadContactsXml(Context context, String resPackageName) {
+        final PackageManager pm = context.getPackageManager();
+        final Intent intent = new Intent(SYNC_META_DATA).setPackage(resPackageName);
+        final List<ResolveInfo> intentServices = pm.queryIntentServices(intent,
+                PackageManager.GET_SERVICES | PackageManager.GET_META_DATA);
+
+        if (intentServices != null) {
+            for (final ResolveInfo resolveInfo : intentServices) {
+                final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
+                if (serviceInfo == null) {
+                    continue;
+                }
+                for (String metadataName : METADATA_CONTACTS_NAMES) {
+                    final XmlResourceParser parser = serviceInfo.loadXmlMetaData(
+                            pm, metadataName);
+                    if (parser != null) {
+                        if (Log.isLoggable(TAG, Log.DEBUG)) {
+                            Log.d(TAG, String.format("Metadata loaded from: %s, %s, %s",
+                                    serviceInfo.packageName, serviceInfo.name,
+                                    metadataName));
+                        }
+                        return parser;
+                    }
+                }
+            }
+        }
+
+        // Package was found, but that doesn't contain the CONTACTS_STRUCTURE metadata.
+        return null;
+    }
+
+    /**
+     * Returns {@code TRUE} if the package contains CONTACTS_STRUCTURE metadata.
+     */
+    public static boolean hasContactsXml(Context context, String resPackageName) {
+        return loadContactsXml(context, resPackageName) != null;
+    }
+
+    private void checkKindExists(String mimeType) throws DefinitionException {
+        if (getKindForMimetype(mimeType) == null) {
+            throw new DefinitionException(mimeType + " must be supported");
+        }
+    }
+
+    @Override
+    public boolean isEmbedded() {
+        return false;
+    }
+
+    @Override
+    public boolean isExtension() {
+        return mIsExtension;
+    }
+
+    @Override
+    public boolean areContactsWritable() {
+        return mHasEditSchema;
+    }
+
+    /**
+     * Whether this account type has the android.provider.CONTACTS_STRUCTURE metadata xml.
+     */
+    public boolean hasContactsMetadata() {
+        return mHasContactsMetadata;
+    }
+
+    @Override
+    public String getInviteContactActivityClassName() {
+        return mInviteContactActivity;
+    }
+
+    @Override
+    protected int getInviteContactActionResId() {
+        return mInviteActionLabelResId;
+    }
+
+    @Override
+    public String getViewContactNotifyServiceClassName() {
+        return mViewContactNotifyService;
+    }
+
+    @Override
+    public String getViewGroupActivity() {
+        return mViewGroupActivity;
+    }
+
+    @Override
+    protected int getViewGroupLabelResId() {
+        return mViewGroupLabelResId;
+    }
+
+    @Override
+    public List<String> getExtensionPackageNames() {
+        return mExtensionPackageNames;
+    }
+
+    @Override
+    public boolean isGroupMembershipEditable() {
+        return mGroupMembershipEditable;
+    }
+
+    /**
+     * Inflate this {@link AccountType} from the given parser. This may only
+     * load details matching the publicly-defined schema.
+     */
+    protected void inflate(Context context, XmlPullParser parser) throws DefinitionException {
+        final AttributeSet attrs = Xml.asAttributeSet(parser);
+
+        try {
+            int type;
+            while ((type = parser.next()) != XmlPullParser.START_TAG
+                    && type != XmlPullParser.END_DOCUMENT) {
+                // Drain comments and whitespace
+            }
+
+            if (type != XmlPullParser.START_TAG) {
+                throw new IllegalStateException("No start tag found");
+            }
+
+            String rootTag = parser.getName();
+            if (!TAG_CONTACTS_ACCOUNT_TYPE.equals(rootTag) &&
+                    !TAG_CONTACTS_SOURCE_LEGACY.equals(rootTag)) {
+                throw new IllegalStateException("Top level element must be "
+                        + TAG_CONTACTS_ACCOUNT_TYPE + ", not " + rootTag);
+            }
+
+            mHasContactsMetadata = true;
+
+            int attributeCount = parser.getAttributeCount();
+            for (int i = 0; i < attributeCount; i++) {
+                String attr = parser.getAttributeName(i);
+                String value = parser.getAttributeValue(i);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, attr + "=" + value);
+                }
+                if (ATTR_INVITE_CONTACT_ACTIVITY.equals(attr)) {
+                    mInviteContactActivity = value;
+                } else if (ATTR_INVITE_CONTACT_ACTION_LABEL.equals(attr)) {
+                    mInviteActionLabelAttribute = value;
+                } else if (ATTR_VIEW_CONTACT_NOTIFY_SERVICE.equals(attr)) {
+                    mViewContactNotifyService = value;
+                } else if (ATTR_VIEW_GROUP_ACTIVITY.equals(attr)) {
+                    mViewGroupActivity = value;
+                } else if (ATTR_VIEW_GROUP_ACTION_LABEL.equals(attr)) {
+                    mViewGroupLabelAttribute = value;
+                } else if (ATTR_DATA_SET.equals(attr)) {
+                    dataSet = value;
+                } else if (ATTR_EXTENSION_PACKAGE_NAMES.equals(attr)) {
+                    mExtensionPackageNames.add(value);
+                } else if (ATTR_ACCOUNT_TYPE.equals(attr)) {
+                    accountType = value;
+                } else if (ATTR_ACCOUNT_LABEL.equals(attr)) {
+                    mAccountTypeLabelAttribute = value;
+                } else if (ATTR_ACCOUNT_ICON.equals(attr)) {
+                    mAccountTypeIconAttribute = value;
+                } else if (Log.isLoggable(TAG, Log.WARN)) {
+                    Log.w(TAG, "Unsupported attribute " + attr);
+                }
+            }
+
+            // Parse all children kinds
+            final int startDepth = parser.getDepth();
+            while (((type = parser.next()) != XmlPullParser.END_TAG
+                        || parser.getDepth() > startDepth)
+                    && type != XmlPullParser.END_DOCUMENT) {
+
+                if (type != XmlPullParser.START_TAG || parser.getDepth() != startDepth + 1) {
+                    continue; // Not a direct child tag
+                }
+
+                String tag = parser.getName();
+                if (TAG_EDIT_SCHEMA.equals(tag)) {
+                    mHasEditSchema = true;
+                    parseEditSchema(context, parser, attrs);
+                } else if (TAG_CONTACTS_DATA_KIND.equals(tag)) {
+                    final TypedArray a = context.obtainStyledAttributes(attrs,
+                            R.styleable.ContactsDataKind);
+                    final DataKind kind = new DataKind();
+
+                    kind.mimeType = a
+                            .getString(R.styleable.ContactsDataKind_android_mimeType);
+                    final String summaryColumn = a.getString(
+                            R.styleable.ContactsDataKind_android_summaryColumn);
+                    if (summaryColumn != null) {
+                        // Inflate a specific column as summary when requested
+                        kind.actionHeader = new SimpleInflater(summaryColumn);
+                    }
+                    final String detailColumn = a.getString(
+                            R.styleable.ContactsDataKind_android_detailColumn);
+                    if (detailColumn != null) {
+                        // Inflate specific column as summary
+                        kind.actionBody = new SimpleInflater(detailColumn);
+                    }
+
+                    a.recycle();
+
+                    addKind(kind);
+                }
+            }
+        } catch (XmlPullParserException e) {
+            throw new DefinitionException("Problem reading XML", e);
+        } catch (IOException e) {
+            throw new DefinitionException("Problem reading XML", e);
+        }
+    }
+
+    /**
+     * Takes a string in the "@xxx/yyy" format and return the resource ID for the resource in
+     * the resource package.
+     *
+     * If the argument is in the invalid format or isn't a resource name, it returns -1.
+     *
+     * @param context context
+     * @param resourceName Resource name in the "@xxx/yyy" format, e.g. "@string/invite_lavbel"
+     * @param packageName name of the package containing the resource.
+     * @param xmlAttributeName attribute name which the resource came from.  Used for logging.
+     */
+    @VisibleForTesting
+    static int resolveExternalResId(Context context, String resourceName,
+            String packageName, String xmlAttributeName) {
+        if (TextUtils.isEmpty(resourceName)) {
+            return -1; // Empty text is okay.
+        }
+        if (resourceName.charAt(0) != '@') {
+            if (Log.isLoggable(TAG, Log.WARN) && !isFromTestApp(packageName)) {
+                Log.w(TAG, xmlAttributeName + " must be a resource name beginnig with '@'");
+            }
+            return -1;
+        }
+        final String name = resourceName.substring(1);
+        final Resources res;
+        try {
+             res = context.getPackageManager().getResourcesForApplication(packageName);
+        } catch (NameNotFoundException e) {
+            if (Log.isLoggable(TAG, Log.WARN) && !isFromTestApp(packageName)) {
+                Log.w(TAG, "Unable to load package " + packageName);
+            }
+            return -1;
+        }
+        final int resId = res.getIdentifier(name, null, packageName);
+        if (resId == 0) {
+            if (Log.isLoggable(TAG, Log.WARN) && !isFromTestApp(packageName)) {
+                Log.w(TAG, "Unable to load " + resourceName + " from package " + packageName);
+            }
+            return -1;
+        }
+        return resId;
+    }
+
+    @VisibleForTesting
+    static boolean isFromTestApp(String packageName) {
+        return TextUtils.equals(packageName, "com.google.android.contacts.tests");
+    }
+}
diff --git a/src/com/android/contacts/model/account/FallbackAccountType.java b/src/com/android/contacts/model/account/FallbackAccountType.java
new file mode 100644
index 0000000..288a917
--- /dev/null
+++ b/src/com/android/contacts/model/account/FallbackAccountType.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2009 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.account;
+
+import android.accounts.AuthenticatorDescription;
+import android.content.Context;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
+import android.support.v4.content.ContextCompat;
+import android.support.v4.content.res.ResourcesCompat;
+
+import com.android.contacts.R;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contactsbind.FeedbackHelper;
+
+public class FallbackAccountType extends BaseAccountType {
+    private static final String TAG = "FallbackAccountType";
+
+    private FallbackAccountType(Context context, String resPackageName) {
+        this.accountType = null;
+        this.dataSet = null;
+        this.titleRes = R.string.account_phone;
+        this.iconRes = R.drawable.quantum_ic_smartphone_vd_theme_24;
+
+        // Note those are only set for unit tests.
+        this.resourcePackageName = resPackageName;
+        this.syncAdapterPackageName = resPackageName;
+
+        try {
+            addDataKindStructuredName(context);
+            addDataKindName(context);
+            addDataKindPhoneticName(context);
+            addDataKindNickname(context);
+            addDataKindPhone(context);
+            addDataKindEmail(context);
+            addDataKindStructuredPostal(context);
+            addDataKindIm(context);
+            addDataKindOrganization(context);
+            addDataKindPhoto(context);
+            addDataKindNote(context);
+            addDataKindWebsite(context);
+            addDataKindSipAddress(context);
+            addDataKindGroupMembership(context);
+
+            mIsInitialized = true;
+        } catch (DefinitionException e) {
+            FeedbackHelper.sendFeedback(context, TAG, "Failed to build fallback account type", e);
+        }
+    }
+
+    @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;
+    }
+
+    public FallbackAccountType(Context context) {
+        this(context, null);
+    }
+
+    /**
+     * Used to compare with an {@link ExternalAccountType} built from a test contacts.xml.
+     * In order to build {@link DataKind}s with the same resource package name,
+     * {@code resPackageName} is injectable.
+     */
+    static AccountType createWithPackageNameForTest(Context context, String resPackageName) {
+        return new FallbackAccountType(context, resPackageName);
+    }
+
+    @Override
+    public void initializeFieldsFromAuthenticator(AuthenticatorDescription authenticator) {
+        // Do nothing. For "Device" accounts we want to just display them using our own strings
+        // and icons.
+    }
+
+    @Override
+    public boolean areContactsWritable() {
+        return true;
+    }
+
+
+    /**
+     * {@inheritDoc}
+     *
+     * <p>This is overriden because the base class validates that the account.type matches
+     * {@link #accountType} but for the fallback case we want to be more permissive</p>
+     */
+    @Override
+    public AccountInfo wrapAccount(Context context, AccountWithDataSet account) {
+        return new AccountInfo(
+                new AccountDisplayInfo(account, account.name,
+                        getDisplayLabel(context), getDisplayIcon(context), false), this);
+    }
+}
diff --git a/src/com/android/contacts/model/account/GoogleAccountType.java b/src/com/android/contacts/model/account/GoogleAccountType.java
new file mode 100644
index 0000000..c7aac76
--- /dev/null
+++ b/src/com/android/contacts/model/account/GoogleAccountType.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2009 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.account;
+
+import android.content.ContentValues;
+import android.content.Context;
+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 com.android.contacts.R;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.util.CommonDateUtils;
+import com.android.contactsbind.FeedbackHelper;
+
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+public class GoogleAccountType extends BaseAccountType {
+    private static final String TAG = "GoogleAccountType";
+
+    /**
+     * The package name that we should load contacts.xml from and rely on to handle
+     * G+ account actions. Even though this points to gms, in some cases gms will still hand
+     * off responsibility to the G+ app.
+     */
+    public static final String PLUS_EXTENSION_PACKAGE_NAME = "com.google.android.gms";
+
+    public static final String ACCOUNT_TYPE = "com.google";
+
+    private static final List<String> mExtensionPackages =
+            Lists.newArrayList(PLUS_EXTENSION_PACKAGE_NAME);
+
+    public GoogleAccountType(Context context, String authenticatorPackageName) {
+        this.accountType = ACCOUNT_TYPE;
+        this.resourcePackageName = null;
+        this.syncAdapterPackageName = authenticatorPackageName;
+
+        try {
+            addDataKindStructuredName(context);
+            addDataKindName(context);
+            addDataKindPhoneticName(context);
+            addDataKindNickname(context);
+            addDataKindPhone(context);
+            addDataKindEmail(context);
+            addDataKindStructuredPostal(context);
+            addDataKindIm(context);
+            addDataKindOrganization(context);
+            addDataKindPhoto(context);
+            addDataKindNote(context);
+            addDataKindWebsite(context);
+            addDataKindSipAddress(context);
+            addDataKindGroupMembership(context);
+            addDataKindRelation(context);
+            addDataKindEvent(context);
+            addDataKindCustomField(context);
+
+            mIsInitialized = true;
+        } catch (DefinitionException e) {
+            FeedbackHelper.sendFeedback(context, TAG, "Failed to build google account type", e);
+        }
+    }
+
+    @Override
+    public List<String> getExtensionPackageNames() {
+        return mExtensionPackages;
+    }
+
+    @Override
+    protected DataKind addDataKindPhone(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindPhone(context);
+
+        kind.typeColumn = Phone.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MOBILE));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_WORK));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_HOME));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MAIN));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_WORK).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_HOME).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_PAGER).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_OTHER));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_CUSTOM).setSecondary(true)
+                .setCustomColumn(Phone.LABEL));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Phone.NUMBER, R.string.phoneLabelsGroup, FLAGS_PHONE));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindEmail(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindEmail(context);
+
+        kind.typeColumn = Email.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildEmailType(Email.TYPE_HOME));
+        kind.typeList.add(buildEmailType(Email.TYPE_WORK));
+        kind.typeList.add(buildEmailType(Email.TYPE_OTHER));
+        kind.typeList.add(buildEmailType(Email.TYPE_CUSTOM).setSecondary(true).setCustomColumn(
+                Email.LABEL));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Email.DATA, R.string.emailLabelsGroup, FLAGS_EMAIL));
+
+        return kind;
+    }
+
+    private DataKind addDataKindRelation(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Relation.CONTENT_ITEM_TYPE,
+                R.string.relationLabelsGroup, Weight.RELATIONSHIP, true));
+        kind.actionHeader = new RelationActionInflater();
+        kind.actionBody = new SimpleInflater(Relation.NAME);
+
+        kind.typeColumn = Relation.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildRelationType(Relation.TYPE_ASSISTANT));
+        kind.typeList.add(buildRelationType(Relation.TYPE_BROTHER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_CHILD));
+        kind.typeList.add(buildRelationType(Relation.TYPE_DOMESTIC_PARTNER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_FATHER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_FRIEND));
+        kind.typeList.add(buildRelationType(Relation.TYPE_MANAGER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_MOTHER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_PARENT));
+        kind.typeList.add(buildRelationType(Relation.TYPE_PARTNER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_REFERRED_BY));
+        kind.typeList.add(buildRelationType(Relation.TYPE_RELATIVE));
+        kind.typeList.add(buildRelationType(Relation.TYPE_SISTER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_SPOUSE));
+        kind.typeList.add(buildRelationType(Relation.TYPE_CUSTOM).setSecondary(true)
+                .setCustomColumn(Relation.LABEL));
+
+        kind.defaultValues = new ContentValues();
+        kind.defaultValues.put(Relation.TYPE, Relation.TYPE_SPOUSE);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Relation.DATA, R.string.relationLabelsGroup,
+                FLAGS_RELATION));
+
+        return kind;
+    }
+
+    private DataKind addDataKindEvent(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Event.CONTENT_ITEM_TYPE,
+                    R.string.eventLabelsGroup, Weight.EVENT, true));
+        kind.actionHeader = new EventActionInflater();
+        kind.actionBody = new SimpleInflater(Event.START_DATE);
+
+        kind.typeColumn = Event.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.dateFormatWithoutYear = CommonDateUtils.NO_YEAR_DATE_FORMAT;
+        kind.dateFormatWithYear = CommonDateUtils.FULL_DATE_FORMAT;
+        kind.typeList.add(buildEventType(Event.TYPE_BIRTHDAY, true).setSpecificMax(1));
+        kind.typeList.add(buildEventType(Event.TYPE_ANNIVERSARY, false));
+        kind.typeList.add(buildEventType(Event.TYPE_OTHER, false));
+        kind.typeList.add(buildEventType(Event.TYPE_CUSTOM, false).setSecondary(true)
+                .setCustomColumn(Event.LABEL));
+
+        kind.defaultValues = new ContentValues();
+        kind.defaultValues.put(Event.TYPE, Event.TYPE_BIRTHDAY);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Event.DATA, R.string.eventLabelsGroup, FLAGS_EVENT));
+
+        return kind;
+    }
+
+    @Override
+    public boolean isGroupMembershipEditable() {
+        return true;
+    }
+
+    @Override
+    public boolean areContactsWritable() {
+        return true;
+    }
+
+    @Override
+    public String getViewContactNotifyServiceClassName() {
+        return "com.google.android.syncadapters.contacts." +
+                "SyncHighResPhotoIntentService";
+    }
+
+    @Override
+    public String getViewContactNotifyServicePackageName() {
+        return "com.google.android.syncadapters.contacts";
+    }
+}
diff --git a/src/com/android/contacts/model/account/SamsungAccountType.java b/src/com/android/contacts/model/account/SamsungAccountType.java
new file mode 100644
index 0000000..aa55095
--- /dev/null
+++ b/src/com/android/contacts/model/account/SamsungAccountType.java
@@ -0,0 +1,239 @@
+/*
+ * Copyright (C) 2015 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.account;
+
+import android.content.ContentValues;
+import android.content.Context;
+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.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+
+import com.android.contacts.R;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.util.CommonDateUtils;
+import com.android.contactsbind.FeedbackHelper;
+
+import com.google.common.collect.Lists;
+
+import java.util.Locale;
+
+/**
+ * A writable account type that can be used to support samsung contacts. This may not perfectly
+ * match Samsung's latest intended account schema.
+ *
+ * This is only used to partially support Samsung accounts. The DataKind labels & fields are
+ * setup to support the values used by Samsung. But, not everything in the Samsung account type is
+ * supported. The Samsung account type includes a "Message Type" mimetype that we have no intention
+ * of showing inside the Contact editor. Similarly, we don't handle the "Ringtone" mimetype here
+ * since managing ringtones is handled in a different flow.
+ */
+public class SamsungAccountType extends BaseAccountType {
+    private static final String TAG = "KnownExternalAccount";
+    private static final String ACCOUNT_TYPE_SAMSUNG = "com.osp.app.signin";
+
+    public SamsungAccountType(Context context, String authenticatorPackageName, String type) {
+        this.accountType = type;
+        this.resourcePackageName = null;
+        this.syncAdapterPackageName = authenticatorPackageName;
+
+        try {
+            addDataKindStructuredName(context);
+            addDataKindName(context);
+            addDataKindPhoneticName(context);
+            addDataKindNickname(context);
+            addDataKindPhone(context);
+            addDataKindEmail(context);
+            addDataKindStructuredPostal(context);
+            addDataKindIm(context);
+            addDataKindOrganization(context);
+            addDataKindPhoto(context);
+            addDataKindNote(context);
+            addDataKindWebsite(context);
+            addDataKindGroupMembership(context);
+            addDataKindRelation(context);
+            addDataKindEvent(context);
+
+            mIsInitialized = true;
+        } catch (DefinitionException e) {
+            FeedbackHelper.sendFeedback(context, TAG, "Failed to build samsung account type", e);
+        }
+    }
+
+    /**
+     * Returns {@code TRUE} if this is samsung's account type and Samsung hasn't bothered to
+     * define a contacts.xml to provide a more accurate definition than ours.
+     */
+    public static boolean isSamsungAccountType(Context context, String type,
+            String packageName) {
+        return ACCOUNT_TYPE_SAMSUNG.equals(type)
+                && !ExternalAccountType.hasContactsXml(context, packageName);
+    }
+
+    @Override
+    protected DataKind addDataKindStructuredPostal(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindStructuredPostal(context);
+
+        final boolean useJapaneseOrder =
+                Locale.JAPANESE.getLanguage().equals(Locale.getDefault().getLanguage());
+        kind.typeColumn = StructuredPostal.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_WORK).setSpecificMax(1));
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_HOME).setSpecificMax(1));
+        kind.typeList.add(buildPostalType(StructuredPostal.TYPE_OTHER).setSpecificMax(1));
+
+        kind.fieldList = Lists.newArrayList();
+        if (useJapaneseOrder) {
+            kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+                    R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+            kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+                    R.string.postal_postcode, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.REGION,
+                    R.string.postal_region, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.CITY,
+                    R.string.postal_city,FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.STREET,
+                    R.string.postal_street, FLAGS_POSTAL));
+        } else {
+            kind.fieldList.add(new EditField(StructuredPostal.STREET,
+                    R.string.postal_street, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.CITY,
+                    R.string.postal_city,FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.REGION,
+                    R.string.postal_region, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.POSTCODE,
+                    R.string.postal_postcode, FLAGS_POSTAL));
+            kind.fieldList.add(new EditField(StructuredPostal.COUNTRY,
+                    R.string.postal_country, FLAGS_POSTAL).setOptional(true));
+        }
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindPhone(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindPhone(context);
+
+        kind.typeColumn = Phone.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MOBILE));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_HOME));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_WORK));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_MAIN));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_WORK).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_FAX_HOME).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_PAGER).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_RADIO).setSecondary(true));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_OTHER));
+        kind.typeList.add(buildPhoneType(Phone.TYPE_CUSTOM).setSecondary(true)
+                .setCustomColumn(Phone.LABEL));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Phone.NUMBER, R.string.phoneLabelsGroup, FLAGS_PHONE));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindEmail(Context context) throws DefinitionException {
+        final DataKind kind = super.addDataKindEmail(context);
+
+        kind.typeColumn = Email.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildEmailType(Email.TYPE_HOME));
+        kind.typeList.add(buildEmailType(Email.TYPE_WORK));
+        kind.typeList.add(buildEmailType(Email.TYPE_OTHER));
+        kind.typeList.add(buildEmailType(Email.TYPE_CUSTOM).setSecondary(true).setCustomColumn(
+                Email.LABEL));
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Email.DATA, R.string.emailLabelsGroup, FLAGS_EMAIL));
+
+        return kind;
+    }
+
+    private DataKind addDataKindRelation(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Relation.CONTENT_ITEM_TYPE,
+                R.string.relationLabelsGroup, 160, true));
+        kind.actionHeader = new RelationActionInflater();
+        kind.actionBody = new SimpleInflater(Relation.NAME);
+
+        kind.typeColumn = Relation.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.typeList.add(buildRelationType(Relation.TYPE_ASSISTANT));
+        kind.typeList.add(buildRelationType(Relation.TYPE_BROTHER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_CHILD));
+        kind.typeList.add(buildRelationType(Relation.TYPE_DOMESTIC_PARTNER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_FATHER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_FRIEND));
+        kind.typeList.add(buildRelationType(Relation.TYPE_MANAGER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_MOTHER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_PARENT));
+        kind.typeList.add(buildRelationType(Relation.TYPE_PARTNER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_REFERRED_BY));
+        kind.typeList.add(buildRelationType(Relation.TYPE_RELATIVE));
+        kind.typeList.add(buildRelationType(Relation.TYPE_SISTER));
+        kind.typeList.add(buildRelationType(Relation.TYPE_SPOUSE));
+        kind.typeList.add(buildRelationType(Relation.TYPE_CUSTOM).setSecondary(true)
+                .setCustomColumn(Relation.LABEL));
+
+        kind.defaultValues = new ContentValues();
+        kind.defaultValues.put(Relation.TYPE, Relation.TYPE_SPOUSE);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Relation.DATA, R.string.relationLabelsGroup,
+                FLAGS_RELATION));
+
+        return kind;
+    }
+
+    private DataKind addDataKindEvent(Context context) throws DefinitionException {
+        DataKind kind = addKind(new DataKind(Event.CONTENT_ITEM_TYPE,
+                R.string.eventLabelsGroup, 150, true));
+        kind.actionHeader = new EventActionInflater();
+        kind.actionBody = new SimpleInflater(Event.START_DATE);
+
+        kind.typeColumn = Event.TYPE;
+        kind.typeList = Lists.newArrayList();
+        kind.dateFormatWithoutYear = CommonDateUtils.NO_YEAR_DATE_FORMAT;
+        kind.dateFormatWithYear = CommonDateUtils.FULL_DATE_FORMAT;
+        kind.typeList.add(buildEventType(Event.TYPE_BIRTHDAY, true).setSpecificMax(1));
+        kind.typeList.add(buildEventType(Event.TYPE_ANNIVERSARY, false));
+        kind.typeList.add(buildEventType(Event.TYPE_OTHER, false));
+        kind.typeList.add(buildEventType(Event.TYPE_CUSTOM, false).setSecondary(true)
+                .setCustomColumn(Event.LABEL));
+
+        kind.defaultValues = new ContentValues();
+        kind.defaultValues.put(Event.TYPE, Event.TYPE_BIRTHDAY);
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(Event.DATA, R.string.eventLabelsGroup, FLAGS_EVENT));
+
+        return kind;
+    }
+
+    @Override
+    public boolean isGroupMembershipEditable() {
+        return true;
+    }
+
+    @Override
+    public boolean areContactsWritable() {
+        return true;
+    }
+}
diff --git a/src/com/android/contacts/model/account/SimAccountType.java b/src/com/android/contacts/model/account/SimAccountType.java
new file mode 100644
index 0000000..360e944
--- /dev/null
+++ b/src/com/android/contacts/model/account/SimAccountType.java
@@ -0,0 +1,124 @@
+/*
+ * 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.account;
+
+import android.accounts.AuthenticatorDescription;
+import android.content.Context;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+
+import com.android.contacts.R;
+import com.android.contacts.model.dataitem.DataKind;
+
+import com.google.common.collect.Lists;
+
+import java.util.Collections;
+
+/**
+ * Account type for SIM card contacts
+ */
+public class SimAccountType extends BaseAccountType {
+
+    public SimAccountType(Context context) {
+        this.titleRes = R.string.account_sim;
+        this.iconRes = R.drawable.quantum_ic_sim_card_vd_theme_24;
+
+        try {
+            addDataKindStructuredName(context);
+            addDataKindName(context);
+            final DataKind phoneKind = addDataKindPhone(context);
+            phoneKind.typeOverallMax = 1;
+            // SIM card contacts don't necessarily support separate types (based on data exposed
+            // in Samsung and LG Contacts Apps.
+            phoneKind.typeList = Collections.emptyList();
+
+            mIsInitialized = true;
+        } catch (DefinitionException e) {
+            // Just fail fast. Because we're explicitly adding the fields in this class this
+            // exception should only happen in case of a bug.
+            throw new IllegalStateException(e);
+        }
+    }
+
+    @Override
+    public boolean areContactsWritable() {
+        return true;
+    }
+
+    @Override
+    public boolean isGroupMembershipEditable() {
+        return false;
+    }
+
+    @Override
+    public void initializeFieldsFromAuthenticator(AuthenticatorDescription authenticator) {
+        // Do nothing. We want to use our local icon and title
+    }
+
+    @Override
+    protected DataKind addDataKindStructuredName(Context context) throws DefinitionException {
+        final DataKind kind = addKind(new DataKind(StructuredName.CONTENT_ITEM_TYPE,
+                R.string.nameLabelsGroup, Weight.NONE, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+        kind.typeOverallMax = 1;
+
+
+        kind.fieldList = Lists.newArrayList();
+        kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                FLAGS_PERSON_NAME));
+        kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                FLAGS_PERSON_NAME));
+
+        return kind;
+    }
+
+    @Override
+    protected DataKind addDataKindName(Context context) throws DefinitionException {
+        final DataKind kind = addKind(new DataKind(DataKind.PSEUDO_MIME_TYPE_NAME,
+                R.string.nameLabelsGroup, Weight.NONE, true));
+        kind.actionHeader = new SimpleInflater(R.string.nameLabelsGroup);
+        kind.actionBody = new SimpleInflater(Nickname.NAME);
+        kind.typeOverallMax = 1;
+
+        final boolean displayOrderPrimary =
+                context.getResources().getBoolean(R.bool.config_editor_field_order_primary);
+
+        kind.fieldList = Lists.newArrayList();
+        if (!displayOrderPrimary) {
+            kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                    FLAGS_PERSON_NAME));
+            kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                    FLAGS_PERSON_NAME));
+        } else {
+            kind.fieldList.add(new EditField(StructuredName.GIVEN_NAME, R.string.name_given,
+                    FLAGS_PERSON_NAME));
+            kind.fieldList.add(new EditField(StructuredName.FAMILY_NAME, R.string.name_family,
+                    FLAGS_PERSON_NAME));
+        }
+
+        return kind;
+    }
+
+    @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
+        return new AccountInfo(
+                new AccountDisplayInfo(account, getDisplayLabel(context), getDisplayLabel(context),
+                        getDisplayIcon(context), true), this);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/CustomDataItem.java b/src/com/android/contacts/model/dataitem/CustomDataItem.java
new file mode 100644
index 0000000..5be812b
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/CustomDataItem.java
@@ -0,0 +1,42 @@
+/*
+ * 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract.Data;
+
+/**
+ * Represents a custom field data item.
+ */
+public class CustomDataItem extends DataItem {
+
+    /**
+     * MIME type for custom field data defined in Contact Provider.
+     */
+    public static final String MIMETYPE_CUSTOM_FIELD =
+            "vnd.com.google.cursor.item/contact_user_defined_field";
+
+    CustomDataItem(ContentValues values) {super(values);}
+
+    public String getSummary() {
+        return getContentValues().getAsString(Data.DATA1);
+    }
+
+    public String getContent() {
+        return getContentValues().getAsString(Data.DATA2);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/DataItem.java b/src/com/android/contacts/model/dataitem/DataItem.java
new file mode 100644
index 0000000..81450bc
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/DataItem.java
@@ -0,0 +1,248 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.Identity;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.Relation;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.provider.ContactsContract.Contacts.Data;
+import android.provider.ContactsContract.Contacts.Entity;
+
+import com.android.contacts.Collapser;
+import com.android.contacts.MoreContactUtils;
+import com.android.contacts.model.RawContactModifier;
+
+/**
+ * This is the base class for data items, which represents a row from the Data table.
+ */
+public class DataItem implements Collapser.Collapsible<DataItem> {
+
+    private final ContentValues mContentValues;
+    protected DataKind mKind;
+
+    protected DataItem(ContentValues values) {
+        mContentValues = values;
+    }
+
+    /**
+     * Factory for creating subclasses of DataItem objects based on the mimetype in the
+     * content values.  Raw contact is the raw contact that this data item is associated with.
+     */
+    public static DataItem createFrom(ContentValues values) {
+        final String mimeType = values.getAsString(Data.MIMETYPE);
+        if (GroupMembership.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new GroupMembershipDataItem(values);
+        } else if (StructuredName.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new StructuredNameDataItem(values);
+        } else if (Phone.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new PhoneDataItem(values);
+        } else if (Email.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new EmailDataItem(values);
+        } else if (StructuredPostal.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new StructuredPostalDataItem(values);
+        } else if (Im.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new ImDataItem(values);
+        } else if (Organization.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new OrganizationDataItem(values);
+        } else if (Nickname.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new NicknameDataItem(values);
+        } else if (Note.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new NoteDataItem(values);
+        } else if (Website.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new WebsiteDataItem(values);
+        } else if (SipAddress.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new SipAddressDataItem(values);
+        } else if (Event.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new EventDataItem(values);
+        } else if (Relation.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new RelationDataItem(values);
+        } else if (Identity.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new IdentityDataItem(values);
+        } else if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            return new PhotoDataItem(values);
+        } else if (CustomDataItem.MIMETYPE_CUSTOM_FIELD.equals(mimeType)) {
+            return new CustomDataItem(values);
+        }
+
+        // generic
+        return new DataItem(values);
+    }
+
+    public ContentValues getContentValues() {
+        return mContentValues;
+    }
+
+    public void setRawContactId(long rawContactId) {
+        mContentValues.put(Data.RAW_CONTACT_ID, rawContactId);
+    }
+
+    public Long getRawContactId() {
+        return mContentValues.getAsLong(Data.RAW_CONTACT_ID);
+    }
+
+    /**
+     * Returns the data id.
+     */
+    public long getId() {
+        return mContentValues.getAsLong(Data._ID);
+    }
+
+    /**
+     * Returns the mimetype of the data.
+     */
+    public String getMimeType() {
+        return mContentValues.getAsString(Data.MIMETYPE);
+    }
+
+    public void setMimeType(String mimeType) {
+        mContentValues.put(Data.MIMETYPE, mimeType);
+    }
+
+    public boolean isPrimary() {
+        Integer primary = mContentValues.getAsInteger(Data.IS_PRIMARY);
+        return primary != null && primary != 0;
+    }
+
+    public boolean isSuperPrimary() {
+        Integer superPrimary = mContentValues.getAsInteger(Data.IS_SUPER_PRIMARY);
+        return superPrimary != null && superPrimary != 0;
+    }
+
+    public boolean hasKindTypeColumn(DataKind kind) {
+        final String key = kind.typeColumn;
+        return key != null && mContentValues.containsKey(key) &&
+            mContentValues.getAsInteger(key) != null;
+    }
+
+    public int getKindTypeColumn(DataKind kind) {
+        final String key = kind.typeColumn;
+        return mContentValues.getAsInteger(key);
+    }
+
+    /**
+     * Indicates the carrier presence value for the current {@link DataItem}.
+     *
+     * @return {@link Data#CARRIER_PRESENCE_VT_CAPABLE} if the {@link DataItem} supports carrier
+     *      video calling, {@code 0} otherwise.
+     */
+    public int getCarrierPresence() {
+        final Integer value = mContentValues.getAsInteger(Data.CARRIER_PRESENCE);
+        return value != null ? value.intValue() : 0;
+    }
+
+    /**
+     * This builds the data string depending on the type of data item by using the generic
+     * DataKind object underneath.
+     */
+    public String buildDataString(Context context, DataKind kind) {
+        if (kind.actionBody == null) {
+            return null;
+        }
+        CharSequence actionBody = kind.actionBody.inflateUsing(context, mContentValues);
+        return actionBody == null ? null : actionBody.toString();
+    }
+
+    /**
+     * This builds the data string(intended for display) depending on the type of data item. It
+     * returns the same value as {@link #buildDataString} by default, but certain data items can
+     * override it to provide their version of formatted data strings.
+     *
+     * @return Data string representing the data item, possibly formatted for display
+     */
+    public String buildDataStringForDisplay(Context context, DataKind kind) {
+        return buildDataString(context, kind);
+    }
+
+    public void setDataKind(DataKind kind) {
+        mKind = kind;
+    }
+
+    public DataKind getDataKind() {
+        return mKind;
+    }
+
+    public Integer getTimesUsed() {
+        return mContentValues.getAsInteger(Entity.TIMES_USED);
+    }
+
+    public Long getLastTimeUsed() {
+        return mContentValues.getAsLong(Entity.LAST_TIME_USED);
+    }
+
+    @Override
+    public void collapseWith(DataItem that) {
+        DataKind thisKind = getDataKind();
+        DataKind thatKind = that.getDataKind();
+        // If this does not have a type and that does, or if that's type is higher precedence,
+        // use that's type
+        if ((!hasKindTypeColumn(thisKind) && that.hasKindTypeColumn(thatKind)) ||
+                that.hasKindTypeColumn(thatKind) &&
+                RawContactModifier.getTypePrecedence(thisKind, getKindTypeColumn(thisKind))
+                >
+                RawContactModifier.getTypePrecedence(thatKind, that.getKindTypeColumn(thatKind))) {
+            mContentValues.put(thatKind.typeColumn, that.getKindTypeColumn(thatKind));
+            mKind = thatKind;
+        }
+
+        // Choose the max of the maxLines and maxLabelLines values.
+        mKind.maxLinesForDisplay = Math.max(thisKind.maxLinesForDisplay,
+                thatKind.maxLinesForDisplay);
+
+        // If any of the collapsed entries are super primary make the whole thing super primary.
+        if (isSuperPrimary() || that.isSuperPrimary()) {
+            mContentValues.put(Data.IS_SUPER_PRIMARY, 1);
+            mContentValues.put(Data.IS_PRIMARY, 1);
+        }
+
+        // If any of the collapsed entries are primary make the whole thing primary.
+        if (isPrimary() || that.isPrimary()) {
+            mContentValues.put(Data.IS_PRIMARY, 1);
+        }
+
+        // Add up the times used
+        mContentValues.put(Entity.TIMES_USED, (getTimesUsed() == null ? 0 : getTimesUsed()) +
+                (that.getTimesUsed() == null ? 0 : that.getTimesUsed()));
+
+        // Use the most recent time
+        mContentValues.put(Entity.LAST_TIME_USED,
+                Math.max(getLastTimeUsed() == null ? 0 : getLastTimeUsed(),
+                        that.getLastTimeUsed() == null ? 0 : that.getLastTimeUsed()));
+    }
+
+    @Override
+    public boolean shouldCollapseWith(DataItem t, Context context) {
+        if (mKind == null || t.getDataKind() == null) {
+            return false;
+        }
+        return MoreContactUtils.shouldCollapse(getMimeType(), buildDataString(context, mKind),
+                t.getMimeType(), t.buildDataString(context, t.getDataKind()));
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/DataKind.java b/src/com/android/contacts/model/dataitem/DataKind.java
new file mode 100644
index 0000000..f31e21c
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/DataKind.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2011 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.dataitem;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.provider.ContactsContract.Data;
+
+import com.android.contacts.model.account.AccountType.EditField;
+import com.android.contacts.model.account.AccountType.EditType;
+import com.android.contacts.model.account.AccountType.StringInflater;
+
+import com.google.common.collect.Iterators;
+
+import java.text.SimpleDateFormat;
+import java.util.List;
+
+/**
+ * Description of a specific data type, usually marked by a unique
+ * {@link Data#MIMETYPE}. Includes details about how to view and edit
+ * {@link Data} rows of this kind, including the possible {@link EditType}
+ * labels and editable {@link EditField}.
+ */
+public final class DataKind {
+
+    public static final String PSEUDO_MIME_TYPE_NAME = "#name";
+    public static final String PSEUDO_MIME_TYPE_PHONETIC_NAME = "#phoneticName";
+
+    public String resourcePackageName;
+    public String mimeType;
+    public int titleRes;
+    public int iconAltRes;
+    public int iconAltDescriptionRes;
+    public int weight;
+    public boolean editable;
+
+    public StringInflater actionHeader;
+    public StringInflater actionAltHeader;
+    public StringInflater actionBody;
+
+    public String typeColumn;
+
+    /**
+     * Maximum number of values allowed in the list. -1 represents infinity.
+     */
+    public int typeOverallMax;
+
+    public List<EditType> typeList;
+    public List<EditField> fieldList;
+
+    public ContentValues defaultValues;
+
+    /**
+     * If this is a date field, this specifies the format of the date when saving. The
+     * date includes year, month and day. If this is not a date field or the date field is not
+     * editable, this value should be ignored.
+     */
+    public SimpleDateFormat dateFormatWithoutYear;
+
+    /**
+     * If this is a date field, this specifies the format of the date when saving. The
+     * date includes month and day. If this is not a date field, the field is not editable or
+     * dates without year are not supported, this value should be ignored.
+     */
+    public SimpleDateFormat dateFormatWithYear;
+
+    /**
+     * The number of lines available for displaying this kind of data.
+     * Defaults to 1.
+     */
+    public int maxLinesForDisplay;
+
+    public DataKind() {
+        maxLinesForDisplay = 1;
+    }
+
+    public DataKind(String mimeType, int titleRes, int weight, boolean editable) {
+        this.mimeType = mimeType;
+        this.titleRes = titleRes;
+        this.weight = weight;
+        this.editable = editable;
+        this.typeOverallMax = -1;
+        maxLinesForDisplay = 1;
+    }
+
+    public String getKindString(Context context) {
+        return (titleRes == -1 || titleRes == 0) ? "" : context.getString(titleRes);
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder();
+        sb.append("DataKind:");
+        sb.append(" resPackageName=").append(resourcePackageName);
+        sb.append(" mimeType=").append(mimeType);
+        sb.append(" titleRes=").append(titleRes);
+        sb.append(" iconAltRes=").append(iconAltRes);
+        sb.append(" iconAltDescriptionRes=").append(iconAltDescriptionRes);
+        sb.append(" weight=").append(weight);
+        sb.append(" editable=").append(editable);
+        sb.append(" actionHeader=").append(actionHeader);
+        sb.append(" actionAltHeader=").append(actionAltHeader);
+        sb.append(" actionBody=").append(actionBody);
+        sb.append(" typeColumn=").append(typeColumn);
+        sb.append(" typeOverallMax=").append(typeOverallMax);
+        sb.append(" typeList=").append(toString(typeList));
+        sb.append(" fieldList=").append(toString(fieldList));
+        sb.append(" defaultValues=").append(defaultValues);
+        sb.append(" dateFormatWithoutYear=").append(toString(dateFormatWithoutYear));
+        sb.append(" dateFormatWithYear=").append(toString(dateFormatWithYear));
+
+        return sb.toString();
+    }
+
+    public static String toString(SimpleDateFormat format) {
+        return format == null ? "(null)" : format.toPattern();
+    }
+
+    public static String toString(Iterable<?> list) {
+        if (list == null) {
+            return "(null)";
+        } else {
+            return Iterators.toString(list.iterator());
+        }
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/EmailDataItem.java b/src/com/android/contacts/model/dataitem/EmailDataItem.java
new file mode 100644
index 0000000..77ad126
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/EmailDataItem.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+
+/**
+ * Represents an email data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Email}.
+ */
+public class EmailDataItem extends DataItem {
+
+    /* package */ EmailDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getAddress() {
+        return getContentValues().getAsString(Email.ADDRESS);
+    }
+
+    public String getDisplayName() {
+        return getContentValues().getAsString(Email.DISPLAY_NAME);
+    }
+
+    public String getData() {
+        return getContentValues().getAsString(Email.DATA);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(Email.LABEL);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/EventDataItem.java b/src/com/android/contacts/model/dataitem/EventDataItem.java
new file mode 100644
index 0000000..ad61dae
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/EventDataItem.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.text.TextUtils;
+
+/**
+ * Represents an event data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Event}.
+ */
+public class EventDataItem extends DataItem {
+
+    /* package */ EventDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getStartDate() {
+        return getContentValues().getAsString(Event.START_DATE);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(Event.LABEL);
+    }
+
+    @Override
+    public boolean shouldCollapseWith(DataItem t, Context context) {
+        if (!(t instanceof EventDataItem) || mKind == null || t.getDataKind() == null) {
+            return false;
+        }
+        final EventDataItem that = (EventDataItem) t;
+        // Events can be different (anniversary, birthday) but have the same start date
+        if (!TextUtils.equals(getStartDate(), that.getStartDate())) {
+            return false;
+        } else if (!hasKindTypeColumn(mKind) || !that.hasKindTypeColumn(that.getDataKind())) {
+            return hasKindTypeColumn(mKind) == that.hasKindTypeColumn(that.getDataKind());
+        } else if (getKindTypeColumn(mKind) != that.getKindTypeColumn(that.getDataKind())) {
+            return false;
+        } else if (getKindTypeColumn(mKind) == Event.TYPE_CUSTOM &&
+                !TextUtils.equals(getLabel(), that.getLabel())) {
+            // Check if custom types are not the same
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/GroupMembershipDataItem.java b/src/com/android/contacts/model/dataitem/GroupMembershipDataItem.java
new file mode 100644
index 0000000..00558d0
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/GroupMembershipDataItem.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+
+/**
+ * Represents a group memebership data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.GroupMembership}.
+ */
+public class GroupMembershipDataItem extends DataItem {
+
+    /* package */ GroupMembershipDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public Long getGroupRowId() {
+        return getContentValues().getAsLong(GroupMembership.GROUP_ROW_ID);
+    }
+
+    public String getGroupSourceId() {
+        return getContentValues().getAsString(GroupMembership.GROUP_SOURCE_ID);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/IdentityDataItem.java b/src/com/android/contacts/model/dataitem/IdentityDataItem.java
new file mode 100644
index 0000000..045867a
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/IdentityDataItem.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Identity;
+
+/**
+ * Represents an identity data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Identity}.
+ */
+public class IdentityDataItem extends DataItem {
+
+    /* package */ IdentityDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getIdentity() {
+        return getContentValues().getAsString(Identity.IDENTITY);
+    }
+
+    public String getNamespace() {
+        return getContentValues().getAsString(Identity.NAMESPACE);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/ImDataItem.java b/src/com/android/contacts/model/dataitem/ImDataItem.java
new file mode 100644
index 0000000..a0e087c
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/ImDataItem.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.text.TextUtils;
+
+/**
+ * Represents an IM data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Im}.
+ */
+public class ImDataItem extends DataItem {
+
+    private final boolean mCreatedFromEmail;
+
+    /* package */ ImDataItem(ContentValues values) {
+        super(values);
+        mCreatedFromEmail = false;
+    }
+
+    private ImDataItem(ContentValues values, boolean createdFromEmail) {
+        super(values);
+        mCreatedFromEmail = createdFromEmail;
+    }
+
+    public static ImDataItem createFromEmail(EmailDataItem item) {
+        final ImDataItem im = new ImDataItem(new ContentValues(item.getContentValues()), true);
+        im.setMimeType(Im.CONTENT_ITEM_TYPE);
+        return im;
+    }
+
+    public String getData() {
+        if (mCreatedFromEmail) {
+            return getContentValues().getAsString(Email.DATA);
+        } else {
+            return getContentValues().getAsString(Im.DATA);
+        }
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(Im.LABEL);
+    }
+
+    /**
+     * Values are one of Im.PROTOCOL_
+     */
+    public Integer getProtocol() {
+        return getContentValues().getAsInteger(Im.PROTOCOL);
+    }
+
+    public boolean isProtocolValid() {
+        return getProtocol() != null;
+    }
+
+    public String getCustomProtocol() {
+        return getContentValues().getAsString(Im.CUSTOM_PROTOCOL);
+    }
+
+    public int getChatCapability() {
+        Integer result = getContentValues().getAsInteger(Im.CHAT_CAPABILITY);
+        return result == null ? 0 : result;
+    }
+
+    public boolean isCreatedFromEmail() {
+        return mCreatedFromEmail;
+    }
+
+    @Override
+    public boolean shouldCollapseWith(DataItem t, Context context) {
+        if (!(t instanceof ImDataItem) || mKind == null || t.getDataKind() == null) {
+            return false;
+        }
+        final ImDataItem that = (ImDataItem) t;
+        // IM can have the same data put different protocol. These should not collapse.
+        if (!getData().equals(that.getData())) {
+            return false;
+        } else if (!isProtocolValid() || !that.isProtocolValid()) {
+            // Deal with invalid protocol as if it was custom. If either has a non valid
+            // protocol, check to see if the other has a valid that is not custom
+            if (isProtocolValid()) {
+                return getProtocol() == Im.PROTOCOL_CUSTOM;
+            } else if (that.isProtocolValid()) {
+                return that.getProtocol() == Im.PROTOCOL_CUSTOM;
+            }
+            return true;
+        } else if (getProtocol() != that.getProtocol()) {
+            return false;
+        } else if (getProtocol() == Im.PROTOCOL_CUSTOM &&
+                !TextUtils.equals(getCustomProtocol(), that.getCustomProtocol())) {
+            // Check if custom protocols are not the same
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/NicknameDataItem.java b/src/com/android/contacts/model/dataitem/NicknameDataItem.java
new file mode 100644
index 0000000..2d44751
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/NicknameDataItem.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+
+/**
+ * Represents a nickname data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Nickname}.
+ */
+public class NicknameDataItem extends DataItem {
+
+    public NicknameDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getName() {
+        return getContentValues().getAsString(Nickname.NAME);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(Nickname.LABEL);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/NoteDataItem.java b/src/com/android/contacts/model/dataitem/NoteDataItem.java
new file mode 100644
index 0000000..9a572cb
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/NoteDataItem.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+
+/**
+ * Represents a note data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Note}.
+ */
+public class NoteDataItem extends DataItem {
+
+    /* package */ NoteDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getNote() {
+        return getContentValues().getAsString(Note.NOTE);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/OrganizationDataItem.java b/src/com/android/contacts/model/dataitem/OrganizationDataItem.java
new file mode 100644
index 0000000..8c2a0c8
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/OrganizationDataItem.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+
+/**
+ * Represents an organization data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Organization}.
+ */
+public class OrganizationDataItem extends DataItem {
+
+    /* package */ OrganizationDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getCompany() {
+        return getContentValues().getAsString(Organization.COMPANY);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(Organization.LABEL);
+    }
+
+    public String getTitle() {
+        return getContentValues().getAsString(Organization.TITLE);
+    }
+
+    public String getDepartment() {
+        return getContentValues().getAsString(Organization.DEPARTMENT);
+    }
+
+    public String getJobDescription() {
+        return getContentValues().getAsString(Organization.JOB_DESCRIPTION);
+    }
+
+    public String getSymbol() {
+        return getContentValues().getAsString(Organization.SYMBOL);
+    }
+
+    public String getPhoneticName() {
+        return getContentValues().getAsString(Organization.PHONETIC_NAME);
+    }
+
+    public String getOfficeLocation() {
+        return getContentValues().getAsString(Organization.OFFICE_LOCATION);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/PhoneDataItem.java b/src/com/android/contacts/model/dataitem/PhoneDataItem.java
new file mode 100644
index 0000000..8d6cf8e
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/PhoneDataItem.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+
+/**
+ * Represents a phone data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Phone}.
+ */
+public class PhoneDataItem extends DataItem {
+
+    public static final String KEY_FORMATTED_PHONE_NUMBER = "formattedPhoneNumber";
+
+    /* package */ PhoneDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getNumber() {
+        return getContentValues().getAsString(Phone.NUMBER);
+    }
+
+    /**
+     * Returns the normalized phone number in E164 format.
+     */
+    public String getNormalizedNumber() {
+        return getContentValues().getAsString(Phone.NORMALIZED_NUMBER);
+    }
+
+    public String getFormattedPhoneNumber() {
+        return getContentValues().getAsString(KEY_FORMATTED_PHONE_NUMBER);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(Phone.LABEL);
+    }
+
+    public void computeFormattedPhoneNumber(String defaultCountryIso) {
+        final String phoneNumber = getNumber();
+        if (phoneNumber != null) {
+            final String formattedPhoneNumber = PhoneNumberUtilsCompat.formatNumber(phoneNumber,
+                    getNormalizedNumber(), defaultCountryIso);
+            getContentValues().put(KEY_FORMATTED_PHONE_NUMBER, formattedPhoneNumber);
+        }
+    }
+
+    /**
+     * Returns the formatted phone number (if already computed using {@link
+     * #computeFormattedPhoneNumber}). Otherwise this method returns the unformatted phone number.
+     */
+    @Override
+    public String buildDataStringForDisplay(Context context, DataKind kind) {
+        final String formatted = getFormattedPhoneNumber();
+        if (formatted != null) {
+            return formatted;
+        } else {
+            return getNumber();
+        }
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/PhotoDataItem.java b/src/com/android/contacts/model/dataitem/PhotoDataItem.java
new file mode 100644
index 0000000..2ba13fb
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/PhotoDataItem.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts.Photo;
+
+/**
+ * Represents a photo data item, wrapping the columns in
+ * {@link ContactsContract.Contacts.Photo}.
+ */
+public class PhotoDataItem extends DataItem {
+
+    /* package */ PhotoDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public Long getPhotoFileId() {
+        return getContentValues().getAsLong(Photo.PHOTO_FILE_ID);
+    }
+
+    public byte[] getPhoto() {
+        return getContentValues().getAsByteArray(Photo.PHOTO);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/RelationDataItem.java b/src/com/android/contacts/model/dataitem/RelationDataItem.java
new file mode 100644
index 0000000..e08ba4e
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/RelationDataItem.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Relation;
+import android.text.TextUtils;
+
+/**
+ * Represents a relation data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Relation}.
+ */
+public class RelationDataItem extends DataItem {
+
+    /* package */ RelationDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getName() {
+        return getContentValues().getAsString(Relation.NAME);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(Relation.LABEL);
+    }
+
+    @Override
+    public boolean shouldCollapseWith(DataItem t, Context context) {
+        if (!(t instanceof RelationDataItem) || mKind == null || t.getDataKind() == null) {
+            return false;
+        }
+        final RelationDataItem that = (RelationDataItem) t;
+        // Relations can have different types (assistant, father) but have the same name
+        if (!TextUtils.equals(getName(), that.getName())) {
+            return false;
+        } else if (!hasKindTypeColumn(mKind) || !that.hasKindTypeColumn(that.getDataKind())) {
+            return hasKindTypeColumn(mKind) == that.hasKindTypeColumn(that.getDataKind());
+        } else if (getKindTypeColumn(mKind) != that.getKindTypeColumn(that.getDataKind())) {
+            return false;
+        } else if (getKindTypeColumn(mKind) == Relation.TYPE_CUSTOM &&
+                !TextUtils.equals(getLabel(), that.getLabel())) {
+            // Check if custom types are not the same
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/SipAddressDataItem.java b/src/com/android/contacts/model/dataitem/SipAddressDataItem.java
new file mode 100644
index 0000000..45ebeee
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/SipAddressDataItem.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+
+/**
+ * Represents a sip address data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.SipAddress}.
+ */
+public class SipAddressDataItem extends DataItem {
+
+    /* package */ SipAddressDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getSipAddress() {
+        return getContentValues().getAsString(SipAddress.SIP_ADDRESS);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(SipAddress.LABEL);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/StructuredNameDataItem.java b/src/com/android/contacts/model/dataitem/StructuredNameDataItem.java
new file mode 100644
index 0000000..4b69163
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/StructuredNameDataItem.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.Contacts.Data;
+
+/**
+ * Represents a structured name data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.StructuredName}.
+ */
+public class StructuredNameDataItem extends DataItem {
+
+    public StructuredNameDataItem() {
+        super(new ContentValues());
+        getContentValues().put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
+    }
+
+    /* package */ StructuredNameDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getDisplayName() {
+        return getContentValues().getAsString(StructuredName.DISPLAY_NAME);
+    }
+
+    public void setDisplayName(String name) {
+        getContentValues().put(StructuredName.DISPLAY_NAME, name);
+    }
+
+    public String getGivenName() {
+        return getContentValues().getAsString(StructuredName.GIVEN_NAME);
+    }
+
+    public String getFamilyName() {
+        return getContentValues().getAsString(StructuredName.FAMILY_NAME);
+    }
+
+    public String getPrefix() {
+        return getContentValues().getAsString(StructuredName.PREFIX);
+    }
+
+    public String getMiddleName() {
+        return getContentValues().getAsString(StructuredName.MIDDLE_NAME);
+    }
+
+    public String getSuffix() {
+        return getContentValues().getAsString(StructuredName.SUFFIX);
+    }
+
+    public String getPhoneticGivenName() {
+        return getContentValues().getAsString(StructuredName.PHONETIC_GIVEN_NAME);
+    }
+
+    public String getPhoneticMiddleName() {
+        return getContentValues().getAsString(StructuredName.PHONETIC_MIDDLE_NAME);
+    }
+
+    public String getPhoneticFamilyName() {
+        return getContentValues().getAsString(StructuredName.PHONETIC_FAMILY_NAME);
+    }
+
+    public String getFullNameStyle() {
+        return getContentValues().getAsString(StructuredName.FULL_NAME_STYLE);
+    }
+
+    public void setPhoneticFamilyName(String name) {
+        getContentValues().put(StructuredName.PHONETIC_FAMILY_NAME, name);
+    }
+
+    public void setPhoneticMiddleName(String name) {
+        getContentValues().put(StructuredName.PHONETIC_MIDDLE_NAME, name);
+    }
+
+    public void setPhoneticGivenName(String name) {
+        getContentValues().put(StructuredName.PHONETIC_GIVEN_NAME, name);
+    }
+
+    public boolean isSuperPrimary() {
+        final ContentValues contentValues = getContentValues();
+        return contentValues == null || !contentValues.containsKey(StructuredName.IS_SUPER_PRIMARY)
+                ? false : contentValues.getAsBoolean(StructuredName.IS_SUPER_PRIMARY);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/StructuredPostalDataItem.java b/src/com/android/contacts/model/dataitem/StructuredPostalDataItem.java
new file mode 100644
index 0000000..cf46c07
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/StructuredPostalDataItem.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+
+/**
+ * Represents a structured postal data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.StructuredPostal}.
+ */
+public class StructuredPostalDataItem extends DataItem {
+
+    /* package */ StructuredPostalDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getFormattedAddress() {
+        return getContentValues().getAsString(StructuredPostal.FORMATTED_ADDRESS);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(StructuredPostal.LABEL);
+    }
+
+    public String getStreet() {
+        return getContentValues().getAsString(StructuredPostal.STREET);
+    }
+
+    public String getPOBox() {
+        return getContentValues().getAsString(StructuredPostal.POBOX);
+    }
+
+    public String getNeighborhood() {
+        return getContentValues().getAsString(StructuredPostal.NEIGHBORHOOD);
+    }
+
+    public String getCity() {
+        return getContentValues().getAsString(StructuredPostal.CITY);
+    }
+
+    public String getRegion() {
+        return getContentValues().getAsString(StructuredPostal.REGION);
+    }
+
+    public String getPostcode() {
+        return getContentValues().getAsString(StructuredPostal.POSTCODE);
+    }
+
+    public String getCountry() {
+        return getContentValues().getAsString(StructuredPostal.COUNTRY);
+    }
+}
diff --git a/src/com/android/contacts/model/dataitem/WebsiteDataItem.java b/src/com/android/contacts/model/dataitem/WebsiteDataItem.java
new file mode 100644
index 0000000..4439be7
--- /dev/null
+++ b/src/com/android/contacts/model/dataitem/WebsiteDataItem.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+
+/**
+ * Represents a website data item, wrapping the columns in
+ * {@link ContactsContract.CommonDataKinds.Website}.
+ */
+public class WebsiteDataItem extends DataItem {
+
+    /* package */ WebsiteDataItem(ContentValues values) {
+        super(values);
+    }
+
+    public String getUrl() {
+        return getContentValues().getAsString(Website.URL);
+    }
+
+    public String getLabel() {
+        return getContentValues().getAsString(Website.LABEL);
+    }
+}
diff --git a/src/com/android/contacts/preference/AboutPreferenceFragment.java b/src/com/android/contacts/preference/AboutPreferenceFragment.java
new file mode 100644
index 0000000..3789480
--- /dev/null
+++ b/src/com/android/contacts/preference/AboutPreferenceFragment.java
@@ -0,0 +1,104 @@
+/*
+ * 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.preference;
+
+import android.content.ActivityNotFoundException;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.widget.Toast;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.LicenseActivity;
+
+/**
+ * This fragment shows the preferences for "about".
+ */
+public class AboutPreferenceFragment extends PreferenceFragment {
+
+    public static final String PRIVACY_POLICY_URL = "http://www.google.com/policies/privacy";
+    public static final String TERMS_OF_SERVICE_URL = "http://www.google.com/policies/terms";
+
+    public static AboutPreferenceFragment newInstance() {
+        return new AboutPreferenceFragment();
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        // Load the preferences from an XML resource
+        addPreferencesFromResource(R.xml.preference_about);
+
+        // Set build version of Contacts App.
+        final PackageManager manager = getActivity().getPackageManager();
+        try {
+            final PackageInfo info = manager.getPackageInfo(getActivity().getPackageName(), 0);
+            final Preference versionPreference = findPreference(
+                    getString(R.string.pref_build_version_key));
+            versionPreference.setSummary(info.versionName);
+        } catch (PackageManager.NameNotFoundException e) {
+            // Nothing
+        }
+
+        final Preference licensePreference = findPreference(
+                getString(R.string.pref_open_source_licenses_key));
+        licensePreference.setIntent(new Intent(getActivity(), LicenseActivity.class));
+
+        final Preference privacyPolicyPreference = findPreference("pref_privacy_policy");
+        final Preference termsOfServicePreference = findPreference("pref_terms_of_service");
+
+        final Preference.OnPreferenceClickListener listener =
+                new Preference.OnPreferenceClickListener() {
+            @Override
+            public boolean onPreferenceClick(Preference preference) {
+                try {
+                    if (preference == privacyPolicyPreference) {
+                        startActivityForUrl(PRIVACY_POLICY_URL);
+                    } else if (preference == termsOfServicePreference) {
+                        startActivityForUrl(TERMS_OF_SERVICE_URL);
+                    }
+                } catch (ActivityNotFoundException ex) {
+                    Toast.makeText(getContext(), getString(R.string.url_open_error_toast),
+                            Toast.LENGTH_SHORT).show();
+                }
+                return true;
+            }
+        };
+
+        privacyPolicyPreference.setOnPreferenceClickListener(listener);
+        termsOfServicePreference.setOnPreferenceClickListener(listener);
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+
+    private void startActivityForUrl(String urlString) {
+        final Intent intent = new Intent();
+        intent.setAction(Intent.ACTION_VIEW);
+        intent.setData(Uri.parse(urlString));
+        startActivity(intent);
+    }
+}
+
diff --git a/src/com/android/contacts/preference/ContactsPreferenceActivity.java b/src/com/android/contacts/preference/ContactsPreferenceActivity.java
new file mode 100644
index 0000000..2d83bf1
--- /dev/null
+++ b/src/com/android/contacts/preference/ContactsPreferenceActivity.java
@@ -0,0 +1,227 @@
+/*
+ * Copyright (C) 2009 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.preference;
+
+import android.content.res.Configuration;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+import android.provider.ContactsContract.ProviderStatus;
+import android.support.annotation.LayoutRes;
+import android.support.annotation.NonNull;
+import android.support.annotation.StringRes;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatDelegate;
+import android.support.v7.widget.Toolbar;
+import android.text.TextUtils;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+import com.android.contacts.editor.SelectAccountDialogFragment;
+import com.android.contacts.interactions.ImportDialogFragment;
+import com.android.contacts.list.ProviderStatusWatcher;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.preference.DisplayOptionsPreferenceFragment.ProfileListener;
+import com.android.contacts.preference.DisplayOptionsPreferenceFragment.ProfileQuery;
+import com.android.contacts.util.AccountSelectionUtil;
+
+/**
+ * Contacts settings.
+ */
+public final class ContactsPreferenceActivity extends PreferenceActivity
+        implements ProfileListener, SelectAccountDialogFragment.Listener {
+
+    private static final String TAG_ABOUT = "about_contacts";
+    private static final String TAG_DISPLAY_OPTIONS = "display_options";
+
+    private String mNewLocalProfileExtra;
+    private boolean mAreContactsAvailable;
+
+    private ProviderStatusWatcher mProviderStatusWatcher;
+
+    private AppCompatDelegate mCompatDelegate;
+
+    public static final String EXTRA_NEW_LOCAL_PROFILE = "newLocalProfile";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        mCompatDelegate = AppCompatDelegate.create(this, null);
+
+        super.onCreate(savedInstanceState);
+        mCompatDelegate.onCreate(savedInstanceState);
+
+
+        final ActionBar actionBar = mCompatDelegate.getSupportActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);
+        }
+
+        mProviderStatusWatcher = ProviderStatusWatcher.getInstance(this);
+
+        mNewLocalProfileExtra = getIntent().getStringExtra(EXTRA_NEW_LOCAL_PROFILE);
+        final int providerStatus = mProviderStatusWatcher.getProviderStatus();
+        mAreContactsAvailable = providerStatus == ProviderStatus.STATUS_NORMAL;
+
+        if (savedInstanceState == null) {
+            final DisplayOptionsPreferenceFragment fragment = DisplayOptionsPreferenceFragment
+                    .newInstance(mNewLocalProfileExtra, mAreContactsAvailable);
+            getFragmentManager().beginTransaction()
+                    .replace(android.R.id.content, fragment, TAG_DISPLAY_OPTIONS)
+                    .commit();
+            setActivityTitle(R.string.activity_title_settings);
+        } else {
+            final AboutPreferenceFragment aboutFragment = (AboutPreferenceFragment)
+                    getFragmentManager().findFragmentByTag(TAG_ABOUT);
+
+            if (aboutFragment != null) {
+                setActivityTitle(R.string.setting_about);
+            } else {
+                setActivityTitle(R.string.activity_title_settings);
+            }
+        }
+    }
+
+    @Override
+    protected void onPostCreate(Bundle savedInstanceState) {
+        super.onPostCreate(savedInstanceState);
+        mCompatDelegate.onPostCreate(savedInstanceState);
+    }
+
+    public void setSupportActionBar(Toolbar toolbar) {
+        mCompatDelegate.setSupportActionBar(toolbar);
+    }
+
+    @NonNull
+    @Override
+    public MenuInflater getMenuInflater() {
+        return mCompatDelegate.getMenuInflater();
+    }
+
+    @Override
+    public void setContentView(@LayoutRes int layoutRes) {
+        mCompatDelegate.setContentView(layoutRes);
+    }
+
+    @Override
+    public void setContentView(View view) {
+        mCompatDelegate.setContentView(view);
+    }
+
+    @Override
+    public void setContentView(View view, ViewGroup.LayoutParams params) {
+        mCompatDelegate.setContentView(view, params);
+    }
+
+    @Override
+    public void addContentView(View view, ViewGroup.LayoutParams params) {
+        mCompatDelegate.addContentView(view, params);
+    }
+
+    @Override
+    protected void onPostResume() {
+        super.onPostResume();
+        mCompatDelegate.onPostResume();
+    }
+
+    @Override
+    protected void onTitleChanged(CharSequence title, int color) {
+        super.onTitleChanged(title, color);
+        mCompatDelegate.setTitle(title);
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        mCompatDelegate.onConfigurationChanged(newConfig);
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        mCompatDelegate.onDestroy();
+    }
+
+    @Override
+    public void invalidateOptionsMenu() {
+        mCompatDelegate.invalidateOptionsMenu();
+    }
+
+    protected void showAboutFragment() {
+        getFragmentManager().beginTransaction()
+                .replace(android.R.id.content, AboutPreferenceFragment.newInstance(), TAG_ABOUT)
+                .addToBackStack(null)
+                .commit();
+        setActivityTitle(R.string.setting_about);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            onBackPressed();
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (getFragmentManager().getBackStackEntryCount() > 0) {
+            setActivityTitle(R.string.activity_title_settings);
+            getFragmentManager().popBackStack();
+        } else {
+            super.onBackPressed();
+        }
+    }
+
+    private void setActivityTitle(@StringRes int res) {
+        final ActionBar actionBar = mCompatDelegate.getSupportActionBar();
+        if (actionBar != null) {
+            actionBar.setTitle(res);
+        }
+    }
+
+    @Override
+    public void onProfileLoaded(Cursor cursor) {
+        boolean hasProfile = false;
+        String displayName = null;
+        long contactId = -1;
+        if (cursor != null && cursor.moveToFirst()) {
+            hasProfile = cursor.getInt(ProfileQuery.CONTACT_IS_USER_PROFILE) == 1;
+            displayName = cursor.getString(ProfileQuery.CONTACT_DISPLAY_NAME);
+            contactId = cursor.getLong(ProfileQuery.CONTACT_ID);
+        }
+        if (hasProfile && TextUtils.isEmpty(displayName)) {
+            displayName = getString(R.string.missing_name);
+        }
+        final DisplayOptionsPreferenceFragment fragment = (DisplayOptionsPreferenceFragment)
+                getFragmentManager().findFragmentByTag(TAG_DISPLAY_OPTIONS);
+        fragment.updateMyInfoPreference(hasProfile, displayName, contactId);
+    }
+
+    @Override
+    public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
+        AccountSelectionUtil.doImport(this, extraArgs.getInt(ImportDialogFragment
+                .KEY_RES_ID), account, extraArgs.getInt(ImportDialogFragment.KEY_SUBSCRIPTION_ID));
+    }
+
+    @Override
+    public void onAccountSelectorCancelled() {
+    }
+}
diff --git a/src/com/android/contacts/preference/ContactsPreferences.java b/src/com/android/contacts/preference/ContactsPreferences.java
new file mode 100644
index 0000000..87b13f7
--- /dev/null
+++ b/src/com/android/contacts/preference/ContactsPreferences.java
@@ -0,0 +1,395 @@
+/*
+ * Copyright (C) 2010 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.preference;
+
+import android.app.backup.BackupAgent;
+import android.app.backup.BackupManager;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.os.Handler;
+import android.os.Looper;
+import android.preference.PreferenceManager;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
+import android.support.annotation.NonNull;
+import android.support.annotation.VisibleForTesting;
+import android.text.TextUtils;
+
+import com.android.contacts.R;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import java.util.List;
+
+/**
+ * Manages user preferences for contacts.
+ */
+public class ContactsPreferences implements OnSharedPreferenceChangeListener {
+
+    /**
+     * The value for the DISPLAY_ORDER key to show the given name first.
+     */
+    public static final int DISPLAY_ORDER_PRIMARY = 1;
+
+    /**
+     * The value for the DISPLAY_ORDER key to show the family name first.
+     */
+    public static final int DISPLAY_ORDER_ALTERNATIVE = 2;
+
+    public static final String DISPLAY_ORDER_KEY = "android.contacts.DISPLAY_ORDER";
+
+    /**
+     * The value for the SORT_ORDER key corresponding to sort by given name first.
+     */
+    public static final int SORT_ORDER_PRIMARY = 1;
+
+    public static final String SORT_ORDER_KEY = "android.contacts.SORT_ORDER";
+
+    /**
+     * The value for the SORT_ORDER key corresponding to sort by family name first.
+     */
+    public static final int SORT_ORDER_ALTERNATIVE = 2;
+
+    public static final String PREF_DISPLAY_ONLY_PHONES = "only_phones";
+
+    public static final boolean PREF_DISPLAY_ONLY_PHONES_DEFAULT = false;
+
+    public static final String PHONETIC_NAME_DISPLAY_KEY = "Phonetic_name_display";
+
+    /**
+     * Value to use when a preference is unassigned and needs to be read from the shared preferences
+     */
+    private static final int PREFERENCE_UNASSIGNED = -1;
+
+    private final Context mContext;
+    private int mSortOrder = PREFERENCE_UNASSIGNED;
+    private int mDisplayOrder = PREFERENCE_UNASSIGNED;
+    private int mPhoneticNameDisplayPreference = PREFERENCE_UNASSIGNED;
+
+    private AccountWithDataSet mDefaultAccount = null;
+    private ChangeListener mListener = null;
+    private Handler mHandler;
+    private final SharedPreferences mPreferences;
+    private final BackupManager mBackupManager;
+    private final boolean mIsDefaultAccountUserChangeable;
+    private String mDefaultAccountKey;
+
+    public ContactsPreferences(Context context) {
+        this(context,
+                context.getResources().getBoolean(R.bool.config_default_account_user_changeable));
+    }
+
+    @VisibleForTesting
+    ContactsPreferences(Context context, boolean isDefaultAccountUserChangeable) {
+        mContext = context;
+        mIsDefaultAccountUserChangeable = isDefaultAccountUserChangeable;
+
+        mBackupManager = new BackupManager(mContext);
+
+        mHandler = new Handler(Looper.getMainLooper());
+        mPreferences = mContext.getSharedPreferences(context.getPackageName(),
+                Context.MODE_PRIVATE);
+        mDefaultAccountKey = mContext.getResources().getString(
+                R.string.contact_editor_default_account_key);
+        maybeMigrateSystemSettings();
+    }
+
+    public boolean isSortOrderUserChangeable() {
+        return mContext.getResources().getBoolean(R.bool.config_sort_order_user_changeable);
+    }
+
+    public int getDefaultSortOrder() {
+        if (mContext.getResources().getBoolean(R.bool.config_default_sort_order_primary)) {
+            return SORT_ORDER_PRIMARY;
+        } else {
+            return SORT_ORDER_ALTERNATIVE;
+        }
+    }
+
+    public int getSortOrder() {
+        if (!isSortOrderUserChangeable()) {
+            return getDefaultSortOrder();
+        }
+        if (mSortOrder == PREFERENCE_UNASSIGNED) {
+            mSortOrder = mPreferences.getInt(SORT_ORDER_KEY, getDefaultSortOrder());
+        }
+        return mSortOrder;
+    }
+
+    public void setSortOrder(int sortOrder) {
+        mSortOrder = sortOrder;
+        final Editor editor = mPreferences.edit();
+        editor.putInt(SORT_ORDER_KEY, sortOrder);
+        editor.commit();
+        mBackupManager.dataChanged();
+    }
+
+    public boolean isDisplayOrderUserChangeable() {
+        return mContext.getResources().getBoolean(R.bool.config_display_order_user_changeable);
+    }
+
+    public int getDefaultDisplayOrder() {
+        if (mContext.getResources().getBoolean(R.bool.config_default_display_order_primary)) {
+            return DISPLAY_ORDER_PRIMARY;
+        } else {
+            return DISPLAY_ORDER_ALTERNATIVE;
+        }
+    }
+
+    public int getDisplayOrder() {
+        if (!isDisplayOrderUserChangeable()) {
+            return getDefaultDisplayOrder();
+        }
+        if (mDisplayOrder == PREFERENCE_UNASSIGNED) {
+            mDisplayOrder = mPreferences.getInt(DISPLAY_ORDER_KEY, getDefaultDisplayOrder());
+        }
+        return mDisplayOrder;
+    }
+
+    public void setDisplayOrder(int displayOrder) {
+        mDisplayOrder = displayOrder;
+        final Editor editor = mPreferences.edit();
+        editor.putInt(DISPLAY_ORDER_KEY, displayOrder);
+        editor.commit();
+        mBackupManager.dataChanged();
+    }
+
+    public int getDefaultPhoneticNameDisplayPreference() {
+        if (mContext.getResources().getBoolean(R.bool.config_default_hide_phonetic_name_if_empty)) {
+            return PhoneticNameDisplayPreference.HIDE_IF_EMPTY;
+        } else {
+            return PhoneticNameDisplayPreference.SHOW_ALWAYS;
+        }
+    }
+
+    public boolean isPhoneticNameDisplayPreferenceChangeable() {
+        return mContext.getResources().getBoolean(
+                R.bool.config_phonetic_name_display_user_changeable);
+    }
+
+    public void setPhoneticNameDisplayPreference(int phoneticNameDisplayPreference) {
+        mPhoneticNameDisplayPreference = phoneticNameDisplayPreference;
+        final Editor editor = mPreferences.edit();
+        editor.putInt(PHONETIC_NAME_DISPLAY_KEY, phoneticNameDisplayPreference);
+        editor.commit();
+        mBackupManager.dataChanged();
+    }
+
+    public int getPhoneticNameDisplayPreference() {
+        if (!isPhoneticNameDisplayPreferenceChangeable()) {
+            return getDefaultPhoneticNameDisplayPreference();
+        }
+        if (mPhoneticNameDisplayPreference == PREFERENCE_UNASSIGNED) {
+            mPhoneticNameDisplayPreference = mPreferences.getInt(PHONETIC_NAME_DISPLAY_KEY,
+                    getDefaultPhoneticNameDisplayPreference());
+        }
+        return mPhoneticNameDisplayPreference;
+    }
+
+    public boolean shouldHidePhoneticNamesIfEmpty() {
+        return getPhoneticNameDisplayPreference() == PhoneticNameDisplayPreference.HIDE_IF_EMPTY;
+    }
+
+    public boolean isDefaultAccountUserChangeable() {
+        return mIsDefaultAccountUserChangeable;
+    }
+
+    public AccountWithDataSet getDefaultAccount() {
+        if (!isDefaultAccountUserChangeable()) {
+            return mDefaultAccount;
+        }
+        if (mDefaultAccount == null) {
+            final String accountString = mPreferences
+                    .getString(mDefaultAccountKey, null);
+            if (!TextUtils.isEmpty(accountString)) {
+                mDefaultAccount = AccountWithDataSet.unstringify(accountString);
+            }
+        }
+        return mDefaultAccount;
+    }
+
+    public void clearDefaultAccount() {
+        mDefaultAccount = null;
+        mPreferences.edit().remove(mDefaultAccountKey).commit();
+    }
+
+    public void setDefaultAccount(@NonNull AccountWithDataSet accountWithDataSet) {
+        if (accountWithDataSet == null) {
+            throw new IllegalArgumentException(
+                    "argument should not be null");
+        }
+        mDefaultAccount = accountWithDataSet;
+        mPreferences.edit().putString(mDefaultAccountKey, accountWithDataSet.stringify()).commit();
+    }
+
+    public boolean isDefaultAccountSet() {
+        return mDefaultAccount != null || mPreferences.contains(mDefaultAccountKey);
+    }
+
+    /**
+     * @return false if there is only one writable account or no requirement to return true is met.
+     *         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)
+     *
+     * 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
+     * exists, or {@code null} which should be interpreted as "local only".)
+     */
+    public boolean shouldShowAccountChangedNotification(List<AccountWithDataSet>
+            currentWritableAccounts) {
+        final AccountWithDataSet defaultAccount = getDefaultAccount();
+
+        // 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();
+        }
+
+        if (currentWritableAccounts.size() == 1
+                && !currentWritableAccounts.get(0).isNullAccount()) {
+            return false;
+        }
+
+        if (defaultAccount == null) {
+            return true;
+        }
+
+        if (!currentWritableAccounts.contains(defaultAccount)) {
+            return true;
+        }
+
+        // All good.
+        return false;
+    }
+
+    public void registerChangeListener(ChangeListener listener) {
+        if (mListener != null) unregisterChangeListener();
+
+        mListener = listener;
+
+        // Reset preferences to "unknown" because they may have changed while the
+        // listener was unregistered.
+        mDisplayOrder = PREFERENCE_UNASSIGNED;
+        mSortOrder = PREFERENCE_UNASSIGNED;
+        mPhoneticNameDisplayPreference = PREFERENCE_UNASSIGNED;
+        mDefaultAccount = null;
+
+        mPreferences.registerOnSharedPreferenceChangeListener(this);
+    }
+
+    public void unregisterChangeListener() {
+        if (mListener != null) {
+            mListener = null;
+        }
+
+        mPreferences.unregisterOnSharedPreferenceChangeListener(this);
+    }
+
+    @Override
+    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, final String key) {
+        // This notification is not sent on the Ui thread. Use the previously created Handler
+        // to switch to the Ui thread
+        mHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                refreshValue(key);
+            }
+        });
+    }
+
+    /**
+     * Forces the value for the given key to be looked up from shared preferences and notifies
+     * the registered {@link ChangeListener}
+     *
+     * @param key the {@link SharedPreferences} key to look up
+     */
+    public void refreshValue(String key) {
+        if (DISPLAY_ORDER_KEY.equals(key)) {
+            mDisplayOrder = PREFERENCE_UNASSIGNED;
+            mDisplayOrder = getDisplayOrder();
+        } else if (SORT_ORDER_KEY.equals(key)) {
+            mSortOrder = PREFERENCE_UNASSIGNED;
+            mSortOrder = getSortOrder();
+        } else if (PHONETIC_NAME_DISPLAY_KEY.equals(key)) {
+            mPhoneticNameDisplayPreference = PREFERENCE_UNASSIGNED;
+            mPhoneticNameDisplayPreference = getPhoneticNameDisplayPreference();
+        } else if (mDefaultAccountKey.equals(key)) {
+            mDefaultAccount = null;
+            mDefaultAccount = getDefaultAccount();
+        }
+        if (mListener != null) mListener.onChange();
+    }
+
+    public interface ChangeListener {
+        void onChange();
+    }
+
+    /**
+     * If there are currently no preferences (which means this is the first time we are run),
+     * For sort order and display order, check to see if there are any preferences stored in
+     * system settings (pre-L) which can be copied into our own SharedPreferences.
+     * For default account setting, check to see if there are any preferences stored in the previous
+     * SharedPreferences which can be copied into current SharedPreferences.
+     */
+    private void maybeMigrateSystemSettings() {
+        if (!mPreferences.contains(SORT_ORDER_KEY)) {
+            int sortOrder = getDefaultSortOrder();
+            try {
+                 sortOrder = Settings.System.getInt(mContext.getContentResolver(),
+                        SORT_ORDER_KEY);
+            } catch (SettingNotFoundException e) {
+            }
+            setSortOrder(sortOrder);
+        }
+
+        if (!mPreferences.contains(DISPLAY_ORDER_KEY)) {
+            int displayOrder = getDefaultDisplayOrder();
+            try {
+                displayOrder = Settings.System.getInt(mContext.getContentResolver(),
+                        DISPLAY_ORDER_KEY);
+            } catch (SettingNotFoundException e) {
+            }
+            setDisplayOrder(displayOrder);
+        }
+
+        if (!mPreferences.contains(PHONETIC_NAME_DISPLAY_KEY)) {
+            int phoneticNameFieldsDisplay = getDefaultPhoneticNameDisplayPreference();
+            try {
+                phoneticNameFieldsDisplay = Settings.System.getInt(mContext.getContentResolver(),
+                        PHONETIC_NAME_DISPLAY_KEY);
+            } catch (SettingNotFoundException e) {
+            }
+            setPhoneticNameDisplayPreference(phoneticNameFieldsDisplay);
+        }
+
+        if (!mPreferences.contains(mDefaultAccountKey)) {
+            final SharedPreferences previousPrefs =
+                    PreferenceManager.getDefaultSharedPreferences(mContext);
+            final String defaultAccount = previousPrefs.getString(mDefaultAccountKey, null);
+            if (!TextUtils.isEmpty(defaultAccount)) {
+                final AccountWithDataSet accountWithDataSet = AccountWithDataSet.unstringify(
+                        defaultAccount);
+                setDefaultAccount(accountWithDataSet);
+            }
+        }
+    }
+
+}
diff --git a/src/com/android/contacts/preference/DefaultAccountPreference.java b/src/com/android/contacts/preference/DefaultAccountPreference.java
new file mode 100644
index 0000000..d43b8d5
--- /dev/null
+++ b/src/com/android/contacts/preference/DefaultAccountPreference.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2015 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.preference;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.preference.DialogPreference;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.util.AccountsListAdapter;
+
+import java.util.List;
+
+public class DefaultAccountPreference extends DialogPreference {
+    private ContactsPreferences mPreferences;
+    private AccountsListAdapter mListAdapter;
+    private List<AccountInfo> mAccounts;
+    private int mChosenIndex = -1;
+
+    public DefaultAccountPreference(Context context) {
+        super(context);
+        prepare();
+    }
+
+    public DefaultAccountPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        prepare();
+    }
+
+    public void setAccounts(List<AccountInfo> accounts) {
+        mAccounts = accounts;
+        if (mListAdapter != null) {
+            mListAdapter.setAccounts(accounts, null);
+            notifyChanged();
+        }
+    }
+
+    @Override
+    protected View onCreateDialogView() {
+        prepare();
+        return super.onCreateDialogView();
+    }
+
+    private void prepare() {
+        mPreferences = new ContactsPreferences(getContext());
+        mListAdapter = new AccountsListAdapter(getContext());
+        if (mAccounts != null) {
+            mListAdapter.setAccounts(mAccounts, null);
+        }
+    }
+
+    @Override
+    protected boolean shouldPersist() {
+        return false;   // This preference takes care of its own storage
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        final AccountWithDataSet defaultAccount = mPreferences.getDefaultAccount();
+        if (defaultAccount == null || mAccounts == null ||
+                !AccountInfo.contains(mAccounts, defaultAccount)) {
+            return null;
+        } else {
+            return AccountInfo.getAccount(mAccounts, defaultAccount).getNameLabel();
+        }
+    }
+
+    @Override
+    protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
+        super.onPrepareDialogBuilder(builder);
+        // UX recommendation is not to show buttons on such lists.
+        builder.setNegativeButton(null, null);
+        builder.setPositiveButton(null, null);
+        builder.setAdapter(mListAdapter, new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                mChosenIndex = which;
+            }
+        });
+    }
+
+    @Override
+    protected void onDialogClosed(boolean positiveResult) {
+        final AccountWithDataSet currentDefault = mPreferences.getDefaultAccount();
+
+        if (mChosenIndex != -1) {
+            final AccountWithDataSet chosenAccount = mListAdapter.getItem(mChosenIndex);
+            if (!chosenAccount.equals(currentDefault)) {
+                mPreferences.setDefaultAccount(chosenAccount);
+                notifyChanged();
+            }
+        } // else the user dismissed this dialog so leave the preference unchanged.
+    }
+}
diff --git a/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java b/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java
new file mode 100644
index 0000000..22a6683
--- /dev/null
+++ b/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java
@@ -0,0 +1,431 @@
+/*
+ * Copyright (C) 2010 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.preference;
+
+import android.app.Activity;
+import android.app.LoaderManager;
+import android.content.BroadcastReceiver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.Loader;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.provider.BlockedNumberContract;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Profile;
+import android.support.design.widget.Snackbar;
+import android.support.v4.content.LocalBroadcastManager;
+import android.telecom.TelecomManager;
+import android.telephony.TelephonyManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.R;
+import com.android.contacts.SimImportService;
+import com.android.contacts.compat.TelecomManagerUtil;
+import com.android.contacts.compat.TelephonyManagerCompat;
+import com.android.contacts.interactions.ExportDialogFragment;
+import com.android.contacts.interactions.ImportDialogFragment;
+import com.android.contacts.list.ContactListFilter;
+import com.android.contacts.list.ContactListFilterController;
+import com.android.contacts.logging.ScreenEvent.ScreenType;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountsLoader;
+import com.android.contacts.util.AccountFilterUtil;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contactsbind.HelpUtils;
+
+import java.util.List;
+
+/**
+ * This fragment shows the preferences for "display options"
+ */
+public class DisplayOptionsPreferenceFragment extends PreferenceFragment
+        implements Preference.OnPreferenceClickListener, AccountsLoader.AccountsListener {
+
+    private static final int REQUEST_CODE_CUSTOM_CONTACTS_FILTER = 0;
+
+    private static final String ARG_CONTACTS_AVAILABLE = "are_contacts_available";
+    private static final String ARG_NEW_LOCAL_PROFILE = "new_local_profile";
+
+    private static final String KEY_ABOUT = "about";
+    private static final String KEY_ACCOUNTS = "accounts";
+    private static final String KEY_DEFAULT_ACCOUNT = "defaultAccount";
+    private static final String KEY_BLOCKED_NUMBERS = "blockedNumbers";
+    private static final String KEY_DISPLAY_ORDER = "displayOrder";
+    private static final String KEY_CUSTOM_CONTACTS_FILTER = "customContactsFilter";
+    private static final String KEY_IMPORT = "import";
+    private static final String KEY_EXPORT = "export";
+    private static final String KEY_MY_INFO = "myInfo";
+    private static final String KEY_SORT_ORDER = "sortOrder";
+    private static final String KEY_PHONETIC_NAME_DISPLAY = "phoneticNameDisplay";
+
+    private static final int LOADER_PROFILE = 0;
+    private static final int LOADER_ACCOUNTS = 1;
+
+    /**
+     * Callbacks for hosts of the {@link DisplayOptionsPreferenceFragment}.
+     */
+    public interface ProfileListener  {
+        /**
+         * Invoked after profile has been loaded.
+         */
+        void onProfileLoaded(Cursor data);
+    }
+
+    /**
+     * The projections that are used to obtain user profile
+     */
+    public static class ProfileQuery {
+        /**
+         * Not instantiable.
+         */
+        private ProfileQuery() {}
+
+        private static final String[] PROFILE_PROJECTION_PRIMARY = new String[] {
+                Contacts._ID,                           // 0
+                Contacts.DISPLAY_NAME_PRIMARY,          // 1
+                Contacts.IS_USER_PROFILE,               // 2
+        };
+
+        private static final String[] PROFILE_PROJECTION_ALTERNATIVE = new String[] {
+                Contacts._ID,                           // 0
+                Contacts.DISPLAY_NAME_ALTERNATIVE,      // 1
+                Contacts.IS_USER_PROFILE,               // 2
+        };
+
+        public static final int CONTACT_ID               = 0;
+        public static final int CONTACT_DISPLAY_NAME     = 1;
+        public static final int CONTACT_IS_USER_PROFILE  = 2;
+    }
+
+    private String mNewLocalProfileExtra;
+    private boolean mAreContactsAvailable;
+
+    private boolean mHasProfile;
+    private long mProfileContactId;
+
+    private Preference mMyInfoPreference;
+
+    private ProfileListener mListener;
+
+    private ViewGroup mRootView;
+    private SaveServiceResultListener mSaveServiceListener;
+
+    private final LoaderManager.LoaderCallbacks<Cursor> mProfileLoaderListener =
+            new LoaderManager.LoaderCallbacks<Cursor>() {
+
+        @Override
+        public CursorLoader onCreateLoader(int id, Bundle args) {
+            final CursorLoader loader = createCursorLoader(getContext());
+            loader.setUri(Profile.CONTENT_URI);
+            loader.setProjection(getProjection(getContext()));
+            return loader;
+        }
+
+        @Override
+        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+            if (mListener != null) {
+                mListener.onProfileLoaded(data);
+            }
+        }
+
+        public void onLoaderReset(Loader<Cursor> loader) {
+        }
+    };
+
+    public static DisplayOptionsPreferenceFragment newInstance(String newLocalProfileExtra,
+            boolean areContactsAvailable) {
+        final DisplayOptionsPreferenceFragment fragment = new DisplayOptionsPreferenceFragment();
+        final Bundle args = new Bundle();
+        args.putString(ARG_NEW_LOCAL_PROFILE, newLocalProfileExtra);
+        args.putBoolean(ARG_CONTACTS_AVAILABLE, areContactsAvailable);
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        try {
+            mListener = (ProfileListener) activity;
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString() + " must implement ProfileListener");
+        }
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        // Wrap the preference view in a FrameLayout so we can show a snackbar
+        mRootView = new FrameLayout(getActivity());
+        final View list = super.onCreateView(inflater, mRootView, savedInstanceState);
+        mRootView.addView(list);
+        return mRootView;
+    }
+
+    @Override
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+
+        mSaveServiceListener = new SaveServiceResultListener();
+        LocalBroadcastManager.getInstance(getActivity()).registerReceiver(
+                mSaveServiceListener,
+                new IntentFilter(SimImportService.BROADCAST_SIM_IMPORT_COMPLETE));
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        // Load the preferences from an XML resource
+        addPreferencesFromResource(R.xml.preference_display_options);
+
+        final Bundle args = getArguments();
+        mNewLocalProfileExtra = args.getString(ARG_NEW_LOCAL_PROFILE);
+        mAreContactsAvailable = args.getBoolean(ARG_CONTACTS_AVAILABLE);
+
+        removeUnsupportedPreferences();
+
+        mMyInfoPreference = findPreference(KEY_MY_INFO);
+
+        final Preference accountsPreference = findPreference(KEY_ACCOUNTS);
+        accountsPreference.setOnPreferenceClickListener(this);
+
+        final Preference importPreference = findPreference(KEY_IMPORT);
+        importPreference.setOnPreferenceClickListener(this);
+
+        final Preference exportPreference = findPreference(KEY_EXPORT);
+        if (exportPreference != null) {
+            exportPreference.setOnPreferenceClickListener(this);
+        }
+
+        final Preference blockedNumbersPreference = findPreference(KEY_BLOCKED_NUMBERS);
+        if (blockedNumbersPreference != null) {
+            blockedNumbersPreference.setOnPreferenceClickListener(this);
+        }
+
+        final Preference aboutPreference = findPreference(KEY_ABOUT);
+        if (aboutPreference != null) {
+            aboutPreference.setOnPreferenceClickListener(this);
+        }
+
+        final Preference customFilterPreference = findPreference(KEY_CUSTOM_CONTACTS_FILTER);
+        if (customFilterPreference != null) {
+            customFilterPreference.setOnPreferenceClickListener(this);
+            setCustomContactsFilterSummary();
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        getLoaderManager().initLoader(LOADER_PROFILE, null, mProfileLoaderListener);
+        AccountsLoader.loadAccounts(this, LOADER_ACCOUNTS, AccountTypeManager.writableFilter());
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mSaveServiceListener);
+        mRootView = null;
+    }
+
+    public void updateMyInfoPreference(boolean hasProfile, String displayName, long contactId) {
+        final CharSequence summary = hasProfile ? displayName : getString(R.string.set_up_profile);
+        mMyInfoPreference.setSummary(summary);
+        mHasProfile = hasProfile;
+        mProfileContactId = contactId;
+        mMyInfoPreference.setOnPreferenceClickListener(this);
+    }
+
+    private void removeUnsupportedPreferences() {
+        // Disable sort order for CJK locales where it is not supported
+        final Resources resources = getResources();
+        if (!resources.getBoolean(R.bool.config_sort_order_user_changeable)) {
+            getPreferenceScreen().removePreference(findPreference(KEY_SORT_ORDER));
+        }
+
+        if (!resources.getBoolean(R.bool.config_phonetic_name_display_user_changeable)) {
+            getPreferenceScreen().removePreference(findPreference(KEY_PHONETIC_NAME_DISPLAY));
+        }
+
+        if (HelpUtils.isHelpAndFeedbackAvailable()) {
+            getPreferenceScreen().removePreference(findPreference(KEY_ABOUT));
+        }
+
+        // Disable display order for CJK locales as well
+        if (!resources.getBoolean(R.bool.config_display_order_user_changeable)) {
+            getPreferenceScreen().removePreference(findPreference(KEY_DISPLAY_ORDER));
+        }
+
+        final boolean isPhone = TelephonyManagerCompat.isVoiceCapable(
+                (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE));
+        final boolean showBlockedNumbers = isPhone && ContactsUtils.FLAG_N_FEATURE
+                && BlockedNumberContract.canCurrentUserBlockNumbers(getContext());
+        if (!showBlockedNumbers) {
+            getPreferenceScreen().removePreference(findPreference(KEY_BLOCKED_NUMBERS));
+        }
+
+        if (!mAreContactsAvailable) {
+            getPreferenceScreen().removePreference(findPreference(KEY_EXPORT));
+        }
+    }
+
+    @Override
+    public void onAccountsLoaded(List<AccountInfo> accounts) {
+        // Hide accounts preferences if no writable accounts exist
+        final DefaultAccountPreference preference =
+                (DefaultAccountPreference) findPreference(KEY_DEFAULT_ACCOUNT);
+        preference.setAccounts(accounts);
+    }
+
+    @Override
+    public Context getContext() {
+        return getActivity();
+    }
+
+    private CursorLoader createCursorLoader(Context context) {
+        return new CursorLoader(context) {
+            @Override
+            protected Cursor onLoadInBackground() {
+                try {
+                    return super.onLoadInBackground();
+                } catch (RuntimeException e) {
+                    return null;
+                }
+            }
+        };
+    }
+
+    private String[] getProjection(Context context) {
+        final ContactsPreferences contactsPrefs = new ContactsPreferences(context);
+        final int displayOrder = contactsPrefs.getDisplayOrder();
+        if (displayOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+            return ProfileQuery.PROFILE_PROJECTION_PRIMARY;
+        }
+        return ProfileQuery.PROFILE_PROJECTION_ALTERNATIVE;
+    }
+
+    @Override
+    public boolean onPreferenceClick(Preference p) {
+        final String prefKey = p.getKey();
+
+        if (KEY_ABOUT.equals(prefKey)) {
+            ((ContactsPreferenceActivity) getActivity()).showAboutFragment();
+            return true;
+        } else if (KEY_IMPORT.equals(prefKey)) {
+            ImportDialogFragment.show(getFragmentManager());
+            return true;
+        } else if (KEY_EXPORT.equals(prefKey)) {
+            ExportDialogFragment.show(getFragmentManager(), ContactsPreferenceActivity.class,
+                    ExportDialogFragment.EXPORT_MODE_ALL_CONTACTS);
+            return true;
+        } else if (KEY_MY_INFO.equals(prefKey)) {
+            if (mHasProfile) {
+                final Uri uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, mProfileContactId);
+                ImplicitIntentsUtil.startQuickContact(getActivity(), uri, ScreenType.ME_CONTACT);
+            } else {
+                final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+                intent.putExtra(mNewLocalProfileExtra, true);
+                ImplicitIntentsUtil.startActivityInApp(getActivity(), intent);
+            }
+            return true;
+        } else if (KEY_ACCOUNTS.equals(prefKey)) {
+            ImplicitIntentsUtil.startActivityOutsideApp(getContext(),
+                    ImplicitIntentsUtil.getIntentForAddingAccount());
+            return true;
+        } else if (KEY_BLOCKED_NUMBERS.equals(prefKey)) {
+            final Intent intent = TelecomManagerUtil.createManageBlockedNumbersIntent(
+                    (TelecomManager) getContext().getSystemService(Context.TELECOM_SERVICE));
+            startActivity(intent);
+            return true;
+        } else if (KEY_CUSTOM_CONTACTS_FILTER.equals(prefKey)) {
+            final ContactListFilter filter =
+                    ContactListFilterController.getInstance(getContext()).getFilter();
+            AccountFilterUtil.startAccountFilterActivityForResult(
+                    this, REQUEST_CODE_CUSTOM_CONTACTS_FILTER, filter);
+        }
+        return false;
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == REQUEST_CODE_CUSTOM_CONTACTS_FILTER
+                && resultCode == Activity.RESULT_OK) {
+            AccountFilterUtil.handleAccountFilterResult(
+                    ContactListFilterController.getInstance(getContext()), resultCode, data);
+            setCustomContactsFilterSummary();
+        } else {
+            super.onActivityResult(requestCode, resultCode, data);
+        }
+    }
+
+    private void setCustomContactsFilterSummary() {
+        final Preference customFilterPreference = findPreference(KEY_CUSTOM_CONTACTS_FILTER);
+        if (customFilterPreference != null) {
+            final ContactListFilter filter =
+                    ContactListFilterController.getInstance(getContext()).getPersistedFilter();
+            if (filter != null) {
+                if (filter.filterType == ContactListFilter.FILTER_TYPE_DEFAULT ||
+                        filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
+                    customFilterPreference.setSummary(R.string.list_filter_all_accounts);
+                } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+                    customFilterPreference.setSummary(R.string.listCustomView);
+                } else {
+                    customFilterPreference.setSummary(null);
+                }
+            }
+        }
+    }
+
+    private class SaveServiceResultListener extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            final long now = System.currentTimeMillis();
+            final long opStart = intent.getLongExtra(
+                    SimImportService.EXTRA_OPERATION_REQUESTED_AT_TIME, now);
+
+            // If it's been over 30 seconds the user is likely in a different context so suppress
+            // the toast message.
+            if (now - opStart > 30*1000) return;
+
+            final int code = intent.getIntExtra(SimImportService.EXTRA_RESULT_CODE,
+                    SimImportService.RESULT_UNKNOWN);
+            final int count = intent.getIntExtra(SimImportService.EXTRA_RESULT_COUNT, -1);
+            if (code == SimImportService.RESULT_SUCCESS && count > 0) {
+                Snackbar.make(mRootView, getResources().getQuantityString(
+                        R.plurals.sim_import_success_toast_fmt, count, count),
+                        Snackbar.LENGTH_LONG).show();
+            } else if (code == SimImportService.RESULT_FAILURE) {
+                Snackbar.make(mRootView, R.string.sim_import_failed_toast,
+                        Snackbar.LENGTH_LONG).show();
+            }
+        }
+    }
+}
+
diff --git a/src/com/android/contacts/preference/DisplayOrderPreference.java b/src/com/android/contacts/preference/DisplayOrderPreference.java
new file mode 100644
index 0000000..801bb24
--- /dev/null
+++ b/src/com/android/contacts/preference/DisplayOrderPreference.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2010 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.preference;
+
+import android.app.AlertDialog.Builder;
+import android.content.Context;
+import android.preference.ListPreference;
+import android.util.AttributeSet;
+
+import com.android.contacts.R;
+
+/**
+ * Custom preference: view-name-as (first name first or last name first).
+ */
+public final class DisplayOrderPreference extends ListPreference {
+
+    private ContactsPreferences mPreferences;
+    private Context mContext;
+
+    public DisplayOrderPreference(Context context) {
+        super(context);
+        prepare();
+    }
+
+    public DisplayOrderPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        prepare();
+    }
+
+    private void prepare() {
+        mContext = getContext();
+        mPreferences = new ContactsPreferences(mContext);
+        setEntries(new String[]{
+                mContext.getString(R.string.display_options_view_given_name_first),
+                mContext.getString(R.string.display_options_view_family_name_first),
+        });
+        setEntryValues(new String[]{
+                String.valueOf(ContactsPreferences.DISPLAY_ORDER_PRIMARY),
+                String.valueOf(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE),
+        });
+        setValue(String.valueOf(mPreferences.getDisplayOrder()));
+    }
+
+    @Override
+    protected boolean shouldPersist() {
+        return false;   // This preference takes care of its own storage
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        switch (mPreferences.getDisplayOrder()) {
+            case ContactsPreferences.DISPLAY_ORDER_PRIMARY:
+                return mContext.getString(R.string.display_options_view_given_name_first);
+            case ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE:
+                return mContext.getString(R.string.display_options_view_family_name_first);
+        }
+        return null;
+    }
+
+    @Override
+    protected boolean persistString(String value) {
+        int newValue = Integer.parseInt(value);
+        if (newValue != mPreferences.getDisplayOrder()) {
+            mPreferences.setDisplayOrder(newValue);
+            notifyChanged();
+        }
+        return true;
+    }
+
+    @Override
+    // UX recommendation is not to show cancel button on such lists.
+    protected void onPrepareDialogBuilder(Builder builder) {
+        super.onPrepareDialogBuilder(builder);
+        builder.setNegativeButton(null, null);
+    }
+}
diff --git a/src/com/android/contacts/preference/PhoneticNameDisplayPreference.java b/src/com/android/contacts/preference/PhoneticNameDisplayPreference.java
new file mode 100644
index 0000000..42bbcc3
--- /dev/null
+++ b/src/com/android/contacts/preference/PhoneticNameDisplayPreference.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2017 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.preference;
+
+import android.app.AlertDialog.Builder;
+import android.content.Context;
+import android.preference.ListPreference;
+import android.util.AttributeSet;
+
+import com.android.contacts.R;
+
+/**
+ * Custom preference: phonetic name fields.
+ */
+public final class PhoneticNameDisplayPreference extends ListPreference {
+
+    public static final int SHOW_ALWAYS = 0;
+    public static final int HIDE_IF_EMPTY = 1;
+
+    private Context mContext;
+    private ContactsPreferences mPreferences;
+
+    public PhoneticNameDisplayPreference(Context context) {
+        super(context);
+        prepare();
+    }
+
+    public PhoneticNameDisplayPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        prepare();
+    }
+
+    private void prepare() {
+        mContext = getContext();
+        mPreferences = new ContactsPreferences(mContext);
+        setEntries(new String[]{
+                mContext.getString(R.string.editor_options_always_show_phonetic_names),
+                mContext.getString(R.string.editor_options_hide_phonetic_names_if_empty)
+        });
+        setEntryValues(new String[]{
+                String.valueOf(SHOW_ALWAYS),
+                String.valueOf(HIDE_IF_EMPTY),
+        });
+        setValue(String.valueOf(mPreferences.getPhoneticNameDisplayPreference()));
+    }
+
+    @Override
+    protected boolean shouldPersist() {
+        return false;   // This preference takes care of its own storage
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        switch (mPreferences.getPhoneticNameDisplayPreference()) {
+            case SHOW_ALWAYS:
+                return mContext.getString(R.string.editor_options_always_show_phonetic_names);
+            case HIDE_IF_EMPTY:
+                return mContext.getString(R.string.editor_options_hide_phonetic_names_if_empty);
+        }
+        return null;
+    }
+
+    @Override
+    protected boolean persistString(String value) {
+        final int newValue = Integer.parseInt(value);
+        if (newValue != mPreferences.getPhoneticNameDisplayPreference()) {
+            mPreferences.setPhoneticNameDisplayPreference(newValue);
+            notifyChanged();
+        }
+        return true;
+    }
+
+    // UX recommendation is not to show cancel button on such lists.
+    @Override
+    protected void onPrepareDialogBuilder(Builder builder) {
+        super.onPrepareDialogBuilder(builder);
+        builder.setNegativeButton(null, null);
+    }
+}
diff --git a/src/com/android/contacts/preference/SortOrderPreference.java b/src/com/android/contacts/preference/SortOrderPreference.java
new file mode 100644
index 0000000..3870231
--- /dev/null
+++ b/src/com/android/contacts/preference/SortOrderPreference.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2010 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.preference;
+
+import android.app.AlertDialog.Builder;
+import android.content.Context;
+import android.preference.ListPreference;
+import android.util.AttributeSet;
+
+import com.android.contacts.R;
+
+/**
+ * Custom preference: sort-by.
+ */
+public final class SortOrderPreference extends ListPreference {
+
+    private ContactsPreferences mPreferences;
+    private Context mContext;
+
+    public SortOrderPreference(Context context) {
+        super(context);
+        prepare();
+    }
+
+    public SortOrderPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        prepare();
+    }
+
+    private void prepare() {
+        mContext = getContext();
+        mPreferences = new ContactsPreferences(mContext);
+        setEntries(new String[]{
+                mContext.getString(R.string.display_options_sort_by_given_name),
+                mContext.getString(R.string.display_options_sort_by_family_name),
+        });
+        setEntryValues(new String[]{
+                String.valueOf(ContactsPreferences.SORT_ORDER_PRIMARY),
+                String.valueOf(ContactsPreferences.SORT_ORDER_ALTERNATIVE),
+        });
+        setValue(String.valueOf(mPreferences.getSortOrder()));
+    }
+
+    @Override
+    protected boolean shouldPersist() {
+        return false;   // This preference takes care of its own storage
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        switch (mPreferences.getSortOrder()) {
+            case ContactsPreferences.SORT_ORDER_PRIMARY:
+                return mContext.getString(R.string.display_options_sort_by_given_name);
+            case ContactsPreferences.SORT_ORDER_ALTERNATIVE:
+                return mContext.getString(R.string.display_options_sort_by_family_name);
+        }
+        return null;
+    }
+
+    @Override
+    protected boolean persistString(String value) {
+        int newValue = Integer.parseInt(value);
+        if (newValue != mPreferences.getSortOrder()) {
+            mPreferences.setSortOrder(newValue);
+            notifyChanged();
+        }
+        return true;
+    }
+
+    @Override
+    // UX recommendation is not to show cancel button on such lists.
+    protected void onPrepareDialogBuilder(Builder builder) {
+        super.onPrepareDialogBuilder(builder);
+        builder.setNegativeButton(null, null);
+    }
+}
diff --git a/src/com/android/contacts/quickcontact/Action.java b/src/com/android/contacts/quickcontact/Action.java
index 7d904ab..7d7e852 100644
--- a/src/com/android/contacts/quickcontact/Action.java
+++ b/src/com/android/contacts/quickcontact/Action.java
@@ -20,7 +20,7 @@
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 
-import com.android.contacts.common.Collapser;
+import com.android.contacts.Collapser;
 
 /**
  * Abstract definition of an action that could be performed, along with
diff --git a/src/com/android/contacts/quickcontact/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
index 5a49c77..a3f4869 100644
--- a/src/com/android/contacts/quickcontact/DataAction.java
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -29,19 +29,19 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.contacts.CallUtil;
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.MoreContactUtils;
 import com.android.contacts.R;
-import com.android.contacts.common.CallUtil;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.MoreContactUtils;
-import com.android.contacts.common.model.account.AccountType.EditType;
-import com.android.contacts.common.model.dataitem.DataItem;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.model.dataitem.EmailDataItem;
-import com.android.contacts.common.model.dataitem.ImDataItem;
-import com.android.contacts.common.model.dataitem.PhoneDataItem;
-import com.android.contacts.common.model.dataitem.SipAddressDataItem;
-import com.android.contacts.common.model.dataitem.StructuredPostalDataItem;
-import com.android.contacts.common.model.dataitem.WebsiteDataItem;
+import com.android.contacts.model.account.AccountType.EditType;
+import com.android.contacts.model.dataitem.DataItem;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.model.dataitem.EmailDataItem;
+import com.android.contacts.model.dataitem.ImDataItem;
+import com.android.contacts.model.dataitem.PhoneDataItem;
+import com.android.contacts.model.dataitem.SipAddressDataItem;
+import com.android.contacts.model.dataitem.StructuredPostalDataItem;
+import com.android.contacts.model.dataitem.WebsiteDataItem;
 import com.android.contacts.quickcontact.WebAddress.ParseException;
 import com.android.contacts.util.PhoneCapabilityTester;
 import com.android.contacts.util.StructuredPostalUtils;
@@ -215,10 +215,10 @@
                         mAlternateIntent = new Intent(
                                 Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
                         if (isVideoChatCapable) {
-                            mAlternateIconRes = R.drawable.sym_action_videochat_holo_light;
+                            mAlternateIconRes = R.drawable.quantum_ic_videocam_vd_theme_24;
                             mAlternateIconDescriptionRes = R.string.video_chat;
                         } else {
-                            mAlternateIconRes = R.drawable.sym_action_audiochat_holo_light;
+                            mAlternateIconRes = R.drawable.quantum_ic_mic_vd_theme_24;
                             mAlternateIconDescriptionRes = R.string.audio_chat;
                         }
                     }
diff --git a/src/com/android/contacts/quickcontact/DirectoryContactUtil.java b/src/com/android/contacts/quickcontact/DirectoryContactUtil.java
index c4969cc..4228971 100644
--- a/src/com/android/contacts/quickcontact/DirectoryContactUtil.java
+++ b/src/com/android/contacts/quickcontact/DirectoryContactUtil.java
@@ -16,17 +16,17 @@
 
 package com.android.contacts.quickcontact;
 
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.R;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
 import android.provider.ContactsContract.Directory;
 import android.widget.Toast;
 
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.R;
+import com.android.contacts.model.Contact;
+import com.android.contacts.model.account.AccountWithDataSet;
+
 import java.util.ArrayList;
 
 /**
diff --git a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
index 762ff6c..49da4c8 100644
--- a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
+++ b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
@@ -47,12 +47,11 @@
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import com.android.contacts.R;
-import com.android.contacts.common.dialog.CallSubjectDialog;
+import com.android.contacts.dialog.CallSubjectDialog;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -244,8 +243,6 @@
     private View mExpandCollapseButton;
     private TextView mExpandCollapseTextView;
     private TextView mTitleTextView;
-    private CharSequence mExpandButtonText;
-    private CharSequence mCollapseButtonText;
     private OnClickListener mOnClickListener;
     private OnCreateContextMenuListener mOnCreateContextMenuListener;
     private boolean mIsExpanded = false;
@@ -263,17 +260,9 @@
     private final ImageView mExpandCollapseArrow;
     private int mThemeColor;
     private ColorFilter mThemeColorFilter;
-    /**
-     * Whether to prioritize the first entry type. If prioritized, we should show at least two
-     * of this entry type.
-     */
-    private boolean mShowFirstEntryTypeTwice;
     private boolean mIsAlwaysExpanded;
     /** The ViewGroup to run the expand/collapse animation on */
     private ViewGroup mAnimationViewGroup;
-    private LinearLayout mBadgeContainer;
-    private final List<ImageView> mBadges;
-    private final List<Integer> mBadgeIds;
     private final int mDividerLineHeightPixels;
     /**
      * List to hold the separators. This saves us from reconstructing every expand/collapse and
@@ -311,19 +300,8 @@
         mExpandCollapseTextView = (TextView) mExpandCollapseButton.findViewById(R.id.text);
         mExpandCollapseArrow = (ImageView) mExpandCollapseButton.findViewById(R.id.arrow);
         mExpandCollapseButton.setOnClickListener(mExpandCollapseButtonListener);
-        mBadgeContainer = (LinearLayout) mExpandCollapseButton.findViewById(R.id.badge_container);
         mDividerLineHeightPixels = getResources()
                 .getDimensionPixelSize(R.dimen.divider_line_height);
-
-        mBadges = new ArrayList<ImageView>();
-        mBadgeIds = new ArrayList<Integer>();
-    }
-
-    public void initialize(List<List<Entry>> entries, int numInitialVisibleEntries,
-            boolean isExpanded, boolean isAlwaysExpanded, ExpandingEntryCardViewListener listener,
-            ViewGroup animationViewGroup) {
-        initialize(entries, numInitialVisibleEntries, isExpanded, isAlwaysExpanded,
-                listener, animationViewGroup, /* showFirstEntryTypeTwice = */ false);
     }
 
     /**
@@ -332,9 +310,8 @@
      * @param entries The Entry list to display.
      */
     public void initialize(List<List<Entry>> entries, int numInitialVisibleEntries,
-            boolean isExpanded, boolean isAlwaysExpanded,
-            ExpandingEntryCardViewListener listener, ViewGroup animationViewGroup,
-            boolean showFirstEntryTypeTwice) {
+            boolean isExpanded, boolean isAlwaysExpanded, ExpandingEntryCardViewListener listener,
+            ViewGroup animationViewGroup) {
         LayoutInflater layoutInflater = LayoutInflater.from(getContext());
         mIsExpanded = isExpanded;
         mIsAlwaysExpanded = isAlwaysExpanded;
@@ -344,7 +321,6 @@
         mEntries = entries;
         mNumEntries = 0;
         mAllEntriesInflated = false;
-        mShowFirstEntryTypeTwice = showFirstEntryTypeTwice;
         for (List<Entry> entryList : mEntries) {
             mNumEntries += entryList.size();
             mEntryViews.add(new ArrayList<View>());
@@ -368,30 +344,6 @@
         applyColor();
     }
 
-    /**
-     * Sets the text for the expand button.
-     *
-     * @param expandButtonText The expand button text.
-     */
-    public void setExpandButtonText(CharSequence expandButtonText) {
-        mExpandButtonText = expandButtonText;
-        if (mExpandCollapseTextView != null && !mIsExpanded) {
-            mExpandCollapseTextView.setText(expandButtonText);
-        }
-    }
-
-    /**
-     * Sets the text for the expand button.
-     *
-     * @param expandButtonText The expand button text.
-     */
-    public void setCollapseButtonText(CharSequence expandButtonText) {
-        mCollapseButtonText = expandButtonText;
-        if (mExpandCollapseTextView != null && mIsExpanded) {
-            mExpandCollapseTextView.setText(mCollapseButtonText);
-        }
-    }
-
     @Override
     public void setOnClickListener(OnClickListener listener) {
         mOnClickListener = listener;
@@ -468,19 +420,9 @@
                 viewsToDisplay.add(entryViewList.get(0));
                 numInViewGroup++;
 
-                int indexInEntryViewList = 1;
-                if (mShowFirstEntryTypeTwice && i == 0 && entryViewList.size() > 1) {
-                    viewsToDisplay.add(entryViewList.get(1));
-                    numInViewGroup++;
-                    extraEntries--;
-                    indexInEntryViewList++;
-                }
-
                 // Insert entries in this list to hit mCollapsedEntriesCount.
-                for (int j = indexInEntryViewList;
-                        j < entryViewList.size() && numInViewGroup < mCollapsedEntriesCount &&
-                        extraEntries > 0;
-                        j++) {
+                for (int j = 1; j < entryViewList.size() && numInViewGroup < mCollapsedEntriesCount
+                        && extraEntries > 0; j++) {
                     viewsToDisplay.add(entryViewList.get(j));
                     numInViewGroup++;
                     extraEntries--;
@@ -497,12 +439,12 @@
         if (TextUtils.isEmpty(mTitleTextView.getText()) &&
                 entriesViewGroup.size() > 0) {
             final View entry = entriesViewGroup.get(0);
-            entry.setPadding(entry.getPaddingLeft(),
+            entry.setPaddingRelative(entry.getPaddingStart(),
                     getResources().getDimensionPixelSize(
                             R.dimen.expanding_entry_card_item_padding_top) +
                     getResources().getDimensionPixelSize(
                             R.dimen.expanding_entry_card_null_title_top_extra_padding),
-                    entry.getPaddingRight(),
+                    entry.getPaddingEnd(),
                     entry.getPaddingBottom());
         }
     }
@@ -532,21 +474,13 @@
     }
 
     private CharSequence getExpandButtonText() {
-        if (!TextUtils.isEmpty(mExpandButtonText)) {
-            return mExpandButtonText;
-        } else {
-            // Default to "See more".
-            return getResources().getText(R.string.expanding_entry_card_view_see_more);
-        }
+        // Default to "See more".
+        return getResources().getText(R.string.expanding_entry_card_view_see_more);
     }
 
     private CharSequence getCollapseButtonText() {
-        if (!TextUtils.isEmpty(mCollapseButtonText)) {
-            return mCollapseButtonText;
-        } else {
-            // Default to "See less".
-            return getResources().getText(R.string.expanding_entry_card_view_see_less);
-        }
+        // Default to "See less".
+        return getResources().getText(R.string.expanding_entry_card_view_see_less);
     }
 
     /**
@@ -569,18 +503,8 @@
                         /* showIcon = */ View.VISIBLE));
                 numInflated++;
 
-                int indexInEntryViewList = 1;
-                if (mShowFirstEntryTypeTwice && i == 0 && entryList.size() > 1) {
-                    entryViewList.add(createEntryView(layoutInflater, entryList.get(1),
-                        /* showIcon = */ View.INVISIBLE));
-                    numInflated++;
-                    extraEntries--;
-                    indexInEntryViewList++;
-                }
-
                 // Inflate entries in this list to hit mCollapsedEntriesCount.
-                for (int j = indexInEntryViewList; j < entryList.size()
-                        && numInflated < mCollapsedEntriesCount
+                for (int j = 1; j < entryList.size() && numInflated < mCollapsedEntriesCount
                         && extraEntries > 0; j++) {
                     entryViewList.add(createEntryView(layoutInflater, entryList.get(j),
                             /* showIcon = */ View.INVISIBLE));
@@ -638,6 +562,19 @@
         }
     }
 
+    public void setEntrySubHeaderColor(int color) {
+        if (mEntries != null) {
+            for (List<View> entryList : mEntryViews) {
+                for (View entryView : entryList) {
+                    final TextView subHeader = (TextView) entryView.findViewById(R.id.sub_header);
+                    if (subHeader != null) {
+                        subHeader.setTextColor(color);
+                    }
+                }
+            }
+        }
+    }
+
     /**
      * The ColorFilter is passed in along with the color so that a new one only needs to be created
      * once for the entire activity.
@@ -828,52 +765,9 @@
             animator.setDuration(duration);
             animator.start();
         }
-        updateBadges();
-
         mExpandCollapseTextView.setText(buttonText);
     }
 
-    private void updateBadges() {
-        if (mIsExpanded) {
-            mBadgeContainer.removeAllViews();
-        } else {
-            int numberOfMimeTypesShown = mCollapsedEntriesCount;
-            if (mShowFirstEntryTypeTwice && mEntries.size() > 0
-                    && mEntries.get(0).size() > 1) {
-                numberOfMimeTypesShown--;
-            }
-            // Inflate badges if not yet created
-            if (mBadges.size() < mEntries.size() - numberOfMimeTypesShown) {
-                for (int i = numberOfMimeTypesShown; i < mEntries.size(); i++) {
-                    Drawable badgeDrawable = mEntries.get(i).get(0).getIcon();
-                    int badgeResourceId = mEntries.get(i).get(0).getIconResourceId();
-                    // Do not add the same badge twice
-                    if (badgeResourceId != 0 && mBadgeIds.contains(badgeResourceId)) {
-                        continue;
-                    }
-                    if (badgeDrawable != null) {
-                        ImageView badgeView = new ImageView(getContext());
-                        LinearLayout.LayoutParams badgeViewParams = new LinearLayout.LayoutParams(
-                                (int) getResources().getDimension(
-                                        R.dimen.expanding_entry_card_item_icon_width),
-                                (int) getResources().getDimension(
-                                        R.dimen.expanding_entry_card_item_icon_height));
-                        badgeViewParams.setMarginEnd((int) getResources().getDimension(
-                                R.dimen.expanding_entry_card_badge_separator_margin));
-                        badgeView.setLayoutParams(badgeViewParams);
-                        badgeView.setImageDrawable(badgeDrawable);
-                        mBadges.add(badgeView);
-                        mBadgeIds.add(badgeResourceId);
-                    }
-                }
-            }
-            mBadgeContainer.removeAllViews();
-            for (ImageView badge : mBadges) {
-                mBadgeContainer.addView(badge);
-            }
-        }
-    }
-
     private void expand() {
         ChangeBounds boundsTransition = new ChangeBounds();
         boundsTransition.setDuration(DURATION_EXPAND_ANIMATION_CHANGE_BOUNDS);
diff --git a/src/com/android/contacts/quickcontact/InvisibleContactUtil.java b/src/com/android/contacts/quickcontact/InvisibleContactUtil.java
index fa1132b..c8ec361 100644
--- a/src/com/android/contacts/quickcontact/InvisibleContactUtil.java
+++ b/src/com/android/contacts/quickcontact/InvisibleContactUtil.java
@@ -1,26 +1,26 @@
 package com.android.contacts.quickcontact;
 
 
-import com.google.common.collect.Iterables;
-
-import com.android.contacts.ContactSaveService;
-import com.android.contacts.common.GroupMetaData;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.RawContact;
-import com.android.contacts.common.model.RawContactDelta;
-import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.common.model.RawContactModifier;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.dataitem.DataItem;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.model.dataitem.GroupMembershipDataItem;
-
 import android.content.Context;
 import android.content.Intent;
 import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 
+import com.android.contacts.ContactSaveService;
+import com.android.contacts.group.GroupMetaData;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.Contact;
+import com.android.contacts.model.RawContact;
+import com.android.contacts.model.RawContactDelta;
+import com.android.contacts.model.RawContactDeltaList;
+import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.model.ValuesDelta;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.dataitem.DataItem;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.model.dataitem.GroupMembershipDataItem;
+
+import com.google.common.collect.Iterables;
+
 import java.util.List;
 
 /**
@@ -70,14 +70,28 @@
     }
 
     public static void addToDefaultGroup(Contact contactData, Context context) {
+        final RawContactDeltaList contactDeltaList = contactData.createRawContactDeltaList();
+        if (markAddToDefaultGroup(contactData, contactDeltaList, context)) {
+            // Fire off the intent. we don't need a callback, as the database listener
+            // should update the ui
+            final Intent intent = ContactSaveService.createSaveContactIntent(
+                    context,
+                    contactDeltaList, "", 0, false, QuickContactActivity.class,
+                    Intent.ACTION_VIEW, null, /* joinContactIdExtraKey =*/ null,
+                /* joinContactId =*/ null);
+            ContactSaveService.startService(context, intent);
+        }
+    }
+
+    public static boolean markAddToDefaultGroup(Contact contactData,
+            RawContactDeltaList rawContactDeltaList, Context context) {
         final long defaultGroupId = getDefaultGroupId(contactData.getGroupMetaData());
         // there should always be a default group (otherwise the button would be invisible),
         // but let's be safe here
-        if (defaultGroupId == -1) return;
+        if (defaultGroupId == -1) return false;
 
         // add the group membership to the current state
-        final RawContactDeltaList contactDeltaList = contactData.createRawContactDeltaList();
-        final RawContactDelta rawContactEntityDelta = contactDeltaList.get(0);
+        final RawContactDelta rawContactEntityDelta = rawContactDeltaList.get(0);
 
         final AccountTypeManager accountTypes = AccountTypeManager.getInstance(
                 context);
@@ -86,27 +100,19 @@
                 GroupMembership.CONTENT_ITEM_TYPE);
         final ValuesDelta entry = RawContactModifier.insertChild(rawContactEntityDelta,
                 groupMembershipKind);
-        if (entry == null) return;
+        if (entry == null) return false;
         entry.setGroupRowId(defaultGroupId);
-
-        // and fire off the intent. we don't need a callback, as the database listener
-        // should update the ui
-        final Intent intent = ContactSaveService.createSaveContactIntent(
-                context,
-                contactDeltaList, "", 0, false, QuickContactActivity.class,
-                Intent.ACTION_VIEW, null, /* joinContactIdExtraKey =*/ null,
-                /* joinContactId =*/ null);
-        ContactSaveService.startService(context, intent);
+        return true;
     }
 
     /** return default group id or -1 if no group or several groups are marked as default */
     private static long getDefaultGroupId(List<GroupMetaData> groups) {
         long defaultGroupId = -1;
         for (GroupMetaData group : groups) {
-            if (group.isDefaultGroup()) {
+            if (group.defaultGroup) {
                 // two default groups? return neither
                 if (defaultGroupId != -1) return -1;
-                defaultGroupId = group.getGroupId();
+                defaultGroupId = group.groupId;
             }
         }
         return defaultGroupId;
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index c63c989..014e1d5 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -1,4 +1,5 @@
 /*
+
  * Copyright (C) 2009 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,23 +17,25 @@
 
 package com.android.contacts.quickcontact;
 
+import android.Manifest;
 import android.accounts.Account;
 import android.animation.ArgbEvaluator;
 import android.animation.ObjectAnimator;
 import android.app.Activity;
-import android.app.Fragment;
 import android.app.LoaderManager.LoaderCallbacks;
+import android.app.ProgressDialog;
 import android.app.SearchManager;
 import android.content.ActivityNotFoundException;
+import android.content.BroadcastReceiver;
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.Loader;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.content.res.ColorStateList;
-import android.content.res.Configuration;
+import android.content.pm.ShortcutManager;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -42,12 +45,12 @@
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
+import android.media.RingtoneManager;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Trace;
 import android.provider.CalendarContract;
-import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Event;
 import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
@@ -63,15 +66,17 @@
 import android.provider.ContactsContract.CommonDataKinds.Website;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.DataUsageFeedback;
 import android.provider.ContactsContract.Directory;
 import android.provider.ContactsContract.DisplayNameSources;
-import android.provider.ContactsContract.DataUsageFeedback;
 import android.provider.ContactsContract.Intents;
 import android.provider.ContactsContract.QuickContact;
 import android.provider.ContactsContract.RawContacts;
-import android.support.v4.content.ContextCompat;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.LocalBroadcastManager;
+import android.support.v4.content.res.ResourcesCompat;
+import android.support.v4.os.BuildCompat;
 import android.support.v7.graphics.Palette;
-import android.support.v7.widget.CardView;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
 import android.text.BidiFormatter;
@@ -82,7 +87,6 @@
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
-import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
@@ -91,86 +95,82 @@
 import android.view.View.OnClickListener;
 import android.view.View.OnCreateContextMenuListener;
 import android.view.WindowManager;
-import android.view.accessibility.AccessibilityEvent;
-import android.widget.Button;
-import android.widget.CheckBox;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
 import android.widget.Toast;
 import android.widget.Toolbar;
 
+import com.android.contacts.CallUtil;
+import com.android.contacts.ClipboardUtils;
+import com.android.contacts.Collapser;
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.ContactsActivity;
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.DynamicShortcuts;
 import com.android.contacts.NfcHandler;
 import com.android.contacts.R;
-import com.android.contacts.activities.ContactEditorBaseActivity;
-import com.android.contacts.common.CallUtil;
-import com.android.contacts.common.ClipboardUtils;
-import com.android.contacts.common.Collapser;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.activity.RequestDesiredPermissionsActivity;
-import com.android.contacts.common.activity.RequestPermissionsActivity;
-import com.android.contacts.common.compat.CompatUtils;
-import com.android.contacts.common.compat.EventCompat;
-import com.android.contacts.common.compat.MultiWindowCompat;
-import com.android.contacts.common.dialog.CallSubjectDialog;
-import com.android.contacts.common.editor.SelectAccountDialogFragment;
-import com.android.contacts.common.interactions.TouchPointManager;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
-import com.android.contacts.common.list.ShortcutIntentBuilder;
-import com.android.contacts.common.list.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
-import com.android.contacts.common.logging.Logger;
-import com.android.contacts.common.logging.ScreenEvent.ScreenType;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.Contact;
-import com.android.contacts.common.model.ContactLoader;
-import com.android.contacts.common.model.RawContact;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.dataitem.DataItem;
-import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.model.dataitem.EmailDataItem;
-import com.android.contacts.common.model.dataitem.EventDataItem;
-import com.android.contacts.common.model.dataitem.ImDataItem;
-import com.android.contacts.common.model.dataitem.NicknameDataItem;
-import com.android.contacts.common.model.dataitem.NoteDataItem;
-import com.android.contacts.common.model.dataitem.OrganizationDataItem;
-import com.android.contacts.common.model.dataitem.PhoneDataItem;
-import com.android.contacts.common.model.dataitem.RelationDataItem;
-import com.android.contacts.common.model.dataitem.SipAddressDataItem;
-import com.android.contacts.common.model.dataitem.StructuredNameDataItem;
-import com.android.contacts.common.model.dataitem.StructuredPostalDataItem;
-import com.android.contacts.common.model.dataitem.WebsiteDataItem;
-import com.android.contacts.common.model.ValuesDelta;
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-import com.android.contacts.common.util.DateUtils;
-import com.android.contacts.common.util.MaterialColorMapUtils;
-import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
-import com.android.contacts.common.util.UriUtils;
-import com.android.contacts.common.util.ViewUtil;
+import com.android.contacts.activities.ContactEditorActivity;
+import com.android.contacts.activities.ContactSelectionActivity;
+import com.android.contacts.activities.RequestDesiredPermissionsActivity;
+import com.android.contacts.activities.RequestPermissionsActivity;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.compat.EventCompat;
+import com.android.contacts.compat.MultiWindowCompat;
 import com.android.contacts.detail.ContactDisplayUtils;
-import com.android.contacts.editor.AggregationSuggestionEngine;
-import com.android.contacts.editor.AggregationSuggestionEngine.Suggestion;
+import com.android.contacts.dialog.CallSubjectDialog;
 import com.android.contacts.editor.ContactEditorFragment;
 import com.android.contacts.editor.EditorIntents;
+import com.android.contacts.editor.EditorUiUtils;
 import com.android.contacts.interactions.CalendarInteractionsLoader;
 import com.android.contacts.interactions.CallLogInteractionsLoader;
 import com.android.contacts.interactions.ContactDeletionInteraction;
 import com.android.contacts.interactions.ContactInteraction;
-import com.android.contacts.interactions.JoinContactsDialogFragment;
-import com.android.contacts.interactions.JoinContactsDialogFragment.JoinContactsListener;
 import com.android.contacts.interactions.SmsInteractionsLoader;
+import com.android.contacts.interactions.TouchPointManager;
+import com.android.contacts.lettertiles.LetterTileDrawable;
+import com.android.contacts.ShortcutIntentBuilder;
+import com.android.contacts.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
+import com.android.contacts.list.UiIntentActions;
+import com.android.contacts.logging.Logger;
+import com.android.contacts.logging.QuickContactEvent.ActionType;
+import com.android.contacts.logging.QuickContactEvent.CardType;
+import com.android.contacts.logging.QuickContactEvent.ContactType;
+import com.android.contacts.logging.ScreenEvent.ScreenType;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.Contact;
+import com.android.contacts.model.ContactLoader;
+import com.android.contacts.model.RawContact;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.dataitem.CustomDataItem;
+import com.android.contacts.model.dataitem.DataItem;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.model.dataitem.EmailDataItem;
+import com.android.contacts.model.dataitem.EventDataItem;
+import com.android.contacts.model.dataitem.ImDataItem;
+import com.android.contacts.model.dataitem.NicknameDataItem;
+import com.android.contacts.model.dataitem.NoteDataItem;
+import com.android.contacts.model.dataitem.OrganizationDataItem;
+import com.android.contacts.model.dataitem.PhoneDataItem;
+import com.android.contacts.model.dataitem.RelationDataItem;
+import com.android.contacts.model.dataitem.SipAddressDataItem;
+import com.android.contacts.model.dataitem.StructuredNameDataItem;
+import com.android.contacts.model.dataitem.StructuredPostalDataItem;
+import com.android.contacts.model.dataitem.WebsiteDataItem;
 import com.android.contacts.quickcontact.ExpandingEntryCardView.Entry;
 import com.android.contacts.quickcontact.ExpandingEntryCardView.EntryContextMenuInfo;
 import com.android.contacts.quickcontact.ExpandingEntryCardView.EntryTag;
 import com.android.contacts.quickcontact.ExpandingEntryCardView.ExpandingEntryCardViewListener;
 import com.android.contacts.quickcontact.WebAddress.ParseException;
+import com.android.contacts.util.DateUtils;
 import com.android.contacts.util.ImageViewDrawableSetter;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contacts.util.MaterialColorMapUtils;
+import com.android.contacts.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.contacts.util.PermissionsUtil;
 import com.android.contacts.util.PhoneCapabilityTester;
 import com.android.contacts.util.SchedulingUtils;
+import com.android.contacts.util.SharedPreferenceUtil;
 import com.android.contacts.util.StructuredPostalUtils;
+import com.android.contacts.util.UriUtils;
+import com.android.contacts.util.ViewUtil;
 import com.android.contacts.widget.MultiShrinkScroller;
 import com.android.contacts.widget.MultiShrinkScroller.MultiShrinkScrollerListener;
 import com.android.contacts.widget.QuickContactImageView;
@@ -178,7 +178,6 @@
 
 import com.google.common.collect.Lists;
 
-import java.lang.SecurityException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
@@ -186,11 +185,8 @@
 import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -198,8 +194,7 @@
  * data asynchronously, and then shows a popup with details centered around
  * {@link Intent#getSourceBounds()}.
  */
-public class QuickContactActivity extends ContactsActivity
-        implements AggregationSuggestionEngine.Listener, JoinContactsListener {
+public class QuickContactActivity extends ContactsActivity {
 
     /**
      * QuickContacts immediately takes up the full screen. All possible information is shown.
@@ -210,31 +205,49 @@
 
     /** Used to pass the screen where the user came before launching this Activity. */
     public static final String EXTRA_PREVIOUS_SCREEN_TYPE = "previous_screen_type";
+    /** Used to pass the Contact card action. */
+    public static final String EXTRA_ACTION_TYPE = "action_type";
+    public static final String EXTRA_THIRD_PARTY_ACTION = "third_party_action";
+
+    /** Used to tell the QuickContact that the previous contact was edited, so it can return an
+     * activity result back to the original Activity that launched it. */
+    public static final String EXTRA_CONTACT_EDITED = "contact_edited";
 
     private static final String TAG = "QuickContact";
 
     private static final String KEY_THEME_COLOR = "theme_color";
-    private static final String KEY_IS_SUGGESTION_LIST_COLLAPSED = "is_suggestion_list_collapsed";
-    private static final String KEY_SELECTED_SUGGESTION_CONTACTS = "selected_suggestion_contacts";
     private static final String KEY_PREVIOUS_CONTACT_ID = "previous_contact_id";
-    private static final String KEY_SUGGESTIONS_AUTO_SELECTED = "suggestions_auto_seleted";
+
+    private static final String KEY_SEND_TO_VOICE_MAIL_STATE = "sendToVoicemailState";
+    private static final String KEY_ARE_PHONE_OPTIONS_CHANGEABLE = "arePhoneOptionsChangable";
+    private static final String KEY_CUSTOM_RINGTONE = "customRingtone";
 
     private static final int ANIMATION_STATUS_BAR_COLOR_CHANGE_DURATION = 150;
     private static final int REQUEST_CODE_CONTACT_EDITOR_ACTIVITY = 1;
     private static final int SCRIM_COLOR = Color.argb(0xC8, 0, 0, 0);
     private static final int REQUEST_CODE_CONTACT_SELECTION_ACTIVITY = 2;
     private static final String MIMETYPE_SMS = "vnd.android-dir/mms-sms";
+    private static final int REQUEST_CODE_JOIN = 3;
+    private static final int REQUEST_CODE_PICK_RINGTONE = 4;
+
+    private static final int CURRENT_API_VERSION = android.os.Build.VERSION.SDK_INT;
 
     /** This is the Intent action to install a shortcut in the launcher. */
     private static final String ACTION_INSTALL_SHORTCUT =
             "com.android.launcher.action.INSTALL_SHORTCUT";
 
+    public static final String ACTION_SPLIT_COMPLETED = "splitCompleted";
+
+    // Phone specific option menu items
+    private boolean mSendToVoicemailState;
+    private boolean mArePhoneOptionsChangable;
+    private String mCustomRingtone;
+
     @SuppressWarnings("deprecation")
     private static final String LEGACY_AUTHORITY = android.provider.Contacts.AUTHORITY;
 
     private static final String MIMETYPE_GPLUS_PROFILE =
             "vnd.android.cursor.item/vnd.googleplus.profile";
-    private static final String GPLUS_PROFILE_DATA_5_ADD_TO_CIRCLE = "addtocircle";
     private static final String GPLUS_PROFILE_DATA_5_VIEW_PROFILE = "view";
     private static final String MIMETYPE_HANGOUTS =
             "vnd.android.cursor.item/vnd.googleplus.profile.comm";
@@ -243,6 +256,16 @@
     private static final String CALL_ORIGIN_QUICK_CONTACTS_ACTIVITY =
             "com.android.contacts.quickcontact.QuickContactActivity";
 
+    // Set true in {@link #onCreate} after orientation change for later use in processIntent().
+    private boolean mIsRecreatedInstance;
+    private boolean mShortcutUsageReported = false;
+
+    private boolean mShouldLog;
+
+    // Used to store and log the referrer package name and the contact type.
+    private String mReferrer;
+    private int mContactType;
+
     /**
      * The URI used to load the the Contact. Once the contact is loaded, use Contact#getLookupUri()
      * instead of referencing this URI.
@@ -255,38 +278,25 @@
     private boolean mHasAlreadyBeenOpened;
     private boolean mOnlyOnePhoneNumber;
     private boolean mOnlyOneEmail;
+    private ProgressDialog mProgressDialog;
+    private SaveServiceListener mListener;
 
     private QuickContactImageView mPhotoView;
     private ExpandingEntryCardView mContactCard;
     private ExpandingEntryCardView mNoContactDetailsCard;
     private ExpandingEntryCardView mRecentCard;
     private ExpandingEntryCardView mAboutCard;
+    private ExpandingEntryCardView mPermissionExplanationCard;
 
-    // Suggestion card.
-    private CardView mCollapsedSuggestionCardView;
-    private CardView mExpandSuggestionCardView;
-    private View mCollapasedSuggestionHeader;
-    private TextView mCollapsedSuggestionCardTitle;
-    private TextView mExpandSuggestionCardTitle;
-    private ImageView mSuggestionSummaryPhoto;
-    private TextView mSuggestionForName;
-    private TextView mSuggestionContactsNumber;
-    private LinearLayout mSuggestionList;
-    private Button mSuggestionsCancelButton;
-    private Button mSuggestionsLinkButton;
-    private boolean mIsSuggestionListCollapsed;
-    private boolean mSuggestionsShouldAutoSelected = true;
     private long mPreviousContactId = 0;
+    // Permission explanation card.
+    private boolean mShouldShowPermissionExplanation = false;
+    private String mPermissionExplanationCardSubHeader = "";
 
     private MultiShrinkScroller mScroller;
-    private SelectAccountDialogFragmentListener mSelectAccountFragmentListener;
     private AsyncTask<Void, Void, Cp2DataCardModel> mEntriesAndActionsTask;
     private AsyncTask<Void, Void, Void> mRecentDataTask;
 
-    private AggregationSuggestionEngine mAggregationSuggestionEngine;
-    private List<Suggestion> mSuggestions;
-
-    private TreeSet<Long> mSelectedAggregationIds = new TreeSet<>();
     /**
      * The last copy of Cp2DataCardModel that was passed to {@link #populateContactAndAboutCard}.
      */
@@ -337,6 +347,7 @@
             Im.CONTENT_ITEM_TYPE,
             GroupMembership.CONTENT_ITEM_TYPE,
             Identity.CONTENT_ITEM_TYPE,
+            CustomDataItem.MIMETYPE_CUSTOM_FIELD,
             Note.CONTENT_ITEM_TYPE);
 
     private static final BidiFormatter sBidiFormatter = BidiFormatter.getInstance();
@@ -344,9 +355,6 @@
     /** Id for the background contact loader */
     private static final int LOADER_CONTACT_ID = 0;
 
-    private static final String KEY_LOADER_EXTRA_PHONES =
-            QuickContactActivity.class.getCanonicalName() + ".KEY_LOADER_EXTRA_PHONES";
-
     /** Id for the background Sms Loader */
     private static final int LOADER_SMS_ID = 1;
     private static final int MAX_SMS_RETRIEVE = 3;
@@ -368,7 +376,11 @@
     private static final int MIN_NUM_CONTACT_ENTRIES_SHOWN = 3;
     private static final int MIN_NUM_COLLAPSED_RECENT_ENTRIES_SHOWN = 3;
     private static final int CARD_ENTRY_ID_EDIT_CONTACT = -2;
-
+    private static final int CARD_ENTRY_ID_REQUEST_PERMISSION = -3;
+    private static final String KEY_LOADER_EXTRA_PHONES =
+            QuickContactActivity.class.getCanonicalName() + ".KEY_LOADER_EXTRA_PHONES";
+    private static final String KEY_LOADER_EXTRA_SIP_NUMBERS =
+            QuickContactActivity.class.getCanonicalName() + ".KEY_LOADER_EXTRA_SIP_NUMBERS";
 
     private static final int[] mRecentLoaderIds = new int[]{
         LOADER_SMS_ID,
@@ -401,6 +413,13 @@
                 return;
             }
 
+            if (dataId == CARD_ENTRY_ID_REQUEST_PERMISSION) {
+                finish();
+                RequestDesiredPermissionsActivity.startPermissionActivity(
+                        QuickContactActivity.this);
+                return;
+            }
+
             // Pass the touch point through the intent for use in the InCallUI
             if (Intent.ACTION_CALL.equals(intent.getAction())) {
                 if (TouchPointManager.getInstance().hasValidPoint()) {
@@ -415,6 +434,11 @@
 
             mHasIntentLaunched = true;
             try {
+                final int actionType = intent.getIntExtra(EXTRA_ACTION_TYPE,
+                        ActionType.UNKNOWN_ACTION);
+                final String thirdPartyAction = intent.getStringExtra(EXTRA_THIRD_PARTY_ACTION);
+                Logger.logQuickContactEvent(mReferrer, mContactType,
+                        CardType.UNKNOWN_CARD, actionType, thirdPartyAction);
                 ImplicitIntentsUtil.startActivityInAppIfPossible(QuickContactActivity.this, intent);
             } catch (SecurityException ex) {
                 Toast.makeText(QuickContactActivity.this, R.string.missing_app,
@@ -476,202 +500,6 @@
         }
     };
 
-    @Override
-    public void onAggregationSuggestionChange() {
-        if (mAggregationSuggestionEngine == null) {
-            return;
-        }
-        mSuggestions = mAggregationSuggestionEngine.getSuggestions();
-        mCollapsedSuggestionCardView.setVisibility(View.GONE);
-        mExpandSuggestionCardView.setVisibility(View.GONE);
-        mSuggestionList.removeAllViews();
-
-        if (mContactData == null) {
-            return;
-        }
-
-        final String suggestionForName = mContactData.getDisplayName();
-        final int suggestionNumber = mSuggestions.size();
-
-        if (suggestionNumber <= 0) {
-            mSelectedAggregationIds.clear();
-            return;
-        }
-
-        ContactPhotoManager.DefaultImageRequest
-                request = new ContactPhotoManager.DefaultImageRequest(
-                suggestionForName, mContactData.getLookupKey(), ContactPhotoManager.TYPE_DEFAULT,
-                /* isCircular */ true );
-        final long photoId = mContactData.getPhotoId();
-        final byte[] photoBytes = mContactData.getThumbnailPhotoBinaryData();
-        if (photoBytes != null) {
-            ContactPhotoManager.getInstance(this).loadThumbnail(mSuggestionSummaryPhoto, photoId,
-                /* darkTheme */ false , /* isCircular */ true , request);
-        } else {
-            ContactPhotoManager.DEFAULT_AVATAR.applyDefaultImage(mSuggestionSummaryPhoto,
-                    -1, false, request);
-        }
-
-        final String suggestionTitle = getResources().getQuantityString(
-                R.plurals.quickcontact_suggestion_card_title, suggestionNumber, suggestionNumber);
-        mCollapsedSuggestionCardTitle.setText(suggestionTitle);
-        mExpandSuggestionCardTitle.setText(suggestionTitle);
-
-        mSuggestionForName.setText(suggestionForName);
-        final int linkedContactsNumber = mContactData.getRawContacts().size();
-        final String contactsInfo;
-        final String accountName = mContactData.getRawContacts().get(0).getAccountName();
-        if (linkedContactsNumber == 1 && accountName == null) {
-            mSuggestionContactsNumber.setVisibility(View.INVISIBLE);
-        }
-        if (linkedContactsNumber == 1 && accountName != null) {
-            contactsInfo = getResources().getString(R.string.contact_from_account_name,
-                    accountName);
-        } else {
-            contactsInfo = getResources().getString(
-                    R.string.quickcontact_contacts_number, linkedContactsNumber);
-        }
-        mSuggestionContactsNumber.setText(contactsInfo);
-
-        final Set<Long> suggestionContactIds = new HashSet<>();
-        for (Suggestion suggestion : mSuggestions) {
-            mSuggestionList.addView(inflateSuggestionListView(suggestion));
-            suggestionContactIds.add(suggestion.contactId);
-        }
-
-        if (mIsSuggestionListCollapsed) {
-            collapseSuggestionList();
-        } else {
-            expandSuggestionList();
-        }
-
-        // Remove contact Ids that are not suggestions.
-        final Set<Long> selectedSuggestionIds = com.google.common.collect.Sets.intersection(
-                mSelectedAggregationIds, suggestionContactIds);
-        mSelectedAggregationIds = new TreeSet<>(selectedSuggestionIds);
-        if (!mSelectedAggregationIds.isEmpty()) {
-            enableLinkButton();
-        }
-    }
-
-    private void collapseSuggestionList() {
-        mCollapsedSuggestionCardView.setVisibility(View.VISIBLE);
-        mExpandSuggestionCardView.setVisibility(View.GONE);
-        mIsSuggestionListCollapsed = true;
-    }
-
-    private void expandSuggestionList() {
-        mCollapsedSuggestionCardView.setVisibility(View.GONE);
-        mExpandSuggestionCardView.setVisibility(View.VISIBLE);
-        mIsSuggestionListCollapsed = false;
-    }
-
-    private View inflateSuggestionListView(final Suggestion suggestion) {
-        final LayoutInflater layoutInflater = LayoutInflater.from(this);
-        final View suggestionView = layoutInflater.inflate(
-                R.layout.quickcontact_suggestion_contact_item, null);
-
-        ContactPhotoManager.DefaultImageRequest
-                request = new ContactPhotoManager.DefaultImageRequest(
-                suggestion.name, suggestion.lookupKey, ContactPhotoManager.TYPE_DEFAULT, /*
-                isCircular */ true);
-        final ImageView photo = (ImageView) suggestionView.findViewById(
-                R.id.aggregation_suggestion_photo);
-        if (suggestion.photo != null) {
-            ContactPhotoManager.getInstance(this).loadThumbnail(photo, suggestion.photoId,
-                   /* darkTheme */ false, /* isCircular */ true, request);
-        } else {
-            ContactPhotoManager.DEFAULT_AVATAR.applyDefaultImage(photo, -1, false, request);
-        }
-
-        final TextView name = (TextView) suggestionView.findViewById(R.id.aggregation_suggestion_name);
-        name.setText(suggestion.name);
-
-        final TextView accountNameView = (TextView) suggestionView.findViewById(
-                R.id.aggregation_suggestion_account_name);
-        final String accountName = suggestion.rawContacts.get(0).accountName;
-        if (!TextUtils.isEmpty(accountName)) {
-            accountNameView.setText(
-                    getResources().getString(R.string.contact_from_account_name, accountName));
-        } else {
-            accountNameView.setVisibility(View.INVISIBLE);
-        }
-
-        final CheckBox checkbox = (CheckBox) suggestionView.findViewById(R.id.suggestion_checkbox);
-        final int[][] stateSet = new int[][] {
-                new int[] { android.R.attr.state_checked },
-                new int[] { -android.R.attr.state_checked }
-        };
-        final int[] colors = new int[] { mColorFilterColor, mColorFilterColor };
-        if (suggestion != null && suggestion.name != null) {
-            checkbox.setContentDescription(suggestion.name + " " +
-                    getResources().getString(R.string.contact_from_account_name, accountName));
-        }
-        checkbox.setButtonTintList(new ColorStateList(stateSet, colors));
-        checkbox.setChecked(mSuggestionsShouldAutoSelected ||
-                mSelectedAggregationIds.contains(suggestion.contactId));
-        if (checkbox.isChecked()) {
-            mSelectedAggregationIds.add(suggestion.contactId);
-        }
-        checkbox.setTag(suggestion.contactId);
-        checkbox.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                final CheckBox checkBox = (CheckBox) v;
-                final Long contactId = (Long) checkBox.getTag();
-                if (mSelectedAggregationIds.contains(mContactData.getId())) {
-                    mSelectedAggregationIds.remove(mContactData.getId());
-                }
-                if (checkBox.isChecked()) {
-                    mSelectedAggregationIds.add(contactId);
-                    if (mSelectedAggregationIds.size() >= 1) {
-                        enableLinkButton();
-                    }
-                } else {
-                    mSelectedAggregationIds.remove(contactId);
-                    mSuggestionsShouldAutoSelected = false;
-                    if (mSelectedAggregationIds.isEmpty()) {
-                        disableLinkButton();
-                    }
-                }
-            }
-        });
-
-        return suggestionView;
-    }
-
-    private void enableLinkButton() {
-        mSuggestionsLinkButton.setClickable(true);
-        mSuggestionsLinkButton.getBackground().setColorFilter(mColorFilter);
-        mSuggestionsLinkButton.setTextColor(
-                ContextCompat.getColor(this, android.R.color.white));
-        mSuggestionsLinkButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                // Join selected contacts.
-                if (!mSelectedAggregationIds.contains(mContactData.getId())) {
-                    mSelectedAggregationIds.add(mContactData.getId());
-                }
-                JoinContactsDialogFragment.start(
-                        QuickContactActivity.this, mSelectedAggregationIds);
-            }
-        });
-    }
-
-    @Override
-    public void onContactsJoined() {
-        disableLinkButton();
-    }
-
-    private void disableLinkButton() {
-        mSuggestionsLinkButton.setClickable(false);
-        mSuggestionsLinkButton.getBackground().setColorFilter(
-                ContextCompat.getColor(this, R.color.disabled_button_background),
-                PorterDuff.Mode.SRC_ATOP);
-        mSuggestionsLinkButton.setTextColor(
-                ContextCompat.getColor(this, R.color.disabled_button_text));
-    }
-
     private interface ContextMenuIds {
         static final int COPY_TEXT = 0;
         static final int CLEAR_DEFAULT = 1;
@@ -748,36 +576,6 @@
         }
     }
 
-    /**
-     * Headless fragment used to handle account selection callbacks invoked from
-     * {@link DirectoryContactUtil}.
-     */
-    public static class SelectAccountDialogFragmentListener extends Fragment
-            implements SelectAccountDialogFragment.Listener {
-
-        private QuickContactActivity mQuickContactActivity;
-
-        public SelectAccountDialogFragmentListener() {}
-
-        @Override
-        public void onAccountChosen(AccountWithDataSet account, Bundle extraArgs) {
-            DirectoryContactUtil.createCopy(mQuickContactActivity.mContactData.getContentValues(),
-                    account, mQuickContactActivity);
-        }
-
-        @Override
-        public void onAccountSelectorCancelled() {}
-
-        /**
-         * Set the parent activity. Since rotation can cause this fragment to be used across
-         * more than one activity instance, we need to explicitly set this value instead
-         * of making this class non-static.
-         */
-        public void setQuickContactActivity(QuickContactActivity quickContactActivity) {
-            mQuickContactActivity = quickContactActivity;
-        }
-    }
-
     final MultiShrinkScrollerListener mMultiShrinkScrollerListener
             = new MultiShrinkScrollerListener() {
         @Override
@@ -922,15 +720,81 @@
         Trace.beginSection("onCreate()");
         super.onCreate(savedInstanceState);
 
-        if (RequestPermissionsActivity.startPermissionActivity(this) ||
-                RequestDesiredPermissionsActivity.startPermissionActivity(this)) {
+        if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
             return;
         }
 
+        mIsRecreatedInstance = savedInstanceState != null;
+        if (mIsRecreatedInstance) {
+            mPreviousContactId = savedInstanceState.getLong(KEY_PREVIOUS_CONTACT_ID);
+
+            // Phone specific options menus
+            mSendToVoicemailState = savedInstanceState.getBoolean(KEY_SEND_TO_VOICE_MAIL_STATE);
+            mArePhoneOptionsChangable =
+                    savedInstanceState.getBoolean(KEY_ARE_PHONE_OPTIONS_CHANGEABLE);
+            mCustomRingtone = savedInstanceState.getString(KEY_CUSTOM_RINGTONE);
+        }
+        mProgressDialog = new ProgressDialog(this);
+        mProgressDialog.setIndeterminate(true);
+        mProgressDialog.setCancelable(false);
+
+        mListener = new SaveServiceListener();
+        final IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(ContactSaveService.BROADCAST_LINK_COMPLETE);
+        intentFilter.addAction(ContactSaveService.BROADCAST_UNLINK_COMPLETE);
+        LocalBroadcastManager.getInstance(this).registerReceiver(mListener,
+                intentFilter);
+
+
+        mShouldLog = true;
+
+        // There're 3 states for each permission:
+        // 1. App doesn't have permission, not asked user yet.
+        // 2. App doesn't have permission, user denied it previously.
+        // 3. App has permission.
+        // Permission explanation card is displayed only for case 1.
+        final boolean hasTelephonyFeature =
+                getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
+
+        final boolean hasCalendarPermission = PermissionsUtil.hasPermission(
+                this, Manifest.permission.READ_CALENDAR);
+        final boolean hasSMSPermission = hasTelephonyFeature
+                && PermissionsUtil.hasPermission(this, Manifest.permission.READ_SMS);
+
+        final boolean wasCalendarPermissionDenied =
+                ActivityCompat.shouldShowRequestPermissionRationale(
+                        this, Manifest.permission.READ_CALENDAR);
+        final boolean wasSMSPermissionDenied =
+                hasTelephonyFeature && ActivityCompat.shouldShowRequestPermissionRationale(
+                        this, Manifest.permission.READ_SMS);
+
+        final boolean shouldDisplayCalendarMessage =
+                !hasCalendarPermission && !wasCalendarPermissionDenied;
+        final boolean shouldDisplaySMSMessage =
+                hasTelephonyFeature && !hasSMSPermission && !wasSMSPermissionDenied;
+        mShouldShowPermissionExplanation = shouldDisplayCalendarMessage || shouldDisplaySMSMessage;
+
+        if (shouldDisplayCalendarMessage && shouldDisplaySMSMessage) {
+            mPermissionExplanationCardSubHeader =
+                    getString(R.string.permission_explanation_subheader_calendar_and_SMS);
+        } else if (shouldDisplayCalendarMessage) {
+            mPermissionExplanationCardSubHeader =
+                    getString(R.string.permission_explanation_subheader_calendar);
+        } else if (shouldDisplaySMSMessage) {
+            mPermissionExplanationCardSubHeader =
+                    getString(R.string.permission_explanation_subheader_SMS);
+        }
+
         final int previousScreenType = getIntent().getIntExtra
                 (EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.UNKNOWN);
         Logger.logScreenView(this, ScreenType.QUICK_CONTACT, previousScreenType);
 
+        mReferrer = getCallingPackage();
+        if (mReferrer == null && CompatUtils.isLollipopMr1Compatible() && getReferrer() != null) {
+            mReferrer = getReferrer().getAuthority();
+        }
+        mContactType = ContactType.UNKNOWN_TYPE;
+
         if (CompatUtils.isLollipopCompatible()) {
             getWindow().setStatusBarColor(Color.TRANSPARENT);
         }
@@ -951,61 +815,12 @@
         mNoContactDetailsCard = (ExpandingEntryCardView) findViewById(R.id.no_contact_data_card);
         mRecentCard = (ExpandingEntryCardView) findViewById(R.id.recent_card);
         mAboutCard = (ExpandingEntryCardView) findViewById(R.id.about_card);
+        mPermissionExplanationCard =
+                (ExpandingEntryCardView) findViewById(R.id.permission_explanation_card);
 
-        mCollapsedSuggestionCardView = (CardView) findViewById(R.id.collapsed_suggestion_card);
-        mExpandSuggestionCardView = (CardView) findViewById(R.id.expand_suggestion_card);
-        mCollapasedSuggestionHeader = findViewById(R.id.collapsed_suggestion_header);
-        mCollapsedSuggestionCardTitle = (TextView) findViewById(
-                R.id.collapsed_suggestion_card_title);
-        mExpandSuggestionCardTitle = (TextView) findViewById(R.id.expand_suggestion_card_title);
-        mSuggestionSummaryPhoto = (ImageView) findViewById(R.id.suggestion_icon);
-        mSuggestionForName = (TextView) findViewById(R.id.suggestion_for_name);
-        mSuggestionContactsNumber = (TextView) findViewById(R.id.suggestion_for_contacts_number);
-        mSuggestionList = (LinearLayout) findViewById(R.id.suggestion_list);
-        mSuggestionsCancelButton= (Button) findViewById(R.id.cancel_button);
-        mSuggestionsLinkButton = (Button) findViewById(R.id.link_button);
-        if (savedInstanceState != null) {
-            mIsSuggestionListCollapsed = savedInstanceState.getBoolean(
-                    KEY_IS_SUGGESTION_LIST_COLLAPSED, true);
-            mPreviousContactId = savedInstanceState.getLong(KEY_PREVIOUS_CONTACT_ID);
-            mSuggestionsShouldAutoSelected = savedInstanceState.getBoolean(
-                    KEY_SUGGESTIONS_AUTO_SELECTED, true);
-            mSelectedAggregationIds = (TreeSet<Long>)
-                    savedInstanceState.getSerializable(KEY_SELECTED_SUGGESTION_CONTACTS);
-        } else {
-            mIsSuggestionListCollapsed = true;
-            mSelectedAggregationIds.clear();
-        }
-        if (mSelectedAggregationIds.isEmpty()) {
-            disableLinkButton();
-        } else {
-            enableLinkButton();
-        }
-        mCollapasedSuggestionHeader.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                mCollapsedSuggestionCardView.setVisibility(View.GONE);
-                mExpandSuggestionCardView.setVisibility(View.VISIBLE);
-                mIsSuggestionListCollapsed = false;
-                mExpandSuggestionCardTitle.requestFocus();
-                mExpandSuggestionCardTitle.sendAccessibilityEvent(
-                        AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
-            }
-        });
-
-        mSuggestionsCancelButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                mCollapsedSuggestionCardView.setVisibility(View.VISIBLE);
-                mExpandSuggestionCardView.setVisibility(View.GONE);
-                mIsSuggestionListCollapsed = true;
-            }
-        });
-
+        mPermissionExplanationCard.setOnClickListener(mEntryClickHandler);
         mNoContactDetailsCard.setOnClickListener(mEntryClickHandler);
         mContactCard.setOnClickListener(mEntryClickHandler);
-        mContactCard.setExpandButtonText(
-        getResources().getString(R.string.expanding_entry_card_view_see_all));
         mContactCard.setOnCreateContextMenuListener(mEntryContextMenuListener);
 
         mRecentCard.setOnClickListener(mEntryClickHandler);
@@ -1050,16 +865,6 @@
 
         setHeaderNameText(R.string.missing_name);
 
-        mSelectAccountFragmentListener= (SelectAccountDialogFragmentListener) getFragmentManager()
-                .findFragmentByTag(FRAGMENT_TAG_SELECT_ACCOUNT);
-        if (mSelectAccountFragmentListener == null) {
-            mSelectAccountFragmentListener = new SelectAccountDialogFragmentListener();
-            getFragmentManager().beginTransaction().add(0, mSelectAccountFragmentListener,
-                    FRAGMENT_TAG_SELECT_ACCOUNT).commit();
-            mSelectAccountFragmentListener.setRetainInstance(true);
-        }
-        mSelectAccountFragmentListener.setQuickContactActivity(this);
-
         SchedulingUtils.doOnPreDraw(mScroller, /* drawNextFrame = */ true,
                 new Runnable() {
                     @Override
@@ -1110,15 +915,35 @@
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         final boolean deletedOrSplit = requestCode == REQUEST_CODE_CONTACT_EDITOR_ACTIVITY &&
                 (resultCode == ContactDeletionInteraction.RESULT_CODE_DELETED ||
-                resultCode == ContactEditorBaseActivity.RESULT_CODE_SPLIT);
+                resultCode == ContactEditorActivity.RESULT_CODE_SPLIT);
+        setResult(resultCode, data);
         if (deletedOrSplit) {
             finish();
         } else if (requestCode == REQUEST_CODE_CONTACT_SELECTION_ACTIVITY &&
                 resultCode != RESULT_CANCELED) {
             processIntent(data);
+        } else if (requestCode == REQUEST_CODE_JOIN) {
+            // Ignore failed requests
+            if (resultCode != Activity.RESULT_OK) {
+                return;
+            }
+            if (data != null) {
+                joinAggregate(ContentUris.parseId(data.getData()));
+            }
+        } else if (requestCode == REQUEST_CODE_PICK_RINGTONE && data != null) {
+            final Uri pickedUri = data.getParcelableExtra(
+                        RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
+            onRingtonePicked(pickedUri);
         }
     }
 
+    private void onRingtonePicked(Uri pickedUri) {
+        mCustomRingtone = EditorUiUtils.getRingtoneStringFromUri(pickedUri, CURRENT_API_VERSION);
+        Intent intent = ContactSaveService.createSetRingtone(
+                this, mLookupUri, mCustomRingtone);
+        this.startService(intent);
+    }
+
     @Override
     protected void onNewIntent(Intent intent) {
         super.onNewIntent(intent);
@@ -1134,12 +959,12 @@
         if (mColorFilter != null) {
             savedInstanceState.putInt(KEY_THEME_COLOR, mColorFilterColor);
         }
-        savedInstanceState.putBoolean(KEY_IS_SUGGESTION_LIST_COLLAPSED, mIsSuggestionListCollapsed);
         savedInstanceState.putLong(KEY_PREVIOUS_CONTACT_ID, mPreviousContactId);
-        savedInstanceState.putBoolean(
-                KEY_SUGGESTIONS_AUTO_SELECTED, mSuggestionsShouldAutoSelected);
-        savedInstanceState.putSerializable(
-                KEY_SELECTED_SUGGESTION_CONTACTS, mSelectedAggregationIds);
+
+        // Phone specific options
+        savedInstanceState.putBoolean(KEY_SEND_TO_VOICE_MAIL_STATE, mSendToVoicemailState);
+        savedInstanceState.putBoolean(KEY_ARE_PHONE_OPTIONS_CHANGEABLE, mArePhoneOptionsChangable);
+        savedInstanceState.putString(KEY_CUSTOM_RINGTONE, mCustomRingtone);
     }
 
     private void processIntent(Intent intent) {
@@ -1147,7 +972,16 @@
             finish();
             return;
         }
+        if (ACTION_SPLIT_COMPLETED.equals(intent.getAction())) {
+            Toast.makeText(this, R.string.contactUnlinkedToast, Toast.LENGTH_SHORT).show();
+            finish();
+            return;
+        }
+
         Uri lookupUri = intent.getData();
+        if (intent.getBooleanExtra(EXTRA_CONTACT_EDITED, false)) {
+            setResult(ContactEditorActivity.RESULT_CODE_EDITED);
+        }
 
         // Check to see whether it comes from the old version.
         if (lookupUri != null && LEGACY_AUTHORITY.equals(lookupUri.getAuthority())) {
@@ -1163,6 +997,7 @@
                 getIntent().getStringExtra(QuickContact.EXTRA_PRIORITIZED_MIMETYPE);
         final Uri oldLookupUri = mLookupUri;
 
+
         if (lookupUri == null) {
             finish();
             return;
@@ -1170,15 +1005,19 @@
         mLookupUri = lookupUri;
         mExcludeMimes = intent.getStringArrayExtra(QuickContact.EXTRA_EXCLUDE_MIMES);
         if (oldLookupUri == null) {
+            // Should not log if only orientation changes.
+            mShouldLog = !mIsRecreatedInstance;
             mContactLoader = (ContactLoader) getLoaderManager().initLoader(
                     LOADER_CONTACT_ID, null, mLoaderContactCallbacks);
         } else if (oldLookupUri != mLookupUri) {
+            // Should log when reload happens, regardless of orientation change.
+            mShouldLog = true;
             // After copying a directory contact, the contact URI changes. Therefore,
             // we need to reload the new contact.
             destroyInteractionLoaders();
             mContactLoader = (ContactLoader) (Loader<?>) getLoaderManager().getLoader(
                     LOADER_CONTACT_ID);
-            mContactLoader.setLookupUri(mLookupUri);
+            mContactLoader.setNewLookup(mLookupUri);
             mCachedCp2DataCardModel = null;
         }
         mContactLoader.forceLoad();
@@ -1241,7 +1080,27 @@
      */
     private void bindContactData(final Contact data) {
         Trace.beginSection("bindContactData");
+
+        final int actionType = mContactData == null ? ActionType.START : ActionType.UNKNOWN_ACTION;
         mContactData = data;
+
+        final int newContactType;
+        if (DirectoryContactUtil.isDirectoryContact(mContactData)) {
+            newContactType = ContactType.DIRECTORY;
+        } else if (InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)) {
+            newContactType = ContactType.INVISIBLE_AND_ADDABLE;
+        } else if (isContactEditable()) {
+            newContactType = ContactType.EDITABLE;
+        } else {
+            newContactType = ContactType.UNKNOWN_TYPE;
+        }
+        if (mShouldLog && mContactType != newContactType) {
+            Logger.logQuickContactEvent(mReferrer, newContactType, CardType.UNKNOWN_CARD,
+                    actionType, /* thirdPartyAction */ null);
+        }
+        mContactType = newContactType;
+
+        setStateForPhoneMenuItems(mContactData);
         invalidateOptionsMenu();
 
         Trace.endSection();
@@ -1291,12 +1150,12 @@
     private void bindDataToCards(Cp2DataCardModel cp2DataCardModel) {
         startInteractionLoaders(cp2DataCardModel);
         populateContactAndAboutCard(cp2DataCardModel, /* shouldAddPhoneticName */ true);
-        populateSuggestionCard();
     }
 
     private void startInteractionLoaders(Cp2DataCardModel cp2DataCardModel) {
         final Map<String, List<DataItem>> dataItemsMap = cp2DataCardModel.dataItemsMap;
         final List<DataItem> phoneDataItems = dataItemsMap.get(Phone.CONTENT_ITEM_TYPE);
+        final List<DataItem> sipCallDataItems = dataItemsMap.get(SipAddress.CONTENT_ITEM_TYPE);
         if (phoneDataItems != null && phoneDataItems.size() == 1) {
             mOnlyOnePhoneNumber = true;
         }
@@ -1307,8 +1166,16 @@
                 phoneNumbers[i] = ((PhoneDataItem) phoneDataItems.get(i)).getNumber();
             }
         }
+        String[] sipNumbers = null;
+        if (sipCallDataItems != null) {
+            sipNumbers = new String[sipCallDataItems.size()];
+            for (int i = 0; i < sipCallDataItems.size(); ++i) {
+                sipNumbers[i] = ((SipAddressDataItem) sipCallDataItems.get(i)).getSipAddress();
+            }
+        }
         final Bundle phonesExtraBundle = new Bundle();
         phonesExtraBundle.putStringArray(KEY_LOADER_EXTRA_PHONES, phoneNumbers);
+        phonesExtraBundle.putStringArray(KEY_LOADER_EXTRA_SIP_NUMBERS, sipNumbers);
 
         Trace.beginSection("start sms loader");
         getLoaderManager().initLoader(
@@ -1393,50 +1260,14 @@
             destroyInteractionLoaders();
             startInteractionLoaders(mCachedCp2DataCardModel);
         }
+        maybeShowProgressDialog();
     }
 
-    private void populateSuggestionCard() {
-        // Initialize suggestion related view and data.
-        if (mPreviousContactId != mContactData.getId()) {
-            mCollapsedSuggestionCardView.setVisibility(View.GONE);
-            mExpandSuggestionCardView.setVisibility(View.GONE);
-            mIsSuggestionListCollapsed = true;
-            mSuggestionsShouldAutoSelected = true;
-            mSuggestionList.removeAllViews();
-        }
 
-        // Do not show the card when it's directory contact or invisible.
-        if (DirectoryContactUtil.isDirectoryContact(mContactData)
-                || InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)) {
-            return;
-        }
-
-        if (mAggregationSuggestionEngine == null) {
-            mAggregationSuggestionEngine = new AggregationSuggestionEngine(this);
-            mAggregationSuggestionEngine.setListener(this);
-            mAggregationSuggestionEngine.setSuggestionsLimit(getResources().getInteger(
-                    R.integer.quickcontact_suggestions_limit));
-            mAggregationSuggestionEngine.start();
-        }
-
-        mAggregationSuggestionEngine.setContactId(mContactData.getId());
-        if (mPreviousContactId != 0
-                && mPreviousContactId != mContactData.getId()) {
-            // Clear selected Ids when listing suggestions for new contact Id.
-            mSelectedAggregationIds.clear();
-        }
-        mPreviousContactId = mContactData.getId();
-
-        // Trigger suggestion engine to compute suggestions.
-        if (mContactData.getId() <= 0) {
-            return;
-        }
-        final ContentValues values = new ContentValues();
-        values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
-                mContactData.getDisplayName());
-        values.put(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME,
-                mContactData.getPhoneticName());
-        mAggregationSuggestionEngine.onNameChange(ValuesDelta.fromBefore(values));
+    @Override
+    protected void onPause() {
+        super.onPause();
+        dismissProgressBar();
     }
 
     private void populateContactAndAboutCard(Cp2DataCardModel cp2DataCardModel,
@@ -1452,17 +1283,16 @@
         final String customAboutCardName = cp2DataCardModel.customAboutCardName;
 
         if (contactCardEntries.size() > 0) {
-            final boolean firstEntriesArePrioritizedMimeType =
-                    !TextUtils.isEmpty(mExtraPrioritizedMimeType) &&
-                    mCachedCp2DataCardModel.dataItemsMap.containsKey(mExtraPrioritizedMimeType) &&
-                    mCachedCp2DataCardModel.dataItemsMap.get(mExtraPrioritizedMimeType).size() != 0;
             mContactCard.initialize(contactCardEntries,
                     /* numInitialVisibleEntries = */ MIN_NUM_CONTACT_ENTRIES_SHOWN,
                     /* isExpanded = */ mContactCard.isExpanded(),
-                    /* isAlwaysExpanded = */ false,
+                    /* isAlwaysExpanded = */ true,
                     mExpandingEntryCardViewListener,
-                    mScroller,
-                    firstEntriesArePrioritizedMimeType);
+                    mScroller);
+            if (mContactCard.getVisibility() == View.GONE && mShouldLog) {
+                Logger.logQuickContactEvent(mReferrer, mContactType, CardType.CONTACT,
+                        ActionType.UNKNOWN_ACTION, /* thirdPartyAction */ null);
+            }
             mContactCard.setVisibility(View.VISIBLE);
         } else {
             mContactCard.setVisibility(View.GONE);
@@ -1522,25 +1352,32 @@
                 mScroller);
 
         if (contactCardEntries.size() == 0 && aboutCardEntries.size() == 0) {
-            initializeNoContactDetailCard();
+            initializeNoContactDetailCard(cp2DataCardModel.areAllRawContactsSimAccounts);
         } else {
             mNoContactDetailsCard.setVisibility(View.GONE);
         }
 
         // If the Recent card is already initialized (all recent data is loaded), show the About
         // card if it has entries. Otherwise About card visibility will be set in bindRecentData()
-        if (isAllRecentDataLoaded() && aboutCardEntries.size() > 0) {
-            mAboutCard.setVisibility(View.VISIBLE);
+        if (aboutCardEntries.size() > 0) {
+            if (mAboutCard.getVisibility() == View.GONE && mShouldLog) {
+                Logger.logQuickContactEvent(mReferrer, mContactType, CardType.ABOUT,
+                        ActionType.UNKNOWN_ACTION, /* thirdPartyAction */ null);
+            }
+            if (isAllRecentDataLoaded()) {
+                mAboutCard.setVisibility(View.VISIBLE);
+            }
         }
         Trace.endSection();
     }
 
     /**
      * Create a card that shows "Add email" and "Add phone number" entries in grey.
+     * When contact is a SIM contact, only shows "Add phone number".
      */
-    private void initializeNoContactDetailCard() {
-        final Drawable phoneIcon = getResources().getDrawable(
-                R.drawable.ic_phone_24dp).mutate();
+    private void initializeNoContactDetailCard(boolean areAllRawContactsSimAccounts) {
+        final Drawable phoneIcon = ResourcesCompat.getDrawable(getResources(),
+                R.drawable.quantum_ic_phone_vd_theme_24, null).mutate();
         final Entry phonePromptEntry = new Entry(CARD_ENTRY_ID_EDIT_CONTACT,
                 phoneIcon, getString(R.string.quickcontact_add_phone_number),
                 /* subHeader = */ null, /* subHeaderIcon = */ null, /* text = */ null,
@@ -1553,27 +1390,30 @@
                 /* thirdContentDescription = */ null,
                 /* thirdAction = */ Entry.ACTION_NONE,
                 /* thirdExtras = */ null,
-                R.drawable.ic_phone_24dp);
-
-        final Drawable emailIcon = getResources().getDrawable(
-                R.drawable.ic_email_24dp).mutate();
-        final Entry emailPromptEntry = new Entry(CARD_ENTRY_ID_EDIT_CONTACT,
-                emailIcon, getString(R.string.quickcontact_add_email), /* subHeader = */ null,
-                /* subHeaderIcon = */ null,
-                /* text = */ null, /* textIcon = */ null, /* primaryContentDescription = */ null,
-                getEditContactIntent(), /* alternateIcon = */ null,
-                /* alternateIntent = */ null, /* alternateContentDescription = */ null,
-                /* shouldApplyColor = */ true, /* isEditable = */ false,
-                /* EntryContextMenuInfo = */ null, /* thirdIcon = */ null,
-                /* thirdIntent = */ null, /* thirdContentDescription = */ null,
-                /* thirdAction = */ Entry.ACTION_NONE, /* thirdExtras = */ null,
-                R.drawable.ic_email_24dp);
+                R.drawable.quantum_ic_phone_vd_theme_24);
 
         final List<List<Entry>> promptEntries = new ArrayList<>();
         promptEntries.add(new ArrayList<Entry>(1));
-        promptEntries.add(new ArrayList<Entry>(1));
         promptEntries.get(0).add(phonePromptEntry);
-        promptEntries.get(1).add(emailPromptEntry);
+
+        if (!areAllRawContactsSimAccounts) {
+            final Drawable emailIcon = ResourcesCompat.getDrawable(getResources(),
+                    R.drawable.quantum_ic_email_vd_theme_24, null).mutate();
+            final Entry emailPromptEntry = new Entry(CARD_ENTRY_ID_EDIT_CONTACT,
+                    emailIcon, getString(R.string.quickcontact_add_email), /* subHeader = */ null,
+                    /* subHeaderIcon = */ null,
+                    /* text = */ null, /* textIcon = */ null, /* primaryContentDescription = */ null,
+                    getEditContactIntent(), /* alternateIcon = */ null,
+                    /* alternateIntent = */ null, /* alternateContentDescription = */ null,
+                    /* shouldApplyColor = */ true, /* isEditable = */ false,
+                    /* EntryContextMenuInfo = */ null, /* thirdIcon = */ null,
+                    /* thirdIntent = */ null, /* thirdContentDescription = */ null,
+                    /* thirdAction = */ Entry.ACTION_NONE, /* thirdExtras = */ null,
+                    R.drawable.quantum_ic_email_vd_theme_24);
+
+            promptEntries.add(new ArrayList<Entry>(1));
+            promptEntries.get(1).add(emailPromptEntry);
+        }
 
         final int subHeaderTextColor = getResources().getColor(
                 R.color.quickcontact_entry_sub_header_text_color);
@@ -1581,6 +1421,10 @@
                 new PorterDuffColorFilter(subHeaderTextColor, PorterDuff.Mode.SRC_ATOP);
         mNoContactDetailsCard.initialize(promptEntries, 2, /* isExpanded = */ true,
                 /* isAlwaysExpanded = */ true, mExpandingEntryCardViewListener, mScroller);
+        if (mNoContactDetailsCard.getVisibility() == View.GONE && mShouldLog) {
+            Logger.logQuickContactEvent(mReferrer, mContactType, CardType.NO_CONTACT,
+                    ActionType.UNKNOWN_ACTION, /* thirdPartyAction */ null);
+        }
         mNoContactDetailsCard.setVisibility(View.VISIBLE);
         mNoContactDetailsCard.setEntryHeaderColor(subHeaderTextColor);
         mNoContactDetailsCard.setColorAndFilter(subHeaderTextColor, greyColorFilter);
@@ -1680,6 +1524,7 @@
         dataModel.aboutCardEntries = aboutCardEntries;
         dataModel.contactCardEntries = contactCardEntries;
         dataModel.dataItemsMap = dataItemsMap;
+        dataModel.areAllRawContactsSimAccounts = data.areAllRawContactsSimAccounts(this);
         return dataModel;
     }
 
@@ -1696,6 +1541,7 @@
         public List<List<Entry>> aboutCardEntries;
         public List<List<Entry>> contactCardEntries;
         public String customAboutCardName;
+        public boolean areAllRawContactsSimAccounts;
     }
 
     private static class MutableString {
@@ -1791,6 +1637,14 @@
                 entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header,
                         dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
             }
+        } else if (dataItem instanceof CustomDataItem) {
+            final CustomDataItem customDataItem = (CustomDataItem) dataItem;
+            final String summary = customDataItem.getSummary();
+            header = TextUtils.isEmpty(summary)
+                    ? res.getString(R.string.label_custom_field) : summary;
+            subHeader = customDataItem.getContent();
+            entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header,
+                    dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
         } else if (dataItem instanceof NoteDataItem) {
             final NoteDataItem note = (NoteDataItem) dataItem;
             header = res.getString(R.string.header_note_entry);
@@ -1871,19 +1725,21 @@
                     }
                 }
                 primaryContentDescription.append(header);
-                phoneContentDescription = com.android.contacts.common.util.ContactDisplayUtils
+                phoneContentDescription = com.android.contacts.util.ContactDisplayUtils
                         .getTelephoneTtsSpannable(primaryContentDescription.toString(), header);
-                icon = res.getDrawable(R.drawable.ic_phone_24dp);
-                iconResourceId = R.drawable.ic_phone_24dp;
+                iconResourceId = R.drawable.quantum_ic_phone_vd_theme_24;
+                icon = res.getDrawable(iconResourceId);
                 if (PhoneCapabilityTester.isPhone(context)) {
                     intent = CallUtil.getCallIntent(phone.getNumber());
+                    intent.putExtra(EXTRA_ACTION_TYPE, ActionType.CALL);
                 }
                 alternateIntent = new Intent(Intent.ACTION_SENDTO,
                         Uri.fromParts(ContactsUtils.SCHEME_SMSTO, phone.getNumber(), null));
+                alternateIntent.putExtra(EXTRA_ACTION_TYPE, ActionType.SMS);
 
-                alternateIcon = res.getDrawable(R.drawable.ic_message_24dp_mirrored);
+                alternateIcon = res.getDrawable(R.drawable.quantum_ic_message_vd_theme_24);
                 alternateContentDescription.append(res.getString(R.string.sms_custom, header));
-                smsContentDescription = com.android.contacts.common.util.ContactDisplayUtils
+                smsContentDescription = com.android.contacts.util.ContactDisplayUtils
                         .getTelephoneTtsSpannable(alternateContentDescription.toString(), header);
 
                 int videoCapability = CallUtil.getVideoCallingAvailability(context);
@@ -1892,7 +1748,7 @@
                 boolean isVideoEnabled = (videoCapability & CallUtil.VIDEO_CALLING_ENABLED) != 0;
 
                 if (CallUtil.isCallWithSubjectSupported(context)) {
-                    thirdIcon = res.getDrawable(R.drawable.ic_call_note_white_24dp);
+                    thirdIcon = res.getDrawable(R.drawable.quantum_ic_perm_phone_msg_vd_theme_24);
                     thirdAction = Entry.ACTION_CALL_WITH_SUBJECT;
                     thirdContentDescription =
                             res.getString(R.string.call_with_a_note);
@@ -1919,10 +1775,11 @@
                     boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
 
                     if ((isPresenceEnabled && isPresent) || !isPresenceEnabled) {
-                        thirdIcon = res.getDrawable(R.drawable.ic_videocam);
+                        thirdIcon = res.getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
                         thirdAction = Entry.ACTION_INTENT;
                         thirdIntent = CallUtil.getVideoCallIntent(phone.getNumber(),
                                 CALL_ORIGIN_QUICK_CONTACTS_ACTIVITY);
+                        thirdIntent.putExtra(EXTRA_ACTION_TYPE, ActionType.VIDEOCALL);
                         thirdContentDescription =
                                 res.getString(R.string.description_video_call);
                     }
@@ -1935,6 +1792,7 @@
                 primaryContentDescription.append(res.getString(R.string.email_other)).append(" ");
                 final Uri mailUri = Uri.fromParts(ContactsUtils.SCHEME_MAILTO, address, null);
                 intent = new Intent(Intent.ACTION_SENDTO, mailUri);
+                intent.putExtra(EXTRA_ACTION_TYPE, ActionType.EMAIL);
                 header = email.getAddress();
                 entryContextMenuInfo = new EntryContextMenuInfo(header,
                         res.getString(R.string.emailLabelsGroup), dataItem.getMimeType(),
@@ -1945,8 +1803,8 @@
                     primaryContentDescription.append(text).append(" ");
                 }
                 primaryContentDescription.append(header);
-                icon = res.getDrawable(R.drawable.ic_email_24dp);
-                iconResourceId = R.drawable.ic_email_24dp;
+                iconResourceId = R.drawable.quantum_ic_email_vd_theme_24;
+                icon = res.getDrawable(iconResourceId);
             }
         } else if (dataItem instanceof StructuredPostalDataItem) {
             StructuredPostalDataItem postal = (StructuredPostalDataItem) dataItem;
@@ -1954,6 +1812,7 @@
             if (!TextUtils.isEmpty(postalAddress)) {
                 primaryContentDescription.append(res.getString(R.string.map_other)).append(" ");
                 intent = StructuredPostalUtils.getViewPostalAddressIntent(postalAddress);
+                intent.putExtra(EXTRA_ACTION_TYPE, ActionType.ADDRESS);
                 header = postal.getFormattedAddress();
                 entryContextMenuInfo = new EntryContextMenuInfo(header,
                         res.getString(R.string.postalLabelsGroup), dataItem.getMimeType(),
@@ -1966,11 +1825,12 @@
                 primaryContentDescription.append(header);
                 alternateIntent =
                         StructuredPostalUtils.getViewPostalAddressDirectionsIntent(postalAddress);
-                alternateIcon = res.getDrawable(R.drawable.ic_directions_24dp);
+                alternateIntent.putExtra(EXTRA_ACTION_TYPE, ActionType.DIRECTIONS);
+                alternateIcon = res.getDrawable(R.drawable.quantum_ic_directions_vd_theme_24);
                 alternateContentDescription.append(res.getString(
                         R.string.content_description_directions)).append(" ").append(header);
-                icon = res.getDrawable(R.drawable.ic_place_24dp);
-                iconResourceId = R.drawable.ic_place_24dp;
+                iconResourceId = R.drawable.quantum_ic_place_vd_theme_24;
+                icon = res.getDrawable(iconResourceId);
             }
         } else if (dataItem instanceof SipAddressDataItem) {
             final SipAddressDataItem sip = (SipAddressDataItem) dataItem;
@@ -1981,6 +1841,7 @@
                 if (PhoneCapabilityTester.isSipPhone(context)) {
                     final Uri callUri = Uri.fromParts(PhoneAccount.SCHEME_SIP, address, null);
                     intent = CallUtil.getCallIntent(callUri);
+                    intent.putExtra(EXTRA_ACTION_TYPE, ActionType.SIPCALL);
                 }
                 header = address;
                 entryContextMenuInfo = new EntryContextMenuInfo(header,
@@ -1992,8 +1853,8 @@
                     primaryContentDescription.append(text).append(" ");
                 }
                 primaryContentDescription.append(header);
-                icon = res.getDrawable(R.drawable.ic_dialer_sip_black_24dp);
-                iconResourceId = R.drawable.ic_dialer_sip_black_24dp;
+                iconResourceId = R.drawable.quantum_ic_dialer_sip_vd_theme_24;
+                icon = res.getDrawable(iconResourceId);
             }
         } else if (dataItem instanceof StructuredNameDataItem) {
             // If the name is already set and this is not the super primary value then leave the
@@ -2015,74 +1876,52 @@
             intent = new Intent(Intent.ACTION_VIEW);
             final Uri uri = ContentUris.withAppendedId(Data.CONTENT_URI, dataItem.getId());
             intent.setDataAndType(uri, dataItem.getMimeType());
+            intent.putExtra(EXTRA_ACTION_TYPE, ActionType.THIRD_PARTY);
+            intent.putExtra(EXTRA_THIRD_PARTY_ACTION, dataItem.getMimeType());
 
             if (intent != null) {
                 final String mimetype = intent.getType();
 
                 // Build advanced entry for known 3p types. Otherwise default to ResolveCache icon.
-                switch (mimetype) {
-                    case MIMETYPE_GPLUS_PROFILE:
-                        // If a secondDataItem is available, use it to build an entry with
-                        // alternate actions
-                        if (secondDataItem != null) {
-                            icon = res.getDrawable(R.drawable.ic_google_plus_24dp);
-                            alternateIcon = res.getDrawable(R.drawable.ic_add_to_circles_black_24);
-                            final GPlusOrHangoutsDataItemModel itemModel =
-                                    new GPlusOrHangoutsDataItemModel(intent, alternateIntent,
-                                            dataItem, secondDataItem, alternateContentDescription,
-                                            header, text, context);
+                if (MIMETYPE_HANGOUTS.equals(mimetype)) {
+                    // If a secondDataItem is available, use it to build an entry with
+                    // alternate actions
+                    if (secondDataItem != null) {
+                        icon = res.getDrawable(R.drawable.quantum_ic_hangout_vd_theme_24);
+                        alternateIcon = res.getDrawable(
+                                R.drawable.quantum_ic_hangout_video_vd_theme_24);
+                        final HangoutsDataItemModel itemModel =
+                                new HangoutsDataItemModel(intent, alternateIntent,
+                                        dataItem, secondDataItem, alternateContentDescription,
+                                        header, text, context);
 
-                            populateGPlusOrHangoutsDataItemModel(itemModel);
-                            intent = itemModel.intent;
-                            alternateIntent = itemModel.alternateIntent;
-                            alternateContentDescription = itemModel.alternateContentDescription;
-                            header = itemModel.header;
-                            text = itemModel.text;
+                        populateHangoutsDataItemModel(itemModel);
+                        intent = itemModel.intent;
+                        alternateIntent = itemModel.alternateIntent;
+                        alternateContentDescription = itemModel.alternateContentDescription;
+                        header = itemModel.header;
+                        text = itemModel.text;
+                    } else {
+                        if (HANGOUTS_DATA_5_VIDEO.equals(intent.getDataString())) {
+                            icon = res.getDrawable(R.drawable.quantum_ic_hangout_video_vd_theme_24);
                         } else {
-                            if (GPLUS_PROFILE_DATA_5_ADD_TO_CIRCLE.equals(
-                                    intent.getDataString())) {
-                                icon = res.getDrawable(R.drawable.ic_add_to_circles_black_24);
-                            } else {
-                                icon = res.getDrawable(R.drawable.ic_google_plus_24dp);
-                            }
+                            icon = res.getDrawable(R.drawable.quantum_ic_hangout_vd_theme_24);
                         }
-                        break;
-                    case MIMETYPE_HANGOUTS:
-                        // If a secondDataItem is available, use it to build an entry with
-                        // alternate actions
-                        if (secondDataItem != null) {
-                            icon = res.getDrawable(R.drawable.ic_hangout_24dp);
-                            alternateIcon = res.getDrawable(R.drawable.ic_hangout_video_24dp);
-                            final GPlusOrHangoutsDataItemModel itemModel =
-                                    new GPlusOrHangoutsDataItemModel(intent, alternateIntent,
-                                            dataItem, secondDataItem, alternateContentDescription,
-                                            header, text, context);
+                    }
+                } else {
+                    icon = ResolveCache.getInstance(context).getIcon(
+                            dataItem.getMimeType(), intent);
+                    // Call mutate to create a new Drawable.ConstantState for color filtering
+                    if (icon != null) {
+                        icon.mutate();
+                    }
+                    shouldApplyColor = false;
 
-                            populateGPlusOrHangoutsDataItemModel(itemModel);
-                            intent = itemModel.intent;
-                            alternateIntent = itemModel.alternateIntent;
-                            alternateContentDescription = itemModel.alternateContentDescription;
-                            header = itemModel.header;
-                            text = itemModel.text;
-                        } else {
-                            if (HANGOUTS_DATA_5_VIDEO.equals(intent.getDataString())) {
-                                icon = res.getDrawable(R.drawable.ic_hangout_video_24dp);
-                            } else {
-                                icon = res.getDrawable(R.drawable.ic_hangout_24dp);
-                            }
-                        }
-                        break;
-                    default:
+                    if (!MIMETYPE_GPLUS_PROFILE.equals(mimetype)) {
                         entryContextMenuInfo = new EntryContextMenuInfo(header, mimetype,
                                 dataItem.getMimeType(), dataItem.getId(),
                                 dataItem.isSuperPrimary());
-                        icon = ResolveCache.getInstance(context).getIcon(
-                                dataItem.getMimeType(), intent);
-                        // Call mutate to create a new Drawable.ConstantState for color filtering
-                        if (icon != null) {
-                            icon.mutate();
-                        }
-                        shouldApplyColor = false;
+                    }
                 }
             }
         }
@@ -2130,9 +1969,10 @@
     private List<Entry> dataItemsToEntries(List<DataItem> dataItems,
             MutableString aboutCardTitleOut) {
         // Hangouts and G+ use two data items to create one entry.
-        if (dataItems.get(0).getMimeType().equals(MIMETYPE_GPLUS_PROFILE) ||
-                dataItems.get(0).getMimeType().equals(MIMETYPE_HANGOUTS)) {
-            return gPlusOrHangoutsDataItemsToEntries(dataItems);
+        if (dataItems.get(0).getMimeType().equals(MIMETYPE_GPLUS_PROFILE)) {
+            return gPlusDataItemsToEntries(dataItems);
+        } else if (dataItems.get(0).getMimeType().equals(MIMETYPE_HANGOUTS)) {
+            return hangoutsDataItemsToEntries(dataItems);
         } else {
             final List<Entry> entries = new ArrayList<>();
             for (DataItem dataItem : dataItems) {
@@ -2147,15 +1987,10 @@
     }
 
     /**
-     * G+ and Hangout entries are unique in that a single ExpandingEntryCardView.Entry consists
-     * of two data items. This method attempts to build each entry using the two data items if
-     * they are available. If there are more or less than two data items, a fall back is used
-     * and each data item gets its own entry.
+     * Put the data items into buckets based on the raw contact id
      */
-    private List<Entry> gPlusOrHangoutsDataItemsToEntries(List<DataItem> dataItems) {
-        final List<Entry> entries = new ArrayList<>();
+    private Map<Long, List<DataItem>> dataItemsToBucket(List<DataItem> dataItems) {
         final Map<Long, List<DataItem>> buckets = new HashMap<>();
-        // Put the data items into buckets based on the raw contact id
         for (DataItem dataItem : dataItems) {
             List<DataItem> bucket = buckets.get(dataItem.getRawContactId());
             if (bucket == null) {
@@ -2164,10 +1999,43 @@
             }
             bucket.add(dataItem);
         }
+        return buckets;
+    }
+
+    /**
+     * For G+ entries, a single ExpandingEntryCardView.Entry consists of two data items. This
+     * method use only the View profile to build entry.
+     */
+    private List<Entry> gPlusDataItemsToEntries(List<DataItem> dataItems) {
+        final List<Entry> entries = new ArrayList<>();
+
+        for (List<DataItem> bucket : dataItemsToBucket(dataItems).values()) {
+            for (DataItem dataItem : bucket) {
+                if (GPLUS_PROFILE_DATA_5_VIEW_PROFILE.equals(
+                        dataItem.getContentValues().getAsString(Data.DATA5))) {
+                    final Entry entry = dataItemToEntry(dataItem, /* secondDataItem = */ null,
+                            this, mContactData, /* aboutCardName = */ null);
+                    if (entry != null) {
+                        entries.add(entry);
+                    }
+                }
+            }
+        }
+        return entries;
+    }
+
+    /**
+     * For Hangouts entries, a single ExpandingEntryCardView.Entry consists of two data items. This
+     * method attempts to build each entry using the two data items if they are available. If there
+     * are more or less than two data items, a fall back is used and each data item gets its own
+     * entry.
+     */
+    private List<Entry> hangoutsDataItemsToEntries(List<DataItem> dataItems) {
+        final List<Entry> entries = new ArrayList<>();
 
         // Use the buckets to build entries. If a bucket contains two data items, build the special
         // entry, otherwise fall back to the normal entry.
-        for (List<DataItem> bucket : buckets.values()) {
+        for (List<DataItem> bucket : dataItemsToBucket(dataItems).values()) {
             if (bucket.size() == 2) {
                 // Use the pair to build an entry
                 final Entry entry = dataItemToEntry(bucket.get(0),
@@ -2190,10 +2058,10 @@
     }
 
     /**
-     * Used for statically passing around G+ or Hangouts data items and entry fields to
-     * populateGPlusOrHangoutsDataItemModel.
+     * Used for statically passing around Hangouts data items and entry fields to
+     * populateHangoutsDataItemModel.
      */
-    private static final class GPlusOrHangoutsDataItemModel {
+    private static final class HangoutsDataItemModel {
         public Intent intent;
         public Intent alternateIntent;
         public DataItem dataItem;
@@ -2203,7 +2071,7 @@
         public String text;
         public Context context;
 
-        public GPlusOrHangoutsDataItemModel(Intent intent, Intent alternateIntent, DataItem dataItem,
+        public HangoutsDataItemModel(Intent intent, Intent alternateIntent, DataItem dataItem,
                 DataItem secondDataItem, StringBuilder alternateContentDescription, String header,
                 String text, Context context) {
             this.intent = intent;
@@ -2217,29 +2085,28 @@
         }
     }
 
-    private static void populateGPlusOrHangoutsDataItemModel(
-            GPlusOrHangoutsDataItemModel dataModel) {
+    private static void populateHangoutsDataItemModel(
+            HangoutsDataItemModel dataModel) {
         final Intent secondIntent = new Intent(Intent.ACTION_VIEW);
         secondIntent.setDataAndType(ContentUris.withAppendedId(Data.CONTENT_URI,
                 dataModel.secondDataItem.getId()), dataModel.secondDataItem.getMimeType());
+        secondIntent.putExtra(EXTRA_ACTION_TYPE, ActionType.THIRD_PARTY);
+        secondIntent.putExtra(EXTRA_THIRD_PARTY_ACTION, dataModel.secondDataItem.getMimeType());
+
         // There is no guarantee the order the data items come in. Second
         // data item does not necessarily mean it's the alternate.
-        // Hangouts video and Add to circles should be alternate. Swap if needed
+        // Hangouts video should be alternate. Swap if needed
         if (HANGOUTS_DATA_5_VIDEO.equals(
-                dataModel.dataItem.getContentValues().getAsString(Data.DATA5)) ||
-                GPLUS_PROFILE_DATA_5_ADD_TO_CIRCLE.equals(
-                        dataModel.dataItem.getContentValues().getAsString(Data.DATA5))) {
+                dataModel.dataItem.getContentValues().getAsString(Data.DATA5))) {
             dataModel.alternateIntent = dataModel.intent;
             dataModel.alternateContentDescription = new StringBuilder(dataModel.header);
 
             dataModel.intent = secondIntent;
-            dataModel.header = dataModel.secondDataItem.buildDataStringForDisplay(dataModel.context,
-                    dataModel.secondDataItem.getDataKind());
+            dataModel.header = dataModel.secondDataItem.buildDataStringForDisplay(
+                    dataModel.context, dataModel.secondDataItem.getDataKind());
             dataModel.text = dataModel.secondDataItem.getDataKind().typeColumn;
         } else if (HANGOUTS_DATA_5_MESSAGE.equals(
-                dataModel.dataItem.getContentValues().getAsString(Data.DATA5)) ||
-                GPLUS_PROFILE_DATA_5_VIEW_PROFILE.equals(
-                        dataModel.dataItem.getContentValues().getAsString(Data.DATA5))) {
+                dataModel.dataItem.getContentValues().getAsString(Data.DATA5))) {
             dataModel.alternateIntent = secondIntent;
             dataModel.alternateContentDescription = new StringBuilder(
                     dataModel.secondDataItem.buildDataStringForDisplay(dataModel.context,
@@ -2323,8 +2190,6 @@
                 if (imageViewDrawable == mPhotoView.getDrawable()) {
                     mHasComputedThemeColor = true;
                     setThemeColor(palette);
-                    // update color and photo in suggestion card
-                    onAggregationSuggestionChange();
                 }
             }
         }.execute();
@@ -2342,7 +2207,6 @@
         mContactCard.setColorAndFilter(mColorFilterColor, mColorFilter);
         mRecentCard.setColorAndFilter(mColorFilterColor, mColorFilter);
         mAboutCard.setColorAndFilter(mColorFilterColor, mColorFilter);
-        mSuggestionsCancelButton.setTextColor(mColorFilterColor);
     }
 
     private void updateStatusBarColor() {
@@ -2437,6 +2301,11 @@
                     return;
                 }
 
+                if (!mIsRecreatedInstance && !mShortcutUsageReported && data != null) {
+                    mShortcutUsageReported = true;
+                    DynamicShortcuts.reportShortcutUsed(QuickContactActivity.this,
+                            data.getLookupKey());
+                }
                 bindContactData(data);
 
             } finally {
@@ -2452,13 +2321,20 @@
             // Load all contact data. We need loadGroupMetaData=true to determine whether the
             // contact is invisible. If it is, we need to display an "Add to Contacts" MenuItem.
             return new ContactLoader(getApplicationContext(), mLookupUri,
-                    true /*loadGroupMetaData*/, false /*loadInvitableAccountTypes*/,
-                    true /*postViewNotification*/, true /*computeFormattedPhoneNumber*/);
+                    true /*loadGroupMetaData*/, true /*postViewNotification*/,
+                    true /*computeFormattedPhoneNumber*/);
         }
     };
 
     @Override
     public void onBackPressed() {
+        final int previousScreenType = getIntent().getIntExtra
+                (EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.UNKNOWN);
+        if ((previousScreenType == ScreenType.ALL_CONTACTS
+                || previousScreenType == ScreenType.FAVORITES)
+                && !SharedPreferenceUtil.getHamburgerPromoTriggerActionHappenedBefore(this)) {
+            SharedPreferenceUtil.setHamburgerPromoTriggerActionHappenedBefore(this);
+        }
         if (mScroller != null) {
             if (!mIsExitAnimationInProgress) {
                 mScroller.scrollOffBottom();
@@ -2507,6 +2383,7 @@
                     loader = new CallLogInteractionsLoader(
                             QuickContactActivity.this,
                             args.getStringArray(KEY_LOADER_EXTRA_PHONES),
+                            args.getStringArray(KEY_LOADER_EXTRA_SIP_NUMBERS),
                             MAX_CALL_LOG_RETRIEVE);
             }
             return loader;
@@ -2594,7 +2471,62 @@
                     /* numInitialVisibleEntries = */ MIN_NUM_COLLAPSED_RECENT_ENTRIES_SHOWN,
                     /* isExpanded = */ mRecentCard.isExpanded(), /* isAlwaysExpanded = */ false,
                             mExpandingEntryCardViewListener, mScroller);
+                    if (mRecentCard.getVisibility() == View.GONE && mShouldLog) {
+                        Logger.logQuickContactEvent(mReferrer, mContactType, CardType.RECENT,
+                                ActionType.UNKNOWN_ACTION, /* thirdPartyAction */ null);
+                    }
                     mRecentCard.setVisibility(View.VISIBLE);
+                } else {
+                    mRecentCard.setVisibility(View.GONE);
+                }
+
+                Trace.endSection();
+                Trace.beginSection("initialize permission explanation card");
+
+                final Drawable historyIcon = ResourcesCompat.getDrawable(getResources(),
+                        R.drawable.quantum_ic_history_vd_theme_24, null);
+
+                final Entry permissionExplanationEntry = new Entry(CARD_ENTRY_ID_REQUEST_PERMISSION,
+                        historyIcon, getString(R.string.permission_explanation_header),
+                        mPermissionExplanationCardSubHeader, /* subHeaderIcon = */ null,
+                        /* text = */ null, /* textIcon = */ null,
+                        /* primaryContentDescription = */ null, getIntent(),
+                        /* alternateIcon = */ null, /* alternateIntent = */ null,
+                        /* alternateContentDescription = */ null, /* shouldApplyColor = */ true,
+                        /* isEditable = */ false, /* EntryContextMenuInfo = */ null,
+                        /* thirdIcon = */ null, /* thirdIntent = */ null,
+                        /* thirdContentDescription = */ null, /* thirdAction = */ Entry.ACTION_NONE,
+                        /* thirdExtras = */ null, R.drawable.quantum_ic_history_vd_theme_24);
+
+                final List<List<Entry>> permissionExplanationEntries = new ArrayList<>();
+                permissionExplanationEntries.add(new ArrayList<Entry>());
+                permissionExplanationEntries.get(0).add(permissionExplanationEntry);
+
+                final int subHeaderTextColor = getResources().getColor(android.R.color.white);
+                final PorterDuffColorFilter whiteColorFilter =
+                        new PorterDuffColorFilter(subHeaderTextColor, PorterDuff.Mode.SRC_ATOP);
+
+                mPermissionExplanationCard.initialize(permissionExplanationEntries,
+                        /* numInitialVisibleEntries = */ 1,
+                        /* isExpanded = */ true,
+                        /* isAlwaysExpanded = */ true,
+                        /* listener = */ null,
+                        mScroller);
+
+                mPermissionExplanationCard.setColorAndFilter(subHeaderTextColor, whiteColorFilter);
+                mPermissionExplanationCard.setBackgroundColor(mColorFilterColor);
+                mPermissionExplanationCard.setEntryHeaderColor(subHeaderTextColor);
+                mPermissionExplanationCard.setEntrySubHeaderColor(subHeaderTextColor);
+
+                if (mShouldShowPermissionExplanation) {
+                    if (mPermissionExplanationCard.getVisibility() == View.GONE
+                            && mShouldLog) {
+                        Logger.logQuickContactEvent(mReferrer, mContactType, CardType.PERMISSION,
+                                ActionType.UNKNOWN_ACTION, /* thirdPartyAction */ null);
+                    }
+                    mPermissionExplanationCard.setVisibility(View.VISIBLE);
+                } else {
+                    mPermissionExplanationCard.setVisibility(View.GONE);
                 }
 
                 Trace.endSection();
@@ -2631,10 +2563,8 @@
 
     @Override
     public void onDestroy() {
+        LocalBroadcastManager.getInstance(this).unregisterReceiver(mListener);
         super.onDestroy();
-        if (mAggregationSuggestionEngine != null) {
-            mAggregationSuggestionEngine.quit();
-        }
     }
 
     /**
@@ -2652,7 +2582,7 @@
     }
 
     private Intent getEditContactIntent() {
-        return EditorIntents.createCompactEditContactIntent(
+        return EditorIntents.createEditContactIntent(QuickContactActivity.this,
                 mContactData.getLookupUri(),
                 mHasComputedThemeColor
                         ? new MaterialPalette(mColorFilterColor, mStatusBarColor) : null,
@@ -2670,31 +2600,22 @@
         ContactDeletionInteraction.start(this, contactUri, /* finishActivityWhenDone =*/ true);
     }
 
-    private void toggleStar(MenuItem starredMenuItem) {
-        // Make sure there is a contact
-        if (mContactData != null) {
-            // Read the current starred value from the UI instead of using the last
-            // loaded state. This allows rapid tapping without writing the same
-            // value several times
-            final boolean isStarred = starredMenuItem.isChecked();
+    private void toggleStar(MenuItem starredMenuItem, boolean isStarred) {
+        // To improve responsiveness, swap out the picture (and tag) in the UI already
+        ContactDisplayUtils.configureStarredMenuItem(starredMenuItem,
+                mContactData.isDirectoryEntry(), mContactData.isUserProfile(), !isStarred);
 
-            // To improve responsiveness, swap out the picture (and tag) in the UI already
-            ContactDisplayUtils.configureStarredMenuItem(starredMenuItem,
-                    mContactData.isDirectoryEntry(), mContactData.isUserProfile(),
-                    !isStarred);
+        // Now perform the real save
+        final Intent intent = ContactSaveService.createSetStarredIntent(
+                QuickContactActivity.this, mContactData.getLookupUri(), !isStarred);
+        startService(intent);
 
-            // Now perform the real save
-            final Intent intent = ContactSaveService.createSetStarredIntent(
-                    QuickContactActivity.this, mContactData.getLookupUri(), !isStarred);
-            startService(intent);
-
-            final CharSequence accessibilityText = !isStarred
-                    ? getResources().getText(R.string.description_action_menu_add_star)
-                    : getResources().getText(R.string.description_action_menu_remove_star);
-            // Accessibility actions need to have an associated view. We can't access the MenuItem's
-            // underlying view, so put this accessibility action on the root view.
-            mScroller.announceForAccessibility(accessibilityText);
-        }
+        final CharSequence accessibilityText = !isStarred
+                ? getResources().getText(R.string.description_action_menu_add_star)
+                : getResources().getText(R.string.description_action_menu_remove_star);
+        // Accessibility actions need to have an associated view. We can't access the MenuItem's
+        // underlying view, so put this accessibility action on the root view.
+        mScroller.announceForAccessibility(accessibilityText);
     }
 
     private void shareContact() {
@@ -2705,7 +2626,8 @@
         intent.putExtra(Intent.EXTRA_STREAM, shareUri);
 
         // Launch chooser to share contact via
-        final CharSequence chooseTitle = getText(R.string.share_via);
+        final CharSequence chooseTitle = getResources().getQuantityString(
+                R.plurals.title_share_via, /* quantity */ 1);
         final Intent chooseIntent = Intent.createChooser(intent, chooseTitle);
 
         try {
@@ -2725,22 +2647,32 @@
 
                     @Override
                     public void onShortcutIntentCreated(Uri uri, Intent shortcutIntent) {
-                        // Broadcast the shortcutIntent to the launcher to create a
-                        // shortcut to this contact
-                        shortcutIntent.setAction(ACTION_INSTALL_SHORTCUT);
-                        QuickContactActivity.this.sendBroadcast(shortcutIntent);
-
-                        // Send a toast to give feedback to the user that a shortcut to this
-                        // contact was added to the launcher.
-                        final String displayName = shortcutIntent
-                                .getStringExtra(Intent.EXTRA_SHORTCUT_NAME);
-                        final String toastMessage = TextUtils.isEmpty(displayName)
-                                ? getString(R.string.createContactShortcutSuccessful_NoName)
-                                : getString(R.string.createContactShortcutSuccessful, displayName);
-                        Toast.makeText(QuickContactActivity.this, toastMessage,
-                                Toast.LENGTH_SHORT).show();
+                        if (BuildCompat.isAtLeastO()) {
+                            final ShortcutManager shortcutManager = (ShortcutManager)
+                                    getSystemService(SHORTCUT_SERVICE);
+                            final DynamicShortcuts shortcuts =
+                                    new DynamicShortcuts(QuickContactActivity.this);
+                            shortcutManager.requestPinShortcut(
+                                    shortcuts.getQuickContactShortcutInfo(
+                                            mContactData.getId(), mContactData.getLookupKey(),
+                                            mContactData.getDisplayName()), null);
+                        } else {
+                            // Broadcast the shortcutIntent to the launcher to create a
+                            // shortcut to this contact
+                            shortcutIntent.setAction(ACTION_INSTALL_SHORTCUT);
+                            QuickContactActivity.this.sendBroadcast(shortcutIntent);
+                            // Send a toast to give feedback to the user that a shortcut to this
+                            // contact was added to the launcher.
+                            final String displayName = shortcutIntent
+                                    .getStringExtra(Intent.EXTRA_SHORTCUT_NAME);
+                            final String toastMessage = TextUtils.isEmpty(displayName)
+                                    ? getString(R.string.createContactShortcutSuccessful_NoName)
+                                    : getString(R.string.createContactShortcutSuccessful,
+                                            displayName);
+                            Toast.makeText(QuickContactActivity.this, toastMessage,
+                                    Toast.LENGTH_SHORT).show();
+                        }
                     }
-
                 });
         builder.createContactShortcutIntent(mContactData.getLookupUri());
     }
@@ -2750,6 +2682,13 @@
                 mContactData.isDirectoryEntry()) {
             return false;
         }
+
+        if (BuildCompat.isAtLeastO()) {
+            final ShortcutManager manager = (ShortcutManager)
+                    getSystemService(Context.SHORTCUT_SERVICE);
+            return manager.isRequestPinShortcutSupported();
+        }
+
         final Intent createShortcutIntent = new Intent();
         createShortcutIntent.setAction(ACTION_INSTALL_SHORTCUT);
         final List<ResolveInfo> receivers = getPackageManager()
@@ -2757,6 +2696,15 @@
         return receivers != null && receivers.size() > 0;
     }
 
+    private void setStateForPhoneMenuItems(Contact contact) {
+        if (contact != null) {
+            mSendToVoicemailState = contact.isSendToVoicemail();
+            mCustomRingtone = contact.getCustomRingtone();
+            mArePhoneOptionsChangable = isContactEditable()
+                    && PhoneCapabilityTester.isPhone(this);
+        }
+    }
+
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         final MenuInflater inflater = getMenuInflater();
@@ -2777,15 +2725,27 @@
             editMenuItem.setVisible(true);
             if (DirectoryContactUtil.isDirectoryContact(mContactData) || InvisibleContactUtil
                     .isInvisibleAndAddable(mContactData, this)) {
-                editMenuItem.setIcon(R.drawable.ic_person_add_tinted_24dp);
+                editMenuItem.setIcon(R.drawable.quantum_ic_person_add_vd_theme_24);
                 editMenuItem.setTitle(R.string.menu_add_contact);
             } else if (isContactEditable()) {
-                editMenuItem.setIcon(R.drawable.ic_create_24dp);
+                editMenuItem.setIcon(R.drawable.quantum_ic_create_vd_theme_24);
                 editMenuItem.setTitle(R.string.menu_editContact);
             } else {
                 editMenuItem.setVisible(false);
             }
 
+            // The link menu item is only visible if this has a single raw contact.
+            final MenuItem joinMenuItem = menu.findItem(R.id.menu_join);
+            joinMenuItem.setVisible(!InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)
+                    && isContactEditable() && !mContactData.isUserProfile()
+                    && !mContactData.isMultipleRawContacts());
+
+            // Viewing linked contacts can only happen if there are multiple raw contacts and
+            // the link menu isn't available.
+            final MenuItem linkedContactsMenuItem = menu.findItem(R.id.menu_linked_contacts);
+            linkedContactsMenuItem.setVisible(mContactData.isMultipleRawContacts()
+                    && !joinMenuItem.isVisible());
+
             final MenuItem deleteMenuItem = menu.findItem(R.id.menu_delete);
             deleteMenuItem.setVisible(isContactEditable() && !mContactData.isUserProfile());
 
@@ -2795,6 +2755,17 @@
             final MenuItem shortcutMenuItem = menu.findItem(R.id.menu_create_contact_shortcut);
             shortcutMenuItem.setVisible(isShortcutCreatable());
 
+            // Hide telephony-related settings (ringtone, send to voicemail)
+            // if we don't have a telephone
+            final MenuItem ringToneMenuItem = menu.findItem(R.id.menu_set_ringtone);
+            ringToneMenuItem.setVisible(!mContactData.isUserProfile() && mArePhoneOptionsChangable);
+
+            final MenuItem sendToVoiceMailMenuItem = menu.findItem(R.id.menu_send_to_voicemail);
+            sendToVoiceMailMenuItem.setVisible(!mContactData.isUserProfile()
+                    && mArePhoneOptionsChangable);
+            sendToVoiceMailMenuItem.setTitle(mSendToVoicemailState
+                    ? R.string.menu_unredirect_calls_to_vm : R.string.menu_redirect_calls_to_vm);
+
             final MenuItem helpMenu = menu.findItem(R.id.menu_help);
             helpMenu.setVisible(HelpUtils.isHelpAndFeedbackAvailable());
 
@@ -2805,90 +2776,227 @@
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.menu_star:
-                toggleStar(item);
-                return true;
-            case R.id.menu_edit:
-                if (DirectoryContactUtil.isDirectoryContact(mContactData)) {
-                    // This action is used to launch the contact selector, with the option of
-                    // creating a new contact. Creating a new contact is an INSERT, while selecting
-                    // an exisiting one is an edit. The fields in the edit screen will be
-                    // prepopulated with data.
+        final int id = item.getItemId();
+        if (id == R.id.menu_star) {// Make sure there is a contact
+            if (mContactData != null) {
+                // Read the current starred value from the UI instead of using the last
+                // loaded state. This allows rapid tapping without writing the same
+                // value several times
+                final boolean isStarred = item.isChecked();
+                Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                        isStarred ? ActionType.UNSTAR : ActionType.STAR,
+                            /* thirdPartyAction */ null);
+                toggleStar(item, isStarred);
+            }
+        } else if (id == R.id.menu_edit) {
+            if (DirectoryContactUtil.isDirectoryContact(mContactData)) {
+                Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                        ActionType.ADD, /* thirdPartyAction */ null);
 
-                    final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
-                    intent.setType(Contacts.CONTENT_ITEM_TYPE);
+                // This action is used to launch the contact selector, with the option of
+                // creating a new contact. Creating a new contact is an INSERT, while selecting
+                // an exisiting one is an edit. The fields in the edit screen will be
+                // prepopulated with data.
 
-                    ArrayList<ContentValues> values = mContactData.getContentValues();
+                final Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
+                intent.setType(Contacts.CONTENT_ITEM_TYPE);
 
-                    // Only pre-fill the name field if the provided display name is an nickname
-                    // or better (e.g. structured name, nickname)
-                    if (mContactData.getDisplayNameSource() >= DisplayNameSources.NICKNAME) {
-                        intent.putExtra(Intents.Insert.NAME, mContactData.getDisplayName());
-                    } else if (mContactData.getDisplayNameSource()
-                            == DisplayNameSources.ORGANIZATION) {
-                        // This is probably an organization. Instead of copying the organization
-                        // name into a name entry, copy it into the organization entry. This
-                        // way we will still consider the contact an organization.
-                        final ContentValues organization = new ContentValues();
-                        organization.put(Organization.COMPANY, mContactData.getDisplayName());
-                        organization.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
-                        values.add(organization);
-                    }
+                ArrayList<ContentValues> values = mContactData.getContentValues();
 
-                    // Last time used and times used are aggregated values from the usage stat
-                    // table. They need to be removed from data values so the SQL table can insert
-                    // properly
-                    for (ContentValues value : values) {
-                        value.remove(Data.LAST_TIME_USED);
-                        value.remove(Data.TIMES_USED);
-                    }
-                    intent.putExtra(Intents.Insert.DATA, values);
-
-                    // If the contact can only export to the same account, add it to the intent.
-                    // Otherwise the ContactEditorFragment will show a dialog for selecting an
-                    // account.
-                    if (mContactData.getDirectoryExportSupport() ==
-                            Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY) {
-                        intent.putExtra(Intents.Insert.EXTRA_ACCOUNT,
-                                new Account(mContactData.getDirectoryAccountName(),
-                                        mContactData.getDirectoryAccountType()));
-                        intent.putExtra(Intents.Insert.EXTRA_DATA_SET,
-                                mContactData.getRawContacts().get(0).getDataSet());
-                    }
-
-                    // Add this flag to disable the delete menu option on directory contact joins
-                    // with local contacts. The delete option is ambiguous when joining contacts.
-                    intent.putExtra(ContactEditorFragment.INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION,
-                            true);
-
-                    startActivityForResult(intent, REQUEST_CODE_CONTACT_SELECTION_ACTIVITY);
-                } else if (InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)) {
-                    InvisibleContactUtil.addToDefaultGroup(mContactData, this);
-                } else if (isContactEditable()) {
-                    editContact();
+                // Only pre-fill the name field if the provided display name is an nickname
+                // or better (e.g. structured name, nickname)
+                if (mContactData.getDisplayNameSource() >= DisplayNameSources.NICKNAME) {
+                    intent.putExtra(Intents.Insert.NAME, mContactData.getDisplayName());
+                } else if (mContactData.getDisplayNameSource()
+                        == DisplayNameSources.ORGANIZATION) {
+                    // This is probably an organization. Instead of copying the organization
+                    // name into a name entry, copy it into the organization entry. This
+                    // way we will still consider the contact an organization.
+                    final ContentValues organization = new ContentValues();
+                    organization.put(Organization.COMPANY, mContactData.getDisplayName());
+                    organization.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
+                    values.add(organization);
                 }
-                return true;
-            case R.id.menu_delete:
-                if (isContactEditable()) {
-                    deleteContact();
+
+                // Last time used and times used are aggregated values from the usage stat
+                // table. They need to be removed from data values so the SQL table can insert
+                // properly
+                for (ContentValues value : values) {
+                    value.remove(Data.LAST_TIME_USED);
+                    value.remove(Data.TIMES_USED);
                 }
-                return true;
-            case R.id.menu_share:
-                if (isContactShareable()) {
-                    shareContact();
+                intent.putExtra(Intents.Insert.DATA, values);
+
+                // If the contact can only export to the same account, add it to the intent.
+                // Otherwise the ContactEditorFragment will show a dialog for selecting
+                // an account.
+                if (mContactData.getDirectoryExportSupport() ==
+                        Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY) {
+                    intent.putExtra(Intents.Insert.EXTRA_ACCOUNT,
+                            new Account(mContactData.getDirectoryAccountName(),
+                                    mContactData.getDirectoryAccountType()));
+                    intent.putExtra(Intents.Insert.EXTRA_DATA_SET,
+                            mContactData.getRawContacts().get(0).getDataSet());
                 }
-                return true;
-            case R.id.menu_create_contact_shortcut:
-                if (isShortcutCreatable()) {
-                    createLauncherShortcutWithContact();
+
+                // Add this flag to disable the delete menu option on directory contact joins
+                // with local contacts. The delete option is ambiguous when joining contacts.
+                intent.putExtra(
+                        ContactEditorFragment.INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION,
+                        true);
+
+                intent.setPackage(getPackageName());
+                startActivityForResult(intent, REQUEST_CODE_CONTACT_SELECTION_ACTIVITY);
+            } else if (InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)) {
+                Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                        ActionType.ADD, /* thirdPartyAction */ null);
+                InvisibleContactUtil.addToDefaultGroup(mContactData, this);
+            } else if (isContactEditable()) {
+                Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                        ActionType.EDIT, /* thirdPartyAction */ null);
+                editContact();
+            }
+        } else if (id == R.id.menu_join) {
+            return doJoinContactAction();
+        } else if (id == R.id.menu_linked_contacts) {
+            return showRawContactPickerDialog();
+        } else if (id == R.id.menu_delete) {
+            Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                    ActionType.REMOVE, /* thirdPartyAction */ null);
+            if (isContactEditable()) {
+                deleteContact();
+            }
+        } else if (id == R.id.menu_share) {
+            Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                    ActionType.SHARE, /* thirdPartyAction */ null);
+            if (isContactShareable()) {
+                shareContact();
+            }
+        } else if (id == R.id.menu_create_contact_shortcut) {
+            Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                    ActionType.SHORTCUT, /* thirdPartyAction */ null);
+            if (isShortcutCreatable()) {
+                createLauncherShortcutWithContact();
+            }
+        } else if (id == R.id.menu_set_ringtone) {
+            doPickRingtone();
+        } else if (id == R.id.menu_send_to_voicemail) {// Update state and save
+            mSendToVoicemailState = !mSendToVoicemailState;
+            item.setTitle(mSendToVoicemailState
+                    ? R.string.menu_unredirect_calls_to_vm
+                    : R.string.menu_redirect_calls_to_vm);
+            final Intent intent = ContactSaveService.createSetSendToVoicemail(
+                    this, mLookupUri, mSendToVoicemailState);
+            this.startService(intent);
+        } else if (id == R.id.menu_help) {
+            Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                    ActionType.HELP, /* thirdPartyAction */ null);
+            HelpUtils.launchHelpAndFeedbackForContactScreen(this);
+        } else {
+            Logger.logQuickContactEvent(mReferrer, mContactType, CardType.UNKNOWN_CARD,
+                    ActionType.UNKNOWN_ACTION, /* thirdPartyAction */ null);
+            return super.onOptionsItemSelected(item);
+        }
+        return true;
+    }
+
+    private boolean showRawContactPickerDialog() {
+        if (mContactData == null) return false;
+        startActivityForResult(EditorIntents.createViewLinkedContactsIntent(
+                QuickContactActivity.this,
+                mContactData.getLookupUri(),
+                mHasComputedThemeColor
+                        ? new MaterialPalette(mColorFilterColor, mStatusBarColor)
+                        : null),
+                REQUEST_CODE_CONTACT_EDITOR_ACTIVITY);
+        return true;
+    }
+
+    private boolean doJoinContactAction() {
+        if (mContactData == null) return false;
+
+        mPreviousContactId = mContactData.getId();
+        final Intent intent = new Intent(this, ContactSelectionActivity.class);
+        intent.setAction(UiIntentActions.PICK_JOIN_CONTACT_ACTION);
+        intent.putExtra(UiIntentActions.TARGET_CONTACT_ID_EXTRA_KEY, mPreviousContactId);
+        startActivityForResult(intent, REQUEST_CODE_JOIN);
+        return true;
+    }
+
+    /**
+     * Performs aggregation with the contact selected by the user from suggestions or A-Z list.
+     */
+    private void joinAggregate(final long contactId) {
+        final Intent intent = ContactSaveService.createJoinContactsIntent(
+                this, mPreviousContactId, contactId, QuickContactActivity.class,
+                Intent.ACTION_VIEW);
+        this.startService(intent);
+        showLinkProgressBar();
+    }
+
+
+    private void doPickRingtone() {
+        final Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
+        // Allow user to pick 'Default'
+        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
+        // Show only ringtones
+        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
+        // Allow the user to pick a silent ringtone
+        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
+
+        final Uri ringtoneUri = EditorUiUtils.getRingtoneUriFromString(mCustomRingtone,
+                CURRENT_API_VERSION);
+
+        // Put checkmark next to the current ringtone for this contact
+        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
+
+        // Launch!
+        try {
+            startActivityForResult(intent, REQUEST_CODE_PICK_RINGTONE);
+        } catch (ActivityNotFoundException ex) {
+            Toast.makeText(this, R.string.missing_app, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    private void dismissProgressBar() {
+        if (mProgressDialog != null && mProgressDialog.isShowing()) {
+            mProgressDialog.dismiss();
+        }
+    }
+
+    private void showLinkProgressBar() {
+        mProgressDialog.setMessage(getString(R.string.contacts_linking_progress_bar));
+        mProgressDialog.show();
+    }
+
+    private void showUnlinkProgressBar() {
+        mProgressDialog.setMessage(getString(R.string.contacts_unlinking_progress_bar));
+        mProgressDialog.show();
+    }
+
+    private void maybeShowProgressDialog() {
+        if (ContactSaveService.getState().isActionPending(
+                ContactSaveService.ACTION_SPLIT_CONTACT)) {
+            showUnlinkProgressBar();
+        } else if (ContactSaveService.getState().isActionPending(
+                ContactSaveService.ACTION_JOIN_CONTACTS)) {
+            showLinkProgressBar();
+        }
+    }
+
+    private class SaveServiceListener extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Got broadcast from save service " + intent);
+            }
+            if (ContactSaveService.BROADCAST_LINK_COMPLETE.equals(intent.getAction())
+                    || ContactSaveService.BROADCAST_UNLINK_COMPLETE.equals(intent.getAction())) {
+                dismissProgressBar();
+                if (ContactSaveService.BROADCAST_UNLINK_COMPLETE.equals(intent.getAction())) {
+                    finish();
                 }
-                return true;
-            case R.id.menu_help:
-                HelpUtils.launchHelpAndFeedbackForContactScreen(this);
-                return true;
-            default:
-                return super.onOptionsItemSelected(item);
+            }
         }
     }
 }
diff --git a/src/com/android/contacts/quickcontact/QuickContactBroadcastReceiver.java b/src/com/android/contacts/quickcontact/QuickContactBroadcastReceiver.java
index dae10af..a032a99 100644
--- a/src/com/android/contacts/quickcontact/QuickContactBroadcastReceiver.java
+++ b/src/com/android/contacts/quickcontact/QuickContactBroadcastReceiver.java
@@ -16,14 +16,14 @@
 
 package com.android.contacts.quickcontact;
 
-import com.android.contacts.common.util.ImplicitIntentsUtil;
-
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.provider.ContactsContract.QuickContact;
 
+import com.android.contacts.util.ImplicitIntentsUtil;
+
 /**
  * Broadcast receiver for invoking QuickContact using the widget. The purpose of this pass-through
  * intent receiver is to disable the animation that RemoveViews typically do, which interfere
diff --git a/src/com/android/contacts/quickcontact/ResolveCache.java b/src/com/android/contacts/quickcontact/ResolveCache.java
index e6adaf3..303132c 100644
--- a/src/com/android/contacts/quickcontact/ResolveCache.java
+++ b/src/com/android/contacts/quickcontact/ResolveCache.java
@@ -25,9 +25,9 @@
 import android.content.pm.ResolveInfo;
 import android.graphics.drawable.Drawable;
 import android.provider.ContactsContract.CommonDataKinds.SipAddress;
-import android.text.TextUtils;
 
 import com.android.contacts.util.PhoneCapabilityTester;
+
 import com.google.common.collect.Sets;
 
 import java.lang.ref.SoftReference;
diff --git a/src/com/android/contacts/quickcontact/WebAddress.java b/src/com/android/contacts/quickcontact/WebAddress.java
index d55a874..1b6ca19 100644
--- a/src/com/android/contacts/quickcontact/WebAddress.java
+++ b/src/com/android/contacts/quickcontact/WebAddress.java
@@ -16,12 +16,12 @@
 
 package com.android.contacts.quickcontact;
 
+import static android.util.Patterns.GOOD_IRI_CHAR;
+
 import java.util.Locale;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import static android.util.Patterns.GOOD_IRI_CHAR;
-
 /**
  * Below is a partial copy of {@link android.net.WebAddress}. The original author doesn't
  * believe this API is suitable for making public. He recommends we copy it.
@@ -67,8 +67,6 @@
             throw new NullPointerException();
         }
 
-        // android.util.Log.d(LOGTAG, "WebAddress: " + address);
-
         mScheme = "";
         mHost = "";
         mPort = -1;
diff --git a/src/com/android/contacts/testing/InjectedServices.java b/src/com/android/contacts/testing/InjectedServices.java
new file mode 100644
index 0000000..3822dd6
--- /dev/null
+++ b/src/com/android/contacts/testing/InjectedServices.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2010 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.testing;
+
+import android.content.ContentResolver;
+import android.content.SharedPreferences;
+
+import com.google.common.collect.Maps;
+
+import java.util.HashMap;
+
+/**
+ * A mechanism for providing alternative (mock) services to the application
+ * while running tests. Activities, Services and the Application should check
+ * with this class to see if a particular service has been overridden.
+ */
+public class InjectedServices {
+
+    private ContentResolver mContentResolver;
+    private SharedPreferences mSharedPreferences;
+    private HashMap<String, Object> mSystemServices;
+
+    public void setContentResolver(ContentResolver contentResolver) {
+        this.mContentResolver = contentResolver;
+    }
+
+    public ContentResolver getContentResolver() {
+        return mContentResolver;
+    }
+
+    public void setSharedPreferences(SharedPreferences sharedPreferences) {
+        this.mSharedPreferences = sharedPreferences;
+    }
+
+    public SharedPreferences getSharedPreferences() {
+        return mSharedPreferences;
+    }
+
+    public void setSystemService(String name, Object service) {
+        if (mSystemServices == null) {
+            mSystemServices = Maps.newHashMap();
+        }
+
+        mSystemServices.put(name, service);
+    }
+
+    public Object getSystemService(String name) {
+        if (mSystemServices != null) {
+            return mSystemServices.get(name);
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/contacts/util/AccountFilterUtil.java b/src/com/android/contacts/util/AccountFilterUtil.java
new file mode 100644
index 0000000..54c16e2
--- /dev/null
+++ b/src/com/android/contacts/util/AccountFilterUtil.java
@@ -0,0 +1,245 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import android.accounts.Account;
+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 android.support.v4.content.LocalBroadcastManager;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.ContactEditorActivity;
+import com.android.contacts.list.AccountFilterActivity;
+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;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.concurrent.ContactsExecutors;
+import com.android.contacts.util.concurrent.ListenableFutureLoader;
+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.
+ */
+public class AccountFilterUtil {
+    private static final String TAG = AccountFilterUtil.class.getSimpleName();
+
+     /**
+      * Launches account filter setting Activity using
+      * {@link Fragment#startActivityForResult(Intent, int)}.
+      *
+      * @param requestCode requestCode for {@link Activity#startActivityForResult(Intent, int)}
+      * @param currentFilter currently-selected filter, so that it can be displayed as activated.
+      */
+     public static void startAccountFilterActivityForResult(
+             Fragment fragment, int requestCode, ContactListFilter currentFilter) {
+         final Activity activity = fragment.getActivity();
+         if (activity != null) {
+             final Intent intent = new Intent(activity, AccountFilterActivity.class);
+             fragment.startActivityForResult(intent, requestCode);
+         } else {
+             Log.w(TAG, "getActivity() returned null. Ignored");
+         }
+     }
+
+    /**
+     * Useful method to handle onActivityResult() for
+     * {@link #startAccountFilterActivityForResult(Fragment, int, ContactListFilter)}.
+     *
+     * This will update filter via a given ContactListFilterController.
+     */
+    public static void handleAccountFilterResult(
+            ContactListFilterController filterController, int resultCode, Intent data) {
+        if (resultCode == Activity.RESULT_OK) {
+            final ContactListFilter filter = (ContactListFilter)
+                    data.getParcelableExtra(AccountFilterActivity.EXTRA_CONTACT_LIST_FILTER);
+            if (filter == null) {
+                return;
+            }
+            if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
+                filterController.selectCustomFilter();
+            } else {
+                filterController.setContactListFilter(filter, /* persistent */
+                        filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
+            }
+        }
+    }
+
+    /**
+     * Loads a list of contact list filters
+     */
+    public static class FilterLoader extends ListenableFutureLoader<List<ContactListFilter>> {
+        private AccountTypeManager mAccountTypeManager;
+        private DeviceLocalAccountTypeFactory mDeviceLocalFactory;
+
+        public FilterLoader(Context context) {
+            super(context, new IntentFilter(AccountTypeManager.BROADCAST_ACCOUNTS_CHANGED));
+            mAccountTypeManager = AccountTypeManager.getInstance(context);
+            mDeviceLocalFactory = ObjectFactory.getDeviceLocalAccountTypeFactory(context);
+        }
+
+
+        @Override
+        protected ListenableFuture<List<ContactListFilter>> loadData() {
+            return Futures.transform(mAccountTypeManager.filterAccountsAsync(
+                    AccountTypeManager.writableFilter()),
+                    new Function<List<AccountInfo>, List<ContactListFilter>>() {
+                        @Override
+                        public List<ContactListFilter> apply(List<AccountInfo> input) {
+                            return getFiltersForAccounts(input);
+                        }
+                    }, ContactsExecutors.getDefaultThreadPoolExecutor());
+        }
+
+        private List<ContactListFilter> getFiltersForAccounts(List<AccountInfo> accounts) {
+            final ArrayList<ContactListFilter> accountFilters = new ArrayList<>();
+            AccountInfo.sortAccounts(getDefaultAccount(getContext()), accounts);
+
+            for (AccountInfo accountInfo : accounts) {
+                final AccountType accountType = accountInfo.getType();
+                final AccountWithDataSet account = accountInfo.getAccount();
+                if ((accountType.isExtension() ||
+                        DeviceLocalAccountTypeFactory.Util.isLocalAccountType(
+                                mDeviceLocalFactory, account.type)) &&
+                        !account.hasData(getContext())) {
+                    // Hide extensions and device accounts with no raw_contacts.
+                    continue;
+                }
+                final Drawable icon = accountType != null ?
+                        accountType.getDisplayIcon(getContext()) : null;
+                if (DeviceLocalAccountTypeFactory.Util.isLocalAccountType(
+                        mDeviceLocalFactory, account.type)) {
+                    accountFilters.add(ContactListFilter.createDeviceContactsFilter(icon, account));
+                } else {
+                    accountFilters.add(ContactListFilter.createAccountFilter(
+                            account.type, account.name, account.dataSet, icon));
+                }
+            }
+
+            return accountFilters;
+        }
+    }
+
+    private static AccountWithDataSet getDefaultAccount(Context context) {
+        return new ContactsPreferences(context).getDefaultAccount();
+    }
+
+    /**
+     * Returns a {@link ContactListFilter} of type
+     * {@link ContactListFilter#FILTER_TYPE_ALL_ACCOUNTS}, or if a custom "Contacts to display"
+     * filter has been set, then one of type {@link ContactListFilter#FILTER_TYPE_CUSTOM}.
+     */
+    public static ContactListFilter createContactsFilter(Context context) {
+        final int filterType =
+                ContactListFilterController.getInstance(context).isCustomFilterPersisted()
+                        ? ContactListFilter.FILTER_TYPE_CUSTOM
+                        : ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS;
+        return ContactListFilter.createFilterWithType(filterType);
+    }
+
+    /**
+     * Start editor intent; and if filter is an account filter, we pass account info to editor so
+     * as to create a contact in that account.
+     */
+    public static void startEditorIntent(Context context, Intent src, ContactListFilter filter) {
+        final Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
+        intent.putExtras(src);
+
+        // If we are in account view, we pass the account explicitly in order to
+        // create contact in the account. This will prevent the default account dialog
+        // from being displayed.
+        if (!isAllContactsFilter(filter) && filter.accountName != null
+                && filter.accountType != null) {
+            final Account account = new Account(filter.accountName, filter.accountType);
+            intent.putExtra(Intents.Insert.EXTRA_ACCOUNT, account);
+            intent.putExtra(Intents.Insert.EXTRA_DATA_SET, filter.dataSet);
+        } else if (isDeviceContactsFilter(filter)) {
+            intent.putExtra(ContactEditorActivity.EXTRA_ACCOUNT_WITH_DATA_SET,
+                    filter.toAccountWithDataSet());
+        }
+
+        try {
+            ImplicitIntentsUtil.startActivityInApp(context, intent);
+        } catch (ActivityNotFoundException ex) {
+            Toast.makeText(context, R.string.missing_app, Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    public static boolean isAllContactsFilter(ContactListFilter filter) {
+        return filter != null && filter.isContactsFilterType();
+    }
+
+    public static boolean isDeviceContactsFilter(ContactListFilter filter) {
+        return filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS;
+    }
+
+    /**
+     * Returns action bar title for filter and returns default title "Contacts" if filter is empty.
+     */
+    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_ACCOUNT &&
+                !TextUtils.isEmpty(filter.accountName)) {
+            return getActionBarTitleForAccount(context, filter);
+        }
+        return context.getString(R.string.contactsList);
+    }
+
+    private static String getActionBarTitleForAccount(Context context, ContactListFilter filter) {
+        final AccountInfo info = AccountTypeManager.getInstance(context)
+                .getAccountInfoForAccount(filter.toAccountWithDataSet());
+        if (info == null) {
+            return context.getString(R.string.contactsList);
+        }
+
+        if (info.hasGoogleAccountType()) {
+            return context.getString(R.string.title_from_google);
+        }
+        return context.getString(R.string.title_from_other_accounts,
+                info.getNameLabel().toString());
+    }
+}
diff --git a/src/com/android/contacts/util/AccountSelectionUtil.java b/src/com/android/contacts/util/AccountSelectionUtil.java
new file mode 100644
index 0000000..bfe8a08
--- /dev/null
+++ b/src/com/android/contacts/util/AccountSelectionUtil.java
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2009 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.util;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.Uri;
+import android.util.Log;
+import android.view.ContextThemeWrapper;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.vcard.ImportVCardActivity;
+
+import java.util.List;
+
+/**
+ * Utility class for selecting an Account for importing contact(s)
+ */
+public class AccountSelectionUtil {
+    // TODO: maybe useful for EditContactActivity.java...
+    private static final String LOG_TAG = "AccountSelectionUtil";
+
+    public static boolean mVCardShare = false;
+
+    public static Uri mPath;
+
+    public static class AccountSelectedListener
+            implements DialogInterface.OnClickListener {
+
+        final private Activity mActivity;
+        final private int mResId;
+        final private int mSubscriptionId;
+
+        final protected List<AccountWithDataSet> mAccountList;
+
+        public AccountSelectedListener(Activity activity, List<AccountWithDataSet> accountList,
+                int resId, int subscriptionId) {
+            if (accountList == null || accountList.size() == 0) {
+                Log.e(LOG_TAG, "The size of Account list is 0.");
+            }
+            mActivity = activity;
+            mAccountList = accountList;
+            mResId = resId;
+            mSubscriptionId = subscriptionId;
+        }
+
+        public AccountSelectedListener(Activity activity, List<AccountWithDataSet> accountList,
+                int resId) {
+            // Subscription id is only needed for importing from SIM card. We can safely ignore
+            // its value for SD card importing.
+            this(activity, accountList, resId, /* subscriptionId = */ -1);
+        }
+
+        public void onClick(DialogInterface dialog, int which) {
+            dialog.dismiss();
+            doImport(mActivity, mResId, mAccountList.get(which), mSubscriptionId);
+        }
+    }
+
+    /**
+     * When OnClickListener or OnCancelListener is null, uses a default listener.
+     * The default OnCancelListener just closes itself with {@link Dialog#dismiss()}.
+     */
+    public static Dialog getSelectAccountDialog(Activity activity, int resId,
+            DialogInterface.OnClickListener onClickListener,
+            DialogInterface.OnCancelListener onCancelListener) {
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(activity);
+        final List<AccountWithDataSet> writableAccountList =
+                accountTypes.blockForWritableAccounts();
+
+        Log.i(LOG_TAG, "The number of available accounts: " + writableAccountList.size());
+
+        // Assume accountList.size() > 1
+
+        // Wrap our context to inflate list items using correct theme
+        final Context dialogContext = new ContextThemeWrapper(
+                activity, android.R.style.Theme_Light);
+        final LayoutInflater dialogInflater = (LayoutInflater)dialogContext
+                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        final ArrayAdapter<AccountWithDataSet> accountAdapter =
+            new ArrayAdapter<AccountWithDataSet>(
+                    activity, R.layout.account_selector_list_item_condensed, writableAccountList) {
+            @Override
+            public View getView(int position, View convertView, ViewGroup parent) {
+                if (convertView == null) {
+                    convertView = dialogInflater.inflate(
+                            R.layout.account_selector_list_item_condensed,
+                            parent, false);
+                }
+
+                final TextView text1 = (TextView) convertView.findViewById(android.R.id.text1);
+                final TextView text2 = (TextView) convertView.findViewById(android.R.id.text2);
+                final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon);
+
+                final AccountWithDataSet account = this.getItem(position);
+                final AccountType accountType = accountTypes.getAccountType(
+                        account.type, account.dataSet);
+                final Context context = getContext();
+
+                text1.setText(accountType.getDisplayLabel(context));
+                text2.setText(account.name);
+                icon.setImageDrawable(accountType.getDisplayIcon(getContext()));
+
+                return convertView;
+            }
+        };
+
+        if (onClickListener == null) {
+            AccountSelectedListener accountSelectedListener =
+                new AccountSelectedListener(activity, writableAccountList, resId);
+            onClickListener = accountSelectedListener;
+        }
+        if (onCancelListener == null) {
+            onCancelListener = new DialogInterface.OnCancelListener() {
+                public void onCancel(DialogInterface dialog) {
+                    dialog.dismiss();
+                }
+            };
+        }
+        final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+        final TextView title = (TextView) View.inflate(activity, R.layout.dialog_title, null);
+        title.setText(R.string.dialog_new_contact_account);
+        builder.setCustomTitle(title);
+        builder.setSingleChoiceItems(accountAdapter, 0, onClickListener);
+        builder.setOnCancelListener(onCancelListener);
+        final AlertDialog result = builder.create();
+        return result;
+    }
+
+    public static void doImport(Activity activity, int resId, AccountWithDataSet account,
+            int subscriptionId) {
+        if (resId == R.string.import_from_sim) {
+            doImportFromSim(activity, account, subscriptionId);
+        } else if (resId == R.string.import_from_vcf_file) {
+            doImportFromVcfFile(activity, account);
+        }
+    }
+
+    public static void doImportFromSim(Context context, AccountWithDataSet account,
+            int subscriptionId) {
+        Intent importIntent = new Intent(Intent.ACTION_VIEW);
+        importIntent.setType("vnd.android.cursor.item/sim-contact");
+        if (account != null) {
+            importIntent.putExtra("account_name", account.name);
+            importIntent.putExtra("account_type", account.type);
+            importIntent.putExtra("data_set", account.dataSet);
+        }
+        importIntent.putExtra("subscription_id", (Integer) subscriptionId);
+        importIntent.setClassName("com.android.phone", "com.android.phone.SimContacts");
+        context.startActivity(importIntent);
+    }
+
+    public static void doImportFromVcfFile(Activity activity, AccountWithDataSet account) {
+        Intent importIntent = new Intent(activity, ImportVCardActivity.class);
+        if (account != null) {
+            importIntent.putExtra("account_name", account.name);
+            importIntent.putExtra("account_type", account.type);
+            importIntent.putExtra("data_set", account.dataSet);
+        }
+
+        if (mVCardShare) {
+            importIntent.setAction(Intent.ACTION_VIEW);
+            importIntent.setData(mPath);
+        }
+        mVCardShare = false;
+        mPath = null;
+        activity.startActivityForResult(importIntent, 0);
+    }
+}
diff --git a/src/com/android/contacts/util/AccountsListAdapter.java b/src/com/android/contacts/util/AccountsListAdapter.java
new file mode 100644
index 0000000..2bcc68b
--- /dev/null
+++ b/src/com/android/contacts/util/AccountsListAdapter.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2010 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.util;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * List-Adapter for Account selection
+ */
+public final class AccountsListAdapter extends BaseAdapter {
+    private final LayoutInflater mInflater;
+    private List<AccountInfo> mAccounts;
+    private int mCustomLayout = -1;
+
+    public AccountsListAdapter(Context context) {
+        this(context, Collections.<AccountInfo>emptyList(), null);
+    }
+
+    public AccountsListAdapter(Context context, List<AccountInfo> accounts) {
+        this(context, accounts, null);
+    }
+
+    /**
+     * @param currentAccount the Account currently selected by the user, which should come
+     * first in the list. Can be null.
+     */
+    public AccountsListAdapter(Context context, List<AccountInfo> accounts,
+            AccountWithDataSet currentAccount) {
+        mInflater = LayoutInflater.from(context);
+
+        mAccounts = new ArrayList<>(accounts.size());
+        setAccounts(accounts, currentAccount);
+    }
+
+    public void setAccounts(List<AccountInfo> accounts, AccountWithDataSet currentAccount) {
+        // If it's not empty use the previous "current" account (the first one in the list)
+        final AccountInfo currentInfo = mAccounts.isEmpty()
+                ? AccountInfo.getAccount(accounts, currentAccount)
+                : AccountInfo.getAccount(accounts, mAccounts.get(0).getAccount());
+
+        mAccounts.clear();
+        mAccounts.addAll(accounts);
+
+        if (currentInfo != null
+                && !mAccounts.isEmpty()
+                && !mAccounts.get(0).sameAccount(currentAccount)
+                && mAccounts.remove(currentInfo)) {
+            mAccounts.add(0, currentInfo);
+        }
+        notifyDataSetChanged();
+    }
+
+    public void setCustomLayout(int customLayout) {
+        mCustomLayout = customLayout;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        final View resultView = convertView != null ? convertView :
+                mInflater.inflate(mCustomLayout > 0 ? mCustomLayout :
+                        R.layout.account_selector_list_item_condensed, parent, false);
+
+        final TextView text1 = (TextView) resultView.findViewById(android.R.id.text1);
+        final TextView text2 = (TextView) resultView.findViewById(android.R.id.text2);
+        final ImageView icon = (ImageView) resultView.findViewById(android.R.id.icon);
+
+        text1.setText(mAccounts.get(position).getTypeLabel());
+        text2.setText(mAccounts.get(position).getNameLabel());
+
+        icon.setImageDrawable(mAccounts.get(position).getIcon());
+
+        return resultView;
+    }
+
+    @Override
+    public int getCount() {
+        return mAccounts.size();
+    }
+
+    @Override
+    public AccountWithDataSet getItem(int position) {
+        return mAccounts.get(position).getAccount();
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+}
+
diff --git a/src/com/android/contacts/util/BitmapUtil.java b/src/com/android/contacts/util/BitmapUtil.java
new file mode 100644
index 0000000..0bc4aef
--- /dev/null
+++ b/src/com/android/contacts/util/BitmapUtil.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.PorterDuff.Mode;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+
+/**
+ * Provides static functions to decode bitmaps at the optimal size
+ */
+public class BitmapUtil {
+    private BitmapUtil() {}
+
+    /**
+     * Returns Width or Height of the picture, depending on which size is smaller. Doesn't actually
+     * decode the picture, so it is pretty efficient to run.
+     */
+    public static int getSmallerExtentFromBytes(byte[] bytes) {
+        final BitmapFactory.Options options = new BitmapFactory.Options();
+
+        // don't actually decode the picture, just return its bounds
+        options.inJustDecodeBounds = true;
+        BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options);
+
+        // test what the best sample size is
+        return Math.min(options.outWidth, options.outHeight);
+    }
+
+    /**
+     * Finds the optimal sampleSize for loading the picture
+     * @param originalSmallerExtent Width or height of the picture, whichever is smaller
+     * @param targetExtent Width or height of the target view, whichever is bigger.
+     *
+     * If either one of the parameters is 0 or smaller, no sampling is applied
+     */
+    public static int findOptimalSampleSize(int originalSmallerExtent, int targetExtent) {
+        // If we don't know sizes, we can't do sampling.
+        if (targetExtent < 1) return 1;
+        if (originalSmallerExtent < 1) return 1;
+
+        // Test what the best sample size is. To do that, we find the sample size that gives us
+        // the best trade-off between resulting image size and memory requirement. We allow
+        // the down-sampled image to be 20% smaller than the target size. That way we can get around
+        // unfortunate cases where e.g. a 720 picture is requested for 362 and not down-sampled at
+        // all. Why 20%? Why not. Prove me wrong.
+        int extent = originalSmallerExtent;
+        int sampleSize = 1;
+        while ((extent >> 1) >= targetExtent * 0.8f) {
+            sampleSize <<= 1;
+            extent >>= 1;
+        }
+
+        return sampleSize;
+    }
+
+    /**
+     * Decodes the bitmap with the given sample size
+     */
+    public static Bitmap decodeBitmapFromBytes(byte[] bytes, int sampleSize) {
+        final BitmapFactory.Options options;
+        if (sampleSize <= 1) {
+            options = null;
+        } else {
+            options = new BitmapFactory.Options();
+            options.inSampleSize = sampleSize;
+        }
+        return BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options);
+    }
+
+    /**
+     * Retrieves a copy of the specified drawable resource, rotated by a specified angle.
+     *
+     * @param resources The current resources.
+     * @param resourceId The resource ID of the drawable to rotate.
+     * @param angle The angle of rotation.
+     * @return Rotated drawable.
+     */
+    public static Drawable getRotatedDrawable(
+            android.content.res.Resources resources, int resourceId, float angle) {
+
+        // Get the original drawable and make a copy which will be rotated.
+        Bitmap original = BitmapFactory.decodeResource(resources, resourceId);
+        Bitmap rotated = Bitmap.createBitmap(
+                original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888);
+
+        // Perform the rotation.
+        Canvas tempCanvas = new Canvas(rotated);
+        tempCanvas.rotate(angle, original.getWidth()/2, original.getHeight()/2);
+        tempCanvas.drawBitmap(original, 0, 0, null);
+
+        return new BitmapDrawable(resources,rotated);
+    }
+
+    /**
+     * Given an input bitmap, scales it to the given width/height and makes it round.
+     *
+     * @param input {@link Bitmap} to scale and crop
+     * @param targetWidth desired output width
+     * @param targetHeight desired output height
+     * @return output bitmap scaled to the target width/height and cropped to an oval. The
+     *         cropping algorithm will try to fit as much of the input into the output as possible,
+     *         while preserving the target width/height ratio.
+     */
+    public static Bitmap getRoundedBitmap(Bitmap input, int targetWidth, int targetHeight) {
+        if (input == null) {
+            return null;
+        }
+        final Bitmap.Config inputConfig = input.getConfig();
+        final Bitmap result = Bitmap.createBitmap(targetWidth, targetHeight,
+                inputConfig != null ? inputConfig : Bitmap.Config.ARGB_8888);
+        final Canvas canvas = new Canvas(result);
+        final Paint paint = new Paint();
+        canvas.drawARGB(0, 0, 0, 0);
+        paint.setAntiAlias(true);
+        final RectF dst = new RectF(0, 0, targetWidth, targetHeight);
+        canvas.drawOval(dst, paint);
+
+        // Specifies that only pixels present in the destination (i.e. the drawn oval) should
+        // be overwritten with pixels from the input bitmap.
+        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
+
+        final int inputWidth = input.getWidth();
+        final int inputHeight = input.getHeight();
+
+        // Choose the largest scale factor that will fit inside the dimensions of the
+        // input bitmap.
+        final float scaleBy = Math.min((float) inputWidth / targetWidth,
+            (float) inputHeight / targetHeight);
+
+        final int xCropAmountHalved = (int) (scaleBy * targetWidth / 2);
+        final int yCropAmountHalved = (int) (scaleBy * targetHeight / 2);
+
+        final Rect src = new Rect(
+                inputWidth / 2 - xCropAmountHalved,
+                inputHeight / 2 - yCropAmountHalved,
+                inputWidth / 2 + xCropAmountHalved,
+                inputHeight / 2 + yCropAmountHalved);
+
+        canvas.drawBitmap(input, src, dst, paint);
+        return result;
+    }
+
+    /**
+     * Converts a drawable to a bitmap.
+     */
+    public static Bitmap drawableToBitmap(Drawable drawable, int avatarSizePx) {
+        if (drawable instanceof BitmapDrawable) {
+            return ((BitmapDrawable) drawable).getBitmap();
+        }
+
+        final Bitmap bitmap =
+                Bitmap.createBitmap(avatarSizePx, avatarSizePx, Bitmap.Config.ARGB_8888);
+
+        final Canvas canvas = new Canvas(bitmap);
+        drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+        drawable.draw(canvas);
+        return bitmap;
+    }
+}
diff --git a/src/com/android/contacts/util/CommonDateUtils.java b/src/com/android/contacts/util/CommonDateUtils.java
new file mode 100644
index 0000000..6be6302
--- /dev/null
+++ b/src/com/android/contacts/util/CommonDateUtils.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+
+/**
+ * Common date utilities.
+ */
+public class CommonDateUtils {
+
+    // All the SimpleDateFormats in this class use the UTC timezone
+    public static final SimpleDateFormat NO_YEAR_DATE_FORMAT =
+            new SimpleDateFormat("--MM-dd", Locale.US);
+    public static final SimpleDateFormat FULL_DATE_FORMAT =
+            new SimpleDateFormat("yyyy-MM-dd", Locale.US);
+    public static final SimpleDateFormat DATE_AND_TIME_FORMAT =
+            new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
+    public static final SimpleDateFormat NO_YEAR_DATE_AND_TIME_FORMAT =
+            new SimpleDateFormat("--MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
+
+    /**
+     * Exchange requires 8:00 for birthdays
+     */
+    public final static int DEFAULT_HOUR = 8;
+}
diff --git a/src/com/android/contacts/util/Constants.java b/src/com/android/contacts/util/Constants.java
new file mode 100644
index 0000000..e4ca027
--- /dev/null
+++ b/src/com/android/contacts/util/Constants.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2009 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.util;
+
+public class Constants {
+
+    /**
+     * Log tag for performance measurement.
+     * To enable: adb shell setprop log.tag.ContactsPerf VERBOSE
+     */
+    public static final String PERFORMANCE_TAG = "ContactsPerf";
+
+    // Used for lookup URI that contains an encoded JSON string.
+    public static final String LOOKUP_URI_ENCODED = "encoded";
+}
diff --git a/src/com/android/contacts/util/ContactDisplayUtils.java b/src/com/android/contacts/util/ContactDisplayUtils.java
new file mode 100644
index 0000000..67b8e07
--- /dev/null
+++ b/src/com/android/contacts/util/ContactDisplayUtils.java
@@ -0,0 +1,297 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import static android.provider.ContactsContract.CommonDataKinds.Phone;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.support.annotation.Nullable;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.style.TtsSpan;
+import android.util.Log;
+import android.util.Patterns;
+
+import com.android.contacts.R;
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.preference.ContactsPreferences;
+
+import com.google.common.base.Preconditions;
+
+/**
+ * Methods for handling various contact data labels.
+ */
+public class ContactDisplayUtils {
+
+    private static final String TAG = ContactDisplayUtils.class.getSimpleName();
+
+    public static final int INTERACTION_CALL = 1;
+    public static final int INTERACTION_SMS = 2;
+
+    /**
+     * Checks if the given data type is a custom type.
+     *
+     * @param type Phone data type.
+     * @return {@literal true} if the type is custom.  {@literal false} if not.
+     */
+    public static boolean isCustomPhoneType(Integer type) {
+        return type == Phone.TYPE_CUSTOM || type == Phone.TYPE_ASSISTANT;
+    }
+
+    /**
+     * Gets a display label for a given phone type.
+     *
+     * @param type The type of number.
+     * @param customLabel A custom label to use if the phone is determined to be of custom type
+     * determined by {@link #isCustomPhoneType(Integer))}
+     * @param interactionType whether this is a call or sms.  Either {@link #INTERACTION_CALL} or
+     * {@link #INTERACTION_SMS}.
+     * @param context The application context.
+     * @return An appropriate string label
+     */
+    public static CharSequence getLabelForCallOrSms(Integer type, CharSequence customLabel,
+            int interactionType, Context context) {
+        Preconditions.checkNotNull(context);
+
+        if (isCustomPhoneType(type)) {
+            return (customLabel == null) ? "" : customLabel;
+        } else {
+            int resId;
+            if (interactionType == INTERACTION_SMS) {
+                resId = getSmsLabelResourceId(type);
+            } else {
+                resId = getPhoneLabelResourceId(type);
+                if (interactionType != INTERACTION_CALL) {
+                    Log.e(TAG, "Un-recognized interaction type: " + interactionType +
+                            ". Defaulting to ContactDisplayUtils.INTERACTION_CALL.");
+                }
+            }
+
+            return context.getResources().getText(resId);
+        }
+    }
+
+    /**
+     * Find a label for calling.
+     *
+     * @param type The type of number.
+     * @return An appropriate string label.
+     */
+    public static int getPhoneLabelResourceId(Integer type) {
+        if (type == null) return R.string.call_other;
+        switch (type) {
+            case Phone.TYPE_HOME:
+                return R.string.call_home;
+            case Phone.TYPE_MOBILE:
+                return R.string.call_mobile;
+            case Phone.TYPE_WORK:
+                return R.string.call_work;
+            case Phone.TYPE_FAX_WORK:
+                return R.string.call_fax_work;
+            case Phone.TYPE_FAX_HOME:
+                return R.string.call_fax_home;
+            case Phone.TYPE_PAGER:
+                return R.string.call_pager;
+            case Phone.TYPE_OTHER:
+                return R.string.call_other;
+            case Phone.TYPE_CALLBACK:
+                return R.string.call_callback;
+            case Phone.TYPE_CAR:
+                return R.string.call_car;
+            case Phone.TYPE_COMPANY_MAIN:
+                return R.string.call_company_main;
+            case Phone.TYPE_ISDN:
+                return R.string.call_isdn;
+            case Phone.TYPE_MAIN:
+                return R.string.call_main;
+            case Phone.TYPE_OTHER_FAX:
+                return R.string.call_other_fax;
+            case Phone.TYPE_RADIO:
+                return R.string.call_radio;
+            case Phone.TYPE_TELEX:
+                return R.string.call_telex;
+            case Phone.TYPE_TTY_TDD:
+                return R.string.call_tty_tdd;
+            case Phone.TYPE_WORK_MOBILE:
+                return R.string.call_work_mobile;
+            case Phone.TYPE_WORK_PAGER:
+                return R.string.call_work_pager;
+            case Phone.TYPE_ASSISTANT:
+                return R.string.call_assistant;
+            case Phone.TYPE_MMS:
+                return R.string.call_mms;
+            default:
+                return R.string.call_custom;
+        }
+
+    }
+
+    /**
+     * Find a label for sending an sms.
+     *
+     * @param type The type of number.
+     * @return An appropriate string label.
+     */
+    public static int getSmsLabelResourceId(Integer type) {
+        if (type == null) return R.string.sms_other;
+        switch (type) {
+            case Phone.TYPE_HOME:
+                return R.string.sms_home;
+            case Phone.TYPE_MOBILE:
+                return R.string.sms_mobile;
+            case Phone.TYPE_WORK:
+                return R.string.sms_work;
+            case Phone.TYPE_FAX_WORK:
+                return R.string.sms_fax_work;
+            case Phone.TYPE_FAX_HOME:
+                return R.string.sms_fax_home;
+            case Phone.TYPE_PAGER:
+                return R.string.sms_pager;
+            case Phone.TYPE_OTHER:
+                return R.string.sms_other;
+            case Phone.TYPE_CALLBACK:
+                return R.string.sms_callback;
+            case Phone.TYPE_CAR:
+                return R.string.sms_car;
+            case Phone.TYPE_COMPANY_MAIN:
+                return R.string.sms_company_main;
+            case Phone.TYPE_ISDN:
+                return R.string.sms_isdn;
+            case Phone.TYPE_MAIN:
+                return R.string.sms_main;
+            case Phone.TYPE_OTHER_FAX:
+                return R.string.sms_other_fax;
+            case Phone.TYPE_RADIO:
+                return R.string.sms_radio;
+            case Phone.TYPE_TELEX:
+                return R.string.sms_telex;
+            case Phone.TYPE_TTY_TDD:
+                return R.string.sms_tty_tdd;
+            case Phone.TYPE_WORK_MOBILE:
+                return R.string.sms_work_mobile;
+            case Phone.TYPE_WORK_PAGER:
+                return R.string.sms_work_pager;
+            case Phone.TYPE_ASSISTANT:
+                return R.string.sms_assistant;
+            case Phone.TYPE_MMS:
+                return R.string.sms_mms;
+            default:
+                return R.string.sms_custom;
+        }
+    }
+
+    /**
+     * Whether the given text could be a phone number.
+     *
+     * Note this will miss many things that are legitimate phone numbers, for example,
+     * phone numbers with letters.
+     */
+    public static boolean isPossiblePhoneNumber(CharSequence text) {
+        return text == null ? false : Patterns.PHONE.matcher(text.toString()).matches();
+    }
+
+    /**
+     * Returns a Spannable for the given message with a telephone {@link TtsSpan} set for
+     * the given phone number text wherever it is found within the message.
+     */
+    public static Spannable getTelephoneTtsSpannable(String message, String phoneNumber) {
+        if (message == null) {
+            return null;
+        }
+        final Spannable spannable = new SpannableString(message);
+        int start = phoneNumber == null ? -1 : message.indexOf(phoneNumber);
+        while (start >= 0) {
+            final int end = start + phoneNumber.length();
+            final TtsSpan ttsSpan = PhoneNumberUtilsCompat.createTtsSpan(phoneNumber);
+            spannable.setSpan(ttsSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);             // this is consistenly done in a misleading way..
+            start = message.indexOf(phoneNumber, end);
+        }
+        return spannable;
+    }
+
+    /**
+     * Retrieves a string from a string template that takes 1 phone number as argument,
+     * span the number with a telephone {@link TtsSpan}, and return the spanned string.
+     *
+     * @param resources to retrieve the string from
+     * @param stringId ID of the string
+     * @param number to pass in the template
+     * @return CharSequence with the phone number wrapped in a TtsSpan
+     */
+    public static CharSequence getTtsSpannedPhoneNumber(Resources resources,
+            int stringId, String number){
+        String msg = resources.getString(stringId, number);
+        return ContactDisplayUtils.getTelephoneTtsSpannable(msg, number);
+    }
+
+    /**
+     * Returns either namePrimary or nameAlternative based on the {@link ContactsPreferences}.
+     * Defaults to the name that is non-null.
+     *
+     * @param namePrimary the primary name.
+     * @param nameAlternative the alternative name.
+     * @param contactsPreferences the ContactsPreferences used to determine the preferred
+     * display name.
+     * @return namePrimary or nameAlternative depending on the value of displayOrderPreference.
+     */
+    public static String getPreferredDisplayName(String namePrimary, String nameAlternative,
+            @Nullable ContactsPreferences contactsPreferences) {
+        if (contactsPreferences == null) {
+            return namePrimary != null ? namePrimary : nameAlternative;
+        }
+        if (contactsPreferences.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY) {
+            return namePrimary;
+        }
+
+        if (contactsPreferences.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE
+                && !TextUtils.isEmpty(nameAlternative)) {
+            return nameAlternative;
+        }
+
+        return namePrimary;
+    }
+
+    /**
+     * Returns either namePrimary or nameAlternative based on the {@link ContactsPreferences}.
+     * Defaults to the name that is non-null.
+     *
+     * @param namePrimary the primary name.
+     * @param nameAlternative the alternative name.
+     * @param contactsPreferences the ContactsPreferences used to determine the preferred sort
+     * order.
+     * @return namePrimary or nameAlternative depending on the value of displayOrderPreference.
+     */
+    public static String getPreferredSortName(String namePrimary, String nameAlternative,
+            @Nullable ContactsPreferences contactsPreferences) {
+        if (contactsPreferences == null) {
+            return namePrimary != null ? namePrimary : nameAlternative;
+        }
+
+        if (contactsPreferences.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY) {
+            return namePrimary;
+        }
+
+        if (contactsPreferences.getSortOrder() == ContactsPreferences.SORT_ORDER_ALTERNATIVE &&
+                !TextUtils.isEmpty(nameAlternative)) {
+            return nameAlternative;
+        }
+
+        return namePrimary;
+    }
+}
diff --git a/src/com/android/contacts/util/ContactLoaderUtils.java b/src/com/android/contacts/util/ContactLoaderUtils.java
new file mode 100644
index 0000000..91c683f
--- /dev/null
+++ b/src/com/android/contacts/util/ContactLoaderUtils.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2011 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.util;
+
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.net.Uri;
+import android.provider.Contacts;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.RawContacts;
+
+/**
+ * Utility methods for the {@link ContactLoader}.
+ */
+public final class ContactLoaderUtils {
+
+    /** Static helper, not instantiable. */
+    private ContactLoaderUtils() {}
+
+    /**
+     * Transforms the given Uri and returns a Lookup-Uri that represents the contact.
+     * For legacy contacts, a raw-contact lookup is performed. An {@link IllegalArgumentException}
+     * can be thrown if the URI is null or the authority is not recognized.
+     *
+     * Do not call from the UI thread.
+     */
+    @SuppressWarnings("deprecation")
+    public static Uri ensureIsContactUri(final ContentResolver resolver, final Uri uri)
+            throws IllegalArgumentException {
+        if (uri == null) throw new IllegalArgumentException("uri must not be null");
+
+        final String authority = uri.getAuthority();
+
+        // Current Style Uri?
+        if (ContactsContract.AUTHORITY.equals(authority)) {
+            final String type = resolver.getType(uri);
+            // Contact-Uri? Good, return it
+            if (ContactsContract.Contacts.CONTENT_ITEM_TYPE.equals(type)) {
+                return uri;
+            }
+
+            // RawContact-Uri? Transform it to ContactUri
+            if (RawContacts.CONTENT_ITEM_TYPE.equals(type)) {
+                final long rawContactId = ContentUris.parseId(uri);
+                return RawContacts.getContactLookupUri(resolver,
+                        ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId));
+            }
+
+            // Anything else? We don't know what this is
+            throw new IllegalArgumentException("uri format is unknown");
+        }
+
+        // Legacy Style? Convert to RawContact
+        final String OBSOLETE_AUTHORITY = Contacts.AUTHORITY;
+        if (OBSOLETE_AUTHORITY.equals(authority)) {
+            // Legacy Format. Convert to RawContact-Uri and then lookup the contact
+            final long rawContactId = ContentUris.parseId(uri);
+            return RawContacts.getContactLookupUri(resolver,
+                    ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId));
+        }
+
+        throw new IllegalArgumentException("uri authority is unknown");
+    }
+}
diff --git a/src/com/android/contacts/util/ContactPhotoUtils.java b/src/com/android/contacts/util/ContactPhotoUtils.java
index ce691c3..943f5dd 100644
--- a/src/com/android/contacts/util/ContactPhotoUtils.java
+++ b/src/com/android/contacts/util/ContactPhotoUtils.java
@@ -23,12 +23,12 @@
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.net.Uri;
-import android.os.Environment;
 import android.provider.MediaStore;
 import android.support.v4.content.FileProvider;
 import android.util.Log;
 
 import com.android.contacts.R;
+
 import com.google.common.io.Closeables;
 
 import java.io.ByteArrayOutputStream;
@@ -162,7 +162,9 @@
                 outputStream.write(buffer, 0, length);
                 totalLength += length;
             }
-            Log.v(TAG, "Wrote " + totalLength + " bytes for photo " + inputUri.toString());
+            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+                Log.v(TAG, "Wrote " + totalLength + " bytes for photo " + inputUri.toString());
+            }
         } catch (IOException | NullPointerException e) {
             Log.e(TAG, "Failed to write photo: " + inputUri.toString() + " because: " + e);
             return false;
diff --git a/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java b/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java
new file mode 100644
index 0000000..fec3bda
--- /dev/null
+++ b/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2017 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.util;
+
+import android.annotation.TargetApi;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.os.Build;
+import android.support.v4.os.BuildCompat;
+
+import com.android.contacts.R;
+
+@TargetApi(Build.VERSION_CODES.O)
+public class ContactsNotificationChannelsUtil {
+    public static String DEFAULT_CHANNEL = "DEFAULT_CHANNEL";
+
+    private ContactsNotificationChannelsUtil() {}
+
+    public static void createDefaultChannel(Context context) {
+        if (!BuildCompat.isAtLeastO()) {
+            return;
+        }
+        final NotificationManager nm = context.getSystemService(NotificationManager.class);
+        final NotificationChannel channel = new NotificationChannel(DEFAULT_CHANNEL,
+                context.getString(R.string.contacts_default_notification_channel),
+                NotificationManager.IMPORTANCE_LOW);
+        nm.createNotificationChannel(channel);
+    }
+}
diff --git a/src/com/android/contacts/util/DataStatus.java b/src/com/android/contacts/util/DataStatus.java
new file mode 100644
index 0000000..f267615
--- /dev/null
+++ b/src/com/android/contacts/util/DataStatus.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2009 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.util;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.database.Cursor;
+import android.graphics.drawable.Drawable;
+import android.provider.ContactsContract.Data;
+import android.text.TextUtils;
+import android.text.format.DateUtils;
+
+import com.android.contacts.R;
+
+/**
+ * Storage for a social status update. Holds a single update, but can use
+ * {@link #possibleUpdate(Cursor)} to consider updating when a better status
+ * exists. Statuses with timestamps, or with newer timestamps win.
+ */
+public class DataStatus {
+    private int mPresence = -1;
+    private String mStatus = null;
+    private long mTimestamp = -1;
+
+    private String mResPackage = null;
+    private int mIconRes = -1;
+    private int mLabelRes = -1;
+
+    public DataStatus() {
+    }
+
+    public DataStatus(Cursor cursor) {
+        // When creating from cursor row, fill normally
+        fromCursor(cursor);
+    }
+
+    /**
+     * Attempt updating this {@link DataStatus} based on values at the
+     * current row of the given {@link Cursor}.
+     */
+    public void possibleUpdate(Cursor cursor) {
+        final boolean hasStatus = !isNull(cursor, Data.STATUS);
+        final boolean hasTimestamp = !isNull(cursor, Data.STATUS_TIMESTAMP);
+
+        // Bail early when not valid status, or when previous status was
+        // found and we can't compare this one.
+        if (!hasStatus) return;
+        if (isValid() && !hasTimestamp) return;
+
+        if (hasTimestamp) {
+            // Compare timestamps and bail if older status
+            final long newTimestamp = getLong(cursor, Data.STATUS_TIMESTAMP, -1);
+            if (newTimestamp < mTimestamp) return;
+
+            mTimestamp = newTimestamp;
+        }
+
+        // Fill in remaining details from cursor
+        fromCursor(cursor);
+    }
+
+    private void fromCursor(Cursor cursor) {
+        mPresence = getInt(cursor, Data.PRESENCE, -1);
+        mStatus = getString(cursor, Data.STATUS);
+        mTimestamp = getLong(cursor, Data.STATUS_TIMESTAMP, -1);
+        mResPackage = getString(cursor, Data.STATUS_RES_PACKAGE);
+        mIconRes = getInt(cursor, Data.STATUS_ICON, -1);
+        mLabelRes = getInt(cursor, Data.STATUS_LABEL, -1);
+    }
+
+    public boolean isValid() {
+        return !TextUtils.isEmpty(mStatus);
+    }
+
+    public int getPresence() {
+        return mPresence;
+    }
+
+    public CharSequence getStatus() {
+        return mStatus;
+    }
+
+    public long getTimestamp() {
+        return mTimestamp;
+    }
+
+    /**
+     * Build any timestamp and label into a single string.
+     */
+    public CharSequence getTimestampLabel(Context context) {
+        final PackageManager pm = context.getPackageManager();
+
+        // Use local package for resources when none requested
+        if (mResPackage == null) mResPackage = context.getPackageName();
+
+        final boolean validTimestamp = mTimestamp > 0;
+        final boolean validLabel = mResPackage != null && mLabelRes != -1;
+
+        final CharSequence timeClause = validTimestamp ? DateUtils.getRelativeTimeSpanString(
+                mTimestamp, System.currentTimeMillis(), DateUtils.MINUTE_IN_MILLIS,
+                DateUtils.FORMAT_ABBREV_RELATIVE) : null;
+        final CharSequence labelClause = validLabel ? pm.getText(mResPackage, mLabelRes,
+                null) : null;
+
+        if (validTimestamp && validLabel) {
+            return context.getString(
+                    R.string.contact_status_update_attribution_with_date,
+                    timeClause, labelClause);
+        } else if (validLabel) {
+            return context.getString(
+                    R.string.contact_status_update_attribution,
+                    labelClause);
+        } else if (validTimestamp) {
+            return timeClause;
+        } else {
+            return null;
+        }
+    }
+
+    public Drawable getIcon(Context context) {
+        final PackageManager pm = context.getPackageManager();
+
+        // Use local package for resources when none requested
+        if (mResPackage == null) mResPackage = context.getPackageName();
+
+        final boolean validIcon = mResPackage != null && mIconRes != -1;
+        return validIcon ? pm.getDrawable(mResPackage, mIconRes, null) : null;
+    }
+
+    private static String getString(Cursor cursor, String columnName) {
+        return cursor.getString(cursor.getColumnIndex(columnName));
+    }
+
+    private static int getInt(Cursor cursor, String columnName) {
+        return cursor.getInt(cursor.getColumnIndex(columnName));
+    }
+
+    private static int getInt(Cursor cursor, String columnName, int missingValue) {
+        final int columnIndex = cursor.getColumnIndex(columnName);
+        return cursor.isNull(columnIndex) ? missingValue : cursor.getInt(columnIndex);
+    }
+
+    private static long getLong(Cursor cursor, String columnName, long missingValue) {
+        final int columnIndex = cursor.getColumnIndex(columnName);
+        return cursor.isNull(columnIndex) ? missingValue : cursor.getLong(columnIndex);
+    }
+
+    private static boolean isNull(Cursor cursor, String columnName) {
+        return cursor.isNull(cursor.getColumnIndex(columnName));
+    }
+}
diff --git a/src/com/android/contacts/util/DateUtils.java b/src/com/android/contacts/util/DateUtils.java
new file mode 100644
index 0000000..c460782
--- /dev/null
+++ b/src/com/android/contacts/util/DateUtils.java
@@ -0,0 +1,270 @@
+/*
+ * Copyright (C) 2010 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.util;
+
+import android.content.Context;
+import android.text.format.DateFormat;
+
+import java.text.ParsePosition;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Locale;
+import java.util.TimeZone;
+
+/**
+ * Utility methods for processing dates.
+ */
+public class DateUtils {
+    public static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone("UTC");
+
+    /**
+     * When parsing a date without a year, the system assumes 1970, which wasn't a leap-year.
+     * Let's add a one-off hack for that day of the year
+     */
+    public static final String NO_YEAR_DATE_FEB29TH = "--02-29";
+
+    // Variations of ISO 8601 date format.  Do not change the order - it does affect the
+    // result in ambiguous cases.
+    private static final SimpleDateFormat[] DATE_FORMATS = {
+        CommonDateUtils.FULL_DATE_FORMAT,
+        CommonDateUtils.DATE_AND_TIME_FORMAT,
+        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US),
+        new SimpleDateFormat("yyyyMMdd", Locale.US),
+        new SimpleDateFormat("yyyyMMdd'T'HHmmssSSS'Z'", Locale.US),
+        new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'", Locale.US),
+        new SimpleDateFormat("yyyyMMdd'T'HHmm'Z'", Locale.US),
+    };
+
+    static {
+        for (SimpleDateFormat format : DATE_FORMATS) {
+            format.setLenient(true);
+            format.setTimeZone(UTC_TIMEZONE);
+        }
+        CommonDateUtils.NO_YEAR_DATE_FORMAT.setTimeZone(UTC_TIMEZONE);
+    }
+
+    /**
+     * Parses the supplied string to see if it looks like a date.
+     *
+     * @param string The string representation of the provided date
+     * @param mustContainYear If true, the string is parsed as a date containing a year. If false,
+     * the string is parsed into a valid date even if the year field is missing.
+     * @return A Calendar object corresponding to the date if the string is successfully parsed.
+     * If not, null is returned.
+     */
+    public static Calendar parseDate(String string, boolean mustContainYear) {
+        ParsePosition parsePosition = new ParsePosition(0);
+        Date date;
+        if (!mustContainYear) {
+            final boolean noYearParsed;
+            // Unfortunately, we can't parse Feb 29th correctly, so let's handle this day seperately
+            if (NO_YEAR_DATE_FEB29TH.equals(string)) {
+                return getUtcDate(0, Calendar.FEBRUARY, 29);
+            } else {
+                synchronized (CommonDateUtils.NO_YEAR_DATE_FORMAT) {
+                    date = CommonDateUtils.NO_YEAR_DATE_FORMAT.parse(string, parsePosition);
+                }
+                noYearParsed = parsePosition.getIndex() == string.length();
+            }
+
+            if (noYearParsed) {
+                return getUtcDate(date, true);
+            }
+        }
+        for (int i = 0; i < DATE_FORMATS.length; i++) {
+            SimpleDateFormat f = DATE_FORMATS[i];
+            synchronized (f) {
+                parsePosition.setIndex(0);
+                date = f.parse(string, parsePosition);
+                if (parsePosition.getIndex() == string.length()) {
+                    return getUtcDate(date, false);
+                }
+            }
+        }
+        return null;
+    }
+
+    private static final Calendar getUtcDate(Date date, boolean noYear) {
+        final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US);
+        calendar.setTime(date);
+        if (noYear) {
+            calendar.set(Calendar.YEAR, 0);
+        }
+        return calendar;
+    }
+
+    private static final Calendar getUtcDate(int year, int month, int dayOfMonth) {
+        final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US);
+        calendar.clear();
+        calendar.set(Calendar.YEAR, year);
+        calendar.set(Calendar.MONTH, month);
+        calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
+        return calendar;
+    }
+
+    public static boolean isYearSet(Calendar cal) {
+        // use the Calendar.YEAR field to track whether or not the year is set instead of
+        // Calendar.isSet() because doing Calendar.get() causes Calendar.isSet() to become
+        // true irregardless of what the previous value was
+        return cal.get(Calendar.YEAR) > 1;
+    }
+
+    /**
+     * Same as {@link #formatDate(Context context, String string, boolean longForm)}, with
+     * longForm set to {@code true} by default.
+     *
+     * @param context Valid context
+     * @param string String representation of a date to parse
+     * @return Returns the same date in a cleaned up format. If the supplied string does not look
+     * like a date, return it unchanged.
+     */
+
+    public static String formatDate(Context context, String string) {
+        return formatDate(context, string, true);
+    }
+
+    /**
+     * Parses the supplied string to see if it looks like a date.
+     *
+     * @param context Valid context
+     * @param string String representation of a date to parse
+     * @param longForm If true, return the date formatted into its long string representation.
+     * If false, return the date formatted using its short form representation (i.e. 12/11/2012)
+     * @return Returns the same date in a cleaned up format. If the supplied string does not look
+     * like a date, return it unchanged.
+     */
+    public static String formatDate(Context context, String string, boolean longForm) {
+        if (string == null) {
+            return null;
+        }
+
+        string = string.trim();
+        if (string.length() == 0) {
+            return string;
+        }
+        final Calendar cal = parseDate(string, false);
+
+        // we weren't able to parse the string successfully so just return it unchanged
+        if (cal == null) {
+            return string;
+        }
+
+        final boolean isYearSet = isYearSet(cal);
+        final java.text.DateFormat outFormat;
+        if (!isYearSet) {
+            outFormat = getLocalizedDateFormatWithoutYear(context);
+        } else {
+            outFormat =
+                    longForm ? DateFormat.getLongDateFormat(context) :
+                    DateFormat.getDateFormat(context);
+        }
+        synchronized (outFormat) {
+            outFormat.setTimeZone(UTC_TIMEZONE);
+            return outFormat.format(cal.getTime());
+        }
+    }
+
+    public static boolean isMonthBeforeDay(Context context) {
+        char[] dateFormatOrder = DateFormat.getDateFormatOrder(context);
+        for (int i = 0; i < dateFormatOrder.length; i++) {
+            if (dateFormatOrder[i] == 'd') {
+                return false;
+            }
+            if (dateFormatOrder[i] == 'M') {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Returns a SimpleDateFormat object without the year fields by using a regular expression
+     * to eliminate the year in the string pattern. In the rare occurence that the resulting
+     * pattern cannot be reconverted into a SimpleDateFormat, it uses the provided context to
+     * determine whether the month field should be displayed before the day field, and returns
+     * either "MMMM dd" or "dd MMMM" converted into a SimpleDateFormat.
+     */
+    public static java.text.DateFormat getLocalizedDateFormatWithoutYear(Context context) {
+        final String pattern = ((SimpleDateFormat) SimpleDateFormat.getDateInstance(
+                java.text.DateFormat.LONG)).toPattern();
+        // Determine the correct regex pattern for year.
+        // Special case handling for Spanish locale by checking for "de"
+        final String yearPattern = pattern.contains(
+                "de") ? "[^Mm]*[Yy]+[^Mm]*" : "[^DdMm]*[Yy]+[^DdMm]*";
+        try {
+         // Eliminate the substring in pattern that matches the format for that of year
+            return new SimpleDateFormat(pattern.replaceAll(yearPattern, ""));
+        } catch (IllegalArgumentException e) {
+            return new SimpleDateFormat(
+                    DateUtils.isMonthBeforeDay(context) ? "MMMM dd" : "dd MMMM");
+        }
+    }
+
+    /**
+     * Given a calendar (possibly containing only a day of the year), returns the earliest possible
+     * anniversary of the date that is equal to or after the current point in time if the date
+     * does not contain a year, or the date converted to the local time zone (if the date contains
+     * a year.
+     *
+     * @param target The date we wish to convert(in the UTC time zone).
+     * @return If date does not contain a year (year < 1900), returns the next earliest anniversary
+     * that is after the current point in time (in the local time zone). Otherwise, returns the
+     * adjusted Date in the local time zone.
+     */
+    public static Date getNextAnnualDate(Calendar target) {
+        final Calendar today = Calendar.getInstance();
+        today.setTime(new Date());
+
+        // Round the current time to the exact start of today so that when we compare
+        // today against the target date, both dates are set to exactly 0000H.
+        today.set(Calendar.HOUR_OF_DAY, 0);
+        today.set(Calendar.MINUTE, 0);
+        today.set(Calendar.SECOND, 0);
+        today.set(Calendar.MILLISECOND, 0);
+
+        final boolean isYearSet = isYearSet(target);
+        final int targetYear = target.get(Calendar.YEAR);
+        final int targetMonth = target.get(Calendar.MONTH);
+        final int targetDay = target.get(Calendar.DAY_OF_MONTH);
+        final boolean isFeb29 = (targetMonth == Calendar.FEBRUARY && targetDay == 29);
+        final GregorianCalendar anniversary = new GregorianCalendar();
+        // Convert from the UTC date to the local date. Set the year to today's year if the
+        // there is no provided year (targetYear < 1900)
+        anniversary.set(!isYearSet ? today.get(Calendar.YEAR) : targetYear,
+                targetMonth, targetDay);
+        // If the anniversary's date is before the start of today and there is no year set,
+        // increment the year by 1 so that the returned date is always equal to or greater than
+        // today. If the day is a leap year, keep going until we get the next leap year anniversary
+        // Otherwise if there is already a year set, simply return the exact date.
+        if (!isYearSet) {
+            int anniversaryYear = today.get(Calendar.YEAR);
+            if (anniversary.before(today) ||
+                    (isFeb29 && !anniversary.isLeapYear(anniversaryYear))) {
+                // If the target date is not Feb 29, then set the anniversary to the next year.
+                // Otherwise, keep going until we find the next leap year (this is not guaranteed
+                // to be in 4 years time).
+                do {
+                    anniversaryYear +=1;
+                } while (isFeb29 && !anniversary.isLeapYear(anniversaryYear));
+                anniversary.set(anniversaryYear, targetMonth, targetDay);
+            }
+        }
+        return anniversary.getTime();
+    }
+}
diff --git a/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java b/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java
new file mode 100644
index 0000000..59ee7e5
--- /dev/null
+++ b/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java
@@ -0,0 +1,79 @@
+/*
+ * 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.util;
+
+import android.content.Context;
+import android.support.annotation.IntDef;
+
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.DeviceLocalAccountType;
+
+import java.lang.annotation.Retention;
+
+import static java.lang.annotation.RetentionPolicy.SOURCE;
+
+/**
+ * Reports whether a value from RawContacts.ACCOUNT_TYPE should be considered a "Device"
+ * account
+ */
+public interface DeviceLocalAccountTypeFactory {
+
+    @Retention(SOURCE)
+    @IntDef({TYPE_OTHER, TYPE_DEVICE, TYPE_SIM})
+    @interface LocalAccountType {}
+    static final int TYPE_OTHER = 0;
+    static final int TYPE_DEVICE = 1;
+    static final int TYPE_SIM = 2;
+
+    @DeviceLocalAccountTypeFactory.LocalAccountType int classifyAccount(String accountType);
+
+    AccountType getAccountType(String accountType);
+
+    class Util {
+        private Util() { }
+
+        public static boolean isLocalAccountType(@LocalAccountType int type) {
+            return type == TYPE_SIM || type == TYPE_DEVICE;
+        }
+
+        public static boolean isLocalAccountType(DeviceLocalAccountTypeFactory factory,
+                String type) {
+
+            return isLocalAccountType(factory.classifyAccount(type));
+        }
+    }
+
+    class Default implements DeviceLocalAccountTypeFactory {
+        private Context mContext;
+
+        public Default(Context context) {
+            mContext = context;
+        }
+
+        @Override
+        public int classifyAccount(String accountType) {
+            return accountType == null ? TYPE_DEVICE : TYPE_OTHER;
+        }
+
+        @Override
+        public AccountType getAccountType(String accountType) {
+            if (accountType != null) {
+                throw new IllegalArgumentException(accountType + " is not a device account type.");
+            }
+            return new DeviceLocalAccountType(mContext);
+        }
+    }
+}
diff --git a/src/com/android/contacts/util/EmptyService.java b/src/com/android/contacts/util/EmptyService.java
new file mode 100644
index 0000000..2e6a159
--- /dev/null
+++ b/src/com/android/contacts/util/EmptyService.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2009 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.util;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+/**
+ * Background {@link Service} that is used to keep our process alive long enough
+ * for background threads to finish. Started and stopped directly by specific
+ * background tasks when needed.
+ */
+public class EmptyService extends Service {
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
diff --git a/src/com/android/contacts/util/ImageViewDrawableSetter.java b/src/com/android/contacts/util/ImageViewDrawableSetter.java
index 6147c39..b90cf1f 100644
--- a/src/com/android/contacts/util/ImageViewDrawableSetter.java
+++ b/src/com/android/contacts/util/ImageViewDrawableSetter.java
@@ -26,10 +26,10 @@
 import android.text.TextUtils;
 import android.widget.ImageView;
 
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
-import com.android.contacts.common.model.Contact;
+import com.android.contacts.ContactPhotoManager;
+import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.lettertiles.LetterTileDrawable;
+import com.android.contacts.model.Contact;
 
 import java.util.Arrays;
 
diff --git a/src/com/android/contacts/util/ImplicitIntentsUtil.java b/src/com/android/contacts/util/ImplicitIntentsUtil.java
new file mode 100644
index 0000000..0d00519
--- /dev/null
+++ b/src/com/android/contacts/util/ImplicitIntentsUtil.java
@@ -0,0 +1,231 @@
+/*
+ * Copyright (C) 2015 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.util;
+
+import static com.android.contacts.ShortcutIntentBuilder.INTENT_EXTRA_IGNORE_LAUNCH_ANIMATION;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.net.Uri;
+import android.os.Build;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.QuickContact;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import com.android.contacts.logging.ScreenEvent.ScreenType;
+import com.android.contacts.model.account.GoogleAccountType;
+import com.android.contacts.quickcontact.QuickContactActivity;
+
+import java.util.List;
+
+/**
+ * Utility for forcing intents to be started inside the current app. This is useful for avoiding
+ * senseless disambiguation dialogs. Ie, if a user clicks a contact inside Contacts we assume
+ * they want to view the contact inside the Contacts app as opposed to a 3rd party contacts app.
+ *
+ * Methods are designed to replace the use of startActivity() for implicit intents. This class isn't
+ * necessary for explicit intents. No attempt is made to replace startActivityForResult(), since
+ * startActivityForResult() is always used with explicit intents in this project.
+ *
+ * Why not just always use explicit intents? The Contacts/Dialer app implements standard intent
+ * actions used by others apps. We want to continue exercising these intent filters to make sure
+ * they still work. Plus we sometimes don't know an explicit intent would work. See
+ * {@link #startActivityInAppIfPossible}.
+ *
+ * Some ContactsCommon code that is only used by Dialer doesn't use ImplicitIntentsUtil.
+ */
+public class ImplicitIntentsUtil {
+
+    /**
+     * Start an intent. If it is possible for this app to handle the intent, force this app's
+     * activity to handle the intent. Sometimes it is impossible to know whether this app
+     * can handle an intent while coding since the code is used inside both Dialer and Contacts.
+     * This method is particularly useful in such circumstances.
+     *
+     * On a Nexus 5 with a small number of apps, this method consistently added 3-16ms of delay
+     * in order to talk to the package manager.
+     */
+    public static void startActivityInAppIfPossible(Context context, Intent intent) {
+        final Intent appIntent = getIntentInAppIfExists(context, intent);
+        if (appIntent != null) {
+            context.startActivity(appIntent);
+        } else {
+            context.startActivity(intent);
+        }
+    }
+
+    /**
+     * Start intent using an activity inside this app. This method is useful if you are certain
+     * that the intent can be handled inside this app, and you care about shaving milliseconds.
+     */
+    public static void startActivityInApp(Context context, Intent intent) {
+        String packageName = context.getPackageName();
+        intent.setPackage(packageName);
+        context.startActivity(intent);
+    }
+
+    /**
+     * Start an intent normally. Assert that the intent can't be opened inside this app.
+     */
+    public static void startActivityOutsideApp(Context context, Intent intent) {
+        final boolean isPlatformDebugBuild = Build.TYPE.equals("eng")
+                || Build.TYPE.equals("userdebug");
+        if (isPlatformDebugBuild) {
+            if (getIntentInAppIfExists(context, intent) != null) {
+                throw new AssertionError("startActivityOutsideApp() was called for an intent" +
+                        " that can be handled inside the app");
+            }
+        }
+        context.startActivity(intent);
+    }
+
+    /**
+     * Starts QuickContact in app with the default mode and specified previous screen type.
+     */
+    public static void startQuickContact(Activity activity, Uri contactLookupUri,
+            int previousScreenType) {
+        startQuickContact(activity, contactLookupUri, previousScreenType, /* requestCode */ -1);
+    }
+
+    /**
+     * Starts QuickContact for result with the default mode and specified previous screen type.
+     */
+    public static void startQuickContactForResult(Activity activity, Uri contactLookupUri,
+            int previousScreenType, int requestCode) {
+        startQuickContact(activity, contactLookupUri, previousScreenType, requestCode);
+    }
+
+    private static void startQuickContact(Activity activity, Uri contactLookupUri,
+            int previousScreenType, int requestCode) {
+        final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
+                activity, contactLookupUri, previousScreenType);
+
+        // We only start "for result" if specifically requested.
+        if (requestCode >= 0) {
+            intent.setPackage(activity.getPackageName());
+            activity.startActivityForResult(intent, requestCode);
+        } else {
+            startActivityInApp(activity, intent);
+        }
+    }
+
+    /**
+     * Returns an implicit intent for opening QuickContacts with the default mode and specified
+     * previous screen type.
+     */
+    public static Intent composeQuickContactIntent(Context context, Uri contactLookupUri,
+            int previousScreenType) {
+        return composeQuickContactIntent(context, contactLookupUri,
+                QuickContactActivity.MODE_FULLY_EXPANDED, previousScreenType);
+    }
+
+    /**
+     * Returns an implicit intent for opening QuickContacts.
+     */
+    public static Intent composeQuickContactIntent(Context context, Uri contactLookupUri,
+            int mode, int previousScreenType) {
+        final Intent intent = new Intent(context, QuickContactActivity.class);
+        intent.setAction(QuickContact.ACTION_QUICK_CONTACT);
+        intent.setData(contactLookupUri);
+        intent.putExtra(QuickContact.EXTRA_MODE, mode);
+        // Make sure not to show QuickContacts on top of another QuickContacts.
+        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+        intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, previousScreenType);
+        return intent;
+    }
+
+    /**
+     * Returns an Intent to open the Settings add account activity filtered to only
+     * display contact provider account types.
+     */
+    public static Intent getIntentForAddingAccount() {
+        final Intent intent = new Intent(Settings.ACTION_SYNC_SETTINGS);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
+        intent.putExtra(Settings.EXTRA_AUTHORITIES,
+                new String[]{ContactsContract.AUTHORITY});
+        return intent;
+    }
+
+    /**
+     * Returns an Intent to add a google account.
+     */
+    public static Intent getIntentForAddingGoogleAccount() {
+        final Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
+        intent.putExtra(Settings.EXTRA_ACCOUNT_TYPES,
+                new String[]{GoogleAccountType.ACCOUNT_TYPE});
+        return intent;
+    }
+
+    public static Intent getIntentForQuickContactLauncherShortcut(Context context, Uri contactUri) {
+        final Intent intent = composeQuickContactIntent(context, contactUri,
+                QuickContact.MODE_LARGE, ScreenType.UNKNOWN);
+        intent.setPackage(context.getPackageName());
+
+        // When starting from the launcher, start in a new, cleared task.
+        // CLEAR_WHEN_TASK_RESET cannot reset the root of a task, so we
+        // clear the whole thing preemptively here since QuickContactActivity will
+        // finish itself when launching other detail activities. We need to use
+        // Intent.FLAG_ACTIVITY_NO_ANIMATION since not all versions of launcher will respect
+        // the INTENT_EXTRA_IGNORE_LAUNCH_ANIMATION intent extra.
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK
+                | Intent.FLAG_ACTIVITY_NO_ANIMATION);
+
+        // Tell the launcher to not do its animation, because we are doing our own
+        intent.putExtra(INTENT_EXTRA_IGNORE_LAUNCH_ANIMATION, true);
+
+        intent.putExtra(QuickContact.EXTRA_EXCLUDE_MIMES, (String[])null);
+
+        return intent;
+    }
+
+    /**
+     * Returns a copy of {@param intent} with a class name set, if a class inside this app
+     * has a corresponding intent filter.
+     */
+    private static Intent getIntentInAppIfExists(Context context, Intent intent) {
+        try {
+            final Intent intentCopy = new Intent(intent);
+            // Force this intentCopy to open inside the current app.
+            intentCopy.setPackage(context.getPackageName());
+            final List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(
+                    intentCopy, PackageManager.MATCH_DEFAULT_ONLY);
+            if (list != null && list.size() != 0) {
+                // Now that we know the intentCopy will work inside the current app, we
+                // can return this intent non-null.
+                if (list.get(0).activityInfo != null
+                        && !TextUtils.isEmpty(list.get(0).activityInfo.name)) {
+                    // Now that we know the class name, we may as well attach it to intentCopy
+                    // to prevent the package manager from needing to find it again inside
+                    // startActivity(). This is only needed for efficiency.
+                    intentCopy.setClassName(context.getPackageName(),
+                            list.get(0).activityInfo.name);
+                }
+                return intentCopy;
+            }
+            return null;
+        } catch (Exception e) {
+            // Don't let the package manager crash our app. If the package manager can't resolve the
+            // intent here, then we can still call startActivity without calling setClass() first.
+            return null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/util/LocalizedNameResolver.java b/src/com/android/contacts/util/LocalizedNameResolver.java
new file mode 100644
index 0000000..e6acc64
--- /dev/null
+++ b/src/com/android/contacts/util/LocalizedNameResolver.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2010 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.util;
+
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorDescription;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Resources;
+import android.content.res.Resources.NotFoundException;
+import android.content.res.TypedArray;
+import android.content.res.XmlResourceParser;
+import android.util.AttributeSet;
+import android.util.Xml;
+
+import com.android.contacts.R;
+import com.android.contacts.model.account.ExternalAccountType;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+
+/**
+ * Retrieves localized names per account type. This allows customizing texts like
+ * "All Contacts" for certain account types, but e.g. "All Friends" or "All Connections" for others.
+ */
+public class LocalizedNameResolver  {
+    private static final String TAG = "LocalizedNameResolver";
+
+    private static final String CONTACTS_DATA_KIND = "ContactsDataKind";
+
+    /**
+     * Returns the name for All Contacts for the specified account type.
+     */
+    public static String getAllContactsName(Context context, String accountType) {
+        if (context == null) throw new IllegalArgumentException("Context must not be null");
+        if (accountType == null) return null;
+
+        return resolveAllContactsName(context, accountType);
+     }
+
+    /**
+     * Finds "All Contacts"-Name for the specified account type.
+     */
+    private static String resolveAllContactsName(Context context, String accountType) {
+        final AccountManager am = AccountManager.get(context);
+
+        for (AuthenticatorDescription auth : am.getAuthenticatorTypes()) {
+            if (accountType.equals(auth.type)) {
+                return resolveAllContactsNameFromMetaData(context, auth.packageName);
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Finds the meta-data XML containing the contacts configuration and
+     * reads the picture priority from that file.
+     */
+    private static String resolveAllContactsNameFromMetaData(Context context, String packageName) {
+        final XmlResourceParser parser = ExternalAccountType.loadContactsXml(context, packageName);
+        if (parser != null) {
+            return loadAllContactsNameFromXml(context, parser, packageName);
+        }
+        return null;
+    }
+
+    private static String loadAllContactsNameFromXml(Context context, XmlPullParser parser,
+            String packageName) {
+        try {
+            final AttributeSet attrs = Xml.asAttributeSet(parser);
+            int type;
+            while ((type = parser.next()) != XmlPullParser.START_TAG
+                    && type != XmlPullParser.END_DOCUMENT) {
+                // Drain comments and whitespace
+            }
+
+            if (type != XmlPullParser.START_TAG) {
+                throw new IllegalStateException("No start tag found");
+            }
+
+            final int depth = parser.getDepth();
+            while (((type = parser.next()) != XmlPullParser.END_TAG || parser.getDepth() > depth)
+                    && type != XmlPullParser.END_DOCUMENT) {
+                String name = parser.getName();
+                if (type == XmlPullParser.START_TAG && CONTACTS_DATA_KIND.equals(name)) {
+                    final TypedArray typedArray = context.obtainStyledAttributes(attrs,
+                            R.styleable.ContactsDataKind);
+                    try {
+                        // See if a string has been hardcoded directly into the xml
+                        final String nonResourceString = typedArray.getNonResourceString(
+                                R.styleable.ContactsDataKind_android_allContactsName);
+                        if (nonResourceString != null) {
+                            return nonResourceString;
+                        }
+
+                        // See if a resource is referenced. We can't rely on getString
+                        // to automatically resolve it as the resource lives in a different package
+                        int id = typedArray.getResourceId(
+                                R.styleable.ContactsDataKind_android_allContactsName, 0);
+                        if (id == 0) return null;
+
+                        // Resolve the resource Id
+                        final PackageManager packageManager = context.getPackageManager();
+                        final Resources resources;
+                        try {
+                            resources = packageManager.getResourcesForApplication(packageName);
+                        } catch (NameNotFoundException e) {
+                            return null;
+                        }
+                        try {
+                            return resources.getString(id);
+                        } catch (NotFoundException e) {
+                            return null;
+                        }
+                    } finally {
+                        typedArray.recycle();
+                    }
+                }
+            }
+            return null;
+        } catch (XmlPullParserException e) {
+            throw new IllegalStateException("Problem reading XML", e);
+        } catch (IOException e) {
+            throw new IllegalStateException("Problem reading XML", e);
+        }
+    }
+}
diff --git a/src/com/android/contacts/util/MaterialColorMapUtils.java b/src/com/android/contacts/util/MaterialColorMapUtils.java
new file mode 100644
index 0000000..39f69c2
--- /dev/null
+++ b/src/com/android/contacts/util/MaterialColorMapUtils.java
@@ -0,0 +1,205 @@
+/*
+ * Copyright (C) 2014 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.util;
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.os.Trace;
+import android.support.v4.content.ContextCompat;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.PeopleActivity;
+
+public class MaterialColorMapUtils {
+    private final TypedArray sPrimaryColors;
+    private final TypedArray sSecondaryColors;
+
+    public MaterialColorMapUtils(Resources resources) {
+        sPrimaryColors = resources.obtainTypedArray(
+                com.android.contacts.R.array.letter_tile_colors);
+        sSecondaryColors = resources.obtainTypedArray(
+                com.android.contacts.R.array.letter_tile_colors_dark);
+    }
+
+    public static class MaterialPalette implements Parcelable {
+        public MaterialPalette(int primaryColor, int secondaryColor) {
+            mPrimaryColor = primaryColor;
+            mSecondaryColor = secondaryColor;
+        }
+        public final int mPrimaryColor;
+        public final int mSecondaryColor;
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj) {
+                return true;
+            }
+            if (obj == null) {
+                return false;
+            }
+            if (getClass() != obj.getClass()) {
+                return false;
+            }
+            MaterialPalette other = (MaterialPalette) obj;
+            if (mPrimaryColor != other.mPrimaryColor) {
+                return false;
+            }
+            if (mSecondaryColor != other.mSecondaryColor) {
+                return false;
+            }
+            return true;
+        }
+
+        @Override
+        public int hashCode() {
+            final int prime = 31;
+            int result = 1;
+            result = prime * result + mPrimaryColor;
+            result = prime * result + mSecondaryColor;
+            return result;
+        }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeInt(mPrimaryColor);
+            dest.writeInt(mSecondaryColor);
+        }
+
+        private MaterialPalette(Parcel in) {
+            mPrimaryColor = in.readInt();
+            mSecondaryColor = in.readInt();
+        }
+
+        public static final Creator<MaterialPalette> CREATOR = new Creator<MaterialPalette>() {
+                @Override
+                public MaterialPalette createFromParcel(Parcel in) {
+                    return new MaterialPalette(in);
+                }
+
+                @Override
+                public MaterialPalette[] newArray(int size) {
+                    return new MaterialPalette[size];
+                }
+        };
+    }
+
+    /**
+     * Return primary and secondary colors from the Material color palette that are similar to
+     * {@param color}.
+     */
+    public MaterialPalette calculatePrimaryAndSecondaryColor(int color) {
+        Trace.beginSection("calculatePrimaryAndSecondaryColor");
+
+        final float colorHue = hue(color);
+        float minimumDistance = Float.MAX_VALUE;
+        int indexBestMatch = 0;
+        for (int i = 0; i < sPrimaryColors.length(); i++) {
+            final int primaryColor = sPrimaryColors.getColor(i, 0);
+            final float comparedHue = hue(primaryColor);
+            // No need to be perceptually accurate when calculating color distances since
+            // we are only mapping to 15 colors. Being slightly inaccurate isn't going to change
+            // the mapping very often.
+            final float distance = Math.abs(comparedHue - colorHue);
+            if (distance < minimumDistance) {
+                minimumDistance = distance;
+                indexBestMatch = i;
+            }
+        }
+
+        Trace.endSection();
+        return new MaterialPalette(sPrimaryColors.getColor(indexBestMatch, 0),
+                sSecondaryColors.getColor(indexBestMatch, 0));
+    }
+
+    public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) {
+        final int primaryColor = resources.getColor(
+                R.color.quickcontact_default_photo_tint_color);
+        final int secondaryColor = resources.getColor(
+                R.color.quickcontact_default_photo_tint_color_dark);
+        return new MaterialPalette(primaryColor, secondaryColor);
+    }
+
+    /**
+     * Returns the hue component of a color int.
+     *
+     * @return A value between 0.0f and 1.0f
+     */
+    public static float hue(int color) {
+        int r = (color >> 16) & 0xFF;
+        int g = (color >> 8) & 0xFF;
+        int b = color & 0xFF;
+
+        int V = Math.max(b, Math.max(r, g));
+        int temp = Math.min(b, Math.min(r, g));
+
+        float H;
+
+        if (V == temp) {
+            H = 0;
+        } else {
+            final float vtemp = V - temp;
+            final float cr = (V - r) / vtemp;
+            final float cg = (V - g) / vtemp;
+            final float cb = (V - b) / vtemp;
+
+            if (r == V) {
+                H = cb - cg;
+            } else if (g == V) {
+                H = 2 + cr - cb;
+            } else {
+                H = 4 + cg - cr;
+            }
+
+            H /= 6.f;
+            if (H < 0) {
+                H++;
+            }
+        }
+
+        return H;
+    }
+
+    /**
+     * Returns status bar color for group view and non-group views.
+     */
+    public static int getStatusBarColor(Activity activity) {
+        final boolean isGroupView = activity instanceof PeopleActivity
+                && ((PeopleActivity) activity).isGroupView();
+        return isGroupView
+                ? ContextCompat.getColor(activity, R.color.group_primary_color_dark)
+                : ContextCompat.getColor(activity, R.color.primary_color_dark);
+    }
+
+    /**
+     * Returns toolbar color for group view and non-group views.
+     */
+    public static int getToolBarColor(Activity activity) {
+        final boolean isGroupView = activity instanceof PeopleActivity
+                && ((PeopleActivity) activity).isGroupView();
+        return isGroupView
+                ? ContextCompat.getColor(activity, R.color.group_primary_color)
+                : ContextCompat.getColor(activity, R.color.primary_color);
+    }
+}
diff --git a/src/com/android/contacts/util/NameConverter.java b/src/com/android/contacts/util/NameConverter.java
new file mode 100644
index 0000000..2d9f6fd
--- /dev/null
+++ b/src/com/android/contacts/util/NameConverter.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2011 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.util;
+
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.net.Uri.Builder;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.text.TextUtils;
+
+import com.android.contacts.model.dataitem.StructuredNameDataItem;
+
+/**
+ * Utility class for converting between a display name and structured name (and vice-versa), via
+ * calls to the contact provider.
+ */
+public class NameConverter {
+
+    /**
+     * The array of fields that comprise a structured name.
+     */
+    public static final String[] STRUCTURED_NAME_FIELDS = new String[] {
+            StructuredName.PREFIX,
+            StructuredName.GIVEN_NAME,
+            StructuredName.MIDDLE_NAME,
+            StructuredName.FAMILY_NAME,
+            StructuredName.SUFFIX
+    };
+
+    /**
+     * Converts the given structured name (provided as ContentValues) into a display name string.
+     * @param context Activity context.
+     * @param values The content values containing values comprising the structured name.
+     * @return
+     */
+    public static String structuredNameToDisplayName(Context context, ContentValues values) {
+        Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
+        for (String key : STRUCTURED_NAME_FIELDS) {
+            if (values.containsKey(key)) {
+                appendQueryParameter(builder, key, values.getAsString(key));
+            }
+        }
+        return fetchDisplayName(context, builder.build());
+    }
+
+    /**
+     * Helper method for fetching the display name via the given URI.
+     */
+    private static String fetchDisplayName(Context context, Uri uri) {
+        String displayName = null;
+        Cursor cursor = context.getContentResolver().query(uri, new String[]{
+                StructuredName.DISPLAY_NAME,
+        }, null, null, null);
+
+        if (cursor != null) {
+            try {
+                if (cursor.moveToFirst()) {
+                    displayName = cursor.getString(0);
+                }
+            } finally {
+                cursor.close();
+            }
+        }
+        return displayName;
+    }
+
+    private static void appendQueryParameter(Builder builder, String field, String value) {
+        if (!TextUtils.isEmpty(value)) {
+            builder.appendQueryParameter(field, value);
+        }
+    }
+
+
+    /**
+     * Parses phonetic name and returns parsed data (family, middle, given) as ContentValues.
+     * Parsed data should be {@link StructuredName#PHONETIC_FAMILY_NAME},
+     * {@link StructuredName#PHONETIC_MIDDLE_NAME}, and
+     * {@link StructuredName#PHONETIC_GIVEN_NAME}.
+     * If this method cannot parse given phoneticName, null values will be stored.
+     *
+     * @param phoneticName Phonetic name to be parsed
+     * @param values ContentValues to be used for storing data. If null, new instance will be
+     * created.
+     * @return ContentValues with parsed data. Those data can be null.
+     */
+    public static StructuredNameDataItem parsePhoneticName(String phoneticName,
+            StructuredNameDataItem item) {
+        String family = null;
+        String middle = null;
+        String given = null;
+
+        if (!TextUtils.isEmpty(phoneticName)) {
+            String[] strings = phoneticName.split(" ", 3);
+            switch (strings.length) {
+                case 1:
+                    family = strings[0];
+                    break;
+                case 2:
+                    family = strings[0];
+                    given = strings[1];
+                    break;
+                case 3:
+                    family = strings[0];
+                    middle = strings[1];
+                    given = strings[2];
+                    break;
+            }
+        }
+
+        if (item == null) {
+            item = new StructuredNameDataItem();
+        }
+        item.setPhoneticFamilyName(family);
+        item.setPhoneticMiddleName(middle);
+        item.setPhoneticGivenName(given);
+        return item;
+    }
+
+    /**
+     * Constructs and returns a phonetic full name from given parts.
+     */
+    public static String buildPhoneticName(String family, String middle, String given) {
+        if (!TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle)
+                || !TextUtils.isEmpty(given)) {
+            StringBuilder sb = new StringBuilder();
+            if (!TextUtils.isEmpty(family)) {
+                sb.append(family.trim()).append(' ');
+            }
+            if (!TextUtils.isEmpty(middle)) {
+                sb.append(middle.trim()).append(' ');
+            }
+            if (!TextUtils.isEmpty(given)) {
+                sb.append(given.trim()).append(' ');
+            }
+            sb.setLength(sb.length() - 1); // Yank the last space
+            return sb.toString();
+        } else {
+            return null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/util/PermissionsUtil.java b/src/com/android/contacts/util/PermissionsUtil.java
new file mode 100644
index 0000000..c56b13e
--- /dev/null
+++ b/src/com/android/contacts/util/PermissionsUtil.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2015 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.util;
+
+import android.Manifest.permission;
+import android.app.AppOpsManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.os.Process;
+import android.support.v4.content.ContextCompat;
+import android.support.v4.content.LocalBroadcastManager;
+
+/**
+ * Utility class to help with runtime permissions.
+ */
+public class PermissionsUtil {
+    // Each permission in this list is a cherry-picked permission from a particular permission
+    // group. Granting a permission group enables access to all permissions in that group so we
+    // only need to check a single permission in each group.
+    // Note: This assumes that the app has correctly requested for all the relevant permissions
+    // in its Manifest file.
+    public static final String PHONE = permission.CALL_PHONE;
+    public static final String CONTACTS = permission.READ_CONTACTS;
+    public static final String LOCATION = permission.ACCESS_FINE_LOCATION;
+
+    public static boolean hasPhonePermissions(Context context) {
+        return hasPermission(context, PHONE);
+    }
+
+    public static boolean hasContactsPermissions(Context context) {
+        return hasPermission(context, CONTACTS);
+    }
+
+    public static boolean hasLocationPermissions(Context context) {
+        return hasPermission(context, LOCATION);
+    }
+
+    public static boolean hasPermission(Context context, String permission) {
+        return ContextCompat.checkSelfPermission(context, permission)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
+    public static boolean hasAppOp(Context context, String appOp) {
+        final AppOpsManager appOpsManager =
+                (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
+        final int mode = appOpsManager.checkOpNoThrow(appOp, Process.myUid(),
+                context.getPackageName());
+        return mode == AppOpsManager.MODE_ALLOWED;
+    }
+
+    /**
+     * Rudimentary methods wrapping the use of a LocalBroadcastManager to simplify the process
+     * of notifying other classes when a particular fragment is notified that a permission is
+     * granted.
+     *
+     * To be notified when a permission has been granted, create a new broadcast receiver
+     * and register it using {@link #registerPermissionReceiver(Context, BroadcastReceiver, String)}
+     *
+     * E.g.
+     *
+     * final BroadcastReceiver receiver = new BroadcastReceiver() {
+     *     @Override
+     *     public void onReceive(Context context, Intent intent) {
+     *         refreshContactsView();
+     *     }
+     * }
+     *
+     * PermissionsUtil.registerPermissionReceiver(getActivity(), receiver, READ_CONTACTS);
+     *
+     * If you register to listen for multiple permissions, you can identify which permission was
+     * granted by inspecting {@link Intent#getAction()}.
+     *
+     * In the fragment that requests for the permission, be sure to call
+     * {@link #notifyPermissionGranted(Context, String)} when the permission is granted so that
+     * any interested listeners are notified of the change.
+     */
+    public static void registerPermissionReceiver(Context context, BroadcastReceiver receiver,
+            String permission) {
+        final IntentFilter filter = new IntentFilter(permission);
+        LocalBroadcastManager.getInstance(context).registerReceiver(receiver, filter);
+    }
+
+    public static void unregisterPermissionReceiver(Context context, BroadcastReceiver receiver) {
+        LocalBroadcastManager.getInstance(context).unregisterReceiver(receiver);
+    }
+
+    public static void notifyPermissionGranted(Context context, String permission) {
+        final Intent intent = new Intent(permission);
+        LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
+    }
+}
diff --git a/src/com/android/contacts/util/PhoneCapabilityTester.java b/src/com/android/contacts/util/PhoneCapabilityTester.java
index d1373f4..9753b88 100644
--- a/src/com/android/contacts/util/PhoneCapabilityTester.java
+++ b/src/com/android/contacts/util/PhoneCapabilityTester.java
@@ -27,8 +27,8 @@
 import android.provider.Telephony;
 import android.telephony.TelephonyManager;
 
-import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.compat.TelephonyManagerCompat;
+import com.android.contacts.ContactsUtils;
+import com.android.contacts.compat.TelephonyManagerCompat;
 
 import java.util.List;
 
diff --git a/src/com/android/contacts/util/PhoneNumberFormatter.java b/src/com/android/contacts/util/PhoneNumberFormatter.java
new file mode 100644
index 0000000..58d6800
--- /dev/null
+++ b/src/com/android/contacts/util/PhoneNumberFormatter.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2011 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.util;
+
+import android.content.Context;
+import android.os.AsyncTask;
+import android.telephony.PhoneNumberFormattingTextWatcher;
+import android.widget.TextView;
+
+import com.android.contacts.GeoUtil;
+import com.android.contacts.compat.PhoneNumberFormattingTextWatcherCompat;
+
+public final class PhoneNumberFormatter {
+    private PhoneNumberFormatter() {}
+
+    /**
+     * Load {@link TextWatcherLoadAsyncTask} in a worker thread and set it to a {@link TextView}.
+     */
+    private static class TextWatcherLoadAsyncTask extends
+            AsyncTask<Void, Void, PhoneNumberFormattingTextWatcher> {
+        private final String mCountryCode;
+        private final TextView mTextView;
+        private final boolean mFormatAfterWatcherSet;
+
+        public TextWatcherLoadAsyncTask(
+                String countryCode, TextView textView, boolean formatAfterWatcherSet) {
+            mCountryCode = countryCode;
+            mTextView = textView;
+            mFormatAfterWatcherSet = formatAfterWatcherSet;
+        }
+
+        @Override
+        protected PhoneNumberFormattingTextWatcher doInBackground(Void... params) {
+            return PhoneNumberFormattingTextWatcherCompat.newInstance(mCountryCode);
+        }
+
+        @Override
+        protected void onPostExecute(PhoneNumberFormattingTextWatcher watcher) {
+            if (watcher == null || isCancelled()) {
+                return; // May happen if we cancel the task.
+            }
+
+            // Setting a text changed listener is safe even after the view is detached.
+            mTextView.addTextChangedListener(watcher);
+
+            // Forcing formatting the existing phone number
+            if (mFormatAfterWatcherSet) {
+                watcher.afterTextChanged(mTextView.getEditableText());
+            }
+        }
+    }
+
+    /**
+     * Delay-set {@link PhoneNumberFormattingTextWatcher} to a {@link TextView}.
+     */
+    public static final void setPhoneNumberFormattingTextWatcher(Context context,
+            TextView textView) {
+        setPhoneNumberFormattingTextWatcher(context, textView,
+                /* formatAfterWatcherSet =*/ false);
+    }
+
+    /**
+     * Delay-sets {@link PhoneNumberFormattingTextWatcher} to a {@link TextView}
+     * and formats the number immediately if formatAfterWaterSet is true.
+     * In some cases, formatting before user editing might cause unwanted results
+     * (e.g. the editor thinks the user changed the content, and would save
+     * when closed even when the user didn't make other changes.)
+     */
+    public static final void setPhoneNumberFormattingTextWatcher(
+            Context context, TextView textView, boolean formatAfterWatcherSet) {
+        new TextWatcherLoadAsyncTask(GeoUtil.getCurrentCountryIso(context),
+                textView, formatAfterWatcherSet)
+                .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null);
+    }
+}
diff --git a/src/com/android/contacts/util/PhoneNumberHelper.java b/src/com/android/contacts/util/PhoneNumberHelper.java
new file mode 100644
index 0000000..eb070b2
--- /dev/null
+++ b/src/com/android/contacts/util/PhoneNumberHelper.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2013 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.util;
+
+import android.telephony.PhoneNumberUtils;
+import android.util.Log;
+
+/**
+ * This class wraps several PhoneNumberUtil calls and TelephonyManager calls. Some of them are
+ * the same as the ones in the framework's code base. We can remove those once they are part of
+ * the public API.
+ */
+public class PhoneNumberHelper {
+
+    private static final String LOG_TAG = PhoneNumberHelper.class.getSimpleName();
+
+    private static final String KOREA_ISO_COUNTRY_CODE = "KR";
+    /**
+     * Determines if the specified number is actually a URI (i.e. a SIP address) rather than a
+     * regular PSTN phone number, based on whether or not the number contains an "@" character.
+     *
+     * @param number Phone number
+     * @return true if number contains @
+     *
+     * TODO: Remove if PhoneNumberUtils.isUriNumber(String number) is made public.
+     */
+    public static boolean isUriNumber(String number) {
+        // Note we allow either "@" or "%40" to indicate a URI, in case
+        // the passed-in string is URI-escaped.  (Neither "@" nor "%40"
+        // will ever be found in a legal PSTN number.)
+        return number != null && (number.contains("@") || number.contains("%40"));
+    }
+
+    /**
+     * Normalize a phone number by removing the characters other than digits. If
+     * the given number has keypad letters, the letters will be converted to
+     * digits first.
+     *
+     * @param phoneNumber The number to be normalized.
+     * @return The normalized number.
+     *
+     * TODO: Remove if PhoneNumberUtils.normalizeNumber(String phoneNumber) is made public.
+     */
+    public static String normalizeNumber(String phoneNumber) {
+        StringBuilder sb = new StringBuilder();
+        int len = phoneNumber.length();
+        for (int i = 0; i < len; i++) {
+            char c = phoneNumber.charAt(i);
+            // Character.digit() supports ASCII and Unicode digits (fullwidth, Arabic-Indic, etc.)
+            int digit = Character.digit(c, 10);
+            if (digit != -1) {
+                sb.append(digit);
+            } else if (i == 0 && c == '+') {
+                sb.append(c);
+            } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
+                return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber));
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * @return the "username" part of the specified SIP address, i.e. the part before the "@"
+     * character (or "%40").
+     *
+     * @param number SIP address of the form "username@domainname" (or the URI-escaped equivalent
+     * "username%40domainname")
+     *
+     * TODO: Remove if PhoneNumberUtils.getUsernameFromUriNumber(String number) is made public.
+     */
+    public static String getUsernameFromUriNumber(String number) {
+        // The delimiter between username and domain name can be
+        // either "@" or "%40" (the URI-escaped equivalent.)
+        int delimiterIndex = number.indexOf('@');
+        if (delimiterIndex < 0) {
+            delimiterIndex = number.indexOf("%40");
+        }
+        if (delimiterIndex < 0) {
+            Log.w(LOG_TAG,
+                    "getUsernameFromUriNumber: no delimiter found in SIP addr '" + number + "'");
+            return number;
+        }
+        return number.substring(0, delimiterIndex);
+    }
+}
diff --git a/src/com/android/contacts/util/SchedulingUtils.java b/src/com/android/contacts/util/SchedulingUtils.java
index fbb2458..f851339 100644
--- a/src/com/android/contacts/util/SchedulingUtils.java
+++ b/src/com/android/contacts/util/SchedulingUtils.java
@@ -17,7 +17,6 @@
 package com.android.contacts.util;
 
 import android.view.View;
-import android.view.ViewTreeObserver.OnDrawListener;
 import android.view.ViewTreeObserver.OnGlobalLayoutListener;
 import android.view.ViewTreeObserver.OnPreDrawListener;
 
diff --git a/src/com/android/contacts/util/SearchUtil.java b/src/com/android/contacts/util/SearchUtil.java
new file mode 100644
index 0000000..d80fc53
--- /dev/null
+++ b/src/com/android/contacts/util/SearchUtil.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+ * Methods related to search.
+ */
+public class SearchUtil {
+
+    public static class MatchedLine {
+
+        public int startIndex = -1;
+        public String line;
+
+        @Override
+        public String toString() {
+            return "MatchedLine{" +
+                    "line='" + line + '\'' +
+                    ", startIndex=" + startIndex +
+                    '}';
+        }
+    }
+
+    /**
+     * Given a string with lines delimited with '\n', finds the matching line to the given
+     * substring.
+     *
+     * @param contents The string to search.
+     * @param substring The substring to search for.
+     * @return A MatchedLine object containing the matching line and the startIndex of the substring
+     * match within that line.
+     */
+    public static MatchedLine findMatchingLine(String contents, String substring) {
+        final MatchedLine matched = new MatchedLine();
+
+        // Snippet may contain multiple lines separated by "\n".
+        // Locate the lines of the content that contain the substring.
+        final int index = SearchUtil.contains(contents, substring);
+        if (index != -1) {
+            // Match found.  Find the corresponding line.
+            int start = index - 1;
+            while (start > -1) {
+                if (contents.charAt(start) == '\n') {
+                    break;
+                }
+                start--;
+            }
+            int end = index + 1;
+            while (end < contents.length()) {
+                if (contents.charAt(end) == '\n') {
+                    break;
+                }
+                end++;
+            }
+            matched.line = contents.substring(start + 1, end);
+            matched.startIndex = index - (start + 1);
+        }
+        return matched;
+    }
+
+    /**
+     * Similar to String.contains() with two main differences:
+     * <p>
+     * 1) Only searches token prefixes.  A token is defined as any combination of letters or
+     * numbers.
+     * <p>
+     * 2) Returns the starting index where the substring is found.
+     *
+     * @param value The string to search.
+     * @param substring The substring to look for.
+     * @return The starting index where the substring is found. {@literal -1} if substring is not
+     *         found in value.
+     */
+    @VisibleForTesting
+    static int contains(String value, String substring) {
+        if (value.length() < substring.length()) {
+            return -1;
+        }
+
+        // i18n support
+        // Generate the code points for the substring once.
+        // There will be a maximum of substring.length code points.  But may be fewer.
+        // Since the array length is not an accurate size, we need to keep a separate variable.
+        final int[] substringCodePoints = new int[substring.length()];
+        int substringLength = 0;  // may not equal substring.length()!!
+        for (int i = 0; i < substring.length(); ) {
+            final int codePoint = Character.codePointAt(substring, i);
+            substringCodePoints[substringLength] = codePoint;
+            substringLength++;
+            i += Character.charCount(codePoint);
+        }
+
+        for (int i = 0; i < value.length(); i = findNextTokenStart(value, i)) {
+            int numMatch = 0;
+            for (int j = i; j < value.length() && numMatch < substringLength; ++numMatch) {
+                int valueCp = Character.toLowerCase(value.codePointAt(j));
+                int substringCp = substringCodePoints[numMatch];
+                if (valueCp != substringCp) {
+                    break;
+                }
+                j += Character.charCount(valueCp);
+            }
+            if (numMatch == substringLength) {
+                return i;
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Find the start of the next token.  A token is composed of letters and numbers. Any other
+     * character are considered delimiters.
+     *
+     * @param line The string to search for the next token.
+     * @param startIndex The index to start searching.  0 based indexing.
+     * @return The index for the start of the next token.  line.length() if next token not found.
+     */
+    @VisibleForTesting
+    static int findNextTokenStart(String line, int startIndex) {
+        int index = startIndex;
+
+        // If already in token, eat remainder of token.
+        while (index <= line.length()) {
+            if (index == line.length()) {
+                // No more tokens.
+                return index;
+            }
+            final int codePoint = line.codePointAt(index);
+            if (!Character.isLetterOrDigit(codePoint)) {
+                break;
+            }
+            index += Character.charCount(codePoint);
+        }
+
+        // Out of token, eat all consecutive delimiters.
+        while (index <= line.length()) {
+            if (index == line.length()) {
+                return index;
+            }
+            final int codePoint = line.codePointAt(index);
+            if (Character.isLetterOrDigit(codePoint)) {
+                break;
+            }
+            index += Character.charCount(codePoint);
+        }
+
+        return index;
+    }
+
+    /**
+     * Anything other than letter and numbers are considered delimiters.  Remove start and end
+     * delimiters since they are not relevant to search.
+     *
+     * @param query The query string to clean.
+     * @return The cleaned query. Empty string if all characters are cleaned out.
+     */
+    public static String cleanStartAndEndOfSearchQuery(String query) {
+        int start = 0;
+        while (start < query.length()) {
+            int codePoint = query.codePointAt(start);
+            if (Character.isLetterOrDigit(codePoint)) {
+                break;
+            }
+            start += Character.charCount(codePoint);
+        }
+
+        if (start == query.length()) {
+            // All characters are delimiters.
+            return "";
+        }
+
+        int end = query.length() - 1;
+        while (end > -1) {
+            if (Character.isLowSurrogate(query.charAt(end))) {
+                // Assume valid i18n string.  There should be a matching high surrogate before it.
+                end--;
+            }
+            int codePoint = query.codePointAt(end);
+            if (Character.isLetterOrDigit(codePoint)) {
+                break;
+            }
+            end--;
+        }
+
+        // end is a letter or digit.
+        return query.substring(start, end + 1);
+    }
+}
diff --git a/src/com/android/contacts/util/SharedPreferenceUtil.java b/src/com/android/contacts/util/SharedPreferenceUtil.java
new file mode 100644
index 0000000..1604711
--- /dev/null
+++ b/src/com/android/contacts/util/SharedPreferenceUtil.java
@@ -0,0 +1,263 @@
+/*
+ * 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.util;
+
+import android.app.backup.BackupManager;
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import com.android.contacts.model.SimCard;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class SharedPreferenceUtil {
+
+    public static final String PREFERENCE_KEY_ACCOUNT_SYNC_OFF_DISMISSES =
+            "num-of-dismisses-account-sync-off";
+
+    public static final String PREFERENCE_KEY_GLOBAL_SYNC_OFF_DISMISSES =
+            "num-of-dismisses-auto-sync-off";
+
+    public static final String PREFERENCE_KEY_HAMBURGER_PROMO_DISPLAYED =
+            "hamburgerPromoDisplayed";
+
+    public static final String PREFERENCE_KEY_HAMBURGER_MENU_CLICKED =
+            "hamburgerMenuClicked";
+
+    public static final String PREFERENCE_KEY_HAMBURGER_PROMO_TRIGGER_ACTION_HAPPENED =
+            "hamburgerPromoTriggerActionHappened";
+
+    private static final String PREFERENCE_KEY_IMPORTED_SIM_CARDS =
+            "importedSimCards";
+
+    private static final String PREFERENCE_KEY_DISMISSED_SIM_CARDS =
+            "dismissedSimCards";
+
+    private static final String PREFERENCE_KEY_RESTORED_DEVICES =
+            "restoredDevices";
+
+    private static final String PREFERENCE_KEY_DISMISSED_DEVICES =
+            "dismissedDevices";
+
+    public static final String PREFERENCE_WELCOME_CARD_DISMISSED =
+            "welcome-reminder-card-dismissed";
+
+    public static boolean getHamburgerPromoDisplayedBefore(Context context) {
+        return getSharedPreferences(context)
+                .getBoolean(PREFERENCE_KEY_HAMBURGER_PROMO_DISPLAYED, false);
+    }
+
+    public static void setHamburgerPromoDisplayedBefore(Context context) {
+        getSharedPreferences(context).edit()
+                .putBoolean(PREFERENCE_KEY_HAMBURGER_PROMO_DISPLAYED, true)
+                .apply();
+        new BackupManager(context).dataChanged();
+    }
+
+    public static boolean getHamburgerMenuClickedBefore(Context context) {
+        return getSharedPreferences(context)
+                .getBoolean(PREFERENCE_KEY_HAMBURGER_MENU_CLICKED, false);
+    }
+
+    public static void setHamburgerMenuClickedBefore(Context context) {
+        getSharedPreferences(context).edit()
+                .putBoolean(PREFERENCE_KEY_HAMBURGER_MENU_CLICKED, true)
+                .apply();
+        new BackupManager(context).dataChanged();
+    }
+
+    public static boolean getHamburgerPromoTriggerActionHappenedBefore(Context context) {
+        return getSharedPreferences(context)
+                .getBoolean(PREFERENCE_KEY_HAMBURGER_PROMO_TRIGGER_ACTION_HAPPENED, false);
+    }
+
+    public static void setHamburgerPromoTriggerActionHappenedBefore(Context context) {
+        getSharedPreferences(context).edit()
+                .putBoolean(PREFERENCE_KEY_HAMBURGER_PROMO_TRIGGER_ACTION_HAPPENED, true)
+                .apply();
+        new BackupManager(context).dataChanged();
+    }
+
+    /**
+     * Show hamburger promo if:
+     * 1) Hamburger menu is never clicked before
+     * 2) Hamburger menu promo is never displayed before
+     * 3) There is at least one available user action
+     *      (for now, available user actions to trigger to displayed hamburger promo are:
+     *       a: QuickContact UI back to PeopleActivity
+     *       b: Search action back to PeopleActivity)
+     */
+    public static boolean getShouldShowHamburgerPromo(Context context) {
+        return !getHamburgerMenuClickedBefore(context)
+                && getHamburgerPromoTriggerActionHappenedBefore(context)
+                && !getHamburgerPromoDisplayedBefore(context);
+    }
+
+    protected static SharedPreferences getSharedPreferences(Context context) {
+        return context.getSharedPreferences(getSharedPreferencesFilename(context),
+                Context.MODE_PRIVATE);
+    }
+
+    public static String getSharedPreferencesFilename(Context context) {
+        return context.getPackageName();
+    }
+
+    public static int getNumOfDismissesForAutoSyncOff(Context context) {
+        return getSharedPreferences(context).getInt(PREFERENCE_KEY_GLOBAL_SYNC_OFF_DISMISSES, 0);
+    }
+
+    public static void resetNumOfDismissesForAutoSyncOff(Context context) {
+        final int value = getSharedPreferences(context).getInt(
+                PREFERENCE_KEY_GLOBAL_SYNC_OFF_DISMISSES, 0);
+        if (value != 0) {
+            getSharedPreferences(context).edit()
+                    .putInt(PREFERENCE_KEY_GLOBAL_SYNC_OFF_DISMISSES, 0).apply();
+        }
+    }
+
+    public static void incNumOfDismissesForAutoSyncOff(Context context) {
+        final int value = getSharedPreferences(context).getInt(
+                PREFERENCE_KEY_GLOBAL_SYNC_OFF_DISMISSES, 0);
+        getSharedPreferences(context).edit()
+                .putInt(PREFERENCE_KEY_GLOBAL_SYNC_OFF_DISMISSES, value + 1).apply();
+    }
+
+    private static String buildSharedPrefsName(String accountName) {
+        return accountName + "-" + PREFERENCE_KEY_ACCOUNT_SYNC_OFF_DISMISSES;
+    }
+
+    public static int getNumOfDismissesforAccountSyncOff(Context context, String accountName) {
+        return getSharedPreferences(context).getInt(buildSharedPrefsName(accountName), 0);
+    }
+
+    public static void resetNumOfDismissesForAccountSyncOff(Context context, String accountName) {
+        final int value = getSharedPreferences(context).getInt(
+                buildSharedPrefsName(accountName), 0);
+        if (value != 0) {
+            getSharedPreferences(context).edit()
+                    .putInt(buildSharedPrefsName(accountName), 0).apply();
+        }
+    }
+
+    public static void incNumOfDismissesForAccountSyncOff(Context context, String accountName) {
+        final int value = getSharedPreferences(context).getInt(
+                buildSharedPrefsName(accountName), 0);
+        getSharedPreferences(context).edit()
+                .putInt(buildSharedPrefsName(accountName), value + 1).apply();
+    }
+
+    public static void persistSimStates(Context context, Collection<SimCard> sims) {
+        final Set<String> imported = new HashSet<>(getImportedSims(context));
+        final Set<String> dismissed = new HashSet<>(getDismissedSims(context));
+        for (SimCard sim : sims) {
+            final String id = sim.getSimId();
+            if (id == null) {
+                continue;
+            }
+            if (sim.isImported()) {
+                imported.add(id);
+            } else {
+                imported.remove(id);
+            }
+            if (sim.isDismissed()) {
+                dismissed.add(id);
+            } else {
+                dismissed.remove(id);
+            }
+        }
+        getSharedPreferences(context).edit()
+                .putStringSet(PREFERENCE_KEY_IMPORTED_SIM_CARDS, imported)
+                .putStringSet(PREFERENCE_KEY_DISMISSED_SIM_CARDS, dismissed)
+                .apply();
+    }
+
+    public static List<SimCard> restoreSimStates(Context context, List<SimCard> sims) {
+        final Set<String> imported = getImportedSims(context);
+        final Set<String> dismissed = getDismissedSims(context);
+        List<SimCard> result = new ArrayList<>();
+        for (SimCard sim : sims) {
+            result.add(sim.withImportAndDismissStates(imported.contains(sim.getSimId()),
+                    dismissed.contains(sim.getSimId())));
+        }
+        return result;
+    }
+
+    private static Set<String> getImportedSims(Context context) {
+        return getSharedPreferences(context)
+                .getStringSet(PREFERENCE_KEY_IMPORTED_SIM_CARDS, Collections.<String>emptySet());
+    }
+
+    private static Set<String> getDismissedSims(Context context) {
+        return getSharedPreferences(context)
+                .getStringSet(PREFERENCE_KEY_DISMISSED_SIM_CARDS, Collections.<String>emptySet());
+    }
+
+    public static Set<String> getRestoredDevices(Context context) {
+        return getSharedPreferences(context)
+                .getStringSet(PREFERENCE_KEY_RESTORED_DEVICES, Collections.<String>emptySet());
+    }
+
+    public static Set<String> getDismissedDevices(Context context) {
+        return getSharedPreferences(context)
+                .getStringSet(PREFERENCE_KEY_DISMISSED_DEVICES, Collections.<String>emptySet());
+    }
+
+    public static void addRestoredDevice(Context context, String deviceId) {
+        final Set<String> restoredDevices = new HashSet<>(getRestoredDevices(context));
+        restoredDevices.add(deviceId);
+        getSharedPreferences(context).edit()
+                .putStringSet(PREFERENCE_KEY_RESTORED_DEVICES, restoredDevices)
+                .apply();
+    }
+
+    public static void addDismissedDevice(Context context, String deviceId) {
+        final Set<String> dismissedDevices = new HashSet<>(getDismissedDevices(context));
+        dismissedDevices.add(deviceId);
+        getSharedPreferences(context).edit()
+                .putStringSet(PREFERENCE_KEY_DISMISSED_DEVICES, dismissedDevices)
+                .commit();
+    }
+
+    public static void removeDismissedDevice(Context context, String deviceId) {
+        final Set<String> dismissedDevices = new HashSet<>(getDismissedDevices(context));
+        dismissedDevices.remove(deviceId);
+        getSharedPreferences(context).edit()
+                .putStringSet(PREFERENCE_KEY_DISMISSED_DEVICES, dismissedDevices)
+                .commit();
+    }
+
+    public static boolean isWelcomeCardDismissed(Context context) {
+        return getSharedPreferences(context).getBoolean(PREFERENCE_WELCOME_CARD_DISMISSED,
+                false);
+    }
+
+    public static void setWelcomeCardDismissed(Context context, boolean isDismissed) {
+        getSharedPreferences(context).edit().putBoolean(PREFERENCE_WELCOME_CARD_DISMISSED,
+                isDismissed).apply();
+        new BackupManager(context).dataChanged();
+    }
+
+    public static void clear(Context context) {
+        getSharedPreferences(context).edit().clear().commit();
+        new BackupManager(context).dataChanged();
+    }
+}
diff --git a/src/com/android/contacts/util/StopWatch.java b/src/com/android/contacts/util/StopWatch.java
new file mode 100644
index 0000000..4300eff
--- /dev/null
+++ b/src/com/android/contacts/util/StopWatch.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import android.util.Log;
+
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+
+/**
+ * A {@link StopWatch} records start, laps and stop, and print them to logcat.
+ */
+public class StopWatch {
+
+    private final String mLabel;
+
+    private final ArrayList<Long> mTimes = Lists.newArrayList();
+    private final ArrayList<String> mLapLabels = Lists.newArrayList();
+
+    private StopWatch(String label) {
+        mLabel = label;
+        lap("");
+    }
+
+    /**
+     * Create a new instance and start it.
+     */
+    public static StopWatch start(String label) {
+        return new StopWatch(label);
+    }
+
+    /**
+     * Record a lap.
+     */
+    public void lap(String lapLabel) {
+        mTimes.add(System.currentTimeMillis());
+        mLapLabels.add(lapLabel);
+    }
+
+    /**
+     * Stop it and log the result, if the total time >= {@code timeThresholdToLog}.
+     */
+    public void stopAndLog(String TAG, int timeThresholdToLog) {
+
+        lap("");
+
+        final long start = mTimes.get(0);
+        final long stop = mTimes.get(mTimes.size() - 1);
+
+        final long total = stop - start;
+        if (total < timeThresholdToLog) return;
+
+        final StringBuilder sb = new StringBuilder();
+        sb.append(mLabel);
+        sb.append(",");
+        sb.append(total);
+        sb.append(": ");
+
+        long last = start;
+        for (int i = 1; i < mTimes.size(); i++) {
+            final long current = mTimes.get(i);
+            sb.append(mLapLabels.get(i));
+            sb.append(",");
+            sb.append((current - last));
+            sb.append(" ");
+            last = current;
+        }
+        if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, sb.toString());
+    }
+
+    /**
+     * Return a dummy instance that does no operations.
+     */
+    public static StopWatch getNullStopWatch() {
+        return NullStopWatch.INSTANCE;
+    }
+
+    private static class NullStopWatch extends StopWatch {
+        public static final NullStopWatch INSTANCE = new NullStopWatch();
+
+        public NullStopWatch() {
+            super(null);
+        }
+
+        @Override
+        public void lap(String lapLabel) {
+            // noop
+        }
+
+        @Override
+        public void stopAndLog(String TAG, int timeThresholdToLog) {
+            // noop
+        }
+    }
+}
diff --git a/src/com/android/contacts/util/SyncUtil.java b/src/com/android/contacts/util/SyncUtil.java
new file mode 100644
index 0000000..c5feb39
--- /dev/null
+++ b/src/com/android/contacts/util/SyncUtil.java
@@ -0,0 +1,121 @@
+/*
+ * 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.util;
+
+import android.accounts.Account;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.provider.ContactsContract;
+
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.GoogleAccountType;
+
+import java.util.List;
+
+/**
+ * Utilities related to sync.
+ */
+public final class SyncUtil {
+    private static final String TAG = "SyncUtil";
+
+    public static final int SYNC_SETTING_SYNC_ON = 0;
+    public static final int SYNC_SETTING_GLOBAL_SYNC_OFF = 1;
+    public static final int SYNC_SETTING_ACCOUNT_SYNC_OFF = 2;
+
+    private SyncUtil() {
+    }
+
+    public static final boolean isSyncStatusPendingOrActive(Account account) {
+        if (account == null) {
+            return false;
+        }
+        return ContentResolver.isSyncPending(account, ContactsContract.AUTHORITY)
+                || ContentResolver.isSyncActive(account, ContactsContract.AUTHORITY);
+    }
+
+    /**
+     * Returns true {@link ContentResolver#isSyncPending(Account, String)} or
+     * {@link ContentResolver#isSyncActive(Account, String)} is true for any account in accounts
+     */
+    public static final boolean isAnySyncing(List<AccountWithDataSet> accounts) {
+        for (AccountWithDataSet accountWithDataSet : accounts) {
+            if (isSyncStatusPendingOrActive(accountWithDataSet.getAccountOrNull())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Returns true if the given Google account is not syncable.
+     */
+    public static final boolean isUnsyncableGoogleAccount(Account account) {
+        if (account == null || !GoogleAccountType.ACCOUNT_TYPE.equals(account.type)) {
+            return false;
+        }
+        return ContentResolver.getIsSyncable(account, ContactsContract.AUTHORITY) <= 0;
+    }
+
+    public static final boolean hasSyncableAccount(AccountTypeManager accountTypeManager) {
+        return !accountTypeManager.getWritableGoogleAccounts().isEmpty();
+    }
+
+    public static boolean isAlertVisible(Context context, Account account, int reason) {
+        if (reason == SYNC_SETTING_GLOBAL_SYNC_OFF) {
+            return (SharedPreferenceUtil.getNumOfDismissesForAutoSyncOff(context) == 0);
+        } else if (reason == SYNC_SETTING_ACCOUNT_SYNC_OFF && account != null) {
+            return (SharedPreferenceUtil.getNumOfDismissesforAccountSyncOff(
+                    context, account.name) == 0);
+        }
+        return false;
+    }
+
+    public static int calculateReasonSyncOff(Context context, Account account) {
+        // Global sync is turned off
+        if (!ContentResolver.getMasterSyncAutomatically()) {
+            if (account != null) {
+                SharedPreferenceUtil.resetNumOfDismissesForAccountSyncOff(
+                        context, account.name);
+            }
+            return SYNC_SETTING_GLOBAL_SYNC_OFF;
+        }
+
+        // Global sync is on, clear the number of times users has dismissed this
+        // alert so that next time global sync is off, alert gets displayed again.
+        SharedPreferenceUtil.resetNumOfDismissesForAutoSyncOff(context);
+        if (account != null) {
+            // Account level sync is off
+            if (!ContentResolver.getSyncAutomatically(account, ContactsContract.AUTHORITY)) {
+                return SYNC_SETTING_ACCOUNT_SYNC_OFF;
+            }
+            // Account sync is on, clear the number of times users has dismissed this
+            // alert so that next time sync is off, alert gets displayed again.
+            SharedPreferenceUtil.resetNumOfDismissesForAccountSyncOff(
+                    context, account.name);
+        }
+        return SYNC_SETTING_SYNC_ON;
+    }
+
+    public static boolean isNetworkConnected(Context context) {
+        ConnectivityManager cm =
+                (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
+        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
+        return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/util/TelephonyManagerUtils.java b/src/com/android/contacts/util/TelephonyManagerUtils.java
new file mode 100644
index 0000000..ef1544c
--- /dev/null
+++ b/src/com/android/contacts/util/TelephonyManagerUtils.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2013 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.util;
+
+import android.content.Context;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+
+import java.util.Locale;
+
+/**
+ * This class provides several TelephonyManager util functions.
+ */
+public class TelephonyManagerUtils {
+
+    private static final String LOG_TAG = TelephonyManagerUtils.class.getSimpleName();
+
+    /**
+     * Gets the voicemail tag from Telephony Manager.
+     * @param context Current application context
+     * @return Voicemail tag, the alphabetic identifier associated with the voice mail number.
+     */
+    public static String getVoiceMailAlphaTag(Context context) {
+        final TelephonyManager telephonyManager =
+                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        final String voiceMailLabel = telephonyManager.getVoiceMailAlphaTag();
+        return voiceMailLabel;
+    }
+
+    /**
+     * @return The ISO 3166-1 two letters country code of the country the user
+     *         is in based on the network location. If the network location does not exist, fall
+     *         back to the locale setting.
+     */
+    public static String getCurrentCountryIso(Context context, Locale locale) {
+        // Without framework function calls, this seems to be the most accurate location service
+        // we can rely on.
+        final TelephonyManager telephonyManager =
+            (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        String countryIso = telephonyManager.getNetworkCountryIso().toUpperCase();
+
+        if (countryIso == null) {
+            countryIso = locale.getCountry();
+            Log.w(LOG_TAG, "No CountryDetector; falling back to countryIso based on locale: "
+                    + countryIso);
+        }
+        return countryIso;
+    }
+
+    /**
+     * @param context Current application context.
+     * @return True if there is a subscription which supports video calls. False otherwise.
+     */
+    public static boolean hasVideoCallSubscription(Context context) {
+        // TODO: Check the telephony manager's subscriptions to see if any support video calls.
+        return true;
+    }
+}
diff --git a/src/com/android/contacts/util/TrafficStatsTags.java b/src/com/android/contacts/util/TrafficStatsTags.java
new file mode 100644
index 0000000..617aa4d
--- /dev/null
+++ b/src/com/android/contacts/util/TrafficStatsTags.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2015 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.util;
+
+public class TrafficStatsTags {
+    public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001;
+    public static final int TAG_MAX = 0x9999;
+}
diff --git a/src/com/android/contacts/util/UriUtils.java b/src/com/android/contacts/util/UriUtils.java
new file mode 100644
index 0000000..419304f
--- /dev/null
+++ b/src/com/android/contacts/util/UriUtils.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2011 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.util;
+
+import android.net.Uri;
+import android.provider.ContactsContract;
+
+import java.util.List;
+
+/**
+ * Utility methods for dealing with URIs.
+ */
+public class UriUtils {
+    /** Static helper, not instantiable. */
+    private UriUtils() {}
+
+    /** Checks whether two URI are equal, taking care of the case where either is null. */
+    public static boolean areEqual(Uri uri1, Uri uri2) {
+        if (uri1 == null && uri2 == null) {
+            return true;
+        }
+        if (uri1 == null || uri2 == null) {
+            return false;
+        }
+        return uri1.equals(uri2);
+    }
+
+    /** Parses a string into a URI and returns null if the given string is null. */
+    public static Uri parseUriOrNull(String uriString) {
+        if (uriString == null) {
+            return null;
+        }
+        return Uri.parse(uriString);
+    }
+
+    /** Converts a URI into a string, returns null if the given URI is null. */
+    public static String uriToString(Uri uri) {
+        return uri == null ? null : uri.toString();
+    }
+
+    public static boolean isEncodedContactUri(Uri uri) {
+        if (uri == null) {
+            return false;
+        }
+        final String lastPathSegment = uri.getLastPathSegment();
+        if (lastPathSegment == null) {
+            return false;
+        }
+        return lastPathSegment.equals(Constants.LOOKUP_URI_ENCODED);
+    }
+
+    /**
+     * @return {@code uri} as-is if the authority is of contacts provider.  Otherwise
+     * or {@code uri} is null, return null otherwise
+     */
+    public static Uri nullForNonContactsUri(Uri uri) {
+        if (uri == null) {
+            return null;
+        }
+        return ContactsContract.AUTHORITY.equals(uri.getAuthority()) ? uri : null;
+    }
+
+    /**
+     * Parses the given URI to determine the original lookup key of the contact.
+     */
+    public static String getLookupKeyFromUri(Uri lookupUri) {
+        // Would be nice to be able to persist the lookup key somehow to avoid having to parse
+        // the uri entirely just to retrieve the lookup key, but every uri is already parsed
+        // once anyway to check if it is an encoded JSON uri, so this has negligible effect
+        // on performance.
+        if (lookupUri != null && !UriUtils.isEncodedContactUri(lookupUri)) {
+            final List<String> segments = lookupUri.getPathSegments();
+            // This returns the third path segment of the uri, where the lookup key is located.
+            // See {@link android.provider.ContactsContract.Contacts#CONTENT_LOOKUP_URI}.
+            return (segments.size() < 3) ? null : Uri.encode(segments.get(2));
+        } else {
+            return null;
+        }
+    }
+}
diff --git a/src/com/android/contacts/util/ViewUtil.java b/src/com/android/contacts/util/ViewUtil.java
new file mode 100644
index 0000000..ccb8a82
--- /dev/null
+++ b/src/com/android/contacts/util/ViewUtil.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import android.content.res.Resources;
+import android.graphics.Outline;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewOutlineProvider;
+import android.widget.ListView;
+
+import com.android.contacts.R;
+import com.android.contacts.compat.CompatUtils;
+
+/**
+ * Provides static functions to work with views
+ */
+public class ViewUtil {
+    private ViewUtil() {}
+
+    /**
+     * Returns the width as specified in the LayoutParams
+     * @throws IllegalStateException Thrown if the view's width is unknown before a layout pass
+     * s
+     */
+    public static int getConstantPreLayoutWidth(View view) {
+        // We haven't been layed out yet, so get the size from the LayoutParams
+        final ViewGroup.LayoutParams p = view.getLayoutParams();
+        if (p.width < 0) {
+            throw new IllegalStateException("Expecting view's width to be a constant rather " +
+                    "than a result of the layout pass");
+        }
+        return p.width;
+    }
+
+    /**
+     * Returns a boolean indicating whether or not the view's layout direction is RTL
+     *
+     * @param view - A valid view
+     * @return True if the view's layout direction is RTL
+     */
+    public static boolean isViewLayoutRtl(View view) {
+        return view.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+    }
+
+    private static final ViewOutlineProvider OVAL_OUTLINE_PROVIDER;
+    static {
+        if (CompatUtils.isLollipopCompatible()) {
+            OVAL_OUTLINE_PROVIDER = new ViewOutlineProvider() {
+                @Override
+                public void getOutline(View view, Outline outline) {
+                    outline.setOval(0, 0, view.getWidth(), view.getHeight());
+                }
+            };
+        } else {
+            OVAL_OUTLINE_PROVIDER = null;
+        }
+    }
+
+    private static final ViewOutlineProvider RECT_OUTLINE_PROVIDER;
+    static {
+        if (CompatUtils.isLollipopCompatible()) {
+            RECT_OUTLINE_PROVIDER = new ViewOutlineProvider() {
+                @Override
+                public void getOutline(View view, Outline outline) {
+                    outline.setRect(0, 0, view.getWidth(), view.getHeight());
+                }
+            };
+        } else {
+            RECT_OUTLINE_PROVIDER = null;
+        }
+    }
+
+    /**
+     * Adds a rectangular outline to a view. This can be useful when you want to add a shadow
+     * to a transparent view. See b/16856049.
+     * @param view view that the outline is added to
+     * @param res The resources file.
+     */
+    public static void addRectangularOutlineProvider(View view, Resources res) {
+        if (CompatUtils.isLollipopCompatible()) {
+            view.setOutlineProvider(RECT_OUTLINE_PROVIDER);
+        }
+    }
+
+    /**
+     * Configures the floating action button, clipping it to a circle and setting its translation z.
+     * @param view The float action button's view.
+     * @param res The resources file.
+     */
+    public static void setupFloatingActionButton(View view, Resources res) {
+        if (CompatUtils.isLollipopCompatible()) {
+            view.setOutlineProvider(OVAL_OUTLINE_PROVIDER);
+            view.setTranslationZ(
+                    res.getDimensionPixelSize(R.dimen.floating_action_button_translation_z));
+        }
+    }
+
+    /**
+     * Adds padding to the bottom of the given {@link ListView} so that the floating action button
+     * does not obscure any content.
+     *
+     * @param listView to add the padding to
+     * @param res valid resources object
+     */
+    public static void addBottomPaddingToListViewForFab(ListView listView, Resources res) {
+        final int fabPadding = res.getDimensionPixelSize(
+                R.dimen.floating_action_button_list_bottom_padding);
+        listView.setPaddingRelative(listView.getPaddingStart(), listView.getPaddingTop(),
+                listView.getPaddingEnd(), listView.getPaddingBottom() + fabPadding);
+        listView.setClipToPadding(false);
+    }
+}
diff --git a/src/com/android/contacts/util/WeakAsyncTask.java b/src/com/android/contacts/util/WeakAsyncTask.java
new file mode 100644
index 0000000..f60cfd7
--- /dev/null
+++ b/src/com/android/contacts/util/WeakAsyncTask.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2009 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.util;
+
+import android.os.AsyncTask;
+
+import java.lang.ref.WeakReference;
+
+public abstract class WeakAsyncTask<Params, Progress, Result, WeakTarget> extends
+        AsyncTask<Params, Progress, Result> {
+    protected WeakReference<WeakTarget> mTarget;
+
+    public WeakAsyncTask(WeakTarget target) {
+        mTarget = new WeakReference<WeakTarget>(target);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected final void onPreExecute() {
+        final WeakTarget target = mTarget.get();
+        if (target != null) {
+            this.onPreExecute(target);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected final Result doInBackground(Params... params) {
+        final WeakTarget target = mTarget.get();
+        if (target != null) {
+            return this.doInBackground(target, params);
+        } else {
+            return null;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected final void onPostExecute(Result result) {
+        final WeakTarget target = mTarget.get();
+        if (target != null) {
+            this.onPostExecute(target, result);
+        }
+    }
+
+    protected void onPreExecute(WeakTarget target) {
+        // No default action
+    }
+
+    protected abstract Result doInBackground(WeakTarget target, Params... params);
+
+    protected void onPostExecute(WeakTarget target, Result result) {
+        // No default action
+    }
+}
diff --git a/src/com/android/contacts/util/concurrent/ContactsExecutors.java b/src/com/android/contacts/util/concurrent/ContactsExecutors.java
new file mode 100644
index 0000000..58a6c1f
--- /dev/null
+++ b/src/com/android/contacts/util/concurrent/ContactsExecutors.java
@@ -0,0 +1,242 @@
+// Copyright 2016 Google Inc. All Rights Reserved.
+package com.android.contacts.util.concurrent;
+
+import android.os.AsyncTask;
+import android.os.Handler;
+import android.os.Looper;
+import android.support.annotation.NonNull;
+
+import com.google.common.util.concurrent.ForwardingFuture;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
+import com.google.common.util.concurrent.SettableFuture;
+
+import java.util.List;
+import java.util.concurrent.AbstractExecutorService;
+import java.util.concurrent.Callable;
+import java.util.concurrent.Delayed;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.RunnableScheduledFuture;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * Provides some common executors for use with {@link Futures}
+ */
+public class ContactsExecutors {
+
+    private ContactsExecutors() {}
+
+    private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
+    private static final int CORE_POOL_SIZE = CPU_COUNT + 1;
+
+    // AsyncTask.THREAD_POOL_EXECUTOR is a ThreadPoolExecutor so we should end up always using that
+    // but we have a fallback in case the platform implementation changes in some future release.
+    private static final ListeningExecutorService DEFAULT_THREAD_POOL_EXECUTOR =
+            (AsyncTask.THREAD_POOL_EXECUTOR instanceof ExecutorService) ?
+                    MoreExecutors.listeningDecorator(
+                            (ExecutorService) AsyncTask.THREAD_POOL_EXECUTOR) :
+                    MoreExecutors.listeningDecorator(
+                            Executors.newFixedThreadPool(CORE_POOL_SIZE));
+
+    // We initialize this lazily since in some cases we may never even read from the SIM card
+    private static ListeningExecutorService sSimExecutor;
+
+    /**
+     * Returns the default thread pool that can be used for background work.
+     */
+    public static ListeningExecutorService getDefaultThreadPoolExecutor() {
+        return DEFAULT_THREAD_POOL_EXECUTOR;
+    }
+
+    /**
+     * Creates an executor that runs commands on the application UI thread
+     */
+    public static ScheduledExecutorService newUiThreadExecutor() {
+        return newHandlerExecutor(new Handler(Looper.getMainLooper()));
+    }
+
+    /**
+     * Create an executor that posts commands to the provided handler
+     */
+    public static ScheduledExecutorService newHandlerExecutor(final Handler handler) {
+        return new HandlerExecutorService(handler);
+    }
+
+    /**
+     * Returns an ExecutorService that can be used to read from the SIM card.
+     *
+     * <p>See b/32831092</p>
+     * <p>A different executor than {@link ContactsExecutors#getDefaultThreadPoolExecutor()} is
+     * provided for this case because reads of the SIM card can block for long periods of time
+     * and if they do we might exhaust our thread pool. Additionally it appears that reading from
+     * the SIM provider from multiple threads concurrently can cause problems.
+     * </p>
+     */
+    public synchronized static ListeningExecutorService getSimReadExecutor() {
+        if (sSimExecutor == null) {
+            final ThreadPoolExecutor executor = new ThreadPoolExecutor(
+                    1, 1, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
+            executor.allowCoreThreadTimeOut(true);
+            sSimExecutor = MoreExecutors.listeningDecorator(executor);
+        }
+        return sSimExecutor;
+    }
+
+    /**
+     * Wrapper around a handler that implements a subset of the ScheduledExecutorService
+     *
+     * <p>This class is useful for testability because Handler can't be mocked since it's
+     * methods are final. It might be better to just use Executors.newSingleThreadScheduledExecutor
+     * in the cases where we need to run some time based tasks.
+     * </p>
+     */
+    private static class HandlerExecutorService extends AbstractExecutorService
+            implements ScheduledExecutorService {
+        private final Handler mHandler;
+
+        private HandlerExecutorService(Handler handler) {
+            mHandler = handler;
+        }
+
+        @NonNull
+        @Override
+        public ScheduledFuture<?> schedule(final Runnable command, long delay, TimeUnit unit) {
+            final HandlerFuture<Void> future = HandlerFuture
+                    .fromRunnable(mHandler, delay, unit, command);
+            mHandler.postDelayed(future, unit.toMillis(delay));
+            return future;
+        }
+
+        @NonNull
+        @Override
+        public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) {
+            final HandlerFuture<V> future = new HandlerFuture<>(mHandler, delay, unit, callable);
+            mHandler.postDelayed(future, unit.toMillis(delay));
+            return future;
+        }
+
+        @NonNull
+        @Override
+        public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay,
+                long period, TimeUnit unit) {
+            throw new UnsupportedOperationException();
+        }
+
+        @NonNull
+        @Override
+        public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay,
+                long delay, TimeUnit unit) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void shutdown() {
+        }
+
+        @Override
+        public List<Runnable> shutdownNow() {
+            return null;
+        }
+
+        @Override
+        public boolean isShutdown() {
+            return false;
+        }
+
+        @Override
+        public boolean isTerminated() {
+            return false;
+        }
+
+        @Override
+        public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void execute(Runnable command) {
+            mHandler.post(command);
+        }
+    }
+
+    private static class HandlerFuture<T> extends ForwardingFuture<T> implements
+            RunnableScheduledFuture<T> {
+
+        private final Handler mHandler;
+        private final long mDelayMillis;
+        private final Callable<T> mTask;
+        private final SettableFuture<T> mDelegate = SettableFuture.create();
+
+        private final AtomicLong mStart = new AtomicLong(-1);
+
+        private HandlerFuture(Handler handler, long delay, TimeUnit timeUnit, Callable<T> task) {
+            mHandler = handler;
+            mDelayMillis = timeUnit.toMillis(delay);
+            mTask = task;
+        }
+
+        @Override
+        public boolean isPeriodic() {
+            return false;
+        }
+
+        @Override
+        public long getDelay(TimeUnit unit) {
+            long start = mStart.get();
+            if (start < 0) {
+                return mDelayMillis;
+            }
+            long remaining = mDelayMillis - (System.currentTimeMillis() - start);
+            return TimeUnit.MILLISECONDS.convert(remaining, unit);
+        }
+
+        @Override
+        public int compareTo(Delayed o) {
+            return Long.compare(getDelay(TimeUnit.MILLISECONDS),
+                    o.getDelay(TimeUnit.MILLISECONDS));
+        }
+
+        @Override
+        protected Future<T> delegate() {
+            return mDelegate;
+        }
+
+        @Override
+        public boolean cancel(boolean b) {
+            mHandler.removeCallbacks(this);
+            return super.cancel(b);
+        }
+
+        @Override
+        public void run() {
+            if (!mStart.compareAndSet(-1, System.currentTimeMillis())) {
+                // Already started
+                return;
+            }
+            try {
+                mDelegate.set(mTask.call());
+            } catch (Exception e) {
+                mDelegate.setException(e);
+            }
+        }
+
+        public static HandlerFuture<Void> fromRunnable(Handler handler, long delay, TimeUnit unit,
+                final Runnable command) {
+            return new HandlerFuture<>(handler, delay, unit, new Callable<Void>() {
+                @Override
+                public Void call() throws Exception {
+                    command.run();
+                    return null;
+                }
+            });
+        }
+    }
+}
diff --git a/src/com/android/contacts/util/concurrent/FuturesUtil.java b/src/com/android/contacts/util/concurrent/FuturesUtil.java
new file mode 100644
index 0000000..113af93
--- /dev/null
+++ b/src/com/android/contacts/util/concurrent/FuturesUtil.java
@@ -0,0 +1,59 @@
+// Copyright 2016 Google Inc. All Rights Reserved.
+package com.android.contacts.util.concurrent;
+
+import android.os.Handler;
+
+import com.google.common.util.concurrent.FutureFallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * Has utility methods for operating on ListenableFutures
+ */
+public class FuturesUtil {
+
+    /**
+     * See
+     * {@link FuturesUtil#withTimeout(ListenableFuture, long, TimeUnit, ScheduledExecutorService)}
+     */
+    public static <V> ListenableFuture<V> withTimeout(final ListenableFuture<V> future, long time,
+            TimeUnit unit, Handler handler) {
+        return withTimeout(future, time, unit, ContactsExecutors.newHandlerExecutor(handler));
+    }
+
+    /**
+     * Returns a future that completes with the result from the input future unless the specified
+     * time elapses before it finishes in which case the result will contain a TimeoutException and
+     * the input future will be canceled.
+     *
+     * <p>Guava has Futures.withTimeout but it isn't available until v19.0 and we depend on v14.0
+     * right now. Replace usages of this method if we upgrade our dependency.</p>
+     */
+    public static <V> ListenableFuture<V> withTimeout(final ListenableFuture<V> future, long time,
+            TimeUnit unit, ScheduledExecutorService executor) {
+        final AtomicBoolean didTimeout = new AtomicBoolean(false);
+        executor.schedule(new Runnable() {
+            @Override
+            public void run() {
+                didTimeout.set(!future.isDone() && !future.isCancelled());
+                future.cancel(true);
+            }
+        }, time, unit);
+
+        return Futures.withFallback(future, new FutureFallback<V>() {
+            @Override
+            public ListenableFuture<V> create(Throwable t) throws Exception {
+                if ((t instanceof CancellationException) && didTimeout.get()) {
+                    return Futures.immediateFailedFuture(new TimeoutException("Timeout expired"));
+                }
+                return Futures.immediateFailedFuture(t);
+            }
+        });
+    }
+}
diff --git a/src/com/android/contacts/util/concurrent/ListenableFutureLoader.java b/src/com/android/contacts/util/concurrent/ListenableFutureLoader.java
new file mode 100644
index 0000000..67d5259
--- /dev/null
+++ b/src/com/android/contacts/util/concurrent/ListenableFutureLoader.java
@@ -0,0 +1,156 @@
+/*
+ * 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.util.concurrent;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.Loader;
+import android.support.v4.content.LocalBroadcastManager;
+import android.util.Log;
+
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.Executor;
+
+/**
+ * Wraps a ListenableFuture for integration with {@link android.app.LoaderManager}
+ *
+ * <p>Using a loader ensures that the result is delivered while the receiving component (activity
+ * or fragment) is resumed and also prevents leaking references these components
+ * </p>
+ */
+public abstract class ListenableFutureLoader<D> extends Loader<D> {
+    private static final String TAG = "FutureLoader";
+
+    private final IntentFilter mReloadFilter;
+    private final Executor mUiExecutor;
+    private final LocalBroadcastManager mLocalBroadcastManager;
+
+    private ListenableFuture<D> mFuture;
+    private D mLoadedData;
+
+    private BroadcastReceiver mReceiver;
+
+    /**
+     * Stores away the application context associated with context.
+     * Since Loaders can be used across multiple activities it's dangerous to
+     * store the context directly; always use {@link #getContext()} to retrieve
+     * the Loader's Context, don't use the constructor argument directly.
+     * The Context returned by {@link #getContext} is safe to use across
+     * Activity instances.
+     *
+     * @param context used to retrieve the application context.
+     */
+    public ListenableFutureLoader(Context context) {
+        this(context, null);
+    }
+
+    public ListenableFutureLoader(Context context, IntentFilter reloadBroadcastFilter) {
+        super(context);
+        mUiExecutor = ContactsExecutors.newUiThreadExecutor();
+        mReloadFilter = reloadBroadcastFilter;
+        mLocalBroadcastManager = LocalBroadcastManager.getInstance(context);
+    }
+
+    @Override
+    protected void onStartLoading() {
+        if (mReloadFilter != null && mReceiver == null) {
+            mReceiver = new ForceLoadReceiver();
+            mLocalBroadcastManager.registerReceiver(mReceiver, mReloadFilter);
+        }
+
+        if (mLoadedData != null) {
+            deliverResult(mLoadedData);
+        }
+        if (mFuture == null) {
+            takeContentChanged();
+            forceLoad();
+        } else if (takeContentChanged()) {
+            forceLoad();
+        }
+    }
+
+    @Override
+    protected void onForceLoad() {
+        mFuture = loadData();
+        Futures.addCallback(mFuture, new FutureCallback<D>() {
+            @Override
+            public void onSuccess(D result) {
+                if (mLoadedData == null || !isSameData(mLoadedData, result)) {
+                    deliverResult(result);
+                }
+                mLoadedData = result;
+                commitContentChanged();
+            }
+
+            @Override
+            public void onFailure(Throwable t) {
+                if (t instanceof CancellationException) {
+                    Log.i(TAG, "Loading cancelled", t);
+                    rollbackContentChanged();
+                } else {
+                    Log.e(TAG, "Loading failed", t);
+                }
+            }
+        }, mUiExecutor);
+    }
+
+    @Override
+    protected void onStopLoading() {
+        if (mFuture != null) {
+            mFuture.cancel(false);
+            mFuture = null;
+        }
+    }
+
+    @Override
+    protected void onReset() {
+        mFuture = null;
+        mLoadedData = null;
+        if (mReceiver != null) {
+            mLocalBroadcastManager.unregisterReceiver(mReceiver);
+        }
+    }
+
+    protected abstract ListenableFuture<D> loadData();
+
+    /**
+     * Returns whether the newly loaded data is the same as the cached value
+     *
+     * <p>This allows subclasses to suppress delivering results when the data hasn't
+     * actually changed. By default it will always return false.
+     * </p>
+     */
+    protected boolean isSameData(D previousData, D newData) {
+        return false;
+    }
+
+    public final D getLoadedData() {
+        return mLoadedData;
+    }
+
+    public class ForceLoadReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            onContentChanged();
+        }
+    }
+}
diff --git a/src/com/android/contacts/vcard/CancelActivity.java b/src/com/android/contacts/vcard/CancelActivity.java
new file mode 100644
index 0000000..5787d62
--- /dev/null
+++ b/src/com/android/contacts/vcard/CancelActivity.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.util.Log;
+
+import com.android.contacts.R;
+
+/**
+ * The Activity for canceling vCard import/export.
+ */
+public class CancelActivity extends Activity implements ServiceConnection {
+    private final String LOG_TAG = "VCardCancel";
+
+    /* package */ final static String JOB_ID = "job_id";
+    /* package */ final static String DISPLAY_NAME = "display_name";
+
+    /**
+     * Type of the process to be canceled. Only used for choosing appropriate title/message.
+     * Must be {@link VCardService#TYPE_IMPORT} or {@link VCardService#TYPE_EXPORT}.
+     */
+    /* package */ final static String TYPE = "type";
+
+    private class RequestCancelListener implements DialogInterface.OnClickListener {
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            bindService(new Intent(CancelActivity.this,
+                    VCardService.class), CancelActivity.this, Context.BIND_AUTO_CREATE);
+        }
+    }
+
+    private class CancelListener
+            implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener {
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            finish();
+        }
+        @Override
+        public void onCancel(DialogInterface dialog) {
+            finish();
+        }
+    }
+
+    private final CancelListener mCancelListener = new CancelListener();
+    private int mJobId;
+    private String mDisplayName;
+    private int mType;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        final Uri uri = getIntent().getData();
+        mJobId = Integer.parseInt(uri.getQueryParameter(JOB_ID));
+        mDisplayName = uri.getQueryParameter(DISPLAY_NAME);
+        mType = Integer.parseInt(uri.getQueryParameter(TYPE));
+        showDialog(R.id.dialog_cancel_confirmation);
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id, Bundle bundle) {
+        if (id == R.id.dialog_cancel_confirmation) {
+            final String message;
+            if (mType == VCardService.TYPE_IMPORT) {
+                message = getString(R.string.cancel_import_confirmation_message, mDisplayName);
+            } else {
+                message = getString(R.string.cancel_export_confirmation_message, mDisplayName);
+            }
+            final AlertDialog.Builder builder = new AlertDialog.Builder(this)
+                    .setMessage(message)
+                    .setPositiveButton(android.R.string.ok, new RequestCancelListener())
+                    .setOnCancelListener(mCancelListener)
+                    .setNegativeButton(android.R.string.cancel, mCancelListener);
+            return builder.create();
+        } else if (id == R.id.dialog_cancel_failed) {
+            final AlertDialog.Builder builder = new AlertDialog.Builder(this)
+                    .setTitle(R.string.cancel_vcard_import_or_export_failed)
+                    .setIconAttribute(android.R.attr.alertDialogIcon)
+                    .setMessage(getString(R.string.fail_reason_unknown))
+                    .setOnCancelListener(mCancelListener)
+                    .setPositiveButton(android.R.string.ok, mCancelListener);
+            return builder.create();
+        } else {
+            Log.w(LOG_TAG, "Unknown dialog id: " + id);
+            return super.onCreateDialog(id, bundle);
+        }
+    }
+
+    @Override
+    public void onServiceConnected(ComponentName name, IBinder binder) {
+        VCardService service = ((VCardService.MyBinder) binder).getService();
+
+        try {
+            final CancelRequest request = new CancelRequest(mJobId, mDisplayName);
+            service.handleCancelRequest(request, null);
+        } finally {
+            unbindService(this);
+        }
+
+        finish();
+    }
+
+    @Override
+    public void onServiceDisconnected(ComponentName name) {
+        // do nothing
+    }
+}
diff --git a/src/com/android/contacts/vcard/CancelRequest.java b/src/com/android/contacts/vcard/CancelRequest.java
new file mode 100644
index 0000000..0b4baee
--- /dev/null
+++ b/src/com/android/contacts/vcard/CancelRequest.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+/**
+ * Class representing one request for canceling vCard import/export.
+ */
+public class CancelRequest {
+    public final int jobId;
+    /**
+     * Name used for showing users some useful info. Typically a file name.
+     * Must not be used to do some actual operations.
+     */
+    public final String displayName;
+    public CancelRequest(int jobId, String displayName) {
+        this.jobId = jobId;
+        this.displayName = displayName;
+    }
+}
diff --git a/src/com/android/contacts/vcard/ExportProcessor.java b/src/com/android/contacts/vcard/ExportProcessor.java
new file mode 100644
index 0000000..13d80ca
--- /dev/null
+++ b/src/com/android/contacts/vcard/ExportProcessor.java
@@ -0,0 +1,339 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.RawContactsEntity;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.android.contacts.R;
+import com.android.contactsbind.FeedbackHelper;
+import com.android.vcard.VCardComposer;
+import com.android.vcard.VCardConfig;
+
+import java.io.BufferedWriter;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+
+/**
+ * Class for processing one export request from a user. Dropped after exporting requested Uri(s).
+ * {@link VCardService} will create another object when there is another export request.
+ */
+public class ExportProcessor extends ProcessorBase {
+    private static final String LOG_TAG = "VCardExport";
+    private static final boolean DEBUG = VCardService.DEBUG;
+
+    private final VCardService mService;
+    private final ContentResolver mResolver;
+    private final NotificationManager mNotificationManager;
+    private final ExportRequest mExportRequest;
+    private final int mJobId;
+    private final String mCallingActivity;
+
+    private volatile boolean mCanceled;
+    private volatile boolean mDone;
+
+    private final int SHOW_READY_TOAST = 1;
+    private final Handler handler = new Handler() {
+        public void handleMessage(Message msg) {
+            if (msg.arg1 == SHOW_READY_TOAST) {
+                // This message is long, so we set the duration to LENGTH_LONG.
+                Toast.makeText(mService,
+                        R.string.exporting_vcard_finished_toast, Toast.LENGTH_LONG).show();
+            }
+
+        }
+    };
+
+    public ExportProcessor(VCardService service, ExportRequest exportRequest, int jobId,
+            String callingActivity) {
+        mService = service;
+        mResolver = service.getContentResolver();
+        mNotificationManager =
+                (NotificationManager)mService.getSystemService(Context.NOTIFICATION_SERVICE);
+        mExportRequest = exportRequest;
+        mJobId = jobId;
+        mCallingActivity = callingActivity;
+    }
+
+    @Override
+    public final int getType() {
+        return VCardService.TYPE_EXPORT;
+    }
+
+    @Override
+    public void run() {
+        // ExecutorService ignores RuntimeException, so we need to show it here.
+        try {
+            runInternal();
+
+            if (isCancelled()) {
+                doCancelNotification();
+            }
+        } catch (OutOfMemoryError|RuntimeException e) {
+            FeedbackHelper.sendFeedback(mService, LOG_TAG, "Failed to process vcard export", e);
+            throw e;
+        } finally {
+            synchronized (this) {
+                mDone = true;
+            }
+        }
+    }
+
+    private void runInternal() {
+        if (DEBUG) Log.d(LOG_TAG, String.format("vCard export (id: %d) has started.", mJobId));
+        final ExportRequest request = mExportRequest;
+        VCardComposer composer = null;
+        Writer writer = null;
+        boolean successful = false;
+        try {
+            if (isCancelled()) {
+                Log.i(LOG_TAG, "Export request is cancelled before handling the request");
+                return;
+            }
+            final Uri uri = request.destUri;
+            final OutputStream outputStream;
+            try {
+                outputStream = mResolver.openOutputStream(uri);
+            } catch (FileNotFoundException e) {
+                Log.w(LOG_TAG, "FileNotFoundException thrown", e);
+                // Need concise title.
+
+                final String errorReason =
+                    mService.getString(R.string.fail_reason_could_not_open_file,
+                            uri, e.getMessage());
+                doFinishNotification(errorReason, null);
+                return;
+            }
+
+            final String exportType = request.exportType;
+            final int vcardType;
+            if (TextUtils.isEmpty(exportType)) {
+                vcardType = VCardConfig.getVCardTypeFromString(
+                        mService.getString(R.string.config_export_vcard_type));
+            } else {
+                vcardType = VCardConfig.getVCardTypeFromString(exportType);
+            }
+
+            composer = new VCardComposer(mService, vcardType, true);
+
+            // for test
+            // int vcardType = (VCardConfig.VCARD_TYPE_V21_GENERIC |
+            //     VCardConfig.FLAG_USE_QP_TO_PRIMARY_PROPERTIES);
+            // composer = new VCardComposer(ExportVCardActivity.this, vcardType, true);
+
+            writer = new BufferedWriter(new OutputStreamWriter(outputStream));
+            final Uri contentUriForRawContactsEntity = RawContactsEntity.CONTENT_URI;
+            // TODO: should provide better selection.
+            if (!composer.init(Contacts.CONTENT_URI, new String[] {Contacts._ID},
+                    null, null,
+                    null, contentUriForRawContactsEntity)) {
+                final String errorReason = composer.getErrorReason();
+                Log.e(LOG_TAG, "initialization of vCard composer failed: " + errorReason);
+                final String translatedErrorReason =
+                        translateComposerError(errorReason);
+                final String title =
+                        mService.getString(R.string.fail_reason_could_not_initialize_exporter,
+                                translatedErrorReason);
+                doFinishNotification(title, null);
+                return;
+            }
+
+            final int total = composer.getCount();
+            if (total == 0) {
+                final String title =
+                        mService.getString(R.string.fail_reason_no_exportable_contact);
+                doFinishNotification(title, null);
+                return;
+            }
+
+            int current = 1;  // 1-origin
+            while (!composer.isAfterLast()) {
+                if (isCancelled()) {
+                    Log.i(LOG_TAG, "Export request is cancelled during composing vCard");
+                    return;
+                }
+                try {
+                    writer.write(composer.createOneEntry());
+                } catch (IOException e) {
+                    final String errorReason = composer.getErrorReason();
+                    Log.e(LOG_TAG, "Failed to read a contact: " + errorReason);
+                    final String translatedErrorReason =
+                            translateComposerError(errorReason);
+                    final String title =
+                            mService.getString(R.string.fail_reason_error_occurred_during_export,
+                                    translatedErrorReason);
+                    doFinishNotification(title, null);
+                    return;
+                }
+
+                // vCard export is quite fast (compared to import), and frequent notifications
+                // bother notification bar too much.
+                if (current % 100 == 1) {
+                    doProgressNotification(uri, total, current);
+                }
+                current++;
+            }
+            Log.i(LOG_TAG, "Successfully finished exporting vCard " + request.destUri);
+
+            if (DEBUG) {
+                Log.d(LOG_TAG, "Ask MediaScanner to scan the file: " + request.destUri.getPath());
+            }
+            mService.updateMediaScanner(request.destUri.getPath());
+
+            successful = true;
+            final String filename = ExportVCardActivity.getOpenableUriDisplayName(mService, uri);
+            // 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.
+            if (isLocalFile(uri)) {
+                final Message msg = handler.obtainMessage();
+                msg.arg1 = SHOW_READY_TOAST;
+                handler.sendMessage(msg);
+                doFinishNotificationWithShareAction(
+                        mService.getString(R.string.exporting_vcard_finished_title_fallback),
+                        mService.getString(R.string.touch_to_share_contacts), uri);
+            } else {
+                final String title = filename == null
+                        ? mService.getString(R.string.exporting_vcard_finished_title_fallback)
+                        : mService.getString(R.string.exporting_vcard_finished_title, filename);
+                doFinishNotification(title, null);
+            }
+        } finally {
+            if (composer != null) {
+                composer.terminate();
+            }
+            if (writer != null) {
+                try {
+                    writer.close();
+                } catch (IOException e) {
+                    Log.w(LOG_TAG, "IOException is thrown during close(). Ignored. " + e);
+                }
+            }
+            mService.handleFinishExportNotification(mJobId, successful);
+        }
+    }
+
+    private boolean isLocalFile(Uri uri) {
+        final String authority = uri.getAuthority();
+        return mService.getString(R.string.contacts_file_provider_authority).equals(authority);
+    }
+
+    private String translateComposerError(String errorMessage) {
+        final Resources resources = mService.getResources();
+        if (VCardComposer.FAILURE_REASON_FAILED_TO_GET_DATABASE_INFO.equals(errorMessage)) {
+            return resources.getString(R.string.composer_failed_to_get_database_infomation);
+        } else if (VCardComposer.FAILURE_REASON_NO_ENTRY.equals(errorMessage)) {
+            return resources.getString(R.string.composer_has_no_exportable_contact);
+        } else if (VCardComposer.FAILURE_REASON_NOT_INITIALIZED.equals(errorMessage)) {
+            return resources.getString(R.string.composer_not_initialized);
+        } else {
+            return errorMessage;
+        }
+    }
+
+    private void doProgressNotification(Uri uri, int totalCount, int currentCount) {
+        final String displayName = uri.getLastPathSegment();
+        final String description =
+                mService.getString(R.string.exporting_contact_list_message, displayName);
+        final String tickerText =
+                mService.getString(R.string.exporting_contact_list_title);
+        final Notification notification =
+                NotificationImportExportListener.constructProgressNotification(mService,
+                        VCardService.TYPE_EXPORT, description, tickerText, mJobId, displayName,
+                        totalCount, currentCount);
+        mService.startForeground(mJobId, notification);
+    }
+
+    private void doCancelNotification() {
+        if (DEBUG) Log.d(LOG_TAG, "send cancel notification");
+        final String description = mService.getString(R.string.exporting_vcard_canceled_title,
+                mExportRequest.destUri.getLastPathSegment());
+        final Notification notification =
+                NotificationImportExportListener.constructCancelNotification(mService, description);
+        mNotificationManager.notify(NotificationImportExportListener.DEFAULT_NOTIFICATION_TAG,
+                mJobId, notification);
+    }
+
+    private void doFinishNotification(final String title, final String description) {
+        if (DEBUG) Log.d(LOG_TAG, "send finish notification: " + title + ", " + description);
+        final Intent intent = new Intent();
+        intent.setClassName(mService, mCallingActivity);
+        final Notification notification =
+                NotificationImportExportListener.constructFinishNotification(mService, title,
+                        description, intent);
+        mNotificationManager.notify(NotificationImportExportListener.DEFAULT_NOTIFICATION_TAG,
+                mJobId, notification);
+    }
+
+    /**
+     * Pass intent with ACTION_SEND to notification so that user can press the notification to
+     * share contacts.
+     */
+    private void doFinishNotificationWithShareAction(final String title, final String
+            description, Uri uri) {
+        if (DEBUG) Log.d(LOG_TAG, "send finish notification: " + title + ", " + description);
+        final Intent intent = new Intent(Intent.ACTION_SEND);
+        intent.setType(Contacts.CONTENT_VCARD_TYPE);
+        intent.putExtra(Intent.EXTRA_STREAM, uri);
+        // Securely grant access using temporary access permissions
+        intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        // Build notification
+        final Notification notification =
+                NotificationImportExportListener.constructFinishNotificationWithFlags(
+                        mService, title, description, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
+        mNotificationManager.notify(NotificationImportExportListener.DEFAULT_NOTIFICATION_TAG,
+                mJobId, notification);
+    }
+
+    @Override
+    public synchronized boolean cancel(boolean mayInterruptIfRunning) {
+        if (DEBUG) Log.d(LOG_TAG, "received cancel request");
+        if (mDone || mCanceled) {
+            return false;
+        }
+        mCanceled = true;
+        return true;
+    }
+
+    @Override
+    public synchronized boolean isCancelled() {
+        return mCanceled;
+    }
+
+    @Override
+    public synchronized boolean isDone() {
+        return mDone;
+    }
+
+    public ExportRequest getRequest() {
+        return mExportRequest;
+    }
+}
diff --git a/src/com/android/contacts/vcard/ExportRequest.java b/src/com/android/contacts/vcard/ExportRequest.java
new file mode 100644
index 0000000..65e395e
--- /dev/null
+++ b/src/com/android/contacts/vcard/ExportRequest.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+import android.net.Uri;
+
+public class ExportRequest {
+    public final Uri destUri;
+    /**
+     * Can be null.
+     */
+    public final String exportType;
+
+    public ExportRequest(Uri destUri) {
+        this(destUri, null);
+    }
+
+    public ExportRequest(Uri destUri, String exportType) {
+        this.destUri = destUri;
+        this.exportType = exportType;
+    }
+}
diff --git a/src/com/android/contacts/vcard/ExportVCardActivity.java b/src/com/android/contacts/vcard/ExportVCardActivity.java
new file mode 100644
index 0000000..690f207
--- /dev/null
+++ b/src/com/android/contacts/vcard/ExportVCardActivity.java
@@ -0,0 +1,246 @@
+/*
+ * Copyright (C) 2009 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.vcard;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.provider.OpenableColumns;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.util.Log;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.RequestImportVCardPermissionsActivity;
+
+import java.util.List;
+
+/**
+ * Shows a dialog confirming the export and asks actual vCard export to {@link VCardService}
+ *
+ * This Activity first connects to VCardService and ask an available file name and shows it to
+ * a user. After the user's confirmation, it send export request with the file name, assuming the
+ * file name is not reserved yet.
+ */
+public class ExportVCardActivity extends Activity implements ServiceConnection,
+        DialogInterface.OnClickListener, DialogInterface.OnCancelListener {
+    private static final String LOG_TAG = "VCardExport";
+    protected static final boolean DEBUG = VCardService.DEBUG;
+    private static final int REQUEST_CREATE_DOCUMENT = 100;
+
+    /**
+     * True when this Activity is connected to {@link VCardService}.
+     *
+     * Should be touched inside synchronized block.
+     */
+    protected boolean mConnected;
+
+    /**
+     * True when users need to do something and this Activity should not disconnect from
+     * VCardService. False when all necessary procedures are done (including sending export request)
+     * or there's some error occured.
+     */
+    private volatile boolean mProcessOngoing = true;
+
+    protected VCardService mService;
+    private static final BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
+
+    // String for storing error reason temporarily.
+    private String mErrorReason;
+
+    @Override
+    protected void onCreate(Bundle bundle) {
+        super.onCreate(bundle);
+
+        if (RequestImportVCardPermissionsActivity.startPermissionActivityIfNeeded(this)) {
+            return;
+        }
+
+        if (!hasExportIntentHandler()) {
+            Log.e(LOG_TAG, "Couldn't find export intent handler");
+            showErrorDialog();
+            return;
+        }
+
+        connectVCardService();
+    }
+
+    private void connectVCardService() {
+        final String callingActivity = getIntent().getExtras()
+                .getString(VCardCommonArguments.ARG_CALLING_ACTIVITY);
+        Intent intent = new Intent(this, VCardService.class);
+        intent.putExtra(VCardCommonArguments.ARG_CALLING_ACTIVITY, callingActivity);
+
+        if (startService(intent) == null) {
+            Log.e(LOG_TAG, "Failed to start vCard service");
+            showErrorDialog();
+            return;
+        }
+
+        if (!bindService(intent, this, Context.BIND_AUTO_CREATE)) {
+            Log.e(LOG_TAG, "Failed to connect to vCard service.");
+            showErrorDialog();
+        }
+        // Continued to onServiceConnected()
+    }
+
+    private boolean hasExportIntentHandler() {
+        final Intent intent = getCreateDocIntent();
+        final List<ResolveInfo> receivers = getPackageManager().queryIntentActivities(intent,
+                PackageManager.MATCH_DEFAULT_ONLY);
+        return receivers != null && receivers.size() > 0;
+    }
+
+    private Intent getCreateDocIntent() {
+        final Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
+        intent.addCategory(Intent.CATEGORY_OPENABLE);
+        intent.setType(VCardService.X_VCARD_MIME_TYPE);
+        intent.putExtra(Intent.EXTRA_TITLE, mBidiFormatter.unicodeWrap(
+                getString(R.string.exporting_vcard_filename), TextDirectionHeuristics.LTR));
+        return intent;
+    }
+
+    private void showErrorDialog() {
+        mErrorReason = getString(R.string.fail_reason_unknown);
+        showDialog(R.id.dialog_fail_to_export_with_reason);
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == REQUEST_CREATE_DOCUMENT) {
+            if (resultCode == Activity.RESULT_OK && mService != null &&
+                    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);
+                // The connection object will call finish().
+                mService.handleExportRequest(request, new NotificationImportExportListener(
+                        ExportVCardActivity.this));
+            } else if (DEBUG) {
+                if (mService == null) {
+                    Log.d(LOG_TAG, "No vCard service.");
+                } else {
+                    Log.d(LOG_TAG, "create document cancelled or no data returned");
+                }
+            }
+            finish();
+        }
+    }
+
+    @Override
+    public synchronized void onServiceConnected(ComponentName name, IBinder binder) {
+        if (DEBUG) Log.d(LOG_TAG, "connected to service, requesting a destination file name");
+        mConnected = true;
+        mService = ((VCardService.MyBinder) binder).getService();
+
+        // Have the user choose where vcards will be exported to
+        startActivityForResult(getCreateDocIntent(), REQUEST_CREATE_DOCUMENT);
+    }
+
+    // Use synchronized since we don't want to call finish() just after this call.
+    @Override
+    public synchronized void onServiceDisconnected(ComponentName name) {
+        if (DEBUG) Log.d(LOG_TAG, "onServiceDisconnected()");
+        mService = null;
+        mConnected = false;
+        if (mProcessOngoing) {
+            // Unexpected disconnect event.
+            Log.w(LOG_TAG, "Disconnected from service during the process ongoing.");
+            showErrorDialog();
+        }
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id, Bundle bundle) {
+        if (id == R.id.dialog_fail_to_export_with_reason) {
+            mProcessOngoing = false;
+            return new AlertDialog.Builder(this)
+                    .setTitle(R.string.exporting_contact_failed_title)
+                    .setMessage(getString(R.string.exporting_contact_failed_message,
+                            mErrorReason != null ? mErrorReason :
+                                    getString(R.string.fail_reason_unknown)))
+                    .setPositiveButton(android.R.string.ok, this)
+                    .setOnCancelListener(this)
+                    .create();
+        }
+        return super.onCreateDialog(id, bundle);
+    }
+
+    @Override
+    protected void onPrepareDialog(int id, Dialog dialog, Bundle args) {
+        if (id == R.id.dialog_fail_to_export_with_reason) {
+            ((AlertDialog)dialog).setMessage(mErrorReason);
+        } else {
+            super.onPrepareDialog(id, dialog, args);
+        }
+    }
+
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        if (DEBUG) Log.d(LOG_TAG, "ExportVCardActivity#onClick() is called");
+        finish();
+    }
+
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        if (DEBUG) Log.d(LOG_TAG, "ExportVCardActivity#onCancel() is called");
+        mProcessOngoing = false;
+        finish();
+    }
+
+    @Override
+    public void unbindService(ServiceConnection conn) {
+        mProcessOngoing = false;
+        super.unbindService(conn);
+    }
+
+    @Override
+    protected void onDestroy() {
+        if (mConnected) {
+            unbindService(this);
+            mConnected = false;
+        }
+        super.onDestroy();
+    }
+
+    /**
+     * Returns the display name for the given openable Uri or null if it could not be resolved. */
+    static String getOpenableUriDisplayName(Context context, Uri uri) {
+        if (uri == null) return null;
+        final Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
+        try {
+            if (cursor != null && cursor.moveToFirst()) {
+                return cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
+            }
+        } finally {
+            if (cursor != null)  {
+                cursor.close();
+            }
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/contacts/vcard/ImportProcessor.java b/src/com/android/contacts/vcard/ImportProcessor.java
new file mode 100644
index 0000000..c6fcccb
--- /dev/null
+++ b/src/com/android/contacts/vcard/ImportProcessor.java
@@ -0,0 +1,303 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+import android.accounts.Account;
+import android.app.Notification;
+import android.content.ContentResolver;
+import android.net.Uri;
+import android.util.Log;
+
+import com.android.contactsbind.FeedbackHelper;
+import com.android.vcard.VCardEntry;
+import com.android.vcard.VCardEntryCommitter;
+import com.android.vcard.VCardEntryConstructor;
+import com.android.vcard.VCardEntryHandler;
+import com.android.vcard.VCardInterpreter;
+import com.android.vcard.VCardParser;
+import com.android.vcard.VCardParser_V21;
+import com.android.vcard.VCardParser_V30;
+import com.android.vcard.exception.VCardException;
+import com.android.vcard.exception.VCardNotSupportedException;
+import com.android.vcard.exception.VCardVersionException;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Class for processing one import request from a user. Dropped after importing requested Uri(s).
+ * {@link VCardService} will create another object when there is another import request.
+ */
+public class ImportProcessor extends ProcessorBase implements VCardEntryHandler {
+    private static final String LOG_TAG = "VCardImport";
+    private static final boolean DEBUG = VCardService.DEBUG;
+
+    private final VCardService mService;
+    private final ContentResolver mResolver;
+    private final ImportRequest mImportRequest;
+    private final int mJobId;
+    private final VCardImportExportListener mListener;
+
+    // TODO: remove and show appropriate message instead.
+    private final List<Uri> mFailedUris = new ArrayList<Uri>();
+
+    private VCardParser mVCardParser;
+
+    private volatile boolean mCanceled;
+    private volatile boolean mDone;
+
+    private int mCurrentCount = 0;
+    private int mTotalCount = 0;
+
+    public ImportProcessor(final VCardService service, final VCardImportExportListener listener,
+            final ImportRequest request, final int jobId) {
+        mService = service;
+        mResolver = mService.getContentResolver();
+        mListener = listener;
+
+        mImportRequest = request;
+        mJobId = jobId;
+    }
+
+    @Override
+    public void onStart() {
+        // do nothing
+    }
+
+    @Override
+    public void onEnd() {
+        // do nothing
+    }
+
+    @Override
+    public void onEntryCreated(VCardEntry entry) {
+        mCurrentCount++;
+        if (mListener != null) {
+            final Notification notification = mListener.onImportParsed(mImportRequest, mJobId,
+                    entry, mCurrentCount, mTotalCount);
+            if (notification != null) {
+                mService.startForeground(mJobId, notification);
+            }
+        }
+    }
+
+    @Override
+    public final int getType() {
+        return VCardService.TYPE_IMPORT;
+    }
+
+    @Override
+    public void run() {
+        // ExecutorService ignores RuntimeException, so we need to show it here.
+        try {
+            runInternal();
+
+            if (isCancelled() && mListener != null) {
+                mListener.onImportCanceled(mImportRequest, mJobId);
+            }
+        } catch (OutOfMemoryError|RuntimeException e) {
+            FeedbackHelper.sendFeedback(mService, LOG_TAG, "Vcard import failed", e);
+        } finally {
+            synchronized (this) {
+                mDone = true;
+            }
+        }
+    }
+
+    private void runInternal() {
+        Log.i(LOG_TAG, String.format("vCard import (id: %d) has started.", mJobId));
+        final ImportRequest request = mImportRequest;
+        if (isCancelled()) {
+            Log.i(LOG_TAG, "Canceled before actually handling parameter (" + request.uri + ")");
+            return;
+        }
+        final int[] possibleVCardVersions;
+        if (request.vcardVersion == ImportVCardActivity.VCARD_VERSION_AUTO_DETECT) {
+            /**
+             * Note: this code assumes that a given Uri is able to be opened more than once,
+             * which may not be true in certain conditions.
+             */
+            possibleVCardVersions = new int[] {
+                    ImportVCardActivity.VCARD_VERSION_V21,
+                    ImportVCardActivity.VCARD_VERSION_V30
+            };
+        } else {
+            possibleVCardVersions = new int[] {
+                    request.vcardVersion
+            };
+        }
+
+        final Uri uri = request.uri;
+        final Account account = request.account;
+        final int estimatedVCardType = request.estimatedVCardType;
+        final String estimatedCharset = request.estimatedCharset;
+        final int entryCount = request.entryCount;
+        mTotalCount += entryCount;
+
+        final VCardEntryConstructor constructor =
+                new VCardEntryConstructor(estimatedVCardType, account, estimatedCharset);
+        final VCardEntryCommitter committer = new VCardEntryCommitter(mResolver);
+        constructor.addEntryHandler(committer);
+        constructor.addEntryHandler(this);
+
+        InputStream is = null;
+        boolean successful = false;
+        try {
+            if (uri != null) {
+                Log.i(LOG_TAG, "start importing one vCard (Uri: " + uri + ")");
+                is = mResolver.openInputStream(uri);
+            } else if (request.data != null){
+                Log.i(LOG_TAG, "start importing one vCard (byte[])");
+                is = new ByteArrayInputStream(request.data);
+            }
+
+            if (is != null) {
+                successful = readOneVCard(is, estimatedVCardType, estimatedCharset, constructor,
+                        possibleVCardVersions);
+            }
+        } catch (IOException e) {
+            successful = false;
+        } finally {
+            if (is != null) {
+                try {
+                    is.close();
+                } catch (Exception e) {
+                    // ignore
+                }
+            }
+        }
+
+        mService.handleFinishImportNotification(mJobId, successful);
+
+        if (successful) {
+            // TODO: successful becomes true even when cancelled. Should return more appropriate
+            // value
+            if (isCancelled()) {
+                Log.i(LOG_TAG, "vCard import has been canceled (uri: " + uri + ")");
+                // Cancel notification will be done outside this method.
+            } else {
+                Log.i(LOG_TAG, "Successfully finished importing one vCard file: " + uri);
+                List<Uri> uris = committer.getCreatedUris();
+                if (mListener != null) {
+                    if (uris != null && uris.size() == 1) {
+                        mListener.onImportFinished(mImportRequest, mJobId, uris.get(0));
+                    } else {
+                        if (uris == null || uris.size() == 0) {
+                            // Not critical, but suspicious.
+                            Log.w(LOG_TAG,  "Created Uris is null or 0 length " +
+                                    "though the creation itself is successful.");
+                        }
+                        mListener.onImportFinished(mImportRequest, mJobId, null);
+                    }
+                }
+            }
+        } else {
+            Log.w(LOG_TAG, "Failed to read one vCard file: " + uri);
+            mFailedUris.add(uri);
+        }
+    }
+
+    private boolean readOneVCard(InputStream is, int vcardType, String charset,
+            final VCardInterpreter interpreter,
+            final int[] possibleVCardVersions) {
+        boolean successful = false;
+        final int length = possibleVCardVersions.length;
+        for (int i = 0; i < length; i++) {
+            final int vcardVersion = possibleVCardVersions[i];
+            try {
+                if (i > 0 && (interpreter instanceof VCardEntryConstructor)) {
+                    // Let the object clean up internal temporary objects,
+                    ((VCardEntryConstructor) interpreter).clear();
+                }
+
+                // We need synchronized block here,
+                // since we need to handle mCanceled and mVCardParser at once.
+                // In the worst case, a user may call cancel() just before creating
+                // mVCardParser.
+                synchronized (this) {
+                    mVCardParser = (vcardVersion == ImportVCardActivity.VCARD_VERSION_V30 ?
+                            new VCardParser_V30(vcardType) :
+                                new VCardParser_V21(vcardType));
+                    if (isCancelled()) {
+                        Log.i(LOG_TAG, "ImportProcessor already recieves cancel request, so " +
+                                "send cancel request to vCard parser too.");
+                        mVCardParser.cancel();
+                    }
+                }
+                mVCardParser.parse(is, interpreter);
+
+                successful = true;
+                break;
+            } catch (IOException|VCardNotSupportedException e) {
+                // VCardNestedException (a subclass of VCardNotSupportedException) should
+                // not be thrown here. We should instead handle it
+                // in the preprocessing session in ImportVCardActivity, as we don't try
+                // to detect the type of given vCard here.
+                //
+                // TODO: Handle this case appropriately, which should mean we have to have
+                // code trying to auto-detect the type of given vCard twice (both in
+                // ImportVCardActivity and ImportVCardService).
+                FeedbackHelper.sendFeedback(mService, LOG_TAG, "Failed to read vcard", e);
+            } catch (VCardVersionException e) {
+                if (i == length - 1) {
+                    Log.e(LOG_TAG, "Appropriate version for this vCard is not found.");
+                } else {
+                    // We'll try the other (v30) version.
+                }
+            } catch (VCardException e) {
+                Log.e(LOG_TAG, e.toString());
+            } finally {
+                if (is != null) {
+                    try {
+                        is.close();
+                    } catch (IOException e) {
+                    }
+                }
+            }
+        }
+
+        return successful;
+    }
+
+    @Override
+    public synchronized boolean cancel(boolean mayInterruptIfRunning) {
+        if (DEBUG) Log.d(LOG_TAG, "ImportProcessor received cancel request");
+        if (mDone || mCanceled) {
+            return false;
+        }
+        mCanceled = true;
+        synchronized (this) {
+            if (mVCardParser != null) {
+                mVCardParser.cancel();
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public synchronized boolean isCancelled() {
+        return mCanceled;
+    }
+
+
+    @Override
+    public synchronized boolean isDone() {
+        return mDone;
+    }
+}
diff --git a/src/com/android/contacts/vcard/ImportRequest.java b/src/com/android/contacts/vcard/ImportRequest.java
new file mode 100644
index 0000000..6e9470f
--- /dev/null
+++ b/src/com/android/contacts/vcard/ImportRequest.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+import android.accounts.Account;
+import android.net.Uri;
+
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.vcard.VCardSourceDetector;
+
+/**
+ * Class representing one request for importing vCard (given as a Uri).
+ *
+ * Mainly used when {@link ImportVCardActivity} requests {@link VCardService}
+ * to import some specific Uri.
+ *
+ * Note: This object's accepting only One Uri does NOT mean that
+ * there's only one vCard entry inside the instance, as one Uri often has multiple
+ * vCard entries inside it.
+ */
+public class ImportRequest {
+    /**
+     * Can be null (typically when there's no Account available in the system).
+     */
+    public final Account account;
+
+    /**
+     * Uri to be imported. May have different content than originally given from users, so
+     * when displaying user-friendly information (e.g. "importing xxx.vcf"), use
+     * {@link #displayName} instead.
+     *
+     * If this is null {@link #data} contains the byte stream of the vcard.
+     */
+    public final Uri uri;
+
+    /**
+     * Holds the byte stream of the vcard, if {@link #uri} is null.
+     */
+    public final byte[] data;
+
+    /**
+     * String to be displayed to the user to indicate the source of the VCARD.
+     */
+    public final String displayName;
+
+    /**
+     * Can be {@link VCardSourceDetector#PARSE_TYPE_UNKNOWN}.
+     */
+    public final int estimatedVCardType;
+
+    /**
+     * Can be null, meaning no preferable charset is available.
+     */
+    public final String estimatedCharset;
+
+    /**
+     * Assumes that one Uri contains only one version, while there's a (tiny) possibility
+     * we may have two types in one vCard.
+     *
+     * e.g.
+     * BEGIN:VCARD
+     * VERSION:2.1
+     * ...
+     * END:VCARD
+     * BEGIN:VCARD
+     * VERSION:3.0
+     * ...
+     * END:VCARD
+     *
+     * We've never seen this kind of a file, but we may have to cope with it in the future.
+     */
+    public final int vcardVersion;
+
+    /**
+     * The count of vCard entries in {@link #uri}. A receiver of this object can use it
+     * when showing the progress of import. Thus a receiver must be able to torelate this
+     * variable being invalid because of vCard's limitation.
+     *
+     * vCard does not let us know this count without looking over a whole file content,
+     * which means we have to open and scan over {@link #uri} to know this value, while
+     * it may not be opened more than once (Uri does not require it to be opened multiple times
+     * and may become invalid after its close() request).
+     */
+    public final int entryCount;
+
+    public ImportRequest(AccountWithDataSet account,
+            byte[] data, Uri uri, String displayName, int estimatedType, String estimatedCharset,
+            int vcardVersion, int entryCount) {
+        this.account = account != null ? account.getAccountOrNull() : null;
+        this.data = data;
+        this.uri = uri;
+        this.displayName = displayName;
+        this.estimatedVCardType = estimatedType;
+        this.estimatedCharset = estimatedCharset;
+        this.vcardVersion = vcardVersion;
+        this.entryCount = entryCount;
+    }
+}
diff --git a/src/com/android/contacts/vcard/ImportVCardActivity.java b/src/com/android/contacts/vcard/ImportVCardActivity.java
new file mode 100644
index 0000000..2c69cdf
--- /dev/null
+++ b/src/com/android/contacts/vcard/ImportVCardActivity.java
@@ -0,0 +1,811 @@
+/*
+ * Copyright (C) 2009 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.vcard;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.ProgressDialog;
+import android.content.ClipData;
+import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.PowerManager;
+import android.provider.OpenableColumns;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.RequestImportVCardPermissionsActivity;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contactsbind.FeedbackHelper;
+import com.android.vcard.VCardEntryCounter;
+import com.android.vcard.VCardParser;
+import com.android.vcard.VCardParser_V21;
+import com.android.vcard.VCardParser_V30;
+import com.android.vcard.VCardSourceDetector;
+import com.android.vcard.exception.VCardException;
+import com.android.vcard.exception.VCardNestedException;
+import com.android.vcard.exception.VCardVersionException;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.nio.channels.WritableByteChannel;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * The class letting users to import vCard. This includes the UI part for letting them select
+ * an Account and posssibly a file if there's no Uri is given from its caller Activity.
+ *
+ * Note that this Activity assumes that the instance is a "one-shot Activity", which will be
+ * finished (with the method {@link Activity#finish()}) after the import and never reuse
+ * any Dialog in the instance. So this code is careless about the management around managed
+ * dialogs stuffs (like how onCreateDialog() is used).
+ */
+public class ImportVCardActivity extends Activity implements ImportVCardDialogFragment.Listener {
+    private static final String LOG_TAG = "VCardImport";
+
+    private static final int SELECT_ACCOUNT = 0;
+
+    /* package */ final static int VCARD_VERSION_AUTO_DETECT = 0;
+    /* package */ final static int VCARD_VERSION_V21 = 1;
+    /* package */ final static int VCARD_VERSION_V30 = 2;
+
+    private static final int REQUEST_OPEN_DOCUMENT = 100;
+
+    /**
+     * Notification id used when error happened before sending an import request to VCardServer.
+     */
+    private static final int FAILURE_NOTIFICATION_ID = 1;
+
+    private static final String LOCAL_TMP_FILE_NAME_EXTRA =
+            "com.android.contacts.vcard.LOCAL_TMP_FILE_NAME";
+
+    private static final String SOURCE_URI_DISPLAY_NAME =
+            "com.android.contacts.vcard.SOURCE_URI_DISPLAY_NAME";
+
+    private static final String STORAGE_VCARD_URI_PREFIX = "file:///storage";
+
+    private AccountWithDataSet mAccount;
+
+    private ProgressDialog mProgressDialogForCachingVCard;
+
+    private VCardCacheThread mVCardCacheThread;
+    private ImportRequestConnection mConnection;
+    /* package */ VCardImportExportListener mListener;
+
+    private String mErrorMessage;
+
+    private Handler mHandler = new Handler();
+
+    // Runs on the UI thread.
+    private class DialogDisplayer implements Runnable {
+        private final int mResId;
+        public DialogDisplayer(int resId) {
+            mResId = resId;
+        }
+        public DialogDisplayer(String errorMessage) {
+            mResId = R.id.dialog_error_with_message;
+            mErrorMessage = errorMessage;
+        }
+        @Override
+        public void run() {
+            if (!isFinishing()) {
+                showDialog(mResId);
+            }
+        }
+    }
+
+    private class CancelListener
+        implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener {
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            finish();
+        }
+        @Override
+        public void onCancel(DialogInterface dialog) {
+            finish();
+        }
+    }
+
+    private CancelListener mCancelListener = new CancelListener();
+
+    private class ImportRequestConnection implements ServiceConnection {
+        private VCardService mService;
+
+        public void sendImportRequest(final List<ImportRequest> requests) {
+            Log.i(LOG_TAG, "Send an import request");
+            mService.handleImportRequest(requests, mListener);
+        }
+
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder binder) {
+            mService = ((VCardService.MyBinder) binder).getService();
+            Log.i(LOG_TAG,
+                    String.format("Connected to VCardService. Kick a vCard cache thread (uri: %s)",
+                            Arrays.toString(mVCardCacheThread.getSourceUris())));
+            mVCardCacheThread.start();
+        }
+
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            Log.i(LOG_TAG, "Disconnected from VCardService");
+        }
+    }
+
+    /**
+     * Caches given vCard files into a local directory, and sends actual import request to
+     * {@link VCardService}.
+     *
+     * We need to cache given files into local storage. One of reasons is that some data (as Uri)
+     * may have special permissions. Callers may allow only this Activity to access that content,
+     * not what this Activity launched (like {@link VCardService}).
+     */
+    private class VCardCacheThread extends Thread
+            implements DialogInterface.OnCancelListener {
+        private boolean mCanceled;
+        private PowerManager.WakeLock mWakeLock;
+        private VCardParser mVCardParser;
+        private final Uri[] mSourceUris;  // Given from a caller.
+        private final String[] mSourceDisplayNames; // Display names for each Uri in mSourceUris.
+        private final byte[] mSource;
+        private final String mDisplayName;
+
+        public VCardCacheThread(final Uri[] sourceUris, String[] sourceDisplayNames) {
+            mSourceUris = sourceUris;
+            mSourceDisplayNames = sourceDisplayNames;
+            mSource = null;
+            final Context context = ImportVCardActivity.this;
+            final PowerManager powerManager =
+                    (PowerManager)context.getSystemService(Context.POWER_SERVICE);
+            mWakeLock = powerManager.newWakeLock(
+                    PowerManager.SCREEN_DIM_WAKE_LOCK |
+                    PowerManager.ON_AFTER_RELEASE, LOG_TAG);
+            mDisplayName = null;
+        }
+
+        @Override
+        public void finalize() {
+            if (mWakeLock != null && mWakeLock.isHeld()) {
+                Log.w(LOG_TAG, "WakeLock is being held.");
+                mWakeLock.release();
+            }
+        }
+
+        @Override
+        public void run() {
+            Log.i(LOG_TAG, "vCard cache thread starts running.");
+            if (mConnection == null) {
+                throw new NullPointerException("vCard cache thread must be launched "
+                        + "after a service connection is established");
+            }
+
+            mWakeLock.acquire();
+            try {
+                if (mCanceled == true) {
+                    Log.i(LOG_TAG, "vCard cache operation is canceled.");
+                    return;
+                }
+
+                final Context context = ImportVCardActivity.this;
+                // Uris given from caller applications may not be opened twice: consider when
+                // it is not from local storage (e.g. "file:///...") but from some special
+                // provider (e.g. "content://...").
+                // Thus we have to once copy the content of Uri into local storage, and read
+                // it after it.
+                //
+                // We may be able to read content of each vCard file during copying them
+                // to local storage, but currently vCard code does not allow us to do so.
+                int cache_index = 0;
+                ArrayList<ImportRequest> requests = new ArrayList<ImportRequest>();
+                if (mSource != null) {
+                    try {
+                        requests.add(constructImportRequest(mSource, null, mDisplayName));
+                    } catch (VCardException e) {
+                        FeedbackHelper.sendFeedback(ImportVCardActivity.this, LOG_TAG,
+                                "Failed to cache vcard", e);
+                        showFailureNotification(R.string.fail_reason_not_supported);
+                        return;
+                    }
+                } else {
+                    int i = 0;
+                    for (Uri sourceUri : mSourceUris) {
+                        if (mCanceled) {
+                            Log.i(LOG_TAG, "vCard cache operation is canceled.");
+                            break;
+                        }
+
+                        String sourceDisplayName = mSourceDisplayNames[i++];
+
+                        final ImportRequest request;
+                        try {
+                            request = constructImportRequest(null, sourceUri, sourceDisplayName);
+                        } catch (VCardException e) {
+                            FeedbackHelper.sendFeedback(ImportVCardActivity.this, LOG_TAG,
+                                    "Failed to cache vcard", e);
+                            showFailureNotification(R.string.fail_reason_not_supported);
+                            return;
+                        } catch (IOException e) {
+                            FeedbackHelper.sendFeedback(ImportVCardActivity.this, LOG_TAG,
+                                    "Failed to cache vcard", e);
+                            showFailureNotification(R.string.fail_reason_io_error);
+                            return;
+                        }
+                        if (mCanceled) {
+                            Log.i(LOG_TAG, "vCard cache operation is canceled.");
+                            return;
+                        }
+                        requests.add(request);
+                    }
+                }
+                if (!requests.isEmpty()) {
+                    mConnection.sendImportRequest(requests);
+                } else {
+                    Log.w(LOG_TAG, "Empty import requests. Ignore it.");
+                }
+            } catch (OutOfMemoryError e) {
+                FeedbackHelper.sendFeedback(ImportVCardActivity.this, LOG_TAG,
+                        "OutOfMemoryError occured during caching vCard", e);
+                System.gc();
+                runOnUiThread(new DialogDisplayer(
+                        getString(R.string.fail_reason_low_memory_during_import)));
+            } catch (IOException e) {
+                FeedbackHelper.sendFeedback(ImportVCardActivity.this, LOG_TAG,
+                        "IOException during caching vCard", e);
+                runOnUiThread(new DialogDisplayer(
+                        getString(R.string.fail_reason_io_error)));
+            } finally {
+                Log.i(LOG_TAG, "Finished caching vCard.");
+                mWakeLock.release();
+                try {
+                    unbindService(mConnection);
+                } catch (IllegalArgumentException e) {
+                    FeedbackHelper.sendFeedback(ImportVCardActivity.this, LOG_TAG,
+                            "Cannot unbind service connection", e);
+                }
+                mProgressDialogForCachingVCard.dismiss();
+                mProgressDialogForCachingVCard = null;
+                finish();
+            }
+        }
+
+        /**
+         * Reads localDataUri (possibly multiple times) and constructs {@link ImportRequest} from
+         * its content.
+         *
+         * @arg localDataUri Uri actually used for the import. Should be stored in
+         * app local storage, as we cannot guarantee other types of Uris can be read
+         * multiple times. This variable populates {@link ImportRequest#uri}.
+         * @arg displayName Used for displaying information to the user. This variable populates
+         * {@link ImportRequest#displayName}.
+         */
+        private ImportRequest constructImportRequest(final byte[] data,
+                final Uri localDataUri, final String displayName)
+                throws IOException, VCardException {
+            final ContentResolver resolver = ImportVCardActivity.this.getContentResolver();
+            VCardEntryCounter counter = null;
+            VCardSourceDetector detector = null;
+            int vcardVersion = VCARD_VERSION_V21;
+            try {
+                boolean shouldUseV30 = false;
+                InputStream is;
+                if (data != null) {
+                    is = new ByteArrayInputStream(data);
+                } else {
+                    is = resolver.openInputStream(localDataUri);
+                }
+                mVCardParser = new VCardParser_V21();
+                try {
+                    counter = new VCardEntryCounter();
+                    detector = new VCardSourceDetector();
+                    mVCardParser.addInterpreter(counter);
+                    mVCardParser.addInterpreter(detector);
+                    mVCardParser.parse(is);
+                } catch (VCardVersionException e1) {
+                    try {
+                        is.close();
+                    } catch (IOException e) {
+                    }
+
+                    shouldUseV30 = true;
+                    if (data != null) {
+                        is = new ByteArrayInputStream(data);
+                    } else {
+                        is = resolver.openInputStream(localDataUri);
+                    }
+                    mVCardParser = new VCardParser_V30();
+                    try {
+                        counter = new VCardEntryCounter();
+                        detector = new VCardSourceDetector();
+                        mVCardParser.addInterpreter(counter);
+                        mVCardParser.addInterpreter(detector);
+                        mVCardParser.parse(is);
+                    } catch (VCardVersionException e2) {
+                        throw new VCardException("vCard with unspported version.");
+                    }
+                } finally {
+                    if (is != null) {
+                        try {
+                            is.close();
+                        } catch (IOException e) {
+                        }
+                    }
+                }
+
+                vcardVersion = shouldUseV30 ? VCARD_VERSION_V30 : VCARD_VERSION_V21;
+            } catch (VCardNestedException e) {
+                Log.w(LOG_TAG, "Nested Exception is found (it may be false-positive).");
+                // Go through without throwing the Exception, as we may be able to detect the
+                // version before it
+            }
+            return new ImportRequest(mAccount,
+                    data, localDataUri, displayName,
+                    detector.getEstimatedType(),
+                    detector.getEstimatedCharset(),
+                    vcardVersion, counter.getCount());
+        }
+
+        public Uri[] getSourceUris() {
+            return mSourceUris;
+        }
+
+        public void cancel() {
+            mCanceled = true;
+            if (mVCardParser != null) {
+                mVCardParser.cancel();
+            }
+        }
+
+        @Override
+        public void onCancel(DialogInterface dialog) {
+            Log.i(LOG_TAG, "Cancel request has come. Abort caching vCard.");
+            cancel();
+        }
+    }
+
+    private void importVCard(final Uri uri, final String sourceDisplayName) {
+        importVCard(new Uri[] {uri}, new String[] {sourceDisplayName});
+    }
+
+    private void importVCard(final Uri[] uris, final String[] sourceDisplayNames) {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                if (!isFinishing()) {
+                    mVCardCacheThread = new VCardCacheThread(uris, sourceDisplayNames);
+                    mListener = new NotificationImportExportListener(ImportVCardActivity.this);
+                    showDialog(R.id.dialog_cache_vcard);
+                }
+            }
+        });
+    }
+
+    private String getDisplayName(Uri sourceUri) {
+        if (sourceUri == null) {
+            return null;
+        }
+        final ContentResolver resolver = ImportVCardActivity.this.getContentResolver();
+        String displayName = null;
+        Cursor cursor = null;
+        // Try to get a display name from the given Uri. If it fails, we just
+        // pick up the last part of the Uri.
+        try {
+            cursor = resolver.query(sourceUri,
+                    new String[] { OpenableColumns.DISPLAY_NAME },
+                    null, null, null);
+            if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {
+                if (cursor.getCount() > 1) {
+                    Log.w(LOG_TAG, "Unexpected multiple rows: "
+                            + cursor.getCount());
+                }
+                int index = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
+                if (index >= 0) {
+                    displayName = cursor.getString(index);
+                }
+            }
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+        if (TextUtils.isEmpty(displayName)){
+            displayName = sourceUri.getLastPathSegment();
+        }
+        return displayName;
+    }
+
+    /**
+     * Copy the content of sourceUri to the destination.
+     */
+    private Uri copyTo(final Uri sourceUri, String filename) throws IOException {
+        Log.i(LOG_TAG, String.format("Copy a Uri to app local storage (%s -> %s)",
+                sourceUri, filename));
+        final Context context = ImportVCardActivity.this;
+        final ContentResolver resolver = context.getContentResolver();
+        ReadableByteChannel inputChannel = null;
+        WritableByteChannel outputChannel = null;
+        Uri destUri = null;
+        try {
+            inputChannel = Channels.newChannel(resolver.openInputStream(sourceUri));
+            destUri = Uri.parse(context.getFileStreamPath(filename).toURI().toString());
+            outputChannel = context.openFileOutput(filename, Context.MODE_PRIVATE).getChannel();
+            final ByteBuffer buffer = ByteBuffer.allocateDirect(8192);
+            while (inputChannel.read(buffer) != -1) {
+                buffer.flip();
+                outputChannel.write(buffer);
+                buffer.compact();
+            }
+            buffer.flip();
+            while (buffer.hasRemaining()) {
+                outputChannel.write(buffer);
+            }
+        } finally {
+            if (inputChannel != null) {
+                try {
+                    inputChannel.close();
+                } catch (IOException e) {
+                    Log.w(LOG_TAG, "Failed to close inputChannel.");
+                }
+            }
+            if (outputChannel != null) {
+                try {
+                    outputChannel.close();
+                } catch(IOException e) {
+                    Log.w(LOG_TAG, "Failed to close outputChannel");
+                }
+            }
+        }
+        return destUri;
+    }
+
+    /**
+     * Reads the file from {@param sourceUri} and copies it to local cache file.
+     * Returns the local file name which stores the file from sourceUri.
+     */
+    private String readUriToLocalFile(Uri sourceUri) {
+        // Read the uri to local first.
+        int cache_index = 0;
+        String localFilename = null;
+        // Note: caches are removed by VCardService.
+        while (true) {
+            localFilename = VCardService.CACHE_FILE_PREFIX + cache_index + ".vcf";
+            final File file = getFileStreamPath(localFilename);
+            if (!file.exists()) {
+                break;
+            } else {
+                if (cache_index == Integer.MAX_VALUE) {
+                    throw new RuntimeException("Exceeded cache limit");
+                }
+                cache_index++;
+            }
+        }
+        try {
+            copyTo(sourceUri, localFilename);
+        } catch (IOException|SecurityException e) {
+            FeedbackHelper.sendFeedback(this, LOG_TAG, "Failed to copy vcard to local file", e);
+            showFailureNotification(R.string.fail_reason_io_error);
+            return null;
+        }
+
+        if (localFilename == null) {
+            Log.e(LOG_TAG, "Cannot load uri to local storage.");
+            showFailureNotification(R.string.fail_reason_io_error);
+            return null;
+        }
+
+        return localFilename;
+    }
+
+    private Uri readUriToLocalUri(Uri sourceUri) {
+        final String fileName = readUriToLocalFile(sourceUri);
+        if (fileName == null) {
+            return null;
+        }
+        return Uri.parse(getFileStreamPath(fileName).toURI().toString());
+    }
+
+    // Returns true if uri is from Storage.
+    private boolean isStorageUri(Uri uri) {
+        return uri != null && uri.toString().startsWith(STORAGE_VCARD_URI_PREFIX);
+    }
+
+    @Override
+    protected void onCreate(Bundle bundle) {
+        super.onCreate(bundle);
+
+        Uri sourceUri = getIntent().getData();
+
+        // Reading uris from non-storage needs the permission granted from the source intent,
+        // instead of permissions from RequestImportVCardPermissionActivity. So skipping requesting
+        // permissions from RequestImportVCardPermissionActivity for uris from non-storage source.
+        if (isStorageUri(sourceUri) && RequestImportVCardPermissionsActivity
+                .startPermissionActivity(this, isCallerSelf(this))) {
+            return;
+        }
+
+        String sourceDisplayName = null;
+        if (sourceUri != null) {
+            // Read the uri to local first.
+            String localTmpFileName = getIntent().getStringExtra(LOCAL_TMP_FILE_NAME_EXTRA);
+            sourceDisplayName = getIntent().getStringExtra(SOURCE_URI_DISPLAY_NAME);
+            if (TextUtils.isEmpty(localTmpFileName)) {
+                localTmpFileName = readUriToLocalFile(sourceUri);
+                sourceDisplayName = getDisplayName(sourceUri);
+                if (localTmpFileName == null) {
+                    Log.e(LOG_TAG, "Cannot load uri to local storage.");
+                    showFailureNotification(R.string.fail_reason_io_error);
+                    return;
+                }
+                getIntent().putExtra(LOCAL_TMP_FILE_NAME_EXTRA, localTmpFileName);
+                getIntent().putExtra(SOURCE_URI_DISPLAY_NAME, sourceDisplayName);
+            }
+            sourceUri = Uri.parse(getFileStreamPath(localTmpFileName).toURI().toString());
+        }
+
+        // Always request required permission for contacts before importing the vcard.
+        if (RequestImportVCardPermissionsActivity.startPermissionActivity(this,
+                isCallerSelf(this))) {
+            return;
+        }
+
+        String accountName = null;
+        String accountType = null;
+        String dataSet = null;
+        final Intent intent = getIntent();
+        if (intent != null) {
+            accountName = intent.getStringExtra(SelectAccountActivity.ACCOUNT_NAME);
+            accountType = intent.getStringExtra(SelectAccountActivity.ACCOUNT_TYPE);
+            dataSet = intent.getStringExtra(SelectAccountActivity.DATA_SET);
+        } else {
+            Log.e(LOG_TAG, "intent does not exist");
+        }
+
+        if (!TextUtils.isEmpty(accountName) && !TextUtils.isEmpty(accountType)) {
+            mAccount = new AccountWithDataSet(accountName, accountType, dataSet);
+        } else {
+            final AccountTypeManager accountTypes = AccountTypeManager.getInstance(this);
+            final List<AccountWithDataSet> accountList = accountTypes.blockForWritableAccounts();
+            if (accountList.size() == 0) {
+                mAccount = null;
+            } else if (accountList.size() == 1) {
+                mAccount = accountList.get(0);
+            } else {
+                startActivityForResult(new Intent(this, SelectAccountActivity.class),
+                        SELECT_ACCOUNT);
+                return;
+            }
+        }
+
+        if (isCallerSelf(this)) {
+            startImport(sourceUri, sourceDisplayName);
+        } else {
+            ImportVCardDialogFragment.show(this, sourceUri, sourceDisplayName);
+        }
+    }
+
+    private static boolean isCallerSelf(Activity activity) {
+        // {@link Activity#getCallingActivity()} is a safer alternative to
+        // {@link Activity#getCallingPackage()} that works around a
+        // framework bug where getCallingPackage() can sometimes return null even when the
+        // current activity *was* in fact launched via a startActivityForResult() call.
+        //
+        // (The bug happens if the task stack needs to be re-created by the framework after
+        // having been killed due to memory pressure or by the "Don't keep activities"
+        // developer option; see bug 7494866 for the full details.)
+        //
+        // Turns out that {@link Activity#getCallingActivity()} *does* return correct info
+        // even in the case where getCallingPackage() is broken, so the workaround is simply
+        // to get the package name from getCallingActivity().getPackageName() instead.
+        final ComponentName callingActivity = activity.getCallingActivity();
+        if (callingActivity == null) return false;
+        final String packageName = callingActivity.getPackageName();
+        if (packageName == null) return false;
+        return packageName.equals(activity.getApplicationContext().getPackageName());
+    }
+
+    @Override
+    public void onImportVCardConfirmed(Uri sourceUri, String sourceDisplayName) {
+        startImport(sourceUri, sourceDisplayName);
+    }
+
+    @Override
+    public void onImportVCardDenied() {
+        finish();
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
+        if (requestCode == SELECT_ACCOUNT) {
+            if (resultCode == Activity.RESULT_OK) {
+                mAccount = new AccountWithDataSet(
+                        intent.getStringExtra(SelectAccountActivity.ACCOUNT_NAME),
+                        intent.getStringExtra(SelectAccountActivity.ACCOUNT_TYPE),
+                        intent.getStringExtra(SelectAccountActivity.DATA_SET));
+                final Uri sourceUri = getIntent().getData();
+                if (sourceUri == null) {
+                    startImport(sourceUri, /* sourceDisplayName =*/ null);
+                } else {
+                    final String sourceDisplayName = getIntent().getStringExtra(
+                            SOURCE_URI_DISPLAY_NAME);
+                    final String localFileName = getIntent().getStringExtra(
+                            LOCAL_TMP_FILE_NAME_EXTRA);
+                    final Uri localUri = Uri.parse(
+                            getFileStreamPath(localFileName).toURI().toString());
+                    startImport(localUri, sourceDisplayName);
+                }
+            } else {
+                if (resultCode != Activity.RESULT_CANCELED) {
+                    Log.w(LOG_TAG, "Result code was not OK nor CANCELED: " + resultCode);
+                }
+                finish();
+            }
+        } else if (requestCode == REQUEST_OPEN_DOCUMENT) {
+            if (resultCode == Activity.RESULT_OK) {
+                final ClipData clipData = intent.getClipData();
+                if (clipData != null) {
+                    final ArrayList<Uri> uris = new ArrayList<>();
+                    final ArrayList<String> sourceDisplayNames = new ArrayList<>();
+                    for (int i = 0; i < clipData.getItemCount(); i++) {
+                        ClipData.Item item = clipData.getItemAt(i);
+                        final Uri uri = item.getUri();
+                        if (uri != null) {
+                            final Uri localUri = readUriToLocalUri(uri);
+                            if (localUri != null) {
+                                final String sourceDisplayName = getDisplayName(uri);
+                                uris.add(localUri);
+                                sourceDisplayNames.add(sourceDisplayName);
+                            }
+                        }
+                    }
+                    if (uris.isEmpty()) {
+                        Log.w(LOG_TAG, "No vCard was selected for import");
+                        finish();
+                    } else {
+                        Log.i(LOG_TAG, "Multiple vCards selected for import: " + uris);
+                        importVCard(uris.toArray(new Uri[0]),
+                                sourceDisplayNames.toArray(new String[0]));
+                    }
+                } else {
+                    final Uri uri = intent.getData();
+                    if (uri != null) {
+                        Log.i(LOG_TAG, "vCard selected for import: " + uri);
+                        final Uri localUri = readUriToLocalUri(uri);
+                        if (localUri != null) {
+                            final String sourceDisplayName = getDisplayName(uri);
+                            importVCard(localUri, sourceDisplayName);
+                        } else {
+                            Log.w(LOG_TAG, "No local URI for vCard import");
+                            finish();
+                        }
+                    } else {
+                        Log.w(LOG_TAG, "No vCard was selected for import");
+                        finish();
+                    }
+                }
+            } else {
+                if (resultCode != Activity.RESULT_CANCELED) {
+                    Log.w(LOG_TAG, "Result code was not OK nor CANCELED" + resultCode);
+                }
+                finish();
+            }
+        }
+    }
+
+    private void startImport(Uri uri, String sourceDisplayName) {
+        // Handle inbound files
+        if (uri != null) {
+            Log.i(LOG_TAG, "Starting vCard import using Uri " + uri);
+            importVCard(uri, sourceDisplayName);
+        } else {
+            Log.i(LOG_TAG, "Start vCard without Uri. The user will select vCard manually.");
+            final Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+            intent.addCategory(Intent.CATEGORY_OPENABLE);
+            intent.setType(VCardService.X_VCARD_MIME_TYPE);
+            intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
+            startActivityForResult(intent, REQUEST_OPEN_DOCUMENT);
+        }
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int resId, Bundle bundle) {
+        if (resId == R.id.dialog_cache_vcard) {
+            if (mProgressDialogForCachingVCard == null) {
+                final String title = getString(R.string.caching_vcard_title);
+                final String message = getString(R.string.caching_vcard_message);
+                mProgressDialogForCachingVCard = new ProgressDialog(this);
+                mProgressDialogForCachingVCard.setTitle(title);
+                mProgressDialogForCachingVCard.setMessage(message);
+                mProgressDialogForCachingVCard.setProgressStyle(ProgressDialog.STYLE_SPINNER);
+                mProgressDialogForCachingVCard.setOnCancelListener(mVCardCacheThread);
+                startVCardService();
+            }
+            return mProgressDialogForCachingVCard;
+        } else if (resId == R.id.dialog_error_with_message) {
+            String message = mErrorMessage;
+            if (TextUtils.isEmpty(message)) {
+                Log.e(LOG_TAG, "Error message is null while it must not.");
+                message = getString(R.string.fail_reason_unknown);
+            }
+            final AlertDialog.Builder builder = new AlertDialog.Builder(this)
+                .setTitle(getString(R.string.reading_vcard_failed_title))
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .setMessage(message)
+                .setOnCancelListener(mCancelListener)
+                .setPositiveButton(android.R.string.ok, mCancelListener);
+            return builder.create();
+        }
+
+        return super.onCreateDialog(resId, bundle);
+    }
+
+    /* package */ void startVCardService() {
+        mConnection = new ImportRequestConnection();
+
+        Log.i(LOG_TAG, "Bind to VCardService.");
+        // We don't want the service finishes itself just after this connection.
+        Intent intent = new Intent(this, VCardService.class);
+        startService(intent);
+        bindService(new Intent(this, VCardService.class),
+                mConnection, Context.BIND_AUTO_CREATE);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Bundle savedInstanceState) {
+        super.onRestoreInstanceState(savedInstanceState);
+        if (mProgressDialogForCachingVCard != null) {
+            Log.i(LOG_TAG, "Cache thread is still running. Show progress dialog again.");
+            showDialog(R.id.dialog_cache_vcard);
+        }
+    }
+
+    /* package */ void showFailureNotification(int reasonId) {
+        final NotificationManager notificationManager =
+                (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
+        final Notification notification =
+                NotificationImportExportListener.constructImportFailureNotification(
+                        ImportVCardActivity.this,
+                        getString(reasonId));
+        notificationManager.notify(NotificationImportExportListener.FAILURE_NOTIFICATION_TAG,
+                FAILURE_NOTIFICATION_ID, notification);
+        mHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(ImportVCardActivity.this,
+                        getString(R.string.vcard_import_failed), Toast.LENGTH_LONG).show();
+            }
+        });
+    }
+}
diff --git a/src/com/android/contacts/vcard/ImportVCardDialogFragment.java b/src/com/android/contacts/vcard/ImportVCardDialogFragment.java
new file mode 100644
index 0000000..521a610
--- /dev/null
+++ b/src/com/android/contacts/vcard/ImportVCardDialogFragment.java
@@ -0,0 +1,91 @@
+/*
+ * 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.vcard;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.net.Uri;
+import android.os.Bundle;
+
+import com.android.contacts.R;
+
+/** Asks for confirmation before importing contacts from a vcard. */
+public class ImportVCardDialogFragment extends DialogFragment {
+
+    static final String TAG = "importVCardDialog";
+
+    private static final String ARG_SOURCE_URI = "sourceUri";
+    private static final String ARG_SOURCE_DISPLAY_NAME = "sourceDisplayName";
+
+    /** Callbacks for hosts of the {@link ImportVCardDialogFragment}. */
+    public interface Listener {
+
+        /** Invoked after the user has confirmed that contacts should be imported. */
+        void onImportVCardConfirmed(Uri sourceUri, String sourceDisplayName);
+
+        /** Invoked after the user has rejected importing contacts. */
+        void onImportVCardDenied();
+    }
+
+    /** Displays the dialog asking for confirmation before importing contacts. */
+    public static void show(Activity activity, Uri sourceUri,
+            String sourceDisplayName) {
+        if (!(activity instanceof Listener)) {
+            throw new IllegalArgumentException(
+                    "Activity must implement " + Listener.class.getName());
+        }
+
+        final Bundle args = new Bundle();
+        args.putParcelable(ARG_SOURCE_URI, sourceUri);
+        args.putString(ARG_SOURCE_DISPLAY_NAME, sourceDisplayName);
+
+        final ImportVCardDialogFragment dialog = new ImportVCardDialogFragment();
+        dialog.setArguments(args);
+        dialog.show(activity.getFragmentManager(), TAG);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final Uri sourceUri = getArguments().getParcelable(ARG_SOURCE_URI);
+        final String sourceDisplayName = getArguments().getString(ARG_SOURCE_DISPLAY_NAME);
+
+        return new AlertDialog.Builder(getActivity())
+                .setIconAttribute(android.R.attr.alertDialogIcon)
+                .setMessage(R.string.import_from_vcf_file_confirmation_message)
+                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int whichButton) {
+                        final Listener listener = (Listener) getActivity();
+                        if (listener != null) {
+                            listener.onImportVCardConfirmed(sourceUri, sourceDisplayName);
+                        }
+                    }
+                })
+                .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int whichButton) {
+                        final Listener listener = (Listener) getActivity();
+                        if (listener != null) {
+                            listener.onImportVCardDenied();
+                        }
+                    }
+                })
+                .create();
+    }
+}
diff --git a/src/com/android/contacts/vcard/NfcImportVCardActivity.java b/src/com/android/contacts/vcard/NfcImportVCardActivity.java
new file mode 100644
index 0000000..88fa760
--- /dev/null
+++ b/src/com/android/contacts/vcard/NfcImportVCardActivity.java
@@ -0,0 +1,305 @@
+/*
+ * Copyright (C) 2011 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.vcard;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.net.Uri;
+import android.nfc.NdefMessage;
+import android.nfc.NdefRecord;
+import android.nfc.NfcAdapter;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.provider.ContactsContract.RawContacts;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.android.contacts.R;
+import com.android.contacts.activities.RequestPermissionsActivity;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.util.ImplicitIntentsUtil;
+import com.android.contactsbind.FeedbackHelper;
+import com.android.vcard.VCardEntry;
+import com.android.vcard.VCardEntryCounter;
+import com.android.vcard.VCardParser;
+import com.android.vcard.VCardParser_V21;
+import com.android.vcard.VCardParser_V30;
+import com.android.vcard.VCardSourceDetector;
+import com.android.vcard.exception.VCardException;
+import com.android.vcard.exception.VCardNestedException;
+import com.android.vcard.exception.VCardVersionException;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class NfcImportVCardActivity extends Activity implements ServiceConnection,
+        VCardImportExportListener {
+    private static final String TAG = "NfcImportVCardActivity";
+
+    private static final int SELECT_ACCOUNT = 1;
+
+    private NdefRecord mRecord;
+    private AccountWithDataSet mAccount;
+    private Handler mHandler = new Handler();
+
+    /**
+     * Notification id used when error happened before sending an import request to VCardServer.
+     */
+    private static final int FAILURE_NOTIFICATION_ID = 1;
+
+    /* package */ class ImportTask extends AsyncTask<VCardService, Void, ImportRequest> {
+        @Override
+        public ImportRequest doInBackground(VCardService... services) {
+            ImportRequest request = createImportRequest();
+            if (request == null) {
+                return null;
+            }
+
+            ArrayList<ImportRequest> requests = new ArrayList<ImportRequest>();
+            requests.add(request);
+            services[0].handleImportRequest(requests, NfcImportVCardActivity.this);
+            return request;
+        }
+
+        @Override
+        public void onCancelled() {
+            unbindService(NfcImportVCardActivity.this);
+        }
+
+        @Override
+        public void onPostExecute(ImportRequest request) {
+            if (request == null) {
+                // Finish the activity in case of error so it doesn't stay in view.
+                finish();
+            }
+            unbindService(NfcImportVCardActivity.this);
+        }
+    }
+
+    /* package */ ImportRequest createImportRequest() {
+        VCardParser parser;
+        VCardEntryCounter counter = null;
+        VCardSourceDetector detector = null;
+        int vcardVersion = ImportVCardActivity.VCARD_VERSION_V21;
+        try {
+            ByteArrayInputStream is = new ByteArrayInputStream(mRecord.getPayload());
+            is.mark(0);
+            parser = new VCardParser_V21();
+            try {
+                counter = new VCardEntryCounter();
+                detector = new VCardSourceDetector();
+                parser.addInterpreter(counter);
+                parser.addInterpreter(detector);
+                parser.parse(is);
+            } catch (VCardVersionException e1) {
+                is.reset();
+                vcardVersion = ImportVCardActivity.VCARD_VERSION_V30;
+                parser = new VCardParser_V30();
+                try {
+                    counter = new VCardEntryCounter();
+                    detector = new VCardSourceDetector();
+                    parser.addInterpreter(counter);
+                    parser.addInterpreter(detector);
+                    parser.parse(is);
+                } catch (VCardVersionException e2) {
+                    FeedbackHelper.sendFeedback(this, TAG, "vcard with unsupported version", e2);
+                    showFailureNotification(R.string.fail_reason_not_supported);
+                    return null;
+                }
+            } finally {
+                try {
+                    if (is != null) is.close();
+                } catch (IOException e) {
+                }
+            }
+        } catch (IOException e) {
+            FeedbackHelper.sendFeedback(this, TAG, "Failed to read vcard data", e);
+            showFailureNotification(R.string.fail_reason_io_error);
+            return null;
+        } catch (VCardNestedException e) {
+            Log.w(TAG, "Nested Exception is found (it may be false-positive).");
+            // Go through without throwing the Exception, as we may be able to detect the
+            // version before it
+        } catch (VCardException e) {
+            FeedbackHelper.sendFeedback(this, TAG, "Failed to parse vcard", e);
+            showFailureNotification(R.string.fail_reason_not_supported);
+            return null;
+        }
+
+        return new ImportRequest(mAccount, mRecord.getPayload(), null,
+                getString(R.string.nfc_vcard_file_name), detector.getEstimatedType(),
+                detector.getEstimatedCharset(), vcardVersion, counter.getCount());
+    }
+
+    @Override
+    public void onServiceConnected(ComponentName name, IBinder binder) {
+        VCardService service = ((VCardService.MyBinder) binder).getService();
+        new ImportTask().execute(service);
+    }
+
+    @Override
+    public void onServiceDisconnected(ComponentName name) {
+        // Do nothing
+    }
+
+    @Override
+    protected void onCreate(Bundle bundle) {
+        super.onCreate(bundle);
+
+        if (RequestPermissionsActivity.startPermissionActivityIfNeeded(this)) {
+            return;
+        }
+
+        Intent intent = getIntent();
+        if (!NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
+            Log.w(TAG, "Unknowon intent " + intent);
+            finish();
+            return;
+        }
+
+        String type = intent.getType();
+        if (type == null ||
+                (!"text/x-vcard".equals(type) && !"text/vcard".equals(type))) {
+            Log.w(TAG, "Not a vcard");
+            //setStatus(getString(R.string.fail_reason_not_supported));
+            finish();
+            return;
+        }
+        NdefMessage msg = (NdefMessage) intent.getParcelableArrayExtra(
+                NfcAdapter.EXTRA_NDEF_MESSAGES)[0];
+        mRecord = msg.getRecords()[0];
+
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(this);
+        final List<AccountWithDataSet> accountList = accountTypes.blockForWritableAccounts();
+        if (accountList.size() == 0) {
+            mAccount = null;
+        } else if (accountList.size() == 1) {
+            mAccount = accountList.get(0);
+        } else {
+            startActivityForResult(new Intent(this, SelectAccountActivity.class), SELECT_ACCOUNT);
+            return;
+        }
+
+        startImport();
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
+        if (requestCode == SELECT_ACCOUNT) {
+            if (resultCode == RESULT_OK) {
+                mAccount = new AccountWithDataSet(
+                        intent.getStringExtra(SelectAccountActivity.ACCOUNT_NAME),
+                        intent.getStringExtra(SelectAccountActivity.ACCOUNT_TYPE),
+                        intent.getStringExtra(SelectAccountActivity.DATA_SET));
+                startImport();
+            } else {
+                finish();
+            }
+        }
+    }
+
+    private void startImport() {
+        // We don't want the service finishes itself just after this connection.
+        Intent intent = new Intent(this, VCardService.class);
+        startService(intent);
+        bindService(intent, this, Context.BIND_AUTO_CREATE);
+    }
+
+    @Override
+    public Notification onImportProcessed(ImportRequest request, int jobId, int sequence) {
+        return null;
+    }
+
+    @Override
+    public Notification onImportParsed(ImportRequest request, int jobId, VCardEntry entry,
+            int currentCount, int totalCount) {
+        return null;
+    }
+
+    @Override
+    public void onImportFinished(ImportRequest request, int jobId, Uri uri) {
+        if (isFinishing()) {
+            Log.i(TAG, "Late import -- ignoring");
+            return;
+        }
+
+        if (uri != null) {
+            Uri contactUri = RawContacts.getContactLookupUri(getContentResolver(), uri);
+            Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
+            ImplicitIntentsUtil.startActivityInAppIfPossible(this, intent);
+            finish();
+        }
+    }
+
+    @Override
+    public void onImportFailed(ImportRequest request) {
+        if (isFinishing()) {
+            Log.i(TAG, "Late import failure -- ignoring");
+            return;
+        }
+        showFailureNotification(R.string.vcard_import_request_rejected_message);
+        finish();
+    }
+
+    @Override
+    public void onImportCanceled(ImportRequest request, int jobId) {
+        // do nothing
+    }
+
+    @Override
+    public Notification onExportProcessed(ExportRequest request, int jobId) {
+        return null;
+    }
+
+    @Override
+    public void onExportFailed(ExportRequest request) {
+        // do nothing
+    }
+
+    @Override
+    public void onCancelRequest(CancelRequest request, int type) {
+        // do nothing
+    }
+
+    /* package */ void showFailureNotification(int reasonId) {
+        final NotificationManager notificationManager =
+                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+        final Notification notification =
+                NotificationImportExportListener.constructImportFailureNotification(
+                        this,
+                        getString(reasonId));
+        notificationManager.notify(NotificationImportExportListener.FAILURE_NOTIFICATION_TAG,
+                FAILURE_NOTIFICATION_ID, notification);
+        mHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(NfcImportVCardActivity.this,
+                        getString(R.string.vcard_import_failed), Toast.LENGTH_LONG).show();
+            }
+        });
+    }
+}
diff --git a/src/com/android/contacts/vcard/NotificationImportExportListener.java b/src/com/android/contacts/vcard/NotificationImportExportListener.java
new file mode 100644
index 0000000..46a3365
--- /dev/null
+++ b/src/com/android/contacts/vcard/NotificationImportExportListener.java
@@ -0,0 +1,320 @@
+/*
+ * Copyright (C) 2011 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.vcard;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.RawContacts;
+import android.support.v4.app.NotificationCompat;
+import android.widget.Toast;
+
+import com.android.contacts.R;
+import com.android.contacts.util.ContactsNotificationChannelsUtil;
+import com.android.vcard.VCardEntry;
+
+import java.text.NumberFormat;
+
+public class NotificationImportExportListener implements VCardImportExportListener,
+        Handler.Callback {
+    /** The tag used by vCard-related notifications. */
+    /* package */ static final String DEFAULT_NOTIFICATION_TAG = "VCardServiceProgress";
+    /**
+     * The tag used by vCard-related failure notifications.
+     * <p>
+     * Use a different tag from {@link #DEFAULT_NOTIFICATION_TAG} so that failures do not get
+     * replaced by other notifications and vice-versa.
+     */
+    /* package */ static final String FAILURE_NOTIFICATION_TAG = "VCardServiceFailure";
+
+    private final NotificationManager mNotificationManager;
+    private final Activity mContext;
+    private final Handler mHandler;
+
+    public NotificationImportExportListener(Activity activity) {
+        mContext = activity;
+        mNotificationManager = (NotificationManager) activity.getSystemService(
+                Context.NOTIFICATION_SERVICE);
+        mHandler = new Handler(this);
+    }
+
+    @Override
+    public boolean handleMessage(Message msg) {
+        String text = (String) msg.obj;
+        Toast.makeText(mContext, text, Toast.LENGTH_LONG).show();
+        return true;
+    }
+
+    @Override
+    public Notification onImportProcessed(ImportRequest request, int jobId, int sequence) {
+        // Show a notification about the status
+        final String displayName;
+        final String message;
+        if (request.displayName != null) {
+            displayName = request.displayName;
+            message = mContext.getString(R.string.vcard_import_will_start_message, displayName);
+        } else {
+            displayName = mContext.getString(R.string.vcard_unknown_filename);
+            message = mContext.getString(
+                    R.string.vcard_import_will_start_message_with_default_name);
+        }
+
+        // We just want to show notification for the first vCard.
+        if (sequence == 0) {
+            // TODO: Ideally we should detect the current status of import/export and
+            // show "started" when we can import right now and show "will start" when
+            // we cannot.
+            mHandler.obtainMessage(0, message).sendToTarget();
+        }
+
+        ContactsNotificationChannelsUtil.createDefaultChannel(mContext);
+        return constructProgressNotification(mContext, VCardService.TYPE_IMPORT, message, message,
+                jobId, displayName, -1, 0);
+    }
+
+    @Override
+    public Notification onImportParsed(ImportRequest request, int jobId, VCardEntry entry, int currentCount,
+            int totalCount) {
+        if (entry.isIgnorable()) {
+            return null;
+        }
+
+        final String totalCountString = String.valueOf(totalCount);
+        final String tickerText =
+                mContext.getString(R.string.progress_notifier_message,
+                        String.valueOf(currentCount),
+                        totalCountString,
+                        entry.getDisplayName());
+        final String description = mContext.getString(R.string.importing_vcard_description,
+                entry.getDisplayName());
+
+        return constructProgressNotification(mContext.getApplicationContext(),
+                VCardService.TYPE_IMPORT, description, tickerText, jobId, request.displayName,
+                totalCount, currentCount);
+    }
+
+    @Override
+    public void onImportFinished(ImportRequest request, int jobId, Uri createdUri) {
+        final String description = mContext.getString(R.string.importing_vcard_finished_title,
+                request.displayName);
+        final Intent intent;
+        if (createdUri != null) {
+            final long rawContactId = ContentUris.parseId(createdUri);
+            final Uri contactUri = RawContacts.getContactLookupUri(
+                    mContext.getContentResolver(), ContentUris.withAppendedId(
+                            RawContacts.CONTENT_URI, rawContactId));
+            intent = new Intent(Intent.ACTION_VIEW, contactUri);
+        } else {
+            intent = new Intent(Intent.ACTION_VIEW);
+            intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
+        }
+        intent.setPackage(mContext.getPackageName());
+        final Notification notification =
+                NotificationImportExportListener.constructFinishNotification(mContext,
+                description, null, intent);
+        mNotificationManager.notify(NotificationImportExportListener.DEFAULT_NOTIFICATION_TAG,
+                jobId, notification);
+    }
+
+    @Override
+    public void onImportFailed(ImportRequest request) {
+        // TODO: a little unkind to show Toast in this case, which is shown just a moment.
+        // Ideally we should show some persistent something users can notice more easily.
+        mHandler.obtainMessage(0,
+                mContext.getString(R.string.vcard_import_request_rejected_message)).sendToTarget();
+    }
+
+    @Override
+    public void onImportCanceled(ImportRequest request, int jobId) {
+        final String description = mContext.getString(R.string.importing_vcard_canceled_title,
+                request.displayName);
+        final Notification notification =
+                NotificationImportExportListener.constructCancelNotification(mContext, description);
+        mNotificationManager.notify(NotificationImportExportListener.DEFAULT_NOTIFICATION_TAG,
+                jobId, notification);
+    }
+
+    @Override
+    public Notification onExportProcessed(ExportRequest request, int jobId) {
+        final String displayName = ExportVCardActivity.getOpenableUriDisplayName(mContext,
+                request.destUri);
+        final String message = mContext.getString(R.string.contacts_export_will_start_message);
+
+        mHandler.obtainMessage(0, message).sendToTarget();
+        ContactsNotificationChannelsUtil.createDefaultChannel(mContext);
+        return constructProgressNotification(mContext, VCardService.TYPE_EXPORT, message, message,
+                jobId, displayName, -1, 0);
+    }
+
+    @Override
+    public void onExportFailed(ExportRequest request) {
+        mHandler.obtainMessage(0,
+                mContext.getString(R.string.vcard_export_request_rejected_message)).sendToTarget();
+    }
+
+    @Override
+    public void onCancelRequest(CancelRequest request, int type) {
+        final String description = type == VCardService.TYPE_IMPORT ?
+                mContext.getString(R.string.importing_vcard_canceled_title, request.displayName) :
+                mContext.getString(R.string.exporting_vcard_canceled_title, request.displayName);
+        final Notification notification = constructCancelNotification(mContext, description);
+        mNotificationManager.notify(DEFAULT_NOTIFICATION_TAG, request.jobId, notification);
+    }
+
+    /**
+     * Constructs a {@link Notification} showing the current status of import/export.
+     * Users can cancel the process with the Notification.
+     *
+     * @param context
+     * @param type import/export
+     * @param description Content of the Notification.
+     * @param tickerText
+     * @param jobId
+     * @param displayName Name to be shown to the Notification (e.g. "finished importing XXXX").
+     * Typycally a file name.
+     * @param totalCount The number of vCard entries to be imported. Used to show progress bar.
+     * -1 lets the system show the progress bar with "indeterminate" state.
+     * @param currentCount The index of current vCard. Used to show progress bar.
+     */
+    /* package */ static Notification constructProgressNotification(
+            Context context, int type, String description, String tickerText,
+            int jobId, String displayName, int totalCount, int currentCount) {
+        // Note: We cannot use extra values here (like setIntExtra()), as PendingIntent doesn't
+        // preserve them across multiple Notifications. PendingIntent preserves the first extras
+        // (when flag is not set), or update them when PendingIntent#getActivity() is called
+        // (See PendingIntent#FLAG_UPDATE_CURRENT). In either case, we cannot preserve extras as we
+        // expect (for each vCard import/export request).
+        //
+        // We use query parameter in Uri instead.
+        // Scheme and Authority is arbitorary, assuming CancelActivity never refers them.
+        final Intent intent = new Intent(context, CancelActivity.class);
+        final Uri uri = (new Uri.Builder())
+                .scheme("invalidscheme")
+                .authority("invalidauthority")
+                .appendQueryParameter(CancelActivity.JOB_ID, String.valueOf(jobId))
+                .appendQueryParameter(CancelActivity.DISPLAY_NAME, displayName)
+                .appendQueryParameter(CancelActivity.TYPE, String.valueOf(type)).build();
+        intent.setData(uri);
+
+        final NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+        builder.setOngoing(true)
+                .setChannel(ContactsNotificationChannelsUtil.DEFAULT_CHANNEL)
+                .setOnlyAlertOnce(true)
+                .setProgress(totalCount, currentCount, totalCount == - 1)
+                .setTicker(tickerText)
+                .setContentTitle(description)
+                .setColor(context.getResources().getColor(R.color.dialtacts_theme_color))
+                .setSmallIcon(type == VCardService.TYPE_IMPORT
+                        ? android.R.drawable.stat_sys_download
+                        : android.R.drawable.stat_sys_upload)
+                .setContentIntent(PendingIntent.getActivity(context, 0, intent, 0));
+        if (totalCount > 0) {
+            String percentage =
+                    NumberFormat.getPercentInstance().format((double) currentCount / totalCount);
+            builder.setContentText(percentage);
+        }
+        return builder.getNotification();
+    }
+
+    /**
+     * Constructs a Notification telling users the process is canceled.
+     *
+     * @param context
+     * @param description Content of the Notification
+     */
+    /* package */ static Notification constructCancelNotification(
+            Context context, String description) {
+        ContactsNotificationChannelsUtil.createDefaultChannel(context);
+        return new NotificationCompat.Builder(context)
+                .setChannel(ContactsNotificationChannelsUtil.DEFAULT_CHANNEL)
+                .setAutoCancel(true)
+                .setSmallIcon(android.R.drawable.stat_notify_error)
+                .setColor(context.getResources().getColor(R.color.dialtacts_theme_color))
+                .setContentTitle(description)
+                .setContentText(description)
+                // Launch an intent that won't resolve to anything. Restrict the intent to this
+                // app to make sure that no other app can steal this pending-intent b/19296918.
+                .setContentIntent(PendingIntent
+                        .getActivity(context, 0, new Intent(context.getPackageName(), null), 0))
+                .getNotification();
+    }
+
+    /**
+     * Constructs a Notification telling users the process is finished.
+     *
+     * @param context
+     * @param description Content of the Notification
+     * @param intent Intent to be launched when the Notification is clicked. Can be null.
+     */
+    /* package */ static Notification constructFinishNotification(
+            Context context, String title, String description, Intent intent) {
+        return constructFinishNotificationWithFlags(context, title, description, intent, 0);
+    }
+
+    /**
+     * @param flags use FLAG_ACTIVITY_NEW_TASK to set it as new task, to get rid of cached files.
+     */
+    /* package */ static Notification constructFinishNotificationWithFlags(
+            Context context, String title, String description, Intent intent, int flags) {
+        ContactsNotificationChannelsUtil.createDefaultChannel(context);
+        return new NotificationCompat.Builder(context)
+                .setChannel(ContactsNotificationChannelsUtil.DEFAULT_CHANNEL)
+                .setAutoCancel(true)
+                .setColor(context.getResources().getColor(R.color.dialtacts_theme_color))
+                .setSmallIcon(R.drawable.quantum_ic_done_vd_theme_24)
+                .setContentTitle(title)
+                .setContentText(description)
+                // If no intent provided, include an intent that won't resolve to anything.
+                // Restrict the intent to this app to make sure that no other app can steal this
+                // pending-intent b/19296918.
+                .setContentIntent(PendingIntent.getActivity(context, 0,
+                        (intent != null ? intent : new Intent(context.getPackageName(), null)),
+                        flags))
+                .getNotification();
+    }
+
+    /**
+     * Constructs a Notification telling the vCard import has failed.
+     *
+     * @param context
+     * @param reason The reason why the import has failed. Shown in description field.
+     */
+    /* package */ static Notification constructImportFailureNotification(
+            Context context, String reason) {
+        ContactsNotificationChannelsUtil.createDefaultChannel(context);
+        return new NotificationCompat.Builder(context)
+                .setChannel(ContactsNotificationChannelsUtil.DEFAULT_CHANNEL)
+                .setAutoCancel(true)
+                .setColor(context.getResources().getColor(R.color.dialtacts_theme_color))
+                .setSmallIcon(android.R.drawable.stat_notify_error)
+                .setContentTitle(context.getString(R.string.vcard_import_failed))
+                .setContentText(reason)
+                // Launch an intent that won't resolve to anything. Restrict the intent to this
+                // app to make sure that no other app can steal this pending-intent b/19296918.
+                .setContentIntent(PendingIntent
+                        .getActivity(context, 0, new Intent(context.getPackageName(), null), 0))
+                .getNotification();
+    }
+}
diff --git a/src/com/android/contacts/vcard/ProcessorBase.java b/src/com/android/contacts/vcard/ProcessorBase.java
new file mode 100644
index 0000000..1ce21cf
--- /dev/null
+++ b/src/com/android/contacts/vcard/ProcessorBase.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+import java.util.concurrent.RunnableFuture;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * A base processor class. One instance processes vCard one import/export request (imports a given
+ * vCard or exports a vCard). Expected to be used with {@link ExecutorService}.
+ *
+ * This instance starts itself with {@link #run()} method, and can be cancelled with
+ * {@link #cancel(boolean)}. Users can check the processor's status using {@link #isCancelled()}
+ * and {@link #isDone()} asynchronously.
+ *
+ * {@link #get()} and {@link #get(long, TimeUnit)}, which are form {@link Future}, aren't
+ * supported and {@link UnsupportedOperationException} will be just thrown when they are called.
+ */
+public abstract class ProcessorBase implements RunnableFuture<Object> {
+
+    /**
+     * @return the type of the processor. Must be {@link VCardService#TYPE_IMPORT} or
+     * {@link VCardService#TYPE_EXPORT}.
+     */
+    public abstract int getType();
+
+    @Override
+    public abstract void run();
+
+    /**
+     * Cancels this operation.
+     *
+     * @param mayInterruptIfRunning ignored. When this method is called, the instance
+     * stops processing and finish itself even if the thread is running.
+     *
+     * @see Future#cancel(boolean)
+     */
+    @Override
+    public abstract boolean cancel(boolean mayInterruptIfRunning);
+    @Override
+    public abstract boolean isCancelled();
+    @Override
+    public abstract boolean isDone();
+
+    /**
+     * Just throws {@link UnsupportedOperationException}.
+     */
+    @Override
+    public final Object get() {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Just throws {@link UnsupportedOperationException}.
+     */
+    @Override
+    public final Object get(long timeout, TimeUnit unit) {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/src/com/android/contacts/vcard/SelectAccountActivity.java b/src/com/android/contacts/vcard/SelectAccountActivity.java
new file mode 100644
index 0000000..ac5b3eb
--- /dev/null
+++ b/src/com/android/contacts/vcard/SelectAccountActivity.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.android.contacts.R;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.util.AccountSelectionUtil;
+
+import java.util.List;
+
+public class SelectAccountActivity extends Activity {
+    private static final String LOG_TAG = "SelectAccountActivity";
+
+    public static final String ACCOUNT_NAME = "account_name";
+    public static final String ACCOUNT_TYPE = "account_type";
+    public static final String DATA_SET = "data_set";
+
+    private class CancelListener
+            implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener {
+        public void onClick(DialogInterface dialog, int which) {
+            finish();
+        }
+        public void onCancel(DialogInterface dialog) {
+            finish();
+        }
+    }
+
+    private AccountSelectionUtil.AccountSelectedListener mAccountSelectionListener;
+
+    @Override
+    protected void onCreate(Bundle bundle) {
+        super.onCreate(bundle);
+
+        // There's three possibilities:
+        // - more than one accounts -> ask the user
+        // - just one account -> use the account without asking the user
+        // - no account -> use phone-local storage without asking the user
+        final int resId = R.string.import_from_vcf_file;
+        final AccountTypeManager accountTypes = AccountTypeManager.getInstance(this);
+        final List<AccountWithDataSet> accountList = accountTypes.blockForWritableAccounts();
+        if (accountList.size() == 0) {
+            Log.w(LOG_TAG, "Account does not exist");
+            finish();
+            return;
+        } else if (accountList.size() == 1) {
+            final AccountWithDataSet account = accountList.get(0);
+            final Intent intent = new Intent();
+            intent.putExtra(ACCOUNT_NAME, account.name);
+            intent.putExtra(ACCOUNT_TYPE, account.type);
+            intent.putExtra(DATA_SET, account.dataSet);
+            setResult(RESULT_OK, intent);
+            finish();
+            return;
+        }
+
+        Log.i(LOG_TAG, "The number of available accounts: " + accountList.size());
+
+        // Multiple accounts. Let users to select one.
+        mAccountSelectionListener =
+                new AccountSelectionUtil.AccountSelectedListener(
+                        this, accountList, resId) {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        dialog.dismiss();
+                        final AccountWithDataSet account = mAccountList.get(which);
+                        final Intent intent = new Intent();
+                        intent.putExtra(ACCOUNT_NAME, account.name);
+                        intent.putExtra(ACCOUNT_TYPE, account.type);
+                        intent.putExtra(DATA_SET, account.dataSet);
+                        setResult(RESULT_OK, intent);
+                        finish();
+                    }
+                };
+        showDialog(resId);
+        return;
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int resId, Bundle bundle) {
+        if (resId == R.string.import_from_vcf_file) {
+            if (mAccountSelectionListener == null) {
+                throw new NullPointerException(
+                        "mAccountSelectionListener must not be null.");
+            }
+            return AccountSelectionUtil.getSelectAccountDialog(this, resId,
+                    mAccountSelectionListener,
+                    new CancelListener());
+        }
+        return super.onCreateDialog(resId, bundle);
+    }
+}
diff --git a/src/com/android/contacts/vcard/ShareVCardActivity.java b/src/com/android/contacts/vcard/ShareVCardActivity.java
new file mode 100644
index 0000000..787ddc6
--- /dev/null
+++ b/src/com/android/contacts/vcard/ShareVCardActivity.java
@@ -0,0 +1,93 @@
+/*
+ * 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.vcard;
+
+import android.content.ComponentName;
+import android.net.Uri;
+import android.os.IBinder;
+import android.support.v4.content.FileProvider;
+import android.util.Log;
+
+import com.android.contacts.R;
+import com.android.contactsbind.FeedbackHelper;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+/**
+ * This activity connects to VCardService, creates a .vcf file in cache directory and send export
+ * request with the file URI so as to write contacts data to the file in background.
+ */
+public class ShareVCardActivity extends ExportVCardActivity {
+    private static final String LOG_TAG = "VCardShare";
+    private final String EXPORT_FILE_PREFIX = "vcards_";
+    private final long A_DAY_IN_MILLIS = 1000 * 60 * 60 * 24;
+
+    @Override
+    public synchronized void onServiceConnected(ComponentName name, IBinder binder) {
+        if (DEBUG) Log.d(LOG_TAG, "connected to service, requesting a destination file name");
+        mConnected = true;
+        mService = ((VCardService.MyBinder) binder).getService();
+
+        clearExportFiles();
+
+        final File file = getLocalFile();
+        try {
+            file.createNewFile();
+        } catch (IOException e) {
+            FeedbackHelper.sendFeedback(this, LOG_TAG, "Failed to create .vcf file", e);
+            finish();
+            return;
+        }
+
+        final Uri contentUri = FileProvider.getUriForFile(this,
+                getString(R.string.contacts_file_provider_authority), file);
+        if (DEBUG) Log.d(LOG_TAG, "exporting to " + contentUri);
+
+        final ExportRequest request = new ExportRequest(contentUri);
+        // The connection object will call finish().
+        mService.handleExportRequest(request, new NotificationImportExportListener(
+                ShareVCardActivity.this));
+        finish();
+    }
+
+    /**
+     * Delete the files (that are untouched for more than 1 day) in the cache directory.
+     * We cannot rely on VCardService to delete export files because it will delete export files
+     * right after finishing writing so no files could be shared. Therefore, our approach to
+     * deleting export files is:
+     * 1. put export files in cache directory so that Android may delete them;
+     * 2. manually delete the files that are older than 1 day when service is connected.
+     */
+    private void clearExportFiles() {
+        for (File file : getCacheDir().listFiles()) {
+            final long ageInMillis = System.currentTimeMillis() - file.lastModified();
+            if (file.getName().startsWith(EXPORT_FILE_PREFIX) && ageInMillis > A_DAY_IN_MILLIS) {
+                file.delete();
+            }
+        }
+    }
+
+    private File getLocalFile() {
+        final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US);
+        final String currentDateString = dateFormat.format(new Date()).toString();
+        final String localFilename = EXPORT_FILE_PREFIX + currentDateString + ".vcf";
+        return new File(getCacheDir(), localFilename);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/contacts/vcard/VCardCommonArguments.java b/src/com/android/contacts/vcard/VCardCommonArguments.java
new file mode 100644
index 0000000..06b49a2
--- /dev/null
+++ b/src/com/android/contacts/vcard/VCardCommonArguments.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2012 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.vcard;
+
+/**
+ * Argument constants used by many activities and services.
+ */
+public class VCardCommonArguments {
+
+    // Argument used to pass calling activities to the target activity or service.
+    // The value should be a string class name (e.g. com.android.contacts.vcard.VCardCommonArgs)
+    public static final String ARG_CALLING_ACTIVITY = "CALLING_ACTIVITY";
+}
diff --git a/src/com/android/contacts/vcard/VCardImportExportListener.java b/src/com/android/contacts/vcard/VCardImportExportListener.java
new file mode 100644
index 0000000..fa256ad
--- /dev/null
+++ b/src/com/android/contacts/vcard/VCardImportExportListener.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2011 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.vcard;
+
+import android.app.Notification;
+import android.net.Uri;
+
+import com.android.vcard.VCardEntry;
+
+interface VCardImportExportListener {
+    Notification onImportProcessed(ImportRequest request, int jobId, int sequence);
+    Notification onImportParsed(ImportRequest request, int jobId, VCardEntry entry, int currentCount,
+            int totalCount);
+    void onImportFinished(ImportRequest request, int jobId, Uri uri);
+    void onImportFailed(ImportRequest request);
+    void onImportCanceled(ImportRequest request, int jobId);
+
+    Notification onExportProcessed(ExportRequest request, int jobId);
+    void onExportFailed(ExportRequest request);
+
+    void onCancelRequest(CancelRequest request, int type);
+}
diff --git a/src/com/android/contacts/vcard/VCardService.java b/src/com/android/contacts/vcard/VCardService.java
new file mode 100644
index 0000000..075d6bb
--- /dev/null
+++ b/src/com/android/contacts/vcard/VCardService.java
@@ -0,0 +1,396 @@
+/*
+ * Copyright (C) 2010 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.vcard;
+
+import android.app.Notification;
+import android.app.Service;
+import android.content.Intent;
+import android.media.MediaScannerConnection;
+import android.media.MediaScannerConnection.MediaScannerConnectionClient;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.IBinder;
+import android.util.Log;
+import android.util.SparseArray;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.RejectedExecutionException;
+
+/**
+ * The class responsible for handling vCard import/export requests.
+ *
+ * This Service creates one ImportRequest/ExportRequest object (as Runnable) per request and push
+ * it to {@link ExecutorService} with single thread executor. The executor handles each request
+ * one by one, and notifies users when needed.
+ */
+// TODO: Using IntentService looks simpler than using Service + ServiceConnection though this
+// works fine enough. Investigate the feasibility.
+public class VCardService extends Service {
+    private final static String LOG_TAG = "VCardService";
+
+    /* package */ final static boolean DEBUG = false;
+
+    /**
+     * Specifies the type of operation. Used when constructing a notification, canceling
+     * some operation, etc.
+     */
+    /* package */ static final int TYPE_IMPORT = 1;
+    /* package */ static final int TYPE_EXPORT = 2;
+
+    /* package */ static final String CACHE_FILE_PREFIX = "import_tmp_";
+
+    /* package */ static final String X_VCARD_MIME_TYPE = "text/x-vcard";
+
+    private class CustomMediaScannerConnectionClient implements MediaScannerConnectionClient {
+        final MediaScannerConnection mConnection;
+        final String mPath;
+
+        public CustomMediaScannerConnectionClient(String path) {
+            mConnection = new MediaScannerConnection(VCardService.this, this);
+            mPath = path;
+        }
+
+        public void start() {
+            mConnection.connect();
+        }
+
+        @Override
+        public void onMediaScannerConnected() {
+            if (DEBUG) { Log.d(LOG_TAG, "Connected to MediaScanner. Start scanning."); }
+            mConnection.scanFile(mPath, null);
+        }
+
+        @Override
+        public void onScanCompleted(String path, Uri uri) {
+            if (DEBUG) { Log.d(LOG_TAG, "scan completed: " + path); }
+            mConnection.disconnect();
+            removeConnectionClient(this);
+        }
+    }
+
+    // Should be single thread, as we don't want to simultaneously handle import and export
+    // requests.
+    private final ExecutorService mExecutorService = Executors.newSingleThreadExecutor();
+
+    private int mCurrentJobId = 1;
+
+    // Stores all unfinished import/export jobs which will be executed by mExecutorService.
+    // Key is jobId.
+    private final SparseArray<ProcessorBase> mRunningJobMap = new SparseArray<ProcessorBase>();
+    // Stores ScannerConnectionClient objects until they finish scanning requested files.
+    // Uses List class for simplicity. It's not costly as we won't have multiple objects in
+    // almost all cases.
+    private final List<CustomMediaScannerConnectionClient> mRemainingScannerConnections =
+            new ArrayList<CustomMediaScannerConnectionClient>();
+
+    private MyBinder mBinder;
+
+    private String mCallingActivity;
+
+    // File names currently reserved by some export job.
+    private final Set<String> mReservedDestination = new HashSet<String>();
+    /* ** end of vCard exporter params ** */
+
+    public class MyBinder extends Binder {
+        public VCardService getService() {
+            return VCardService.this;
+        }
+    }
+
+   @Override
+    public void onCreate() {
+        super.onCreate();
+        mBinder = new MyBinder();
+        if (DEBUG) Log.d(LOG_TAG, "vCard Service is being created.");
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int id) {
+        if (intent != null && intent.getExtras() != null) {
+            mCallingActivity = intent.getExtras().getString(
+                    VCardCommonArguments.ARG_CALLING_ACTIVITY);
+        } else {
+            mCallingActivity = null;
+        }
+        return START_STICKY;
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return mBinder;
+    }
+
+    @Override
+    public void onDestroy() {
+        if (DEBUG) Log.d(LOG_TAG, "VCardService is being destroyed.");
+        cancelAllRequestsAndShutdown();
+        clearCache();
+        stopForeground(/* removeNotification */ false);
+        super.onDestroy();
+    }
+
+    public synchronized void handleImportRequest(List<ImportRequest> requests,
+            VCardImportExportListener listener) {
+        if (DEBUG) {
+            final ArrayList<String> uris = new ArrayList<String>();
+            final ArrayList<String> displayNames = new ArrayList<String>();
+            for (ImportRequest request : requests) {
+                uris.add(request.uri.toString());
+                displayNames.add(request.displayName);
+            }
+            Log.d(LOG_TAG,
+                    String.format("received multiple import request (uri: %s, displayName: %s)",
+                            uris.toString(), displayNames.toString()));
+        }
+        final int size = requests.size();
+        for (int i = 0; i < size; i++) {
+            ImportRequest request = requests.get(i);
+
+            if (tryExecute(new ImportProcessor(this, listener, request, mCurrentJobId))) {
+                if (listener != null) {
+                    final Notification notification =
+                            listener.onImportProcessed(request, mCurrentJobId, i);
+                    if (notification != null) {
+                        startForeground(mCurrentJobId, notification);
+                    }
+                }
+                mCurrentJobId++;
+            } else {
+                if (listener != null) {
+                    listener.onImportFailed(request);
+                }
+                // A rejection means executor doesn't run any more. Exit.
+                break;
+            }
+        }
+    }
+
+    public synchronized void handleExportRequest(ExportRequest request,
+            VCardImportExportListener listener) {
+        if (tryExecute(new ExportProcessor(this, request, mCurrentJobId, mCallingActivity))) {
+            final String path = request.destUri.getEncodedPath();
+            if (DEBUG) Log.d(LOG_TAG, "Reserve the path " + path);
+            if (!mReservedDestination.add(path)) {
+                Log.w(LOG_TAG,
+                        String.format("The path %s is already reserved. Reject export request",
+                                path));
+                if (listener != null) {
+                    listener.onExportFailed(request);
+                }
+                return;
+            }
+
+            if (listener != null) {
+                final Notification notification = listener.onExportProcessed(request,mCurrentJobId);
+                if (notification != null) {
+                    startForeground(mCurrentJobId, notification);
+                }
+            }
+            mCurrentJobId++;
+        } else {
+            if (listener != null) {
+                listener.onExportFailed(request);
+            }
+        }
+    }
+
+    /**
+     * Tries to call {@link ExecutorService#execute(Runnable)} toward a given processor.
+     * @return true when successful.
+     */
+    private synchronized boolean tryExecute(ProcessorBase processor) {
+        try {
+            if (DEBUG) {
+                Log.d(LOG_TAG, "Executor service status: shutdown: " + mExecutorService.isShutdown()
+                        + ", terminated: " + mExecutorService.isTerminated());
+            }
+            mExecutorService.execute(processor);
+            mRunningJobMap.put(mCurrentJobId, processor);
+            return true;
+        } catch (RejectedExecutionException e) {
+            Log.w(LOG_TAG, "Failed to excetute a job.", e);
+            return false;
+        }
+    }
+
+    public synchronized void handleCancelRequest(CancelRequest request,
+            VCardImportExportListener listener) {
+        final int jobId = request.jobId;
+        if (DEBUG) Log.d(LOG_TAG, String.format("Received cancel request. (id: %d)", jobId));
+
+        final ProcessorBase processor = mRunningJobMap.get(jobId);
+        mRunningJobMap.remove(jobId);
+
+        if (processor != null) {
+            processor.cancel(true);
+            final int type = processor.getType();
+            if (listener != null) {
+                listener.onCancelRequest(request, type);
+            }
+            if (type == TYPE_EXPORT) {
+                final String path =
+                        ((ExportProcessor)processor).getRequest().destUri.getEncodedPath();
+                Log.i(LOG_TAG,
+                        String.format("Cancel reservation for the path %s if appropriate", path));
+                if (!mReservedDestination.remove(path)) {
+                    Log.w(LOG_TAG, "Not reserved.");
+                }
+            }
+        } else {
+            Log.w(LOG_TAG, String.format("Tried to remove unknown job (id: %d)", jobId));
+        }
+        stopServiceIfAppropriate();
+    }
+
+    /**
+     * Checks job list and call {@link #stopSelf()} when there's no job and no scanner connection
+     * is remaining.
+     * A new job (import/export) cannot be submitted any more after this call.
+     */
+    private synchronized void stopServiceIfAppropriate() {
+        if (mRunningJobMap.size() > 0) {
+            final int size = mRunningJobMap.size();
+
+            // Check if there are processors which aren't finished yet. If we still have ones to
+            // process, we cannot stop the service yet. Also clean up already finished processors
+            // here.
+
+            // Job-ids to be removed. At first all elements in the array are invalid and will
+            // be filled with real job-ids from the array's top. When we find a not-yet-finished
+            // processor, then we start removing those finished jobs. In that case latter half of
+            // this array will be invalid.
+            final int[] toBeRemoved = new int[size];
+            for (int i = 0; i < size; i++) {
+                final int jobId = mRunningJobMap.keyAt(i);
+                final ProcessorBase processor = mRunningJobMap.valueAt(i);
+                if (!processor.isDone()) {
+                    Log.i(LOG_TAG, String.format("Found unfinished job (id: %d)", jobId));
+
+                    // Remove processors which are already "done", all of which should be before
+                    // processors which aren't done yet.
+                    for (int j = 0; j < i; j++) {
+                        mRunningJobMap.remove(toBeRemoved[j]);
+                    }
+                    return;
+                }
+
+                // Remember the finished processor.
+                toBeRemoved[i] = jobId;
+            }
+
+            // We're sure we can remove all. Instead of removing one by one, just call clear().
+            mRunningJobMap.clear();
+        }
+
+        if (!mRemainingScannerConnections.isEmpty()) {
+            Log.i(LOG_TAG, "MediaScanner update is in progress.");
+            return;
+        }
+
+        Log.i(LOG_TAG, "No unfinished job. Stop this service.");
+        mExecutorService.shutdown();
+        stopSelf();
+    }
+
+    /* package */ synchronized void updateMediaScanner(String path) {
+        if (DEBUG) {
+            Log.d(LOG_TAG, "MediaScanner is being updated: " + path);
+        }
+
+        if (mExecutorService.isShutdown()) {
+            Log.w(LOG_TAG, "MediaScanner update is requested after executor's being shut down. " +
+                    "Ignoring the update request");
+            return;
+        }
+        final CustomMediaScannerConnectionClient client =
+                new CustomMediaScannerConnectionClient(path);
+        mRemainingScannerConnections.add(client);
+        client.start();
+    }
+
+    private synchronized void removeConnectionClient(
+            CustomMediaScannerConnectionClient client) {
+        if (DEBUG) {
+            Log.d(LOG_TAG, "Removing custom MediaScannerConnectionClient.");
+        }
+        mRemainingScannerConnections.remove(client);
+        stopServiceIfAppropriate();
+    }
+
+    /* package */ synchronized void handleFinishImportNotification(
+            int jobId, boolean successful) {
+        if (DEBUG) {
+            Log.d(LOG_TAG, String.format("Received vCard import finish notification (id: %d). "
+                    + "Result: %b", jobId, (successful ? "success" : "failure")));
+        }
+        mRunningJobMap.remove(jobId);
+        stopServiceIfAppropriate();
+    }
+
+    /* package */ synchronized void handleFinishExportNotification(
+            int jobId, boolean successful) {
+        if (DEBUG) {
+            Log.d(LOG_TAG, String.format("Received vCard export finish notification (id: %d). "
+                    + "Result: %b", jobId, (successful ? "success" : "failure")));
+        }
+        final ProcessorBase job = mRunningJobMap.get(jobId);
+        mRunningJobMap.remove(jobId);
+        if (job == null) {
+            Log.w(LOG_TAG, String.format("Tried to remove unknown job (id: %d)", jobId));
+        } else if (!(job instanceof ExportProcessor)) {
+            Log.w(LOG_TAG,
+                    String.format("Removed job (id: %s) isn't ExportProcessor", jobId));
+        } else {
+            final String path = ((ExportProcessor)job).getRequest().destUri.getEncodedPath();
+            if (DEBUG) Log.d(LOG_TAG, "Remove reserved path " + path);
+            mReservedDestination.remove(path);
+        }
+
+        stopServiceIfAppropriate();
+    }
+
+    /**
+     * Cancels all the import/export requests and calls {@link ExecutorService#shutdown()}, which
+     * means this Service becomes no longer ready for import/export requests.
+     *
+     * Mainly called from onDestroy().
+     */
+    private synchronized void cancelAllRequestsAndShutdown() {
+        for (int i = 0; i < mRunningJobMap.size(); i++) {
+            mRunningJobMap.valueAt(i).cancel(true);
+        }
+        mRunningJobMap.clear();
+        mExecutorService.shutdown();
+    }
+
+    /**
+     * Removes import caches stored locally.
+     */
+    private void clearCache() {
+        for (final String fileName : fileList()) {
+            if (fileName.startsWith(CACHE_FILE_PREFIX)) {
+                // We don't want to keep all the caches so we remove cache files old enough.
+                Log.i(LOG_TAG, "Remove a temporary file: " + fileName);
+                deleteFile(fileName);
+            }
+        }
+    }
+}
diff --git a/src/com/android/contacts/widget/ActivityTouchLinearLayout.java b/src/com/android/contacts/widget/ActivityTouchLinearLayout.java
new file mode 100644
index 0000000..bcedb72
--- /dev/null
+++ b/src/com/android/contacts/widget/ActivityTouchLinearLayout.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2014 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.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.widget.LinearLayout;
+
+import com.android.contacts.interactions.TouchPointManager;
+
+/**
+ * Linear layout for an activity that listens to all touch events on the screen and saves the touch
+ * point.
+ * Typically touch events are handled by child views--this class intercepts those touch events
+ * before passing them on to the child.
+ */
+public class ActivityTouchLinearLayout extends LinearLayout {
+    public ActivityTouchLinearLayout(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent (MotionEvent ev) {
+        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+            TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY());
+        }
+        return false;
+    }
+}
diff --git a/src/com/android/contacts/widget/CompositeListAdapter.java b/src/com/android/contacts/widget/CompositeListAdapter.java
index 4c72ee8..44ff291 100644
--- a/src/com/android/contacts/widget/CompositeListAdapter.java
+++ b/src/com/android/contacts/widget/CompositeListAdapter.java
@@ -21,18 +21,13 @@
 import android.widget.BaseAdapter;
 import android.widget.ListAdapter;
 
-import com.android.contacts.common.testing.NeededForTesting;
 import com.google.common.annotations.VisibleForTesting;
 
 /**
  * A general purpose adapter that is composed of multiple sub-adapters. It just
  * appends them in the order they are added. It listens to changes from all
  * sub-adapters and propagates them to its own listeners.
- *
- * This class not used for now -- but let's keep running the test in case we want to revive it...
- * (So NeededForTesting)
  */
-@NeededForTesting
 public class CompositeListAdapter extends BaseAdapter {
 
     private static final int INITIAL_CAPACITY = 2;
diff --git a/src/com/android/contacts/widget/FloatingActionButtonController.java b/src/com/android/contacts/widget/FloatingActionButtonController.java
new file mode 100644
index 0000000..f649808
--- /dev/null
+++ b/src/com/android/contacts/widget/FloatingActionButtonController.java
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2014 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.widget;
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.view.View;
+import android.view.animation.AnimationUtils;
+import android.view.animation.Interpolator;
+import android.widget.ImageButton;
+
+import com.android.contacts.R;
+import com.android.contacts.util.ViewUtil;
+import com.android.phone.common.animation.AnimUtils;
+
+/**
+ * Controls the movement and appearance of the FAB (Floating Action Button).
+ */
+public class FloatingActionButtonController {
+    public static final int ALIGN_MIDDLE = 0;
+    public static final int ALIGN_QUARTER_END = 1;
+    public static final int ALIGN_END = 2;
+
+    private static final int FAB_SCALE_IN_DURATION = 186;
+    private static final int FAB_SCALE_IN_FADE_IN_DELAY = 70;
+    private static final int FAB_ICON_FADE_OUT_DURATION = 46;
+
+    private final int mAnimationDuration;
+    private final int mFloatingActionButtonWidth;
+    private final int mFloatingActionButtonMarginRight;
+    private final View mFloatingActionButtonContainer;
+    private final ImageButton mFloatingActionButton;
+    private final Interpolator mFabInterpolator;
+    private int mScreenWidth;
+
+    public FloatingActionButtonController(Activity activity, View container, ImageButton button) {
+        Resources resources = activity.getResources();
+        mFabInterpolator = AnimationUtils.loadInterpolator(activity,
+                android.R.interpolator.fast_out_slow_in);
+        mFloatingActionButtonWidth = resources.getDimensionPixelSize(
+                R.dimen.floating_action_button_width);
+        mFloatingActionButtonMarginRight = resources.getDimensionPixelOffset(
+                R.dimen.floating_action_button_margin_right);
+        mAnimationDuration = resources.getInteger(
+                R.integer.floating_action_button_animation_duration);
+        mFloatingActionButtonContainer = container;
+        mFloatingActionButton = button;
+        ViewUtil.setupFloatingActionButton(mFloatingActionButtonContainer, resources);
+    }
+
+    /**
+     * Passes the screen width into the class. Necessary for translation calculations.
+     * Should be called as soon as parent View width is available.
+     *
+     * @param screenWidth The width of the screen in pixels.
+     */
+    public void setScreenWidth(int screenWidth) {
+        mScreenWidth = screenWidth;
+    }
+
+    /**
+     * Sets FAB as View.VISIBLE or View.GONE.
+     *
+     * @param visible Whether or not to make the container visible.
+     */
+    public void setVisible(boolean visible) {
+        mFloatingActionButtonContainer.setVisibility(visible ? View.VISIBLE : View.GONE);
+    }
+
+    public boolean isVisible() {
+        return mFloatingActionButtonContainer.getVisibility() == View.VISIBLE;
+    }
+
+    public void changeIcon(Drawable icon, String description) {
+        if (mFloatingActionButton.getDrawable() != icon
+                || !mFloatingActionButton.getContentDescription().equals(description)) {
+            mFloatingActionButton.setImageDrawable(icon);
+            mFloatingActionButton.setContentDescription(description);
+        }
+    }
+
+    /**
+     * Updates the FAB location (middle to right position) as the PageView scrolls.
+     *
+     * @param positionOffset A fraction used to calculate position of the FAB during page scroll.
+     */
+    public void onPageScrolled(float positionOffset) {
+        // As the page is scrolling, if we're on the first tab, update the FAB position so it
+        // moves along with it.
+        mFloatingActionButtonContainer.setTranslationX(
+                (int) (positionOffset * getTranslationXForAlignment(ALIGN_END)));
+    }
+
+    /**
+     * Aligns the FAB to the described location
+     *
+     * @param align One of ALIGN_MIDDLE, ALIGN_QUARTER_RIGHT, or ALIGN_RIGHT.
+     * @param animate Whether or not to animate the transition.
+     */
+    public void align(int align, boolean animate) {
+        align(align, 0 /*offsetX */, 0 /* offsetY */, animate);
+    }
+
+    /**
+     * Aligns the FAB to the described location plus specified additional offsets.
+     *
+     * @param align One of ALIGN_MIDDLE, ALIGN_QUARTER_RIGHT, or ALIGN_RIGHT.
+     * @param offsetX Additional offsetX to translate by.
+     * @param offsetY Additional offsetY to translate by.
+     * @param animate Whether or not to animate the transition.
+     */
+    public void align(int align, int offsetX, int offsetY, boolean animate) {
+        if (mScreenWidth == 0) {
+            return;
+        }
+
+        int translationX = getTranslationXForAlignment(align);
+
+        // Skip animation if container is not shown; animation causes container to show again.
+        if (animate && mFloatingActionButtonContainer.isShown()) {
+            mFloatingActionButtonContainer.animate()
+                    .translationX(translationX + offsetX)
+                    .translationY(offsetY)
+                    .setInterpolator(mFabInterpolator)
+                    .setDuration(mAnimationDuration)
+                    .start();
+        } else {
+            mFloatingActionButtonContainer.setTranslationX(translationX + offsetX);
+            mFloatingActionButtonContainer.setTranslationY(offsetY);
+        }
+    }
+
+    /**
+     * Resizes width and height of the floating action bar container.
+     * @param dimension The new dimensions for the width and height.
+     * @param animate Whether to animate this change.
+     */
+    public void resize(int dimension, boolean animate) {
+        if (animate) {
+            AnimUtils.changeDimensions(mFloatingActionButtonContainer, dimension, dimension);
+        } else {
+            mFloatingActionButtonContainer.getLayoutParams().width = dimension;
+            mFloatingActionButtonContainer.getLayoutParams().height = dimension;
+            mFloatingActionButtonContainer.requestLayout();
+        }
+    }
+
+    /**
+     * Scales the floating action button from no height and width to its actual dimensions. This is
+     * an animation for showing the floating action button.
+     * @param delayMs The delay for the effect, in milliseconds.
+     */
+    public void scaleIn(int delayMs) {
+        setVisible(true);
+        AnimUtils.scaleIn(mFloatingActionButtonContainer, FAB_SCALE_IN_DURATION, delayMs);
+        AnimUtils.fadeIn(mFloatingActionButton, FAB_SCALE_IN_DURATION,
+                delayMs + FAB_SCALE_IN_FADE_IN_DELAY, null);
+    }
+
+    /**
+     * Immediately remove the affects of the last call to {@link #scaleOut}.
+     */
+    public void resetIn() {
+        mFloatingActionButton.setAlpha(1f);
+        mFloatingActionButton.setVisibility(View.VISIBLE);
+        mFloatingActionButtonContainer.setScaleX(1);
+        mFloatingActionButtonContainer.setScaleY(1);
+    }
+
+    /**
+     * Scales the floating action button from its actual dimensions to no height and width. This is
+     * an animation for hiding the floating action button.
+     */
+    public void scaleOut() {
+        AnimUtils.scaleOut(mFloatingActionButtonContainer, mAnimationDuration);
+        // Fade out the icon faster than the scale out animation, so that the icon scaling is less
+        // obvious. We don't want it to scale, but the resizing the container is not as performant.
+        AnimUtils.fadeOut(mFloatingActionButton, FAB_ICON_FADE_OUT_DURATION, null);
+    }
+
+    /**
+     * Calculates the X offset of the FAB to the given alignment, adjusted for whether or not the
+     * view is in RTL mode.
+     *
+     * @param align One of ALIGN_MIDDLE, ALIGN_QUARTER_RIGHT, or ALIGN_RIGHT.
+     * @return The translationX for the given alignment.
+     */
+    public int getTranslationXForAlignment(int align) {
+        int result = 0;
+        switch (align) {
+            case ALIGN_MIDDLE:
+                // Moves the FAB to exactly center screen.
+                return 0;
+            case ALIGN_QUARTER_END:
+                // Moves the FAB a quarter of the screen width.
+                result = mScreenWidth / 4;
+                break;
+            case ALIGN_END:
+                // Moves the FAB half the screen width. Same as aligning right with a marginRight.
+                result = mScreenWidth / 2
+                        - mFloatingActionButtonWidth / 2
+                        - mFloatingActionButtonMarginRight;
+                break;
+        }
+        if (isLayoutRtl()) {
+            result *= -1;
+        }
+        return result;
+    }
+
+    private boolean isLayoutRtl() {
+        return mFloatingActionButtonContainer.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+    }
+}
diff --git a/src/com/android/contacts/widget/LayoutSuppressingImageView.java b/src/com/android/contacts/widget/LayoutSuppressingImageView.java
new file mode 100644
index 0000000..d80aeea
--- /dev/null
+++ b/src/com/android/contacts/widget/LayoutSuppressingImageView.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2012 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.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.ImageView;
+
+/**
+ * Custom {@link ImageView} that improves layouting performance.
+ *
+ * This improves the performance by not passing requestLayout() to its parent, taking advantage
+ * of knowing that image size won't change once set.
+ */
+public class LayoutSuppressingImageView extends ImageView {
+
+    public LayoutSuppressingImageView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public void requestLayout() {
+        forceLayout();
+    }
+}
diff --git a/src/com/android/contacts/widget/LayoutSuppressingQuickContactBadge.java b/src/com/android/contacts/widget/LayoutSuppressingQuickContactBadge.java
new file mode 100644
index 0000000..3413e53
--- /dev/null
+++ b/src/com/android/contacts/widget/LayoutSuppressingQuickContactBadge.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2012 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.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.QuickContactBadge;
+
+/**
+ * Custom {@link QuickContactBadge} that improves layouting performance.
+ *
+ * This improves the performance by not passing requestLayout() to its parent, taking advantage
+ * of knowing that image size won't change once set.
+ */
+public class LayoutSuppressingQuickContactBadge extends QuickContactBadge {
+
+    public LayoutSuppressingQuickContactBadge(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public void requestLayout() {
+        forceLayout();
+    }
+}
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java
index b1deb90..263617b 100644
--- a/src/com/android/contacts/widget/MultiShrinkScroller.java
+++ b/src/com/android/contacts/widget/MultiShrinkScroller.java
@@ -1,12 +1,5 @@
 package com.android.contacts.widget;
 
-import com.android.contacts.R;
-import com.android.contacts.common.compat.CompatUtils;
-import com.android.contacts.compat.EdgeEffectCompat;
-import com.android.contacts.quickcontact.ExpandingEntryCardView;
-import com.android.contacts.test.NeededForReflection;
-import com.android.contacts.util.SchedulingUtils;
-
 import android.animation.Animator;
 import android.animation.Animator.AnimatorListener;
 import android.animation.AnimatorListenerAdapter;
@@ -31,18 +24,25 @@
 import android.view.MotionEvent;
 import android.view.VelocityTracker;
 import android.view.View;
-import android.view.ViewGroup;
 import android.view.ViewConfiguration;
+import android.view.ViewGroup;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
 import android.widget.EdgeEffect;
 import android.widget.FrameLayout;
 import android.widget.LinearLayout;
-import android.widget.Scroller;
 import android.widget.ScrollView;
+import android.widget.Scroller;
 import android.widget.TextView;
 import android.widget.Toolbar;
 
+import com.android.contacts.R;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.compat.EdgeEffectCompat;
+import com.android.contacts.quickcontact.ExpandingEntryCardView;
+import com.android.contacts.test.NeededForReflection;
+import com.android.contacts.util.SchedulingUtils;
+
 /**
  * A custom {@link ViewGroup} that operates similarly to a {@link ScrollView}, except with multiple
  * subviews. These subviews are scrolled or shrinked one at a time, until each reaches their
@@ -110,7 +110,7 @@
     private View mPhotoViewContainer;
     private View mTransparentView;
     private MultiShrinkScrollerListener mListener;
-    private TextView mLargeTextView;
+    private TextView mFullNameView;
     private TextView mPhoneticNameView;
     private View mTitleAndPhoneticNameView;
     private View mPhotoTouchInterceptOverlay;
@@ -296,7 +296,7 @@
         mToolbar = findViewById(R.id.toolbar_parent);
         mPhotoViewContainer = findViewById(R.id.toolbar_parent);
         mTransparentView = findViewById(R.id.transparent_view);
-        mLargeTextView = (TextView) findViewById(R.id.large_title);
+        mFullNameView = (TextView) findViewById(R.id.large_title);
         mPhoneticNameView = (TextView) findViewById(R.id.phonetic_name);
         mTitleAndPhoneticNameView = findViewById(R.id.title_and_phonetic_name);
         mInvisiblePlaceholderTextView = (TextView) findViewById(R.id.placeholder_textview);
@@ -351,7 +351,7 @@
                 setHeaderHeight(getMaximumScrollableHeaderHeight());
                 if (shouldUpdateNameViewHeight) {
                     mMaximumHeaderTextSize = mTitleAndPhoneticNameView.getHeight();
-                    mMaximumFullNameViewHeight = mLargeTextView.getHeight();
+                    mMaximumFullNameViewHeight = mFullNameView.getHeight();
                     // We cannot rely on mPhoneticNameView.getHeight() since it could be 0
                     final int phoneticNameSize = getResources().getDimensionPixelSize(
                             R.dimen.quickcontact_maximum_phonetic_name_size);
@@ -384,9 +384,9 @@
                     largeTextLayoutParams.gravity = Gravity.BOTTOM | Gravity.START;
                     mTitleAndPhoneticNameView.setLayoutParams(largeTextLayoutParams);
                 } else {
-                    // Set the width of mLargeTextView as if it was nested inside
+                    // Set the width of mFullNameView as if it was nested inside
                     // mPhotoViewContainer.
-                    mLargeTextView.setWidth(mPhotoViewContainer.getWidth()
+                    mFullNameView.setWidth(mPhotoViewContainer.getWidth()
                             - 2 * mMaximumTitleMargin);
                     mPhoneticNameView.setWidth(mPhotoViewContainer.getWidth()
                             - 2 * mMaximumTitleMargin);
@@ -415,10 +415,10 @@
     }
 
     public void setTitle(String title, boolean isPhoneNumber) {
-        mLargeTextView.setText(title);
-        // We have a phone number as "mLargeTextView" so make it always LTR.
+        mFullNameView.setText(title);
+        // We have a phone number as "mFullNameView" so make it always LTR.
         if (isPhoneNumber) {
-            mLargeTextView.setTextDirection(View.TEXT_DIRECTION_LTR);
+            mFullNameView.setTextDirection(View.TEXT_DIRECTION_LTR);
         }
         mPhotoTouchInterceptOverlay.setContentDescription(title);
     }
@@ -433,9 +433,11 @@
         // Every time the phonetic name is changed, set mPhoneticNameView as visible,
         // in case it just changed from Visibility=GONE.
         mPhoneticNameView.setVisibility(View.VISIBLE);
+        final int maximumHeaderTextSize =
+                mMaximumFullNameViewHeight * mFullNameView.getLineCount()
+                + mMaximumPhoneticNameViewHeight * mPhoneticNameView.getLineCount();
         // TODO try not using initialize() to refresh phonetic name view: b/27410518
-        initialize(mListener, mIsOpenContactSquare, /* maximumHeaderTextSize */
-                (mMaximumFullNameViewHeight + mMaximumPhoneticNameViewHeight),
+        initialize(mListener, mIsOpenContactSquare, maximumHeaderTextSize,
                 /* shouldUpdateNameViewHeight */ false);
     }
 
@@ -445,10 +447,10 @@
             return;
         }
         mPhoneticNameView.setVisibility(View.GONE);
-        // Initialize to make Visibility work.
+        final int maximumHeaderTextSize =
+                mMaximumFullNameViewHeight * mFullNameView.getLineCount();
         // TODO try not using initialize() to refresh phonetic name view: b/27410518
-        initialize(mListener, mIsOpenContactSquare,
-                /* maximumHeaderTextSize */ mMaximumFullNameViewHeight,
+        initialize(mListener, mIsOpenContactSquare, maximumHeaderTextSize,
                 /* shouldUpdateNameViewHeight */ false);
     }
 
@@ -1141,6 +1143,10 @@
         // Let's keep an eye on how long this method takes to complete.
         Trace.beginSection("updatePhotoTintAndDropShadow");
 
+        // Tell the photo view what tint we are trying to achieve. Depending on the type of
+        // drawable used, the photo view may or may not use this tint.
+        mPhotoView.setTint(mHeaderTintColor);
+
         if (mIsTwoPanel && !mPhotoView.isBasedOffLetterTile()) {
             // When in two panel mode, UX considers photo tinting unnecessary for non letter
             // tile photos.
@@ -1206,9 +1212,6 @@
         // TODO: remove re-allocation of ColorMatrixColorFilter objects (b/17627000)
         mPhotoView.setColorFilter(new ColorMatrixColorFilter(mColorMatrix));
 
-        // Tell the photo view what tint we are trying to achieve. Depending on the type of
-        // drawable used, the photo view may or may not use this tint.
-        mPhotoView.setTint(mHeaderTintColor);
         mTitleGradientDrawable.setAlpha(gradientAlpha);
         mActionBarGradientDrawable.setAlpha(gradientAlpha);
 
diff --git a/src/com/android/contacts/widget/ProportionalLayout.java b/src/com/android/contacts/widget/ProportionalLayout.java
new file mode 100644
index 0000000..79c58ec
--- /dev/null
+++ b/src/com/android/contacts/widget/ProportionalLayout.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2012 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.widget;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.contacts.R;
+
+/**
+ * Layout that calculates its height based on its width, or vice versa (depending on the set
+ * {@link #setDirection(Direction)}. The factor is specified in {@link #setRatio(float)}.
+ * <p>For {@link Direction#heightToWidth}: width := height * factor</p>
+ * <p>For {@link Direction#widthToHeight}: height := width * factor</p>
+ * <p>Only one child is allowed; if more are required, another ViewGroup can be used as the direct
+ * child of this layout.</p>
+ */
+public class ProportionalLayout extends ViewGroup {
+    /** Specifies whether the width should be calculated based on the height or vice-versa  */
+    public enum Direction {
+        widthToHeight("widthToHeight"),
+        heightToWidth("heightToWidth");
+
+        public final String XmlName;
+
+        private Direction(String xmlName) {
+            XmlName = xmlName;
+        }
+
+        /**
+         * Parses the given direction string and returns the Direction instance. This
+         * should be used when inflating from xml
+         */
+        public static Direction parse(String value) {
+            if (widthToHeight.XmlName.equals(value)) {
+                return Direction.widthToHeight;
+            } else if (heightToWidth.XmlName.equals(value)) {
+                return Direction.heightToWidth;
+            } else {
+                throw new IllegalStateException("direction must be either " +
+                        widthToHeight.XmlName + " or " + heightToWidth.XmlName);
+            }
+        }
+    }
+
+    private Direction mDirection;
+    private float mRatio;
+
+    public ProportionalLayout(Context context) {
+        super(context);
+    }
+
+    public ProportionalLayout(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        initFromAttributes(context, attrs);
+    }
+
+    public ProportionalLayout(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        initFromAttributes(context, attrs);
+    }
+
+    private void initFromAttributes(Context context, AttributeSet attrs) {
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ProportionalLayout);
+
+        mDirection = Direction.parse(a.getString(R.styleable.ProportionalLayout_direction));
+        mRatio = a.getFloat(R.styleable.ProportionalLayout_ratio, 1.0f);
+
+        a.recycle();
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        if (getChildCount() != 1) {
+            throw new IllegalStateException("ProportionalLayout requires exactly one child");
+        }
+
+        final View child = getChildAt(0);
+
+        // Do a first pass to get the optimal size
+        measureChild(child, widthMeasureSpec, heightMeasureSpec);
+        final int childWidth = child.getMeasuredWidth();
+        final int childHeight = child.getMeasuredHeight();
+
+        final int width;
+        final int height;
+        if (mDirection == Direction.heightToWidth) {
+            width = Math.round(childHeight * mRatio);
+            height = childHeight;
+        } else {
+            width = childWidth;
+            height = Math.round(childWidth * mRatio);
+        }
+
+        // Do a second pass so that all children are informed of the new size
+        measureChild(child,
+                MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
+                MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
+
+        setMeasuredDimension(
+                resolveSize(width, widthMeasureSpec), resolveSize(height, heightMeasureSpec));
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        if (getChildCount() != 1) {
+            throw new IllegalStateException("ProportionalLayout requires exactly one child");
+        }
+
+        final View child = getChildAt(0);
+        child.layout(0, 0, right-left, bottom-top);
+    }
+
+    public Direction getDirection() {
+        return mDirection;
+    }
+
+    public void setDirection(Direction direction) {
+        mDirection = direction;
+    }
+
+    public float getRatio() {
+        return mRatio;
+    }
+
+    public void setRatio(float ratio) {
+        mRatio = ratio;
+    }
+}
diff --git a/src/com/android/contacts/widget/QuickContactImageView.java b/src/com/android/contacts/widget/QuickContactImageView.java
index f85fe16..2943912 100644
--- a/src/com/android/contacts/widget/QuickContactImageView.java
+++ b/src/com/android/contacts/widget/QuickContactImageView.java
@@ -1,7 +1,5 @@
 package com.android.contacts.widget;
 
-import com.android.contacts.common.lettertiles.LetterTileDrawable;
-
 import android.content.Context;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
@@ -9,6 +7,7 @@
 import android.widget.ImageView;
 
 import com.android.contacts.R;
+import com.android.contacts.lettertiles.LetterTileDrawable;
 
 /**
  * An {@link ImageView} designed to display QuickContact's contact photo. When requested to draw
diff --git a/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java b/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java
new file mode 100644
index 0000000..da2b468
--- /dev/null
+++ b/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java
@@ -0,0 +1,280 @@
+/*
+ * Copyright (C) 2014 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.widget;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.ResultReceiver;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListAdapter;
+import android.widget.TextView;
+
+import com.android.contacts.R;
+import com.android.contacts.compat.PhoneAccountCompat;
+import com.android.contacts.compat.PhoneNumberUtilsCompat;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Dialog that allows the user to select a phone accounts for a given action. Optionally provides
+ * the choice to set the phone account as default.
+ */
+public class SelectPhoneAccountDialogFragment extends DialogFragment {
+    private static final String ARG_TITLE_RES_ID = "title_res_id";
+    private static final String ARG_CAN_SET_DEFAULT = "can_set_default";
+    private static final String ARG_ACCOUNT_HANDLES = "account_handles";
+    private static final String ARG_IS_DEFAULT_CHECKED = "is_default_checked";
+    private static final String ARG_LISTENER = "listener";
+
+    private int mTitleResId;
+    private boolean mCanSetDefault;
+    private List<PhoneAccountHandle> mAccountHandles;
+    private boolean mIsSelected;
+    private boolean mIsDefaultChecked;
+    private TelecomManager mTelecomManager;
+    private SelectPhoneAccountListener mListener;
+
+    /**
+     * Create new fragment instance with default title and no option to set as default.
+     *
+     * @param accountHandles The {@code PhoneAccountHandle}s available to select from.
+     * @param listener The listener for the results of the account selection.
+     */
+    public static SelectPhoneAccountDialogFragment newInstance(
+            List<PhoneAccountHandle> accountHandles, SelectPhoneAccountListener listener) {
+        return newInstance(R.string.select_account_dialog_title, false,
+                accountHandles, listener);
+    }
+
+    /**
+     * Create new fragment instance.
+     * This method also allows specifying a custom title and "set default" checkbox.
+     *
+     * @param titleResId The resource ID for the string to use in the title of the dialog.
+     * @param canSetDefault {@code true} if the dialog should include an option to set the selection
+     * as the default. False otherwise.
+     * @param accountHandles The {@code PhoneAccountHandle}s available to select from.
+     * @param listener The listener for the results of the account selection.
+     */
+    public static SelectPhoneAccountDialogFragment newInstance(int titleResId,
+            boolean canSetDefault, List<PhoneAccountHandle> accountHandles,
+            SelectPhoneAccountListener listener) {
+        ArrayList<PhoneAccountHandle> accountHandlesCopy = new ArrayList<PhoneAccountHandle>();
+        if (accountHandles != null) {
+            accountHandlesCopy.addAll(accountHandles);
+        }
+        SelectPhoneAccountDialogFragment fragment = new SelectPhoneAccountDialogFragment();
+        final Bundle args = new Bundle();
+        args.putInt(ARG_TITLE_RES_ID, titleResId);
+        args.putBoolean(ARG_CAN_SET_DEFAULT, canSetDefault);
+        args.putParcelableArrayList(ARG_ACCOUNT_HANDLES, accountHandlesCopy);
+        args.putParcelable(ARG_LISTENER, listener);
+        fragment.setArguments(args);
+        fragment.setListener(listener);
+        return fragment;
+    }
+
+    public SelectPhoneAccountDialogFragment() {
+    }
+
+    public void setListener(SelectPhoneAccountListener listener) {
+        mListener = listener;
+    }
+
+    public static class SelectPhoneAccountListener extends ResultReceiver {
+        static final int RESULT_SELECTED = 1;
+        static final int RESULT_DISMISSED = 2;
+
+        static final String EXTRA_SELECTED_ACCOUNT_HANDLE = "extra_selected_account_handle";
+        static final String EXTRA_SET_DEFAULT = "extra_set_default";
+
+        public SelectPhoneAccountListener() {
+            super(new Handler());
+        }
+
+        @Override
+        protected void onReceiveResult(int resultCode, Bundle resultData) {
+            if (resultCode == RESULT_SELECTED) {
+                onPhoneAccountSelected(
+                        (PhoneAccountHandle) resultData.getParcelable(
+                                EXTRA_SELECTED_ACCOUNT_HANDLE),
+                        resultData.getBoolean(EXTRA_SET_DEFAULT));
+            } else if (resultCode == RESULT_DISMISSED) {
+                onDialogDismissed();
+            }
+        }
+
+        public void onPhoneAccountSelected(PhoneAccountHandle selectedAccountHandle,
+                boolean setDefault) {}
+
+        public void onDialogDismissed() {}
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(ARG_IS_DEFAULT_CHECKED, mIsDefaultChecked);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        mTitleResId = getArguments().getInt(ARG_TITLE_RES_ID);
+        mCanSetDefault = getArguments().getBoolean(ARG_CAN_SET_DEFAULT);
+        mAccountHandles = getArguments().getParcelableArrayList(ARG_ACCOUNT_HANDLES);
+        mListener = getArguments().getParcelable(ARG_LISTENER);
+        if (savedInstanceState != null) {
+            mIsDefaultChecked = savedInstanceState.getBoolean(ARG_IS_DEFAULT_CHECKED);
+        }
+        mIsSelected = false;
+        mTelecomManager =
+                (TelecomManager) getActivity().getSystemService(Context.TELECOM_SERVICE);
+
+        final DialogInterface.OnClickListener selectionListener =
+                new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                mIsSelected = true;
+                PhoneAccountHandle selectedAccountHandle = mAccountHandles.get(which);
+                final Bundle result = new Bundle();
+                result.putParcelable(SelectPhoneAccountListener.EXTRA_SELECTED_ACCOUNT_HANDLE,
+                        selectedAccountHandle);
+                result.putBoolean(SelectPhoneAccountListener.EXTRA_SET_DEFAULT,
+                        mIsDefaultChecked);
+                if (mListener != null) {
+                    mListener.onReceiveResult(SelectPhoneAccountListener.RESULT_SELECTED, result);
+                }
+            }
+        };
+
+        final CompoundButton.OnCheckedChangeListener checkListener =
+                new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton check, boolean isChecked) {
+                mIsDefaultChecked = isChecked;
+            }
+        };
+
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        ListAdapter selectAccountListAdapter = new SelectAccountListAdapter(
+                builder.getContext(),
+                R.layout.select_account_list_item,
+                mAccountHandles);
+
+        AlertDialog dialog = builder.setTitle(mTitleResId)
+                .setAdapter(selectAccountListAdapter, selectionListener)
+                .create();
+
+        if (mCanSetDefault) {
+            // Generate custom checkbox view
+            LinearLayout checkboxLayout = (LinearLayout) getActivity()
+                    .getLayoutInflater()
+                    .inflate(R.layout.default_account_checkbox, null);
+
+            CheckBox cb =
+                    (CheckBox) checkboxLayout.findViewById(R.id.default_account_checkbox_view);
+            cb.setOnCheckedChangeListener(checkListener);
+            cb.setChecked(mIsDefaultChecked);
+
+            dialog.getListView().addFooterView(checkboxLayout);
+        }
+
+        return dialog;
+    }
+
+    private class SelectAccountListAdapter extends ArrayAdapter<PhoneAccountHandle> {
+        private int mResId;
+
+        public SelectAccountListAdapter(
+                Context context, int resource, List<PhoneAccountHandle> accountHandles) {
+            super(context, resource, accountHandles);
+            mResId = resource;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            LayoutInflater inflater = (LayoutInflater)
+                    getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+            View rowView;
+            final ViewHolder holder;
+
+            if (convertView == null) {
+                // Cache views for faster scrolling
+                rowView = inflater.inflate(mResId, null);
+                holder = new ViewHolder();
+                holder.labelTextView = (TextView) rowView.findViewById(R.id.label);
+                holder.numberTextView = (TextView) rowView.findViewById(R.id.number);
+                holder.imageView = (ImageView) rowView.findViewById(R.id.icon);
+                rowView.setTag(holder);
+            }
+            else {
+                rowView = convertView;
+                holder = (ViewHolder) rowView.getTag();
+            }
+
+            PhoneAccountHandle accountHandle = getItem(position);
+            PhoneAccount account = mTelecomManager.getPhoneAccount(accountHandle);
+            if (account == null) {
+                return rowView;
+            }
+            holder.labelTextView.setText(account.getLabel());
+            if (account.getAddress() == null ||
+                    TextUtils.isEmpty(account.getAddress().getSchemeSpecificPart())) {
+                holder.numberTextView.setVisibility(View.GONE);
+            } else {
+                holder.numberTextView.setVisibility(View.VISIBLE);
+                holder.numberTextView.setText(
+                        PhoneNumberUtilsCompat.createTtsSpannable(
+                                account.getAddress().getSchemeSpecificPart()));
+            }
+            holder.imageView.setImageDrawable(PhoneAccountCompat.createIconDrawable(account,
+                    getContext()));
+            return rowView;
+        }
+
+        private class ViewHolder {
+            TextView labelTextView;
+            TextView numberTextView;
+            ImageView imageView;
+        }
+    }
+
+    @Override
+    public void onStop() {
+        if (!mIsSelected && mListener != null) {
+            mListener.onReceiveResult(SelectPhoneAccountListener.RESULT_DISMISSED, null);
+        }
+        super.onStop();
+    }
+}
diff --git a/tests/Android.mk b/tests/Android.mk
index 4fd947c..09c97cd 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -5,13 +5,10 @@
 LOCAL_MODULE_TAGS := tests
 LOCAL_CERTIFICATE := shared
 
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-test
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-src_dirs := src \
-    ../../ContactsCommon/TestCommon/src
-
-# Include all test java files.
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
+res_dirs := res
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
 
 LOCAL_PACKAGE_NAME := ContactsTests
 
@@ -20,4 +17,15 @@
 LOCAL_SDK_VERSION := current
 LOCAL_MIN_SDK_VERSION := 21
 
+LOCAL_STATIC_JAVA_LIBRARIES += \
+    android-support-test \
+    hamcrest-library \
+    mockito-target-minus-junit4 \
+    ub-uiautomator
+
+
+LOCAL_AAPT_FLAGS := \
+    --auto-add-overlay \
+    --extra-packages com.android.contacts.common.tests
+
 include $(BUILD_PACKAGE)
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 65c04bc..e3d9820 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -17,9 +17,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.contacts.tests">
 
-    <uses-sdk
-        android:minSdkVersion="21"
-        android:targetSdkVersion="25" />
+    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
 
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.WRITE_CONTACTS" />
@@ -36,6 +34,7 @@
     <uses-permission android:name="android.permission.READ_SOCIAL_STREAM" />
 
     <application
+        android:icon="@mipmap/ic_contacts_launcher"
         android:label="@string/applicationLabel">
 
         <uses-library android:name="android.test.runner" />
@@ -49,7 +48,13 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".allintents.ResultActivity"/>
+        <activity android:name=".allintents.ResultActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="vnd.android.cursor.item/vnd.contactstest.profile" />
+            </intent-filter>
+        </activity>
 
         <activity android:name=".quickcontact.QuickContactTestsActivity"/>
 
@@ -69,12 +74,23 @@
                 android:name="android.accounts.AccountAuthenticator"
                 android:resource="@xml/test_basic_authenticator" />
         </service>
+        <service android:name=".testauth.TestSyncService$Basic" android:exported="true" >
+            <intent-filter>
+                <action android:name="android.content.SyncAdapter"/>
+            </intent-filter>
+            <meta-data
+                android:name="android.content.SyncAdapter"
+                android:resource="@xml/test_basic_syncadapter" />
+            <meta-data
+                android:name="android.provider.CONTACTS_STRUCTURE"
+                android:resource="@xml/contacts_contactsdatakind" />
+        </service>
 
         <service android:name=".QueryService" />
         <service android:name=".PhoneNumberTestService" />
     </application>
 
-    <instrumentation android:name="android.test.InstrumentationTestRunner"
+    <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
         android:targetPackage="com.android.contacts"
         android:label="Contacts app tests">
     </instrumentation>
@@ -84,4 +100,10 @@
         android:label="Contacts launch performance">
     </instrumentation>
 
+    <instrumentation
+        android:name="com.android.contacts.RunMethodInstrumentation"
+        android:targetPackage="com.android.contacts"
+        android:label="Run Contacts Method">
+    </instrumentation>
+
 </manifest>
diff --git a/tests/res/drawable/ic_contact_picture.png b/tests/res/drawable/ic_contact_picture.png
deleted file mode 100644
index 6876777..0000000
--- a/tests/res/drawable/ic_contact_picture.png
+++ /dev/null
Binary files differ
diff --git a/tests/res/mipmap-hdpi/ic_contacts_launcher.png b/tests/res/mipmap-hdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..0fd1492
--- /dev/null
+++ b/tests/res/mipmap-hdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/tests/res/mipmap-mdpi/ic_contacts_launcher.png b/tests/res/mipmap-mdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..e23930b
--- /dev/null
+++ b/tests/res/mipmap-mdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/tests/res/mipmap-xhdpi/ic_contacts_launcher.png b/tests/res/mipmap-xhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..aff0f31
--- /dev/null
+++ b/tests/res/mipmap-xhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/tests/res/mipmap-xxhdpi/ic_contacts_launcher.png b/tests/res/mipmap-xxhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..9cd2ebe
--- /dev/null
+++ b/tests/res/mipmap-xxhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/tests/res/mipmap-xxxhdpi/ic_contacts_launcher.png b/tests/res/mipmap-xxxhdpi/ic_contacts_launcher.png
new file mode 100644
index 0000000..74c4179
--- /dev/null
+++ b/tests/res/mipmap-xxxhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/tests/res/values/donottranslate_strings.xml b/tests/res/values/donottranslate_strings.xml
index bd30d6e..76cf4e4 100644
--- a/tests/res/values/donottranslate_strings.xml
+++ b/tests/res/values/donottranslate_strings.xml
@@ -19,7 +19,6 @@
 
     <string-array name="allIntents">
         <!-- List modes -->
-        <item>VIEW (content uri without any id)</item>
         <item>ACTION_PICK: contact</item>
         <item>ACTION_PICK: contact (legacy)</item>
         <item>ACTION_PICK: phone</item>
@@ -39,13 +38,15 @@
         <item>ACTION_INSERT_OR_EDIT</item>
         <item>ACTION_INSERT_OR_EDIT_PHONE_NUMBER</item>
         <item>ACTION_INSERT_OR_EDIT_EMAIL_ADDRESS</item>
+        <item>ACTION_INSERT_GROUP</item>
         <item>ACTION_SEARCH (call button)</item>
         <item>ACTION_SEARCH: contact</item>
         <item>ACTION_SEARCH: email</item>
         <item>ACTION_SEARCH: phone</item>
+        <item>ACTION_SEARCH: general</item>
         <item>SEARCH_SUGGESTION_CLICKED: contact</item>
 
-        <!-- Edit Contact -->
+        <!-- Edit -->
         <item>EDIT (content uri with only id)</item>
         <item>EDIT (lookup uri without id)</item>
         <item>EDIT (lookup uri)</item>
@@ -57,16 +58,29 @@
         <item>EDIT (create new contact for account with data)</item>
         <item>EDIT (create new raw contact)</item>
         <item>EDIT (create new legacy)</item>
+        <item>EDIT (group)</item>
 
-        <!-- View Contact -->
+        <!-- View -->
+        <item>VIEW (content uri without any id)</item>
+        <item>VIEW PERSON (content uri without any id)</item>
         <item>VIEW (content uri with only id)</item>
         <item>VIEW (lookup uri without id)</item>
         <item>VIEW (lookup uri)</item>
         <item>VIEW (called for raw contact)</item>
         <item>VIEW (legacy style uri)</item>
+        <item>VIEW (group)</item>
 
         <!-- Various ways to start Contacts -->
         <item>QuickContactTestsActivity</item>
+
+        <!-- Intents accepted by PeopleActivity -->
+        <item>LIST_DEFAULT</item>
+        <item>LIST_CONTACTS</item>
+        <item>LIST_ALL_CONTACTS</item>
+        <item>LIST_CONTACTS_WITH_PHONES</item>
+        <item>LIST_STARRED</item>
+        <item>LIST_FREQUENT</item>
+        <item>LIST_STREQUENT</item>
     </string-array>
 
     <string name="pickContact">Pick contact</string>
@@ -90,5 +104,5 @@
     <string name="attribution_flicker">Flicker</string>
     <string name="attribution_twitter">Twitter</string>
 
-    <string name="authenticator_basic_label">Test adapter</string>
+    <string name="test_string">TEST STRING</string>
 </resources>
diff --git a/tests/res/xml/contacts_contactsdatakind.xml b/tests/res/xml/contacts_contactsdatakind.xml
new file mode 100644
index 0000000..20c85ad
--- /dev/null
+++ b/tests/res/xml/contacts_contactsdatakind.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     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.
+-->
+
+<!--
+    contacts.xml to build a "fallback account type" equivalent with
+    an additional test ContactsDataKind
+-->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    accountType="com.android.contacts.tests.testauth.basic"
+    accountTypeLabel="@string/applicationLabel"
+    accountTypeIcon="@mipmap/ic_contacts_launcher"
+    >
+    <EditSchema
+        >
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            >
+        </DataKind>
+        <DataKind kind="photo" maxOccurs="1" />
+        <DataKind kind="phone" >
+            <Type type="mobile" />
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="fax_work" />
+            <Type type="fax_home" />
+            <Type type="pager" />
+            <Type type="other" />
+            <Type type="custom"/>
+            <Type type="callback" />
+            <Type type="car" />
+            <Type type="company_main" />
+            <Type type="isdn" />
+            <Type type="main" />
+            <Type type="other_fax" />
+            <Type type="radio" />
+            <Type type="telex" />
+            <Type type="tty_tdd" />
+            <Type type="work_mobile"/>
+            <Type type="work_pager" />
+            <Type type="assistant" />
+            <Type type="mms" />
+        </DataKind>
+        <DataKind kind="email" >
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="other" />
+            <Type type="mobile" />
+            <Type type="custom" />
+        </DataKind>
+        <DataKind kind="nickname" maxOccurs="1" />
+        <DataKind kind="im" >
+            <Type type="aim" />
+            <Type type="msn" />
+            <Type type="yahoo" />
+            <Type type="skype" />
+            <Type type="qq" />
+            <Type type="google_talk" />
+            <Type type="icq" />
+            <Type type="jabber" />
+            <Type type="custom" />
+        </DataKind>
+        <DataKind kind="postal" needsStructured="false" >
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="other" />
+            <Type type="custom" />
+        </DataKind>
+        <DataKind kind="organization" maxOccurs="1" />
+        <DataKind kind="website" />
+        <DataKind kind="sip_address" maxOccurs="1" />
+        <DataKind kind="note" maxOccurs="1" />
+        <DataKind kind="group_membership" maxOccurs="1" />
+    </EditSchema>
+
+    <ContactsDataKind
+        android:mimeType="vnd.android.cursor.item/vnd.contactstest.profile"
+        android:icon="@mipmap/ic_contacts_launcher"
+        android:summaryColumn="data2"
+        android:detailColumn="data3" />
+
+</ContactsAccountType>
diff --git a/tests/res/xml/contacts_fallback.xml b/tests/res/xml/contacts_fallback.xml
new file mode 100644
index 0000000..7e731f4
--- /dev/null
+++ b/tests/res/xml/contacts_fallback.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!--
+    contacts.xml to build "fallback account type" equivalent.
+    This is directly used in ExternalAccountTypeTest to test the parser.  There's no sync adapter
+    that actually defined with this definition.
+-->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema
+        >
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            >
+        </DataKind>
+        <DataKind kind="photo" maxOccurs="1" />
+        <DataKind kind="phone" >
+            <Type type="mobile" />
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="fax_work" />
+            <Type type="fax_home" />
+            <Type type="pager" />
+            <Type type="other" />
+            <Type type="custom"/>
+            <Type type="callback" />
+            <Type type="car" />
+            <Type type="company_main" />
+            <Type type="isdn" />
+            <Type type="main" />
+            <Type type="other_fax" />
+            <Type type="radio" />
+            <Type type="telex" />
+            <Type type="tty_tdd" />
+            <Type type="work_mobile"/>
+            <Type type="work_pager" />
+            <Type type="assistant" />
+            <Type type="mms" />
+        </DataKind>
+        <DataKind kind="email" >
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="other" />
+            <Type type="mobile" />
+            <Type type="custom" />
+        </DataKind>
+        <DataKind kind="nickname" maxOccurs="1" />
+        <DataKind kind="im" >
+            <Type type="aim" />
+            <Type type="msn" />
+            <Type type="yahoo" />
+            <Type type="skype" />
+            <Type type="qq" />
+            <Type type="google_talk" />
+            <Type type="icq" />
+            <Type type="jabber" />
+            <Type type="custom" />
+        </DataKind>
+        <DataKind kind="postal" needsStructured="false" >
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="other" />
+            <Type type="custom" />
+        </DataKind>
+        <DataKind kind="organization" maxOccurs="1" />
+        <DataKind kind="website" />
+        <DataKind kind="sip_address" maxOccurs="1" />
+        <DataKind kind="note" maxOccurs="1" />
+        <DataKind kind="group_membership" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/contacts_readonly.xml b/tests/res/xml/contacts_readonly.xml
new file mode 100644
index 0000000..df8d9c0
--- /dev/null
+++ b/tests/res/xml/contacts_readonly.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!--
+    Contacts.xml without EditSchema.
+-->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+        <ContactsDataKind
+                android:icon="@drawable/android"
+                android:mimeType="vnd.android.cursor.item/a.b.c"
+                android:summaryColumn="data1"
+                android:detailColumn="data2"
+                android:detailSocialSummary="true"
+                >
+        </ContactsDataKind>
+        <ContactsDataKind
+                android:icon="@drawable/default_icon"
+                android:mimeType="vnd.android.cursor.item/d.e.f"
+                android:summaryColumn="data3"
+                android:detailColumn="data4"
+                android:detailSocialSummary="false"
+                >
+        </ContactsDataKind>
+        <ContactsDataKind
+                android:icon="@drawable/android"
+                android:mimeType="vnd.android.cursor.item/xyz"
+                android:summaryColumn="data5"
+                android:detailColumn="data6"
+                android:detailSocialSummary="true"
+                >
+        </ContactsDataKind>
+</ContactsAccountType>
diff --git a/tests/res/xml/iconset.xml b/tests/res/xml/iconset.xml
index b9e419d..d1207e7 100644
--- a/tests/res/xml/iconset.xml
+++ b/tests/res/xml/iconset.xml
@@ -1,25 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2012 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
-  -->
+<!-- Copyright (C) 2009 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.
+-->
 
 <icon-set
     xmlns:android="http://schemas.android.com/apk/res/android">
 
     <icon-default android:icon="@drawable/default_icon" />
-    <icon android:mimeType="vnd.android.cursor.item/phone"
+    <icon android:mimeType="vnd.android.cursor.item/phone" 
         android:icon="@drawable/phone_icon" />
 
-</icon-set>
+</icon-set>
\ No newline at end of file
diff --git a/tests/res/xml/missing_contacts_base.xml b/tests/res/xml/missing_contacts_base.xml
new file mode 100644
index 0000000..66917b3
--- /dev/null
+++ b/tests/res/xml/missing_contacts_base.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Base definition, which is valid. -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            >
+        </DataKind>
+        <DataKind kind="photo" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/missing_contacts_name.xml b/tests/res/xml/missing_contacts_name.xml
new file mode 100644
index 0000000..1ac26be
--- /dev/null
+++ b/tests/res/xml/missing_contacts_name.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Missing "name" kind. -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="photo" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/missing_contacts_name_attr2.xml b/tests/res/xml/missing_contacts_name_attr2.xml
new file mode 100644
index 0000000..77f25d2
--- /dev/null
+++ b/tests/res/xml/missing_contacts_name_attr2.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Missing one of the "support*" attributes". -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            />
+        <DataKind kind="photo" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/missing_contacts_name_attr3.xml b/tests/res/xml/missing_contacts_name_attr3.xml
new file mode 100644
index 0000000..d06c4c1
--- /dev/null
+++ b/tests/res/xml/missing_contacts_name_attr3.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Missing one of the "support*" attributes". -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            />
+        <DataKind kind="photo" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/missing_contacts_name_attr4.xml b/tests/res/xml/missing_contacts_name_attr4.xml
new file mode 100644
index 0000000..6d597fe
--- /dev/null
+++ b/tests/res/xml/missing_contacts_name_attr4.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Missing one of the "support*" attributes". -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            />
+        <DataKind kind="photo" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/missing_contacts_name_attr5.xml b/tests/res/xml/missing_contacts_name_attr5.xml
new file mode 100644
index 0000000..cf2d5cc
--- /dev/null
+++ b/tests/res/xml/missing_contacts_name_attr5.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Missing one of the "support*" attributes". -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            />
+        <DataKind kind="photo" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/missing_contacts_name_attr6.xml b/tests/res/xml/missing_contacts_name_attr6.xml
new file mode 100644
index 0000000..cfa589b
--- /dev/null
+++ b/tests/res/xml/missing_contacts_name_attr6.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Missing one of the "support*" attributes". -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticGivenName="true"
+            />
+        <DataKind kind="photo" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/missing_contacts_name_attr7.xml b/tests/res/xml/missing_contacts_name_attr7.xml
new file mode 100644
index 0000000..7b08706
--- /dev/null
+++ b/tests/res/xml/missing_contacts_name_attr7.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Missing one of the "support*" attributes". -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            />
+        <DataKind kind="photo" maxOccurs="1" />
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/missing_contacts_photo.xml b/tests/res/xml/missing_contacts_photo.xml
new file mode 100644
index 0000000..d73529c
--- /dev/null
+++ b/tests/res/xml/missing_contacts_photo.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<!-- XML for must-have checks.  Missing "photo" kind. -->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema>
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            >
+        </DataKind>
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/test_basic_authenticator.xml b/tests/res/xml/test_basic_authenticator.xml
index ecd100a..40b9088 100644
--- a/tests/res/xml/test_basic_authenticator.xml
+++ b/tests/res/xml/test_basic_authenticator.xml
@@ -18,8 +18,8 @@
 -->
 
 <account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
-    android:accountType="com.android.contacts.tests.authtest.basic"
-    android:icon="@drawable/ic_contact_picture"
-    android:smallIcon="@drawable/ic_contact_picture"
-    android:label="@string/authenticator_basic_label"
+    android:accountType="com.android.contacts.tests.testauth.basic"
+    android:icon="@mipmap/ic_contacts_launcher"
+    android:smallIcon="@mipmap/ic_contacts_launcher"
+    android:label="@string/applicationLabel"
 />
diff --git a/tests/res/xml/test_basic_contacts.xml b/tests/res/xml/test_basic_contacts.xml
new file mode 100644
index 0000000..56e6e16
--- /dev/null
+++ b/tests/res/xml/test_basic_contacts.xml
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<ContactsAccountType
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    >
+    <EditSchema
+        >
+        <!--
+            Name:
+            - maxOccurs must be 1
+            - No types.
+
+            - Currently all the supportsXxx attributes must be true, but here's the plan for the
+              future:
+              (There's some hardcoded assumptions in the contact editor, which is one reason
+              for the above restriction)
+
+                - "Family name" and "Given name" must be supported.
+                    - All sync adapters must support structured name. "display name only" is not
+                      supported.
+                      -> Supporting this would require relatively large changes to
+                         the contact editor.
+
+                - Fields are decided from the attributes:
+                    StructuredName.DISPLAY_NAME         if supportsDisplayName == true
+                    StructuredName.PREFIX               if supportsPrefix == true
+                    StructuredName.FAMILY_NAME          (always)
+                    StructuredName.MIDDLE_NAME          if supportsPrefix == true
+                    StructuredName.GIVEN_NAME           (always)
+                    StructuredName.SUFFIX               if supportsSuffix == true
+                    StructuredName.PHONETIC_FAMILY_NAME if supportsPhoneticFamilyName == true
+                    StructuredName.PHONETIC_MIDDLE_NAME if supportsPhoneticMiddleName == true
+                    StructuredName.PHONETIC_GIVEN_NAME  if supportsPhoneticGivenName == true
+
+                - DataKind.PSEUDO_MIME_TYPE_DISPLAY_NAME  is always added.
+                - DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME is added
+                  if any of supportsPhoneticXxx == true
+        -->
+        <!-- Fallback/Google definition.  Supports all. -->
+        <DataKind kind="name"
+            maxOccurs="1"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="true"
+            supportsPhoneticGivenName="true"
+            >
+        </DataKind>
+
+        <!-- Exchange definition.  No display-name, no phonetic-middle.
+        <DataKind kind="name"
+            supportsPrefix="true"
+            supportsMiddleName="true"
+            supportsSuffix="true"
+            supportsPhoneticFamilyName="true"
+            supportsPhoneticMiddleName="false"
+            supportsPhoneticGivenName ="true"
+            >
+        </DataKind>
+        -->
+
+        <!--
+            Photo:
+            - maxOccurs must be 1
+            - No types.
+        -->
+        <DataKind kind="photo" maxOccurs="1" />
+
+        <!--
+            Phone definition.
+            - "is secondary?" is inferred from type.
+        -->
+        <!-- Fallback, Google definition.  -->
+        <DataKind kind="phone" >
+            <!-- Note: Google type doesn't have obsolete ones -->
+            <Type type="mobile" />
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="fax_work" />
+            <Type type="fax_home" />
+            <Type type="pager" />
+            <Type type="other" />
+            <Type type="custom"/>
+            <Type type="callback" />
+            <Type type="car" />
+            <Type type="company_main" />
+            <Type type="isdn" />
+            <Type type="main" />
+            <Type type="other_fax" />
+            <Type type="radio" />
+            <Type type="telex" />
+            <Type type="tty_tdd" />
+            <Type type="work_mobile"/>
+            <Type type="work_pager" />
+            <Type type="assistant" />
+            <Type type="mms" />
+        </DataKind>
+
+        <!-- Exchange definition.
+        <DataKind kind="phone" >
+            <Type type="home" maxOccurs="2" />
+            <Type type="mobile" maxOccurs="1" />
+            <Type type="work" maxOccurs="2" />
+            <Type type="fax_work" maxOccurs="1" />
+            <Type type="fax_home" maxOccurs="1" />
+            <Type type="pager" maxOccurs="1" />
+            <Type type="car" maxOccurs="1" />
+            <Type type="company_main" maxOccurs="1" />
+            <Type type="mms" maxOccurs="1" />
+            <Type type="radio" maxOccurs="1" />
+            <Type type="assistant" maxOccurs="1" />
+        </DataKind>
+        -->
+
+        <!--
+            Email
+        -->
+        <!-- Fallback/Google definition.  -->
+        <DataKind kind="email" >
+            <!-- Note: Google type doesn't have obsolete ones -->
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="other" />
+            <Type type="mobile" />
+            <Type type="custom" />
+        </DataKind>
+
+        <!--
+            Exchange definition.
+            - Same definition as "fallback" except for maxOccurs=3
+        <DataKind kind="email" maxOccurs="3" >
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="other" />
+            <Type type="mobile" />
+            <Type type="custom" />
+        </DataKind>
+        -->
+
+        <!--
+            Nickname
+            - maxOccurs must be 1
+            - No types.
+        -->
+        <DataKind kind="nickname" maxOccurs="1" />
+
+        <!--
+            Im:
+             - The TYPE column always stores Im.TYPE_OTHER (defaultValues is always set)
+             - The user-selected type is stored in Im.PROTOCOL
+        -->
+        <!-- Fallback, Google definition.  -->
+        <DataKind kind="im" >
+            <Type type="aim" />
+            <Type type="msn" />
+            <Type type="yahoo" />
+            <Type type="skype" />
+            <Type type="qq" />
+            <Type type="google_talk" />
+            <Type type="icq" />
+            <Type type="jabber" />
+            <Type type="custom" />
+        </DataKind>
+
+        <!-- Exchange definition.
+        <DataKind kind="im" maxOccurs="3" >
+            <Type type="aim" />
+            <Type type="msn" />
+            <Type type="yahoo" />
+            <Type type="skype" />
+            <Type type="qq" />
+            <Type type="google_talk" />
+            <Type type="icq" />
+            <Type type="jabber" />
+            <Type type="custom" />
+        </DataKind>
+        -->
+
+        <!--
+            Postal address.
+        -->
+        <!-- Fallback/Google definition.  Not structured. -->
+        <DataKind kind="postal" needsStructured="false" >
+            <Type type="home" />
+            <Type type="work" />
+            <Type type="other" />
+            <Type type="custom" />
+        </DataKind>
+
+        <!-- Exchange definition.  Structured.
+        <DataKind kind="postal" needsStructured="true" >
+            <Type type="work" />
+            <Type type="home" />
+            <Type type="other" />
+        </DataKind>
+        -->
+
+        <!--
+            Organization:
+            - Fields are fixed: COMPANY, TITLE
+            - maxOccurs must be 1
+            - No types.
+        -->
+        <DataKind kind="organization" maxOccurs="1" />
+
+        <!--
+            Website:
+            - No types.
+        -->
+        <DataKind kind="website" />
+
+        <!--
+            Below kinds have nothing configurable.
+            - No types are supported.
+            - maxOccurs must be 1
+        -->
+        <DataKind kind="sip_address" maxOccurs="1" />
+        <DataKind kind="note" maxOccurs="1" />
+
+        <!--
+            Google/Exchange supports it, but fallback doesn't.
+        <DataKind kind="group_membership" maxOccurs="1" />
+        -->
+
+        <!--
+            Event
+        -->
+        <DataKind kind="event" dateWithTime="false">
+            <Type type="birthday" maxOccurs="1" yearOptional="true" />
+            <Type type="anniversary" />
+            <Type type="other" />
+            <Type type="custom" />
+        </DataKind>
+
+        <!--
+            Exchange definition.  dateWithTime is needed only for Exchange.
+        <DataKind kind="event" dateWithTime="true">
+            <Type type="birthday" maxOccurs="1" />
+        </DataKind>
+        -->
+
+        <!--
+            Relationship
+        -->
+        <DataKind kind="relationship" >
+            <Type type="assistant" />
+            <Type type="brother" />
+            <Type type="child" />
+            <Type type="domestic_partner" />
+            <Type type="father" />
+            <Type type="friend" />
+            <Type type="manager" />
+            <Type type="mother" />
+            <Type type="parent" />
+            <Type type="partner" />
+            <Type type="referred_by" />
+            <Type type="relative" />
+            <Type type="sister" />
+            <Type type="spouse" />
+            <Type type="custom" />
+        </DataKind>
+    </EditSchema>
+</ContactsAccountType>
diff --git a/tests/res/xml/test_basic_syncadapter.xml b/tests/res/xml/test_basic_syncadapter.xml
new file mode 100644
index 0000000..b897185
--- /dev/null
+++ b/tests/res/xml/test_basic_syncadapter.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2011, 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.
+ */
+-->
+
+<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
+    android:contentAuthority="com.android.contacts"
+    android:accountType="com.android.contacts.tests.testauth.basic"
+    android:supportsUploading="true"
+    android:userVisible="true"
+/>
diff --git a/tests/src/com/android/contacts/ContactsLaunchPerformance.java b/tests/src/com/android/contacts/ContactsLaunchPerformance.java
index 894ae2c..3aaf483 100644
--- a/tests/src/com/android/contacts/ContactsLaunchPerformance.java
+++ b/tests/src/com/android/contacts/ContactsLaunchPerformance.java
@@ -21,7 +21,7 @@
 import android.content.Intent;
 import android.os.Bundle;
 
-import com.android.contacts.common.test.LaunchPerformanceBase;
+import com.android.contacts.test.LaunchPerformanceBase;
 
 /**
  * Instrumentation class for Address Book launch performance testing.
diff --git a/tests/src/com/android/contacts/ContactsUtilsTests.java b/tests/src/com/android/contacts/ContactsUtilsTests.java
new file mode 100644
index 0000000..114ce67
--- /dev/null
+++ b/tests/src/com/android/contacts/ContactsUtilsTests.java
@@ -0,0 +1,187 @@
+/*
+ * Copyright (C) 2009 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;
+
+import android.content.ContentValues;
+import android.content.Intent;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Pair;
+
+import com.android.contacts.model.dataitem.DataItem;
+import com.android.contacts.model.dataitem.EmailDataItem;
+import com.android.contacts.model.dataitem.ImDataItem;
+
+/**
+ * Tests for {@link ContactsUtils}.
+ */
+@SmallTest
+public class ContactsUtilsTests extends AndroidTestCase {
+
+    private static final String TEST_ADDRESS = "user@example.org";
+    private static final String TEST_PROTOCOL = "prot%col";
+
+    public void testIsGraphicNull() throws Exception {
+        assertFalse(ContactsUtils.isGraphic(null));
+    }
+
+    public void testIsGraphicEmpty() throws Exception {
+        assertFalse(ContactsUtils.isGraphic(""));
+    }
+
+    public void testIsGraphicSpaces() throws Exception {
+        assertFalse(ContactsUtils.isGraphic("  "));
+    }
+
+    public void testIsGraphicPunctuation() throws Exception {
+        assertTrue(ContactsUtils.isGraphic("."));
+    }
+
+    public void testAreObjectsEqual() throws Exception {
+        assertTrue("null:null", ContactsUtils.areObjectsEqual(null, null));
+        assertTrue("1:1", ContactsUtils.areObjectsEqual(1, 1));
+
+        assertFalse("null:1", ContactsUtils.areObjectsEqual(null, 1));
+        assertFalse("1:null", ContactsUtils.areObjectsEqual(1, null));
+        assertFalse("1:2", ContactsUtils.areObjectsEqual(1, 2));
+    }
+
+    public void testAreIntentActionEqual() throws Exception {
+        assertTrue("1", ContactsUtils.areIntentActionEqual(null, null));
+        assertTrue("1", ContactsUtils.areIntentActionEqual(new Intent("a"), new Intent("a")));
+
+        assertFalse("11", ContactsUtils.areIntentActionEqual(new Intent("a"), null));
+        assertFalse("12", ContactsUtils.areIntentActionEqual(null, new Intent("a")));
+
+        assertFalse("21", ContactsUtils.areIntentActionEqual(new Intent("a"), new Intent()));
+        assertFalse("22", ContactsUtils.areIntentActionEqual(new Intent(), new Intent("b")));
+        assertFalse("23", ContactsUtils.areIntentActionEqual(new Intent("a"), new Intent("b")));
+    }
+
+    public void testImIntentCustom() throws Exception {
+        // Custom IM types have encoded authority. We send the imto Intent here, because
+        // legacy third party apps might not accept xmpp yet
+        final ContentValues values = new ContentValues();
+        values.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        values.put(Im.TYPE, Im.TYPE_HOME);
+        values.put(Im.PROTOCOL, Im.PROTOCOL_CUSTOM);
+        values.put(Im.CUSTOM_PROTOCOL, TEST_PROTOCOL);
+        values.put(Im.DATA, TEST_ADDRESS);
+        final ImDataItem im = (ImDataItem) DataItem.createFrom(values);
+
+        final Pair<Intent, Intent> intents = ContactsUtils.buildImIntent(getContext(), im);
+        final Intent imIntent = intents.first;
+
+        assertEquals(Intent.ACTION_SENDTO, imIntent.getAction());
+
+        final Uri data = imIntent.getData();
+        assertEquals("imto", data.getScheme());
+        assertEquals(TEST_PROTOCOL, data.getAuthority());
+        assertEquals(TEST_ADDRESS, data.getPathSegments().get(0));
+
+        assertNull(intents.second);
+    }
+
+    public void testImIntent() throws Exception {
+        // Test GTalk XMPP URI. No chat capabilities provided
+        final ContentValues values = new ContentValues();
+        values.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        values.put(Im.TYPE, Im.TYPE_HOME);
+        values.put(Im.PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
+        values.put(Im.DATA, TEST_ADDRESS);
+        final ImDataItem im = (ImDataItem) DataItem.createFrom(values);
+
+        final Pair<Intent, Intent> intents = ContactsUtils.buildImIntent(getContext(), im);
+        final Intent imIntent = intents.first;
+
+        assertEquals(Intent.ACTION_SENDTO, imIntent.getAction());
+        assertEquals("xmpp:" + TEST_ADDRESS + "?message", imIntent.getData().toString());
+
+        assertNull(intents.second);
+    }
+
+    public void testImIntentWithAudio() throws Exception {
+        // Test GTalk XMPP URI. Audio chat capabilities provided
+        final ContentValues values = new ContentValues();
+        values.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        values.put(Im.TYPE, Im.TYPE_HOME);
+        values.put(Im.PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
+        values.put(Im.DATA, TEST_ADDRESS);
+        values.put(Im.CHAT_CAPABILITY, Im.CAPABILITY_HAS_VOICE | Im.CAPABILITY_HAS_VIDEO);
+        final ImDataItem im = (ImDataItem) DataItem.createFrom(values);
+
+        final Pair<Intent, Intent> intents = ContactsUtils.buildImIntent(getContext(), im);
+        final Intent imIntent = intents.first;
+
+        assertEquals(Intent.ACTION_SENDTO, imIntent.getAction());
+        assertEquals("xmpp:" + TEST_ADDRESS + "?message", imIntent.getData().toString());
+
+        final Intent secondaryIntent = intents.second;
+        assertEquals(Intent.ACTION_SENDTO, secondaryIntent.getAction());
+        assertEquals("xmpp:" + TEST_ADDRESS + "?call", secondaryIntent.getData().toString());
+    }
+
+    public void testImIntentWithVideo() throws Exception {
+        // Test GTalk XMPP URI. Video chat capabilities provided
+        final ContentValues values = new ContentValues();
+        values.put(Im.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        values.put(Im.TYPE, Im.TYPE_HOME);
+        values.put(Im.PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
+        values.put(Im.DATA, TEST_ADDRESS);
+        values.put(Im.CHAT_CAPABILITY, Im.CAPABILITY_HAS_VOICE | Im.CAPABILITY_HAS_VIDEO |
+                Im.CAPABILITY_HAS_VOICE);
+        final ImDataItem im = (ImDataItem) DataItem.createFrom(values);
+
+        final Pair<Intent, Intent> intents = ContactsUtils.buildImIntent(getContext(), im);
+        final Intent imIntent = intents.first;
+
+        assertEquals(Intent.ACTION_SENDTO, imIntent.getAction());
+        assertEquals("xmpp:" + TEST_ADDRESS + "?message", imIntent.getData().toString());
+
+        final Intent secondaryIntent = intents.second;
+        assertEquals(Intent.ACTION_SENDTO, secondaryIntent.getAction());
+        assertEquals("xmpp:" + TEST_ADDRESS + "?call", secondaryIntent.getData().toString());
+    }
+
+
+    public void testImEmailIntent() throws Exception {
+        // Email addresses are treated as Google Talk entries
+        // This test only tests the VIDEO+CAMERA case. The other cases have been addressed by the
+        // Im tests
+        final ContentValues values = new ContentValues();
+        values.put(Email.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        values.put(Email.TYPE, Email.TYPE_HOME);
+        values.put(Email.DATA, TEST_ADDRESS);
+        values.put(Email.CHAT_CAPABILITY, Im.CAPABILITY_HAS_VOICE | Im.CAPABILITY_HAS_VIDEO |
+                Im.CAPABILITY_HAS_VOICE);
+        final ImDataItem im = ImDataItem.createFromEmail(
+                (EmailDataItem) DataItem.createFrom(values));
+
+        final Pair<Intent, Intent> intents = ContactsUtils.buildImIntent(getContext(), im);
+        final Intent imIntent = intents.first;
+
+        assertEquals(Intent.ACTION_SENDTO, imIntent.getAction());
+        assertEquals("xmpp:" + TEST_ADDRESS + "?message", imIntent.getData().toString());
+
+        final Intent secondaryIntent = intents.second;
+        assertEquals(Intent.ACTION_SENDTO, secondaryIntent.getAction());
+        assertEquals("xmpp:" + TEST_ADDRESS + "?call", secondaryIntent.getData().toString());
+    }
+}
diff --git a/tests/src/com/android/contacts/DynamicShortcutsTests.java b/tests/src/com/android/contacts/DynamicShortcutsTests.java
new file mode 100644
index 0000000..3074efb
--- /dev/null
+++ b/tests/src/com/android/contacts/DynamicShortcutsTests.java
@@ -0,0 +1,374 @@
+/*
+ * 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;
+
+import android.annotation.TargetApi;
+import android.app.job.JobScheduler;
+import android.content.ContentProvider;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.os.Build;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.support.test.filters.SdkSuppress;
+import android.test.AndroidTestCase;
+import android.test.mock.MockContentResolver;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.test.mocks.MockContentProvider;
+
+import org.hamcrest.BaseMatcher;
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.Matchers;
+import org.mockito.ArgumentCaptor;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@TargetApi(Build.VERSION_CODES.N_MR1)
+@SdkSuppress(minSdkVersion = Build.VERSION_CODES.N_MR1)
+@SmallTest
+public class DynamicShortcutsTests extends AndroidTestCase {
+
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+
+        // Clean up the job if it was scheduled by these tests.
+        final JobScheduler scheduler = (JobScheduler) getContext()
+                .getSystemService(Context.JOB_SCHEDULER_SERVICE);
+        scheduler.cancel(ContactsJobService.DYNAMIC_SHORTCUTS_JOB_ID);
+    }
+
+    // Basic smoke test to make sure the queries executed by DynamicShortcuts are valid as well
+    // as the integration with ShortcutManager. Note that this may change the state of the shortcuts
+    // on the device it is executed on.
+    public void test_refresh_doesntCrash() {
+        final DynamicShortcuts sut = new DynamicShortcuts(getContext());
+        sut.refresh();
+        // Pass because it didn't throw an exception.
+    }
+
+    public void test_createShortcutFromRow_hasCorrectResult() {
+        final DynamicShortcuts sut = createDynamicShortcuts();
+
+        final Cursor row = queryResult(
+                // ID, LOOKUP_KEY, DISPLAY_NAME_PRIMARY
+                1l, "lookup_key", "John Smith"
+        );
+
+        row.moveToFirst();
+        final ShortcutInfo shortcut = sut.builderForContactShortcut(row).build();
+
+        assertEquals("lookup_key", shortcut.getId());
+        assertEquals(Contacts.getLookupUri(1, "lookup_key"), shortcut.getIntent().getData());
+        assertEquals(ContactsContract.QuickContact.ACTION_QUICK_CONTACT,
+                shortcut.getIntent().getAction());
+        assertEquals("John Smith", shortcut.getShortLabel());
+        assertEquals("John Smith", shortcut.getLongLabel());
+        assertEquals(1l, shortcut.getExtras().getLong(Contacts._ID));
+    }
+
+    public void test_builderForContactShortcut_returnsNullWhenNameIsNull() {
+        final DynamicShortcuts sut = createDynamicShortcuts();
+
+        final ShortcutInfo.Builder shortcut = sut.builderForContactShortcut(1l, "lookup_key", null);
+
+        assertNull(shortcut);
+    }
+
+    public void test_builderForContactShortcut_ellipsizesLongNamesForLabels() {
+        final DynamicShortcuts sut = createDynamicShortcuts();
+        sut.setShortLabelMaxLength(5);
+        sut.setLongLabelMaxLength(10);
+
+        final ShortcutInfo shortcut = sut.builderForContactShortcut(1l, "lookup_key",
+                "123456789 1011").build();
+
+        assertEquals("1234…", shortcut.getShortLabel());
+        assertEquals("123456789…", shortcut.getLongLabel());
+    }
+
+    public void test_updatePinned_disablesShortcutsForRemovedContacts() throws Exception {
+        final ShortcutManager mockShortcutManager = mock(ShortcutManager.class);
+        when(mockShortcutManager.getPinnedShortcuts()).thenReturn(
+                Collections.singletonList(makeDynamic(shortcutFor(1l, "key1", "name1"))));
+
+        final DynamicShortcuts sut = createDynamicShortcuts(emptyResolver(), mockShortcutManager);
+
+        sut.updatePinned();
+
+        verify(mockShortcutManager).disableShortcuts(
+                eq(Collections.singletonList("key1")), anyString());
+    }
+
+    public void test_updatePinned_updatesExistingShortcutsWithMatchingKeys() throws Exception {
+        final ShortcutManager mockShortcutManager = mock(ShortcutManager.class);
+        when(mockShortcutManager.getPinnedShortcuts()).thenReturn(
+                Arrays.asList(
+                        makeDynamic(shortcutFor(1l, "key1", "name1")),
+                        makeDynamic(shortcutFor(2l, "key2", "name2")),
+                        makeDynamic(shortcutFor(3l, "key3", "name3"))
+                ));
+
+        final DynamicShortcuts sut = createDynamicShortcuts(resolverWithExpectedQueries(
+                queryForSingleRow(Contacts.getLookupUri(1l, "key1"), 11l, "key1", "New Name1"),
+                queryForSingleRow(Contacts.getLookupUri(2l, "key2"), 2l, "key2", "name2"),
+                queryForSingleRow(Contacts.getLookupUri(3l, "key3"), 33l, "key3", "name3")
+        ), mockShortcutManager);
+
+        sut.updatePinned();
+
+        final ArgumentCaptor<List<ShortcutInfo>> updateArgs =
+                ArgumentCaptor.forClass((Class) List.class);
+
+        verify(mockShortcutManager).disableShortcuts(
+                eq(Collections.<String>emptyList()), anyString());
+        verify(mockShortcutManager).updateShortcuts(updateArgs.capture());
+
+        final List<ShortcutInfo> arg = updateArgs.getValue();
+        assertThat(arg.size(), equalTo(3));
+        assertThat(arg.get(0),
+                isShortcutForContact(11l, "key1", "New Name1"));
+        assertThat(arg.get(1),
+                isShortcutForContact(2l, "key2", "name2"));
+        assertThat(arg.get(2),
+                isShortcutForContact(33l, "key3", "name3"));
+    }
+
+    public void test_refresh_setsDynamicShortcutsToStrequentContacts() {
+        final ShortcutManager mockShortcutManager = mock(ShortcutManager.class);
+        when(mockShortcutManager.getPinnedShortcuts()).thenReturn(
+                Collections.<ShortcutInfo>emptyList());
+        final DynamicShortcuts sut = createDynamicShortcuts(resolverWithExpectedQueries(
+                queryFor(Contacts.CONTENT_STREQUENT_URI,
+                        1l, "starred_key", "starred name",
+                        2l, "freq_key", "freq name",
+                        3l, "starred_2", "Starred Two")), mockShortcutManager);
+
+        sut.refresh();
+
+        final ArgumentCaptor<List<ShortcutInfo>> updateArgs =
+                ArgumentCaptor.forClass((Class) List.class);
+
+        verify(mockShortcutManager).setDynamicShortcuts(updateArgs.capture());
+
+        final List<ShortcutInfo> arg = updateArgs.getValue();
+        assertThat(arg.size(), equalTo(3));
+        assertThat(arg.get(0), isShortcutForContact(1l, "starred_key", "starred name"));
+        assertThat(arg.get(1), isShortcutForContact(2l, "freq_key", "freq name"));
+        assertThat(arg.get(2), isShortcutForContact(3l, "starred_2", "Starred Two"));
+    }
+
+    public void test_refresh_skipsContactsWithNullName() {
+        final ShortcutManager mockShortcutManager = mock(ShortcutManager.class);
+        when(mockShortcutManager.getPinnedShortcuts()).thenReturn(
+                Collections.<ShortcutInfo>emptyList());
+        final DynamicShortcuts sut = createDynamicShortcuts(resolverWithExpectedQueries(
+                queryFor(Contacts.CONTENT_STREQUENT_URI,
+                        1l, "key1", "first",
+                        2l, "key2", "second",
+                        3l, "key3", null,
+                        4l, null, null,
+                        5l, "key5", "fifth",
+                        6l, "key6", "sixth")), mockShortcutManager);
+
+        sut.refresh();
+
+        final ArgumentCaptor<List<ShortcutInfo>> updateArgs =
+                ArgumentCaptor.forClass((Class) List.class);
+
+        verify(mockShortcutManager).setDynamicShortcuts(updateArgs.capture());
+
+        final List<ShortcutInfo> arg = updateArgs.getValue();
+        assertThat(arg.size(), equalTo(3));
+        assertThat(arg.get(0), isShortcutForContact(1l, "key1", "first"));
+        assertThat(arg.get(1), isShortcutForContact(2l, "key2", "second"));
+        assertThat(arg.get(2), isShortcutForContact(5l, "key5", "fifth"));
+
+
+        // Also verify that it doesn't crash if there are fewer than 3 valid strequent contacts
+        createDynamicShortcuts(resolverWithExpectedQueries(
+                queryFor(Contacts.CONTENT_STREQUENT_URI,
+                        1l, "key1", "first",
+                        2l, "key2", "second",
+                        3l, "key3", null,
+                        4l, null, null)), mock(ShortcutManager.class)).refresh();
+    }
+
+
+    public void test_handleFlagDisabled_stopsJob() {
+        final ShortcutManager mockShortcutManager = mock(ShortcutManager.class);
+        final JobScheduler mockJobScheduler = mock(JobScheduler.class);
+        final DynamicShortcuts sut = createDynamicShortcuts(emptyResolver(), mockShortcutManager,
+                mockJobScheduler);
+
+        sut.handleFlagDisabled();
+
+        verify(mockJobScheduler).cancel(eq(ContactsJobService.DYNAMIC_SHORTCUTS_JOB_ID));
+    }
+
+
+    public void test_scheduleUpdateJob_schedulesJob() {
+        final DynamicShortcuts sut = new DynamicShortcuts(getContext());
+        sut.scheduleUpdateJob();
+        assertThat(DynamicShortcuts.isJobScheduled(getContext()), Matchers.is(true));
+    }
+
+    private Matcher<ShortcutInfo> isShortcutForContact(final long id,
+            final String lookupKey, final String name) {
+        return new BaseMatcher<ShortcutInfo>() {
+            @Override
+            public boolean matches(Object o) {
+                if (!(o instanceof  ShortcutInfo)) return false;
+                final ShortcutInfo other = (ShortcutInfo)o;
+                return id == other.getExtras().getLong(Contacts._ID)
+                        && lookupKey.equals(other.getId())
+                        && name.equals(other.getLongLabel())
+                        && name.equals(other.getShortLabel());
+            }
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("Should be a shortcut for contact with _ID=" + id +
+                        " lookup=" + lookupKey + " and display_name=" + name);
+            }
+        };
+    }
+
+    private ShortcutInfo shortcutFor(long contactId, String lookupKey, String name) {
+        return new DynamicShortcuts(getContext())
+                .builderForContactShortcut(contactId, lookupKey, name).build();
+    }
+
+    private ContentResolver emptyResolver() {
+        final MockContentProvider provider = new MockContentProvider();
+        provider.expect(MockContentProvider.Query.forAnyUri())
+                .withAnyProjection()
+                .withAnySelection()
+                .withAnySortOrder()
+                .returnEmptyCursor();
+        return resolverWithContactsProvider(provider);
+    }
+
+    private MockContentProvider.Query queryFor(Uri uri, Object... rows) {
+        final MockContentProvider.Query query = MockContentProvider.Query
+                .forUrisMatching(uri.getAuthority(), uri.getPath())
+                .withProjection(DynamicShortcuts.PROJECTION)
+                .withAnySelection()
+                .withAnySortOrder();
+
+        populateQueryRows(query, DynamicShortcuts.PROJECTION.length, rows);
+        return query;
+    }
+
+    private MockContentProvider.Query queryForSingleRow(Uri uri, Object... row) {
+        return new MockContentProvider.Query(uri)
+                .withProjection(DynamicShortcuts.PROJECTION)
+                .withAnySelection()
+                .withAnySortOrder()
+                .returnRow(row);
+    }
+
+    private ContentResolver resolverWithExpectedQueries(MockContentProvider.Query... queries) {
+        final MockContentProvider provider = new MockContentProvider();
+        for (MockContentProvider.Query query : queries) {
+            provider.expect(query);
+        }
+        return resolverWithContactsProvider(provider);
+    }
+
+    private ContentResolver resolverWithContactsProvider(ContentProvider provider) {
+        final MockContentResolver resolver = new MockContentResolver();
+        resolver.addProvider(ContactsContract.AUTHORITY, provider);
+        return resolver;
+    }
+
+    private DynamicShortcuts createDynamicShortcuts() {
+        return createDynamicShortcuts(emptyResolver(), mock(ShortcutManager.class));
+    }
+
+
+    private DynamicShortcuts createDynamicShortcuts(ContentResolver resolver,
+            ShortcutManager shortcutManager) {
+        return createDynamicShortcuts(resolver, shortcutManager, mock(JobScheduler.class));
+    }
+
+    private DynamicShortcuts createDynamicShortcuts(ContentResolver resolver,
+            ShortcutManager shortcutManager, JobScheduler jobScheduler) {
+        final DynamicShortcuts result = new DynamicShortcuts(getContext(), resolver,
+                shortcutManager, jobScheduler);
+        // Use very long label limits to make checking shortcuts easier to understand
+        result.setShortLabelMaxLength(100);
+        result.setLongLabelMaxLength(100);
+        return result;
+    }
+
+    private void populateQueryRows(MockContentProvider.Query query, int numColumns,
+            Object... rows) {
+        for (int i = 0; i < rows.length; i += numColumns) {
+            Object[] row = new Object[numColumns];
+            for (int j = 0; j < numColumns; j++) {
+                row[j] = rows[i + j];
+            }
+            query.returnRow(row);
+        }
+    }
+
+    private Cursor queryResult(Object... values) {
+        return queryResult(DynamicShortcuts.PROJECTION, values);
+    }
+
+    // Ugly hack because the API is hidden. Alternative is to actually set the shortcut on the real
+    // ShortcutManager but this seems simpler for now.
+    private ShortcutInfo makeDynamic(ShortcutInfo shortcutInfo) throws Exception {
+        final Method addFlagsMethod = ShortcutInfo.class.getMethod("addFlags", int.class);
+        // 1 = FLAG_DYNAMIC
+        addFlagsMethod.invoke(shortcutInfo, 1);
+        return shortcutInfo;
+    }
+
+    private Cursor queryResult(String[] columns, Object... values) {
+        MatrixCursor result = new MatrixCursor(new String[] {
+                Contacts._ID, Contacts.LOOKUP_KEY,
+                Contacts.DISPLAY_NAME_PRIMARY
+        });
+        for (int i = 0; i < values.length; i += columns.length) {
+            MatrixCursor.RowBuilder builder = result.newRow();
+            for (int j = 0; j < columns.length; j++) {
+                builder.add(values[i + j]);
+            }
+        }
+        return result;
+    }
+}
diff --git a/tests/src/com/android/contacts/GroupsDaoIntegrationTests.java b/tests/src/com/android/contacts/GroupsDaoIntegrationTests.java
new file mode 100644
index 0000000..4057ee8
--- /dev/null
+++ b/tests/src/com/android/contacts/GroupsDaoIntegrationTests.java
@@ -0,0 +1,306 @@
+/*
+ * 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;
+
+import android.content.ContentProviderOperation;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.Data;
+import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests of GroupsDaoImpl that perform DB operations directly against CP2
+ */
+@MediumTest
+public class GroupsDaoIntegrationTests extends InstrumentationTestCase {
+
+    private ContentResolver mResolver;
+    private List<Uri> mTestRecords;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        mTestRecords = new ArrayList<>();
+        mResolver = getContext().getContentResolver();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+
+        // Cleanup anything leftover by the tests.
+        cleanupTestRecords();
+        mTestRecords.clear();
+    }
+
+    public void test_createGroup_createsGroupWithCorrectTitle() throws Exception {
+        final ContactSaveService.GroupsDao sut = createDao();
+        final Uri uri = sut.create("Test Create Group", getLocalAccount());
+
+        assertNotNull(uri);
+        assertGroupHasTitle(uri, "Test Create Group");
+    }
+
+    public void test_deleteEmptyGroup_marksRowDeleted() throws Exception {
+        final ContactSaveService.GroupsDao sut = createDao();
+        final Uri uri = sut.create("Test Delete Group", getLocalAccount());
+
+        assertEquals(1, sut.delete(uri));
+
+        final Cursor cursor = mResolver.query(uri, null, null, null, null, null);
+        try {
+            cursor.moveToFirst();
+            assertEquals(1, cursor.getInt(cursor.getColumnIndexOrThrow(
+                    ContactsContract.Groups.DELETED)));
+        } finally {
+            cursor.close();
+        }
+    }
+
+    public void test_undoDeleteEmptyGroup_createsGroupWithMatchingTitle() throws Exception {
+        final ContactSaveService.GroupsDao sut = createDao();
+        final Uri uri = sut.create("Test Undo Delete Empty Group", getLocalAccount());
+
+        final Bundle undoData = sut.captureDeletionUndoData(uri);
+
+        assertEquals(1, sut.delete(uri));
+
+        final Uri groupUri = sut.undoDeletion(undoData);
+
+        assertGroupHasTitle(groupUri, "Test Undo Delete Empty Group");
+    }
+
+    public void test_deleteNonEmptyGroup_removesGroupAndMembers() throws Exception {
+        final ContactSaveService.GroupsDao sut = createDao();
+        final Uri groupUri = sut.create("Test delete non-empty group", getLocalAccount());
+
+        final long groupId = ContentUris.parseId(groupUri);
+        addMemberToGroup(ContentUris.parseId(createRawContact()), groupId);
+        addMemberToGroup(ContentUris.parseId(createRawContact()), groupId);
+
+        assertEquals(1, sut.delete(groupUri));
+
+        final Cursor cursor = mResolver.query(Data.CONTENT_URI, null,
+                Data.MIMETYPE + "=? AND " + GroupMembership.GROUP_ROW_ID + "=?",
+                new String[] { GroupMembership.CONTENT_ITEM_TYPE, String.valueOf(groupId) },
+                null, null);
+
+        try {
+            cursor.moveToFirst();
+            // This is more of a characterization test since our code isn't manually deleting
+            // the membership rows just the group but this still helps document the expected
+            // behavior.
+            assertEquals(0, cursor.getCount());
+        } finally {
+            cursor.close();
+        }
+    }
+
+    public void test_undoDeleteNonEmptyGroup_restoresGroupAndMembers() throws Exception {
+        final ContactSaveService.GroupsDao sut = createDao();
+        final Uri groupUri = sut.create("Test undo delete non-empty group", getLocalAccount());
+
+        final long groupId = ContentUris.parseId(groupUri);
+        addMemberToGroup(ContentUris.parseId(createRawContact()), groupId);
+        addMemberToGroup(ContentUris.parseId(createRawContact()), groupId);
+
+        final Bundle undoData = sut.captureDeletionUndoData(groupUri);
+
+        sut.delete(groupUri);
+
+        final Uri recreatedGroup = sut.undoDeletion(undoData);
+
+        final long newGroupId = ContentUris.parseId(recreatedGroup);
+
+        final Cursor cursor = mResolver.query(Data.CONTENT_URI, null,
+                Data.MIMETYPE + "=? AND " + GroupMembership.GROUP_ROW_ID + "=?",
+                new String[] { GroupMembership.CONTENT_ITEM_TYPE, String.valueOf(newGroupId) },
+                null, null);
+
+        try {
+            assertEquals(2, cursor.getCount());
+        } finally {
+            cursor.close();
+        }
+    }
+
+    public void test_captureUndoDataForDeletedGroup_returnsEmptyBundle() {
+        final ContactSaveService.GroupsDao sut = createDao();
+
+        final Uri uri = sut.create("a deleted group", getLocalAccount());
+        sut.delete(uri);
+
+        final Bundle undoData = sut.captureDeletionUndoData(uri);
+
+        assertTrue(undoData.isEmpty());
+    }
+
+    public void test_captureUndoDataForNonExistentGroup_returnsEmptyBundle() {
+        final ContactSaveService.GroupsDao sut = createDao();
+
+        // This test could potentially be flaky if this ID exists for some reason. 10 is subtracted
+        // to reduce the likelihood of this happening; some other test may use Integer.MAX_VALUE
+        // or nearby values  to cover some special case or boundary condition.
+        final long nonExistentId = Integer.MAX_VALUE - 10;
+
+        final Bundle undoData = sut.captureDeletionUndoData(ContentUris
+                .withAppendedId(ContactsContract.Groups.CONTENT_URI, nonExistentId));
+
+        assertTrue(undoData.isEmpty());
+    }
+
+    public void test_undoWithEmptyBundle_doesNothing() {
+        final ContactSaveService.GroupsDao sut = createDao();
+
+        final Uri uri = sut.undoDeletion(new Bundle());
+
+        assertNull(uri);
+    }
+
+    public void test_undoDeleteEmptyGroupWithMissingMembersKey_shouldRecreateGroup() {
+        final ContactSaveService.GroupsDao sut = createDao();
+        final Uri groupUri = sut.create("Test undo delete null memberIds", getLocalAccount());
+
+        final Bundle undoData = sut.captureDeletionUndoData(groupUri);
+        undoData.remove(ContactSaveService.GroupsDaoImpl.KEY_GROUP_MEMBERS);
+        sut.delete(groupUri);
+
+        sut.undoDeletion(undoData);
+
+        assertGroupWithTitleExists("Test undo delete null memberIds");
+    }
+
+    private void assertGroupHasTitle(Uri groupUri, String title) {
+        final Cursor cursor = mResolver.query(groupUri,
+                new String[] { ContactsContract.Groups.TITLE },
+                ContactsContract.Groups.DELETED + "=?",
+                new String[] { "0" }, null, null);
+        try {
+            assertTrue("Group does not have title \"" + title + "\"",
+                    cursor.getCount() == 1 && cursor.moveToFirst() &&
+                            title.equals(cursor.getString(0)));
+        } finally {
+            cursor.close();
+        }
+    }
+
+    private void assertGroupWithTitleExists(String title) {
+        final Cursor cursor = mResolver.query(ContactsContract.Groups.CONTENT_URI, null,
+                ContactsContract.Groups.TITLE + "=? AND " +
+                        ContactsContract.Groups.DELETED + "=?",
+                new String[] { title, "0" }, null, null);
+        try {
+            assertTrue("No group exists with title \"" + title + "\"", cursor.getCount() > 0);
+        } finally {
+            cursor.close();
+        }
+    }
+
+    public ContactSaveService.GroupsDao createDao() {
+        return new GroupsDaoWrapper(new ContactSaveService.GroupsDaoImpl(getContext()));
+    }
+
+    private Uri createRawContact() {
+        final ContentValues values = new ContentValues();
+        values.putNull(ContactsContract.RawContacts.ACCOUNT_NAME);
+        values.putNull(ContactsContract.RawContacts.ACCOUNT_TYPE);
+        final Uri result = mResolver.insert(ContactsContract.RawContacts.CONTENT_URI, values);
+        mTestRecords.add(result);
+        return result;
+    }
+
+    private Uri addMemberToGroup(long rawContactId, long groupId) {
+        final ContentValues values = new ContentValues();
+        values.put(Data.RAW_CONTACT_ID, rawContactId);
+        values.put(Data.MIMETYPE,
+                GroupMembership.CONTENT_ITEM_TYPE);
+        values.put(GroupMembership.GROUP_ROW_ID, groupId);
+
+        // Dont' need to add to testRecords because it will be cleaned up when parent raw_contact
+        // is deleted.
+        return mResolver.insert(Data.CONTENT_URI, values);
+    }
+
+    private Context getContext() {
+        return getInstrumentation().getTargetContext();
+    }
+
+    private AccountWithDataSet getLocalAccount() {
+        return new AccountWithDataSet(null, null, null);
+    }
+
+    private void cleanupTestRecords() throws RemoteException, OperationApplicationException {
+        final ArrayList<ContentProviderOperation> ops = new ArrayList<>();
+        for (Uri uri : mTestRecords) {
+            if (uri == null) continue;
+            ops.add(ContentProviderOperation
+                    .newDelete(uri.buildUpon()
+                            .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
+                            .build())
+                    .build());
+        }
+        mResolver.applyBatch(ContactsContract.AUTHORITY, ops);
+    }
+
+    private class GroupsDaoWrapper implements ContactSaveService.GroupsDao {
+        private final ContactSaveService.GroupsDao mDelegate;
+
+        public GroupsDaoWrapper(ContactSaveService.GroupsDao delegate) {
+            mDelegate = delegate;
+        }
+
+        @Override
+        public Uri create(String title, AccountWithDataSet account) {
+            final Uri result = mDelegate.create(title, account);
+            mTestRecords.add(result);
+            return result;
+        }
+
+        @Override
+        public int delete(Uri groupUri) {
+            return mDelegate.delete(groupUri);
+        }
+
+        @Override
+        public Bundle captureDeletionUndoData(Uri groupUri) {
+            return mDelegate.captureDeletionUndoData(groupUri);
+        }
+
+        @Override
+        public Uri undoDeletion(Bundle undoData) {
+            final Uri result = mDelegate.undoDeletion(undoData);
+            mTestRecords.add(result);
+            return result;
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/MoreContactUtilsTest.java b/tests/src/com/android/contacts/MoreContactUtilsTest.java
new file mode 100644
index 0000000..6c9d541
--- /dev/null
+++ b/tests/src/com/android/contacts/MoreContactUtilsTest.java
@@ -0,0 +1,176 @@
+package com.android.contacts;
+
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for MoreContactsUtils.
+ */
+@SmallTest
+public class MoreContactUtilsTest extends TestCase {
+
+    public void testShouldCollapse() throws Exception {
+        assertCollapses("1", true, null, null, null, null);
+        assertCollapses("2", true, "a", "b", "a", "b");
+
+        assertCollapses("11", false, "a", null, null, null);
+        assertCollapses("12", false, null, "a", null, null);
+        assertCollapses("13", false, null, null, "a", null);
+        assertCollapses("14", false, null, null, null, "a");
+
+        assertCollapses("21", false, "a", "b", null, null);
+        assertCollapses("22", false, "a", "b", "a", null);
+        assertCollapses("23", false, "a", "b", null, "b");
+        assertCollapses("24", false, "a", "b", "a", "x");
+        assertCollapses("25", false, "a", "b", "x", "b");
+
+        assertCollapses("31", false, null, null, "a", "b");
+        assertCollapses("32", false, "a", null, "a", "b");
+        assertCollapses("33", false, null, "b", "a", "b");
+        assertCollapses("34", false, "a", "x", "a", "b");
+        assertCollapses("35", false, "x", "b", "a", "b");
+
+        assertCollapses("41", true, Phone.CONTENT_ITEM_TYPE, null, Phone.CONTENT_ITEM_TYPE, null);
+        assertCollapses("42", true, Phone.CONTENT_ITEM_TYPE, "1", Phone.CONTENT_ITEM_TYPE, "1");
+
+        assertCollapses("51", false, Phone.CONTENT_ITEM_TYPE, "1", Phone.CONTENT_ITEM_TYPE, "2");
+        assertCollapses("52", false, Phone.CONTENT_ITEM_TYPE, "1", Phone.CONTENT_ITEM_TYPE, null);
+        assertCollapses("53", false, Phone.CONTENT_ITEM_TYPE, null, Phone.CONTENT_ITEM_TYPE, "2");
+
+        // Test phone numbers
+        assertCollapses("60", true, Phone.CONTENT_ITEM_TYPE, "1234567", Phone.CONTENT_ITEM_TYPE,
+                "1234567");
+        assertCollapses("61", false, Phone.CONTENT_ITEM_TYPE, "1234567", Phone.CONTENT_ITEM_TYPE,
+                "1234568");
+        assertCollapses("62", true, Phone.CONTENT_ITEM_TYPE, "1234567;0", Phone.CONTENT_ITEM_TYPE,
+                "1234567;0");
+        assertCollapses("63", false, Phone.CONTENT_ITEM_TYPE, "1234567;89321",
+                Phone.CONTENT_ITEM_TYPE, "1234567;89322");
+        assertCollapses("64", true, Phone.CONTENT_ITEM_TYPE, "1234567;89321",
+                Phone.CONTENT_ITEM_TYPE, "1234567;89321");
+        assertCollapses("65", false, Phone.CONTENT_ITEM_TYPE, "1234567;0111111111",
+                Phone.CONTENT_ITEM_TYPE, "1234567;");
+        assertCollapses("66", false, Phone.CONTENT_ITEM_TYPE, "12345675426;91970xxxxx",
+                Phone.CONTENT_ITEM_TYPE, "12345675426");
+        assertCollapses("67", false, Phone.CONTENT_ITEM_TYPE, "12345675426;23456xxxxx",
+                Phone.CONTENT_ITEM_TYPE, "12345675426;234567xxxx");
+        assertCollapses("68", true, Phone.CONTENT_ITEM_TYPE, "1234567;1234567;1234567",
+                Phone.CONTENT_ITEM_TYPE, "1234567;1234567;1234567");
+        assertCollapses("69", false, Phone.CONTENT_ITEM_TYPE, "1234567;1234567;1234567",
+                Phone.CONTENT_ITEM_TYPE, "1234567;1234567");
+
+        // test some numbers with country and area code
+        assertCollapses("70", true, Phone.CONTENT_ITEM_TYPE, "+49 (89) 12345678",
+                Phone.CONTENT_ITEM_TYPE, "+49 (89) 12345678");
+        assertCollapses("71", true, Phone.CONTENT_ITEM_TYPE, "+49 (89) 12345678",
+                Phone.CONTENT_ITEM_TYPE, "+49 (89)12345678");
+        assertCollapses("72", true, Phone.CONTENT_ITEM_TYPE, "+49 (8092) 1234",
+                Phone.CONTENT_ITEM_TYPE, "+49 (8092)1234");
+        assertCollapses("73", false, Phone.CONTENT_ITEM_TYPE, "0049 (8092) 1234",
+                Phone.CONTENT_ITEM_TYPE, "+49/80921234");
+        assertCollapses("74", false, Phone.CONTENT_ITEM_TYPE, "+49 (89) 12345678",
+                Phone.CONTENT_ITEM_TYPE, "+49 (89) 12345679");
+
+        // test special handling of collapsing country code for NANP region only
+        // This is non symmetrical, because we prefer the number with the +1.
+        assertEquals("100", true, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "+1 (415) 555-1212", Phone.CONTENT_ITEM_TYPE, "(415) 555-1212"));
+        assertEquals("101", true, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "+14155551212", Phone.CONTENT_ITEM_TYPE, "4155551212"));
+        assertEquals("102", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "(415) 555-1212", Phone.CONTENT_ITEM_TYPE, "+1 (415) 555-1212"));
+        assertEquals("103", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "4155551212", Phone.CONTENT_ITEM_TYPE, "+14155551212"));
+        // Require explicit +1 country code declaration to collapse
+        assertEquals("104", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "1-415-555-1212", Phone.CONTENT_ITEM_TYPE, "415-555-1212"));
+        assertEquals("105", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "14155551212", Phone.CONTENT_ITEM_TYPE, "4155551212"));
+        assertEquals("106", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "+1 (415) 555-1212", Phone.CONTENT_ITEM_TYPE, " 1 (415) 555-1212"));
+        assertEquals("107", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "+14155551212", Phone.CONTENT_ITEM_TYPE, " 14155551212"));
+        assertEquals("108", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "1 (415) 555-1212", Phone.CONTENT_ITEM_TYPE, "+1 (415) 555-1212"));
+        assertEquals("109", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "14155551212", Phone.CONTENT_ITEM_TYPE, "+14155551212"));
+
+        // test some numbers with wait symbol and area code
+        assertCollapses("200", true, Phone.CONTENT_ITEM_TYPE, "+49 (8092) 1234;89321",
+                Phone.CONTENT_ITEM_TYPE, "+49/80921234;89321");
+        assertCollapses("201", false, Phone.CONTENT_ITEM_TYPE, "+49 (8092) 1234;89321",
+                Phone.CONTENT_ITEM_TYPE, "+49/80921235;89321");
+        assertCollapses("202", false, Phone.CONTENT_ITEM_TYPE, "+49 (8092) 1234;89322",
+                Phone.CONTENT_ITEM_TYPE, "+49/80921234;89321");
+        assertCollapses("203", true, Phone.CONTENT_ITEM_TYPE, "1234567;+49 (8092) 1234",
+                Phone.CONTENT_ITEM_TYPE, "1234567;+49/80921234");
+
+        assertCollapses("300", true, Phone.CONTENT_ITEM_TYPE, "", Phone.CONTENT_ITEM_TYPE, "");
+
+        assertCollapses("301", false, Phone.CONTENT_ITEM_TYPE, "1", Phone.CONTENT_ITEM_TYPE, "");
+
+        assertCollapses("302", false, Phone.CONTENT_ITEM_TYPE, "", Phone.CONTENT_ITEM_TYPE, "1");
+
+        assertCollapses("303", true, Phone.CONTENT_ITEM_TYPE, "---", Phone.CONTENT_ITEM_TYPE, "---");
+
+        assertCollapses("304", false, Phone.CONTENT_ITEM_TYPE, "1-/().", Phone.CONTENT_ITEM_TYPE,
+                "--$%1");
+
+        // Test numbers using keypad letters. This is non-symmetrical, because we prefer
+        // the version with letters.
+        assertEquals("400", true, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "abcdefghijklmnopqrstuvwxyz", Phone.CONTENT_ITEM_TYPE,
+                "22233344455566677778889999"));
+        assertEquals("401", false, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "22233344455566677778889999", Phone.CONTENT_ITEM_TYPE,
+                "abcdefghijklmnopqrstuvwxyz"));
+
+        assertCollapses("402", false, Phone.CONTENT_ITEM_TYPE, "1;2", Phone.CONTENT_ITEM_TYPE,
+                "12");
+
+        assertCollapses("403", false, Phone.CONTENT_ITEM_TYPE, "1,2", Phone.CONTENT_ITEM_TYPE,
+                "12");
+    }
+
+    public void testShouldCollapse_collapsesSameNumberWithDifferentFormats() {
+        assertEquals("1", true, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "555-1212", Phone.CONTENT_ITEM_TYPE, "5551212"));
+        assertEquals("1", true, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "415-555-1212", Phone.CONTENT_ITEM_TYPE, "(415) 555-1212"));
+        assertEquals("2", true, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "4155551212", Phone.CONTENT_ITEM_TYPE, "(415) 555-1212"));
+        assertEquals("3", true, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "1-415-555-1212", Phone.CONTENT_ITEM_TYPE, "1 (415) 555-1212"));
+        assertEquals("4", true, MoreContactUtils.shouldCollapse(Phone.CONTENT_ITEM_TYPE,
+                "14155551212", Phone.CONTENT_ITEM_TYPE, "1 (415) 555-1212"));
+    }
+
+    private void assertCollapses(String message, boolean expected, CharSequence mimetype1,
+            CharSequence data1, CharSequence mimetype2, CharSequence data2) {
+        assertEquals(message, expected, MoreContactUtils.shouldCollapse(mimetype1, data1, mimetype2,
+                data2));
+        assertEquals(message, expected, MoreContactUtils.shouldCollapse(mimetype2, data2, mimetype1,
+                data1));
+
+        // If data1 and data2 are the same instance, make sure the same test passes with different
+        // instances.
+        if (data1 == data2 && data1 != null) {
+            // Create a different instance
+            final CharSequence data2_newref = new StringBuilder(data2).append("").toString();
+
+            if (data1 == data2_newref) {
+                // In some cases no matter what we do the runtime reuses the same instance, so
+                // we can't do the "different instance" test.
+                return;
+            }
+
+            // we have two different instances, now make sure we get the same result as before
+            assertEquals(message, expected, MoreContactUtils.shouldCollapse(mimetype1, data1,
+                    mimetype2, data2_newref));
+            assertEquals(message, expected, MoreContactUtils.shouldCollapse(mimetype2, data2_newref,
+                    mimetype1, data1));
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/NoPermissionsLaunchSmokeTest.java b/tests/src/com/android/contacts/NoPermissionsLaunchSmokeTest.java
new file mode 100644
index 0000000..be545a9
--- /dev/null
+++ b/tests/src/com/android/contacts/NoPermissionsLaunchSmokeTest.java
@@ -0,0 +1,99 @@
+package com.android.contacts;
+
+import static com.android.contacts.util.PermissionsUtil.hasPermission;
+
+import static org.junit.Assume.assumeTrue;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.MediumTest;
+import android.support.test.filters.Suppress;
+import android.support.test.runner.AndroidJUnit4;
+import android.support.test.uiautomator.By;
+import android.support.test.uiautomator.UiDevice;
+import android.support.test.uiautomator.UiObject2;
+import android.support.test.uiautomator.Until;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Make sure the app doesn't crash when it is started without permissions. Note: this won't
+ * run in most environments because permissions will already have been granted.
+ *
+ * To exercise this run:
+ *
+ * $ adb shell pm revoke com.android.contacts android.permission.READ_CONTACTS
+ * $ adb shell pm revoke com.android.contacts android.permission.WRITE_CONTACTS
+ * $ adb shell pm revoke com.android.contacts android.permission.GET_ACCOUNTS
+ * $ adb shell pm revoke com.android.contacts android.permission.READ_PHONE_STATE
+ * $ adb shell pm revoke com.android.contacts android.permission.READ_CALL_LOG
+ * $ adb shell pm revoke com.android.contacts android.permission.CALL_PHONE
+ * $ adb shell am instrument -w \
+ *     com.google.android.contacts.tests/android.support.test.runner.AndroidJUnitRunner \
+ *     -e class com.android.contacts.NoPermissionsLaunchSmokeTest
+ */
+@MediumTest
+// suppressed because failed assumptions are reported as test failures by the build server
+@Suppress
+@RunWith(AndroidJUnit4.class)
+public class NoPermissionsLaunchSmokeTest {
+    private static final long TIMEOUT = 5000;
+
+    private Context mTargetContext;
+
+    @Before
+    public void setUp() throws Exception {
+        mTargetContext = InstrumentationRegistry.getTargetContext();
+        assumeTrue(!hasPermission(mTargetContext, Manifest.permission.READ_CONTACTS));
+        assumeTrue(!hasPermission(mTargetContext, Manifest.permission.WRITE_CONTACTS));
+        assumeTrue(!hasPermission(mTargetContext, Manifest.permission.GET_ACCOUNTS));
+        assumeTrue(!hasPermission(mTargetContext, Manifest.permission.READ_PHONE_STATE));
+        assumeTrue(!hasPermission(mTargetContext, Manifest.permission.READ_CALL_LOG));
+        assumeTrue(!hasPermission(mTargetContext, Manifest.permission.CALL_PHONE));
+
+        // remove state that might exist outside of the app
+        // (e.g. launcher shortcuts and scheduled jobs)
+        DynamicShortcuts.reset(mTargetContext);
+    }
+
+    @Test
+    public void launchingMainActivityDoesntCrash() throws Exception {
+        final UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
+
+        // Launch the main activity
+        InstrumentationRegistry.getContext().startActivity(
+                new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_DEFAULT)
+                        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
+                        .setPackage(InstrumentationRegistry.getTargetContext().getPackageName()));
+
+        device.waitForIdle();
+
+        device.wait(Until.hasObject(By.textStartsWith("Allow Contacts")), TIMEOUT);
+        final UiObject2 grantContactsPermissionButton = device.findObject(By.text("ALLOW"));
+
+        grantContactsPermissionButton.click();
+
+        device.wait(Until.hasObject(By.textEndsWith("make and manage phone calls?")), TIMEOUT);
+
+        final PackageManager packageManager = mTargetContext.getPackageManager();
+        if (!packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
+            device.waitForIdle();
+            return;
+        }
+
+        final UiObject2 grantPhonePermissionButton = device.findObject(By.text("ALLOW"));
+
+        grantPhonePermissionButton.clickAndWait(Until.newWindow(), TIMEOUT);
+
+        // Not sure if this actually waits for the load to complete or not.
+        device.waitForIdle();
+    }
+
+    // TODO: it would be good to have similar tests for other entry points that might be reached
+    // without required permissions.
+}
diff --git a/tests/src/com/android/contacts/RunMethodInstrumentation.java b/tests/src/com/android/contacts/RunMethodInstrumentation.java
new file mode 100644
index 0000000..1e4bcf5
--- /dev/null
+++ b/tests/src/com/android/contacts/RunMethodInstrumentation.java
@@ -0,0 +1,151 @@
+/*
+ * 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;
+
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Debug;
+import android.support.test.InstrumentationRegistry;
+import android.util.Log;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * Runs a single static method specified via the arguments.
+ *
+ * Useful for manipulating the app state during manual testing. If the class argument is omitted
+ * this class will attempt to invoke a method in
+ * {@link com.android.contacts.tests.AdbHelpers}
+ *
+ * Valid signatures: void f(Context, Bundle), void f(Context), void f()
+ *
+ * Example usage:
+ * $ adb shell am instrument -e class com.android.contacts.Foo -e method bar -e someArg someValue\
+ *   -w com.google.android.contacts.tests/com.android.contacts.RunMethodInstrumentation
+ */
+public class RunMethodInstrumentation extends Instrumentation {
+
+    private static final String TAG = "RunMethod";
+
+    private static final String DEFAULT_CLASS = "AdbHelpers";
+
+    private String className;
+    private String methodName;
+    private Bundle args;
+
+    @Override
+    public void onCreate(Bundle arguments) {
+        super.onCreate(arguments);
+
+        InstrumentationRegistry.registerInstance(this, arguments);
+
+        className = arguments.getString("class", getContext().getPackageName() + "." +
+                DEFAULT_CLASS);
+        methodName = arguments.getString("method");
+        args = arguments;
+
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Running " + className + "." + methodName);
+            Log.d(TAG, "args=" + args);
+        }
+
+        if (arguments.containsKey("debug") && Boolean.parseBoolean(arguments.getString("debug"))) {
+            Debug.waitForDebugger();
+        }
+        start();
+    }
+
+    @Override
+    public void onStart() {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "onStart");
+        }
+        super.onStart();
+
+        if (className == null || methodName == null) {
+            Log.e(TAG, "Must supply class and method");
+            finish(Activity.RESULT_CANCELED, null);
+            return;
+        }
+
+        // Wait for the Application to finish creating.
+        runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "acquired main thread from instrumentation");
+                }
+            }
+        });
+
+        try {
+            invokeMethod(args, className, methodName);
+        } catch (Exception e) {
+            e.printStackTrace();
+            finish(Activity.RESULT_CANCELED, null);
+            return;
+        }
+        // Maybe should let the method determine when this is called.
+        finish(Activity.RESULT_OK, null);
+    }
+
+    private void invokeMethod(Bundle args, String className, String methodName) throws
+            InvocationTargetException, IllegalAccessException, NoSuchMethodException,
+            ClassNotFoundException {
+        Context context;
+        Class<?> clazz = null;
+        try {
+            // Try to load from App's code
+            clazz = getTargetContext().getClassLoader().loadClass(className);
+            context = getTargetContext();
+        } catch (Exception e) {
+            // Try to load from Test App's code
+            clazz = getContext().getClassLoader().loadClass(className);
+            context = getContext();
+        }
+
+        Object[] methodArgs = null;
+        Method method = null;
+
+        try {
+            method = clazz.getMethod(methodName, Context.class, Bundle.class);
+            methodArgs = new Object[] { context, args };
+        } catch (NoSuchMethodException e) {
+        }
+
+        if (method != null) {
+            method.invoke(clazz, methodArgs);
+            return;
+        }
+
+        try {
+            method = clazz.getMethod(methodName, Context.class);
+            methodArgs = new Object[] { context };
+        } catch (NoSuchMethodException e) {
+        }
+
+        if (method != null) {
+            method.invoke(clazz, methodArgs);
+            return;
+        }
+
+        method = clazz.getMethod(methodName);
+        method.invoke(clazz);
+    }
+}
diff --git a/tests/src/com/android/contacts/activities/PeopleActivityTest.java b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
index bb463e8..4e57969 100644
--- a/tests/src/com/android/contacts/activities/PeopleActivityTest.java
+++ b/tests/src/com/android/contacts/activities/PeopleActivityTest.java
@@ -18,37 +18,28 @@
 
 import android.content.ContentUris;
 import android.content.ContentValues;
-import android.content.Intent;
-import android.content.Loader;
 import android.net.Uri;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Directory;
 import android.provider.ContactsContract.Groups;
 import android.provider.ContactsContract.ProviderStatus;
-import android.provider.Settings;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.suitebuilder.annotation.SmallTest;
-import android.widget.TextView;
 
+import com.android.contacts.ContactPhotoManager;
 import com.android.contacts.ContactsApplication;
-import com.android.contacts.R;
-import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.testing.InjectedServices;
-import com.android.contacts.common.test.mocks.ContactsMockContext;
-import com.android.contacts.common.test.mocks.MockContentProvider;
-import com.android.contacts.common.test.mocks.MockContentProvider.Query;
-import com.android.contacts.interactions.TestLoaderManager;
-import com.android.contacts.list.ContactBrowseListFragment;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.account.BaseAccountType;
-import com.android.contacts.common.preference.ContactsPreferences;
-import com.android.contacts.common.test.mocks.MockAccountTypeManager;
-import com.android.contacts.common.test.mocks.MockContactPhotoManager;
-import com.android.contacts.common.test.mocks.MockSharedPreferences;
-import com.android.contacts.util.PhoneCapabilityTester;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.BaseAccountType;
+import com.android.contacts.test.mocks.ContactsMockContext;
+import com.android.contacts.test.mocks.MockAccountTypeManager;
+import com.android.contacts.test.mocks.MockContactPhotoManager;
+import com.android.contacts.test.mocks.MockContentProvider;
+import com.android.contacts.test.mocks.MockContentProvider.Query;
+import com.android.contacts.test.mocks.MockSharedPreferences;
+import com.android.contacts.testing.InjectedServices;
 
 /**
  * This test is so outdated that it's disabled temporarily.  TODO Update the test and re-enable it.
diff --git a/tests/src/com/android/contacts/activities/SimImportActivityTest.java b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
new file mode 100644
index 0000000..ae8fb78
--- /dev/null
+++ b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
@@ -0,0 +1,357 @@
+/*
+ * 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.activities;
+
+import static com.android.contacts.tests.ContactsMatchers.DataCursor.hasMimeType;
+import static com.android.contacts.tests.ContactsMatchers.hasRowMatching;
+import static com.android.contacts.tests.ContactsMatchers.hasValueForColumn;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.allOf;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.content.BroadcastReceiver;
+import android.content.ContentProviderClient;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.ActivityInfo;
+import android.database.Cursor;
+import android.os.Build;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Data;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.LargeTest;
+import android.support.test.filters.SdkSuppress;
+import android.support.test.runner.AndroidJUnit4;
+import android.support.test.uiautomator.By;
+import android.support.test.uiautomator.UiDevice;
+import android.support.test.uiautomator.Until;
+import android.support.v4.content.LocalBroadcastManager;
+import android.telephony.TelephonyManager;
+import android.test.mock.MockContentResolver;
+
+import com.android.contacts.SimImportService;
+import com.android.contacts.database.SimContactDao;
+import com.android.contacts.database.SimContactDaoImpl;
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.test.mocks.ForwardingContentProvider;
+import com.android.contacts.test.mocks.MockContentProvider;
+import com.android.contacts.tests.AccountsTestHelper;
+import com.android.contacts.tests.ContactsMatchers;
+import com.android.contacts.tests.FakeSimContactDao;
+import com.android.contacts.tests.StringableCursor;
+import com.google.common.base.Function;
+import com.google.common.base.Functions;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.SettableFuture;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Collections;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * UI Tests for {@link SimImportActivity}
+ *
+ * These should probably be converted to espresso tests because espresso does a better job of
+ * waiting for the app to be idle once espresso library is added
+ */
+//@Suppress
+@LargeTest
+@RunWith(AndroidJUnit4.class)
+@SdkSuppress(minSdkVersion = Build.VERSION_CODES.M)
+@TargetApi(Build.VERSION_CODES.M)
+public class SimImportActivityTest {
+
+    public static final int TIMEOUT = 100000;
+    private Context mContext;
+    private UiDevice mDevice;
+    private Instrumentation mInstrumentation;
+    private FakeSimContactDao mDao;
+    private AccountsTestHelper mAccountHelper;
+    private Activity mActivity;
+
+    @Before
+    public void setUp() throws Exception {
+        mContext = InstrumentationRegistry.getTargetContext();
+        mInstrumentation = InstrumentationRegistry.getInstrumentation();
+        mDao = new FakeSimContactDao();
+        SimContactDao.setFactoryForTest(Functions.<SimContactDao>constant(mDao));
+        mDevice = UiDevice.getInstance(mInstrumentation);
+
+        // Add some test accounts so that account picker is exercised
+        mAccountHelper = new AccountsTestHelper();
+        mAccountHelper.addTestAccount(mAccountHelper.generateAccountName("SimImportActivity1_"));
+        mAccountHelper.addTestAccount(mAccountHelper.generateAccountName("SimImportActivity2_"));
+        mAccountHelper.addTestAccount(mAccountHelper.generateAccountName("SimImportActivity3_"));
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        SimContactDao.setFactoryForTest(SimContactDao.DEFAULT_FACTORY);
+        mAccountHelper.cleanup();
+        if (mActivity != null) {
+            mActivity.finish();
+            mInstrumentation.waitForIdleSync();
+        }
+    }
+
+    @AfterClass
+    public static void tearDownClass() {
+        AccountsTestHelper.removeAccountsWithPrefix(
+                InstrumentationRegistry.getTargetContext(), "SimImportActivity");
+    }
+
+    @Test
+    public void shouldDisplaySimContacts() {
+        mDao.addSim(someSimCard(),
+                        new SimContact(1, "Sim One", "5550101"),
+                        new SimContact(2, "Sim Two", null),
+                        new SimContact(3, null, "5550103")
+                );
+        mActivity = mInstrumentation.startActivitySync(new Intent(mContext, SimImportActivity.class)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+
+        mDevice.waitForIdle();
+
+        assertTrue(mDevice.wait(Until.hasObject(By.text("Sim One")), TIMEOUT));
+
+        assertTrue(mDevice.hasObject(By.text("Sim One")));
+        assertTrue(mDevice.hasObject(By.text("Sim Two")));
+        assertTrue(mDevice.hasObject(By.text("5550103")));
+    }
+
+    @Test
+    public void shouldHaveEmptyState() {
+        mDao.addSim(someSimCard());
+
+        mInstrumentation.startActivitySync(new Intent(mContext, SimImportActivity.class)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+
+        mDevice.waitForIdle();
+
+        assertTrue(mDevice.wait(Until.hasObject(By.textStartsWith("No contacts")), TIMEOUT));
+    }
+
+    @Test
+    public void smokeRotateInEmptyState() {
+        mDao.addSim(someSimCard());
+
+        mActivity = mInstrumentation.startActivitySync(
+                new Intent(mContext, SimImportActivity.class)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+
+        assertTrue(mDevice.wait(Until.hasObject(By.textStartsWith("No contacts")), TIMEOUT));
+
+        mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+
+        mDevice.waitForIdle();
+
+        assertTrue(mDevice.wait(Until.hasObject(By.textStartsWith("No contacts")), TIMEOUT));
+    }
+
+    @Test
+    public void smokeRotateInNonEmptyState() throws Exception {
+        mDao.addSim(someSimCard(), new SimContact(1, "Name One", "5550101"),
+                new SimContact(2, "Name Two", "5550102"));
+
+        mActivity = mInstrumentation.startActivitySync(
+                new Intent(mContext, SimImportActivity.class)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+
+        assertTrue(mDevice.wait(Until.hasObject(By.textStartsWith("Name One")), TIMEOUT));
+
+        mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+
+        mDevice.waitForIdle();
+
+        assertTrue(mDevice.wait(Until.hasObject(By.textStartsWith("Name One")), TIMEOUT));
+    }
+
+    /**
+     * Tests a complete import flow
+     *
+     * <p>Test case outline:</p>
+     * <ul>
+     * <li>Load SIM contacts
+     * <li>Change to a specific target account
+     * <li>Deselect 3 specific SIM contacts
+     * <li>Rotate the screen to landscape
+     * <li>Rotate the screen back to portrait
+     * <li>Press the import button
+     * <li>Wait for import to complete
+     * <li>Query contacts in target account and verify that they match selected contacts
+     * <li>Start import activity again
+     * <li>Switch to target account
+     * <li>Verify that previously imported contacts are disabled and not checked
+     * </ul>
+     *
+     * <p>This mocks out the IccProvider and stubs the canReadSimContacts method to make it work on
+     * an emulator but otherwise uses real dependency.
+     * </p>
+     */
+    @Test
+    public void selectionsAreImportedAndDisabledOnSubsequentImports() throws Exception {
+        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 })
+                .anyNumberOfTimes()
+                .returnRow(toCursorRow(new SimContact(1, "Import One", "5550101")))
+                .returnRow(toCursorRow(new SimContact(2, "Skip Two", "5550102")))
+                .returnRow(toCursorRow(new SimContact(3, "Import Three", "5550103")))
+                .returnRow(toCursorRow(new SimContact(4, "Skip Four", "5550104")))
+                .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);
+        final ContentProviderClient contactsProviderClient = mContext.getContentResolver()
+                .acquireContentProviderClient(ContactsContract.AUTHORITY);
+        mockResolver.addProvider(ContactsContract.AUTHORITY, new ForwardingContentProvider(
+                contactsProviderClient));
+
+        SimContactDao.setFactoryForTest(new Function<Context, SimContactDao>() {
+            @Override
+            public SimContactDao apply(Context input) {
+                final SimContactDaoImpl spy = spy(new SimContactDaoImpl(
+                        mContext, mockResolver,
+                        (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE)));
+                final SimCard sim = someSimCard();
+                doReturn(true).when(spy).canReadSimContacts();
+                doReturn(Collections.singletonList(sim)).when(spy).getSimCards();
+                doReturn(sim).when(spy).getSimBySubscriptionId(anyInt());
+                return spy;
+            }
+        });
+
+        mActivity = mInstrumentation.startActivitySync(
+                new Intent(mContext, SimImportActivity.class)
+                        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+
+        assertTrue(mDevice.wait(Until.hasObject(By.desc("Show more")), TIMEOUT));
+
+        mDevice.findObject(By.desc("Show more")).clickAndWait(Until.newWindow(), TIMEOUT);
+        mDevice.findObject(By.textContains("_targetAccount_")).click();
+
+        assertTrue(mDevice.wait(Until.hasObject(By.text("Skip Two")), TIMEOUT));
+
+        mDevice.findObject(By.text("Skip Two")).click();
+        mDevice.findObject(By.text("Skip Four")).click();
+        mDevice.findObject(By.text("Skip Five")).click();
+        mDevice.waitForIdle();
+
+        assertTrue(mDevice.hasObject(By.text("Skip Two").checked(false)));
+        assertTrue(mDevice.hasObject(By.text("Skip Five").checked(false)));
+
+        mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+        mDevice.wait(Until.hasObject(By.text("Import One")), TIMEOUT);
+        mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
+        mDevice.wait(Until.hasObject(By.text("Import One")), TIMEOUT);
+
+        ListenableFuture<?> nextImportFuture = nextImportCompleteBroadcast();
+
+        mDevice.findObject(By.text("IMPORT").clickable(true)).click();
+
+        // Block until import completes
+        nextImportFuture.get(TIMEOUT, TimeUnit.MILLISECONDS);
+
+        final Cursor cursor = new StringableCursor(
+                mContext.getContentResolver().query(Data.CONTENT_URI, null,
+                        ContactsContract.RawContacts.ACCOUNT_NAME + "=? AND " +
+                                ContactsContract.RawContacts.ACCOUNT_TYPE+ "=?",
+                        new String[] {
+                                targetAccount.name,
+                                targetAccount.type
+                        }, null));
+        // 3 contacts imported with one row for name and one for phone
+        assertThat(cursor, ContactsMatchers.hasCount(3 * 2));
+
+        assertThat(cursor, hasRowMatching(allOf(
+                hasMimeType(Phone.CONTENT_ITEM_TYPE),
+                hasValueForColumn(Phone.DISPLAY_NAME, "Import One"),
+                hasValueForColumn(Phone.NUMBER, "5550101")
+        )));
+        assertThat(cursor, hasRowMatching(allOf(
+                hasMimeType(Phone.CONTENT_ITEM_TYPE),
+                hasValueForColumn(Phone.DISPLAY_NAME, "Import Three"),
+                hasValueForColumn(Phone.NUMBER, "5550103")
+        )));
+        assertThat(cursor, hasRowMatching(allOf(
+                hasMimeType(Phone.CONTENT_ITEM_TYPE),
+                hasValueForColumn(Phone.DISPLAY_NAME, "Import Six"),
+                hasValueForColumn(Phone.NUMBER, "5550106")
+        )));
+
+        cursor.close();
+
+
+        mActivity = mInstrumentation.startActivitySync(
+                new Intent(mContext, SimImportActivity.class)
+                        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+
+        assertTrue(mDevice.wait(Until.hasObject(By.text("Import One")), TIMEOUT));
+
+        mDevice.findObject(By.descStartsWith("Show more")).clickAndWait(Until.newWindow(), TIMEOUT);
+        mDevice.findObject(By.textContains(targetAccount.name)).click();
+        mDevice.waitForIdle();
+
+        assertTrue(mDevice.wait(Until.hasObject(By.text("Import One").checked(false).enabled(false)), TIMEOUT));
+        assertTrue(mDevice.hasObject(By.text("Import Three").checked(false).enabled(false)));
+        assertTrue(mDevice.hasObject(By.text("Import Six").checked(false).enabled(false)));
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+            contactsProviderClient.close();
+        }
+    }
+
+    private ListenableFuture<Intent> nextImportCompleteBroadcast() {
+        final SettableFuture<Intent> result = SettableFuture.create();
+        final BroadcastReceiver receiver = new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                result.set(intent);
+                LocalBroadcastManager.getInstance(mContext).unregisterReceiver(this);
+            }
+        };
+        LocalBroadcastManager.getInstance(mContext).registerReceiver(receiver, new IntentFilter(
+                SimImportService.BROADCAST_SIM_IMPORT_COMPLETE));
+        return result;
+    }
+
+    private Object[] toCursorRow(SimContact contact) {
+        return new Object[] { contact.getId(), contact.getName(), contact.getPhone(), null };
+    }
+
+    private SimCard someSimCard() {
+        return new SimCard("id", 1, "Carrier", "SIM", "18005550101", "us");
+    }
+}
diff --git a/tests/src/com/android/contacts/compat/CompatUtilsTest.java b/tests/src/com/android/contacts/compat/CompatUtilsTest.java
new file mode 100644
index 0000000..22694cb
--- /dev/null
+++ b/tests/src/com/android/contacts/compat/CompatUtilsTest.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2015 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.compat;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public class CompatUtilsTest extends AndroidTestCase {
+
+    public void testIsClassAvailable_NullClassName() {
+        assertFalse(CompatUtils.isClassAvailable(null));
+    }
+
+    public void testIsClassAvailable_EmptyClassName() {
+        assertFalse(CompatUtils.isClassAvailable(""));
+    }
+
+    public void testIsClassAvailable_NonexistentClass() {
+        assertFalse(CompatUtils.isClassAvailable("com.android.contacts.common.NonexistentClass"));
+    }
+
+    public void testIsClassAvailable() {
+        assertTrue(CompatUtils.isClassAvailable(BaseClass.class.getName()));
+    }
+
+    public void testIsMethodAvailable_NullClassName() {
+        assertFalse(CompatUtils.isMethodAvailable(null, "methodName"));
+    }
+
+    public void testIsMethodAvailable_EmptyClassName() {
+        assertFalse(CompatUtils.isMethodAvailable("", "methodName"));
+    }
+
+    public void testIsMethodAvailable_NullMethodName() {
+        assertFalse(CompatUtils.isMethodAvailable("className", null));
+    }
+
+    public void testIsMethodAvailable_EmptyMethodName() {
+        assertFalse(CompatUtils.isMethodAvailable("className", ""));
+    }
+
+    public void testIsMethodAvailable_NonexistentClass() {
+        assertFalse(CompatUtils.isMethodAvailable("com.android.contacts.common.NonexistentClass",
+                ""));
+    }
+
+    public void testIsMethodAvailable_NonexistentMethod() {
+        assertFalse(CompatUtils.isMethodAvailable(BaseClass.class.getName(), "derivedMethod"));
+    }
+
+    public void testIsMethodAvailable() {
+        assertTrue(CompatUtils.isMethodAvailable(BaseClass.class.getName(), "baseMethod"));
+    }
+
+    public void testIsMethodAvailable_InheritedMethod() {
+        assertTrue(CompatUtils.isMethodAvailable(DerivedClass.class.getName(), "baseMethod"));
+    }
+
+    public void testIsMethodAvailable_OverloadedMethod() {
+        assertTrue(CompatUtils.isMethodAvailable(DerivedClass.class.getName(), "overloadedMethod"));
+        assertTrue(CompatUtils.isMethodAvailable(DerivedClass.class.getName(), "overloadedMethod",
+                Integer.TYPE));
+    }
+
+    public void testIsMethodAvailable_NonexistentOverload() {
+        assertFalse(CompatUtils.isMethodAvailable(DerivedClass.class.getName(), "overloadedMethod",
+                Boolean.TYPE));
+    }
+
+    public void testInvokeMethod_NullMethodName() {
+        assertNull(CompatUtils.invokeMethod(new BaseClass(), null, null, null));
+    }
+
+    public void testInvokeMethod_EmptyMethodName() {
+        assertNull(CompatUtils.invokeMethod(new BaseClass(), "", null, null));
+    }
+
+    public void testInvokeMethod_NullClassInstance() {
+        assertNull(CompatUtils.invokeMethod(null, "", null, null));
+    }
+
+    public void testInvokeMethod_NonexistentMethod() {
+        assertNull(CompatUtils.invokeMethod(new BaseClass(), "derivedMethod", null, null));
+    }
+
+    public void testInvokeMethod_MethodWithNoParameters() {
+        assertEquals(1, CompatUtils.invokeMethod(new DerivedClass(), "overloadedMethod", null, null));
+    }
+
+    public void testInvokeMethod_MethodWithNoParameters_WithParameters() {
+        assertNull(CompatUtils.invokeMethod(new DerivedClass(), "derivedMethod",
+                new Class<?>[] {Integer.TYPE}, new Object[] {1}));
+    }
+
+    public void testInvokeMethod_MethodWithParameters_WithEmptyParameterList() {
+        assertNull(CompatUtils.invokeMethod(new DerivedClass(), "overloadedMethod",
+                new Class<?>[] {Integer.TYPE}, new Object[] {}));
+    }
+
+    public void testInvokeMethod_InvokeSimpleMethod() {
+        assertEquals(2, CompatUtils.invokeMethod(new DerivedClass(), "overloadedMethod",
+                new Class<?>[] {Integer.TYPE}, new Object[] {2}));
+    }
+
+    private class BaseClass {
+        public void baseMethod() {}
+    }
+
+    private class DerivedClass extends BaseClass {
+        public int derivedMethod() {
+            // This method needs to return something to differentiate a successful invocation from
+            // an unsuccessful one.
+            return 0;
+        }
+
+        public int overloadedMethod() {
+            return 1;
+        }
+
+        public int overloadedMethod(int i) {
+            return i;
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/database/NoNullCursorAsyncQueryHandlerTest.java b/tests/src/com/android/contacts/database/NoNullCursorAsyncQueryHandlerTest.java
new file mode 100644
index 0000000..987882b
--- /dev/null
+++ b/tests/src/com/android/contacts/database/NoNullCursorAsyncQueryHandlerTest.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2012 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.database;
+
+import android.database.Cursor;
+import android.net.Uri;
+import android.test.InstrumentationTestCase;
+import android.test.mock.MockContentProvider;
+import android.test.mock.MockContentResolver;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Unit test for {@link NoNullCursorAsyncQueryHandler}
+ */
+@SmallTest
+public class NoNullCursorAsyncQueryHandlerTest extends InstrumentationTestCase {
+
+    private MockContentResolver mMockContentResolver;
+
+    private static final String AUTHORITY = "com.android.contacts.common.unittest";
+    private static final Uri URI = Uri.parse("content://" + AUTHORITY);
+    private static final String[] PROJECTION = new String[]{"column1", "column2"};
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        mMockContentResolver = new MockContentResolver();
+        final MockContentProvider mMockContentProvider = new MockContentProvider() {
+            @Override
+            public Cursor query(Uri uri, String[] projection, String selection,
+                    String[] selectionArgs,
+                    String sortOrder) {
+                return null;
+            }
+        };
+
+        mMockContentResolver.addProvider(AUTHORITY, mMockContentProvider);
+    }
+
+    public void testCursorIsNotNull() throws Throwable {
+
+        final CountDownLatch latch = new CountDownLatch(1);
+        final ObjectHolder<Cursor> cursorHolder = ObjectHolder.newInstance();
+        final ObjectHolder<Boolean> ranHolder = ObjectHolder.newInstance(false);
+
+        runTestOnUiThread(new Runnable() {
+
+            @Override
+            public void run() {
+
+                NoNullCursorAsyncQueryHandler handler = new NoNullCursorAsyncQueryHandler(
+                        mMockContentResolver) {
+                    @Override
+                    protected void onNotNullableQueryComplete(int token, Object cookie,
+                            Cursor cursor) {
+                        cursorHolder.obj = cursor;
+                        ranHolder.obj = true;
+                        latch.countDown();
+                    }
+                };
+                handler.startQuery(1, null, URI, PROJECTION, null, null, null);
+            }
+        });
+
+        latch.await(5, TimeUnit.SECONDS);
+        assertFalse(cursorHolder.obj == null);
+        assertTrue(ranHolder.obj);
+    }
+
+    public void testCursorContainsCorrectCookies() throws Throwable {
+        final ObjectHolder<Boolean> ranHolder = ObjectHolder.newInstance(false);
+        final CountDownLatch latch = new CountDownLatch(1);
+        final ObjectHolder<Object> cookieHolder = ObjectHolder.newInstance();
+        final String cookie = "TEST COOKIE";
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                final NoNullCursorAsyncQueryHandler handler = new NoNullCursorAsyncQueryHandler(
+                        mMockContentResolver) {
+                    @Override
+                    protected void onNotNullableQueryComplete(int token, Object cookie,
+                            Cursor cursor) {
+                        ranHolder.obj = true;
+                        cookieHolder.obj = cookie;
+                        latch.countDown();
+                    }
+                };
+                handler.startQuery(1, cookie, URI, PROJECTION, null, null, null);
+            }
+        });
+
+        latch.await(5, TimeUnit.SECONDS);
+        assertSame(cookie, cookieHolder.obj);
+        assertTrue(ranHolder.obj);
+    }
+
+    public void testCursorContainsCorrectColumns() throws Throwable {
+        final ObjectHolder<Boolean> ranHolder = ObjectHolder.newInstance(false);
+        final CountDownLatch latch = new CountDownLatch(1);
+        final ObjectHolder<Cursor> cursorHolder = ObjectHolder.newInstance();
+        final String cookie = "TEST COOKIE";
+        runTestOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                final NoNullCursorAsyncQueryHandler handler = new NoNullCursorAsyncQueryHandler(
+                        mMockContentResolver) {
+                    @Override
+                    protected void onNotNullableQueryComplete(int token, Object cookie,
+                            Cursor cursor) {
+                        ranHolder.obj = true;
+                        cursorHolder.obj = cursor;
+                        latch.countDown();
+                    }
+                };
+                handler.startQuery(1, cookie, URI, PROJECTION, null, null, null);
+            }
+        });
+
+        latch.await(5, TimeUnit.SECONDS);
+        assertSame(PROJECTION, cursorHolder.obj.getColumnNames());
+        assertTrue(ranHolder.obj);
+    }
+
+    private static class ObjectHolder<T> {
+        public T obj;
+
+        public static <E> ObjectHolder<E> newInstance() {
+            return new ObjectHolder<E>();
+        }
+
+        public static <E> ObjectHolder<E> newInstance(E value) {
+            ObjectHolder<E> holder = new ObjectHolder<E>();
+            holder.obj = value;
+            return holder;
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/database/SimContactDaoTests.java b/tests/src/com/android/contacts/database/SimContactDaoTests.java
new file mode 100644
index 0000000..18a3f09
--- /dev/null
+++ b/tests/src/com/android/contacts/database/SimContactDaoTests.java
@@ -0,0 +1,788 @@
+/*
+ * 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.database;
+
+import static android.os.Build.VERSION_CODES;
+
+import static com.android.contacts.tests.ContactsMatchers.DataCursor.hasEmail;
+import static com.android.contacts.tests.ContactsMatchers.DataCursor.hasName;
+import static com.android.contacts.tests.ContactsMatchers.DataCursor.hasPhone;
+import static com.android.contacts.tests.ContactsMatchers.isSimContactWithNameAndPhone;
+
+import static org.hamcrest.Matchers.allOf;
+import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.ContentProvider;
+import android.content.ContentProviderOperation;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.CancellationSignal;
+import android.os.RemoteException;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.Data;
+import android.support.annotation.RequiresApi;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.LargeTest;
+import android.support.test.filters.SdkSuppress;
+import android.support.test.filters.SmallTest;
+import android.support.test.filters.Suppress;
+import android.support.test.runner.AndroidJUnit4;
+import android.test.mock.MockContentResolver;
+import android.test.mock.MockContext;
+
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.test.mocks.MockContentProvider;
+import com.android.contacts.tests.AccountsTestHelper;
+import com.android.contacts.tests.ContactsMatchers;
+import com.android.contacts.tests.SimContactsTestHelper;
+import com.android.contacts.tests.StringableCursor;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+
+import org.hamcrest.Matchers;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.experimental.runners.Enclosed;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+
+@RunWith(Enclosed.class)
+public class SimContactDaoTests {
+
+    // Some random area codes for generating realistic US phones when
+    // generating fake data for the SIM contacts or CP2
+    private static final String[] AREA_CODES = 
+            {"360", "509", "416", "831", "212", "208"};
+    private static final Random sRandom = new Random();
+
+    // Approximate maximum number of contacts that can be stored on a SIM card for testing
+    // boundary cases
+    public static final int MAX_SIM_CONTACTS = 600;
+
+    // On pre-M addAccountExplicitly (which we call via AccountsTestHelper) causes a
+    // SecurityException to be thrown unless we add AUTHENTICATE_ACCOUNTS permission to the app
+    // manifest. Instead of adding the extra permission just for tests we'll just only run them
+    // on M or newer
+    @SdkSuppress(minSdkVersion = VERSION_CODES.M)
+    // Lollipop MR1 is required for removeAccountExplicitly
+    @RequiresApi(api = VERSION_CODES.LOLLIPOP_MR1)
+    @LargeTest
+    @RunWith(AndroidJUnit4.class)
+    public static class ImportIntegrationTest {
+        private AccountWithDataSet mAccount;
+        private AccountsTestHelper mAccountsHelper;
+        private ContentResolver mResolver;
+
+        @Before
+        public void setUp() throws Exception {
+            mAccountsHelper = new AccountsTestHelper();
+            mAccount = mAccountsHelper.addTestAccount();
+            mResolver = getContext().getContentResolver();
+        }
+
+        @After
+        public void tearDown() throws Exception {
+            mAccountsHelper.cleanup();
+        }
+
+        @Test
+        public void importFromSim() throws Exception {
+            final SimContactDao sut = SimContactDao.create(getContext());
+
+            sut.importContacts(Arrays.asList(
+                    new SimContact(1, "Test One", "15095550101"),
+                    new SimContact(2, "Test Two", "15095550102"),
+                    new SimContact(3, "Test Three", "15095550103", new String[] {
+                            "user@example.com", "user2@example.com"
+                    })
+            ), mAccount);
+
+            Cursor cursor = queryContactWithName("Test One");
+            assertThat(cursor, ContactsMatchers.hasCount(2));
+            assertThat(cursor, hasName("Test One"));
+            assertThat(cursor, hasPhone("15095550101"));
+            cursor.close();
+
+            cursor = queryContactWithName("Test Two");
+            assertThat(cursor, ContactsMatchers.hasCount(2));
+            assertThat(cursor, hasName("Test Two"));
+            assertThat(cursor, hasPhone("15095550102"));
+            cursor.close();
+
+            cursor = queryContactWithName("Test Three");
+            assertThat(cursor, ContactsMatchers.hasCount(4));
+            assertThat(cursor, hasName("Test Three"));
+            assertThat(cursor, hasPhone("15095550103"));
+            assertThat(cursor, allOf(hasEmail("user@example.com"), hasEmail("user2@example.com")));
+            cursor.close();
+        }
+
+        @Test
+        public void importContactWhichOnlyHasName() throws Exception {
+            final SimContactDao sut = SimContactDao.create(getContext());
+
+            sut.importContacts(Arrays.asList(
+                    new SimContact(1, "Test importJustName", null, null)
+            ), mAccount);
+
+            Cursor cursor = queryAllDataInAccount();
+
+            assertThat(cursor, ContactsMatchers.hasCount(1));
+            assertThat(cursor, hasName("Test importJustName"));
+            cursor.close();
+        }
+
+        @Test
+        public void importContactWhichOnlyHasPhone() throws Exception {
+            final SimContactDao sut = SimContactDao.create(getContext());
+
+            sut.importContacts(Arrays.asList(
+                    new SimContact(1, null, "15095550111", null)
+            ), mAccount);
+
+            Cursor cursor = queryAllDataInAccount();
+
+            assertThat(cursor, ContactsMatchers.hasCount(1));
+            assertThat(cursor, hasPhone("15095550111"));
+            cursor.close();
+        }
+
+        @Test
+        public void ignoresEmptyContacts() throws Exception {
+            final SimContactDao sut = SimContactDao.create(getContext());
+
+            // This probably isn't possible but we'll test it to demonstrate expected behavior and
+            // just in case it does occur
+            sut.importContacts(Arrays.asList(
+                    new SimContact(1, null, null, null),
+                    new SimContact(2, null, null, null),
+                    new SimContact(3, null, null, null),
+                    new SimContact(4, "Not null", null, null)
+            ), mAccount);
+
+            final Cursor contactsCursor = queryAllRawContactsInAccount();
+            assertThat(contactsCursor, ContactsMatchers.hasCount(1));
+            contactsCursor.close();
+
+            final Cursor dataCursor = queryAllDataInAccount();
+            assertThat(dataCursor, ContactsMatchers.hasCount(1));
+
+            dataCursor.close();
+        }
+
+        /**
+         * Tests importing a large number of contacts
+         *
+         * Make sure that {@link android.os.TransactionTooLargeException} is not thrown
+         */
+        @Test
+        public void largeImport() throws Exception {
+            final SimContactDao sut = SimContactDao.create(getContext());
+
+            final List<SimContact> contacts = new ArrayList<>();
+
+            for (int i = 0; i < MAX_SIM_CONTACTS; i++) {
+                contacts.add(new SimContact(i + 1, "Contact " + (i + 1), randomPhone(),
+                        new String[] { randomEmail("contact" + (i + 1) + "_")}));
+            }
+
+            sut.importContacts(contacts, mAccount);
+
+            final Cursor contactsCursor = queryAllRawContactsInAccount();
+            assertThat(contactsCursor, ContactsMatchers.hasCount(MAX_SIM_CONTACTS));
+            contactsCursor.close();
+
+            final Cursor dataCursor = queryAllDataInAccount();
+            // Each contact has one data row for each of name, phone and email
+            assertThat(dataCursor, ContactsMatchers.hasCount(MAX_SIM_CONTACTS * 3));
+
+            dataCursor.close();
+        }
+
+        private Cursor queryAllRawContactsInAccount() {
+            return new StringableCursor(mResolver.query(ContactsContract.RawContacts.CONTENT_URI,
+                    null, ContactsContract.RawContacts.ACCOUNT_NAME + "=? AND " +
+                            ContactsContract.RawContacts.ACCOUNT_TYPE+ "=?",
+                    new String[] {
+                            mAccount.name,
+                            mAccount.type
+                    }, null));
+        }
+
+        private Cursor queryAllDataInAccount() {
+            return new StringableCursor(mResolver.query(Data.CONTENT_URI, null,
+                    ContactsContract.RawContacts.ACCOUNT_NAME + "=? AND " +
+                            ContactsContract.RawContacts.ACCOUNT_TYPE+ "=?",
+                    new String[] {
+                            mAccount.name,
+                            mAccount.type
+                    }, null));
+        }
+
+        private Cursor queryContactWithName(String name) {
+            return new StringableCursor(mResolver.query(Data.CONTENT_URI, null,
+                    ContactsContract.RawContacts.ACCOUNT_NAME + "=? AND " +
+                            ContactsContract.RawContacts.ACCOUNT_TYPE+ "=? AND " +
+                            Data.DISPLAY_NAME + "=?",
+                    new String[] {
+                            mAccount.name,
+                            mAccount.type,
+                            name
+                    }, null));
+        }
+    }
+
+    /**
+     * Tests for {@link SimContactDao#findAccountsOfExistingSimContacts(List)}
+     *
+     * These are integration tests that query CP2 so that the SQL will be validated in addition
+     * to the detection algorithm
+     */
+    @SdkSuppress(minSdkVersion = VERSION_CODES.M)
+    // Lollipop MR1 is required for removeAccountExplicitly
+    @RequiresApi(api = VERSION_CODES.LOLLIPOP_MR1)
+    @LargeTest
+    @RunWith(AndroidJUnit4.class)
+    public static class FindAccountsIntegrationTests {
+
+        private Context mContext;
+        private AccountsTestHelper mAccountHelper;
+        private List<AccountWithDataSet> mAccounts;
+        // We need to generate something distinct to prevent flakiness on devices that may not
+        // start with an empty CP2 DB
+        private String mNameSuffix;
+
+        private static AccountWithDataSet sSeedAccount;
+
+        @BeforeClass
+        public static void setUpClass() throws Exception {
+            final AccountsTestHelper helper = new AccountsTestHelper(
+                    InstrumentationRegistry.getContext());
+            sSeedAccount = helper.addTestAccount(helper.generateAccountName("seedAccount"));
+
+            seedCp2();
+        }
+
+        @AfterClass
+        public static void tearDownClass() {
+            final AccountsTestHelper helper = new AccountsTestHelper(
+                    InstrumentationRegistry.getContext());
+            helper.removeTestAccount(sSeedAccount);
+            sSeedAccount = null;
+        }
+
+        @Before
+        public void setUp() throws Exception {
+            mContext = InstrumentationRegistry.getTargetContext();
+            mAccountHelper = new AccountsTestHelper(InstrumentationRegistry.getContext());
+            mAccounts = new ArrayList<>();
+            mNameSuffix = getClass().getSimpleName() + "At" + System.nanoTime();
+
+            seedCp2();
+        }
+
+        @After
+        public void tearDown() {
+            for (AccountWithDataSet account : mAccounts) {
+                mAccountHelper.removeTestAccount(account);
+            }
+        }
+
+        @Test
+        public void returnsEmptyMapWhenNoMatchingContactsExist() {
+            mAccounts.add(mAccountHelper.addTestAccount());
+
+            final SimContactDao sut = createDao();
+
+            final List<SimContact> contacts = Arrays.asList(
+                    new SimContact(1, "Name 1 " + mNameSuffix, "5550101"),
+                    new SimContact(2, "Name 2 " + mNameSuffix, "5550102"),
+                    new SimContact(3, "Name 3 " + mNameSuffix, "5550103"),
+                    new SimContact(4, "Name 4 " + mNameSuffix, "5550104"));
+
+            final Map<AccountWithDataSet, Set<SimContact>> existing = sut
+                    .findAccountsOfExistingSimContacts(contacts);
+
+            assertTrue(existing.isEmpty());
+        }
+
+        @Test
+        public void hasAccountWithMatchingContactsWhenSingleMatchingContactExists()
+                throws Exception {
+            final SimContactDao sut = createDao();
+
+            final AccountWithDataSet account = mAccountHelper.addTestAccount(
+                    mAccountHelper.generateAccountName("primary_"));
+            mAccounts.add(account);
+
+            final SimContact existing1 =
+                    new SimContact(2, "Exists 2 " + mNameSuffix, "5550102");
+            final SimContact existing2 =
+                    new SimContact(4, "Exists 4 " + mNameSuffix, "5550104");
+
+            final List<SimContact> contacts = Arrays.asList(
+                    new SimContact(1, "Missing 1 " + mNameSuffix, "5550101"),
+                    new SimContact(existing1),
+                    new SimContact(3, "Missing 3 " + mNameSuffix, "5550103"),
+                    new SimContact(existing2));
+
+            sut.importContacts(Arrays.asList(
+                    new SimContact(existing1),
+                    new SimContact(existing2)
+            ), account);
+
+
+            final Map<AccountWithDataSet, Set<SimContact>> existing = sut
+                    .findAccountsOfExistingSimContacts(contacts);
+
+            assertThat(existing.size(), equalTo(1));
+            assertThat(existing.get(account),
+                    Matchers.<Set<SimContact>>equalTo(ImmutableSet.of(existing1, existing2)));
+        }
+
+        @Test
+        public void hasMultipleAccountsWhenMultipleMatchingContactsExist() throws Exception {
+            final SimContactDao sut = createDao();
+
+            final AccountWithDataSet account1 = mAccountHelper.addTestAccount(
+                    mAccountHelper.generateAccountName("account1_"));
+            mAccounts.add(account1);
+            final AccountWithDataSet account2 = mAccountHelper.addTestAccount(
+                    mAccountHelper.generateAccountName("account2_"));
+            mAccounts.add(account2);
+
+            final SimContact existsInBoth =
+                    new SimContact(2, "Exists Both " + mNameSuffix, "5550102");
+            final SimContact existsInAccount1 =
+                    new SimContact(4, "Exists 1 " + mNameSuffix, "5550104");
+            final SimContact existsInAccount2 =
+                    new SimContact(5, "Exists 2 " + mNameSuffix, "5550105");
+
+            final List<SimContact> contacts = Arrays.asList(
+                    new SimContact(1, "Missing 1 " + mNameSuffix, "5550101"),
+                    new SimContact(existsInBoth),
+                    new SimContact(3, "Missing 3 " + mNameSuffix, "5550103"),
+                    new SimContact(existsInAccount1),
+                    new SimContact(existsInAccount2));
+
+            sut.importContacts(Arrays.asList(
+                    new SimContact(existsInBoth),
+                    new SimContact(existsInAccount1)
+            ), account1);
+
+            sut.importContacts(Arrays.asList(
+                    new SimContact(existsInBoth),
+                    new SimContact(existsInAccount2)
+            ), account2);
+
+
+            final Map<AccountWithDataSet, Set<SimContact>> existing = sut
+                    .findAccountsOfExistingSimContacts(contacts);
+
+            assertThat(existing.size(), equalTo(2));
+            assertThat(existing, Matchers.<Map<AccountWithDataSet, Set<SimContact>>>equalTo(
+                    ImmutableMap.<AccountWithDataSet, Set<SimContact>>of(
+                            account1, ImmutableSet.of(existsInBoth, existsInAccount1),
+                            account2, ImmutableSet.of(existsInBoth, existsInAccount2))));
+        }
+
+        @Test
+        public void matchesByNameIfSimContactHasNoPhone() throws Exception {
+            final SimContactDao sut = createDao();
+
+            final AccountWithDataSet account = mAccountHelper.addTestAccount(
+                    mAccountHelper.generateAccountName("account_"));
+            mAccounts.add(account);
+
+            final SimContact noPhone = new SimContact(1, "Nophone " + mNameSuffix, null);
+            final SimContact otherExisting = new SimContact(
+                    5, "Exists 1 " + mNameSuffix, "5550105");
+
+            final List<SimContact> contacts = Arrays.asList(
+                    new SimContact(noPhone),
+                    new SimContact(2, "Name 2 " + mNameSuffix, "5550102"),
+                    new SimContact(3, "Name 3 " + mNameSuffix, "5550103"),
+                    new SimContact(4, "Name 4 " + mNameSuffix, "5550104"),
+                    new SimContact(otherExisting));
+
+            sut.importContacts(Arrays.asList(
+                    new SimContact(noPhone),
+                    new SimContact(otherExisting)
+            ), account);
+
+            final Map<AccountWithDataSet, Set<SimContact>> existing = sut
+                    .findAccountsOfExistingSimContacts(contacts);
+
+            assertThat(existing.size(), equalTo(1));
+            assertThat(existing.get(account), Matchers.<Set<SimContact>>equalTo(
+                    ImmutableSet.of(noPhone, otherExisting)));
+        }
+
+        @Test
+        public void largeNumberOfSimContacts() throws Exception {
+            final SimContactDao sut = createDao();
+
+            final List<SimContact> contacts = new ArrayList<>();
+            for (int i = 0; i < MAX_SIM_CONTACTS; i++) {
+                contacts.add(new SimContact(
+                        i + 1, "Contact " + (i + 1) + " " + mNameSuffix, randomPhone()));
+            }
+            // The work has to be split into batches to avoid hitting SQL query parameter limits
+            // so test contacts that will be at boundary points
+            final SimContact imported1 = contacts.get(0);
+            final SimContact imported2 = contacts.get(99);
+            final SimContact imported3 = contacts.get(100);
+            final SimContact imported4 = contacts.get(101);
+            final SimContact imported5 = contacts.get(MAX_SIM_CONTACTS - 1);
+
+            final AccountWithDataSet account = mAccountHelper.addTestAccount(
+                    mAccountHelper.generateAccountName("account_"));
+            mAccounts.add(account);
+
+            sut.importContacts(Arrays.asList(imported1, imported2, imported3, imported4, imported5),
+                    account);
+
+            mAccounts.add(account);
+
+            final Map<AccountWithDataSet, Set<SimContact>> existing = sut
+                    .findAccountsOfExistingSimContacts(contacts);
+
+            assertThat(existing.size(), equalTo(1));
+            assertThat(existing.get(account), Matchers.<Set<SimContact>>equalTo(
+                    ImmutableSet.of(imported1, imported2, imported3, imported4, imported5)));
+
+        }
+
+        private SimContactDao createDao() {
+            return SimContactDao.create(mContext);
+        }
+
+        /**
+         * Adds a bunch of random contact data to CP2 to make the test environment more realistic
+         */
+        private static void seedCp2() throws RemoteException, OperationApplicationException {
+
+            final ArrayList<ContentProviderOperation> ops = new ArrayList<>();
+
+            appendCreateContact("John Smith", sSeedAccount, ops);
+            appendCreateContact("Marcus Seed", sSeedAccount, ops);
+            appendCreateContact("Gary Seed", sSeedAccount, ops);
+            appendCreateContact("Michael Seed", sSeedAccount, ops);
+            appendCreateContact("Isaac Seed", sSeedAccount, ops);
+            appendCreateContact("Sean Seed", sSeedAccount, ops);
+            appendCreateContact("Nate Seed", sSeedAccount, ops);
+            appendCreateContact("Andrey Seed", sSeedAccount, ops);
+            appendCreateContact("Cody Seed", sSeedAccount, ops);
+            appendCreateContact("John Seed", sSeedAccount, ops);
+            appendCreateContact("Alex Seed", sSeedAccount, ops);
+
+            InstrumentationRegistry.getTargetContext()
+                    .getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
+        }
+
+        private static void appendCreateContact(String name, AccountWithDataSet account,
+                ArrayList<ContentProviderOperation> ops) {
+            final int emailCount = sRandom.nextInt(10);
+            final int phoneCount = sRandom.nextInt(5);
+
+            final List<String> phones = new ArrayList<>();
+            for (int i = 0; i < phoneCount; i++) {
+                phones.add(randomPhone());
+            }
+            final List<String> emails = new ArrayList<>();
+            for (int i = 0; i < emailCount; i++) {
+                emails.add(randomEmail(name));
+            }
+            appendCreateContact(name, phones, emails, account, ops);
+        }
+
+
+        private static void appendCreateContact(String name, List<String> phoneNumbers,
+                List<String> emails, AccountWithDataSet account, List<ContentProviderOperation> ops) {
+            int index = ops.size();
+
+            ops.add(account.newRawContactOperation());
+            ops.add(insertIntoData(name, StructuredName.CONTENT_ITEM_TYPE, index));
+            for (String phone : phoneNumbers) {
+                ops.add(insertIntoData(phone, Phone.CONTENT_ITEM_TYPE, Phone.TYPE_MOBILE, index));
+            }
+            for (String email : emails) {
+                ops.add(insertIntoData(email, Email.CONTENT_ITEM_TYPE, Email.TYPE_HOME, index));
+            }
+        }
+
+        private static ContentProviderOperation insertIntoData(String value, String mimeType,
+                int idBackReference) {
+            return ContentProviderOperation.newInsert(Data.CONTENT_URI)
+                    .withValue(Data.DATA1, value)
+                    .withValue(Data.MIMETYPE, mimeType)
+                    .withValueBackReference(Data.RAW_CONTACT_ID, idBackReference).build();
+        }
+
+        private static ContentProviderOperation insertIntoData(String value, String mimeType,
+                int type, int idBackReference) {
+            return ContentProviderOperation.newInsert(Data.CONTENT_URI)
+                    .withValue(Data.DATA1, value)
+                    .withValue(ContactsContract.Data.DATA2, type)
+                    .withValue(Data.MIMETYPE, mimeType)
+                    .withValueBackReference(Data.RAW_CONTACT_ID, idBackReference).build();
+        }
+    }
+
+    /**
+     * Tests for {@link SimContactDao#loadContactsForSim(SimCard)}
+     *
+     * These are unit tests that verify that {@link SimContact}s are created correctly from
+     * the cursors that are returned by queries to the IccProvider
+     */
+    @SmallTest
+    @RunWith(AndroidJUnit4.class)
+    public static class LoadContactsUnitTests {
+
+        private MockContentProvider mMockIccProvider;
+        private Context mContext;
+
+        @Before
+        public void setUp() {
+            mContext = mock(MockContext.class);
+            final MockContentResolver mockResolver = new MockContentResolver();
+            mMockIccProvider = new MockContentProvider();
+            mockResolver.addProvider("icc", mMockIccProvider);
+            when(mContext.getContentResolver()).thenReturn(mockResolver);
+        }
+
+
+        @Test
+        public void createsContactsFromCursor() {
+            mMockIccProvider.expect(MockContentProvider.Query.forAnyUri())
+                    .withDefaultProjection(
+                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
+                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
+                    .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");
+
+            final SimContactDao sut = SimContactDao.create(mContext);
+            final List<SimContact> contacts = sut
+                    .loadContactsForSim(new SimCard("123", "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"
+                            })
+                    )));
+        }
+
+        @Test
+        public void excludesEmptyContactsFromResult() {
+            mMockIccProvider.expect(MockContentProvider.Query.forAnyUri())
+                    .withDefaultProjection(
+                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
+                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
+                    .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");
+
+            final SimContactDao sut = SimContactDao.create(mContext);
+            final List<SimContact> contacts = sut
+                    .loadContactsForSim(new SimCard("123", "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" })
+                    )));
+        }
+
+        @Test
+        public void usesSimCardSubscriptionIdIfAvailable() {
+            mMockIccProvider.expectQuery(SimContactDaoImpl.ICC_CONTENT_URI.buildUpon()
+                    .appendPath("subId").appendPath("2").build())
+                    .withDefaultProjection(
+                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
+                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
+                    .withAnyProjection()
+                    .withAnySelection()
+                    .withAnySortOrder()
+                    .returnEmptyCursor();
+
+            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();
+        }
+
+        @Test
+        public void returnsEmptyListForEmptyCursor() {
+            mMockIccProvider.expect(MockContentProvider.Query.forAnyUri())
+                    .withDefaultProjection(
+                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
+                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
+                    .withAnyProjection()
+                    .withAnySelection()
+                    .withAnySortOrder()
+                    .returnEmptyCursor();
+
+            final SimContactDao sut = SimContactDao.create(mContext);
+            List<SimContact> result = sut
+                    .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us"));
+            assertTrue(result.isEmpty());
+        }
+
+        @Test
+        public void returnsEmptyListForNullCursor() {
+            mContext = mock(MockContext.class);
+            final MockContentResolver mockResolver = new MockContentResolver();
+            final ContentProvider mockProvider = mock(android.test.mock.MockContentProvider.class);
+            when(mockProvider.query(any(Uri.class), any(String[].class), anyString(),
+                    any(String[].class), anyString()))
+                    .thenReturn(null);
+            when(mockProvider.query(any(Uri.class), any(String[].class), anyString(),
+                    any(String[].class), anyString(), any(CancellationSignal.class)))
+                    .thenReturn(null);
+
+            mockResolver.addProvider("icc", mockProvider);
+            when(mContext.getContentResolver()).thenReturn(mockResolver);
+
+            final SimContactDao sut = SimContactDao.create(mContext);
+            final List<SimContact> result = sut
+                    .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us"));
+            assertTrue(result.isEmpty());
+        }
+    }
+
+    @LargeTest
+    // suppressed because failed assumptions are reported as test failures by the build server
+    @Suppress
+    @RunWith(AndroidJUnit4.class)
+    public static class LoadContactsIntegrationTest {
+        private SimContactsTestHelper mSimTestHelper;
+        private ArrayList<ContentProviderOperation> mSimSnapshot;
+
+        @Before
+        public void setUp() throws Exception {
+            mSimTestHelper = new SimContactsTestHelper();
+
+            mSimTestHelper.assumeSimWritable();
+            if (!mSimTestHelper.isSimWritable()) return;
+
+            mSimSnapshot = mSimTestHelper.captureRestoreSnapshot();
+            mSimTestHelper.deleteAllSimContacts();
+        }
+
+        @After
+        public void tearDown() throws Exception {
+            mSimTestHelper.restore(mSimSnapshot);
+        }
+
+        @Test
+        public void readFromSim() {
+            mSimTestHelper.addSimContact("Test Simone", "15095550101");
+            mSimTestHelper.addSimContact("Test Simtwo", "15095550102");
+            mSimTestHelper.addSimContact("Test Simthree", "15095550103");
+
+            final SimContactDao sut = SimContactDao.create(getContext());
+            final SimCard sim = sut.getSimCards().get(0);
+            final ArrayList<SimContact> contacts = sut.loadContactsForSim(sim);
+
+            assertThat(contacts.get(0), isSimContactWithNameAndPhone("Test Simone", "15095550101"));
+            assertThat(contacts.get(1), isSimContactWithNameAndPhone("Test Simtwo", "15095550102"));
+            assertThat(contacts.get(2),
+                    isSimContactWithNameAndPhone("Test Simthree", "15095550103"));
+        }
+    }
+
+    private static String randomPhone() {
+        return String.format(Locale.US, "1%s55501%02d",
+                AREA_CODES[sRandom.nextInt(AREA_CODES.length)],
+                sRandom.nextInt(100));
+    }
+
+    private static String randomEmail(String name) {
+        return String.format("%s%d@example.com", name.replace(" ", ".").toLowerCase(Locale.US),
+                1000 + sRandom.nextInt(1000));
+    }
+
+
+    static Context getContext() {
+        return InstrumentationRegistry.getTargetContext();
+   }
+}
diff --git a/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java b/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java
index 2b6c667..a7d5c20 100644
--- a/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java
+++ b/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java
@@ -16,294 +16,217 @@
 
 package com.android.contacts.editor;
 
-import android.test.AndroidTestCase;
-import android.test.MoreAsserts;
-import android.test.suitebuilder.annotation.SmallTest;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.test.mocks.MockAccountTypeManager;
-import com.google.common.collect.Sets;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
-import java.util.Collection;
-import java.util.Set;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 
 /**
  * Test case for {@link ContactEditorUtils}.
  *
  * adb shell am instrument -w -e class com.android.contacts.editor.ContactEditorUtilsTest \
        com.android.contacts.tests/android.test.InstrumentationTestRunner
+
+ * <p>It may make sense to just delete or move these tests since the code under test just forwards
+ * calls to {@link com.android.contacts.preference.ContactsPreferences} and that logic is already
+ * covered by {@link com.android.contacts.preference.ContactsPreferencesTest}
+ * </p>
  */
 @SmallTest
-public class ContactEditorUtilsTest extends AndroidTestCase {
-    private MockAccountTypeManager mAccountTypes;
+@RunWith(AndroidJUnit4.class)
+public class ContactEditorUtilsTest {
     private ContactEditorUtils mTarget;
 
-    private static final MockAccountType TYPE1 = new MockAccountType("type1", null, true);
-    private static final MockAccountType TYPE2 = new MockAccountType("type2", null, true);
-    private static final MockAccountType TYPE2EX = new MockAccountType("type2", "ext", true);
+    private static final String TYPE1 = "type1";
+    private static final String TYPE2 = "type2";
+    private static final String TYPE2_EXT = "ext";
 
-    // Only type 3 is "readonly".
-    private static final MockAccountType TYPE3 = new MockAccountType("type3", null, false);
+    private static final AccountWithDataSet ACCOUNT_1_A = new AccountWithDataSet("a", TYPE1, null);
+    private static final AccountWithDataSet ACCOUNT_1_B = new AccountWithDataSet("b", TYPE1, null);
 
-    private static final AccountWithDataSet ACCOUNT_1_A = new AccountWithDataSet(
-            "a", TYPE1.accountType, TYPE1.dataSet);
-    private static final AccountWithDataSet ACCOUNT_1_B = new AccountWithDataSet(
-            "b", TYPE1.accountType, TYPE1.dataSet);
-
-    private static final AccountWithDataSet ACCOUNT_2_A = new AccountWithDataSet(
-            "a", TYPE2.accountType, TYPE2.dataSet);
+    private static final AccountWithDataSet ACCOUNT_2_A = new AccountWithDataSet("a", TYPE2, null);
     private static final AccountWithDataSet ACCOUNT_2EX_A = new AccountWithDataSet(
-            "a", TYPE2EX.accountType, TYPE2EX.dataSet);
+            "a", TYPE2, TYPE2_EXT);
 
-    private static final AccountWithDataSet ACCOUNT_3_C = new AccountWithDataSet(
-            "c", TYPE3.accountType, TYPE3.dataSet);
-
-    @Override
-    protected void setUp() throws Exception {
-        // Initialize with 0 types, 0 accounts.
-        mAccountTypes = new MockAccountTypeManager(new AccountType[] {},
-                new AccountWithDataSet[] {});
-        mTarget = new ContactEditorUtils(getContext(), mAccountTypes);
+    @Before
+    public void setUp() throws Exception {
+        mTarget = ContactEditorUtils.create(InstrumentationRegistry.getTargetContext());
 
         // Clear the preferences.
         mTarget.cleanupForTest();
     }
 
-    private void setAccountTypes(AccountType... types) {
-        mAccountTypes.mTypes = types;
-    }
-
-    private void setAccounts(AccountWithDataSet... accounts) {
-        mAccountTypes.mAccounts = accounts;
-    }
-
-    public void testGetWritableAccountTypeStrings() {
-        String[] types;
-
-        // 0 writable types
-        setAccountTypes();
-
-        types = mTarget.getWritableAccountTypeStrings();
-        MoreAsserts.assertEquals(types, new String[0]);
-
-        // 1 writable type
-        setAccountTypes(TYPE1);
-
-        types = mTarget.getWritableAccountTypeStrings();
-        MoreAsserts.assertEquals(Sets.newHashSet(TYPE1.accountType), Sets.newHashSet(types));
-
-        // 2 writable types
-        setAccountTypes(TYPE1, TYPE2EX);
-
-        types = mTarget.getWritableAccountTypeStrings();
-        MoreAsserts.assertEquals(Sets.newHashSet(TYPE1.accountType, TYPE2EX.accountType),
-                Sets.newHashSet(types));
-
-        // 3 writable types + 1 readonly type
-        setAccountTypes(TYPE1, TYPE2, TYPE2EX, TYPE3);
-
-        types = mTarget.getWritableAccountTypeStrings();
-        MoreAsserts.assertEquals(
-                Sets.newHashSet(TYPE1.accountType, TYPE2.accountType, TYPE2EX.accountType),
-                Sets.newHashSet(types));
-    }
-
     /**
      * Test for
-     * - {@link ContactEditorUtils#saveDefaultAndAllAccounts}
-     * - {@link ContactEditorUtils#getDefaultAccount}
-     * - {@link ContactEditorUtils#getSavedAccounts()}
+     * - {@link ContactEditorUtils#saveDefaultAccount}
+     * - {@link ContactEditorUtils#getOnlyOrDefaultAccount}
      */
-    public void testSaveDefaultAndAllAccounts() {
-        // Use these account types here.
-        setAccountTypes(TYPE1, TYPE2);
+    @Test
+    public void testSaveDefaultAccount() {
+        mTarget.saveDefaultAccount(null);
+        assertNull(mTarget.getOnlyOrDefaultAccount(Collections.<AccountWithDataSet>emptyList()));
 
-        // If none has been saved, it should return an empty list.
-        assertEquals(0, mTarget.getSavedAccounts().size());
-
-        // Save 0 accounts.
-        mAccountTypes.mAccounts = new AccountWithDataSet[]{};
-        mTarget.saveDefaultAndAllAccounts(null);
-        assertNull(mTarget.getDefaultAccount());
-        MoreAsserts.assertEquals(
-                Sets.newHashSet(mAccountTypes.mAccounts),
-                toSet(mTarget.getSavedAccounts()));
-
-        // 1 account
-        mAccountTypes.mAccounts = new AccountWithDataSet[]{ACCOUNT_1_A};
-        mTarget.saveDefaultAndAllAccounts(ACCOUNT_1_A);
-        assertEquals(ACCOUNT_1_A, mTarget.getDefaultAccount());
-        MoreAsserts.assertEquals(
-                Sets.newHashSet(mAccountTypes.mAccounts),
-                toSet(mTarget.getSavedAccounts()));
-
-        // 2 accounts
-        mAccountTypes.mAccounts = new AccountWithDataSet[]{ACCOUNT_1_A, ACCOUNT_1_B};
-        mTarget.saveDefaultAndAllAccounts(ACCOUNT_1_B);
-        assertEquals(ACCOUNT_1_B, mTarget.getDefaultAccount());
-        MoreAsserts.assertEquals(
-                Sets.newHashSet(mAccountTypes.mAccounts),
-                toSet(mTarget.getSavedAccounts()));
-
-        // 2 accounts, and save null as the default.  Even though there are accounts, the saved
-        // account list should be empty in this case.
-        mTarget.saveDefaultAndAllAccounts(null);
-        assertNull(mTarget.getDefaultAccount());
-        assertEquals(0, mTarget.getSavedAccounts().size());
-    }
-
-    public void testIsAccountValid() {
-        // Use these account types here.
-        setAccountTypes(TYPE1, TYPE2);
-
-        // 0 accounts
-        mAccountTypes.mAccounts = new AccountWithDataSet[]{};
-        assertFalse(mTarget.isValidAccount(ACCOUNT_1_A));
-        assertTrue(mTarget.isValidAccount(null)); // null is always valid
-
-        // 2 accounts
-        mAccountTypes.mAccounts = new AccountWithDataSet[]{ACCOUNT_1_A, ACCOUNT_2_A};
-        assertTrue(mTarget.isValidAccount(ACCOUNT_1_A));
-        assertTrue(mTarget.isValidAccount(ACCOUNT_2_A));
-        assertFalse(mTarget.isValidAccount(ACCOUNT_2EX_A));
-        assertTrue(mTarget.isValidAccount(null)); // null is always valid
+        mTarget.saveDefaultAccount(ACCOUNT_1_A);
+        assertEquals(ACCOUNT_1_A, mTarget.getOnlyOrDefaultAccount(Collections.
+                <AccountWithDataSet>emptyList()));
     }
 
     /**
-     * Tests for {@link ContactEditorUtils#shouldShowAccountChangedNotification()}, starting with
-     * 0 accounts.
+     * Tests for
+     * {@link ContactEditorUtils#shouldShowAccountChangedNotification(List<AccountWithDataSet>)},
+     * starting with 0 accounts.
      */
+    @Test
     public void testShouldShowAccountChangedNotification_0Accounts() {
-        // There's always at least one writable type...
-        setAccountTypes(TYPE1);
-
-        // First launch -- always true.
-        assertTrue(mTarget.shouldShowAccountChangedNotification());
+        List<AccountWithDataSet> currentAccounts = new ArrayList<>();
+        assertTrue(mTarget.shouldShowAccountChangedNotification(currentAccounts));
 
         // We show the notification here, and user clicked "add account"
-        setAccounts(ACCOUNT_1_A);
+        currentAccounts.add(ACCOUNT_1_A);
 
         // Now we open the contact editor with the new account.
 
         // When closing the editor, we save the default account.
-        mTarget.saveDefaultAndAllAccounts(ACCOUNT_1_A);
+        mTarget.saveDefaultAccount(ACCOUNT_1_A);
 
         // Next time the user creates a contact, we don't show the notification.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(currentAccounts));
 
         // User added a new writable account, ACCOUNT_1_B.
-        setAccounts(ACCOUNT_1_A, ACCOUNT_1_B);
+        currentAccounts.add(ACCOUNT_1_B);
 
         // Since default account is still ACCOUNT_1_A, we don't show the notification.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(currentAccounts));
 
         // User saved a new contact.  We update the account list and the default account.
-        mTarget.saveDefaultAndAllAccounts(ACCOUNT_1_B);
+        mTarget.saveDefaultAccount(ACCOUNT_1_B);
 
         // User created another contact.  Now we don't show the notification.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(currentAccounts));
 
         // User installed a new contact sync adapter...
 
-        // Added a new account type: TYPE2, and the TYPE2EX extension.
-        setAccountTypes(TYPE1, TYPE2, TYPE2EX);
         // Add new accounts: ACCOUNT_2_A, ACCOUNT_2EX_A.
-        setAccounts(ACCOUNT_1_A, ACCOUNT_1_B, ACCOUNT_2_A, ACCOUNT_2EX_A);
+        currentAccounts.add(ACCOUNT_2_A);
+        currentAccounts.add(ACCOUNT_2EX_A);
 
         // New added account but default account is still not changed, so no notification.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(currentAccounts));
 
         // User saves a new contact, with a different default account.
-        mTarget.saveDefaultAndAllAccounts(ACCOUNT_2_A);
+        mTarget.saveDefaultAccount(ACCOUNT_2_A);
 
         // Next time user creates a contact, no notification.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(currentAccounts));
 
         // Remove ACCOUNT_2EX_A.
-        setAccountTypes(TYPE1, TYPE2, TYPE2EX);
-        setAccounts(ACCOUNT_1_A, ACCOUNT_1_B, ACCOUNT_2_A);
+        currentAccounts.remove(ACCOUNT_2EX_A);
 
         // ACCOUNT_2EX_A was not default, so no notification either.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(currentAccounts));
 
-        // Remove ACCOUNT_1_B, which is default.
-        setAccountTypes(TYPE1, TYPE2, TYPE2EX);
-        setAccounts(ACCOUNT_1_A, ACCOUNT_1_B);
+        // Remove ACCOUNT_2_A, which is default.
+        currentAccounts.remove(ACCOUNT_2_A);
 
         // Now we show the notification.
-        assertTrue(mTarget.shouldShowAccountChangedNotification());
+        assertTrue(mTarget.shouldShowAccountChangedNotification(currentAccounts));
 
         // Do not save the default account, and add a new account now.
-        setAccountTypes(TYPE1, TYPE2, TYPE2EX);
-        setAccounts(ACCOUNT_1_A, ACCOUNT_1_B, ACCOUNT_2EX_A);
+        currentAccounts.add(ACCOUNT_2EX_A);
 
         // No default account, so show notification.
-        assertTrue(mTarget.shouldShowAccountChangedNotification());
+        assertTrue(mTarget.shouldShowAccountChangedNotification(currentAccounts));
     }
 
     /**
-     * Tests for {@link ContactEditorUtils#shouldShowAccountChangedNotification()}, starting with
-     * 1 accounts.
+     * Tests for
+     * {@link ContactEditorUtils#shouldShowAccountChangedNotification(List<AccountWithDataSet>)},
+     * starting with 1 accounts.
      */
+    @Test
     public void testShouldShowAccountChangedNotification_1Account() {
-        setAccountTypes(TYPE1, TYPE2);
-        setAccounts(ACCOUNT_1_A);
-
-        // First launch -- always true.
-        assertTrue(mTarget.shouldShowAccountChangedNotification());
+        // Always returns false when 1 writable account.
+        assertFalse(mTarget.shouldShowAccountChangedNotification(
+                Collections.singletonList(ACCOUNT_1_A)));
 
         // User saves a new contact.
-        mTarget.saveDefaultAndAllAccounts(ACCOUNT_1_A);
+        mTarget.saveDefaultAccount(ACCOUNT_1_A);
 
         // Next time, no notification.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(
+                Collections.singletonList(ACCOUNT_1_A)));
 
         // The rest is the same...
     }
 
     /**
-     * Tests for {@link ContactEditorUtils#shouldShowAccountChangedNotification()}, starting with
-     * 0 accounts, and the user selected "local only".
+     * Tests for
+     * {@link ContactEditorUtils#shouldShowAccountChangedNotification(List<AccountWithDataSet>)},
+     * starting with 0 accounts, and the user selected "local only".
      */
+    @Test
     public void testShouldShowAccountChangedNotification_0Account_localOnly() {
-        // There's always at least one writable type...
-        setAccountTypes(TYPE1);
-
         // First launch -- always true.
-        assertTrue(mTarget.shouldShowAccountChangedNotification());
+        assertTrue(mTarget.shouldShowAccountChangedNotification(Collections.
+                <AccountWithDataSet>emptyList()));
 
         // We show the notification here, and user clicked "keep local" and saved an contact.
-        mTarget.saveDefaultAndAllAccounts(null);
+        mTarget.saveDefaultAccount(AccountWithDataSet.getNullAccount());
 
         // Now there are no accounts, and default account is null.
 
         // The user created another contact, but this we shouldn't show the notification.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(Collections.
+                <AccountWithDataSet>emptyList()));
     }
 
+    @Test
     public void testShouldShowAccountChangedNotification_sanity_check() {
         // Prepare 1 account and save it as the default.
-        setAccountTypes(TYPE1);
-        setAccounts(ACCOUNT_1_A);
-
-        mTarget.saveDefaultAndAllAccounts(ACCOUNT_1_A);
+        mTarget.saveDefaultAccount(ACCOUNT_1_A);
 
         // Right after a save, the dialog shouldn't show up.
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(
+                Collections.singletonList(ACCOUNT_1_A)));
 
         // Remove the default account to emulate broken preferences.
         mTarget.removeDefaultAccountForTest();
 
         // The dialog shouldn't show up.
         // The logic is, if there's a writable account, we'll pick it as default
-        assertFalse(mTarget.shouldShowAccountChangedNotification());
+        assertFalse(mTarget.shouldShowAccountChangedNotification(
+                Collections.singletonList(ACCOUNT_1_A)));
     }
 
-    private static <T> Set<T> toSet(Collection<T> collection) {
-        Set<T> ret = Sets.newHashSet();
-        ret.addAll(collection);
-        return ret;
+    @Test
+    public void testShouldShowAccountChangedNotification_nullAccount() {
+        final List<AccountWithDataSet> currentAccounts = new ArrayList<>();
+        final AccountWithDataSet nullAccount = AccountWithDataSet.getNullAccount();
+        currentAccounts.add(nullAccount);
+
+        assertTrue(mTarget.shouldShowAccountChangedNotification(currentAccounts));
+
+        // User chooses to keep the "device" account as the default
+        mTarget.saveDefaultAccount(nullAccount);
+
+        // Right after a save, the dialog shouldn't show up.
+        assertFalse(mTarget.shouldShowAccountChangedNotification(currentAccounts));
     }
 
     private static class MockAccountType extends AccountType {
diff --git a/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java b/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
index 1fb5cb7..9eea4d1 100644
--- a/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
+++ b/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
@@ -16,10 +16,6 @@
 
 package com.android.contacts.editor;
 
-import com.android.contacts.R;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.GoogleAccountType;
-
 import android.content.Context;
 import android.media.RingtoneManager;
 import android.net.Uri;
@@ -27,7 +23,14 @@
 import android.provider.Settings;
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Pair;
+
+import com.android.contacts.R;
+import com.android.contacts.model.account.AccountDisplayInfo;
+import com.android.contacts.model.account.AccountInfo;
+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.tests.FakeAccountType;
 
 /**
  * Tests {@link EditorUiUtils}.
@@ -43,6 +46,11 @@
 
     private static final String RINGTONE = "content://media/external/audio/media/31";
 
+    private static final AccountWithDataSet ACCOUNT =
+            new AccountWithDataSet(ACCOUNT_NAME, "some.account.type", null);
+    private static final AccountWithDataSet GOOGLE_ACCOUNT =
+            new AccountWithDataSet(ACCOUNT_NAME, "com.google", null);
+
     private static final class MockAccountType extends AccountType {
 
         private final String mDisplayLabel;
@@ -67,84 +75,66 @@
         }
     }
 
-    public void testGetProfileAccountInfo_AccountName() {
-        final Pair pair = EditorUiUtils.getLocalAccountInfo(getContext(),
-                ACCOUNT_NAME, new MockAccountType(DISPLAY_LABEL));
+    public void testGetProfileAccountInfo_NonLocalAccount() {
+        final AccountInfo account = new AccountInfo(new AccountDisplayInfo(ACCOUNT, ACCOUNT_NAME,
+                DISPLAY_LABEL, null, /* isDeviceAccount */ false),
+                new FakeAccountType("com.example.account"));
 
-        assertNotNull(pair);
-        assertEquals(ACCOUNT_NAME, pair.first);
-        assertEquals(getContext().getString(R.string.external_profile_title, DISPLAY_LABEL),
-                pair.second); // My LunkedIn profile
+        final String label = EditorUiUtils.getAccountHeaderLabelForMyProfile(getContext(),
+                account);
+
+        // My LunkedIn profile
+        final String expected = getContext()
+                .getString(R.string.external_profile_title, DISPLAY_LABEL);
+        assertEquals(expected, label);
     }
 
-    public void testGetProfileAccountInfo_NoAccountName() {
-        final Pair pair = EditorUiUtils.getLocalAccountInfo(getContext(),
-                /* accountName =*/ null, new MockAccountType(DISPLAY_LABEL));
 
-        assertNotNull(pair);
-        assertNull(pair.first);
-        assertEquals(getContext().getString(R.string.local_profile_title),
-                pair.second); // "My local profile
+    public void testGetProfileAccountInfo_DeviceLocalAccount() {
+        final AccountInfo account = new AccountInfo(new AccountDisplayInfo(ACCOUNT, "Device",
+                "Device", null, true), new DeviceLocalAccountType(mContext));
+
+        final String label = EditorUiUtils.getAccountHeaderLabelForMyProfile(getContext(),
+                account);
+
+        // "My local profile"
+        final String expected = getContext().getString(R.string.local_profile_title);
+        assertEquals(expected, label);
     }
 
-    public void testGetAccountInfo_AccountName_DisplayLabel() {
-        final Pair pair = EditorUiUtils.getAccountInfo(getContext(),
-                ACCOUNT_NAME, new MockAccountType(DISPLAY_LABEL));
+    public void testGetAccountInfo_AccountType_NonGoogle() {
+        final AccountDisplayInfo account = new AccountDisplayInfo(ACCOUNT, ACCOUNT_NAME,
+                DISPLAY_LABEL, /*icon*/ null, /*isDeviceAccount*/ false);
 
-        assertNotNull(pair);
-        assertEquals(getContext().getString(R.string.from_account_format, ACCOUNT_NAME),
-                pair.first); // somebody@lunkedin.com
-        assertEquals(getContext().getString(R.string.account_type_format, DISPLAY_LABEL),
-                pair.second); // LunkedIn Contact
+        final String label = EditorUiUtils.getAccountTypeHeaderLabel(getContext(), account);
+
+        // LunkedIn Contact
+        final String expected = getContext().getString(R.string.account_type_format, DISPLAY_LABEL);
+        assertEquals(expected, label);
     }
 
-    public void testGetAccountInfo_AccountName_DisplayLabel_GoogleAccountType() {
-        final AccountType accountType = new MockAccountType(GOOGLE_DISPLAY_LABEL);
-        accountType.accountType = GoogleAccountType.ACCOUNT_TYPE;
-        final Pair pair = EditorUiUtils.getAccountInfo(getContext(),
-                GOOGLE_ACCOUNT_NAME, accountType);
+    public void testGetAccountInfo_AccountType_Google() {
+        final AccountDisplayInfo account = new AccountDisplayInfo(GOOGLE_ACCOUNT, ACCOUNT_NAME,
+                GOOGLE_DISPLAY_LABEL, /*icon*/ null, /*isDeviceAccount*/ false);
 
-        assertNotNull(pair);
-        assertEquals(getContext().getString(R.string.from_account_format, GOOGLE_ACCOUNT_NAME),
-                pair.first); // somebody@gmail.com
-        assertEquals(
-                getContext().getString(R.string.google_account_type_format, GOOGLE_DISPLAY_LABEL),
-                pair.second); // Google Account
+        final String label = EditorUiUtils.getAccountTypeHeaderLabel(getContext(), account);
+
+        // Google Account
+        final String expected = getContext().getString(R.string.google_account_type_format,
+                GOOGLE_DISPLAY_LABEL);
+        assertEquals(expected, label);
     }
 
-    public void testGetAccountInfo_AccountName_NoDisplayLabel() {
-        final Pair pair = EditorUiUtils.getAccountInfo(getContext(),
-                ACCOUNT_NAME, new MockAccountType(/* displayLabel =*/ null));
+  public void testGetAccountInfo_AccountType_DeviceAccount() {
+      final AccountWithDataSet deviceAccount = AccountWithDataSet.getNullAccount();
+      final AccountDisplayInfo account = new AccountDisplayInfo(deviceAccount, "Device",
+              "Device", /*icon*/ null, /*isDeviceAccount*/ true);
 
-        assertNotNull(pair);
-        assertEquals(getContext().getString(R.string.from_account_format, ACCOUNT_NAME),
-                pair.first); // somebody@lunkedin.com
-        assertEquals(
-                getContext().getString(R.string.account_type_format,
-                        getContext().getString(R.string.account_phone)),
-                pair.second); // "Phone-only, unsynced contact"
-    }
+      final String label = EditorUiUtils.getAccountTypeHeaderLabel(getContext(), account);
 
-    public void testGetAccountInfo_NoAccountName_DisplayLabel() {
-        final Pair pair = EditorUiUtils.getAccountInfo(getContext(),
-                /* accountName =*/ null, new MockAccountType(DISPLAY_LABEL));
-
-        assertNotNull(pair);
-        assertNull(pair.first);
-        assertEquals(getContext().getString(R.string.account_type_format, DISPLAY_LABEL),
-                pair.second); // LunkedIn contact
-    }
-
-    public void testGetAccountInfo_NoAccountName_NoDisplayLabel() {
-        final Pair pair = EditorUiUtils.getAccountInfo(getContext(),
-                /* accountName =*/ null, new MockAccountType(/* displayLabel =*/ null));
-
-        assertNotNull(pair);
-        assertNull(pair.first);
-        assertEquals(
-                getContext().getString(R.string.account_type_format,
-                        getContext().getString(R.string.account_phone)),
-                pair.second); // "Phone-only, unsynced contact"
+      // "Device"
+      final String expected = getContext().getString(R.string.account_phone);
+      assertEquals(expected, label);
     }
 
     public void testGetRingtongStrFromUri_lessThanOrEqualsToM() {
@@ -183,4 +173,8 @@
                 currentVersion));
     }
 
+    private AccountDisplayInfo createDisplayableAccount() {
+        return new AccountDisplayInfo(ACCOUNT, ACCOUNT_NAME, DISPLAY_LABEL, null, false);
+    }
+
 }
diff --git a/tests/src/com/android/contacts/format/FormatUtilsTests.java b/tests/src/com/android/contacts/format/FormatUtilsTests.java
new file mode 100644
index 0000000..febed74
--- /dev/null
+++ b/tests/src/com/android/contacts/format/FormatUtilsTests.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2011 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.format;
+
+import android.database.CharArrayBuffer;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+/**
+ * Test cases for format utility methods.
+ */
+@SmallTest
+public class FormatUtilsTests extends AndroidTestCase {
+
+    public void testOverlapPoint() throws Exception {
+        assertEquals(2, FormatUtils.overlapPoint("abcde", "cdefg"));
+        assertEquals(-1, FormatUtils.overlapPoint("John Doe", "John Doe"));
+        assertEquals(5, FormatUtils.overlapPoint("John Doe", "Doe, John"));
+        assertEquals(-1, FormatUtils.overlapPoint("Mr. John Doe", "Mr. Doe, John"));
+        assertEquals(13, FormatUtils.overlapPoint("John Herbert Doe", "Doe, John Herbert"));
+    }
+
+    public void testCopyToCharArrayBuffer() {
+        CharArrayBuffer charArrayBuffer = new CharArrayBuffer(20);
+        checkCopyToCharArrayBuffer(charArrayBuffer, null, 0);
+        checkCopyToCharArrayBuffer(charArrayBuffer, "", 0);
+        checkCopyToCharArrayBuffer(charArrayBuffer, "test", 4);
+        // Check that it works after copying something into it.
+        checkCopyToCharArrayBuffer(charArrayBuffer, "", 0);
+        checkCopyToCharArrayBuffer(charArrayBuffer, "test", 4);
+        checkCopyToCharArrayBuffer(charArrayBuffer, null, 0);
+        // This requires a resize of the actual buffer.
+        checkCopyToCharArrayBuffer(charArrayBuffer, "test test test test test", 24);
+    }
+
+    public void testCharArrayBufferToString() {
+        checkCharArrayBufferToString("");
+        checkCharArrayBufferToString("test");
+        checkCharArrayBufferToString("test test test test test");
+    }
+
+    /** Checks that copying a string into a {@link CharArrayBuffer} and back works correctly. */
+    private void checkCharArrayBufferToString(String text) {
+        CharArrayBuffer buffer = new CharArrayBuffer(20);
+        FormatUtils.copyToCharArrayBuffer(text, buffer);
+        assertEquals(text, FormatUtils.charArrayBufferToString(buffer));
+    }
+
+    /**
+     * Checks that copying into the char array buffer copies the values correctly.
+     */
+    private void checkCopyToCharArrayBuffer(CharArrayBuffer buffer, String value, int length) {
+        FormatUtils.copyToCharArrayBuffer(value, buffer);
+        assertEquals(length, buffer.sizeCopied);
+        for (int index = 0; index < length; ++index) {
+            assertEquals(value.charAt(index), buffer.data[index]);
+        }
+    }
+
+    public void testIndexOfWordPrefix_NullPrefix() {
+        assertEquals(-1, FormatUtils.indexOfWordPrefix("test", null));
+    }
+
+    public void testIndexOfWordPrefix_NullText() {
+        assertEquals(-1, FormatUtils.indexOfWordPrefix(null, "TE"));
+    }
+
+    public void testIndexOfWordPrefix_MatchingPrefix() {
+        checkIndexOfWordPrefix("test", "TE", 0);
+        checkIndexOfWordPrefix("Test", "TE", 0);
+        checkIndexOfWordPrefix("TEst", "TE", 0);
+        checkIndexOfWordPrefix("TEST", "TE", 0);
+        checkIndexOfWordPrefix("a test", "TE", 2);
+        checkIndexOfWordPrefix("test test", "TE", 0);
+        checkIndexOfWordPrefix("a test test", "TE", 2);
+    }
+
+    public void testIndexOfWordPrefix_NotMatchingPrefix() {
+        checkIndexOfWordPrefix("test", "TA", -1);
+        checkIndexOfWordPrefix("test type theme", "TA", -1);
+        checkIndexOfWordPrefix("atest retest pretest", "TEST", -1);
+        checkIndexOfWordPrefix("tes", "TEST", -1);
+    }
+
+    public void testIndexOfWordPrefix_LowerCase() {
+        // The prefix match only works if the prefix is un upper case.
+        checkIndexOfWordPrefix("test", "te", -1);
+    }
+
+    /**
+     * Checks that getting the index of a word prefix in the given text returns the expected index.
+     *
+     * @param text the text in which to look for the word
+     * @param wordPrefix the word prefix to look for
+     * @param expectedIndex the expected value to be returned by the function
+     */
+    private void checkIndexOfWordPrefix(String text, String wordPrefix, int expectedIndex) {
+        assertEquals(expectedIndex, FormatUtils.indexOfWordPrefix(text, wordPrefix));
+    }
+}
diff --git a/tests/src/com/android/contacts/format/SpannedTestUtils.java b/tests/src/com/android/contacts/format/SpannedTestUtils.java
new file mode 100644
index 0000000..0edafbe
--- /dev/null
+++ b/tests/src/com/android/contacts/format/SpannedTestUtils.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2011 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.format;
+
+import android.text.Html;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.style.StyleSpan;
+import android.widget.TextView;
+
+import junit.framework.Assert;
+
+/**
+ * Utility class to check the value of spanned text in text views.
+ */
+public class SpannedTestUtils {
+    /**
+     * Checks that the text contained in the text view matches the given HTML text.
+     *
+     * @param expectedHtmlText the expected text to be in the text view
+     * @param textView the text view from which to get the text
+     */
+    public static void checkHtmlText(String expectedHtmlText, TextView textView) {
+        String actualHtmlText = Html.toHtml((Spanned) textView.getText());
+        if (TextUtils.isEmpty(expectedHtmlText)) {
+            // If the text is empty, it does not add the <p></p> bits to it.
+            Assert.assertEquals("", actualHtmlText);
+        } else {
+            Assert.assertEquals("<p dir=ltr>" + expectedHtmlText + "</p>\n", actualHtmlText);
+        }
+    }
+
+
+    /**
+     * Assert span exists in the correct location.
+     *
+     * @param seq The spannable string to check.
+     * @param start The starting index.
+     * @param end The ending index.
+     */
+    public static void assertPrefixSpan(CharSequence seq, int start, int end) {
+        Assert.assertTrue(seq instanceof Spanned);
+        Spanned spannable = (Spanned) seq;
+
+        if (start > 0) {
+            Assert.assertEquals(0, getNumForegroundColorSpansBetween(spannable, 0, start - 1));
+        }
+        Assert.assertEquals(1, getNumForegroundColorSpansBetween(spannable, start, end));
+        Assert.assertEquals(0, getNumForegroundColorSpansBetween(spannable, end + 1,
+                spannable.length() - 1));
+    }
+
+    private static int getNumForegroundColorSpansBetween(Spanned value, int start, int end) {
+        return value.getSpans(start, end, StyleSpan.class).length;
+    }
+
+    /**
+     * Asserts that the given character sequence is not a Spanned object and text is correct.
+     *
+     * @param seq The sequence to check.
+     * @param expected The expected text.
+     */
+    public static void assertNotSpanned(CharSequence seq, String expected) {
+        Assert.assertFalse(seq instanceof Spanned);
+        Assert.assertEquals(expected, seq);
+    }
+
+    public static int getNextTransition(SpannableString seq, int start) {
+        return seq.nextSpanTransition(start, seq.length(), StyleSpan.class);
+    }
+}
diff --git a/tests/src/com/android/contacts/format/TextHighlighterTest.java b/tests/src/com/android/contacts/format/TextHighlighterTest.java
new file mode 100644
index 0000000..211d944
--- /dev/null
+++ b/tests/src/com/android/contacts/format/TextHighlighterTest.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2011 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.format;
+
+import android.graphics.Typeface;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.text.SpannableString;
+
+import junit.framework.TestCase;
+
+/**
+ * Unit tests for {@link TextHighlighter}.
+ */
+@SmallTest
+public class TextHighlighterTest extends TestCase {
+    private static final int TEST_PREFIX_HIGHLIGHT_COLOR = 0xFF0000;
+
+    /** The object under test. */
+    private TextHighlighter mTextHighlighter;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mTextHighlighter = new TextHighlighter(Typeface.BOLD);
+    }
+
+    public void testApply_EmptyPrefix() {
+        CharSequence seq = mTextHighlighter.applyPrefixHighlight("", "");
+        SpannedTestUtils.assertNotSpanned(seq, "");
+
+        seq = mTextHighlighter.applyPrefixHighlight("test", "");
+        SpannedTestUtils.assertNotSpanned(seq, "test");
+    }
+
+    public void testSetText_MatchingPrefix() {
+        final String prefix = "TE";
+
+        CharSequence seq = mTextHighlighter.applyPrefixHighlight("test", prefix);
+        SpannedTestUtils.assertPrefixSpan(seq, 0, 1);
+
+        seq = mTextHighlighter.applyPrefixHighlight("Test", prefix);
+        SpannedTestUtils.assertPrefixSpan(seq, 0, 1);
+
+        seq = mTextHighlighter.applyPrefixHighlight("TEst", prefix);
+        SpannedTestUtils.assertPrefixSpan(seq, 0, 1);
+
+        seq = mTextHighlighter.applyPrefixHighlight("a test", prefix);
+        SpannedTestUtils.assertPrefixSpan(seq, 2, 3);
+    }
+
+    public void testSetText_NotMatchingPrefix() {
+        final CharSequence seq = mTextHighlighter.applyPrefixHighlight("test", "TA");
+        SpannedTestUtils.assertNotSpanned(seq, "test");
+    }
+
+    public void testSetText_FirstMatch() {
+        final CharSequence seq = mTextHighlighter.applyPrefixHighlight(
+                "a test's tests are not tests", "TE");
+        SpannedTestUtils.assertPrefixSpan(seq, 2, 3);
+    }
+
+    public void testSetText_NoMatchingMiddleOfWord() {
+        final String prefix = "TE";
+        CharSequence seq = mTextHighlighter.applyPrefixHighlight("atest", prefix);
+        SpannedTestUtils.assertNotSpanned(seq, "atest");
+
+        seq = mTextHighlighter.applyPrefixHighlight("atest otest", prefix);
+        SpannedTestUtils.assertNotSpanned(seq, "atest otest");
+
+        seq = mTextHighlighter.applyPrefixHighlight("atest test", prefix);
+        SpannedTestUtils.assertPrefixSpan(seq, 6, 7);
+    }
+
+    public void testSetMask_Highlight() {
+        final SpannableString testString1 = new SpannableString("alongtest");
+        mTextHighlighter.applyMaskingHighlight(testString1, 2, 4);
+        assertEquals(2, SpannedTestUtils.getNextTransition(testString1, 0));
+        assertEquals(4, SpannedTestUtils.getNextTransition(testString1, 2));
+
+        mTextHighlighter.applyMaskingHighlight(testString1, 3, 6);
+        assertEquals(2, SpannedTestUtils.getNextTransition(testString1, 0));
+        assertEquals(4, SpannedTestUtils.getNextTransition(testString1, 3));
+
+        mTextHighlighter.applyMaskingHighlight(testString1, 4, 5);
+        assertEquals(3, SpannedTestUtils.getNextTransition(testString1, 2));
+
+        mTextHighlighter.applyMaskingHighlight(testString1, 7, 8);
+        assertEquals(6, SpannedTestUtils.getNextTransition(testString1, 5));
+        assertEquals(7, SpannedTestUtils.getNextTransition(testString1, 6));
+        assertEquals(8, SpannedTestUtils.getNextTransition(testString1, 7));
+    }
+}
diff --git a/tests/src/com/android/contacts/group/GroupUtilTest.java b/tests/src/com/android/contacts/group/GroupUtilTest.java
new file mode 100644
index 0000000..5f72e9d
--- /dev/null
+++ b/tests/src/com/android/contacts/group/GroupUtilTest.java
@@ -0,0 +1,120 @@
+/*
+ * 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.group;
+
+import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
+import android.test.AndroidTestCase;
+import android.test.MoreAsserts;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.list.ContactsSectionIndexer;
+
+import java.util.Arrays;
+import java.util.List;
+
+@SmallTest
+public class GroupUtilTest extends AndroidTestCase {
+
+    public void testNeedTrimming() {
+        final int zeroCount = 0;
+        final int emptyPositions[] = new int[]{};
+        final int emptyCounts[] = new int[]{};
+        assertFalse(GroupUtil.needTrimming(zeroCount, emptyPositions, emptyCounts));
+
+        final int count = 22;
+        int positions[] = new int[]{0, 1, 3, 5, 8, 9};
+        int counts[] = new int[]{1, 2, 2, 3, 1, 2};
+        assertFalse(GroupUtil.needTrimming(count, positions, counts));
+
+        positions = new int[]{0, 1, 7, 9, 16, 17, 19, 20};
+        counts = new int[]{1, 6, 2, 7, 1, 2, 1, 2};
+        assertTrue(GroupUtil.needTrimming(count, positions, counts));
+    }
+
+    public void testUpdateBundle_smallSet() {
+        final Bundle bundle = new Bundle();
+        final String[] sections = new String[]{"…", "A", "I", "T", "W", "Y", "Z", "#"};
+        final int[] counts = new int[]{1, 6, 2, 7, 1, 2, 1, 2};
+        final Integer[] subscripts = new Integer[]{1, 2, 5, 7, 8, 10, 11, 15, 16, 17, 18};
+        final List<Integer> subscriptsList = Arrays.asList(subscripts);
+        final ContactsSectionIndexer indexer = new ContactsSectionIndexer(sections, counts);
+
+        GroupUtil.updateBundle(bundle, indexer, subscriptsList, sections, counts);
+
+        final String[] newSections = new String[]{"…", "A", "T", "Z", "#"};
+        final int[] newCounts = new int[]{1, 3, 4, 1, 2};
+
+        assertNotNull(bundle.getStringArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES));
+        MoreAsserts.assertEquals("Wrong sections!", newSections, bundle.getStringArray(Contacts
+                .EXTRA_ADDRESS_BOOK_INDEX_TITLES));
+
+        assertNotNull(bundle.getIntArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS));
+        MoreAsserts.assertEquals("Wrong counts!", newCounts, bundle.getIntArray(Contacts
+                .EXTRA_ADDRESS_BOOK_INDEX_COUNTS));
+    }
+
+    public void testUpdateBundle_mediumSet() {
+        final Bundle bundle = new Bundle();
+        final String[] sections = new String[]{"A", "B", "C", "D", "E", "F", "G", "H", "J",
+                "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "V", "W", "X", "Y", "Z"};
+        final int[] counts = new int[]{81, 36, 84, 55, 28, 15, 18, 38, 145, 60, 41, 73, 15, 2, 56,
+                1, 74, 73, 45, 14, 28, 9, 18, 21};
+        final Integer[] subscripts = new Integer[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+                15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+                36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+                57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+                78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+                99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+                116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+                133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+                150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
+                167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+                184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
+                201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
+                218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+                235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+                252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+                269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
+                286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
+                303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
+                320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
+                337, 344, 347, 348, 349, 350, 351, 352, 353, 354, 495, 496, 497, 498, 499, 558, 559,
+                597, 598, 599, 600, 601, 602, 668, 669, 670, 671, 672, 673, 746, 747, 820, 821, 885,
+                886, 887, 888, 889, 890, 891, 892, 893, 894, 939, 979, 980, 981, 982, 983, 984, 985,
+                986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
+                1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
+                1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029};
+        final List<Integer> subscriptsList = Arrays.asList(subscripts);
+        final ContactsSectionIndexer indexer = new ContactsSectionIndexer(sections, counts);
+
+        GroupUtil.updateBundle(bundle, indexer, subscriptsList, sections, counts);
+
+        final String[] newSections = new String[]{"A", "H", "J", "K", "L", "M", "N", "O", "P",
+                "R", "S", "T", "V", "W"};
+        final int[] newCounts = new int[]{1, 8, 140, 58, 37, 65, 15, 2, 55, 72, 63, 44, 14, 25};
+
+        assertNotNull(bundle.getStringArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_TITLES));
+        MoreAsserts.assertEquals("Wrong sections!", newSections, bundle.getStringArray(Contacts
+                .EXTRA_ADDRESS_BOOK_INDEX_TITLES));
+
+        assertNotNull(bundle.getIntArray(Contacts.EXTRA_ADDRESS_BOOK_INDEX_COUNTS));
+        MoreAsserts.assertEquals("Wrong counts!", newCounts, bundle.getIntArray(Contacts
+                .EXTRA_ADDRESS_BOOK_INDEX_COUNTS));
+    }
+
+}
diff --git a/tests/src/com/android/contacts/interactions/CallLogInteractionsLoaderTest.java b/tests/src/com/android/contacts/interactions/CallLogInteractionsLoaderTest.java
index 079411f..b51affd 100644
--- a/tests/src/com/android/contacts/interactions/CallLogInteractionsLoaderTest.java
+++ b/tests/src/com/android/contacts/interactions/CallLogInteractionsLoaderTest.java
@@ -3,6 +3,7 @@
 import android.content.ContentValues;
 import android.provider.CallLog.Calls;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -10,6 +11,7 @@
 /**
  * Tests {@link CallLogInteractionsLoader}
  */
+@SmallTest
 public class CallLogInteractionsLoaderTest extends AndroidTestCase {
 
     public void testCallLogInteractions_pruneDuplicates_containsDuplicates() {
diff --git a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
index 0d62376..258b818 100644
--- a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
+++ b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
@@ -21,20 +21,20 @@
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Contacts.Entity;
 import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.test.suitebuilder.annotation.MediumTest;
 
 import com.android.contacts.ContactsApplication;
 import com.android.contacts.R;
-import com.android.contacts.common.test.FragmentTestActivity;
-import com.android.contacts.common.test.IntegrationTestUtils;
-import com.android.contacts.common.test.mocks.ContactsMockContext;
-import com.android.contacts.common.test.mocks.MockContentProvider;
-import com.android.contacts.common.test.mocks.MockContentProvider.Query;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountType;
-import com.android.contacts.common.model.account.BaseAccountType;
-import com.android.contacts.common.testing.InjectedServices;
-import com.android.contacts.common.test.mocks.MockAccountTypeManager;
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.BaseAccountType;
+import com.android.contacts.test.FragmentTestActivity;
+import com.android.contacts.test.IntegrationTestUtils;
+import com.android.contacts.test.mocks.ContactsMockContext;
+import com.android.contacts.test.mocks.MockAccountTypeManager;
+import com.android.contacts.test.mocks.MockContentProvider;
+import com.android.contacts.test.mocks.MockContentProvider.Query;
+import com.android.contacts.testing.InjectedServices;
 
 /**
  * Tests for {@link ContactDeletionInteraction}.
@@ -46,7 +46,7 @@
  *   adb shell am instrument \
  *     -w com.android.contacts.tests/android.test.InstrumentationTestRunner
  */
-@SmallTest
+@MediumTest
 public class ContactDeletionInteractionTest
         extends ActivityInstrumentationTestCase2<FragmentTestActivity> {
     private static final Uri CONTACT_URI = ContentUris.withAppendedId(Contacts.CONTENT_URI, 13);
@@ -107,33 +107,33 @@
     }
 
     public void testSingleWritableRawContact() {
-        expectQuery().returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo");
+        expectQuery().returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo", "baz", "bazAlt");
         assertWithMessageId(R.string.deleteConfirmation);
     }
 
     public void testReadOnlyRawContacts() {
-        expectQuery().returnRow(1, READONLY_ACCOUNT_TYPE, null, 13, "foo");
+        expectQuery().returnRow(1, READONLY_ACCOUNT_TYPE, null, 13, "foo", "baz", "bazAlt");
         assertWithMessageId(R.string.readOnlyContactWarning);
     }
 
     public void testMixOfWritableAndReadOnlyRawContacts() {
         expectQuery()
-                .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo")
-                .returnRow(2, READONLY_ACCOUNT_TYPE, null, 13, "foo");
+                .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo", "baz", "bazAlt")
+                .returnRow(2, READONLY_ACCOUNT_TYPE, null, 13, "foo", "baz", "bazAlt");
         assertWithMessageId(R.string.readOnlyContactDeleteConfirmation);
     }
 
     public void testMultipleWritableRawContacts() {
         expectQuery()
-                .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo")
-                .returnRow(2, WRITABLE_ACCOUNT_TYPE, null, 13, "foo");
+                .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo", "baz", "bazAlt")
+                .returnRow(2, WRITABLE_ACCOUNT_TYPE, null, 13, "foo", "baz", "bazAlt");
         assertWithMessageId(R.string.multipleContactDeleteConfirmation);
     }
 
     private Query expectQuery() {
         return mContactsProvider.expectQuery(ENTITY_URI).withProjection(
                 Entity.RAW_CONTACT_ID, Entity.ACCOUNT_TYPE, Entity.DATA_SET, Entity.CONTACT_ID,
-                Entity.LOOKUP_KEY);
+                Entity.LOOKUP_KEY, Entity.DISPLAY_NAME, Entity.DISPLAY_NAME_ALTERNATIVE);
     }
 
     private void assertWithMessageId(int messageId) {
diff --git a/tests/src/com/android/contacts/interactions/ContactInteractionUtilTest.java b/tests/src/com/android/contacts/interactions/ContactInteractionUtilTest.java
index 4802b46..5f95a1b 100644
--- a/tests/src/com/android/contacts/interactions/ContactInteractionUtilTest.java
+++ b/tests/src/com/android/contacts/interactions/ContactInteractionUtilTest.java
@@ -15,12 +15,10 @@
  */
 package com.android.contacts.interactions;
 
-import com.android.contacts.common.R;
-
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.test.AndroidTestCase;
-import android.text.format.DateUtils;
+import android.test.suitebuilder.annotation.SmallTest;
 
 import java.util.Calendar;
 import java.util.Locale;
@@ -28,6 +26,7 @@
 /**
  * Tests for utility functions in {@link ContactInteractionUtil}
  */
+@SmallTest
 public class ContactInteractionUtilTest extends AndroidTestCase {
 
     private Locale mOriginalLocale;
@@ -80,54 +79,44 @@
                         getContext()));
     }
 
-    public void testFormatDateStringFromTimestamp_yesterday() {
-        // Test yesterday and tomorrow (Yesterday or Tomorrow shown)
-        calendar.add(Calendar.DAY_OF_YEAR, -1);
-        assertEquals(getContext().getResources().getString(R.string.yesterday),
-                ContactInteractionUtil.formatDateStringFromTimestamp(calendar.getTimeInMillis(),
-                        getContext()));
-    }
-
-    public void testFormatDateStringFromTimestamp_yesterdayLastYear() {
-        // Set to non leap year
-        calendar.set(Calendar.YEAR, 1999);
-        calendar.set(Calendar.DAY_OF_YEAR, 365);
-        long lastYear = calendar.getTimeInMillis();
-        calendar.add(Calendar.DAY_OF_YEAR, 1);
-
-        assertEquals(getContext().getResources().getString(R.string.yesterday),
-                ContactInteractionUtil.formatDateStringFromTimestamp(lastYear,
-                        getContext(), calendar));
-    }
-
-    public void testFormatDateStringFromTimestamp_tomorrow() {
-        calendar.add(Calendar.DAY_OF_YEAR, 1);
-        assertEquals(getContext().getResources().getString(R.string.tomorrow),
-                ContactInteractionUtil.formatDateStringFromTimestamp(calendar.getTimeInMillis(),
-                        getContext()));
-    }
-
-    public void testFormatDateStringFromTimestamp_tomorrowNewYear() {
-        calendar.set(Calendar.DAY_OF_YEAR, 1);
-        long thisYear = calendar.getTimeInMillis();
-        calendar.add(Calendar.DAY_OF_YEAR, -1);
-
-        assertEquals(getContext().getResources().getString(R.string.tomorrow),
-                ContactInteractionUtil.formatDateStringFromTimestamp(thisYear,
-                        getContext(), calendar));
-    }
-
     public void testFormatDateStringFromTimestamp_other() {
         // Test other (Month Date)
         calendar.set(
                 /* year = */ 1991,
                 /* month = */ Calendar.MONTH,
-                /* day = */ 11);
-        assertEquals("March 11",
+                /* day = */ 11,
+                /* hourOfDay = */ 8,
+                /* minute = */ 8);
+        assertEquals("Monday, March 11, 1991, 8:08 AM",
                 ContactInteractionUtil.formatDateStringFromTimestamp(calendar.getTimeInMillis(),
                         getContext()));
     }
 
+    public void testFormatDuration_zero() {
+        assertEquals("0 sec",
+                ContactInteractionUtil.formatDuration(0, getContext()));
+    }
+
+    public void testFormatDuration_minZeroSec() {
+        assertEquals("1 min 0 sec",
+                ContactInteractionUtil.formatDuration(60, getContext()));
+    }
+
+    public void testFormatDuration_minSec() {
+        assertEquals("30 min 9 sec",
+                ContactInteractionUtil.formatDuration(1809, getContext()));
+    }
+
+    public void testFormatDuration_hrZeroMinZeroSec() {
+        assertEquals("1 hr 0 min 0 sec",
+                ContactInteractionUtil.formatDuration(3600, getContext()));
+    }
+
+    public void testFormatDuration_hrMinSec() {
+        assertEquals("2 hr 44 min 36 sec",
+                ContactInteractionUtil.formatDuration(9876, getContext()));
+    }
+
     private void setLocale(Locale locale) {
         Locale.setDefault(locale);
         Resources res = getContext().getResources();
diff --git a/tests/src/com/android/contacts/list/ContactListItemViewTest.java b/tests/src/com/android/contacts/list/ContactListItemViewTest.java
new file mode 100644
index 0000000..09c2f36
--- /dev/null
+++ b/tests/src/com/android/contacts/list/ContactListItemViewTest.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2011 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.list;
+
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.LargeTest;
+import android.widget.TextView;
+
+import com.android.contacts.format.SpannedTestUtils;
+import com.android.contacts.preference.ContactsPreferences;
+
+/**
+ * Unit tests for {@link com.android.contacts.list.ContactListItemView}.
+ *
+ * It uses an {@link ActivityInstrumentationTestCase2} for {@link PeopleActivity} because we need
+ * to have the style properly setup.
+ */
+@LargeTest
+public class ContactListItemViewTest extends AndroidTestCase {
+
+    //private IntegrationTestUtils mUtils;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        // This test requires that the screen be turned on.
+        //mUtils = new IntegrationTestUtils(getInstrumentation());
+        //mUtils.acquireScreenWakeLock(getInstrumentation().getTargetContext());
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        //mUtils.releaseScreenWakeLock();
+        super.tearDown();
+    }
+
+    public void testShowDisplayName_Simple() {
+        Cursor cursor = createCursor("John Doe", "Doe John");
+        ContactListItemView view = createView();
+
+        view.showDisplayName(cursor, 0, ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+        assertEquals(view.getNameTextView().getText().toString(), "John Doe");
+    }
+
+    public void testShowDisplayName_Unknown() {
+        Cursor cursor = createCursor("", "");
+        ContactListItemView view = createView();
+
+        view.setUnknownNameText("unknown");
+        view.showDisplayName(cursor, 0, ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+        assertEquals(view.getNameTextView().getText().toString(), "unknown");
+    }
+
+    public void testShowDisplayName_WithPrefix() {
+        Cursor cursor = createCursor("John Doe", "Doe John");
+        ContactListItemView view = createView();
+
+        view.setHighlightedPrefix("DOE");
+        view.showDisplayName(cursor, 0, ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+        CharSequence seq = view.getNameTextView().getText();
+        assertEquals("John Doe", seq.toString());
+        SpannedTestUtils.assertPrefixSpan(seq, 5, 7);
+        // Talback should be without span tags.
+        assertEquals("John Doe", view.getNameTextView().getContentDescription());
+        assertFalse("John Doe".equals(seq));
+    }
+
+    public void testShowDisplayName_WithPrefixReversed() {
+        Cursor cursor = createCursor("John Doe", "Doe John");
+        ContactListItemView view = createView();
+
+        view.setHighlightedPrefix("DOE");
+        view.showDisplayName(cursor, 0, ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
+
+        CharSequence seq = view.getNameTextView().getText();
+        assertEquals("John Doe", seq.toString());
+        SpannedTestUtils.assertPrefixSpan(seq, 5, 7);
+    }
+
+    public void testSetSnippet_Prefix() {
+        ContactListItemView view = createView();
+        view.setHighlightedPrefix("TEST");
+        view.setSnippet("This is a test");
+
+        CharSequence seq = view.getSnippetView().getText();
+
+        assertEquals("This is a test", seq.toString());
+        SpannedTestUtils.assertPrefixSpan(seq, 10, 13);
+    }
+
+    /** Creates the view to be tested. */
+    private ContactListItemView createView() {
+        ContactListItemView view = new ContactListItemView(getContext());
+        // Set the name view to use a Spannable to represent its content.
+        view.getNameTextView().setText("", TextView.BufferType.SPANNABLE);
+        return view;
+    }
+
+    /**
+     * Creates a cursor containing a pair of values.
+     *
+     * @param name the name to insert in the first column of the cursor
+     * @param alternateName the alternate name to insert in the second column of the cursor
+     * @return the newly created cursor
+     */
+    private Cursor createCursor(String name, String alternateName) {
+        MatrixCursor cursor = new MatrixCursor(new String[]{"Name", "AlternateName"});
+        cursor.moveToFirst();
+        cursor.addRow(new Object[]{name, alternateName});
+        return cursor;
+    }
+}
diff --git a/tests/src/com/android/contacts/model/AccountTypeManagerTest.java b/tests/src/com/android/contacts/model/AccountTypeManagerTest.java
new file mode 100644
index 0000000..982517b
--- /dev/null
+++ b/tests/src/com/android/contacts/model/AccountTypeManagerTest.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2011 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.Account;
+import android.accounts.AccountManager;
+import android.content.SharedPreferences;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountTypeWithDataSet;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.GoogleAccountType;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.mockito.Mockito.when;
+
+/**
+ * Test case for {@link com.android.contacts.model.AccountTypeManager}.
+ *
+ * adb shell am instrument -w -e class com.android.contacts.model.AccountTypeManagerTest \
+       com.android.contacts.tests/android.test.InstrumentationTestRunner
+ */
+@SmallTest
+public class AccountTypeManagerTest extends AndroidTestCase {
+
+    private static final Account[] ACCOUNTS = new Account[2];
+    static {
+        ACCOUNTS[0] = new Account("name1", GoogleAccountType.ACCOUNT_TYPE);
+        ACCOUNTS[1] = new Account("name2", GoogleAccountType.ACCOUNT_TYPE);
+    }
+
+    @Mock private AccountManager mAccountManager;
+    @Mock private SharedPreferences mPrefs;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        System.setProperty("dexmaker.dexcache", getContext().getCacheDir().getPath());
+        MockitoAnnotations.initMocks(this);
+    }
+
+    private static AccountWithDataSet createAccountWithDataSet(String name, AccountType type) {
+        return new AccountWithDataSet(name, type.accountType, type.dataSet);
+    }
+
+    /**
+     * Array of {@link AccountType} -> {@link Map}
+     */
+    private static Map<AccountTypeWithDataSet, AccountType> buildAccountTypes(AccountType... types) {
+        final HashMap<AccountTypeWithDataSet, AccountType> result = Maps.newHashMap();
+        for (AccountType type : types) {
+            result.put(type.getAccountTypeAndDataSet(), type);
+        }
+        return result;
+    }
+
+    /**
+     * Array of {@link AccountWithDataSet} -> {@link Collection}
+     */
+    private static Collection<AccountWithDataSet> buildAccounts(AccountWithDataSet... accounts) {
+        final List<AccountWithDataSet> result = Lists.newArrayList();
+        for (AccountWithDataSet account : accounts) {
+            result.add(account);
+        }
+        return result;
+    }
+
+    public void testGetDefaultAccount_NoAccounts() {
+        assertNull(getDefaultGoogleAccountName());
+    }
+
+    public void testGetDefaultAccount_NoAccounts_DefaultPreferenceSet() {
+        when(mPrefs.getString(Mockito.anyString(), Mockito.anyString())).thenReturn(
+                getDefaultAccountPreference("name1", GoogleAccountType.ACCOUNT_TYPE));
+        assertNull(getDefaultGoogleAccountName());
+    }
+
+    public void testGetDefaultAccount_NoDefaultAccountPreferenceSet() {
+        when(mAccountManager.getAccountsByType(Mockito.anyString())).thenReturn(ACCOUNTS);
+        assertEquals("name1", getDefaultGoogleAccountName());
+    }
+
+    public void testGetDefaultAccount_DefaultAccountPreferenceSet() {
+        when(mAccountManager.getAccountsByType(Mockito.anyString())).thenReturn(ACCOUNTS);
+        when(mPrefs.getString(Mockito.anyString(), Mockito.anyString())).thenReturn(
+                getDefaultAccountPreference("name2", GoogleAccountType.ACCOUNT_TYPE));
+        assertEquals("name2", getDefaultGoogleAccountName());
+    }
+
+    public void testGetDefaultAccount_DefaultAccountPreferenceSet_NonGoogleAccountType() {
+        when(mAccountManager.getAccountsByType(Mockito.anyString())).thenReturn(ACCOUNTS);
+        when(mPrefs.getString(Mockito.anyString(), Mockito.anyString())).thenReturn(
+                getDefaultAccountPreference("name3", "type3"));
+        assertEquals("name1", getDefaultGoogleAccountName());
+    }
+
+    public void testGetDefaultAccount_DefaultAccountPreferenceSet_UnknownName() {
+        when(mAccountManager.getAccountsByType(Mockito.anyString())).thenReturn(ACCOUNTS);
+        when(mPrefs.getString(Mockito.anyString(), Mockito.anyString())).thenReturn(
+                getDefaultAccountPreference("name4",GoogleAccountType.ACCOUNT_TYPE));
+        assertEquals("name1", getDefaultGoogleAccountName());
+    }
+
+    private final String getDefaultGoogleAccountName() {
+        // We don't need the real preference key value since it's mocked
+        final Account account = AccountTypeManager.getDefaultGoogleAccount(
+                mAccountManager, mPrefs, "contact_editor_default_account_key");
+        return account == null ? null : account.name;
+    }
+
+    private static final String getDefaultAccountPreference(String name, String type) {
+        return new AccountWithDataSet(name, type, /* dataSet */ null).stringify();
+    }
+}
diff --git a/tests/src/com/android/contacts/model/AccountWithDataSetTest.java b/tests/src/com/android/contacts/model/AccountWithDataSetTest.java
new file mode 100644
index 0000000..7d6dfa3
--- /dev/null
+++ b/tests/src/com/android/contacts/model/AccountWithDataSetTest.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2011 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.os.Bundle;
+import android.test.AndroidTestCase;
+import android.test.MoreAsserts;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+/**
+ * Test case for {@link AccountWithDataSet}.
+ *
+ * adb shell am instrument -w -e class com.android.contacts.model.AccountWithDataSetTest \
+       com.android.contacts.tests/android.test.InstrumentationTestRunner
+ */
+@SmallTest
+public class AccountWithDataSetTest extends AndroidTestCase {
+    public void testStringifyAndUnstringify() {
+        AccountWithDataSet a1 = new AccountWithDataSet("name1", "typeA", null);
+        AccountWithDataSet a2 = new AccountWithDataSet("name2", "typeB", null);
+        AccountWithDataSet a3 = new AccountWithDataSet("name3", "typeB", "dataset");
+
+        // stringify() & unstringify
+        AccountWithDataSet a1r = AccountWithDataSet.unstringify(a1.stringify());
+        AccountWithDataSet a2r = AccountWithDataSet.unstringify(a2.stringify());
+        AccountWithDataSet a3r = AccountWithDataSet.unstringify(a3.stringify());
+
+        assertEquals(a1, a1r);
+        assertEquals(a2, a2r);
+        assertEquals(a3, a3r);
+
+        MoreAsserts.assertNotEqual(a1, a2r);
+        MoreAsserts.assertNotEqual(a1, a3r);
+
+        MoreAsserts.assertNotEqual(a2, a1r);
+        MoreAsserts.assertNotEqual(a2, a3r);
+
+        MoreAsserts.assertNotEqual(a3, a1r);
+        MoreAsserts.assertNotEqual(a3, a2r);
+    }
+
+    public void testStringifyAndUnstringifyLocalAccount() {
+        final String stringified = AccountWithDataSet.getNullAccount().stringify();
+
+        final AccountWithDataSet restored = AccountWithDataSet.unstringify(stringified);
+
+        assertEquals(AccountWithDataSet.getNullAccount(), restored);
+    }
+
+    public void testStringifyListAndUnstringify() {
+        AccountWithDataSet a1 = new AccountWithDataSet("name1", "typeA", null);
+        AccountWithDataSet a2 = new AccountWithDataSet("name2", "typeB", null);
+        AccountWithDataSet a3 = new AccountWithDataSet("name3", "typeB", "dataset");
+
+        // Empty list
+        assertEquals(0, stringifyListAndUnstringify().size());
+
+        // 1 element
+        final List<AccountWithDataSet> listA = stringifyListAndUnstringify(a1);
+        assertEquals(1, listA.size());
+        assertEquals(a1, listA.get(0));
+
+        // 2 elements
+        final List<AccountWithDataSet> listB = stringifyListAndUnstringify(a2, a1);
+        assertEquals(2, listB.size());
+        assertEquals(a2, listB.get(0));
+        assertEquals(a1, listB.get(1));
+
+        // 3 elements
+        final List<AccountWithDataSet> listC = stringifyListAndUnstringify(a3, a2, a1);
+        assertEquals(3, listC.size());
+        assertEquals(a3, listC.get(0));
+        assertEquals(a2, listC.get(1));
+        assertEquals(a1, listC.get(2));
+    }
+
+    private static List<AccountWithDataSet> stringifyListAndUnstringify(
+            AccountWithDataSet... accounts) {
+
+        List<AccountWithDataSet> list = Lists.newArrayList(accounts);
+        return AccountWithDataSet.unstringifyList(AccountWithDataSet.stringifyList(list));
+    }
+
+    public void testParcelable() {
+        AccountWithDataSet a1 = new AccountWithDataSet("name1", "typeA", null);
+        AccountWithDataSet a2 = new AccountWithDataSet("name2", "typeB", null);
+        AccountWithDataSet a3 = new AccountWithDataSet("name3", "typeB", "dataset");
+
+        // Parcel them & unpercel.
+        final Bundle b = new Bundle();
+        b.putParcelable("a1", a1);
+        b.putParcelable("a2", a2);
+        b.putParcelable("a3", a3);
+
+        AccountWithDataSet a1r = b.getParcelable("a1");
+        AccountWithDataSet a2r = b.getParcelable("a2");
+        AccountWithDataSet a3r = b.getParcelable("a3");
+
+        assertEquals(a1, a1r);
+        assertEquals(a2, a2r);
+        assertEquals(a3, a3r);
+
+        MoreAsserts.assertNotEqual(a1, a2r);
+        MoreAsserts.assertNotEqual(a1, a3r);
+
+        MoreAsserts.assertNotEqual(a2, a1r);
+        MoreAsserts.assertNotEqual(a2, a3r);
+
+        MoreAsserts.assertNotEqual(a3, a1r);
+        MoreAsserts.assertNotEqual(a3, a2r);
+    }
+}
diff --git a/tests/src/com/android/contacts/model/ContactLoaderTest.java b/tests/src/com/android/contacts/model/ContactLoaderTest.java
new file mode 100644
index 0000000..91873e9
--- /dev/null
+++ b/tests/src/com/android/contacts/model/ContactLoaderTest.java
@@ -0,0 +1,431 @@
+/*
+ * Copyright (C) 2010 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.ContentUris;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.DisplayNameSources;
+import android.provider.ContactsContract.RawContacts;
+import android.provider.ContactsContract.StatusUpdates;
+import android.test.LoaderTestCase;
+import android.test.suitebuilder.annotation.LargeTest;
+
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.BaseAccountType;
+import com.android.contacts.test.mocks.ContactsMockContext;
+import com.android.contacts.test.mocks.MockAccountTypeManager;
+import com.android.contacts.test.mocks.MockContentProvider;
+import com.android.contacts.testing.InjectedServices;
+import com.android.contacts.util.Constants;
+
+import com.google.common.collect.Lists;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.List;
+
+/**
+ * Runs ContactLoader tests for the the contact-detail and editor view.
+ */
+@LargeTest
+public class ContactLoaderTest extends LoaderTestCase {
+    private static final long CONTACT_ID = 1;
+    private static final long RAW_CONTACT_ID = 11;
+    private static final long DATA_ID = 21;
+    private static final String LOOKUP_KEY = "aa%12%@!";
+
+    private ContactsMockContext mMockContext;
+    private MockContentProvider mContactsProvider;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mMockContext = new ContactsMockContext(getContext());
+        mContactsProvider = mMockContext.getContactsProvider();
+
+        InjectedServices services = new InjectedServices();
+        AccountType accountType = new BaseAccountType() {
+            @Override
+            public boolean areContactsWritable() {
+                return false;
+            }
+        };
+        accountType.accountType = "mockAccountType";
+
+        AccountWithDataSet account =
+                new AccountWithDataSet("mockAccountName", "mockAccountType", null);
+
+        AccountTypeManager.setInstanceForTest(
+                new MockAccountTypeManager(
+                        new AccountType[]{accountType}, new AccountWithDataSet[]{account}));
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        mMockContext = null;
+        mContactsProvider = null;
+        super.tearDown();
+    }
+
+    private Contact assertLoadContact(Uri uri) {
+        final ContactLoader loader = new ContactLoader(mMockContext, uri, true);
+        return getLoaderResultSynchronously(loader);
+    }
+
+    public void testNullUri() {
+        Contact result = assertLoadContact(null);
+        assertTrue(result.isError());
+    }
+
+    public void testEmptyUri() {
+        Contact result = assertLoadContact(Uri.EMPTY);
+        assertTrue(result.isError());
+    }
+
+    public void testInvalidUri() {
+        Contact result = assertLoadContact(Uri.parse("content://wtf"));
+        assertTrue(result.isError());
+    }
+
+    public void testLoadContactWithContactIdUri() {
+        // Use content Uris that only contain the ID
+        final Uri baseUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, CONTACT_ID);
+        final Uri entityUri = Uri.withAppendedPath(baseUri, Contacts.Entity.CONTENT_DIRECTORY);
+        final Uri lookupUri = ContentUris.withAppendedId(
+                Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, LOOKUP_KEY),
+                CONTACT_ID);
+
+        ContactQueries queries = new ContactQueries();
+        mContactsProvider.expectTypeQuery(baseUri, Contacts.CONTENT_ITEM_TYPE);
+        queries.fetchAllData(entityUri, CONTACT_ID, RAW_CONTACT_ID, DATA_ID, LOOKUP_KEY);
+
+        Contact contact = assertLoadContact(baseUri);
+
+        assertEquals(CONTACT_ID, contact.getId());
+        assertEquals(RAW_CONTACT_ID, contact.getNameRawContactId());
+        assertEquals(DisplayNameSources.STRUCTURED_NAME, contact.getDisplayNameSource());
+        assertEquals(LOOKUP_KEY, contact.getLookupKey());
+        assertEquals(lookupUri, contact.getLookupUri());
+        assertEquals(1, contact.getRawContacts().size());
+        assertEquals(1, contact.getStatuses().size());
+        mContactsProvider.verify();
+    }
+
+    public void testLoadContactWithOldStyleUri() {
+        // Use content Uris that only contain the ID but use the format used in Donut
+        final Uri legacyUri = ContentUris.withAppendedId(
+                Uri.parse("content://contacts"), RAW_CONTACT_ID);
+        final Uri rawContactUri = ContentUris.withAppendedId(
+                RawContacts.CONTENT_URI, RAW_CONTACT_ID);
+        final Uri baseUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, CONTACT_ID);
+        final Uri lookupUri = ContentUris.withAppendedId(
+                Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, LOOKUP_KEY),
+                CONTACT_ID);
+        final Uri entityUri = Uri.withAppendedPath(lookupUri, Contacts.Entity.CONTENT_DIRECTORY);
+
+        ContactQueries queries = new ContactQueries();
+        queries.fetchContactIdAndLookupFromRawContactUri(rawContactUri, CONTACT_ID, LOOKUP_KEY);
+        queries.fetchAllData(entityUri, CONTACT_ID, RAW_CONTACT_ID, DATA_ID, LOOKUP_KEY);
+
+        Contact contact = assertLoadContact(legacyUri);
+
+        assertEquals(CONTACT_ID, contact.getId());
+        assertEquals(RAW_CONTACT_ID, contact.getNameRawContactId());
+        assertEquals(DisplayNameSources.STRUCTURED_NAME, contact.getDisplayNameSource());
+        assertEquals(LOOKUP_KEY, contact.getLookupKey());
+        assertEquals(lookupUri, contact.getLookupUri());
+        assertEquals(1, contact.getRawContacts().size());
+        assertEquals(1, contact.getStatuses().size());
+        if (CompatUtils.isMarshmallowCompatible()) {
+            assertEquals(
+                    1, contact.getRawContacts().get(0).getDataItems().get(0).getCarrierPresence());
+        }
+        mContactsProvider.verify();
+    }
+
+    public void testLoadContactWithRawContactIdUri() {
+        // Use content Uris that only contain the ID but use the format used in Donut
+        final Uri rawContactUri = ContentUris.withAppendedId(
+                RawContacts.CONTENT_URI, RAW_CONTACT_ID);
+        final Uri baseUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, CONTACT_ID);
+        final Uri lookupUri = ContentUris.withAppendedId(
+                Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, LOOKUP_KEY),
+                CONTACT_ID);
+        final Uri entityUri = Uri.withAppendedPath(lookupUri, Contacts.Entity.CONTENT_DIRECTORY);
+
+        ContactQueries queries = new ContactQueries();
+        mContactsProvider.expectTypeQuery(rawContactUri, RawContacts.CONTENT_ITEM_TYPE);
+        queries.fetchContactIdAndLookupFromRawContactUri(rawContactUri, CONTACT_ID, LOOKUP_KEY);
+        queries.fetchAllData(entityUri, CONTACT_ID, RAW_CONTACT_ID, DATA_ID, LOOKUP_KEY);
+
+        Contact contact = assertLoadContact(rawContactUri);
+
+        assertEquals(CONTACT_ID, contact.getId());
+        assertEquals(RAW_CONTACT_ID, contact.getNameRawContactId());
+        assertEquals(DisplayNameSources.STRUCTURED_NAME, contact.getDisplayNameSource());
+        assertEquals(LOOKUP_KEY, contact.getLookupKey());
+        assertEquals(lookupUri, contact.getLookupUri());
+        assertEquals(1, contact.getRawContacts().size());
+        assertEquals(1, contact.getStatuses().size());
+        mContactsProvider.verify();
+    }
+
+    public void testLoadContactWithContactLookupUri() {
+        // Use lookup-style Uris that do not contain the Contact-ID
+        final Uri baseUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, CONTACT_ID);
+        final Uri lookupNoIdUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, LOOKUP_KEY);
+        final Uri lookupUri = ContentUris.withAppendedId(lookupNoIdUri, CONTACT_ID);
+        final Uri entityUri = Uri.withAppendedPath(
+                lookupNoIdUri, Contacts.Entity.CONTENT_DIRECTORY);
+
+        ContactQueries queries = new ContactQueries();
+        mContactsProvider.expectTypeQuery(lookupNoIdUri, Contacts.CONTENT_ITEM_TYPE);
+        queries.fetchAllData(entityUri, CONTACT_ID, RAW_CONTACT_ID, DATA_ID, LOOKUP_KEY);
+
+        Contact contact = assertLoadContact(lookupNoIdUri);
+
+        assertEquals(CONTACT_ID, contact.getId());
+        assertEquals(RAW_CONTACT_ID, contact.getNameRawContactId());
+        assertEquals(DisplayNameSources.STRUCTURED_NAME, contact.getDisplayNameSource());
+        assertEquals(LOOKUP_KEY, contact.getLookupKey());
+        assertEquals(lookupUri, contact.getLookupUri());
+        assertEquals(1, contact.getRawContacts().size());
+        assertEquals(1, contact.getStatuses().size());
+        mContactsProvider.verify();
+    }
+
+    public void testLoadContactWithContactLookupAndIdUri() {
+        // Use lookup-style Uris that also contain the Contact-ID
+        final Uri baseUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, CONTACT_ID);
+        final Uri lookupUri = ContentUris.withAppendedId(
+                Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, LOOKUP_KEY),
+                CONTACT_ID);
+        final Uri entityUri = Uri.withAppendedPath(lookupUri, Contacts.Entity.CONTENT_DIRECTORY);
+
+        ContactQueries queries = new ContactQueries();
+        mContactsProvider.expectTypeQuery(lookupUri, Contacts.CONTENT_ITEM_TYPE);
+        queries.fetchAllData(entityUri, CONTACT_ID, RAW_CONTACT_ID, DATA_ID, LOOKUP_KEY);
+
+        Contact contact = assertLoadContact(lookupUri);
+
+        assertEquals(CONTACT_ID, contact.getId());
+        assertEquals(RAW_CONTACT_ID, contact.getNameRawContactId());
+        assertEquals(DisplayNameSources.STRUCTURED_NAME, contact.getDisplayNameSource());
+        assertEquals(LOOKUP_KEY, contact.getLookupKey());
+        assertEquals(lookupUri, contact.getLookupUri());
+        assertEquals(1, contact.getRawContacts().size());
+        assertEquals(1, contact.getStatuses().size());
+        mContactsProvider.verify();
+    }
+
+    public void testLoadContactWithContactLookupWithIncorrectIdUri() {
+        // Use lookup-style Uris that contain incorrect Contact-ID
+        // (we want to ensure that still the correct contact is chosen)
+        final long wrongContactId = 2;
+        final long wrongRawContactId = 12;
+
+        final String wrongLookupKey = "ab%12%@!";
+        final Uri baseUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, CONTACT_ID);
+        final Uri wrongBaseUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, wrongContactId);
+        final Uri lookupUri = ContentUris.withAppendedId(
+                Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, LOOKUP_KEY),
+                CONTACT_ID);
+        final Uri lookupWithWrongIdUri = ContentUris.withAppendedId(
+                Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, LOOKUP_KEY),
+                wrongContactId);
+        final Uri entityUri = Uri.withAppendedPath(lookupWithWrongIdUri,
+                Contacts.Entity.CONTENT_DIRECTORY);
+
+        ContactQueries queries = new ContactQueries();
+        mContactsProvider.expectTypeQuery(lookupWithWrongIdUri, Contacts.CONTENT_ITEM_TYPE);
+        queries.fetchAllData(entityUri, CONTACT_ID, RAW_CONTACT_ID, DATA_ID, LOOKUP_KEY);
+
+        Contact contact = assertLoadContact(lookupWithWrongIdUri);
+
+        assertEquals(CONTACT_ID, contact.getId());
+        assertEquals(RAW_CONTACT_ID, contact.getNameRawContactId());
+        assertEquals(DisplayNameSources.STRUCTURED_NAME, contact.getDisplayNameSource());
+        assertEquals(LOOKUP_KEY, contact.getLookupKey());
+        assertEquals(lookupUri, contact.getLookupUri());
+        assertEquals(1, contact.getRawContacts().size());
+        assertEquals(1, contact.getStatuses().size());
+
+        mContactsProvider.verify();
+    }
+
+    public void testLoadContactReturnDirectoryContactWithoutDisplayName() throws JSONException {
+        // Use lookup-style Uri that contains encoded json object which encapsulates the
+        // directory contact. The test json object is:
+        // {
+        //   display_name_source": 40,
+        //   "vnd.android.cursor.item\/contact":{"email":{"data1":"test@google.com" }}
+        // }
+        JSONObject itemJson = new JSONObject();
+        itemJson.put("email", new JSONObject().put("data1", "test@google.com"));
+        JSONObject json = new JSONObject();
+        json.put(Contacts.NAME_RAW_CONTACT_ID, CONTACT_ID);
+        json.put(Contacts.DISPLAY_NAME_SOURCE, DisplayNameSources.STRUCTURED_NAME);
+        json.put(Contacts.CONTENT_ITEM_TYPE, itemJson);
+
+        final Uri lookupUri = Contacts.CONTENT_LOOKUP_URI.buildUpon()
+                .encodedFragment(json.toString())
+                .appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY, "1")
+                .appendPath(Constants.LOOKUP_URI_ENCODED).build();
+
+        mContactsProvider.expectTypeQuery(lookupUri, Contacts.CONTENT_ITEM_TYPE);
+        Contact contact = assertLoadContact(lookupUri);
+
+        assertEquals(-1, contact.getId());
+        assertEquals(-1, contact.getNameRawContactId());
+        assertEquals(DisplayNameSources.STRUCTURED_NAME, contact.getDisplayNameSource());
+        assertEquals("", contact.getDisplayName());
+        assertEquals(lookupUri, contact.getLookupUri());
+        assertEquals(1, contact.getRawContacts().size());
+        mContactsProvider.verify();
+    }
+
+    class ContactQueries {
+        public void fetchAllData(
+                Uri baseUri, long contactId, long rawContactId, long dataId, String encodedLookup) {
+            final String[] COLUMNS_INTERNAL = new String[] {
+                    Contacts.NAME_RAW_CONTACT_ID, Contacts.DISPLAY_NAME_SOURCE,
+                    Contacts.LOOKUP_KEY, Contacts.DISPLAY_NAME,
+                    Contacts.DISPLAY_NAME_ALTERNATIVE, Contacts.PHONETIC_NAME,
+                    Contacts.PHOTO_ID, Contacts.STARRED, Contacts.CONTACT_PRESENCE,
+                    Contacts.CONTACT_STATUS, Contacts.CONTACT_STATUS_TIMESTAMP,
+                    Contacts.CONTACT_STATUS_RES_PACKAGE, Contacts.CONTACT_STATUS_LABEL,
+
+                    Contacts.Entity.CONTACT_ID,
+                    Contacts.Entity.RAW_CONTACT_ID,
+
+                    RawContacts.ACCOUNT_NAME, RawContacts.ACCOUNT_TYPE,
+                    RawContacts.DATA_SET,
+                    RawContacts.DIRTY, RawContacts.VERSION, RawContacts.SOURCE_ID,
+                    RawContacts.SYNC1, RawContacts.SYNC2, RawContacts.SYNC3, RawContacts.SYNC4,
+                    RawContacts.DELETED,
+
+                    Contacts.Entity.DATA_ID,
+
+                    Data.DATA1, Data.DATA2, Data.DATA3, Data.DATA4, Data.DATA5,
+                    Data.DATA6, Data.DATA7, Data.DATA8, Data.DATA9, Data.DATA10,
+                    Data.DATA11, Data.DATA12, Data.DATA13, Data.DATA14, Data.DATA15,
+                    Data.SYNC1, Data.SYNC2, Data.SYNC3, Data.SYNC4,
+                    Data.DATA_VERSION, Data.IS_PRIMARY,
+                    Data.IS_SUPER_PRIMARY, Data.MIMETYPE,
+
+                    GroupMembership.GROUP_SOURCE_ID,
+
+                    Data.PRESENCE, Data.CHAT_CAPABILITY,
+                    Data.STATUS, Data.STATUS_RES_PACKAGE, Data.STATUS_ICON,
+                    Data.STATUS_LABEL, Data.STATUS_TIMESTAMP,
+
+                    Contacts.PHOTO_URI,
+
+                    Contacts.SEND_TO_VOICEMAIL,
+                    Contacts.CUSTOM_RINGTONE,
+                    Contacts.IS_USER_PROFILE,
+
+                    Data.TIMES_USED,
+                    Data.LAST_TIME_USED
+            };
+
+            List<String> projectionList = Lists.newArrayList(COLUMNS_INTERNAL);
+            if (CompatUtils.isMarshmallowCompatible()) {
+                projectionList.add(Data.CARRIER_PRESENCE);
+            }
+            final String[] COLUMNS = projectionList.toArray(new String[projectionList.size()]);
+
+            final Object[] ROWS_INTERNAL = new Object[] {
+                    rawContactId, 40,
+                    "aa%12%@!", "John Doe", "Doe, John", "jdo",
+                    0, 0, StatusUpdates.AVAILABLE,
+                    "Having lunch", 0,
+                    "mockPkg1", 10,
+
+                    contactId,
+                    rawContactId,
+
+                    "mockAccountName", "mockAccountType", null,
+                    0, 1, 0,
+                    "sync1", "sync2", "sync3", "sync4",
+                    0,
+
+                    dataId,
+
+                    "dat1", "dat2", "dat3", "dat4", "dat5",
+                    "dat6", "dat7", "dat8", "dat9", "dat10",
+                    "dat11", "dat12", "dat13", "dat14", "dat15",
+                    "syn1", "syn2", "syn3", "syn4",
+
+                    0, 0,
+                    0, StructuredName.CONTENT_ITEM_TYPE,
+
+                    "groupId",
+
+                    StatusUpdates.INVISIBLE, null,
+                    "Having dinner", "mockPkg3", 0,
+                    20, 0,
+
+                    "content:some.photo.uri",
+
+                    0,
+                    null,
+                    0,
+
+                    0,
+                    0
+            };
+
+            List<Object> rowsList = Lists.newArrayList(ROWS_INTERNAL);
+            if (CompatUtils.isMarshmallowCompatible()) {
+                rowsList.add(Data.CARRIER_PRESENCE_VT_CAPABLE);
+            }
+            final Object[] ROWS = rowsList.toArray(new Object[rowsList.size()]);
+
+            mContactsProvider.expectQuery(baseUri)
+                    .withProjection(COLUMNS)
+                    .withSortOrder(Contacts.Entity.RAW_CONTACT_ID)
+                    .returnRow(ROWS);
+        }
+
+        void fetchLookupAndId(final Uri sourceUri, final long expectedContactId,
+                final String expectedEncodedLookup) {
+            mContactsProvider.expectQuery(sourceUri)
+                    .withProjection(Contacts.LOOKUP_KEY, Contacts._ID)
+                    .returnRow(expectedEncodedLookup, expectedContactId);
+        }
+
+        void fetchContactIdAndLookupFromRawContactUri(final Uri rawContactUri,
+                final long expectedContactId, final String expectedEncodedLookup) {
+            // TODO: use a lighter query by joining rawcontacts with contacts in provider
+            // (See ContactContracts.java)
+            final Uri dataUri = Uri.withAppendedPath(rawContactUri,
+                    RawContacts.Data.CONTENT_DIRECTORY);
+            mContactsProvider.expectQuery(dataUri)
+                    .withProjection(RawContacts.CONTACT_ID, Contacts.LOOKUP_KEY)
+                    .returnRow(expectedContactId, expectedEncodedLookup);
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/model/Cp2DeviceLocalAccountLocatorTests.java b/tests/src/com/android/contacts/model/Cp2DeviceLocalAccountLocatorTests.java
new file mode 100644
index 0000000..12365a2
--- /dev/null
+++ b/tests/src/com/android/contacts/model/Cp2DeviceLocalAccountLocatorTests.java
@@ -0,0 +1,218 @@
+/*
+ * 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 android.support.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
new file mode 100644
index 0000000..03e1d4f
--- /dev/null
+++ b/tests/src/com/android/contacts/model/RawContactDeltaListTests.java
@@ -0,0 +1,599 @@
+/*
+ * Copyright (C) 2009 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.ContentProviderOperation;
+import android.content.ContentValues;
+import android.content.Context;
+import android.net.Uri;
+import android.provider.BaseColumns;
+import android.provider.ContactsContract.AggregationExceptions;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.RawContacts;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.LargeTest;
+
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.model.account.AccountType;
+
+import com.google.common.collect.Lists;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collections;
+
+/**
+ * Tests for {@link RawContactDeltaList} which focus on "diff" operations that should
+ * create {@link AggregationExceptions} in certain cases.
+ */
+@LargeTest
+public class RawContactDeltaListTests extends AndroidTestCase {
+    // From android.content.ContentProviderOperation
+    public static final int TYPE_INSERT = 1;
+    public static final int TYPE_UPDATE = 2;
+    public static final int TYPE_DELETE = 3;
+    public static final int TYPE_ASSERT = 4;
+
+    private static final long CONTACT_FIRST = 1;
+    private static final long CONTACT_SECOND = 2;
+
+    public static final long CONTACT_BOB = 10;
+    public static final long CONTACT_MARY = 11;
+
+    public static final long PHONE_RED = 20;
+    public static final long PHONE_GREEN = 21;
+    public static final long PHONE_BLUE = 22;
+
+    public static final long EMAIL_YELLOW = 25;
+
+    public static final long VER_FIRST = 100;
+    public static final long VER_SECOND = 200;
+
+    public static final String TEST_PHONE = "555-1212";
+    public static final String TEST_ACCOUNT = "org.example.test";
+
+    public RawContactDeltaListTests() {
+        super();
+    }
+
+    @Override
+    public void setUp() {
+        mContext = getContext();
+    }
+
+    /**
+     * Build a {@link AccountType} that has various odd constraints for
+     * testing purposes.
+     */
+    protected AccountType getAccountType() {
+        return new RawContactModifierTests.MockContactsSource();
+    }
+
+    static ContentValues getValues(ContentProviderOperation operation)
+            throws NoSuchFieldException, IllegalAccessException {
+        final Field field = ContentProviderOperation.class.getDeclaredField("mValues");
+        field.setAccessible(true);
+        return (ContentValues) field.get(operation);
+    }
+
+    static RawContactDelta getUpdate(Context context, long rawContactId) {
+        final RawContact before = RawContactDeltaTests.getRawContact(context, rawContactId,
+                RawContactDeltaTests.TEST_PHONE_ID);
+        return RawContactDelta.fromBefore(before);
+    }
+
+    static RawContactDelta getInsert() {
+        final ContentValues after = new ContentValues();
+        after.put(RawContacts.ACCOUNT_NAME, RawContactDeltaTests.TEST_ACCOUNT_NAME);
+        after.put(RawContacts.SEND_TO_VOICEMAIL, 1);
+
+        final ValuesDelta values = ValuesDelta.fromAfter(after);
+        return new RawContactDelta(values);
+    }
+
+    static RawContactDeltaList buildSet(RawContactDelta... deltas) {
+        final RawContactDeltaList set = new RawContactDeltaList();
+        Collections.addAll(set, deltas);
+        return set;
+    }
+
+    static RawContactDelta buildBeforeEntity(Context context, long rawContactId, long version,
+            ContentValues... entries) {
+        // Build an existing contact read from database
+        final ContentValues contact = new ContentValues();
+        contact.put(RawContacts.VERSION, version);
+        contact.put(RawContacts._ID, rawContactId);
+        final RawContact before = new RawContact(contact);
+        for (ContentValues entry : entries) {
+            before.addDataItemValues(entry);
+        }
+        return RawContactDelta.fromBefore(before);
+    }
+
+    static RawContactDelta buildAfterEntity(ContentValues... entries) {
+        // Build an existing contact read from database
+        final ContentValues contact = new ContentValues();
+        contact.put(RawContacts.ACCOUNT_TYPE, TEST_ACCOUNT);
+        final RawContactDelta after = new RawContactDelta(ValuesDelta.fromAfter(contact));
+        for (ContentValues entry : entries) {
+            after.addEntry(ValuesDelta.fromAfter(entry));
+        }
+        return after;
+    }
+
+    static ContentValues buildPhone(long phoneId) {
+        return buildPhone(phoneId, Long.toString(phoneId));
+    }
+
+    static ContentValues buildPhone(long phoneId, String value) {
+        final ContentValues values = new ContentValues();
+        values.put(Data._ID, phoneId);
+        values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        values.put(Phone.NUMBER, value);
+        values.put(Phone.TYPE, Phone.TYPE_HOME);
+        return values;
+    }
+
+    static ContentValues buildEmail(long emailId) {
+        final ContentValues values = new ContentValues();
+        values.put(Data._ID, emailId);
+        values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        values.put(Email.DATA, Long.toString(emailId));
+        values.put(Email.TYPE, Email.TYPE_HOME);
+        return values;
+    }
+
+    static void insertPhone(RawContactDeltaList set, long rawContactId, ContentValues values) {
+        final RawContactDelta match = set.getByRawContactId(rawContactId);
+        match.addEntry(ValuesDelta.fromAfter(values));
+    }
+
+    static ValuesDelta getPhone(RawContactDeltaList set, long rawContactId, long dataId) {
+        final RawContactDelta match = set.getByRawContactId(rawContactId);
+        return match.getEntry(dataId);
+    }
+
+    static void assertDiffPattern(RawContactDelta delta, CPOWrapper... pattern) {
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        delta.buildAssertWrapper(diff);
+        delta.buildDiffWrapper(diff);
+        assertDiffPattern(diff, pattern);
+    }
+
+    static void assertDiffPattern(RawContactDeltaList set, CPOWrapper... pattern) {
+        assertDiffPattern(set.buildDiffWrapper(), pattern);
+    }
+
+    static void assertDiffPattern(ArrayList<CPOWrapper> diff, CPOWrapper... pattern) {
+        assertEquals("Unexpected operations", pattern.length, diff.size());
+        for (int i = 0; i < pattern.length; i++) {
+            final CPOWrapper expected = pattern[i];
+            final CPOWrapper found = diff.get(i);
+
+            assertEquals("Unexpected uri",
+                    expected.getOperation().getUri(), found.getOperation().getUri());
+
+            final String expectedType = getTypeString(expected);
+            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());
+            }
+        }
+    }
+
+    static String getTypeString(CPOWrapper cpoWrapper) {
+        if (CompatUtils.isAssertQueryCompat(cpoWrapper)) {
+            return "TYPE_ASSERT";
+        } else if (CompatUtils.isInsertCompat(cpoWrapper)) {
+            return "TYPE_INSERT";
+        } else if (CompatUtils.isUpdateCompat(cpoWrapper)) {
+            return "TYPE_UPDATE";
+        } else if (CompatUtils.isDeleteCompat(cpoWrapper)) {
+            return "TYPE_DELETE";
+        }
+        return "TYPE_UNKNOWN";
+    }
+
+    static CPOWrapper buildAssertVersion(long version) {
+        final ContentValues values = new ContentValues();
+        values.put(RawContacts.VERSION, version);
+        return buildCPOWrapper(RawContacts.CONTENT_URI, TYPE_ASSERT, values);
+    }
+
+    static CPOWrapper buildAggregationModeUpdate(int mode) {
+        final ContentValues values = new ContentValues();
+        values.put(RawContacts.AGGREGATION_MODE, mode);
+        return buildCPOWrapper(RawContacts.CONTENT_URI, TYPE_UPDATE, values);
+    }
+
+    static CPOWrapper buildUpdateAggregationSuspended() {
+        return buildAggregationModeUpdate(RawContacts.AGGREGATION_MODE_SUSPENDED);
+    }
+
+    static CPOWrapper buildUpdateAggregationDefault() {
+        return buildAggregationModeUpdate(RawContacts.AGGREGATION_MODE_DEFAULT);
+    }
+
+    static CPOWrapper buildUpdateAggregationKeepTogether(long rawContactId) {
+        final ContentValues values = new ContentValues();
+        values.put(AggregationExceptions.RAW_CONTACT_ID1, rawContactId);
+        values.put(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_TOGETHER);
+        return buildCPOWrapper(AggregationExceptions.CONTENT_URI, TYPE_UPDATE, values);
+    }
+
+    static ContentValues buildDataInsert(ValuesDelta values, long rawContactId) {
+        final ContentValues insertValues = values.getCompleteValues();
+        insertValues.put(Data.RAW_CONTACT_ID, rawContactId);
+        return insertValues;
+    }
+
+    static CPOWrapper buildDelete(Uri uri) {
+        return buildCPOWrapper(uri, TYPE_DELETE, (ContentValues) null);
+    }
+
+    static ContentProviderOperation buildOper(Uri uri, int type, ValuesDelta values) {
+        return buildOper(uri, type, values.getCompleteValues());
+    }
+
+    static ContentProviderOperation buildOper(Uri uri, int type, ContentValues values) {
+        switch (type) {
+            case TYPE_ASSERT:
+                return ContentProviderOperation.newAssertQuery(uri).withValues(values).build();
+            case TYPE_INSERT:
+                return ContentProviderOperation.newInsert(uri).withValues(values).build();
+            case TYPE_UPDATE:
+                return ContentProviderOperation.newUpdate(uri).withValues(values).build();
+            case TYPE_DELETE:
+                return ContentProviderOperation.newDelete(uri).build();
+        }
+        return null;
+    }
+
+    static CPOWrapper buildCPOWrapper(Uri uri, int type, ContentValues values) {
+        if (type == TYPE_ASSERT || type == TYPE_INSERT || type == TYPE_UPDATE
+                || type == TYPE_DELETE) {
+            return new CPOWrapper(buildOper(uri, type, values), type);
+        }
+        return null;
+    }
+
+    static Long getVersion(RawContactDeltaList set, Long rawContactId) {
+        return set.getByRawContactId(rawContactId).getValues().getAsLong(RawContacts.VERSION);
+    }
+
+    /**
+     * Count number of {@link AggregationExceptions} updates contained in the
+     * given list of {@link CPOWrapper}.
+     */
+    static int countExceptionUpdates(ArrayList<CPOWrapper> diff) {
+        int updateCount = 0;
+        for (CPOWrapper cpoWrapper : diff) {
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            if (AggregationExceptions.CONTENT_URI.equals(oper.getUri())
+                    && CompatUtils.isUpdateCompat(cpoWrapper)) {
+                updateCount++;
+            }
+        }
+        return updateCount;
+    }
+
+    public void testInsert() {
+        final RawContactDelta insert = getInsert();
+        final RawContactDeltaList set = buildSet(insert);
+
+        // Inserting single shouldn't create rules
+        final ArrayList<CPOWrapper> diff = set.buildDiffWrapper();
+        final int exceptionCount = countExceptionUpdates(diff);
+        assertEquals("Unexpected exception updates", 0, exceptionCount);
+    }
+
+    public void testUpdateUpdate() {
+        final RawContactDelta updateFirst = getUpdate(mContext, CONTACT_FIRST);
+        final RawContactDelta updateSecond = getUpdate(mContext, CONTACT_SECOND);
+        final RawContactDeltaList set = buildSet(updateFirst, updateSecond);
+
+        // Updating two existing shouldn't create rules
+        final ArrayList<CPOWrapper> diff = set.buildDiffWrapper();
+        final int exceptionCount = countExceptionUpdates(diff);
+        assertEquals("Unexpected exception updates", 0, exceptionCount);
+    }
+
+    public void testUpdateInsert() {
+        final RawContactDelta update = getUpdate(mContext, CONTACT_FIRST);
+        final RawContactDelta insert = getInsert();
+        final RawContactDeltaList set = buildSet(update, insert);
+
+        // New insert should only create one rule
+        final ArrayList<CPOWrapper> diff = set.buildDiffWrapper();
+        final int exceptionCount = countExceptionUpdates(diff);
+        assertEquals("Unexpected exception updates", 1, exceptionCount);
+    }
+
+    public void testInsertUpdateInsert() {
+        final RawContactDelta insertFirst = getInsert();
+        final RawContactDelta update = getUpdate(mContext, CONTACT_FIRST);
+        final RawContactDelta insertSecond = getInsert();
+        final RawContactDeltaList set = buildSet(insertFirst, update, insertSecond);
+
+        // Two inserts should create two rules to bind against single existing
+        final ArrayList<CPOWrapper> diff = set.buildDiffWrapper();
+        final int exceptionCount = countExceptionUpdates(diff);
+        assertEquals("Unexpected exception updates", 2, exceptionCount);
+    }
+
+    public void testInsertInsertInsert() {
+        final RawContactDelta insertFirst = getInsert();
+        final RawContactDelta insertSecond = getInsert();
+        final RawContactDelta insertThird = getInsert();
+        final RawContactDeltaList set = buildSet(insertFirst, insertSecond, insertThird);
+
+        // Three new inserts should create only two binding rules
+        final ArrayList<CPOWrapper> diff = set.buildDiffWrapper();
+        final int exceptionCount = countExceptionUpdates(diff);
+        assertEquals("Unexpected exception updates", 2, exceptionCount);
+    }
+
+    public void testMergeDataRemoteInsert() {
+        final RawContactDeltaList first = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_FIRST, buildPhone(PHONE_RED)));
+        final RawContactDeltaList second = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_SECOND, buildPhone(PHONE_RED), buildPhone(PHONE_GREEN)));
+
+        // Merge in second version, verify they match
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertEquals("Unexpected change when merging", second, merged);
+    }
+
+    public void testMergeDataLocalUpdateRemoteInsert() {
+        final RawContactDeltaList first = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_FIRST, buildPhone(PHONE_RED)));
+        final RawContactDeltaList second = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_SECOND, buildPhone(PHONE_RED), buildPhone(PHONE_GREEN)));
+
+        // Change the local number to trigger update
+        final ValuesDelta phone = getPhone(first, CONTACT_BOB, PHONE_RED);
+        phone.put(Phone.NUMBER, TEST_PHONE);
+
+        assertDiffPattern(first,
+                buildAssertVersion(VER_FIRST),
+                buildUpdateAggregationSuspended(),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_UPDATE, phone.getAfter()),
+                buildUpdateAggregationDefault());
+
+        // Merge in the second version, verify diff matches
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertDiffPattern(merged,
+                buildAssertVersion(VER_SECOND),
+                buildUpdateAggregationSuspended(),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_UPDATE, phone.getAfter()),
+                buildUpdateAggregationDefault());
+    }
+
+    public void testMergeDataLocalUpdateRemoteDelete() {
+        final RawContactDeltaList first = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_FIRST, buildPhone(PHONE_RED)));
+        final RawContactDeltaList second = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_SECOND, buildPhone(PHONE_GREEN)));
+
+        // Change the local number to trigger update
+        final ValuesDelta phone = getPhone(first, CONTACT_BOB, PHONE_RED);
+        phone.put(Phone.NUMBER, TEST_PHONE);
+
+        assertDiffPattern(first,
+                buildAssertVersion(VER_FIRST),
+                buildUpdateAggregationSuspended(),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_UPDATE, phone.getAfter()),
+                buildUpdateAggregationDefault());
+
+        // Merge in the second version, verify that our update changed to
+        // insert, since RED was deleted on remote side
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertDiffPattern(merged,
+                buildAssertVersion(VER_SECOND),
+                buildUpdateAggregationSuspended(),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, buildDataInsert(phone, CONTACT_BOB)),
+                buildUpdateAggregationDefault());
+    }
+
+    public void testMergeDataLocalDeleteRemoteUpdate() {
+        final RawContactDeltaList first = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_FIRST, buildPhone(PHONE_RED)));
+        final RawContactDeltaList second = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_SECOND, buildPhone(PHONE_RED, TEST_PHONE)));
+
+        // Delete phone locally
+        final ValuesDelta phone = getPhone(first, CONTACT_BOB, PHONE_RED);
+        phone.markDeleted();
+
+        assertDiffPattern(first,
+                buildAssertVersion(VER_FIRST),
+                buildUpdateAggregationSuspended(),
+                buildDelete(Data.CONTENT_URI),
+                buildUpdateAggregationDefault());
+
+        // Merge in the second version, verify that our delete remains
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertDiffPattern(merged,
+                buildAssertVersion(VER_SECOND),
+                buildUpdateAggregationSuspended(),
+                buildDelete(Data.CONTENT_URI),
+                buildUpdateAggregationDefault());
+    }
+
+    public void testMergeDataLocalInsertRemoteInsert() {
+        final RawContactDeltaList first = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_FIRST, buildPhone(PHONE_RED)));
+        final RawContactDeltaList second = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_SECOND, buildPhone(PHONE_RED), buildPhone(PHONE_GREEN)));
+
+        // Insert new phone locally
+        final ValuesDelta bluePhone = ValuesDelta.fromAfter(buildPhone(PHONE_BLUE));
+        first.getByRawContactId(CONTACT_BOB).addEntry(bluePhone);
+        assertDiffPattern(first,
+                buildAssertVersion(VER_FIRST),
+                buildUpdateAggregationSuspended(),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, buildDataInsert(bluePhone, CONTACT_BOB)),
+                buildUpdateAggregationDefault());
+
+        // Merge in the second version, verify that our insert remains
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertDiffPattern(merged,
+                buildAssertVersion(VER_SECOND),
+                buildUpdateAggregationSuspended(),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, buildDataInsert(bluePhone, CONTACT_BOB)),
+                buildUpdateAggregationDefault());
+    }
+
+    public void testMergeRawContactLocalInsertRemoteInsert() {
+        final RawContactDeltaList first = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                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)));
+
+        // Add new contact locally, should remain insert
+        final ContentValues joePhoneInsert = buildPhone(PHONE_BLUE);
+        final RawContactDelta joeContact = buildAfterEntity(joePhoneInsert);
+        final ContentValues joeContactInsert = joeContact.getValues().getCompleteValues();
+        joeContactInsert.put(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_SUSPENDED);
+        first.add(joeContact);
+        assertDiffPattern(first,
+                buildAssertVersion(VER_FIRST),
+                buildCPOWrapper(RawContacts.CONTENT_URI, TYPE_INSERT, joeContactInsert),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, joePhoneInsert),
+                buildAggregationModeUpdate(RawContacts.AGGREGATION_MODE_DEFAULT),
+                buildUpdateAggregationKeepTogether(CONTACT_BOB));
+
+        // Merge in the second version, verify that our insert remains
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertDiffPattern(merged,
+                buildAssertVersion(VER_SECOND),
+                buildAssertVersion(VER_SECOND),
+                buildCPOWrapper(RawContacts.CONTENT_URI, TYPE_INSERT, joeContactInsert),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, joePhoneInsert),
+                buildAggregationModeUpdate(RawContacts.AGGREGATION_MODE_DEFAULT),
+                buildUpdateAggregationKeepTogether(CONTACT_BOB));
+    }
+
+    public void testMergeRawContactLocalDeleteRemoteDelete() {
+        final RawContactDeltaList first = buildSet(
+                buildBeforeEntity(mContext, CONTACT_BOB, VER_FIRST, buildPhone(PHONE_RED)),
+                buildBeforeEntity(mContext, CONTACT_MARY, VER_FIRST, buildPhone(PHONE_RED)));
+        final RawContactDeltaList second = buildSet(
+                buildBeforeEntity(mContext, CONTACT_BOB, VER_SECOND, buildPhone(PHONE_RED)));
+
+        // Remove contact locally
+        first.getByRawContactId(CONTACT_MARY).markDeleted();
+        assertDiffPattern(first,
+                buildAssertVersion(VER_FIRST),
+                buildAssertVersion(VER_FIRST),
+                buildDelete(RawContacts.CONTENT_URI));
+
+        // Merge in the second version, verify that our delete isn't needed
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertDiffPattern(merged);
+    }
+
+    public void testMergeRawContactLocalUpdateRemoteDelete() {
+        final RawContactDeltaList first = buildSet(
+                buildBeforeEntity(mContext, CONTACT_BOB, VER_FIRST, buildPhone(PHONE_RED)),
+                buildBeforeEntity(mContext, CONTACT_MARY, VER_FIRST, buildPhone(PHONE_RED)));
+        final RawContactDeltaList second = buildSet(
+                buildBeforeEntity(mContext, CONTACT_BOB, VER_SECOND, buildPhone(PHONE_RED)));
+
+        // Perform local update
+        final ValuesDelta phone = getPhone(first, CONTACT_MARY, PHONE_RED);
+        phone.put(Phone.NUMBER, TEST_PHONE);
+        assertDiffPattern(first,
+                buildAssertVersion(VER_FIRST),
+                buildAssertVersion(VER_FIRST),
+                buildUpdateAggregationSuspended(),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_UPDATE, phone.getAfter()),
+                buildUpdateAggregationDefault());
+
+        final ContentValues phoneInsert = phone.getCompleteValues();
+        final ContentValues contactInsert = first.getByRawContactId(CONTACT_MARY).getValues()
+                .getCompleteValues();
+        contactInsert.put(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_SUSPENDED);
+
+        // Merge and verify that update turned into insert
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertDiffPattern(merged,
+                buildAssertVersion(VER_SECOND),
+                buildCPOWrapper(RawContacts.CONTENT_URI, TYPE_INSERT, contactInsert),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, phoneInsert),
+                buildAggregationModeUpdate(RawContacts.AGGREGATION_MODE_DEFAULT),
+                buildUpdateAggregationKeepTogether(CONTACT_BOB));
+    }
+
+    public void testMergeUsesNewVersion() {
+        final RawContactDeltaList first = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_FIRST, buildPhone(PHONE_RED)));
+        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));
+
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertEquals((Long)VER_SECOND, getVersion(merged, CONTACT_BOB));
+    }
+
+    public void testMergeAfterEnsureAndTrim() {
+        final RawContactDeltaList first = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_FIRST, buildEmail(EMAIL_YELLOW)));
+        final RawContactDeltaList second = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
+                VER_SECOND, buildEmail(EMAIL_YELLOW)));
+
+        // Ensure we have at least one phone
+        final AccountType source = getAccountType();
+        final RawContactDelta bobContact = first.getByRawContactId(CONTACT_BOB);
+        RawContactModifier.ensureKindExists(bobContact, source, Phone.CONTENT_ITEM_TYPE);
+        final ValuesDelta bobPhone = bobContact.getSuperPrimaryEntry(Phone.CONTENT_ITEM_TYPE, true);
+
+        // Make sure the update would insert a row
+        assertDiffPattern(first,
+                buildAssertVersion(VER_FIRST),
+                buildUpdateAggregationSuspended(),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, buildDataInsert(bobPhone, CONTACT_BOB)),
+                buildUpdateAggregationDefault());
+
+        // Trim values and ensure that we don't insert things
+        RawContactModifier.trimEmpty(bobContact, source);
+        assertDiffPattern(first);
+
+        // Now re-parent the change, which should remain no-op
+        final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
+        assertDiffPattern(merged);
+    }
+}
diff --git a/tests/src/com/android/contacts/model/RawContactDeltaTests.java b/tests/src/com/android/contacts/model/RawContactDeltaTests.java
new file mode 100644
index 0000000..f5d4181
--- /dev/null
+++ b/tests/src/com/android/contacts/model/RawContactDeltaTests.java
@@ -0,0 +1,379 @@
+/*
+ * Copyright (C) 2009 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.ContentProviderOperation;
+import android.content.ContentValues;
+import android.content.Context;
+import android.os.Build;
+import android.os.Parcel;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.RawContacts;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.LargeTest;
+
+import com.android.contacts.compat.CompatUtils;
+
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+
+/**
+ * Tests for {@link RawContactDelta} and {@link ValuesDelta}. These tests
+ * focus on passing changes across {@link Parcel}, and verifying that they
+ * correctly build expected "diff" operations.
+ */
+@LargeTest
+public class RawContactDeltaTests extends AndroidTestCase {
+    public static final String TAG = "EntityDeltaTests";
+
+    public static final long TEST_CONTACT_ID = 12;
+    public static final long TEST_PHONE_ID = 24;
+
+    public static final String TEST_PHONE_NUMBER_1 = "218-555-1111";
+    public static final String TEST_PHONE_NUMBER_2 = "218-555-2222";
+
+    public static final String TEST_ACCOUNT_NAME = "TEST";
+
+    public RawContactDeltaTests() {
+        super();
+    }
+
+    @Override
+    public void setUp() {
+        mContext = getContext();
+    }
+
+    public static RawContact getRawContact(Context context, long contactId, long phoneId) {
+        // Build an existing contact read from database
+        final ContentValues contact = new ContentValues();
+        contact.put(RawContacts.VERSION, 43);
+        contact.put(RawContacts._ID, contactId);
+
+        final ContentValues phone = new ContentValues();
+        phone.put(Data._ID, phoneId);
+        phone.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        phone.put(Phone.NUMBER, TEST_PHONE_NUMBER_1);
+        phone.put(Phone.TYPE, Phone.TYPE_HOME);
+
+        final RawContact before = new RawContact(contact);
+        before.addDataItemValues(phone);
+        return before;
+    }
+
+    /**
+     * Test that {@link RawContactDelta#mergeAfter(RawContactDelta)} correctly passes
+     * any changes through the {@link Parcel} object. This enforces that
+     * {@link RawContactDelta} should be identical when serialized against the same
+     * "before" {@link RawContact}.
+     */
+    public void testParcelChangesNone() {
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+        final RawContactDelta dest = RawContactDelta.fromBefore(before);
+
+        // Merge modified values and assert they match
+        final RawContactDelta merged = RawContactDelta.mergeAfter(dest, source);
+        assertEquals("Unexpected change when merging", source, merged);
+    }
+
+    public void testParcelChangesInsert() {
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+        final RawContactDelta dest = RawContactDelta.fromBefore(before);
+
+        // Add a new row and pass across parcel, should be same
+        final ContentValues phone = new ContentValues();
+        phone.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        phone.put(Phone.NUMBER, TEST_PHONE_NUMBER_2);
+        phone.put(Phone.TYPE, Phone.TYPE_WORK);
+        source.addEntry(ValuesDelta.fromAfter(phone));
+
+        // Merge modified values and assert they match
+        final RawContactDelta merged = RawContactDelta.mergeAfter(dest, source);
+        assertEquals("Unexpected change when merging", source, merged);
+    }
+
+    public void testParcelChangesUpdate() {
+        // Update existing row and pass across parcel, should be same
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+        final RawContactDelta dest = RawContactDelta.fromBefore(before);
+
+        final ValuesDelta child = source.getEntry(TEST_PHONE_ID);
+        child.put(Phone.NUMBER, TEST_PHONE_NUMBER_2);
+
+        // Merge modified values and assert they match
+        final RawContactDelta merged = RawContactDelta.mergeAfter(dest, source);
+        assertEquals("Unexpected change when merging", source, merged);
+    }
+
+    public void testParcelChangesDelete() {
+        // Delete a row and pass across parcel, should be same
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+        final RawContactDelta dest = RawContactDelta.fromBefore(before);
+
+        final ValuesDelta child = source.getEntry(TEST_PHONE_ID);
+        child.markDeleted();
+
+        // Merge modified values and assert they match
+        final RawContactDelta merged = RawContactDelta.mergeAfter(dest, source);
+        assertEquals("Unexpected change when merging", source, merged);
+    }
+
+    public void testValuesDiffDelete() {
+        final ContentValues before = new ContentValues();
+        before.put(Data._ID, TEST_PHONE_ID);
+        before.put(Phone.NUMBER, TEST_PHONE_NUMBER_1);
+
+        final ValuesDelta values = ValuesDelta.fromBefore(before);
+        values.markDeleted();
+
+        // Should produce a delete action
+        final BuilderWrapper builderWrapper = values.buildDiffWrapper(Data.CONTENT_URI);
+        final boolean isDelete = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
+                ? builderWrapper.getBuilder().build().isDelete()
+                : builderWrapper.getType() == CompatUtils.TYPE_DELETE;
+        assertTrue("Didn't produce delete action", isDelete);
+    }
+
+    /**
+     * Test that {@link RawContactDelta#buildDiffWrapper(ArrayList)} is correctly built for
+     * insert, update, and delete cases. This only tests a subset of possible
+     * {@link Data} row changes.
+     */
+    public void testEntityDiffNone() {
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+
+        // Assert that writing unchanged produces few operations
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        source.buildDiffWrapper(diff);
+
+        assertTrue("Created changes when none needed", (diff.size() == 0));
+    }
+
+    public void testEntityDiffNoneInsert() {
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+
+        // Insert a new phone number
+        final ContentValues phone = new ContentValues();
+        phone.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        phone.put(Phone.NUMBER, TEST_PHONE_NUMBER_2);
+        phone.put(Phone.TYPE, Phone.TYPE_WORK);
+        source.addEntry(ValuesDelta.fromAfter(phone));
+
+        // Assert two operations: insert Data row and enforce version
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        source.buildAssertWrapper(diff);
+        source.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 4, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            assertTrue("Expected version enforcement", CompatUtils.isAssertQueryCompat(cpoWrapper));
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(2);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(3);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testEntityDiffUpdateInsert() {
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+
+        // Update parent contact values
+        source.getValues().put(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DISABLED);
+
+        // Insert a new phone number
+        final ContentValues phone = new ContentValues();
+        phone.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        phone.put(Phone.NUMBER, TEST_PHONE_NUMBER_2);
+        phone.put(Phone.TYPE, Phone.TYPE_WORK);
+        source.addEntry(ValuesDelta.fromAfter(phone));
+
+        // Assert three operations: update Contact, insert Data row, enforce version
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        source.buildAssertWrapper(diff);
+        source.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 5, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            assertTrue("Expected version enforcement", CompatUtils.isAssertQueryCompat(cpoWrapper));
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(2);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(3);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(4);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testEntityDiffNoneUpdate() {
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+
+        // Update existing phone number
+        final ValuesDelta child = source.getEntry(TEST_PHONE_ID);
+        child.put(Phone.NUMBER, TEST_PHONE_NUMBER_2);
+
+        // Assert that version is enforced
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        source.buildAssertWrapper(diff);
+        source.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 4, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            assertTrue("Expected version enforcement", CompatUtils.isAssertQueryCompat(cpoWrapper));
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(2);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(3);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testEntityDiffDelete() {
+        final RawContact before = getRawContact(mContext, TEST_CONTACT_ID, TEST_PHONE_ID);
+        final RawContactDelta source = RawContactDelta.fromBefore(before);
+
+        // Delete entire entity
+        source.getValues().markDeleted();
+
+        // Assert two operations: delete Contact and enforce version
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        source.buildAssertWrapper(diff);
+        source.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 2, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            assertTrue("Expected version enforcement", CompatUtils.isAssertQueryCompat(cpoWrapper));
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isDeleteCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testEntityDiffInsert() {
+        // Insert a RawContact
+        final ContentValues after = new ContentValues();
+        after.put(RawContacts.ACCOUNT_NAME, TEST_ACCOUNT_NAME);
+        after.put(RawContacts.SEND_TO_VOICEMAIL, 1);
+
+        final ValuesDelta values = ValuesDelta.fromAfter(after);
+        final RawContactDelta source = new RawContactDelta(values);
+
+        // Assert two operations: insert Contact and enforce version
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        source.buildAssertWrapper(diff);
+        source.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 2, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testEntityDiffInsertInsert() {
+        // Insert a RawContact
+        final ContentValues after = new ContentValues();
+        after.put(RawContacts.ACCOUNT_NAME, TEST_ACCOUNT_NAME);
+        after.put(RawContacts.SEND_TO_VOICEMAIL, 1);
+
+        final ValuesDelta values = ValuesDelta.fromAfter(after);
+        final RawContactDelta source = new RawContactDelta(values);
+
+        // Insert a new phone number
+        final ContentValues phone = new ContentValues();
+        phone.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        phone.put(Phone.NUMBER, TEST_PHONE_NUMBER_2);
+        phone.put(Phone.TYPE, Phone.TYPE_WORK);
+        source.addEntry(ValuesDelta.fromAfter(phone));
+
+        // Assert two operations: delete Contact and enforce version
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        source.buildAssertWrapper(diff);
+        source.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 3, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/model/RawContactModifierTests.java b/tests/src/com/android/contacts/model/RawContactModifierTests.java
new file mode 100644
index 0000000..594bb44
--- /dev/null
+++ b/tests/src/com/android/contacts/model/RawContactModifierTests.java
@@ -0,0 +1,1200 @@
+/*
+ * Copyright (C) 2009 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.ContentProviderOperation;
+import android.content.ContentValues;
+import android.os.Bundle;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Intents.Insert;
+import android.provider.ContactsContract.RawContacts;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.LargeTest;
+
+import com.android.contacts.R;
+import com.android.contacts.compat.CompatUtils;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountType.EditType;
+import com.android.contacts.model.account.ExchangeAccountType;
+import com.android.contacts.model.account.GoogleAccountType;
+import com.android.contacts.model.dataitem.DataKind;
+import com.android.contacts.test.mocks.ContactsMockContext;
+import com.android.contacts.test.mocks.MockAccountTypeManager;
+
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests for {@link RawContactModifier} to verify that {@link AccountType}
+ * constraints are being enforced correctly.
+ */
+@LargeTest
+public class RawContactModifierTests extends AndroidTestCase {
+    public static final String TAG = "EntityModifierTests";
+
+    // From android.content.ContentProviderOperation
+    public static final int TYPE_INSERT = 1;
+
+    public static final long VER_FIRST = 100;
+
+    private static final long TEST_ID = 4;
+    private static final String TEST_PHONE = "218-555-1212";
+    private static final String TEST_NAME = "Adam Young";
+    private static final String TEST_NAME2 = "Breanne Duren";
+    private static final String TEST_IM = "example@example.com";
+    private static final String TEST_POSTAL = "1600 Amphitheatre Parkway";
+
+    private static final String TEST_ACCOUNT_NAME = "unittest@example.com";
+    private static final String TEST_ACCOUNT_TYPE = "com.example.unittest";
+
+    private static final String EXCHANGE_ACCT_TYPE = "com.android.exchange";
+
+    @Override
+    public void setUp() {
+        mContext = getContext();
+    }
+
+    public static class MockContactsSource extends AccountType {
+
+        MockContactsSource() {
+            try {
+                this.accountType = TEST_ACCOUNT_TYPE;
+
+                final DataKind nameKind = new DataKind(StructuredName.CONTENT_ITEM_TYPE,
+                        R.string.nameLabelsGroup, -1, true);
+                nameKind.typeOverallMax = 1;
+                addKind(nameKind);
+
+                // Phone allows maximum 2 home, 1 work, and unlimited other, with
+                // constraint of 5 numbers maximum.
+                final DataKind phoneKind = new DataKind(
+                        Phone.CONTENT_ITEM_TYPE, -1, 10, true);
+
+                phoneKind.typeOverallMax = 5;
+                phoneKind.typeColumn = Phone.TYPE;
+                phoneKind.typeList = Lists.newArrayList();
+                phoneKind.typeList.add(new EditType(Phone.TYPE_HOME, -1).setSpecificMax(2));
+                phoneKind.typeList.add(new EditType(Phone.TYPE_WORK, -1).setSpecificMax(1));
+                phoneKind.typeList.add(new EditType(Phone.TYPE_FAX_WORK, -1).setSecondary(true));
+                phoneKind.typeList.add(new EditType(Phone.TYPE_OTHER, -1));
+
+                phoneKind.fieldList = Lists.newArrayList();
+                phoneKind.fieldList.add(new EditField(Phone.NUMBER, -1, -1));
+                phoneKind.fieldList.add(new EditField(Phone.LABEL, -1, -1));
+
+                addKind(phoneKind);
+
+                // Email is unlimited
+                final DataKind emailKind = new DataKind(Email.CONTENT_ITEM_TYPE, -1, 10, true);
+                emailKind.typeOverallMax = -1;
+                emailKind.fieldList = Lists.newArrayList();
+                emailKind.fieldList.add(new EditField(Email.DATA, -1, -1));
+                addKind(emailKind);
+
+                // IM is only one
+                final DataKind imKind = new DataKind(Im.CONTENT_ITEM_TYPE, -1, 10, true);
+                imKind.typeOverallMax = 1;
+                imKind.fieldList = Lists.newArrayList();
+                imKind.fieldList.add(new EditField(Im.DATA, -1, -1));
+                addKind(imKind);
+
+                // Organization is only one
+                final DataKind orgKind = new DataKind(Organization.CONTENT_ITEM_TYPE, -1, 10, true);
+                orgKind.typeOverallMax = 1;
+                orgKind.fieldList = Lists.newArrayList();
+                orgKind.fieldList.add(new EditField(Organization.COMPANY, -1, -1));
+                orgKind.fieldList.add(new EditField(Organization.TITLE, -1, -1));
+                addKind(orgKind);
+            } catch (DefinitionException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        @Override
+        public boolean isGroupMembershipEditable() {
+            return false;
+        }
+
+        @Override
+        public boolean areContactsWritable() {
+            return true;
+        }
+    }
+
+    /**
+     * Build a {@link AccountType} that has various odd constraints for
+     * testing purposes.
+     */
+    protected AccountType getAccountType() {
+        return new MockContactsSource();
+    }
+
+    /**
+     * Build {@link AccountTypeManager} instance.
+     */
+    protected AccountTypeManager getAccountTypes(AccountType... types) {
+        return new MockAccountTypeManager(types, null);
+    }
+
+    /**
+     * Build an {@link RawContact} with the requested set of phone numbers.
+     */
+    protected RawContactDelta getRawContact(Long existingId, ContentValues... entries) {
+        final ContentValues contact = new ContentValues();
+        if (existingId != null) {
+            contact.put(RawContacts._ID, existingId);
+        }
+        contact.put(RawContacts.ACCOUNT_NAME, TEST_ACCOUNT_NAME);
+        contact.put(RawContacts.ACCOUNT_TYPE, TEST_ACCOUNT_TYPE);
+
+        final RawContact before = new RawContact(contact);
+        for (ContentValues values : entries) {
+            before.addDataItemValues(values);
+        }
+        return RawContactDelta.fromBefore(before);
+    }
+
+    /**
+     * Assert this {@link List} contains the given {@link Object}.
+     */
+    protected void assertContains(List<?> list, Object object) {
+        assertTrue("Missing expected value", list.contains(object));
+    }
+
+    /**
+     * Assert this {@link List} does not contain the given {@link Object}.
+     */
+    protected void assertNotContains(List<?> list, Object object) {
+        assertFalse("Contained unexpected value", list.contains(object));
+    }
+
+    /**
+     * Insert various rows to test
+     * {@link RawContactModifier#getValidTypes(RawContactDelta, DataKind, EditType)}
+     */
+    public void testValidTypes() {
+        // Build a source and pull specific types
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+        final EditType typeWork = RawContactModifier.getType(kindPhone, Phone.TYPE_WORK);
+        final EditType typeOther = RawContactModifier.getType(kindPhone, Phone.TYPE_OTHER);
+
+        List<EditType> validTypes;
+
+        // Add first home, first work
+        final RawContactDelta state = getRawContact(TEST_ID);
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+        RawContactModifier.insertChild(state, kindPhone, typeWork);
+
+        // Expecting home, other
+        validTypes = RawContactModifier.getValidTypes(state, kindPhone, null, true, null, true);
+        assertContains(validTypes, typeHome);
+        assertNotContains(validTypes, typeWork);
+        assertContains(validTypes, typeOther);
+
+        // Add second home
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+
+        // Expecting other
+        validTypes = RawContactModifier.getValidTypes(state, kindPhone, null, true, null, true);
+        assertNotContains(validTypes, typeHome);
+        assertNotContains(validTypes, typeWork);
+        assertContains(validTypes, typeOther);
+
+        // Add third and fourth home (invalid, but possible)
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+
+        // Expecting none
+        validTypes = RawContactModifier.getValidTypes(state, kindPhone, null, true, null, true);
+        assertNotContains(validTypes, typeHome);
+        assertNotContains(validTypes, typeWork);
+        assertNotContains(validTypes, typeOther);
+    }
+
+    /**
+     * Test which valid types there are when trying to update the editor type.
+     * {@link RawContactModifier#getValidTypes(RawContactDelta, DataKind, EditType, Boolean)}
+     */
+    public void testValidTypesWhenUpdating() {
+        // Build a source and pull specific types
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+        final EditType typeWork = RawContactModifier.getType(kindPhone, Phone.TYPE_WORK);
+        final EditType typeOther = RawContactModifier.getType(kindPhone, Phone.TYPE_OTHER);
+
+        List<EditType> validTypes;
+
+        // Add first home, first work
+        final RawContactDelta state = getRawContact(TEST_ID);
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+        RawContactModifier.insertChild(state, kindPhone, typeWork);
+
+        // Update editor type for home.
+        validTypes = RawContactModifier.getValidTypes(state, kindPhone, null, true, null, false);
+        assertContains(validTypes, typeHome);
+        assertNotContains(validTypes, typeWork);
+        assertContains(validTypes, typeOther);
+
+        // Add another 3 types. Overall limit is 5.
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+        RawContactModifier.insertChild(state, kindPhone, typeOther);
+        RawContactModifier.insertChild(state, kindPhone, typeOther);
+
+        // "Other" is valid when updating the editor type.
+        validTypes = RawContactModifier.getValidTypes(state, kindPhone, null, true, null, false);
+        assertNotContains(validTypes, typeHome);
+        assertNotContains(validTypes, typeWork);
+        assertContains(validTypes, typeOther);
+    }
+
+    /**
+     * Test {@link RawContactModifier#canInsert(RawContactDelta, DataKind)} by
+     * inserting various rows.
+     */
+    public void testCanInsert() {
+        // Build a source and pull specific types
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+        final EditType typeWork = RawContactModifier.getType(kindPhone, Phone.TYPE_WORK);
+        final EditType typeOther = RawContactModifier.getType(kindPhone, Phone.TYPE_OTHER);
+
+        // Add first home, first work
+        final RawContactDelta state = getRawContact(TEST_ID);
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+        RawContactModifier.insertChild(state, kindPhone, typeWork);
+        assertTrue("Unable to insert", RawContactModifier.canInsert(state, kindPhone));
+
+        // Add two other, which puts us just under "5" overall limit
+        RawContactModifier.insertChild(state, kindPhone, typeOther);
+        RawContactModifier.insertChild(state, kindPhone, typeOther);
+        assertTrue("Unable to insert", RawContactModifier.canInsert(state, kindPhone));
+
+        // Add second home, which should push to snug limit
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+        assertFalse("Able to insert", RawContactModifier.canInsert(state, kindPhone));
+    }
+
+    /**
+     * Test
+     * {@link RawContactModifier#getBestValidType(RawContactDelta, DataKind, boolean, int)}
+     * by asserting expected best options in various states.
+     */
+    public void testBestValidType() {
+        // Build a source and pull specific types
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+        final EditType typeWork = RawContactModifier.getType(kindPhone, Phone.TYPE_WORK);
+        final EditType typeFaxWork = RawContactModifier.getType(kindPhone, Phone.TYPE_FAX_WORK);
+        final EditType typeOther = RawContactModifier.getType(kindPhone, Phone.TYPE_OTHER);
+
+        EditType suggested;
+
+        // Default suggestion should be home
+        final RawContactDelta state = getRawContact(TEST_ID);
+        suggested = RawContactModifier.getBestValidType(state, kindPhone, false, Integer.MIN_VALUE);
+        assertEquals("Unexpected suggestion", typeHome, suggested);
+
+        // Add first home, should now suggest work
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+        suggested = RawContactModifier.getBestValidType(state, kindPhone, false, Integer.MIN_VALUE);
+        assertEquals("Unexpected suggestion", typeWork, suggested);
+
+        // Add work fax, should still suggest work
+        RawContactModifier.insertChild(state, kindPhone, typeFaxWork);
+        suggested = RawContactModifier.getBestValidType(state, kindPhone, false, Integer.MIN_VALUE);
+        assertEquals("Unexpected suggestion", typeWork, suggested);
+
+        // Add other, should still suggest work
+        RawContactModifier.insertChild(state, kindPhone, typeOther);
+        suggested = RawContactModifier.getBestValidType(state, kindPhone, false, Integer.MIN_VALUE);
+        assertEquals("Unexpected suggestion", typeWork, suggested);
+
+        // Add work, now should suggest other
+        RawContactModifier.insertChild(state, kindPhone, typeWork);
+        suggested = RawContactModifier.getBestValidType(state, kindPhone, false, Integer.MIN_VALUE);
+        assertEquals("Unexpected suggestion", typeOther, suggested);
+    }
+
+    public void testIsEmptyEmpty() {
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+
+        // Test entirely empty row
+        final ContentValues after = new ContentValues();
+        final ValuesDelta values = ValuesDelta.fromAfter(after);
+
+        assertTrue("Expected empty", RawContactModifier.isEmpty(values, kindPhone));
+    }
+
+    public void testIsEmptyDirectFields() {
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Test row that has type values, but core fields are empty
+        final RawContactDelta state = getRawContact(TEST_ID);
+        final ValuesDelta values = RawContactModifier.insertChild(state, kindPhone, typeHome);
+
+        assertTrue("Expected empty", RawContactModifier.isEmpty(values, kindPhone));
+
+        // Insert some data to trigger non-empty state
+        values.put(Phone.NUMBER, TEST_PHONE);
+
+        assertFalse("Expected non-empty", RawContactModifier.isEmpty(values, kindPhone));
+    }
+
+    public void testTrimEmptySingle() {
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Test row that has type values, but core fields are empty
+        final RawContactDelta state = getRawContact(TEST_ID);
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+
+        // Build diff, expecting insert for data row and update enforcement
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 3, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(2);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+
+        // Trim empty rows and try again, expecting delete of overall contact
+        RawContactModifier.trimEmpty(state, source);
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 1, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isDeleteCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testTrimEmptySpaces() {
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Test row that has type values, but values are spaces
+        final RawContactDelta state = RawContactDeltaListTests.buildBeforeEntity(mContext, TEST_ID,
+                VER_FIRST);
+        final ValuesDelta values = RawContactModifier.insertChild(state, kindPhone, typeHome);
+        values.put(Phone.NUMBER, "   ");
+
+        // Build diff, expecting insert for data row and update enforcement
+        RawContactDeltaListTests.assertDiffPattern(state,
+                RawContactDeltaListTests.buildAssertVersion(VER_FIRST),
+                RawContactDeltaListTests.buildUpdateAggregationSuspended(),
+                RawContactDeltaListTests.buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT,
+                        RawContactDeltaListTests.buildDataInsert(values, TEST_ID)),
+                RawContactDeltaListTests.buildUpdateAggregationDefault());
+
+        // Trim empty rows and try again, expecting delete of overall contact
+        RawContactModifier.trimEmpty(state, source);
+        RawContactDeltaListTests.assertDiffPattern(state,
+                RawContactDeltaListTests.buildAssertVersion(VER_FIRST),
+                RawContactDeltaListTests.buildDelete(RawContacts.CONTENT_URI));
+    }
+
+    public void testTrimLeaveValid() {
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Test row that has type values with valid number
+        final RawContactDelta state = RawContactDeltaListTests.buildBeforeEntity(mContext, TEST_ID,
+                VER_FIRST);
+        final ValuesDelta values = RawContactModifier.insertChild(state, kindPhone, typeHome);
+        values.put(Phone.NUMBER, TEST_PHONE);
+
+        // Build diff, expecting insert for data row and update enforcement
+        RawContactDeltaListTests.assertDiffPattern(state,
+                RawContactDeltaListTests.buildAssertVersion(VER_FIRST),
+                RawContactDeltaListTests.buildUpdateAggregationSuspended(),
+                RawContactDeltaListTests.buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT,
+                        RawContactDeltaListTests.buildDataInsert(values, TEST_ID)),
+                RawContactDeltaListTests.buildUpdateAggregationDefault());
+
+        // Trim empty rows and try again, expecting no differences
+        RawContactModifier.trimEmpty(state, source);
+        RawContactDeltaListTests.assertDiffPattern(state,
+                RawContactDeltaListTests.buildAssertVersion(VER_FIRST),
+                RawContactDeltaListTests.buildUpdateAggregationSuspended(),
+                RawContactDeltaListTests.buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT,
+                        RawContactDeltaListTests.buildDataInsert(values, TEST_ID)),
+                RawContactDeltaListTests.buildUpdateAggregationDefault());
+    }
+
+    public void testTrimEmptyUntouched() {
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Build "before" that has empty row
+        final RawContactDelta state = getRawContact(TEST_ID);
+        final ContentValues before = new ContentValues();
+        before.put(Data._ID, TEST_ID);
+        before.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        state.addEntry(ValuesDelta.fromBefore(before));
+
+        // Build diff, expecting no changes
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 0, diff.size());
+
+        // Try trimming existing empty, which we shouldn't touch
+        RawContactModifier.trimEmpty(state, source);
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 0, diff.size());
+    }
+
+    public void testTrimEmptyAfterUpdate() {
+        final AccountType source = getAccountType();
+        final DataKind kindPhone = source.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Build "before" that has row with some phone number
+        final ContentValues before = new ContentValues();
+        before.put(Data._ID, TEST_ID);
+        before.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        before.put(kindPhone.typeColumn, typeHome.rawValue);
+        before.put(Phone.NUMBER, TEST_PHONE);
+        final RawContactDelta state = getRawContact(TEST_ID, before);
+
+        // Build diff, expecting no changes
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 0, diff.size());
+
+        // Now update row by changing number to empty string, expecting single update
+        final ValuesDelta child = state.getEntry(TEST_ID);
+        child.put(Phone.NUMBER, "");
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 3, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(2);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+
+        // Now run trim, which should turn that update into delete
+        RawContactModifier.trimEmpty(state, source);
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 1, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isDeleteCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testTrimInsertEmpty() {
+        final AccountType accountType = getAccountType();
+        final AccountTypeManager accountTypes = getAccountTypes(accountType);
+        final DataKind kindPhone = accountType.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Try creating a contact without any child entries
+        final RawContactDelta state = getRawContact(null);
+        final RawContactDeltaList set = new RawContactDeltaList();
+        set.add(state);
+
+        // Build diff, expecting single insert
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 2, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+
+        // Trim empty rows and try again, expecting no insert
+        RawContactModifier.trimEmpty(set, accountTypes);
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 0, diff.size());
+    }
+
+    public void testTrimInsertInsert() {
+        final AccountType accountType = getAccountType();
+        final AccountTypeManager accountTypes = getAccountTypes(accountType);
+        final DataKind kindPhone = accountType.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Try creating a contact with single empty entry
+        final RawContactDelta state = getRawContact(null);
+        RawContactModifier.insertChild(state, kindPhone, typeHome);
+        final RawContactDeltaList set = new RawContactDeltaList();
+        set.add(state);
+
+        // Build diff, expecting two insert operations
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 3, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isInsertCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+
+        // Trim empty rows and try again, expecting silence
+        RawContactModifier.trimEmpty(set, accountTypes);
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 0, diff.size());
+    }
+
+    public void testTrimUpdateRemain() {
+        final AccountType accountType = getAccountType();
+        final AccountTypeManager accountTypes = getAccountTypes(accountType);
+        final DataKind kindPhone = accountType.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Build "before" with two phone numbers
+        final ContentValues first = new ContentValues();
+        first.put(Data._ID, TEST_ID);
+        first.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        first.put(kindPhone.typeColumn, typeHome.rawValue);
+        first.put(Phone.NUMBER, TEST_PHONE);
+
+        final ContentValues second = new ContentValues();
+        second.put(Data._ID, TEST_ID);
+        second.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        second.put(kindPhone.typeColumn, typeHome.rawValue);
+        second.put(Phone.NUMBER, TEST_PHONE);
+
+        final RawContactDelta state = getRawContact(TEST_ID, first, second);
+        final RawContactDeltaList set = new RawContactDeltaList();
+        set.add(state);
+
+        // Build diff, expecting no changes
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 0, diff.size());
+
+        // Now update row by changing number to empty string, expecting single update
+        final ValuesDelta child = state.getEntry(TEST_ID);
+        child.put(Phone.NUMBER, "");
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 3, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(2);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+
+        // Now run trim, which should turn that update into delete
+        RawContactModifier.trimEmpty(set, accountTypes);
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 3, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isDeleteCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(2);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testTrimUpdateUpdate() {
+        final AccountType accountType = getAccountType();
+        final AccountTypeManager accountTypes = getAccountTypes(accountType);
+        final DataKind kindPhone = accountType.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+        final EditType typeHome = RawContactModifier.getType(kindPhone, Phone.TYPE_HOME);
+
+        // Build "before" with two phone numbers
+        final ContentValues first = new ContentValues();
+        first.put(Data._ID, TEST_ID);
+        first.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        first.put(kindPhone.typeColumn, typeHome.rawValue);
+        first.put(Phone.NUMBER, TEST_PHONE);
+
+        final RawContactDelta state = getRawContact(TEST_ID, first);
+        final RawContactDeltaList set = new RawContactDeltaList();
+        set.add(state);
+
+        // Build diff, expecting no changes
+        final ArrayList<CPOWrapper> diff = Lists.newArrayList();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 0, diff.size());
+
+        // Now update row by changing number to empty string, expecting single update
+        final ValuesDelta child = state.getEntry(TEST_ID);
+        child.put(Phone.NUMBER, "");
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 3, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(1);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", Data.CONTENT_URI, oper.getUri());
+        }
+        {
+            final CPOWrapper cpoWrapper = diff.get(2);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Expected aggregation mode change", CompatUtils.isUpdateCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+
+        // Now run trim, which should turn into deleting the whole contact
+        RawContactModifier.trimEmpty(set, accountTypes);
+        diff.clear();
+        state.buildDiffWrapper(diff);
+        assertEquals("Unexpected operations", 1, diff.size());
+        {
+            final CPOWrapper cpoWrapper = diff.get(0);
+            final ContentProviderOperation oper = cpoWrapper.getOperation();
+            assertTrue("Incorrect type", CompatUtils.isDeleteCompat(cpoWrapper));
+            assertEquals("Incorrect target", RawContacts.CONTENT_URI, oper.getUri());
+        }
+    }
+
+    public void testParseExtrasExistingName() {
+        final AccountType accountType = getAccountType();
+
+        // Build "before" name
+        final ContentValues first = new ContentValues();
+        first.put(Data._ID, TEST_ID);
+        first.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
+        first.put(StructuredName.GIVEN_NAME, TEST_NAME);
+
+        // Parse extras, making sure we keep single name
+        final RawContactDelta state = getRawContact(TEST_ID, first);
+        final Bundle extras = new Bundle();
+        extras.putString(Insert.NAME, TEST_NAME2);
+        RawContactModifier.parseExtras(mContext, accountType, state, extras);
+
+        final int nameCount = state.getMimeEntriesCount(StructuredName.CONTENT_ITEM_TYPE, true);
+        assertEquals("Unexpected names", 1, nameCount);
+    }
+
+    public void testParseExtrasIgnoreLimit() {
+        final AccountType accountType = getAccountType();
+
+        // Build "before" IM
+        final ContentValues first = new ContentValues();
+        first.put(Data._ID, TEST_ID);
+        first.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        first.put(Im.DATA, TEST_IM);
+
+        final RawContactDelta state = getRawContact(TEST_ID, first);
+        final int beforeCount = state.getMimeEntries(Im.CONTENT_ITEM_TYPE).size();
+
+        // We should ignore data that doesn't fit account type rules, since account type
+        // only allows single Im
+        final Bundle extras = new Bundle();
+        extras.putInt(Insert.IM_PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
+        extras.putString(Insert.IM_HANDLE, TEST_IM);
+        RawContactModifier.parseExtras(mContext, accountType, state, extras);
+
+        final int afterCount = state.getMimeEntries(Im.CONTENT_ITEM_TYPE).size();
+        assertEquals("Broke account type rules", beforeCount, afterCount);
+    }
+
+    public void testParseExtrasIgnoreUnhandled() {
+        final AccountType accountType = getAccountType();
+        final RawContactDelta state = getRawContact(TEST_ID);
+
+        // We should silently ignore types unsupported by account type
+        final Bundle extras = new Bundle();
+        extras.putString(Insert.POSTAL, TEST_POSTAL);
+        RawContactModifier.parseExtras(mContext, accountType, state, extras);
+
+        assertNull("Broke accoun type rules",
+                state.getMimeEntries(StructuredPostal.CONTENT_ITEM_TYPE));
+    }
+
+    public void testParseExtrasJobTitle() {
+        final AccountType accountType = getAccountType();
+        final RawContactDelta state = getRawContact(TEST_ID);
+
+        // Make sure that we create partial Organizations
+        final Bundle extras = new Bundle();
+        extras.putString(Insert.JOB_TITLE, TEST_NAME);
+        RawContactModifier.parseExtras(mContext, accountType, state, extras);
+
+        final int count = state.getMimeEntries(Organization.CONTENT_ITEM_TYPE).size();
+        assertEquals("Expected to create organization", 1, count);
+    }
+
+    public void testMigrateNameFromGoogleToExchange() {
+        AccountType oldAccountType = new GoogleAccountType(getContext(), "");
+        AccountType newAccountType = new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE);
+        DataKind kind = newAccountType.getKindForMimetype(StructuredName.CONTENT_ITEM_TYPE);
+
+        ContactsMockContext context = new ContactsMockContext(getContext());
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
+        mockNameValues.put(StructuredName.PREFIX, "prefix");
+        mockNameValues.put(StructuredName.GIVEN_NAME, "given");
+        mockNameValues.put(StructuredName.MIDDLE_NAME, "middle");
+        mockNameValues.put(StructuredName.FAMILY_NAME, "family");
+        mockNameValues.put(StructuredName.SUFFIX, "suffix");
+        mockNameValues.put(StructuredName.PHONETIC_FAMILY_NAME, "PHONETIC_FAMILY");
+        mockNameValues.put(StructuredName.PHONETIC_MIDDLE_NAME, "PHONETIC_MIDDLE");
+        mockNameValues.put(StructuredName.PHONETIC_GIVEN_NAME, "PHONETIC_GIVEN");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migrateStructuredName(context, oldState, newState, kind);
+        List<ValuesDelta> list = newState.getMimeEntries(StructuredName.CONTENT_ITEM_TYPE);
+        assertEquals(1, list.size());
+
+        ContentValues output = list.get(0).getAfter();
+        assertEquals("prefix", output.getAsString(StructuredName.PREFIX));
+        assertEquals("given", output.getAsString(StructuredName.GIVEN_NAME));
+        assertEquals("middle", output.getAsString(StructuredName.MIDDLE_NAME));
+        assertEquals("family", output.getAsString(StructuredName.FAMILY_NAME));
+        assertEquals("suffix", output.getAsString(StructuredName.SUFFIX));
+        // Phonetic middle name isn't supported by Exchange.
+        assertEquals("PHONETIC_FAMILY", output.getAsString(StructuredName.PHONETIC_FAMILY_NAME));
+        assertEquals("PHONETIC_GIVEN", output.getAsString(StructuredName.PHONETIC_GIVEN_NAME));
+    }
+
+    public void testMigratePostalFromGoogleToExchange() {
+        AccountType oldAccountType = new GoogleAccountType(getContext(), "");
+        AccountType newAccountType = new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE);
+        DataKind kind = newAccountType.getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE);
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
+        mockNameValues.put(StructuredPostal.FORMATTED_ADDRESS, "formatted_address");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migratePostal(oldState, newState, kind);
+
+        List<ValuesDelta> list = newState.getMimeEntries(StructuredPostal.CONTENT_ITEM_TYPE);
+        assertNotNull(list);
+        assertEquals(1, list.size());
+        ContentValues outputValues = list.get(0).getAfter();
+        // FORMATTED_ADDRESS isn't supported by Exchange.
+        assertNull(outputValues.getAsString(StructuredPostal.FORMATTED_ADDRESS));
+        assertEquals("formatted_address", outputValues.getAsString(StructuredPostal.STREET));
+    }
+
+    public void testMigratePostalFromExchangeToGoogle() {
+        AccountType oldAccountType = new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE);
+        AccountType newAccountType = new GoogleAccountType(getContext(), "");
+        DataKind kind = newAccountType.getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE);
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
+        mockNameValues.put(StructuredPostal.COUNTRY, "country");
+        mockNameValues.put(StructuredPostal.POSTCODE, "postcode");
+        mockNameValues.put(StructuredPostal.REGION, "region");
+        mockNameValues.put(StructuredPostal.CITY, "city");
+        mockNameValues.put(StructuredPostal.STREET, "street");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migratePostal(oldState, newState, kind);
+
+        List<ValuesDelta> list = newState.getMimeEntries(StructuredPostal.CONTENT_ITEM_TYPE);
+        assertNotNull(list);
+        assertEquals(1, list.size());
+        ContentValues outputValues = list.get(0).getAfter();
+
+        // Check FORMATTED_ADDRESS contains all info.
+        String formattedAddress = outputValues.getAsString(StructuredPostal.FORMATTED_ADDRESS);
+        assertNotNull(formattedAddress);
+        assertTrue(formattedAddress.contains("country"));
+        assertTrue(formattedAddress.contains("postcode"));
+        assertTrue(formattedAddress.contains("region"));
+        assertTrue(formattedAddress.contains("postcode"));
+        assertTrue(formattedAddress.contains("city"));
+        assertTrue(formattedAddress.contains("street"));
+    }
+
+    public void testMigrateEventFromGoogleToExchange1() {
+        testMigrateEventCommon(new GoogleAccountType(getContext(), ""),
+                new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE));
+    }
+
+    public void testMigrateEventFromExchangeToGoogle() {
+        testMigrateEventCommon(new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE),
+                new GoogleAccountType(getContext(), ""));
+    }
+
+    private void testMigrateEventCommon(AccountType oldAccountType, AccountType newAccountType) {
+        DataKind kind = newAccountType.getKindForMimetype(Event.CONTENT_ITEM_TYPE);
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Event.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Event.START_DATE, "1972-02-08");
+        mockNameValues.put(Event.TYPE, Event.TYPE_BIRTHDAY);
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migrateEvent(oldState, newState, kind, 1990);
+
+        List<ValuesDelta> list = newState.getMimeEntries(Event.CONTENT_ITEM_TYPE);
+        assertNotNull(list);
+        assertEquals(1, list.size());  // Anniversary should be dropped.
+        ContentValues outputValues = list.get(0).getAfter();
+
+        assertEquals("1972-02-08", outputValues.getAsString(Event.START_DATE));
+        assertEquals(Event.TYPE_BIRTHDAY, outputValues.getAsInteger(Event.TYPE).intValue());
+    }
+
+    public void testMigrateEventFromGoogleToExchange2() {
+        AccountType oldAccountType = new GoogleAccountType(getContext(), "");
+        AccountType newAccountType = new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE);
+        DataKind kind = newAccountType.getKindForMimetype(Event.CONTENT_ITEM_TYPE);
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Event.CONTENT_ITEM_TYPE);
+        // No year format is not supported by Exchange.
+        mockNameValues.put(Event.START_DATE, "--06-01");
+        mockNameValues.put(Event.TYPE, Event.TYPE_BIRTHDAY);
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Event.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Event.START_DATE, "1980-08-02");
+        // Anniversary is not supported by Exchange
+        mockNameValues.put(Event.TYPE, Event.TYPE_ANNIVERSARY);
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migrateEvent(oldState, newState, kind, 1990);
+
+        List<ValuesDelta> list = newState.getMimeEntries(Event.CONTENT_ITEM_TYPE);
+        assertNotNull(list);
+        assertEquals(1, list.size());  // Anniversary should be dropped.
+        ContentValues outputValues = list.get(0).getAfter();
+
+        // Default year should be used.
+        assertEquals("1990-06-01", outputValues.getAsString(Event.START_DATE));
+        assertEquals(Event.TYPE_BIRTHDAY, outputValues.getAsInteger(Event.TYPE).intValue());
+    }
+
+    public void testMigrateEmailFromGoogleToExchange() {
+        AccountType oldAccountType = new GoogleAccountType(getContext(), "");
+        AccountType newAccountType = new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE);
+        DataKind kind = newAccountType.getKindForMimetype(Email.CONTENT_ITEM_TYPE);
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Email.TYPE, Email.TYPE_CUSTOM);
+        mockNameValues.put(Email.LABEL, "custom_type");
+        mockNameValues.put(Email.ADDRESS, "address1");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Email.TYPE, Email.TYPE_HOME);
+        mockNameValues.put(Email.ADDRESS, "address2");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Email.TYPE, Email.TYPE_WORK);
+        mockNameValues.put(Email.ADDRESS, "address3");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+        // Exchange can have up to 3 email entries. This 4th entry should be dropped.
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Email.TYPE, Email.TYPE_OTHER);
+        mockNameValues.put(Email.ADDRESS, "address4");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migrateGenericWithTypeColumn(oldState, newState, kind);
+
+        List<ValuesDelta> list = newState.getMimeEntries(Email.CONTENT_ITEM_TYPE);
+        assertNotNull(list);
+        assertEquals(3, list.size());
+
+        ContentValues outputValues = list.get(0).getAfter();
+        assertEquals(Email.TYPE_CUSTOM, outputValues.getAsInteger(Email.TYPE).intValue());
+        assertEquals("custom_type", outputValues.getAsString(Email.LABEL));
+        assertEquals("address1", outputValues.getAsString(Email.ADDRESS));
+
+        outputValues = list.get(1).getAfter();
+        assertEquals(Email.TYPE_HOME, outputValues.getAsInteger(Email.TYPE).intValue());
+        assertEquals("address2", outputValues.getAsString(Email.ADDRESS));
+
+        outputValues = list.get(2).getAfter();
+        assertEquals(Email.TYPE_WORK, outputValues.getAsInteger(Email.TYPE).intValue());
+        assertEquals("address3", outputValues.getAsString(Email.ADDRESS));
+    }
+
+    public void testMigrateImFromGoogleToExchange() {
+        AccountType oldAccountType = new GoogleAccountType(getContext(), "");
+        AccountType newAccountType = new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE);
+        DataKind kind = newAccountType.getKindForMimetype(Im.CONTENT_ITEM_TYPE);
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        // Exchange doesn't support TYPE_HOME
+        mockNameValues.put(Im.TYPE, Im.TYPE_HOME);
+        mockNameValues.put(Im.PROTOCOL, Im.PROTOCOL_JABBER);
+        mockNameValues.put(Im.DATA, "im1");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        // Exchange doesn't support TYPE_WORK
+        mockNameValues.put(Im.TYPE, Im.TYPE_WORK);
+        mockNameValues.put(Im.PROTOCOL, Im.PROTOCOL_YAHOO);
+        mockNameValues.put(Im.DATA, "im2");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Im.TYPE, Im.TYPE_OTHER);
+        mockNameValues.put(Im.PROTOCOL, Im.PROTOCOL_CUSTOM);
+        mockNameValues.put(Im.CUSTOM_PROTOCOL, "custom_protocol");
+        mockNameValues.put(Im.DATA, "im3");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        // Exchange can have up to 3 IM entries. This 4th entry should be dropped.
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Im.TYPE, Im.TYPE_OTHER);
+        mockNameValues.put(Im.PROTOCOL, Im.PROTOCOL_GOOGLE_TALK);
+        mockNameValues.put(Im.DATA, "im4");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migrateGenericWithTypeColumn(oldState, newState, kind);
+
+        List<ValuesDelta> list = newState.getMimeEntries(Im.CONTENT_ITEM_TYPE);
+        assertNotNull(list);
+        assertEquals(3, list.size());
+
+        assertNotNull(kind.defaultValues.getAsInteger(Im.TYPE));
+
+        int defaultType = kind.defaultValues.getAsInteger(Im.TYPE);
+
+        ContentValues outputValues = list.get(0).getAfter();
+        // HOME should become default type.
+        assertEquals(defaultType, outputValues.getAsInteger(Im.TYPE).intValue());
+        assertEquals(Im.PROTOCOL_JABBER, outputValues.getAsInteger(Im.PROTOCOL).intValue());
+        assertEquals("im1", outputValues.getAsString(Im.DATA));
+
+        outputValues = list.get(1).getAfter();
+        assertEquals(defaultType, outputValues.getAsInteger(Im.TYPE).intValue());
+        assertEquals(Im.PROTOCOL_YAHOO, outputValues.getAsInteger(Im.PROTOCOL).intValue());
+        assertEquals("im2", outputValues.getAsString(Im.DATA));
+
+        outputValues = list.get(2).getAfter();
+        assertEquals(defaultType, outputValues.getAsInteger(Im.TYPE).intValue());
+        assertEquals(Im.PROTOCOL_CUSTOM, outputValues.getAsInteger(Im.PROTOCOL).intValue());
+        assertEquals("custom_protocol", outputValues.getAsString(Im.CUSTOM_PROTOCOL));
+        assertEquals("im3", outputValues.getAsString(Im.DATA));
+    }
+
+    public void testMigratePhoneFromGoogleToExchange() {
+        AccountType oldAccountType = new GoogleAccountType(getContext(), "");
+        AccountType newAccountType = new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE);
+        DataKind kind = newAccountType.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+
+        // Create 5 numbers.
+        // - "1" -- HOME
+        // - "2" -- WORK
+        // - "3" -- CUSTOM
+        // - "4" -- WORK
+        // - "5" -- WORK_MOBILE
+        // Then we convert it to Exchange account type.
+        // - "1" -- HOME
+        // - "2" -- WORK
+        // - "3" -- Because CUSTOM is not supported, it'll be changed to the default, MOBILE
+        // - "4" -- WORK
+        // - "5" -- WORK_MOBILE not suppoted again, so will be MOBILE.
+        // But then, Exchange doesn't support multiple MOBILE numbers, so "5" will be removed.
+        // i.e. the result will be:
+        // - "1" -- HOME
+        // - "2" -- WORK
+        // - "3" -- MOBILE
+        // - "4" -- WORK
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Phone.TYPE, Phone.TYPE_HOME);
+        mockNameValues.put(Phone.NUMBER, "1");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Phone.TYPE, Phone.TYPE_WORK);
+        mockNameValues.put(Phone.NUMBER, "2");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        // Exchange doesn't support this type. Default to MOBILE
+        mockNameValues.put(Phone.TYPE, Phone.TYPE_CUSTOM);
+        mockNameValues.put(Phone.LABEL, "custom_type");
+        mockNameValues.put(Phone.NUMBER, "3");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+        mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Phone.TYPE, Phone.TYPE_WORK);
+        mockNameValues.put(Phone.NUMBER, "4");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+        mockNameValues = new ContentValues();
+
+        mockNameValues.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Phone.TYPE, Phone.TYPE_WORK_MOBILE);
+        mockNameValues.put(Phone.NUMBER, "5");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migrateGenericWithTypeColumn(oldState, newState, kind);
+
+        List<ValuesDelta> list = newState.getMimeEntries(Phone.CONTENT_ITEM_TYPE);
+        assertNotNull(list);
+        assertEquals(4, list.size());
+
+        int defaultType = Phone.TYPE_MOBILE;
+
+        ContentValues outputValues = list.get(0).getAfter();
+        assertEquals(Phone.TYPE_HOME, outputValues.getAsInteger(Phone.TYPE).intValue());
+        assertEquals("1", outputValues.getAsString(Phone.NUMBER));
+        outputValues = list.get(1).getAfter();
+        assertEquals(Phone.TYPE_WORK, outputValues.getAsInteger(Phone.TYPE).intValue());
+        assertEquals("2", outputValues.getAsString(Phone.NUMBER));
+        outputValues = list.get(2).getAfter();
+        assertEquals(defaultType, outputValues.getAsInteger(Phone.TYPE).intValue());
+        assertNull(outputValues.getAsInteger(Phone.LABEL));
+        assertEquals("3", outputValues.getAsString(Phone.NUMBER));
+        outputValues = list.get(3).getAfter();
+        assertEquals(Phone.TYPE_WORK, outputValues.getAsInteger(Phone.TYPE).intValue());
+        assertEquals("4", outputValues.getAsString(Phone.NUMBER));
+    }
+
+    public void testMigrateOrganizationFromGoogleToExchange() {
+        AccountType oldAccountType = new GoogleAccountType(getContext(), "");
+        AccountType newAccountType = new ExchangeAccountType(getContext(), "", EXCHANGE_ACCT_TYPE);
+        DataKind kind = newAccountType.getKindForMimetype(Organization.CONTENT_ITEM_TYPE);
+
+        RawContactDelta oldState = new RawContactDelta();
+        ContentValues mockNameValues = new ContentValues();
+        mockNameValues.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
+        mockNameValues.put(Organization.COMPANY, "company1");
+        mockNameValues.put(Organization.DEPARTMENT, "department1");
+        oldState.addEntry(ValuesDelta.fromAfter(mockNameValues));
+
+        RawContactDelta newState = new RawContactDelta();
+        RawContactModifier.migrateGenericWithoutTypeColumn(oldState, newState, kind);
+
+        List<ValuesDelta> list = newState.getMimeEntries(Organization.CONTENT_ITEM_TYPE);
+        assertNotNull(list);
+        assertEquals(1, list.size());
+
+        ContentValues outputValues = list.get(0).getAfter();
+        assertEquals("company1", outputValues.getAsString(Organization.COMPANY));
+        assertEquals("department1", outputValues.getAsString(Organization.DEPARTMENT));
+    }
+}
diff --git a/tests/src/com/android/contacts/model/RawContactTest.java b/tests/src/com/android/contacts/model/RawContactTest.java
new file mode 100644
index 0000000..d9f05c9
--- /dev/null
+++ b/tests/src/com/android/contacts/model/RawContactTest.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2012 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.ContentValues;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import junit.framework.TestCase;
+
+/**
+ * Unit test for {@link RawContact}.
+ */
+@SmallTest
+public class RawContactTest extends TestCase {
+
+    private RawContact buildRawContact() {
+        final ContentValues values = new ContentValues();
+        values.put("key1", "value1");
+        values.put("key2", "value2");
+
+        final ContentValues dataItem = new ContentValues();
+        dataItem.put("key3", "value3");
+        dataItem.put("key4", "value4");
+
+        final RawContact contact = new RawContact(values);
+        contact.addDataItemValues(dataItem);
+
+        return contact;
+    }
+
+    private RawContact buildRawContact2() {
+        final ContentValues values = new ContentValues();
+        values.put("key11", "value11");
+        values.put("key22", "value22");
+
+        final ContentValues dataItem = new ContentValues();
+        dataItem.put("key33", "value33");
+        dataItem.put("key44", "value44");
+
+        final RawContact contact = new RawContact(values);
+        contact.addDataItemValues(dataItem);
+
+        return contact;
+    }
+
+    public void testNotEquals() {
+        final RawContact one = buildRawContact();
+        final RawContact two = buildRawContact2();
+        assertFalse(one.equals(two));
+    }
+
+    public void testEquals() {
+        assertEquals(buildRawContact(), buildRawContact());
+    }
+
+    public void testParcelable() {
+        assertParcelableEquals(buildRawContact());
+    }
+
+    private RawContact.NamedDataItem buildNamedDataItem() {
+        final ContentValues values = new ContentValues();
+        values.put("key1", "value1");
+        values.put("key2", "value2");
+        final Uri uri = Uri.fromParts("content:", "ssp", "fragment");
+
+        return new RawContact.NamedDataItem(uri, values);
+    }
+
+    private RawContact.NamedDataItem buildNamedDataItem2() {
+        final ContentValues values = new ContentValues();
+        values.put("key11", "value11");
+        values.put("key22", "value22");
+        final Uri uri = Uri.fromParts("content:", "blah", "blah");
+
+        return new RawContact.NamedDataItem(uri, values);
+    }
+
+    public void testNamedDataItemEquals() {
+        assertEquals(buildNamedDataItem(), buildNamedDataItem());
+    }
+
+    public void testNamedDataItemNotEquals() {
+        assertFalse(buildNamedDataItem().equals(buildNamedDataItem2()));
+    }
+
+    public void testNamedDataItemParcelable() {
+        assertParcelableEquals(buildNamedDataItem());
+    }
+
+    private void assertParcelableEquals(Parcelable parcelable) {
+        final Parcel parcel = Parcel.obtain();
+        try {
+            parcel.writeParcelable(parcelable, 0);
+            parcel.setDataPosition(0);
+
+            Parcelable out = parcel.readParcelable(parcelable.getClass().getClassLoader());
+            assertEquals(parcelable, out);
+        } finally {
+            parcel.recycle();
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/model/SimContactTests.java b/tests/src/com/android/contacts/model/SimContactTests.java
new file mode 100644
index 0000000..d234e42
--- /dev/null
+++ b/tests/src/com/android/contacts/model/SimContactTests.java
@@ -0,0 +1,54 @@
+/*
+ * 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 static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertThat;
+
+import android.os.Parcel;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class SimContactTests {
+    @Test
+    public void parcelRoundtrip() {
+        assertParcelsCorrectly(new SimContact(1, "name1", "phone1",
+                new String[] { "email1a", "email1b" }));
+        assertParcelsCorrectly(new SimContact(2, "name2", "phone2", null));
+        assertParcelsCorrectly(new SimContact(3, "name3", null,
+                new String[] { "email3" }));
+        assertParcelsCorrectly(new SimContact(4, null, "phone4",
+                new String[] { "email4" }));
+        assertParcelsCorrectly(new SimContact(5, null, null, null));
+        assertParcelsCorrectly(new SimContact(6, "name6", "phone6",
+                new String[0]));
+    }
+
+    private void assertParcelsCorrectly(SimContact contact) {
+        final Parcel parcel = Parcel.obtain();
+        parcel.writeParcelable(contact, 0);
+        parcel.setDataPosition(0);
+        final SimContact unparceled = parcel.readParcelable(
+                SimContact.class.getClassLoader());
+        assertThat(unparceled, equalTo(contact));
+        parcel.recycle();
+    }
+}
diff --git a/tests/src/com/android/contacts/model/ValuesDeltaTests.java b/tests/src/com/android/contacts/model/ValuesDeltaTests.java
new file mode 100644
index 0000000..b7161d7
--- /dev/null
+++ b/tests/src/com/android/contacts/model/ValuesDeltaTests.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2012 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.ContentProviderOperation.Builder;
+import android.content.ContentValues;
+import android.os.Build;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Data;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.compat.CompatUtils;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for  {@link ValuesDelta}. These tests
+ * focus on passing changes across {@link android.os.Parcel}, and verifying that they
+ * correctly build expected "diff" operations.
+ */
+@SmallTest
+public class ValuesDeltaTests extends TestCase {
+
+    public static final long TEST_PHONE_ID = 24;
+
+    public static final String TEST_PHONE_NUMBER_1 = "218-555-1111";
+    public static final String TEST_PHONE_NUMBER_2 = "218-555-2222";
+
+    public void testValuesDiffInsert() {
+        final ContentValues after = new ContentValues();
+        after.put(Phone.NUMBER, TEST_PHONE_NUMBER_2);
+
+        final ValuesDelta values = ValuesDelta.fromAfter(after);
+
+        // Should produce an insert action
+        final BuilderWrapper builderWrapper = values.buildDiffWrapper(Data.CONTENT_URI);
+        final boolean isInsert = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
+                ? builderWrapper.getBuilder().build().isInsert()
+                : builderWrapper.getType() == CompatUtils.TYPE_INSERT;
+        assertTrue("Didn't produce insert action", isInsert);
+    }
+
+    /**
+     * Test that {@link ValuesDelta#buildDiff(android.net.Uri)} is correctly
+     * built for insert, update, and delete cases. Note this only tests behavior
+     * for individual {@link Data} rows.
+     */
+    public void testValuesDiffNone() {
+        final ContentValues before = new ContentValues();
+        before.put(Data._ID, TEST_PHONE_ID);
+        before.put(Phone.NUMBER, TEST_PHONE_NUMBER_1);
+
+        final ValuesDelta values = ValuesDelta.fromBefore(before);
+
+        // None action shouldn't produce a builder
+        final Builder builder = values.buildDiff(Data.CONTENT_URI);
+        assertNull("None action produced a builder", builder);
+    }
+
+    public void testValuesDiffUpdate() {
+        final ContentValues before = new ContentValues();
+        before.put(Data._ID, TEST_PHONE_ID);
+        before.put(Phone.NUMBER, TEST_PHONE_NUMBER_1);
+
+        final ValuesDelta values = ValuesDelta.fromBefore(before);
+        values.put(Phone.NUMBER, TEST_PHONE_NUMBER_2);
+
+        // Should produce an update action
+        final BuilderWrapper builderWrapper = values.buildDiffWrapper(Data.CONTENT_URI);
+        final boolean isUpdate = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
+                ? builderWrapper.getBuilder().build().isUpdate()
+                : builderWrapper.getType() == CompatUtils.TYPE_UPDATE;
+        assertTrue("Didn't produce update action", isUpdate);
+    }
+}
diff --git a/tests/src/com/android/contacts/model/account/AccountTypeTest.java b/tests/src/com/android/contacts/model/account/AccountTypeTest.java
new file mode 100644
index 0000000..7c74b21
--- /dev/null
+++ b/tests/src/com/android/contacts/model/account/AccountTypeTest.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2011 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.account;
+
+import android.content.Context;
+import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.tests.R;
+
+/**
+ * Test case for {@link AccountType}.
+ *
+ * adb shell am instrument -w -e class com.android.contacts.model.AccountTypeTest \
+       com.android.contacts.tests/android.test.InstrumentationTestRunner
+ */
+@SmallTest
+public class AccountTypeTest extends InstrumentationTestCase {
+    public void testGetResourceText() {
+        // In this test we use the test package itself as an external package.
+        final String packageName = getInstrumentation().getContext().getPackageName();
+
+        final Context c = getInstrumentation().getTargetContext();
+        final String DEFAULT = "ABC";
+
+        // Package name null, resId -1, use the default
+        assertEquals(DEFAULT, AccountType.getResourceText(c, null, -1, DEFAULT));
+
+        // Resource ID -1, use the default
+        assertEquals(DEFAULT, AccountType.getResourceText(c, packageName, -1, DEFAULT));
+
+        // Load from an external package.  (here, we use this test package itself)
+        final int externalResID = R.string.test_string;
+        assertEquals(getInstrumentation().getContext().getString(externalResID),
+                AccountType.getResourceText(c, packageName, externalResID, DEFAULT));
+
+        // Load from the contacts package itself.
+        final int internalResId = com.android.contacts.R.string.contactsList;
+        assertEquals(c.getString(internalResId),
+                AccountType.getResourceText(c, null, internalResId, DEFAULT));
+    }
+
+    /**
+     * Verify if {@link AccountType#getInviteContactActionLabel} correctly gets the resource ID
+     * from {@link AccountType#getInviteContactActionResId}
+     */
+    public void testGetInviteContactActionLabel() {
+        final String packageName = getInstrumentation().getContext().getPackageName();
+        final Context c = getInstrumentation().getTargetContext();
+
+        final int externalResID = R.string.test_string;
+
+        AccountType accountType = new AccountType() {
+            {
+                resourcePackageName = packageName;
+                syncAdapterPackageName = packageName;
+            }
+            @Override protected int getInviteContactActionResId() {
+                return externalResID;
+            }
+
+            @Override public boolean isGroupMembershipEditable() {
+                return false;
+            }
+
+            @Override public boolean areContactsWritable() {
+                return false;
+            }
+        };
+
+        assertEquals(getInstrumentation().getContext().getString(externalResID),
+                accountType.getInviteContactActionLabel(c));
+    }
+
+    public void testDisplayLabelComparator() {
+        final AccountTypeForDisplayLabelTest EMPTY = new AccountTypeForDisplayLabelTest("");
+        final AccountTypeForDisplayLabelTest NULL = new AccountTypeForDisplayLabelTest(null);
+        final AccountTypeForDisplayLabelTest AA = new AccountTypeForDisplayLabelTest("aa");
+        final AccountTypeForDisplayLabelTest BBB = new AccountTypeForDisplayLabelTest("bbb");
+        final AccountTypeForDisplayLabelTest C = new AccountTypeForDisplayLabelTest("c");
+
+        assertTrue(compareDisplayLabel(AA, BBB) < 0);
+        assertTrue(compareDisplayLabel(BBB, C) < 0);
+        assertTrue(compareDisplayLabel(AA, C) < 0);
+        assertTrue(compareDisplayLabel(AA, AA) == 0);
+        assertTrue(compareDisplayLabel(BBB, AA) > 0);
+
+        assertTrue(compareDisplayLabel(EMPTY, AA) < 0);
+        assertTrue(compareDisplayLabel(EMPTY, NULL) == 0);
+    }
+
+    private int compareDisplayLabel(AccountType lhs, AccountType rhs) {
+        return new AccountType.DisplayLabelComparator(
+                getInstrumentation().getTargetContext()).compare(lhs, rhs);
+    }
+
+    private class AccountTypeForDisplayLabelTest extends AccountType {
+        private final String mDisplayLabel;
+
+        public AccountTypeForDisplayLabelTest(String displayLabel) {
+            mDisplayLabel = displayLabel;
+        }
+
+        @Override
+        public CharSequence getDisplayLabel(Context context) {
+            return mDisplayLabel;
+        }
+
+        @Override
+        public boolean isGroupMembershipEditable() {
+            return false;
+        }
+
+        @Override
+        public boolean areContactsWritable() {
+            return false;
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/model/account/ExternalAccountTypeTest.java b/tests/src/com/android/contacts/model/account/ExternalAccountTypeTest.java
new file mode 100644
index 0000000..17d815e
--- /dev/null
+++ b/tests/src/com/android/contacts/model/account/ExternalAccountTypeTest.java
@@ -0,0 +1,249 @@
+/*
+ * Copyright (C) 2011 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.account;
+
+import android.content.Context;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Photo;
+import android.provider.ContactsContract.CommonDataKinds.Relation;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.test.suitebuilder.annotation.Suppress;
+
+import com.android.contacts.tests.R;
+import com.android.contacts.model.dataitem.DataKind;
+
+import com.google.common.base.Objects;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Test case for {@link com.android.contacts.model.account.ExternalAccountType}.
+ *
+ * adb shell am instrument -w -e class com.android.contacts.model.ExternalAccountTypeTest \
+       com.android.contacts.tests/android.test.InstrumentationTestRunner
+ */
+@SmallTest
+public class ExternalAccountTypeTest extends InstrumentationTestCase {
+    private static ArrayList<String> mDefaultMimetypes = new ArrayList<>(Arrays.asList(
+            StructuredName.CONTENT_ITEM_TYPE,
+            DataKind.PSEUDO_MIME_TYPE_NAME,
+            DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME,
+            Photo.CONTENT_ITEM_TYPE
+    ));
+
+    @Suppress
+    public void testResolveExternalResId() {
+        final Context c = getInstrumentation().getTargetContext();
+        // In this test we use the test package itself as an external package.
+        final String packageName = getInstrumentation().getContext().getPackageName();
+
+        // Resource name empty.
+        assertEquals(-1, ExternalAccountType.resolveExternalResId(c, null, packageName, ""));
+        assertEquals(-1, ExternalAccountType.resolveExternalResId(c, "", packageName, ""));
+
+        // Name doesn't begin with '@'
+        assertEquals(-1, ExternalAccountType.resolveExternalResId(c, "x", packageName, ""));
+
+        // Invalid resource name
+        assertEquals(-1, ExternalAccountType.resolveExternalResId(c, "@", packageName, ""));
+        assertEquals(-1, ExternalAccountType.resolveExternalResId(c, "@a", packageName, ""));
+        assertEquals(-1, ExternalAccountType.resolveExternalResId(c, "@a/b", packageName, ""));
+
+        // Valid resource name
+        assertEquals(R.string.test_string, ExternalAccountType.resolveExternalResId(c,
+                "@string/test_string", packageName, ""));
+    }
+
+    public void testIsFromTestApp() {
+        assertTrue(ExternalAccountType.isFromTestApp("com.google.android.contacts.tests"));
+        assertFalse(ExternalAccountType.isFromTestApp("com.google.android.contacts"));
+    }
+
+    /**
+     * Initialize with an invalid package name and see if type will be initialized, but empty.
+     */
+    public void testNoPackage() {
+        final ExternalAccountType type = new ExternalAccountType(getInstrumentation().getTargetContext(),
+                "!!!no such package name!!!", false);
+        assertTrue(type.isInitialized());
+    }
+
+    /**
+     * Initialize with the test package itself and see if EditSchema is correctly parsed.
+     */
+    @Suppress
+    public void testEditSchema() {
+        final ExternalAccountType type = new ExternalAccountType(getInstrumentation().getTargetContext(),
+                getInstrumentation().getContext().getPackageName(), false);
+
+        assertTrue(type.isInitialized());
+
+        // Let's just check if the DataKinds are registered.
+        assertNotNull(type.getKindForMimetype(StructuredName.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_NAME));
+        assertNotNull(type.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_PHONETIC_NAME));
+        assertNotNull(type.getKindForMimetype(Email.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(Im.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(Organization.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(Photo.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(Note.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(Website.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(SipAddress.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(Event.CONTENT_ITEM_TYPE));
+        assertNotNull(type.getKindForMimetype(Relation.CONTENT_ITEM_TYPE));
+    }
+
+    /**
+     * Initialize with "contacts_fallback.xml" and compare the DataKinds to those of
+     * {@link com.android.contacts.model.account.FallbackAccountType}.
+     */
+    public void testEditSchema_fallback() {
+        final ExternalAccountType type = new ExternalAccountType(getInstrumentation().getTargetContext(),
+                getInstrumentation().getContext().getPackageName(), false,
+                getInstrumentation().getContext().getResources().getXml(R.xml.contacts_fallback)
+                );
+
+        assertTrue(type.isInitialized());
+
+        // Create a fallback type with the same resource package name, and compare all the data
+        // kinds to its.
+        final AccountType reference = FallbackAccountType.createWithPackageNameForTest(
+                getInstrumentation().getTargetContext(), type.resourcePackageName);
+
+        assertsDataKindEquals(reference.getSortedDataKinds(), type.getSortedDataKinds());
+    }
+
+    public void testEditSchema_mustHaveChecks() {
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_base, true);
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_photo, false);
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_name, false);
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_name_attr2, false);
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_name_attr3, false);
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_name_attr4, false);
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_name_attr5, false);
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_name_attr6, false);
+        checkEditSchema_mustHaveChecks(R.xml.missing_contacts_name_attr7, false);
+    }
+
+    private void checkEditSchema_mustHaveChecks(int xmlResId, boolean expectInitialized) {
+        final ExternalAccountType type = new ExternalAccountType(getInstrumentation().getTargetContext(),
+                getInstrumentation().getContext().getPackageName(), false,
+                getInstrumentation().getContext().getResources().getXml(xmlResId)
+                );
+
+        assertEquals(expectInitialized, type.isInitialized());
+    }
+
+    /**
+     * Initialize with "contacts_readonly.xml" and see if all data kinds are correctly registered.
+     */
+    public void testReadOnlyDefinition() {
+        final ExternalAccountType type = new ExternalAccountType(getInstrumentation().getTargetContext(),
+                getInstrumentation().getContext().getPackageName(), false,
+                getInstrumentation().getContext().getResources().getXml(R.xml.contacts_readonly)
+                );
+        assertTrue(type.isInitialized());
+
+        // Shouldn't have a "null" mimetype.
+        assertTrue(type.getKindForMimetype(null) == null);
+
+        // 3 kinds are defined in XML and the rest are added by default.
+        assertEquals(3 + mDefaultMimetypes.size(), type.getSortedDataKinds().size());
+
+        // Check for the default kinds.
+        for (String mimetype : mDefaultMimetypes) {
+            assertNotNull(type.getKindForMimetype(mimetype));
+        }
+
+        // Check for type specific kinds.
+        DataKind kind = type.getKindForMimetype("vnd.android.cursor.item/a.b.c");
+        assertNotNull(kind);
+        // No check for icon -- we actually just ignore it.
+        assertEquals("data1", ((BaseAccountType.SimpleInflater) kind.actionHeader)
+                .getColumnNameForTest());
+        assertEquals("data2", ((BaseAccountType.SimpleInflater) kind.actionBody)
+                .getColumnNameForTest());
+
+        kind = type.getKindForMimetype("vnd.android.cursor.item/d.e.f");
+        assertNotNull(kind);
+        assertEquals("data3", ((BaseAccountType.SimpleInflater) kind.actionHeader)
+                .getColumnNameForTest());
+        assertEquals("data4", ((BaseAccountType.SimpleInflater) kind.actionBody)
+                .getColumnNameForTest());
+
+        kind = type.getKindForMimetype("vnd.android.cursor.item/xyz");
+        assertNotNull(kind);
+        assertEquals("data5", ((BaseAccountType.SimpleInflater) kind.actionHeader)
+                .getColumnNameForTest());
+        assertEquals("data6", ((BaseAccountType.SimpleInflater) kind.actionBody)
+                .getColumnNameForTest());
+    }
+
+    private static void assertsDataKindEquals(List<DataKind> expectedKinds,
+            List<DataKind> actualKinds) {
+        final int count = Math.max(actualKinds.size(), expectedKinds.size());
+        for (int i = 0; i < count; i++) {
+            String actual =  actualKinds.size() > i ? actualKinds.get(i).toString() : "(n/a)";
+            String expected =  expectedKinds.size() > i ? expectedKinds.get(i).toString() : "(n/a)";
+
+            // Because assertEquals()'s output is not very friendly when comparing two similar
+            // strings, we manually do the check.
+            if (!Objects.equal(actual, expected)) {
+                final int commonPrefixEnd = findCommonPrefixEnd(actual, expected);
+                fail("Kind #" + i
+                        + "\n[Actual]\n" + insertMarkerAt(actual, commonPrefixEnd)
+                        + "\n[Expected]\n" + insertMarkerAt(expected, commonPrefixEnd));
+            }
+        }
+    }
+
+    private static int findCommonPrefixEnd(String s1, String s2) {
+        int i = 0;
+        for (;;) {
+            final boolean s1End = (s1.length() <= i);
+            final boolean s2End = (s2.length() <= i);
+            if (s1End || s2End) {
+                return i;
+            }
+            if (s1.charAt(i) != s2.charAt(i)) {
+                return i;
+            }
+            i++;
+        }
+    }
+
+    private static String insertMarkerAt(String s, int position) {
+        final String MARKER = "***";
+        if (position > s.length()) {
+            return s + MARKER;
+        } else {
+            return new StringBuilder(s).insert(position, MARKER).toString();
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/model/dataitem/DataItemTests.java b/tests/src/com/android/contacts/model/dataitem/DataItemTests.java
new file mode 100644
index 0000000..7b60beb
--- /dev/null
+++ b/tests/src/com/android/contacts/model/dataitem/DataItemTests.java
@@ -0,0 +1,457 @@
+/*
+ * Copyright (C) 2014 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.dataitem;
+
+import android.content.ContentValues;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Event;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.Nickname;
+import android.provider.ContactsContract.CommonDataKinds.Note;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.CommonDataKinds.Relation;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.provider.ContactsContract.Contacts.Data;
+import android.provider.ContactsContract.Contacts.Entity;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.Collapser;
+import com.android.contacts.model.account.AccountType.EditType;
+import com.android.contacts.model.account.BaseAccountType;
+import com.android.contacts.model.account.GoogleAccountType;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Test case for {@link DataItem}.
+ */
+@SmallTest
+public class DataItemTests extends AndroidTestCase {
+
+    private ContentValues mValues1;
+    private ContentValues mValues2;
+    private ContentValues mValues3;
+    private ContentValues mValues4;
+    private GoogleAccountType mGoogleAccountType;
+
+    @Override
+    protected void setUp() {
+        mValues1 = new ContentValues();
+        mValues2 = new ContentValues();
+        mValues3 = new ContentValues();
+        mValues4 = new ContentValues();
+
+        mValues1.put(Data._ID, 1);
+        mValues2.put(Data._ID, 2);
+        mValues3.put(Data._ID, 3);
+        mValues4.put(Data._ID, 4);
+
+        mGoogleAccountType = new GoogleAccountType(getContext(), "packageName");
+    }
+
+    private List<DataItem> createDataItemsAndCollapse(DataKind kind, ContentValues... values) {
+        final List<DataItem> dataList = new ArrayList<>(values.length);
+        for (ContentValues value : values) {
+            final DataItem data = DataItem.createFrom(value);
+            data.setDataKind(kind);
+            dataList.add(data);
+        }
+        Collapser.collapseList(dataList, getContext());
+        return dataList;
+    }
+
+    public void testDataItemCollapsing_genericDataItemFields() {
+        mValues1.put(Data.IS_SUPER_PRIMARY, 1);
+        mValues2.put(Data.IS_PRIMARY, 0);
+
+        mValues1.put(Entity.TIMES_USED, 5);
+        mValues2.put(Entity.TIMES_USED, 4);
+
+        mValues1.put(Entity.LAST_TIME_USED, 555);
+        mValues2.put(Entity.LAST_TIME_USED, 999);
+
+        final DataKind kind = new DataKind("test.mimetype", 0, 0, false);
+        kind.actionBody = new BaseAccountType.SimpleInflater(0);
+        kind.typeList = new ArrayList<>();
+        kind.typeList.add(new EditType(1, -1));
+        kind.typeList.add(new EditType(2, -1));
+        kind.typeColumn = Data.DATA2;
+
+        mValues1.put(kind.typeColumn, 2);
+        mValues2.put(kind.typeColumn, 1);
+
+        final List<DataItem> dataList = createDataItemsAndCollapse(kind, mValues1, mValues2);
+
+        assertEquals(1, dataList.size());
+        assertEquals(true, dataList.get(0).isSuperPrimary());
+        assertEquals(true, dataList.get(0).isPrimary());
+        assertEquals(9, (int) dataList.get(0).getTimesUsed());
+        assertEquals(999L, (long) dataList.get(0).getLastTimeUsed());
+        assertEquals(1, dataList.get(0).getKindTypeColumn(kind));
+    }
+
+    public void testDataItemCollapsing_email() {
+        final String email1 = "email1@google.com";
+        final String email2 = "email2@google.com";
+
+        mValues1.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Email.ADDRESS, email1);
+        mValues2.put(Email.ADDRESS, email1);
+        mValues3.put(Email.ADDRESS, email2);
+
+        mValues1.put(Email.TYPE, Email.TYPE_MOBILE);
+        mValues2.put(Email.TYPE, Email.TYPE_HOME);
+        mValues3.put(Email.TYPE, Email.TYPE_WORK);
+
+        final DataKind kind = mGoogleAccountType.getKindForMimetype(Email.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3);
+
+        assertEquals(2, dataList.size());
+        assertEquals(email1, ((EmailDataItem) dataList.get(0)).getAddress());
+        assertEquals(email2, ((EmailDataItem) dataList.get(1)).getAddress());
+        assertEquals(Math.min(Email.TYPE_MOBILE, Email.TYPE_HOME),
+                ((EmailDataItem) dataList.get(0)).getKindTypeColumn(kind));
+    }
+
+    public void testDataItemCollapsing_event() {
+        final String date1 = "2014-01-01";
+        final String date2 = "2014-02-02";
+        final String customLabel1 = "custom label1";
+        final String customLabel2 = "custom label2";
+
+        mValues1.put(Data.MIMETYPE, Event.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Event.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Event.CONTENT_ITEM_TYPE);
+        mValues4.put(Data.MIMETYPE, Event.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Event.START_DATE, date1);
+        mValues2.put(Event.START_DATE, date1);
+        mValues3.put(Event.START_DATE, date1);
+        mValues4.put(Event.START_DATE, date2);
+
+        mValues1.put(Event.TYPE, Event.TYPE_CUSTOM);
+        mValues2.put(Event.TYPE, Event.TYPE_CUSTOM);
+        mValues3.put(Event.TYPE, Event.TYPE_CUSTOM);
+        mValues4.put(Event.TYPE, Event.TYPE_ANNIVERSARY);
+
+        mValues1.put(Event.LABEL, customLabel1);
+        mValues2.put(Event.LABEL, customLabel1);
+        mValues3.put(Event.LABEL, customLabel2);
+
+        final DataKind kind = mGoogleAccountType.getKindForMimetype(Event.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3, mValues4);
+
+        assertEquals(3, dataList.size());
+        assertEquals(customLabel1, ((EventDataItem) dataList.get(0)).getLabel());
+        assertEquals(customLabel2, ((EventDataItem) dataList.get(1)).getLabel());
+        assertEquals(date2, ((EventDataItem) dataList.get(2)).getStartDate());
+    }
+
+    public void testDataItemCollapsing_im() {
+        final String address1 = "address 1";
+        final String address2 = "address 2";
+        final String customProtocol1 = "custom 1";
+        final String customProtocol2 = "custom 2";
+
+        mValues1.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+        mValues4.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Im.DATA, address1);
+        mValues2.put(Im.DATA, address1);
+        mValues3.put(Im.DATA, address1);
+        mValues4.put(Im.DATA, address2);
+
+        mValues1.put(Im.PROTOCOL, Im.PROTOCOL_CUSTOM);
+        mValues2.put(Im.PROTOCOL, Im.PROTOCOL_CUSTOM);
+        mValues3.put(Im.PROTOCOL, Im.PROTOCOL_CUSTOM);
+        mValues4.put(Im.PROTOCOL, Im.PROTOCOL_AIM);
+
+        mValues1.put(Im.CUSTOM_PROTOCOL, customProtocol1);
+        mValues2.put(Im.CUSTOM_PROTOCOL, customProtocol1);
+        mValues3.put(Im.CUSTOM_PROTOCOL, customProtocol2);
+
+        final DataKind kind = mGoogleAccountType.getKindForMimetype(Im.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3, mValues4);
+
+        assertEquals(3, dataList.size());
+        assertEquals(address1, ((ImDataItem) dataList.get(0)).getData());
+        assertEquals(address1, ((ImDataItem) dataList.get(1)).getData());
+        assertEquals(address2, ((ImDataItem) dataList.get(2)).getData());
+
+        assertEquals(customProtocol1, ((ImDataItem) dataList.get(0)).getCustomProtocol());
+        assertEquals(customProtocol2, ((ImDataItem) dataList.get(1)).getCustomProtocol());
+        assertEquals(Im.PROTOCOL_AIM, (int) ((ImDataItem) dataList.get(2)).getProtocol());
+    }
+
+    public void testDataItemCollapsing_nickname() {
+        final String nickname1 = "nickname 1";
+        final String nickname2 = "nickname 2";
+
+        mValues1.put(Data.MIMETYPE, Nickname.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Nickname.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Nickname.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Nickname.NAME, nickname1);
+        mValues2.put(Nickname.NAME, nickname1);
+        mValues3.put(Nickname.NAME, nickname2);
+
+        final DataKind kind = mGoogleAccountType.getKindForMimetype(Nickname.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3);
+
+        assertEquals(2, dataList.size());
+        assertEquals(nickname1, ((NicknameDataItem) dataList.get(0)).getName());
+        assertEquals(nickname2, ((NicknameDataItem) dataList.get(1)).getName());
+    }
+
+    public void testDataItemCollapsing_note() {
+        final String note1 = "note 1";
+        final String note2 = "note 2";
+
+        mValues1.put(Data.MIMETYPE, Note.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Note.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Note.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Note.NOTE, note1);
+        mValues2.put(Note.NOTE, note1);
+        mValues3.put(Note.NOTE, note2);
+
+        DataKind kind = mGoogleAccountType.getKindForMimetype(Note.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3);
+
+        assertEquals(2, dataList.size());
+        assertEquals(note1, ((NoteDataItem) dataList.get(0)).getNote());
+        assertEquals(note2, ((NoteDataItem) dataList.get(1)).getNote());
+    }
+
+    public void testDataItemCollapsing_organization() {
+        final String company1 = "company1";
+        final String company2 = "company2";
+        final String title1 = "title1";
+        final String title2 = "title2";
+
+        mValues1.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
+        mValues4.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Organization.COMPANY, company1);
+        mValues2.put(Organization.COMPANY, company1);
+        mValues3.put(Organization.COMPANY, company1);
+        mValues4.put(Organization.COMPANY, company2);
+
+        mValues1.put(Organization.TITLE, title1);
+        mValues2.put(Organization.TITLE, title1);
+        mValues3.put(Organization.TITLE, title2);
+        mValues4.put(Organization.TITLE, title1);
+
+        final DataKind kind =
+                mGoogleAccountType.getKindForMimetype(Organization.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3, mValues4);
+
+        assertEquals(3, dataList.size());
+        assertEquals(company1, ((OrganizationDataItem) dataList.get(0)).getCompany());
+        assertEquals(company1, ((OrganizationDataItem) dataList.get(1)).getCompany());
+        assertEquals(company2, ((OrganizationDataItem) dataList.get(2)).getCompany());
+
+        assertEquals(title1, ((OrganizationDataItem) dataList.get(0)).getTitle());
+        assertEquals(title2, ((OrganizationDataItem) dataList.get(1)).getTitle());
+    }
+
+    public void testDataItemCollapsing_phone() {
+        final String phone1 = "111-111-1111";
+        final String phone1a = "1111111111";
+        final String phone2 = "222-222-2222";
+
+        mValues1.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Phone.NUMBER, phone1);
+        mValues2.put(Phone.NUMBER, phone1a);
+        mValues3.put(Phone.NUMBER, phone2);
+
+        mValues1.put(Phone.TYPE, Phone.TYPE_MOBILE);
+        mValues2.put(Phone.TYPE, Phone.TYPE_HOME);
+        mValues3.put(Phone.TYPE, Phone.TYPE_WORK);
+
+        final DataKind kind = mGoogleAccountType.getKindForMimetype(Phone.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3);
+        assertEquals(2, dataList.size());
+        assertEquals(phone1, ((PhoneDataItem) dataList.get(0)).getNumber());
+        assertEquals(phone2, ((PhoneDataItem) dataList.get(1)).getNumber());
+        assertEquals(Phone.TYPE_MOBILE,
+                ((PhoneDataItem) dataList.get(0)).getKindTypeColumn(kind));
+    }
+
+    public void testDataItemCollapsing_relation() {
+        final String name1 = "name1";
+        final String name2 = "name2";
+        final String customRelation1 = "custom relation 1";
+        final String customRelation2 = "custom relation 2";
+
+        mValues1.put(Data.MIMETYPE, Relation.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Relation.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Relation.CONTENT_ITEM_TYPE);
+        mValues4.put(Data.MIMETYPE, Relation.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Relation.NAME, name1);
+        mValues2.put(Relation.NAME, name1);
+        mValues3.put(Relation.NAME, name1);
+        mValues4.put(Relation.NAME, name2);
+
+        mValues1.put(Relation.TYPE, Relation.TYPE_CUSTOM);
+        mValues2.put(Relation.TYPE, Relation.TYPE_CUSTOM);
+        mValues3.put(Relation.TYPE, Relation.TYPE_CUSTOM);
+        mValues4.put(Relation.TYPE, Relation.TYPE_BROTHER);
+
+        mValues1.put(Relation.LABEL, customRelation1);
+        mValues2.put(Relation.LABEL, customRelation1);
+        mValues3.put(Relation.LABEL, customRelation2);
+
+        final DataKind kind = mGoogleAccountType.getKindForMimetype(Relation.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3, mValues4);
+
+        assertEquals(3, dataList.size());
+        assertEquals(name1, ((RelationDataItem) dataList.get(0)).getName());
+        assertEquals(name2, ((RelationDataItem) dataList.get(2)).getName());
+
+        assertEquals(customRelation1, ((RelationDataItem) dataList.get(0)).getLabel());
+        assertEquals(customRelation2, ((RelationDataItem) dataList.get(1)).getLabel());
+    }
+
+    public void testDataItemCollapsing_sip() {
+        final String sip1 = "sip 1";
+        final String sip2 = "sip 2";
+
+        mValues1.put(Data.MIMETYPE, SipAddress.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, SipAddress.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, SipAddress.CONTENT_ITEM_TYPE);
+
+        mValues1.put(SipAddress.SIP_ADDRESS, sip1);
+        mValues2.put(SipAddress.SIP_ADDRESS, sip1);
+        mValues3.put(SipAddress.SIP_ADDRESS, sip2);
+
+        mValues1.put(SipAddress.TYPE, SipAddress.TYPE_WORK);
+        mValues2.put(SipAddress.TYPE, SipAddress.TYPE_HOME);
+        mValues3.put(SipAddress.TYPE, SipAddress.TYPE_WORK);
+
+        final DataKind kind = mGoogleAccountType.getKindForMimetype(SipAddress.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3);
+
+        assertEquals(2, dataList.size());
+        assertEquals(sip1, ((SipAddressDataItem) dataList.get(0)).getSipAddress());
+        assertEquals(sip2, ((SipAddressDataItem) dataList.get(1)).getSipAddress());
+    }
+
+    public void testDataItemCollapsing_structuredName() {
+        final String displayName1 = "Display Name 1";
+        final String displayName2 = "Display Name 2";
+
+        mValues1.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
+
+        mValues1.put(StructuredName.DISPLAY_NAME, displayName1);
+        mValues2.put(StructuredName.DISPLAY_NAME, displayName1);
+        mValues3.put(StructuredName.DISPLAY_NAME, displayName2);
+
+        final DataKind kind =
+                mGoogleAccountType.getKindForMimetype(StructuredName.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3);
+
+        assertEquals(2, dataList.size());
+        assertEquals(displayName1, ((StructuredNameDataItem) dataList.get(0)).getDisplayName());
+        assertEquals(displayName2, ((StructuredNameDataItem) dataList.get(1)).getDisplayName());
+    }
+
+    public void testDataItemCollapsing_structuredPostal() {
+        final String formattedAddress1 = "Formatted Address 1";
+        final String formattedAddress2 = "Formatted Address 2";
+
+        mValues1.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
+
+        mValues1.put(StructuredPostal.FORMATTED_ADDRESS, formattedAddress1);
+        mValues2.put(StructuredPostal.FORMATTED_ADDRESS, formattedAddress1);
+        mValues3.put(StructuredPostal.FORMATTED_ADDRESS, formattedAddress2);
+
+        final DataKind kind =
+                mGoogleAccountType.getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3);
+
+        assertEquals(2, dataList.size());
+        assertEquals(formattedAddress1,
+                ((StructuredPostalDataItem) dataList.get(0)).getFormattedAddress());
+        assertEquals(formattedAddress2,
+                ((StructuredPostalDataItem) dataList.get(1)).getFormattedAddress());
+    }
+
+    public void testDataItemCollapsing_website() {
+        final String url1 = "www.url1.com";
+        final String url2 = "www.url2.com";
+
+        mValues1.put(Data.MIMETYPE, Website.CONTENT_ITEM_TYPE);
+        mValues2.put(Data.MIMETYPE, Website.CONTENT_ITEM_TYPE);
+        mValues3.put(Data.MIMETYPE, Website.CONTENT_ITEM_TYPE);
+
+        mValues1.put(Website.URL, url1);
+        mValues2.put(Website.URL, url1);
+        mValues3.put(Website.URL, url2);
+
+        final DataKind kind = mGoogleAccountType.getKindForMimetype(Website.CONTENT_ITEM_TYPE);
+
+        final List<DataItem> dataList =
+                createDataItemsAndCollapse(kind, mValues1, mValues2, mValues3);
+
+        assertEquals(2, dataList.size());
+        assertEquals(url1, ((WebsiteDataItem) dataList.get(0)).getUrl());
+        assertEquals(url2, ((WebsiteDataItem) dataList.get(1)).getUrl());
+    }
+}
diff --git a/tests/src/com/android/contacts/preference/ContactsPreferencesTest.java b/tests/src/com/android/contacts/preference/ContactsPreferencesTest.java
new file mode 100644
index 0000000..bea8d14
--- /dev/null
+++ b/tests/src/com/android/contacts/preference/ContactsPreferencesTest.java
@@ -0,0 +1,239 @@
+/*
+ * Copyright (C) 2015 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.preference;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.support.test.InstrumentationRegistry;
+import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import junit.framework.Assert;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Arrays;
+
+@SmallTest
+public class ContactsPreferencesTest extends InstrumentationTestCase {
+
+    private static final String ACCOUNT_KEY = "ACCOUNT_KEY";
+
+    @Mock private Context mContext;
+    @Mock private Resources mResources;
+    @Mock private SharedPreferences mSharedPreferences;
+
+    private ContactsPreferences mContactsPreferences;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        System.setProperty("dexmaker.dexcache",
+                getInstrumentation().getTargetContext().getCacheDir().getPath());
+        MockitoAnnotations.initMocks(this);
+
+        Mockito.when(mContext.getResources()).thenReturn(mResources);
+        Mockito.when(mResources.getString(Mockito.anyInt()))
+                .thenReturn(ACCOUNT_KEY); // contact_editor_default_account_key
+
+        Mockito.when(mContext.getSharedPreferences(Mockito.anyString(), Mockito.anyInt()))
+                .thenReturn(mSharedPreferences);
+        Mockito.when(mSharedPreferences.contains(ContactsPreferences.SORT_ORDER_KEY))
+                .thenReturn(true);
+        Mockito.when(mSharedPreferences.contains(ContactsPreferences.DISPLAY_ORDER_KEY))
+                .thenReturn(true);
+        Mockito.when(mSharedPreferences.contains(ContactsPreferences.PHONETIC_NAME_DISPLAY_KEY))
+                .thenReturn(true);
+
+        InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                mContactsPreferences = new ContactsPreferences(mContext);
+            }
+        });
+    }
+
+    public void testGetSortOrderDefault() {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                false, // R.bool.config_sort_order_user_changeable
+                true // R.bool.config_default_sort_order_primary
+        );
+        Assert.assertEquals(ContactsPreferences.SORT_ORDER_PRIMARY,
+                mContactsPreferences.getSortOrder());
+    }
+
+    public void testGetSortOrder() {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                true // R.bool.config_sort_order_user_changeable
+        );
+        Mockito.when(mSharedPreferences.getInt(Mockito.eq(ContactsPreferences.SORT_ORDER_KEY),
+                Mockito.anyInt())).thenReturn(ContactsPreferences.SORT_ORDER_PRIMARY);
+        Assert.assertEquals(ContactsPreferences.SORT_ORDER_PRIMARY,
+                mContactsPreferences.getSortOrder());
+    }
+
+    public void testGetDisplayOrderDefault() {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                false, // R.bool.config_display_order_user_changeable
+                true // R.bool.config_default_display_order_primary
+        );
+        Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
+                mContactsPreferences.getDisplayOrder());
+    }
+
+    public void testGetDisplayOrder() {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                true // R.bool.config_display_order_user_changeable
+        );
+        Mockito.when(mSharedPreferences.getInt(Mockito.eq(ContactsPreferences.DISPLAY_ORDER_KEY),
+                Mockito.anyInt())).thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+        Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
+                mContactsPreferences.getDisplayOrder());
+    }
+
+    public void testGetPhoneticNameDisplayDefault() {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                false, // R.bool.config_phonetic_name_display_user_changeable
+                true // R.bool.config_default_hide_phonetic_name_if_empty
+        );
+        Assert.assertEquals(PhoneticNameDisplayPreference.HIDE_IF_EMPTY,
+                mContactsPreferences.getPhoneticNameDisplayPreference());
+    }
+
+    public void testGetPhoneticNameDisplay() {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                true // R.bool.config_phonetic_name_display_user_changeable
+        );
+        Mockito.when(mSharedPreferences.getInt(
+                Mockito.eq(ContactsPreferences.PHONETIC_NAME_DISPLAY_KEY),
+                Mockito.anyInt())).thenReturn(PhoneticNameDisplayPreference.HIDE_IF_EMPTY);
+        Assert.assertEquals(PhoneticNameDisplayPreference.HIDE_IF_EMPTY,
+                mContactsPreferences.getPhoneticNameDisplayPreference());
+    }
+
+    public void testRefreshPhoneticNameDisplay() throws InterruptedException {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                true // R.bool.config_phonetic_name_display_user_changeable
+        );
+        Mockito.when(mSharedPreferences.getInt(
+                Mockito.eq(ContactsPreferences.PHONETIC_NAME_DISPLAY_KEY),
+                Mockito.anyInt())).thenReturn(PhoneticNameDisplayPreference.HIDE_IF_EMPTY,
+                PhoneticNameDisplayPreference.SHOW_ALWAYS);
+
+        Assert.assertEquals(PhoneticNameDisplayPreference.HIDE_IF_EMPTY,
+                mContactsPreferences.getPhoneticNameDisplayPreference());
+        mContactsPreferences.refreshValue(ContactsPreferences.PHONETIC_NAME_DISPLAY_KEY);
+
+        Assert.assertEquals(PhoneticNameDisplayPreference.SHOW_ALWAYS,
+                mContactsPreferences.getPhoneticNameDisplayPreference());
+    }
+
+    public void testRefreshSortOrder() throws InterruptedException {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                true // R.bool.config_sort_order_user_changeable
+        );
+        Mockito.when(mSharedPreferences.getInt(Mockito.eq(ContactsPreferences.SORT_ORDER_KEY),
+                Mockito.anyInt())).thenReturn(ContactsPreferences.SORT_ORDER_PRIMARY,
+                ContactsPreferences.SORT_ORDER_ALTERNATIVE);
+
+        Assert.assertEquals(ContactsPreferences.SORT_ORDER_PRIMARY,
+                mContactsPreferences.getSortOrder());
+        mContactsPreferences.refreshValue(ContactsPreferences.SORT_ORDER_KEY);
+
+        Assert.assertEquals(ContactsPreferences.SORT_ORDER_ALTERNATIVE,
+                mContactsPreferences.getSortOrder());
+    }
+
+    public void testRefreshDisplayOrder() throws InterruptedException {
+        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
+                true // R.bool.config_display_order_user_changeable
+        );
+        Mockito.when(mSharedPreferences.getInt(Mockito.eq(ContactsPreferences.DISPLAY_ORDER_KEY),
+                Mockito.anyInt())).thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
+                ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
+
+        Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
+                mContactsPreferences.getDisplayOrder());
+        mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
+
+        Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE,
+                mContactsPreferences.getDisplayOrder());
+    }
+
+    public void testRefreshDefaultAccount() throws InterruptedException {
+        mContactsPreferences = new ContactsPreferences(mContext,
+                /* isDefaultAccountUserChangeable */ true);
+
+        Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
+                .thenReturn(new AccountWithDataSet("name1", "type1", "dataset1").stringify(),
+                        new AccountWithDataSet("name2", "type2", "dataset2").stringify());
+
+        Assert.assertEquals(new AccountWithDataSet("name1", "type1", "dataset1"),
+                mContactsPreferences.getDefaultAccount());
+        mContactsPreferences.refreshValue(ACCOUNT_KEY);
+
+        Assert.assertEquals(new AccountWithDataSet("name2", "type2", "dataset2"),
+                mContactsPreferences.getDefaultAccount());
+    }
+
+    public void testShouldShowAccountChangedNotificationIfAccountNotSaved() {
+        mContactsPreferences = new ContactsPreferences(mContext,
+                /* isDefaultAccountUserChangeable */ true);
+        Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
+                .thenReturn(null);
+
+        assertTrue("Should prompt to change default if no default is saved",
+                mContactsPreferences.shouldShowAccountChangedNotification(Arrays.asList(
+                        new AccountWithDataSet("name1", "type1", "dataset1"),
+                        new AccountWithDataSet("name2", "type2", "dataset2"))));
+    }
+
+    public void testShouldShowAccountChangedNotification() {
+        mContactsPreferences = new ContactsPreferences(mContext,
+                /* isDefaultAccountUserChangeable */ true);
+        Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
+                .thenReturn(new AccountWithDataSet("name", "type", "dataset").stringify());
+
+        assertFalse("Should not prompt to change default if current default exists",
+                mContactsPreferences.shouldShowAccountChangedNotification(Arrays.asList(
+                        new AccountWithDataSet("name", "type", "dataset"),
+                        new AccountWithDataSet("name1", "type1", "dataset1"))));
+
+        assertTrue("Should prompt to change default if current default does not exist",
+                mContactsPreferences.shouldShowAccountChangedNotification(Arrays.asList(
+                        new AccountWithDataSet("name1", "type1", "dataset1"),
+                        new AccountWithDataSet("name2", "type2", "dataset2"))));
+    }
+
+    public void testShouldShowAccountChangedNotificationWhenThereIsOneAccount() {
+        mContactsPreferences = new ContactsPreferences(mContext,
+                /* isDefaultAccountUserChangeable */ true);
+        Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
+                .thenReturn(null);
+
+        // Normally we would prompt because there is no default set but if there is just one
+        // account we should just use it.
+        assertFalse("Should not prompt to change default if there is only one account available",
+                mContactsPreferences.shouldShowAccountChangedNotification(Arrays.asList(
+                        new AccountWithDataSet("name", "type", "dataset"))));
+    }
+}
diff --git a/tests/src/com/android/contacts/test/FragmentTestActivity.java b/tests/src/com/android/contacts/test/FragmentTestActivity.java
new file mode 100644
index 0000000..d58dc8f
--- /dev/null
+++ b/tests/src/com/android/contacts/test/FragmentTestActivity.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2010 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.test;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.FrameLayout;
+
+/**
+ * An activity that is used for testing fragments.  A unit test starts this
+ * activity, adds a fragment and then tests the fragment.
+ */
+public class FragmentTestActivity extends Activity {
+
+    public final static int LAYOUT_ID = 1;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        // Normally fragment/activity onStart() methods will not be called when screen is locked.
+        // Use the following flags to ensure that activities can be show for testing.
+        final Window window = getWindow();
+        window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
+                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+
+        final FrameLayout layout = new FrameLayout(this);
+        layout.setId(LAYOUT_ID);
+        setContentView(layout);
+    }
+}
diff --git a/tests/src/com/android/contacts/test/IntegrationTestUtils.java b/tests/src/com/android/contacts/test/IntegrationTestUtils.java
new file mode 100644
index 0000000..60bb65b
--- /dev/null
+++ b/tests/src/com/android/contacts/test/IntegrationTestUtils.java
@@ -0,0 +1,192 @@
+/*
+ * Copyright (C) 2011 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.test;
+
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.content.Context;
+import android.os.PowerManager;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.google.common.base.Preconditions;
+
+import junit.framework.Assert;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.FutureTask;
+
+import javax.annotation.concurrent.GuardedBy;
+import javax.annotation.concurrent.ThreadSafe;
+
+/** Some utility methods for making integration testing smoother. */
+@ThreadSafe
+public class IntegrationTestUtils {
+    private static final String TAG = "IntegrationTestUtils";
+
+    private final Instrumentation mInstrumentation;
+    private final Object mLock = new Object();
+    @GuardedBy("mLock") private PowerManager.WakeLock mWakeLock;
+
+    public IntegrationTestUtils(Instrumentation instrumentation) {
+        mInstrumentation = instrumentation;
+    }
+
+    /**
+     * Find a view by a given resource id, from the given activity, and click it, iff it is
+     * enabled according to {@link View#isEnabled()}.
+     */
+    public void clickButton(final Activity activity, final int buttonResourceId) throws Throwable {
+        runOnUiThreadAndGetTheResult(new Callable<Void>() {
+            @Override
+            public Void call() throws Exception {
+                View view = activity.findViewById(buttonResourceId);
+                Assert.assertNotNull(view);
+                if (view.isEnabled()) {
+                    view.performClick();
+                }
+                return null;
+            }
+        });
+    }
+
+    /** Returns the result of running {@link TextView#getText()} on the ui thread. */
+    public CharSequence getText(final TextView view) throws Throwable {
+        return runOnUiThreadAndGetTheResult(new Callable<CharSequence>() {
+            @Override
+            public CharSequence call() {
+                return view.getText();
+            }
+        });
+    }
+
+    // TODO: Move this class and the appropriate documentation into a test library, having checked
+    // first to see if exactly this code already exists or not.
+    /**
+     * Execute a callable on the ui thread, returning its result synchronously.
+     * <p>
+     * Waits for an idle sync on the main thread (see {@link Instrumentation#waitForIdle(Runnable)})
+     * before executing this callable.
+     */
+    public <T> T runOnUiThreadAndGetTheResult(Callable<T> callable) throws Throwable {
+        FutureTask<T> future = new FutureTask<T>(callable);
+        mInstrumentation.waitForIdle(future);
+        try {
+            return future.get();
+        } catch (ExecutionException e) {
+            // Unwrap the cause of the exception and re-throw it.
+            throw e.getCause();
+        }
+    }
+
+    /**
+     * Wake up the screen, useful in tests that want or need the screen to be on.
+     * <p>
+     * This is usually called from setUp() for tests that require it.  After calling this method,
+     * {@link #releaseScreenWakeLock()} must be called, this is usually done from tearDown().
+     */
+    public void acquireScreenWakeLock(Context context) {
+        synchronized (mLock) {
+            Preconditions.checkState(mWakeLock == null, "mWakeLock was already held");
+            mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE))
+                    .newWakeLock(
+                            PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE | PowerManager.FULL_WAKE_LOCK, TAG);
+            mWakeLock.acquire();
+        }
+    }
+
+    /** Release the wake lock previously acquired with {@link #acquireScreenWakeLock(Context)}. */
+    public void releaseScreenWakeLock() {
+        synchronized (mLock) {
+            // We don't use Preconditions to force you to have acquired before release.
+            // This is because we don't want unnecessary exceptions in tearDown() since they'll
+            // typically mask the actual exception that happened during the test.
+            // The other reason is that this method is most likely to be called from tearDown(),
+            // which is invoked within a finally block, so it's not infrequently the case that
+            // the setUp() method fails before getting the lock, at which point we don't want
+            // to fail in tearDown().
+            if (mWakeLock != null) {
+                mWakeLock.release();
+                mWakeLock = null;
+            }
+        }
+    }
+
+    /**
+     * Gets all {@link TextView} objects whose {@link TextView#getText()} contains the given text as
+     * a substring.
+     */
+    public List<TextView> getTextViewsWithString(final Activity activity, final String text)
+            throws Throwable {
+        return getTextViewsWithString(getRootView(activity), text);
+    }
+
+    /**
+     * Gets all {@link TextView} objects whose {@link TextView#getText()} contains the given text as
+     * a substring for the given root view.
+     */
+    public List<TextView> getTextViewsWithString(final View rootView, final String text)
+            throws Throwable {
+        return runOnUiThreadAndGetTheResult(new Callable<List<TextView>>() {
+            @Override
+            public List<TextView> call() throws Exception {
+                List<TextView> matchingViews = new ArrayList<TextView>();
+                for (TextView textView : getAllViews(TextView.class, rootView)) {
+                    if (textView.getText().toString().contains(text)) {
+                        matchingViews.add(textView);
+                    }
+                }
+                return matchingViews;
+            }
+        });
+    }
+
+    /** Find the root view for a given activity. */
+    public static View getRootView(Activity activity) {
+        return activity.findViewById(android.R.id.content).getRootView();
+    }
+
+    /**
+     * Gets a list of all views of a given type, rooted at the given parent.
+     * <p>
+     * This method will recurse down through all {@link ViewGroup} instances looking for
+     * {@link View} instances of the supplied class type. Specifically it will use the
+     * {@link Class#isAssignableFrom(Class)} method as the test for which views to add to the list,
+     * so if you provide {@code View.class} as your type, you will get every view. The parent itself
+     * will be included also, should it be of the right type.
+     * <p>
+     * This call manipulates the ui, and as such should only be called from the application's main
+     * thread.
+     */
+    private static <T extends View> List<T> getAllViews(final Class<T> clazz, final View parent) {
+        List<T> results = new ArrayList<T>();
+        if (parent.getClass().equals(clazz)) {
+            results.add(clazz.cast(parent));
+        }
+        if (parent instanceof ViewGroup) {
+            ViewGroup viewGroup = (ViewGroup) parent;
+            for (int i = 0; i < viewGroup.getChildCount(); ++i) {
+                results.addAll(getAllViews(clazz, viewGroup.getChildAt(i)));
+            }
+        }
+        return results;
+    }
+}
diff --git a/tests/src/com/android/contacts/test/LaunchPerformanceBase.java b/tests/src/com/android/contacts/test/LaunchPerformanceBase.java
new file mode 100644
index 0000000..8feb604
--- /dev/null
+++ b/tests/src/com/android/contacts/test/LaunchPerformanceBase.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2007 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.test;
+
+import android.app.Instrumentation;
+import android.content.Intent;
+import android.os.Bundle;
+
+
+/**
+ * Base class for all launch performance Instrumentation classes.
+ */
+public class LaunchPerformanceBase extends Instrumentation {
+
+    public static final String LOG_TAG = "Launch Performance";
+
+    protected Bundle mResults;
+    protected Intent mIntent;
+
+    public LaunchPerformanceBase() {
+        mResults = new Bundle();
+        mIntent = new Intent(Intent.ACTION_MAIN);
+        mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        setAutomaticPerformanceSnapshots();
+    }
+
+    /**
+     * Launches intent, and waits for idle before returning.
+     *
+     * @hide
+     */
+    protected void LaunchApp() {
+        startActivitySync(mIntent);
+        waitForIdleSync();
+    }
+}
diff --git a/tests/src/com/android/contacts/test/mocks/ContactsMockContext.java b/tests/src/com/android/contacts/test/mocks/ContactsMockContext.java
new file mode 100644
index 0000000..293f8e7
--- /dev/null
+++ b/tests/src/com/android/contacts/test/mocks/ContactsMockContext.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2010 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.test.mocks;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.ContextWrapper;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.provider.ContactsContract;
+import android.provider.Settings;
+import android.test.mock.MockContentResolver;
+
+/**
+ * A mock context for contacts unit tests. Forwards everything to
+ * a supplied context, except content resolver operations, which are sent
+ * to mock content providers.
+ */
+public class ContactsMockContext extends ContextWrapper {
+    private ContactsMockPackageManager mPackageManager;
+    private MockContentResolver mContentResolver;
+    private MockContentProvider mContactsProvider;
+    private MockContentProvider mSettingsProvider;
+    private Intent mIntentForStartActivity;
+
+    public ContactsMockContext(Context base) {
+        this(base, ContactsContract.AUTHORITY);
+    }
+
+    public ContactsMockContext(Context base, String authority) {
+        super(base);
+        mPackageManager = new ContactsMockPackageManager();
+        mContentResolver = new MockContentResolver();
+        mContactsProvider = new MockContentProvider();
+        mContentResolver.addProvider(authority, mContactsProvider);
+        mSettingsProvider = new MockContentProvider();
+        mContentResolver.addProvider(Settings.AUTHORITY, mSettingsProvider);
+    }
+
+    @Override
+    public ContentResolver getContentResolver() {
+        return mContentResolver;
+    }
+
+    public MockContentProvider getContactsProvider() {
+        return mContactsProvider;
+    }
+
+    public MockContentProvider getSettingsProvider() {
+        return mSettingsProvider;
+    }
+
+    @Override
+    public PackageManager getPackageManager() {
+        return mPackageManager;
+    }
+
+    @Override
+    public Context getApplicationContext() {
+        return this;
+    }
+
+    /**
+     * Instead of actually sending Intent, this method just remembers what Intent was supplied last.
+     * You can check the content via {@link #getIntentForStartActivity()} for verification.
+     */
+    @Override
+    public void startActivity(Intent intent) {
+        mIntentForStartActivity = intent;
+    }
+
+    public Intent getIntentForStartActivity() {
+        return mIntentForStartActivity;
+    }
+
+    public void verify() {
+        mContactsProvider.verify();
+        mSettingsProvider.verify();
+    }
+
+}
diff --git a/tests/src/com/android/contacts/test/mocks/ContactsMockPackageManager.java b/tests/src/com/android/contacts/test/mocks/ContactsMockPackageManager.java
new file mode 100644
index 0000000..275b8b7
--- /dev/null
+++ b/tests/src/com/android/contacts/test/mocks/ContactsMockPackageManager.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2010 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.test.mocks;
+
+import android.content.ComponentName;
+import android.content.pm.ApplicationInfo;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.test.mock.MockPackageManager;
+
+/**
+ */
+public class ContactsMockPackageManager extends MockPackageManager {
+    public ContactsMockPackageManager() {
+    }
+
+    @Override
+    public Drawable getActivityLogo(ComponentName activityName) throws NameNotFoundException {
+        return new ColorDrawable();
+    }
+
+    @Override
+    public Drawable getActivityIcon(ComponentName activityName) {
+        return new ColorDrawable();
+    }
+
+    @Override
+    public Drawable getDrawable(String packageName, int resid, ApplicationInfo appInfo) {
+        // TODO: make programmable
+        return new ColorDrawable();
+    }
+}
diff --git a/tests/src/com/android/contacts/test/mocks/ForwardingContentProvider.java b/tests/src/com/android/contacts/test/mocks/ForwardingContentProvider.java
new file mode 100644
index 0000000..b6ca983
--- /dev/null
+++ b/tests/src/com/android/contacts/test/mocks/ForwardingContentProvider.java
@@ -0,0 +1,206 @@
+/*
+ * 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.test.mocks;
+
+import android.content.ContentProviderClient;
+import android.content.ContentProviderOperation;
+import android.content.ContentProviderResult;
+import android.content.ContentValues;
+import android.content.OperationApplicationException;
+import android.content.res.AssetFileDescriptor;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.CancellationSignal;
+import android.os.ParcelFileDescriptor;
+import android.os.RemoteException;
+import android.support.annotation.Nullable;
+
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+
+/**
+ * Forwards calls to a {@link ContentProviderClient}
+ *
+ * <p>This allows mixing use of the system content providers in a
+ * {@link android.test.mock.MockContentResolver}
+ * </p>
+ */
+public class ForwardingContentProvider extends android.test.mock.MockContentProvider {
+
+    private final ContentProviderClient mClient;
+
+    public ForwardingContentProvider(ContentProviderClient client) {
+        mClient = client;
+    }
+
+    @Override
+    public synchronized Cursor query(Uri url, String[] projection, String selection,
+            String[] selectionArgs, String sortOrder) {
+        try {
+            return mClient.query(url, projection, selection, selectionArgs, sortOrder);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Nullable
+    @Override
+    public synchronized Cursor query(Uri url, String[] projection, String selection,
+            String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal) {
+        try {
+            return mClient.query(url, projection, selection, selectionArgs, sortOrder,
+                    cancellationSignal);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public synchronized String getType(Uri url) {
+        try {
+            return mClient.getType(url);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public synchronized String[] getStreamTypes(Uri url, String mimeTypeFilter) {
+        try {
+            return mClient.getStreamTypes(url, mimeTypeFilter);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public synchronized Uri insert(Uri url, ContentValues initialValues) {
+        try {
+            return mClient.insert(url, initialValues);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public synchronized int bulkInsert(Uri url, ContentValues[] initialValues) {
+        try {
+            return mClient.bulkInsert(url, initialValues);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public synchronized int delete(Uri url, String selection, String[] selectionArgs) {
+        try {
+            return mClient.delete(url, selection, selectionArgs);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public synchronized int update(Uri url, ContentValues values,
+            String selection, String[] selectionArgs) {
+        try {
+            return mClient.update(url, values, selection, selectionArgs);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Nullable
+    @Override
+    public synchronized ParcelFileDescriptor openFile(Uri url, String mode) {
+        try {
+            return mClient.openFile(url, mode);
+        } catch (RemoteException|FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Nullable
+    @Override
+    public synchronized ParcelFileDescriptor openFile(Uri url, String mode,
+            CancellationSignal signal) {
+        try {
+            return mClient.openFile(url, mode, signal);
+        } catch (RemoteException|FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Nullable
+    @Override
+    public synchronized AssetFileDescriptor openAssetFile(Uri url, String mode) {
+        try {
+            return mClient.openAssetFile(url, mode);
+        } catch (RemoteException|FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Nullable
+    @Override
+    public synchronized AssetFileDescriptor openAssetFile(Uri url, String mode,
+            CancellationSignal signal) {
+        try {
+            return mClient.openAssetFile(url, mode, signal);
+        } catch (RemoteException|FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public synchronized AssetFileDescriptor openTypedAssetFileDescriptor(Uri uri, String mimeType,
+            Bundle opts) {
+        try {
+            return mClient.openTypedAssetFileDescriptor(uri, mimeType, opts);
+        } catch (RemoteException|FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public synchronized AssetFileDescriptor openTypedAssetFileDescriptor(Uri uri, String mimeType,
+            Bundle opts, CancellationSignal signal) {
+        try {
+            return mClient.openTypedAssetFileDescriptor(uri, mimeType, opts, signal);
+        } catch (RemoteException|FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public synchronized ContentProviderResult[] applyBatch(
+            ArrayList<ContentProviderOperation> operations) {
+        try {
+            return mClient.applyBatch(operations);
+        } catch (RemoteException|OperationApplicationException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Nullable
+    @Override
+    public synchronized Bundle call(String method, String arg, Bundle extras) {
+        try {
+            return mClient.call(method, arg, extras);
+        } catch (RemoteException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/test/mocks/MockAccountTypeManager.java b/tests/src/com/android/contacts/test/mocks/MockAccountTypeManager.java
new file mode 100644
index 0000000..d5c1ccb
--- /dev/null
+++ b/tests/src/com/android/contacts/test/mocks/MockAccountTypeManager.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2010 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.test.mocks;
+
+import android.accounts.Account;
+
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountInfo;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountTypeWithDataSet;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.model.account.BaseAccountType;
+import com.google.common.base.Objects;
+import com.google.common.base.Predicate;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * A mock {@link AccountTypeManager} class.
+ */
+public class MockAccountTypeManager extends AccountTypeManager {
+
+    public AccountType[] mTypes;
+    public AccountWithDataSet[] mAccounts;
+
+    public MockAccountTypeManager(AccountType[] types, AccountWithDataSet[] accounts) {
+        this.mTypes = types;
+        this.mAccounts = accounts;
+    }
+
+    @Override
+    public AccountType getAccountType(AccountTypeWithDataSet accountTypeWithDataSet) {
+        // Add fallback accountType to mimic the behavior of AccountTypeManagerImpl
+        AccountType mFallbackAccountType = new BaseAccountType() {
+            @Override
+            public boolean areContactsWritable() {
+                return false;
+            }
+        };
+        mFallbackAccountType.accountType = "fallback";
+        for (AccountType type : mTypes) {
+            if (Objects.equal(accountTypeWithDataSet.accountType, type.accountType)
+                    && Objects.equal(accountTypeWithDataSet.dataSet, type.dataSet)) {
+                return type;
+            }
+        }
+        return mFallbackAccountType;
+    }
+
+    @Override
+    public List<AccountWithDataSet> blockForWritableAccounts() {
+        return Arrays.asList(mAccounts);
+    }
+
+    @Override
+    public ListenableFuture<List<AccountInfo>> getAccountsAsync() {
+        throw new UnsupportedOperationException("not implemented");
+    }
+
+    @Override
+    public ListenableFuture<List<AccountInfo>> filterAccountsAsync(Predicate<AccountInfo> filter) {
+        throw new UnsupportedOperationException("not implemented");
+    }
+
+    @Override
+    public AccountInfo getAccountInfoForAccount(AccountWithDataSet account) {
+        throw new UnsupportedOperationException("not implemented");
+    }
+
+    @Override
+    public Account getDefaultGoogleAccount() {
+        return null;
+    }
+}
diff --git a/tests/src/com/android/contacts/test/mocks/MockContactPhotoManager.java b/tests/src/com/android/contacts/test/mocks/MockContactPhotoManager.java
new file mode 100644
index 0000000..e0bd425
--- /dev/null
+++ b/tests/src/com/android/contacts/test/mocks/MockContactPhotoManager.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2011 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.test.mocks;
+
+import android.graphics.Bitmap;
+import android.net.Uri;
+import android.view.View;
+import android.widget.ImageView;
+
+import com.android.contacts.ContactPhotoManager;
+
+/**
+ * A photo preloader that always uses the "no contact" picture and never executes any real
+ * db queries
+ */
+public class MockContactPhotoManager extends ContactPhotoManager {
+    @Override
+    public void loadThumbnail(ImageView view, long photoId, boolean darkTheme, boolean isCircular,
+            DefaultImageRequest defaultImageRequest, DefaultImageProvider defaultProvider) {
+        defaultProvider.applyDefaultImage(view, -1, darkTheme, null);
+    }
+
+    @Override
+    public void loadPhoto(ImageView view, Uri photoUri, int requestedExtent, boolean darkTheme,
+            boolean isCircular, DefaultImageRequest defaultImageRequest,
+            DefaultImageProvider defaultProvider) {
+        defaultProvider.applyDefaultImage(view, requestedExtent, darkTheme, null);
+    }
+
+    @Override
+    public void removePhoto(ImageView view) {
+        view.setImageDrawable(null);
+    }
+
+    @Override
+    public void cancelPendingRequests(View fragmentRootView) {
+    }
+
+    @Override
+    public void pause() {
+    }
+
+    @Override
+    public void resume() {
+    }
+
+    @Override
+    public void refreshCache() {
+    }
+
+    @Override
+    public void cacheBitmap(Uri photoUri, Bitmap bitmap, byte[] photoBytes) {
+    }
+
+    @Override
+    public void preloadPhotosInBackground() {
+    }
+}
diff --git a/tests/src/com/android/contacts/test/mocks/MockContentProvider.java b/tests/src/com/android/contacts/test/mocks/MockContentProvider.java
new file mode 100644
index 0000000..3b96e3a
--- /dev/null
+++ b/tests/src/com/android/contacts/test/mocks/MockContentProvider.java
@@ -0,0 +1,699 @@
+/*
+ * Copyright (C) 2010 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.test.mocks;
+
+import android.content.ContentValues;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.support.annotation.Nullable;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+
+import junit.framework.Assert;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * A programmable mock content provider.
+ */
+public class MockContentProvider extends android.test.mock.MockContentProvider {
+    private static final String TAG = "MockContentProvider";
+
+    public static class Query {
+
+        private final Uri mUri;
+        private UriMatcher mMatcher;
+
+        private String[] mProjection;
+        private String[] mDefaultProjection;
+        private String mSelection;
+        private String[] mSelectionArgs;
+        private String mSortOrder;
+        private List<Object> mRows = new ArrayList<>();
+        private boolean mAnyProjection;
+        private boolean mAnySelection;
+        private boolean mAnySortOrder;
+        private boolean mAnyNumberOfTimes;
+
+        private boolean mExecuted;
+
+        private Query() {
+            mUri = null;
+        }
+
+        private Query(UriMatcher matcher) {
+            mUri = null;
+            mMatcher = matcher;
+        }
+
+        public Query(Uri uri) {
+            mUri = uri;
+        }
+
+        @Override
+        public String toString() {
+            return queryToString(mUri, mProjection, mSelection, mSelectionArgs, mSortOrder);
+        }
+
+        public Query withProjection(String... projection) {
+            mProjection = projection;
+            return this;
+        }
+
+        public Query withDefaultProjection(String... projection) {
+            mDefaultProjection = projection;
+            return this;
+        }
+
+        public Query withAnyProjection() {
+            mAnyProjection = true;
+            return this;
+        }
+
+        public Query withSelection(String selection, String... selectionArgs) {
+            mSelection = selection;
+            mSelectionArgs = selectionArgs;
+            return this;
+        }
+
+        public Query withAnySelection() {
+            mAnySelection = true;
+            return this;
+        }
+
+        public Query withSortOrder(String sortOrder) {
+            mSortOrder = sortOrder;
+            return this;
+        }
+
+        public Query withAnySortOrder() {
+            mAnySortOrder = true;
+            return this;
+        }
+
+        public Query returnRow(ContentValues values) {
+            mRows.add(values);
+            return this;
+        }
+
+        public Query returnRow(Object... row) {
+            mRows.add(row);
+            return this;
+        }
+
+        public Query returnEmptyCursor() {
+            mRows.clear();
+            return this;
+        }
+
+        public Query anyNumberOfTimes() {
+            mAnyNumberOfTimes = true;
+            return this;
+        }
+
+        public boolean equals(Uri uri, String[] projection, String selection,
+                String[] selectionArgs, String sortOrder) {
+            if (mUri == null) {
+                if (mMatcher != null && mMatcher.match(uri) == UriMatcher.NO_MATCH) {
+                    return false;
+                }
+            } else if (!uri.equals(mUri)) {
+                return false;
+            }
+
+            if (!mAnyProjection && !Arrays.equals(projection, mProjection)) {
+                return false;
+            }
+
+            if (!mAnySelection && !Objects.equals(selection, mSelection)) {
+                return false;
+            }
+
+            if (!mAnySelection && !Arrays.equals(selectionArgs, mSelectionArgs)) {
+                return false;
+            }
+
+            if (!mAnySortOrder && !Objects.equals(sortOrder, mSortOrder)) {
+                return false;
+            }
+
+            return true;
+        }
+
+        public Cursor getResult(String[] projection) {
+            String[] columnNames;
+            if (mAnyProjection) {
+                columnNames = projection != null ? projection : mDefaultProjection;
+            } else {
+                columnNames = mProjection != null ? mProjection : mDefaultProjection;
+            }
+
+            MatrixCursor cursor = new MatrixCursor(columnNames);
+            for (Object row : mRows) {
+                if (row instanceof Object[]) {
+                    cursor.addRow((Object[]) row);
+                } else {
+                    ContentValues values = (ContentValues) row;
+                    Object[] columns = new Object[columnNames.length];
+                    for (int i = 0; i < columnNames.length; i++) {
+                        columns[i] = values.get(columnNames[i]);
+                    }
+                    cursor.addRow(columns);
+                }
+            }
+            return cursor;
+        }
+
+        public static Query forAnyUri() {
+            return new Query();
+        }
+
+        public static Query forUrisMatching(UriMatcher matcher) {
+            return new Query(matcher);
+        }
+
+        public static Query forUrisMatching(String authority, String... paths) {
+            final UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
+            for (int i = 0; i < paths.length; i++) {
+                matcher.addURI(authority, paths[i], i);
+            }
+            return new Query(matcher);
+        }
+
+    }
+
+    public static class TypeQuery {
+        private final Uri mUri;
+        private final String mType;
+
+        public TypeQuery(Uri uri, String type) {
+            mUri = uri;
+            mType = type;
+        }
+
+        public Uri getUri() {
+            return mUri;
+        }
+
+        public String getType() {
+            return mType;
+        }
+
+        @Override
+        public String toString() {
+            return mUri + " --> " + mType;
+        }
+
+        public boolean equals(Uri uri) {
+            return getUri().equals(uri);
+        }
+    }
+
+    public static class Insert {
+        private final Uri mUri;
+        private final ContentValues mContentValues;
+        private final Uri mResultUri;
+        private boolean mAnyNumberOfTimes;
+        private boolean mIsExecuted;
+
+        /**
+         * Creates a new Insert to expect.
+         *
+         * @param uri the uri of the insertion request.
+         * @param contentValues the ContentValues to insert.
+         * @param resultUri the {@link Uri} for the newly inserted item.
+         * @throws NullPointerException if any parameter is {@code null}.
+         */
+        public Insert(Uri uri, ContentValues contentValues, Uri resultUri) {
+            mUri = Preconditions.checkNotNull(uri);
+            mContentValues = Preconditions.checkNotNull(contentValues);
+            mResultUri = Preconditions.checkNotNull(resultUri);
+        }
+
+        /**
+         * Causes this insert expectation to be useable for mutliple calls to insert, rather than
+         * just one.
+         *
+         * @return this
+         */
+        public Insert anyNumberOfTimes() {
+            mAnyNumberOfTimes = true;
+            return this;
+        }
+
+        private boolean equals(Uri uri, ContentValues contentValues) {
+            return mUri.equals(uri) && mContentValues.equals(contentValues);
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
+                return true;
+            }
+            if (o == null || getClass() != o.getClass()) {
+                return false;
+            }
+            Insert insert = (Insert) o;
+            return mAnyNumberOfTimes == insert.mAnyNumberOfTimes &&
+                    mIsExecuted == insert.mIsExecuted &&
+                    Objects.equals(mUri, insert.mUri) &&
+                    Objects.equals(mContentValues, insert.mContentValues) &&
+                    Objects.equals(mResultUri, insert.mResultUri);
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(mUri, mContentValues, mResultUri, mAnyNumberOfTimes, mIsExecuted);
+        }
+
+        @Override
+        public String toString() {
+            return "Insert{" +
+                    "mUri=" + mUri +
+                    ", mContentValues=" + mContentValues +
+                    ", mResultUri=" + mResultUri +
+                    ", mAnyNumberOfTimes=" + mAnyNumberOfTimes +
+                    ", mIsExecuted=" + mIsExecuted +
+                    '}';
+        }
+    }
+
+    public static class Delete {
+        private final Uri mUri;
+
+        private boolean mAnyNumberOfTimes;
+        private boolean mAnySelection;
+        @Nullable private String mSelection;
+        @Nullable private String[] mSelectionArgs;
+        private boolean mIsExecuted;
+        private int mRowsAffected;
+
+        /**
+         * Creates a new Delete to expect.
+         * @param uri the uri of the delete request.
+         * @throws NullPointerException if uri is {@code null}.
+         */
+        public Delete(Uri uri) {
+            mUri = Preconditions.checkNotNull(uri);
+        }
+
+        /**
+         * Sets the given information as expected selection arguments.
+         *
+         * @param selection The selection to expect.
+         * @param selectionArgs The selection args to expect.
+         * @return this.
+         */
+        public Delete withSelection(String selection, @Nullable String[] selectionArgs) {
+            mSelection = Preconditions.checkNotNull(selection);
+            mSelectionArgs = selectionArgs;
+            mAnySelection = false;
+            return this;
+        }
+
+        /**
+         * Sets this delete to expect any selection arguments.
+         *
+         * @return this.
+         */
+        public Delete withAnySelection() {
+            mAnySelection = true;
+            return this;
+        }
+
+        /**
+         * Sets this delete to return the given number of rows affected.
+         *
+         * @param rowsAffected The value to return when this expected delete is executed.
+         * @return this.
+         */
+        public Delete returnRowsAffected(int rowsAffected) {
+            mRowsAffected = rowsAffected;
+            return this;
+        }
+
+        /**
+         * Causes this delete expectation to be useable for multiple calls to delete, rather than
+         * just one.
+         *
+         * @return this.
+         */
+        public Delete anyNumberOfTimes() {
+            mAnyNumberOfTimes = true;
+            return this;
+        }
+
+        private boolean equals(Uri uri, String selection, String[] selectionArgs) {
+            return mUri.equals(uri) && Objects.equals(mSelection, selection)
+                    && Arrays.equals(mSelectionArgs, selectionArgs);
+        }
+    }
+
+    public static class Update {
+        private final Uri mUri;
+        private final ContentValues mContentValues;
+        @Nullable private String mSelection;
+        @Nullable private String[] mSelectionArgs;
+        private boolean mAnyNumberOfTimes;
+        private boolean mIsExecuted;
+        private int mRowsAffected;
+
+        /**
+         * Creates a new Update to expect.
+         *
+         * @param uri the uri of the update request.
+         * @param contentValues the ContentValues to update.
+         *
+         * @throws NullPointerException if any parameter is {@code null}.
+         */
+        public Update(Uri uri,
+                      ContentValues contentValues,
+                      @Nullable String selection,
+                      @Nullable String[] selectionArgs) {
+            mUri = Preconditions.checkNotNull(uri);
+            mContentValues = Preconditions.checkNotNull(contentValues);
+            mSelection = selection;
+            mSelectionArgs = selectionArgs;
+        }
+
+        /**
+         * Causes this update expectation to be useable for mutliple calls to update, rather than
+         * just one.
+         *
+         * @return this
+         */
+        public Update anyNumberOfTimes() {
+            mAnyNumberOfTimes = true;
+            return this;
+        }
+
+        /**
+         * Sets this update to return the given number of rows affected.
+         *
+         * @param rowsAffected The value to return when this expected update is executed.
+         * @return this.
+         */
+        public Update returnRowsAffected(int rowsAffected) {
+            mRowsAffected = rowsAffected;
+            return this;
+        }
+
+        private boolean equals(Uri uri,
+                               ContentValues contentValues,
+                               @Nullable String selection,
+                               @Nullable String[] selectionArgs) {
+            return mUri.equals(uri) && mContentValues.equals(contentValues) &&
+                    Objects.equals(mSelection, selection) &&
+                    Arrays.equals(mSelectionArgs, selectionArgs);
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
+                return true;
+            }
+            if (o == null || getClass() != o.getClass()) {
+                return false;
+            }
+            Update update = (Update) o;
+            return mAnyNumberOfTimes == update.mAnyNumberOfTimes &&
+                    mIsExecuted == update.mIsExecuted &&
+                    Objects.equals(mUri, update.mUri) &&
+                    Objects.equals(mContentValues, update.mContentValues) &&
+                    Objects.equals(mSelection, update.mSelection) &&
+                    Arrays.equals(mSelectionArgs, update.mSelectionArgs);
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(mUri, mContentValues, mAnyNumberOfTimes, mIsExecuted, mSelection,
+                    Arrays.hashCode(mSelectionArgs));
+        }
+
+        @Override
+        public String toString() {
+            return "Update{" +
+                    "mUri=" + mUri +
+                    ", mContentValues=" + mContentValues +
+                    ", mAnyNumberOfTimes=" + mAnyNumberOfTimes +
+                    ", mIsExecuted=" + mIsExecuted +
+                    ", mSelection=" + mSelection +
+                    ", mSelectionArgs=" + Arrays.toString(mSelectionArgs) +
+                    '}';
+        }
+    }
+
+    private List<Query> mExpectedQueries = new ArrayList<>();
+    private Map<Uri, String> mExpectedTypeQueries = Maps.newHashMap();
+    private List<Insert> mExpectedInserts = new ArrayList<>();
+    private List<Delete> mExpectedDeletes = new ArrayList<>();
+    private List<Update> mExpectedUpdates = new ArrayList<>();
+
+    @Override
+    public boolean onCreate() {
+        return true;
+    }
+
+    public Query expect(Query query) {
+        mExpectedQueries.add(query);
+        return query;
+    }
+
+    public Query expectQuery(Uri contentUri) {
+        return expect(new Query(contentUri));
+    }
+
+    public Query expectQuery(String contentUri) {
+        return expectQuery(Uri.parse(contentUri));
+    }
+
+    public void expectTypeQuery(Uri uri, String type) {
+        mExpectedTypeQueries.put(uri, type);
+    }
+
+    public void expectInsert(Uri contentUri, ContentValues contentValues, Uri resultUri) {
+        mExpectedInserts.add(new Insert(contentUri, contentValues, resultUri));
+    }
+
+    public Update expectUpdate(Uri contentUri,
+                               ContentValues contentValues,
+                               @Nullable String selection,
+                               @Nullable String[] selectionArgs) {
+        Update update = new Update(contentUri, contentValues, selection, selectionArgs);
+        mExpectedUpdates.add(update);
+        return update;
+    }
+
+    public Delete expectDelete(Uri contentUri) {
+        Delete delete = new Delete(contentUri);
+        mExpectedDeletes.add(delete);
+        return delete;
+    }
+
+    @Override
+    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+            String sortOrder) {
+        if (mExpectedQueries.isEmpty()) {
+            Assert.fail("Unexpected query: Actual:"
+                    + queryToString(uri, projection, selection, selectionArgs, sortOrder));
+        }
+
+        for (Iterator<Query> iterator = mExpectedQueries.iterator(); iterator.hasNext();) {
+            Query query = iterator.next();
+            if (query.equals(uri, projection, selection, selectionArgs, sortOrder)) {
+                query.mExecuted = true;
+                if (!query.mAnyNumberOfTimes) {
+                    iterator.remove();
+                }
+                return query.getResult(projection);
+            }
+        }
+
+        Assert.fail("Incorrect query. Expected one of: " + mExpectedQueries + ". Actual: " +
+                queryToString(uri, projection, selection, selectionArgs, sortOrder));
+        return null;
+    }
+
+    @Override
+    public String getType(Uri uri) {
+        if (mExpectedTypeQueries.isEmpty()) {
+            Assert.fail("Unexpected getType query: " + uri);
+        }
+
+        String mimeType = mExpectedTypeQueries.get(uri);
+        if (mimeType != null) {
+            return mimeType;
+        }
+
+        Assert.fail("Unknown mime type for: " + uri);
+        return null;
+    }
+
+    @Override
+    public Uri insert(Uri uri, ContentValues values) {
+        if (mExpectedInserts.isEmpty()) {
+            Assert.fail("Unexpected insert. Actual: " + insertToString(uri, values));
+        }
+        for (Iterator<Insert> iterator = mExpectedInserts.iterator(); iterator.hasNext(); ) {
+            Insert insert = iterator.next();
+            if (insert.equals(uri, values)) {
+                insert.mIsExecuted = true;
+                if (!insert.mAnyNumberOfTimes) {
+                    iterator.remove();
+                }
+                return insert.mResultUri;
+            }
+        }
+
+        Assert.fail("Incorrect insert. Expected one of: " + mExpectedInserts + ". Actual: "
+                + insertToString(uri, values));
+        return null;
+    }
+
+    private String insertToString(Uri uri, ContentValues contentValues) {
+        return "Insert { uri=" + uri + ", contentValues=" + contentValues + '}';
+    }
+
+    @Override
+    public int update(Uri uri,
+                      ContentValues values,
+                      @Nullable String selection,
+                      @Nullable String[] selectionArgs) {
+        if (mExpectedUpdates.isEmpty()) {
+            Assert.fail("Unexpected update. Actual: "
+                    + updateToString(uri, values, selection, selectionArgs));
+        }
+        for (Iterator<Update> iterator = mExpectedUpdates.iterator(); iterator.hasNext(); ) {
+            Update update = iterator.next();
+            if (update.equals(uri, values, selection, selectionArgs)) {
+                update.mIsExecuted = true;
+                if (!update.mAnyNumberOfTimes) {
+                    iterator.remove();
+                }
+                return update.mRowsAffected;
+            }
+        }
+
+        Assert.fail("Incorrect update. Expected one of: " + mExpectedUpdates + ". Actual: "
+                + updateToString(uri, values, selection, selectionArgs));
+        return - 1;
+    }
+
+    private String updateToString(Uri uri,
+                                  ContentValues contentValues,
+                                  @Nullable String selection,
+                                  @Nullable String[] selectionArgs) {
+        return "Update { uri=" + uri + ", contentValues=" + contentValues + ", selection=" +
+                selection + ", selectionArgs" + Arrays.toString(selectionArgs) + '}';
+    }
+
+    @Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        if (mExpectedDeletes.isEmpty()) {
+            Assert.fail("Unexpected delete. Actual: " + deleteToString(uri, selection,
+                    selectionArgs));
+        }
+        for (Iterator<Delete> iterator = mExpectedDeletes.iterator(); iterator.hasNext(); ) {
+            Delete delete = iterator.next();
+            if (delete.equals(uri, selection, selectionArgs)) {
+                delete.mIsExecuted = true;
+                if (!delete.mAnyNumberOfTimes) {
+                    iterator.remove();
+                }
+                return delete.mRowsAffected;
+            }
+        }
+        Assert.fail("Incorrect delete. Expected one of: " + mExpectedDeletes + ". Actual: "
+                + deleteToString(uri, selection, selectionArgs));
+        return -1;
+    }
+
+    private String deleteToString(Uri uri, String selection, String[] selectionArgs) {
+        return "Delete { uri=" + uri + ", selection=" + selection + ", selectionArgs"
+                + Arrays.toString(selectionArgs) + '}';
+    }
+
+    private static String queryToString(Uri uri, String[] projection, String selection,
+            String[] selectionArgs, String sortOrder) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(uri == null ? "<Any Uri>" : uri).append(" ");
+        if (projection != null) {
+            sb.append(Arrays.toString(projection));
+        } else {
+            sb.append("[]");
+        }
+        if (selection != null) {
+            sb.append(" selection: '").append(selection).append("'");
+            if (selectionArgs != null) {
+                sb.append(Arrays.toString(selectionArgs));
+            } else {
+                sb.append("[]");
+            }
+        }
+        if (sortOrder != null) {
+            sb.append(" sort: '").append(sortOrder).append("'");
+        }
+        return sb.toString();
+    }
+
+    public void verify() {
+        verifyQueries();
+        verifyInserts();
+        verifyDeletes();
+    }
+
+    private void verifyQueries() {
+        List<Query> missedQueries = new ArrayList<>();
+        for (Query query : mExpectedQueries) {
+            if (!query.mExecuted) {
+                missedQueries.add(query);
+            }
+        }
+        Assert.assertTrue("Not all expected queries have been called: " + missedQueries,
+                missedQueries.isEmpty());
+    }
+
+    private void verifyInserts() {
+        List<Insert> missedInserts = new ArrayList<>();
+        for (Insert insert : mExpectedInserts) {
+            if (!insert.mIsExecuted) {
+                missedInserts.add(insert);
+            }
+        }
+        Assert.assertTrue("Not all expected inserts have been called: " + missedInserts,
+                missedInserts.isEmpty());
+    }
+
+    private void verifyDeletes() {
+        List<Delete> missedDeletes = new ArrayList<>();
+        for (Delete delete : mExpectedDeletes) {
+            if (!delete.mIsExecuted) {
+                missedDeletes.add(delete);
+            }
+        }
+        Assert.assertTrue("Not all expected deletes have been called: " + missedDeletes,
+                missedDeletes.isEmpty());
+    }
+}
diff --git a/tests/src/com/android/contacts/test/mocks/MockSharedPreferences.java b/tests/src/com/android/contacts/test/mocks/MockSharedPreferences.java
new file mode 100644
index 0000000..787b905
--- /dev/null
+++ b/tests/src/com/android/contacts/test/mocks/MockSharedPreferences.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2010 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.test.mocks;
+
+import android.content.SharedPreferences;
+
+import com.google.common.collect.Maps;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+
+/**
+ * A programmable mock content provider.
+ */
+public class MockSharedPreferences implements SharedPreferences, SharedPreferences.Editor {
+
+    private HashMap<String, Object> mValues = Maps.newHashMap();
+    private HashMap<String, Object> mTempValues = Maps.newHashMap();
+
+    public Editor edit() {
+        return this;
+    }
+
+    public boolean contains(String key) {
+        return mValues.containsKey(key);
+    }
+
+    public Map<String, ?> getAll() {
+        return new HashMap<String, Object>(mValues);
+    }
+
+    public boolean getBoolean(String key, boolean defValue) {
+        if (mValues.containsKey(key)) {
+            return ((Boolean)mValues.get(key)).booleanValue();
+        }
+        return defValue;
+    }
+
+    public float getFloat(String key, float defValue) {
+        if (mValues.containsKey(key)) {
+            return ((Float)mValues.get(key)).floatValue();
+        }
+        return defValue;
+    }
+
+    public int getInt(String key, int defValue) {
+        if (mValues.containsKey(key)) {
+            return ((Integer)mValues.get(key)).intValue();
+        }
+        return defValue;
+    }
+
+    public long getLong(String key, long defValue) {
+        if (mValues.containsKey(key)) {
+            return ((Long)mValues.get(key)).longValue();
+        }
+        return defValue;
+    }
+
+    public String getString(String key, String defValue) {
+        if (mValues.containsKey(key))
+            return (String)mValues.get(key);
+        return defValue;
+    }
+
+    @SuppressWarnings("unchecked")
+    public Set<String> getStringSet(String key, Set<String> defValues) {
+        if (mValues.containsKey(key)) {
+            return (Set<String>) mValues.get(key);
+        }
+        return defValues;
+    }
+
+    public void registerOnSharedPreferenceChangeListener(
+            OnSharedPreferenceChangeListener listener) {
+        throw new UnsupportedOperationException();
+    }
+
+    public void unregisterOnSharedPreferenceChangeListener(
+            OnSharedPreferenceChangeListener listener) {
+        throw new UnsupportedOperationException();
+    }
+
+    public Editor putBoolean(String key, boolean value) {
+        mTempValues.put(key, Boolean.valueOf(value));
+        return this;
+    }
+
+    public Editor putFloat(String key, float value) {
+        mTempValues.put(key, value);
+        return this;
+    }
+
+    public Editor putInt(String key, int value) {
+        mTempValues.put(key, value);
+        return this;
+    }
+
+    public Editor putLong(String key, long value) {
+        mTempValues.put(key, value);
+        return this;
+    }
+
+    public Editor putString(String key, String value) {
+        mTempValues.put(key, value);
+        return this;
+    }
+
+    public Editor putStringSet(String key, Set<String> values) {
+        mTempValues.put(key, values);
+        return this;
+    }
+
+    public Editor remove(String key) {
+        mTempValues.remove(key);
+        return this;
+    }
+
+    public Editor clear() {
+        mTempValues.clear();
+        return this;
+    }
+
+    @SuppressWarnings("unchecked")
+    public boolean commit() {
+        mValues = (HashMap<String, Object>)mTempValues.clone();
+        return true;
+    }
+
+    public void apply() {
+        commit();
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/AccountsTestHelper.java b/tests/src/com/android/contacts/tests/AccountsTestHelper.java
new file mode 100644
index 0000000..2b2c16e
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/AccountsTestHelper.java
@@ -0,0 +1,139 @@
+/*
+ * 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.tests;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.os.Build;
+import android.provider.ContactsContract.RawContacts;
+import android.support.annotation.NonNull;
+import android.support.annotation.RequiresApi;
+import android.support.test.InstrumentationRegistry;
+
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@SuppressWarnings("MissingPermission")
+public class AccountsTestHelper {
+    private static final String TAG = "AccountsTestHelper";
+
+    public static final String TEST_ACCOUNT_TYPE = "com.android.contacts.tests.testauth.basic";
+
+    private final Context mContext;
+    private final AccountManager mAccountManager;
+    private final ContentResolver mResolver;
+
+    private List<Account> mAddedAccounts;
+
+    public AccountsTestHelper() {
+        // Use context instead of target context because the test package has the permissions needed
+        // to add and remove accounts.
+        this(InstrumentationRegistry.getContext());
+    }
+
+    public AccountsTestHelper(Context context) {
+        mContext = context;
+        mAccountManager = AccountManager.get(mContext);
+        mResolver = mContext.getContentResolver();
+        mAddedAccounts = new ArrayList<>();
+    }
+
+    public void addTestAccount(AccountWithDataSet account) {
+        Account newAccount = new Account(account.name, account.type);
+        assertTrue(mAccountManager.addAccountExplicitly(newAccount, null, null));
+        mAddedAccounts.add(newAccount);
+    }
+
+    public AccountWithDataSet addTestAccount() {
+        return addTestAccount(generateAccountName());
+    }
+
+    public AccountWithDataSet addTestAccount(@NonNull String name) {
+        // remember the most recent one. If the caller wants to add multiple accounts they will
+        // have to keep track of them themselves.
+        final AccountWithDataSet account = new AccountWithDataSet(name, TEST_ACCOUNT_TYPE, null);
+        addTestAccount(account);
+        return account;
+    }
+
+    public String generateAccountName(String prefix) {
+        return prefix + "_t" + System.nanoTime();
+    }
+
+    public String generateAccountName() {
+        return generateAccountName("test");
+    }
+
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
+    public void removeTestAccount(AccountWithDataSet account) {
+        final Account remove = account.getAccountOrNull();
+        mAccountManager.removeAccountExplicitly(remove);
+        mAddedAccounts.remove(remove);
+    }
+
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
+    public void removeTestAccount(String accountName) {
+        removeTestAccount(new AccountWithDataSet(accountName, TEST_ACCOUNT_TYPE, null));
+    }
+
+    public boolean hasTestAccount(String name) {
+        final List<Account> accounts = Arrays.asList(
+                mAccountManager.getAccountsByType(TEST_ACCOUNT_TYPE));
+        return accounts.contains(new Account(name, TEST_ACCOUNT_TYPE));
+    }
+
+    public void removeContactsForAccount(AccountWithDataSet account) {
+        mResolver.delete(RawContacts.CONTENT_URI,
+                RawContacts.ACCOUNT_NAME + "=? AND " + RawContacts.ACCOUNT_TYPE + "=?",
+                new String[] { account.name, account.type });
+    }
+
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
+    public void cleanup() {
+        // Note that we don't need to cleanup up the contact data associated with the account.
+        // CP2 will eventually do that automatically so as long as we're using unique account
+        // names we should be safe. Note that cleanup is not done synchronously when the account
+        // is removed so if multiple tests are using the same account name then the data should
+        // be manually deleted after each test run.
+
+        for (Account account : mAddedAccounts) {
+            mAccountManager.removeAccountExplicitly(account);
+        }
+        mAddedAccounts.clear();
+    }
+
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
+    public static void removeAccountsWithPrefix(Context context, String prefix) {
+        final AccountManager accountManager =
+                (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE);
+        final Account[] accounts = accountManager.getAccountsByType(TEST_ACCOUNT_TYPE);
+        for (Account account : accounts) {
+            if (account.name.startsWith(prefix)) {
+                accountManager.removeAccountExplicitly(account);
+            }
+        }
+
+
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/AdbHelpers.java b/tests/src/com/android/contacts/tests/AdbHelpers.java
new file mode 100644
index 0000000..59fc723
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/AdbHelpers.java
@@ -0,0 +1,100 @@
+/*
+ * 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.tests;
+
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.support.annotation.RequiresApi;
+import android.support.test.InstrumentationRegistry;
+import android.util.Log;
+
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.preference.ContactsPreferences;
+import com.android.contacts.util.SharedPreferenceUtil;
+
+/**
+ * Contains utility methods that can be invoked directly from adb using RunMethodInstrumentation.
+ *
+ * Example usage:
+ * adb shell am instrument -e method addTestAccount -e accountName fooAccount\
+ *   -w com.android.contacts.tests/com.android.contacts.RunMethodInstrumentation
+ */
+public class AdbHelpers {
+    private static final String TAG = "AdbHelpers";
+
+    public static void addTestAccount(Context context, Bundle args) {
+        final String accountName = args.getString("name");
+        if (accountName == null) {
+            Log.e(TAG, "args must contain extra \"name\"");
+            return;
+        }
+
+        new AccountsTestHelper(context).addTestAccount(accountName);
+    }
+
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
+    public static void removeTestAccount(Context context, Bundle args) {
+        final String accountName = args.getString("name");
+        if (accountName == null) {
+            Log.e(TAG, "args must contain extra \"name\"");
+            return;
+        }
+
+        final AccountWithDataSet account = new AccountWithDataSet(accountName,
+                AccountsTestHelper.TEST_ACCOUNT_TYPE, null);
+        new AccountsTestHelper(context).removeTestAccount(account);
+    }
+
+    public static void setDefaultAccount(Context context, Bundle args) {
+        final String name = args.getString("name");
+        final String type = args.getString("type");
+
+        if (name == null || type == null) {
+            Log.e(TAG, "args must contain extras \"name\" and \"type\"");
+            return;
+        }
+
+        new ContactsPreferences(context).setDefaultAccount(
+                new AccountWithDataSet(name, type, null));
+    }
+
+    public static void clearDefaultAccount(Context context) {
+        new ContactsPreferences(context).clearDefaultAccount();
+    }
+
+    public static void clearPreferences(Context context) {
+        SharedPreferenceUtil.clear(context);
+    }
+
+    public static void dumpPreferences(Context context) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "preferences=" + getAppContext().getSharedPreferences(
+                    getAppContext().getPackageName(), Context.MODE_PRIVATE).getAll());
+        }
+    }
+
+    public static void clearSimCard(Context context)
+            throws RemoteException, OperationApplicationException {
+        new SimContactsTestHelper(context).deleteAllSimContacts();
+    }
+
+    private static Context getAppContext() {
+        return InstrumentationRegistry.getTargetContext();
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/ContactsMatchers.java b/tests/src/com/android/contacts/tests/ContactsMatchers.java
new file mode 100644
index 0000000..77aed11
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/ContactsMatchers.java
@@ -0,0 +1,147 @@
+/*
+ * 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.tests;
+
+import static org.hamcrest.Matchers.allOf;
+
+import android.database.Cursor;
+import android.provider.ContactsContract;
+
+import com.android.contacts.model.SimContact;
+
+import org.hamcrest.BaseMatcher;
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+
+
+/**
+ * Has useful {@link org.hamcrest.Matchers}s for the Contacts app
+ */
+public class ContactsMatchers {
+
+    private ContactsMatchers() {
+    }
+
+    /**
+     * Matchers for {@link Cursor}s returned by queries to
+     * {@link android.provider.ContactsContract.Data#CONTENT_URI}
+     */
+    public static class DataCursor {
+
+        public static Matcher<Cursor> hasMimeType(String type) {
+            return hasValueForColumn(ContactsContract.Data.MIMETYPE, type);
+        }
+
+        public static Matcher<Cursor> hasName(final String name) {
+            return hasRowMatching(allOf(
+                    hasMimeType(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE),
+                    hasValueForColumn(
+                            ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)));
+        }
+
+        public static Matcher<Cursor> hasPhone(final String phone) {
+            return hasRowMatching(allOf(
+                    hasMimeType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE),
+                    hasValueForColumn(
+                            ContactsContract.CommonDataKinds.Phone.NUMBER, phone)));
+        }
+
+        public static Matcher<Cursor> hasEmail(final String email) {
+            return hasRowMatching(allOf(
+                    hasMimeType(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE),
+                    hasValueForColumn(
+                            ContactsContract.CommonDataKinds.Email.ADDRESS, email)));
+        }
+    }
+
+    public static Matcher<Cursor> hasCount(final int count) {
+        return new BaseMatcher<Cursor>() {
+            @Override
+            public boolean matches(Object o) {
+                if (!(o instanceof Cursor)) return false;
+                return ((Cursor)o).getCount() == count;
+            }
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("Cursor with " + count + " rows");
+            }
+        };
+    }
+
+    public static Matcher<Cursor> hasValueForColumn(final String column, final String value) {
+        return new BaseMatcher<Cursor>() {
+
+            @Override
+            public boolean matches(Object o) {
+                if (!(o instanceof Cursor)) return false;
+                final Cursor cursor = (Cursor)o;
+
+                final int index = cursor.getColumnIndexOrThrow(column);
+                return value.equals(cursor.getString(index));
+            }
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("Cursor with " + column + "=" + value);
+            }
+        };
+    }
+
+    public static Matcher<Cursor> hasRowMatching(final Matcher<Cursor> rowMatcher) {
+        return new BaseMatcher<Cursor>() {
+            @Override
+            public boolean matches(Object o) {
+                if (!(o instanceof Cursor)) return false;
+                final Cursor cursor = (Cursor)o;
+
+                cursor.moveToPosition(-1);
+                while (cursor.moveToNext()) {
+                    if (rowMatcher.matches(cursor)) return true;
+                }
+
+                return false;
+            }
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("Cursor with row matching ");
+                rowMatcher.describeTo(description);
+            }
+        };
+    }
+
+    public static Matcher<SimContact> isSimContactWithNameAndPhone(final String name,
+            final String phone) {
+        return new BaseMatcher<SimContact>() {
+            @Override
+            public boolean matches(Object o) {
+                if (!(o instanceof SimContact))  return false;
+
+                SimContact other = (SimContact) o;
+
+                return name.equals(other.getName())
+                        && phone.equals(other.getPhone());
+            }
+
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("SimContact with name=" + name + " and phone=" +
+                        phone);
+            }
+        };
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/FakeAccountType.java b/tests/src/com/android/contacts/tests/FakeAccountType.java
new file mode 100644
index 0000000..966c29f
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/FakeAccountType.java
@@ -0,0 +1,98 @@
+/*
+ * 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.tests;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.PixelFormat;
+import android.graphics.drawable.Drawable;
+
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+public class FakeAccountType extends AccountType {
+    public boolean areContactsWritable = false;
+    public boolean isGroupMembershipEditable = false;
+    public String displayLabel = "The Default Label";
+    public Drawable displayIcon = new Drawable() {
+        @Override
+        public void draw(Canvas canvas) {
+        }
+
+        @Override
+        public void setAlpha(int alpha) {
+        }
+
+        @Override
+        public void setColorFilter(ColorFilter colorFilter) {
+        }
+
+        @Override
+        public int getOpacity() {
+            return PixelFormat.OPAQUE;
+        }
+    };
+
+    public FakeAccountType() {
+    }
+
+    public FakeAccountType(String type) {
+        accountType = type;
+    }
+
+    @Override
+    public Drawable getDisplayIcon(Context context) {
+        return displayIcon;
+    }
+
+    @Override
+    public String getDisplayLabel(Context context) {
+        return displayLabel;
+    }
+
+    @Override
+    public boolean areContactsWritable() {
+        return areContactsWritable;
+    }
+
+    @Override
+    public boolean isGroupMembershipEditable() {
+        return isGroupMembershipEditable;
+    }
+
+    public static FakeAccountType create(String accountType, String label) {
+        final FakeAccountType result = new FakeAccountType();
+        result.accountType = accountType;
+        result.displayLabel = label;
+        return result;
+    }
+
+    public static FakeAccountType create(String accountType, String label, Drawable icon) {
+        final FakeAccountType result = new FakeAccountType();
+        result.accountType = accountType;
+        result.displayIcon = icon;
+        result.displayLabel = label;
+        return result;
+    }
+
+    public static AccountType create(AccountWithDataSet account, String label, Drawable icon) {
+        final FakeAccountType result = create(account.type, label, icon);
+        result.accountType = account.type;
+        result.dataSet = account.dataSet;
+        return result;
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/FakeDeviceAccountTypeFactory.java b/tests/src/com/android/contacts/tests/FakeDeviceAccountTypeFactory.java
new file mode 100644
index 0000000..9ed9595
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/FakeDeviceAccountTypeFactory.java
@@ -0,0 +1,73 @@
+/*
+ * 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.tests;
+
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.util.DeviceLocalAccountTypeFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class FakeDeviceAccountTypeFactory implements DeviceLocalAccountTypeFactory {
+
+    private final Map<String, AccountType> mDeviceAccountTypes = new HashMap<>();
+    private final Map<String, AccountType> mSimAccountTypes = new HashMap<>();
+
+    @Override
+    public int classifyAccount(String accountType) {
+        if (mDeviceAccountTypes.containsKey(accountType)) {
+            return TYPE_DEVICE;
+        } else if (mSimAccountTypes.containsKey(accountType)) {
+            return TYPE_SIM;
+        } else {
+            return TYPE_OTHER;
+        }
+    }
+
+    @Override
+    public AccountType getAccountType(String accountType) {
+        final AccountType type = mDeviceAccountTypes.get(accountType);
+        return type == null ? mSimAccountTypes.get(accountType) : type;
+    }
+
+    public FakeDeviceAccountTypeFactory withSimTypes(String... types) {
+        for (String type : types) {
+            mSimAccountTypes.put(type, new FakeAccountType(type));
+        }
+        return this;
+    }
+
+    public FakeDeviceAccountTypeFactory withSimTypes(AccountType... types) {
+        for (AccountType type : types) {
+            mSimAccountTypes.put(type.accountType, type);
+        }
+        return this;
+    }
+
+    public FakeDeviceAccountTypeFactory withDeviceTypes(String... types) {
+        for (String type : types) {
+            mDeviceAccountTypes.put(type, new FakeAccountType(type));
+        }
+        return this;
+    }
+
+    public FakeDeviceAccountTypeFactory withDeviceTypes(AccountType... types) {
+        for (AccountType type : types) {
+            mDeviceAccountTypes.put(type.accountType, type);
+        }
+        return this;
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/FakeSimContactDao.java b/tests/src/com/android/contacts/tests/FakeSimContactDao.java
new file mode 100644
index 0000000..c40ab25
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/FakeSimContactDao.java
@@ -0,0 +1,114 @@
+/*
+ * 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.tests;
+
+import android.content.ContentProviderResult;
+import android.content.OperationApplicationException;
+import android.os.RemoteException;
+
+import com.android.contacts.database.SimContactDao;
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+import com.android.contacts.model.account.AccountWithDataSet;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Fake implementation of SimContactDao for testing
+ */
+public class FakeSimContactDao extends SimContactDao {
+
+    public boolean canReadSimContacts = true;
+    public List<SimCard> simCards;
+    public Map<SimCard, ArrayList<SimContact>> simContacts;
+    public ContentProviderResult[] importResult;
+    public Map<AccountWithDataSet, Set<SimContact>> existingSimContacts;
+
+    public FakeSimContactDao() {
+        simCards = new ArrayList<>();
+        simContacts = new HashMap<>();
+        importResult = new ContentProviderResult[0];
+        existingSimContacts = new HashMap<>();
+    }
+
+    @Override
+    public boolean canReadSimContacts() {
+        return canReadSimContacts;
+    }
+
+    @Override
+    public List<SimCard> getSimCards() {
+        return simCards;
+    }
+
+    @Override
+    public ArrayList<SimContact> loadContactsForSim(SimCard sim) {
+        return simContacts.get(sim);
+    }
+
+    @Override
+    public ContentProviderResult[] importContacts(List<SimContact> contacts,
+            AccountWithDataSet targetAccount)
+            throws RemoteException, OperationApplicationException {
+        return importResult;
+    }
+
+    @Override
+    public void persistSimStates(List<SimCard> simCards) {
+        this.simCards = simCards;
+    }
+
+    @Override
+    public SimCard getSimBySubscriptionId(int subscriptionId) {
+        if (subscriptionId == SimCard.NO_SUBSCRIPTION_ID) {
+            return simCards.get(0);
+        }
+        for (SimCard sim : simCards) {
+            if (sim.getSubscriptionId() == subscriptionId) {
+                return sim;
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public Map<AccountWithDataSet, Set<SimContact>> findAccountsOfExistingSimContacts(
+            List<SimContact> contacts) {
+        return existingSimContacts;
+    }
+
+    public FakeSimContactDao addSim(SimCard sim, SimContact... contacts) {
+        simCards.add(sim);
+        simContacts.put(sim, new ArrayList<>(Arrays.asList(contacts)));
+        return this;
+    }
+
+    public static FakeSimContactDao singleSimWithContacts(SimCard sim, SimContact... contacts) {
+        return new FakeSimContactDao().addSim(sim, contacts);
+    }
+
+    public static FakeSimContactDao noSim() {
+        FakeSimContactDao result = new FakeSimContactDao();
+        result.canReadSimContacts = false;
+        return result;
+    }
+
+}
diff --git a/tests/src/com/android/contacts/tests/PhoneNumberTestService.java b/tests/src/com/android/contacts/tests/PhoneNumberTestService.java
index d5fee92..d8ba9b2 100644
--- a/tests/src/com/android/contacts/tests/PhoneNumberTestService.java
+++ b/tests/src/com/android/contacts/tests/PhoneNumberTestService.java
@@ -17,12 +17,12 @@
 package com.android.contacts.tests;
 
 import android.app.IntentService;
-import android.content.Context;
 import android.content.Intent;
 import android.telephony.PhoneNumberUtils;
 import android.util.Log;
 
-import com.android.contacts.common.GeoUtil;
+import com.android.contacts.GeoUtil;
+
 import com.google.i18n.phonenumbers.NumberParseException;
 import com.google.i18n.phonenumbers.PhoneNumberUtil;
 import com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat;
diff --git a/tests/src/com/android/contacts/tests/SimContactsTestHelper.java b/tests/src/com/android/contacts/tests/SimContactsTestHelper.java
new file mode 100644
index 0000000..ab10ed5
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/SimContactsTestHelper.java
@@ -0,0 +1,179 @@
+/*
+ * 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.tests;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assume.assumeThat;
+import static org.junit.Assume.assumeTrue;
+
+import android.content.ContentProviderOperation;
+import android.content.ContentProviderResult;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.RemoteException;
+import android.support.annotation.NonNull;
+import android.support.test.InstrumentationRegistry;
+import android.telephony.TelephonyManager;
+
+import com.android.contacts.database.SimContactDao;
+import com.android.contacts.database.SimContactDaoImpl;
+import com.android.contacts.model.SimCard;
+import com.android.contacts.model.SimContact;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SimContactsTestHelper {
+
+    private final Context mContext;
+    private final TelephonyManager mTelephonyManager;
+    private final ContentResolver mResolver;
+    private final SimContactDao mSimDao;
+
+    public SimContactsTestHelper() {
+        this(InstrumentationRegistry.getTargetContext());
+    }
+
+    public SimContactsTestHelper(Context context) {
+        mContext = context;
+        mResolver = context.getContentResolver();
+        mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        mSimDao = SimContactDao.create(context);
+    }
+
+    public int getSimContactCount() {
+        Cursor cursor = mContext.getContentResolver().query(SimContactDaoImpl.ICC_CONTENT_URI,
+                null, null, null, null);
+        try {
+            return cursor.getCount();
+        } finally {
+            cursor.close();
+        }
+    }
+
+    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);
+        }
+        if (number != null) {
+            values.put(SimContactDaoImpl.NUMBER, number);
+        }
+        return mResolver.insert(SimContactDaoImpl.ICC_CONTENT_URI, values);
+    }
+
+    public ContentProviderResult[] deleteAllSimContacts()
+            throws RemoteException, OperationApplicationException {
+        final List<SimCard> sims = mSimDao.getSimCards();
+        if (sims.isEmpty()) {
+            throw new IllegalStateException("Expected SIM card");
+        }
+        final List<SimContact> contacts = mSimDao.loadContactsForSim(sims.get(0));
+        ArrayList<ContentProviderOperation> ops = new ArrayList<>();
+        for (SimContact contact : contacts) {
+            ops.add(ContentProviderOperation
+                    .newDelete(SimContactDaoImpl.ICC_CONTENT_URI)
+                    .withSelection(getWriteSelection(contact), null)
+                    .build());
+        }
+        return mResolver.applyBatch(SimContactDaoImpl.ICC_CONTENT_URI.getAuthority(), ops);
+    }
+
+    public ContentProviderResult[] restore(ArrayList<ContentProviderOperation> restoreOps)
+            throws RemoteException, OperationApplicationException {
+        if (restoreOps == null) return null;
+
+        // 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);
+    }
+
+    public ArrayList<ContentProviderOperation> captureRestoreSnapshot() {
+        final List<SimCard> sims = mSimDao.getSimCards();
+        if (sims.isEmpty()) {
+            throw new IllegalStateException("Expected SIM card");
+        }
+        final ArrayList<SimContact> contacts = mSimDao.loadContactsForSim(sims.get(0));
+
+        final ArrayList<ContentProviderOperation> ops = new ArrayList<>();
+        for (SimContact contact : contacts) {
+            final String[] emails = contact.getEmails();
+            if (emails != null && emails.length > 0) {
+                throw new IllegalStateException("Cannot restore emails." +
+                        " Please manually remove SIM contacts with emails.");
+            }
+            ops.add(ContentProviderOperation
+                    .newInsert(SimContactDaoImpl.ICC_CONTENT_URI)
+                    .withValue("tag", contact.getName())
+                    .withValue("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 boolean isSimReady() {
+        return mTelephonyManager.getSimState() == TelephonyManager.SIM_STATE_READY;
+    }
+
+    public boolean doesSimHaveContacts() {
+        return isSimReady() && getSimContactCount() > 0;
+    }
+
+    public boolean isSimWritable() {
+        if (!isSimReady()) return false;
+        final String name = "writabeProbe" + System.nanoTime();
+        final Uri uri = addSimContact(name, "15095550101");
+        return uri != null && deleteSimContact(name, "15095550101") == 1;
+    }
+
+    public void assumeSimReady() {
+        assumeTrue(isSimReady());
+    }
+
+    public void assumeHasSimContacts() {
+        assumeTrue(doesSimHaveContacts());
+    }
+
+    public void assumeSimCardAbsent() {
+        assumeThat(mTelephonyManager.getSimState(), equalTo(TelephonyManager.SIM_STATE_ABSENT));
+    }
+
+    // The emulator reports SIM_STATE_READY but writes are ignored. This verifies that the
+    // device will actually persist writes to the SIM card.
+    public void assumeSimWritable() {
+        assumeSimReady();
+        assumeTrue(isSimWritable());
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/StringableCursor.java b/tests/src/com/android/contacts/tests/StringableCursor.java
new file mode 100644
index 0000000..dbe3fca
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/StringableCursor.java
@@ -0,0 +1,42 @@
+/*
+ * 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.tests;
+
+import android.database.Cursor;
+import android.database.CursorWrapper;
+import android.database.DatabaseUtils;
+
+/**
+ * Wrapper around a cursor with a custom toString that dumps the entire cursor data
+ *
+ * This is for providing more useful info during debugging and testing.
+ */
+public class StringableCursor extends CursorWrapper {
+    public StringableCursor(Cursor cursor) {
+        super(cursor);
+    }
+
+    @Override
+    public String toString() {
+        final Cursor wrapped = getWrappedCursor();
+
+        if (wrapped.getCount() == 0) {
+            return "Empty Cursor";
+        }
+
+        return DatabaseUtils.dumpCursorToString(wrapped);
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java b/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
index f0b285b..ba18d6f 100644
--- a/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
+++ b/tests/src/com/android/contacts/tests/allintents/AllIntentsActivity.java
@@ -35,6 +35,7 @@
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.Groups;
 import android.provider.ContactsContract.Intents;
 import android.provider.ContactsContract.Intents.Insert;
 import android.provider.ContactsContract.RawContacts;
@@ -43,6 +44,8 @@
 import android.widget.ListView;
 import android.widget.Toast;
 
+import com.android.contacts.group.GroupUtil;
+import com.android.contacts.list.UiIntentActions;
 import com.android.contacts.tests.R;
 import com.android.contacts.tests.quickcontact.QuickContactTestsActivity;
 
@@ -65,7 +68,6 @@
             "com.android.contacts.activities.PeopleActivity";
 
     public enum ContactsIntent {
-        VIEW_CONTACT_WITHOUT_ID,
         ACTION_PICK_CONTACT,
         ACTION_PICK_CONTACT_LEGACY,
         ACTION_PICK_PHONE,
@@ -85,10 +87,12 @@
         ACTION_INSERT_OR_EDIT,
         ACTION_INSERT_OR_EDIT_PHONE_NUMBER,
         ACTION_INSERT_OR_EDIT_EMAIL_ADDRESS,
+        ACTION_INSERT_GROUP,
         ACTION_SEARCH_CALL,
         ACTION_SEARCH_CONTACT,
         ACTION_SEARCH_EMAIL,
         ACTION_SEARCH_PHONE,
+        ACTION_SEARCH_GENERAL,
         SEARCH_SUGGESTION_CLICKED_CONTACT,
         EDIT_CONTACT,
         EDIT_CONTACT_LOOKUP,
@@ -101,12 +105,23 @@
         EDIT_NEW_CONTACT_FOR_ACCOUNT_WITH_DATA,
         EDIT_NEW_RAW_CONTACT,
         EDIT_NEW_LEGACY,
+        EDIT_GROUP,
+        VIEW_CONTACT_WITHOUT_ID,
+        VIEW_PERSON_WITHOUT_ID,
         VIEW_CONTACT,
         VIEW_CONTACT_LOOKUP,
         VIEW_CONTACT_LOOKUP_ID,
         VIEW_RAW_CONTACT,
         VIEW_LEGACY,
-        QUICK_CONTACT_TESTS_ACTIVITY;
+        VIEW_GROUP,
+        QUICK_CONTACT_TESTS_ACTIVITY,
+        LIST_DEFAULT,
+        LIST_CONTACTS,
+        LIST_ALL_CONTACTS,
+        LIST_CONTACTS_WITH_PHONES,
+        LIST_STARRED,
+        LIST_FREQUENT,
+        LIST_STREQUENT;
 
         public static ContactsIntent get(int ordinal) {
             return values()[ordinal];
@@ -238,6 +253,12 @@
                 startActivity(intent);
                 break;
             }
+            case ACTION_INSERT_GROUP: {
+                final Intent intent = new Intent(Intent.ACTION_INSERT);
+                intent.setType(Groups.CONTENT_TYPE);
+                startActivity(intent);
+                break;
+            }
             case ACTION_SEARCH_CALL: {
                 Intent intent = new Intent(Intent.ACTION_SEARCH);
                 intent.putExtra(SearchManager.ACTION_MSG, "call");
@@ -264,6 +285,12 @@
                 startSearchResultActivity(intent);
                 break;
             }
+            case ACTION_SEARCH_GENERAL: {
+                Intent intent = new Intent(Intent.ACTION_SEARCH);
+                intent.putExtra(SearchManager.QUERY, "a");
+                startSearchResultActivity(intent);
+                break;
+            }
             case SEARCH_SUGGESTION_CLICKED_CONTACT: {
                 long contactId = findArbitraryContactWithPhoneNumber();
                 if (contactId != -1) {
@@ -358,6 +385,13 @@
                 startActivity(new Intent(Intent.ACTION_INSERT, legacyContentUri));
                 break;
             }
+            case EDIT_GROUP: {
+                final Intent intent = findArbitraryGroupIntent(Intent.ACTION_EDIT);
+                if (intent != null) {
+                    startActivity(intent);
+                }
+                break;
+            }
             case VIEW_CONTACT: {
                 final long contactId = findArbitraryContactWithPhoneNumber();
                 if (contactId != -1) {
@@ -371,6 +405,12 @@
                 startActivity(new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI));
                 break;
             }
+            case VIEW_PERSON_WITHOUT_ID: {
+                Intent intent = new Intent(Intent.ACTION_VIEW);
+                intent.setType("vnd.android.cursor.dir/person");
+                startActivity(intent);
+                break;
+            }
             case VIEW_CONTACT_LOOKUP: {
                 final long contactId = findArbitraryContactWithPhoneNumber();
                 if (contactId != -1) {
@@ -420,10 +460,45 @@
                 }
                 break;
             }
+            case VIEW_GROUP: {
+                final Intent intent = findArbitraryGroupIntent(Intent.ACTION_VIEW);
+                if (intent != null) {
+                    startActivity(intent);
+                }
+                break;
+            }
             case QUICK_CONTACT_TESTS_ACTIVITY: {
                 startActivity(new Intent(this, QuickContactTestsActivity.class));
                 break;
             }
+            case LIST_DEFAULT: {
+                startActivity(new Intent(UiIntentActions.LIST_DEFAULT));
+                break;
+            }
+            case LIST_CONTACTS: {
+                startActivity(new Intent(UiIntentActions.LIST_CONTACTS));
+                break;
+            }
+            case LIST_ALL_CONTACTS: {
+                startActivity(new Intent(UiIntentActions.LIST_ALL_CONTACTS_ACTION));
+                break;
+            }
+            case LIST_CONTACTS_WITH_PHONES: {
+                startActivity(new Intent(UiIntentActions.LIST_CONTACTS_WITH_PHONES_ACTION));
+                break;
+            }
+            case LIST_STARRED: {
+                startActivity(new Intent(UiIntentActions.LIST_STARRED_ACTION));
+                break;
+            }
+            case LIST_FREQUENT: {
+                startActivity(new Intent(UiIntentActions.LIST_FREQUENT_ACTION));
+                break;
+            }
+            case LIST_STREQUENT: {
+                startActivity(new Intent(UiIntentActions.LIST_STREQUENT_ACTION));
+                break;
+            }
 
             default: {
                 Toast.makeText(this, "Sorry, we forgot to write this...", Toast.LENGTH_LONG).show();
@@ -496,6 +571,34 @@
         return -1;
     }
 
+    private Intent findArbitraryGroupIntent(String action) {
+        final long groupId = findArbitraryGroup();
+        if (groupId == -1) return  null;
+        final Intent intent = new Intent(action) ;
+        intent.setData(ContentUris.withAppendedId(Groups.CONTENT_URI, groupId));
+        // TODO: ContactsProvider2#getType does handle the group mimetype
+        intent.setClassName("com.google.android.contacts",
+                "com.android.contacts.activities.PeopleActivity");
+        return intent;
+    }
+
+    private long findArbitraryGroup() {
+        final Cursor cursor = getContentResolver().query(Groups.CONTENT_URI,
+                new String[] { Groups._ID },
+                GroupUtil.DEFAULT_SELECTION,
+                null,
+                "RANDOM() LIMIT 1");
+        try {
+            if (cursor.moveToFirst()) {
+                return cursor.getLong(0);
+            }
+        } finally {
+            cursor.close();
+        }
+        Toast.makeText(this, "Failed to find any group. Aborting.", Toast.LENGTH_SHORT).show();
+        return -1;
+    }
+
     @Override
     public void onAccountChosen(Account account, String dataSet, int tag) {
         switch (ContactsIntent.get(tag)) {
diff --git a/tests/src/com/android/contacts/tests/allintents/SelectAccountDialogFragment.java b/tests/src/com/android/contacts/tests/allintents/SelectAccountDialogFragment.java
index f0c2df4..10661db 100644
--- a/tests/src/com/android/contacts/tests/allintents/SelectAccountDialogFragment.java
+++ b/tests/src/com/android/contacts/tests/allintents/SelectAccountDialogFragment.java
@@ -35,7 +35,7 @@
  * Does not perform any action by itself.
  */
 public class SelectAccountDialogFragment extends DialogFragment {
-    public static final String TAG = "SelectAccountDialogFragment";
+    public static final String TAG = "SelectAccountDialog";
 
     private static final String EXTRA_TAG = "tag";
 
diff --git a/tests/src/com/android/contacts/tests/testauth/TestAuthenticationService.java b/tests/src/com/android/contacts/tests/testauth/TestAuthenticationService.java
new file mode 100644
index 0000000..bcc3f54
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/testauth/TestAuthenticationService.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2011 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.tests.testauth;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+import android.util.Log;
+
+public abstract class TestAuthenticationService extends Service {
+
+    private TestAuthenticator mAuthenticator;
+
+    @Override
+    public void onCreate() {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, this + " Service started.");
+        }
+        mAuthenticator = new TestAuthenticator(this);
+    }
+
+    @Override
+    public void onDestroy() {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, this + " Service stopped.");
+        }
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, this + " getBinder() intent=" + intent);
+        }
+        return mAuthenticator.getIBinder();
+    }
+
+    public static class Basic extends TestAuthenticationService {
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/testauth/TestAuthenticator.java b/tests/src/com/android/contacts/tests/testauth/TestAuthenticator.java
new file mode 100644
index 0000000..9afcb9e
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/testauth/TestAuthenticator.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2011 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.tests.testauth;
+
+import android.accounts.AbstractAccountAuthenticator;
+import android.accounts.Account;
+import android.accounts.AccountAuthenticatorResponse;
+import android.accounts.AccountManager;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.util.Log;
+
+/**
+ * Simple authenticator.  It has no "login" dialogs/activities.  When you add a new account, it'll
+ * just create a new account with a unique name.
+ */
+class TestAuthenticator extends AbstractAccountAuthenticator {
+    private static final String PASSWORD = "xxx"; // any string will do.
+
+    // To remember the last user-ID.
+    private static final String PREF_KEY_LAST_USER_ID = "TestAuthenticator.PREF_KEY_LAST_USER_ID";
+
+    private final Context mContext;
+
+    public TestAuthenticator(Context context) {
+        super(context);
+        mContext = context.getApplicationContext();
+    }
+
+    /**
+     * @return a new, unique username.
+     */
+    private String newUniqueUserName() {
+        final SharedPreferences prefs =
+                PreferenceManager.getDefaultSharedPreferences(mContext);
+        final int nextId = prefs.getInt(PREF_KEY_LAST_USER_ID, 0) + 1;
+        prefs.edit().putInt(PREF_KEY_LAST_USER_ID, nextId).apply();
+
+        return "User-" + nextId;
+    }
+
+    /**
+     * Create a new account with the name generated by {@link #newUniqueUserName()}.
+     */
+    @Override
+    public Bundle addAccount(AccountAuthenticatorResponse response, String accountType,
+            String authTokenType, String[] requiredFeatures, Bundle options) {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "addAccount() type=" + accountType);
+        }
+        final Bundle bundle = new Bundle();
+
+        final Account account = new Account(newUniqueUserName(), accountType);
+
+        // Create an account.
+        AccountManager.get(mContext).addAccountExplicitly(account, PASSWORD, null);
+
+        // And return it.
+        bundle.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
+        bundle.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
+        return bundle;
+    }
+
+    /**
+     * Just return the user name as the authtoken.
+     */
+    @Override
+    public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account,
+            String authTokenType, Bundle loginOptions) {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "getAuthToken() account=" + account);
+        }
+        final Bundle bundle = new Bundle();
+        bundle.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
+        bundle.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
+        bundle.putString(AccountManager.KEY_AUTHTOKEN, account.name);
+
+        return bundle;
+    }
+
+    @Override
+    public Bundle confirmCredentials(
+            AccountAuthenticatorResponse response, Account account, Bundle options) {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "confirmCredentials()");
+        }
+        return null;
+    }
+
+    @Override
+    public Bundle editProperties(AccountAuthenticatorResponse response, String accountType) {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "editProperties()");
+        }
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public String getAuthTokenLabel(String authTokenType) {
+        // null means we don't support multiple authToken types
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "getAuthTokenLabel()");
+        }
+        return null;
+    }
+
+    @Override
+    public Bundle hasFeatures(
+            AccountAuthenticatorResponse response, Account account, String[] features) {
+        // This call is used to query whether the Authenticator supports
+        // specific features. We don't expect to get called, so we always
+        // return false (no) for any queries.
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "hasFeatures()");
+        }
+        final Bundle result = new Bundle();
+        result.putBoolean(AccountManager.KEY_BOOLEAN_RESULT, false);
+        return result;
+    }
+
+    @Override
+    public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account,
+            String authTokenType, Bundle loginOptions) {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "updateCredentials()");
+        }
+        return null;
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/testauth/TestSyncAdapter.java b/tests/src/com/android/contacts/tests/testauth/TestSyncAdapter.java
new file mode 100644
index 0000000..859864b
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/testauth/TestSyncAdapter.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2011 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.tests.testauth;
+
+import android.accounts.Account;
+import android.content.AbstractThreadedSyncAdapter;
+import android.content.ContentProviderClient;
+import android.content.ContentProviderOperation;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.SyncResult;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.RawContacts;
+import android.util.Log;
+
+import java.util.ArrayList;
+
+/**
+ * Simple (minimal) sync adapter.
+ *
+ */
+public class TestSyncAdapter extends AbstractThreadedSyncAdapter {
+
+    private static final String TEXT_CONTENT_ITEM_TYPE =
+            "vnd.android.cursor.item/vnd.contactstest.profile";
+
+    private final Context mContext;
+
+    public TestSyncAdapter(Context context, boolean autoInitialize) {
+        super(context, autoInitialize);
+        mContext = context.getApplicationContext();
+    }
+
+    /**
+     * Doesn't actually sync, but sweep up all existing local-only contacts.
+     */
+    @Override
+    public void onPerformSync(Account account, Bundle extras, String authority,
+            ContentProviderClient provider, SyncResult syncResult) {
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "TestSyncAdapter.onPerformSync() account=" + account);
+        }
+
+        final ArrayList<ContentProviderOperation> ops = new ArrayList<>();
+
+        final ContentResolver contentResolver = mContext.getContentResolver();
+        final Cursor cursor = contentResolver.query(RawContacts.CONTENT_URI,
+                new String[] { RawContacts._ID },
+                RawContacts.ACCOUNT_NAME + " IS NULL AND " + RawContacts.ACCOUNT_TYPE + " IS NULL",
+                null, null);
+        try {
+            while (cursor.moveToNext()) {
+                final String rawContactId = Long.toString(cursor.getLong(0));
+
+                // Claim all local-only contacts for the test account
+                ops.add(ContentProviderOperation.newUpdate(RawContacts.CONTENT_URI)
+                        .withValue(RawContacts.ACCOUNT_NAME, account.name)
+                        .withValue(RawContacts.ACCOUNT_TYPE, account.type)
+                        .withSelection(RawContacts._ID+"=?", new String[] { rawContactId })
+                        .build());
+
+                // Create custom QuickContact action data rows
+                final Uri dataUri = Data.CONTENT_URI.buildUpon()
+                        .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
+                        .build();
+                ops.add(ContentProviderOperation.newInsert(dataUri)
+                        .withValue(Data.RAW_CONTACT_ID, rawContactId)
+                        .withValue(Data.MIMETYPE, TEXT_CONTENT_ITEM_TYPE)
+                        .withValue(Data.DATA3, "Contacts test action")
+                        .withValue(Data.DATA5, "view")
+                        .build());
+            }
+        } finally {
+            cursor.close();
+        }
+        if (ops.isEmpty()) return;
+
+        // TODO: Clear isDirty flag
+        // TODO: Remove isDeleted raw contacts
+
+        if (Log.isLoggable(TestauthConstants.LOG_TAG, Log.VERBOSE)) {
+            Log.v(TestauthConstants.LOG_TAG, "Claiming " + ops.size() + " local raw contacts");
+            for (ContentProviderOperation op : ops) {
+                Log.v(TestauthConstants.LOG_TAG, op.toString());
+            }
+        }
+        try {
+            contentResolver.applyBatch(ContactsContract.AUTHORITY, ops);
+        } catch (Exception e ) {
+            Log.e(TestauthConstants.LOG_TAG, "Failed to claim local raw contacts", e);
+        }
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/testauth/TestSyncService.java b/tests/src/com/android/contacts/tests/testauth/TestSyncService.java
new file mode 100644
index 0000000..9928777
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/testauth/TestSyncService.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2011 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.tests.testauth;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+public abstract class TestSyncService extends Service {
+
+    private static TestSyncAdapter sSyncAdapter;
+
+    @Override
+    public void onCreate() {
+        if (sSyncAdapter == null) {
+            sSyncAdapter = new TestSyncAdapter(getApplicationContext(), true);
+        }
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return sSyncAdapter.getSyncAdapterBinder();
+    }
+
+    public static class Basic extends TestSyncService {
+    }
+}
diff --git a/tests/src/com/android/contacts/tests/testauth/TestauthConstants.java b/tests/src/com/android/contacts/tests/testauth/TestauthConstants.java
new file mode 100644
index 0000000..717ed35
--- /dev/null
+++ b/tests/src/com/android/contacts/tests/testauth/TestauthConstants.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2011 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.tests.testauth;
+
+class TestauthConstants {
+    public static final String LOG_TAG = "Testauth";
+}
diff --git a/tests/src/com/android/contacts/util/AccountDisplayInfoFactoryTests.java b/tests/src/com/android/contacts/util/AccountDisplayInfoFactoryTests.java
new file mode 100644
index 0000000..ca6d165
--- /dev/null
+++ b/tests/src/com/android/contacts/util/AccountDisplayInfoFactoryTests.java
@@ -0,0 +1,204 @@
+/*
+ * 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.util;
+
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.PixelFormat;
+import android.graphics.drawable.Drawable;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.model.AccountTypeManager;
+import com.android.contacts.model.account.AccountDisplayInfo;
+import com.android.contacts.model.account.AccountDisplayInfoFactory;
+import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
+import com.android.contacts.test.mocks.MockAccountTypeManager;
+import com.android.contacts.tests.FakeAccountType;
+import com.android.contacts.tests.FakeDeviceAccountTypeFactory;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+@SmallTest
+public class AccountDisplayInfoFactoryTests extends AndroidTestCase {
+
+    private Map<AccountWithDataSet, AccountType> mKnownTypes;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mKnownTypes = new HashMap<>();
+    }
+
+    public void test_displayableAccount_hasIconFromAccountType() {
+        final Drawable comExampleIcon = someDrawable();
+
+        addTypeMapping(account("user", "com.example"), "title", comExampleIcon);
+        addTypeMapping(account(null, null), "device", someDrawable());
+        addTypeMapping(account("foo", "bar.type"), "bar", someDrawable());
+        addTypeMapping(account("user2", "com.example"), "title", comExampleIcon);
+
+        final AccountDisplayInfoFactory sut = createFactoryForKnownTypes();
+
+        final AccountDisplayInfo displayable = sut.getAccountDisplayInfo(
+                account("user", "com.example"));
+        assertEquals(comExampleIcon, displayable.getIcon());
+    }
+
+    public void test_displayableAccount_hasNameFromAccount() {
+        final Drawable comExampleIcon = someDrawable();
+
+        addTypeMapping(account("user@example.com", "com.example"), "title", comExampleIcon);
+        addTypeMapping(account(null, null), "device", someDrawable());
+        addTypeMapping(account("foo", "bar.type"), "bar", someDrawable());
+        addTypeMapping(account("user2@example.com", "com.example"), "title", comExampleIcon);
+
+        final AccountDisplayInfoFactory sut = createFactoryForKnownTypes();
+
+        final AccountDisplayInfo displayable = sut.getAccountDisplayInfo(
+                account("user@example.com", "com.example"));
+        assertEquals("user@example.com", displayable.getNameLabel());
+    }
+
+    public void test_displayableAccountForNullAccount_hasNameFromAccountType() {
+        addSomeKnownAccounts();
+        addTypeMapping(account(null, null), "Device Display Label", someDrawable());
+
+        final AccountDisplayInfoFactory sut = createFactoryForKnownTypes();
+
+        final AccountDisplayInfo displayable = sut.getAccountDisplayInfo(
+                account(null, null));
+        assertEquals("Device Display Label", displayable.getNameLabel());
+    }
+
+    public void test_displayableAccountForDeviceAccount_hasNameFromAccountType() {
+        addSomeKnownAccounts();
+        addTypeMapping(account("some.device.account.name", "device.account.type"), "Device Label",
+                someDrawable());
+
+        final AccountDisplayInfoFactory sut = createFactoryForKnownTypes(
+                new FakeDeviceAccountTypeFactory().withDeviceTypes("device.account.type"));
+
+        final AccountDisplayInfo displayable = sut.getAccountDisplayInfo(
+                account("some.device.account.name", "device.account.type"));
+        assertEquals("Device Label", displayable.getNameLabel());
+    }
+
+    public void test_displayableAccountForDeviceAccountWhenMultiple_hasNameFromAccount() {
+        addSomeKnownAccounts();
+        addTypeMapping(account("first.device.account.name", "a.device.account.type"),
+                "Device Display Label", someDrawable());
+        addTypeMapping(account("second.device.account.name", "b.device.account.type"),
+                "Device Display Label", someDrawable());
+        addTypeMapping(account("another.device.account.name", "a.device.account.type"),
+                "Device Display Label", someDrawable());
+
+        final AccountDisplayInfoFactory sut = createFactoryForKnownTypes(
+                new FakeDeviceAccountTypeFactory().withDeviceTypes("a.device.account.type",
+                        "b.device.account.type"));
+
+        final AccountDisplayInfo displayable = sut.getAccountDisplayInfo(
+                account("first.device.account.name", "a.device.account.type"));
+        assertEquals("first.device.account.name", displayable.getNameLabel());
+
+        final AccountDisplayInfo displayable2 = sut.getAccountDisplayInfo(
+                account("second.device.account.name", "b.device.account.type"));
+        assertEquals("second.device.account.name", displayable2.getNameLabel());
+    }
+
+    public void test_displayableAccountForSimAccount_hasNameFromAccountType() {
+        addSomeKnownAccounts();
+        addTypeMapping(account("sim.account.name", "sim.account.type"), "SIM", someDrawable());
+
+        final AccountDisplayInfoFactory sut = createFactoryForKnownTypes(
+                new FakeDeviceAccountTypeFactory().withSimTypes("sim.account.type"));
+
+        final AccountDisplayInfo displayable = sut.getAccountDisplayInfo(
+                account("sim.account.name", "sim.account.type"));
+        assertEquals("SIM", displayable.getNameLabel());
+    }
+
+    public void test_displayableAccountForSimAccountWhenMultiple_hasNameFromAccount() {
+        addSomeKnownAccounts();
+        addTypeMapping(account("sim.account.name", "sim.account.type"), "SIM", someDrawable());
+        addTypeMapping(account("sim2.account.name", "sim.account.type"), "SIM", someDrawable());
+
+        final AccountDisplayInfoFactory sut = createFactoryForKnownTypes(
+                new FakeDeviceAccountTypeFactory().withSimTypes("sim.account.type"));
+
+        final AccountDisplayInfo displayable = sut.getAccountDisplayInfo(
+                account("sim.account.name", "sim.account.type"));
+        assertEquals("sim.account.name", displayable.getNameLabel());
+    }
+
+    private void addSomeKnownAccounts() {
+        final Drawable comExampleIcon = someDrawable();
+        addTypeMapping(account("user@example.com", "com.example"), "Example Title", comExampleIcon);
+        addTypeMapping(account("foo", "bar.type"), "Bar", someDrawable());
+        addTypeMapping(account("user2@example.com", "com.example"), "Example Title", comExampleIcon);
+        addTypeMapping(account("user", "com.example.two"), "Some Account", someDrawable());
+    }
+
+    private AccountDisplayInfoFactory createFactoryForKnownTypes() {
+        return createFactoryForKnownTypes(new DeviceLocalAccountTypeFactory.Default(getContext()));
+    }
+
+    private AccountDisplayInfoFactory createFactoryForKnownTypes(DeviceLocalAccountTypeFactory
+            typeFactory) {
+        return new AccountDisplayInfoFactory(getContext(),
+                createFakeAccountTypeManager(mKnownTypes), typeFactory,
+                new ArrayList<>(mKnownTypes.keySet()));
+    }
+
+    private AccountWithDataSet account(String name, String type) {
+        return new AccountWithDataSet(name, type, /* dataSet */ null);
+    }
+
+    private void addTypeMapping(AccountWithDataSet account, String label, Drawable icon) {
+        mKnownTypes.put(account, FakeAccountType.create(account, label, icon));
+    }
+
+    private AccountTypeManager createFakeAccountTypeManager(
+            final Map<AccountWithDataSet, AccountType> mapping) {
+        return new MockAccountTypeManager(mapping.values().toArray(new AccountType[mapping.size()]),
+                mapping.keySet().toArray(new AccountWithDataSet[mapping.size()]));
+    }
+
+    private Drawable someDrawable() {
+        return new Drawable() {
+            @Override
+            public void draw(Canvas canvas) {
+            }
+
+            @Override
+            public void setAlpha(int i) {
+            }
+
+            @Override
+            public void setColorFilter(ColorFilter colorFilter) {
+            }
+
+            @Override
+            public int getOpacity() {
+                return PixelFormat.OPAQUE;
+            }
+        };
+    }
+
+}
diff --git a/tests/src/com/android/contacts/util/BitmapUtilTests.java b/tests/src/com/android/contacts/util/BitmapUtilTests.java
new file mode 100644
index 0000000..ee7ebc0
--- /dev/null
+++ b/tests/src/com/android/contacts/util/BitmapUtilTests.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import android.graphics.Bitmap;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+/**
+ * Tests for {@link com.android.contacts.util.BitmapUtil}.
+ */
+@SmallTest
+public class BitmapUtilTests extends AndroidTestCase {
+    public void testGetSmallerExtentFromBytes1() throws Exception {
+        assertEquals(100, BitmapUtil.getSmallerExtentFromBytes(createJpegRawData(100, 100)));
+        assertEquals(100, BitmapUtil.getSmallerExtentFromBytes(createPngRawData(100, 100)));
+    }
+
+    public void testGetSmallerExtentFromBytes2() throws Exception {
+        assertEquals(50, BitmapUtil.getSmallerExtentFromBytes(createJpegRawData(200, 50)));
+        assertEquals(50, BitmapUtil.getSmallerExtentFromBytes(createPngRawData(200, 50)));
+    }
+
+    public void testGetSmallerExtentFromBytes3() throws Exception {
+        assertEquals(40, BitmapUtil.getSmallerExtentFromBytes(createJpegRawData(40, 150)));
+        assertEquals(40, BitmapUtil.getSmallerExtentFromBytes(createPngRawData(40, 150)));
+    }
+
+    public void testFindOptimalSampleSizeExact() throws Exception {
+        assertEquals(1, BitmapUtil.findOptimalSampleSize(512, 512));
+    }
+
+    public void testFindOptimalSampleSizeBigger() throws Exception {
+        assertEquals(1, BitmapUtil.findOptimalSampleSize(512, 1024));
+    }
+
+    public void testFindOptimalSampleSizeSmaller1() throws Exception {
+        assertEquals(2, BitmapUtil.findOptimalSampleSize(512, 256));
+    }
+
+    public void testFindOptimalSampleSizeSmaller2() throws Exception {
+        assertEquals(2, BitmapUtil.findOptimalSampleSize(512, 230));
+    }
+
+    public void testFindOptimalSampleSizeSmaller3() throws Exception {
+        assertEquals(4, BitmapUtil.findOptimalSampleSize(512, 129));
+    }
+
+    public void testFindOptimalSampleSizeSmaller4() throws Exception {
+        assertEquals(4, BitmapUtil.findOptimalSampleSize(512, 128));
+    }
+
+    public void testFindOptimalSampleSizeUnknownOriginal() throws Exception {
+        assertEquals(1, BitmapUtil.findOptimalSampleSize(-1, 128));
+    }
+
+    public void testFindOptimalSampleSizeUnknownTarget() throws Exception {
+        assertEquals(1, BitmapUtil.findOptimalSampleSize(128, -1));
+    }
+
+    public void testDecodeWithSampleSize1() throws IOException {
+        assertBitmapSize(128, 64, BitmapUtil.decodeBitmapFromBytes(createJpegRawData(128, 64), 1));
+        assertBitmapSize(128, 64, BitmapUtil.decodeBitmapFromBytes(createPngRawData(128, 64), 1));
+    }
+
+    public void testDecodeWithSampleSize2() throws IOException {
+        assertBitmapSize(64, 32, BitmapUtil.decodeBitmapFromBytes(createJpegRawData(128, 64), 2));
+        assertBitmapSize(64, 32, BitmapUtil.decodeBitmapFromBytes(createPngRawData(128, 64), 2));
+    }
+
+    public void testDecodeWithSampleSize2a() throws IOException {
+        assertBitmapSize(25, 20, BitmapUtil.decodeBitmapFromBytes(createJpegRawData(50, 40), 2));
+        assertBitmapSize(25, 20, BitmapUtil.decodeBitmapFromBytes(createPngRawData(50, 40), 2));
+    }
+
+    public void testDecodeWithSampleSize4() throws IOException {
+        assertBitmapSize(32, 16, BitmapUtil.decodeBitmapFromBytes(createJpegRawData(128, 64), 4));
+        assertBitmapSize(32, 16, BitmapUtil.decodeBitmapFromBytes(createPngRawData(128, 64), 4));
+    }
+
+    private void assertBitmapSize(int expectedWidth, int expectedHeight, Bitmap bitmap) {
+        assertEquals(expectedWidth, bitmap.getWidth());
+        assertEquals(expectedHeight, bitmap.getHeight());
+    }
+
+    private byte[] createJpegRawData(int sourceWidth, int sourceHeight) throws IOException {
+        return createRawData(Bitmap.CompressFormat.JPEG, sourceWidth, sourceHeight);
+    }
+
+    private byte[] createPngRawData(int sourceWidth, int sourceHeight) throws IOException {
+        return createRawData(Bitmap.CompressFormat.PNG, sourceWidth, sourceHeight);
+    }
+
+    private byte[] createRawData(Bitmap.CompressFormat format, int sourceWidth,
+            int sourceHeight) throws IOException {
+        // Create a temp bitmap as our source
+        Bitmap b = Bitmap.createBitmap(sourceWidth, sourceHeight, Bitmap.Config.ARGB_8888);
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        b.compress(format, 50, outputStream);
+        final byte[] data = outputStream.toByteArray();
+        outputStream.close();
+        return data;
+    }
+}
diff --git a/tests/src/com/android/contacts/util/ContactDisplayUtilTests.java b/tests/src/com/android/contacts/util/ContactDisplayUtilTests.java
new file mode 100644
index 0000000..88c9e29
--- /dev/null
+++ b/tests/src/com/android/contacts/util/ContactDisplayUtilTests.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import static android.provider.ContactsContract.CommonDataKinds.Phone;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.contacts.R;
+import com.android.contacts.preference.ContactsPreferences;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * Unit tests for (@link ContactDisplayUtils}
+ */
+@SmallTest
+public class ContactDisplayUtilTests extends AndroidTestCase {
+
+    private static final String NAME_PRIMARY = "Name Primary";
+    private static final String NAME_ALTERNATIVE = "Name Alternative";
+
+    @Mock private ContactsPreferences mContactsPreferences;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        MockitoAnnotations.initMocks(this);
+    }
+
+    public void testIsCustomPhoneTypeReturnsTrue() {
+        assertTrue(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_CUSTOM));
+        assertTrue(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_ASSISTANT));
+    }
+
+    public void testIsCustomPhoneTypeReturnsFalse() {
+        assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_HOME));
+        assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_FAX_WORK));
+        assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_MOBILE));
+        assertFalse(ContactDisplayUtils.isCustomPhoneType(Phone.TYPE_OTHER));
+    }
+
+    public void testGetLabelForCallOrSmsReturnsCustomLabel() {
+        final CharSequence smsResult = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_CUSTOM,
+                "expected sms label", ContactDisplayUtils.INTERACTION_SMS, getContext());
+        assertEquals("expected sms label", smsResult);
+
+        final CharSequence callResult = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_CUSTOM,
+                "expected call label", ContactDisplayUtils.INTERACTION_CALL, getContext());
+        assertEquals("expected call label", callResult);
+    }
+
+    public void testGetLabelForCallOrSmsReturnsCallLabels() {
+        CharSequence result = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_HOME, "",
+                ContactDisplayUtils.INTERACTION_CALL, getContext());
+        CharSequence expected = getContext().getResources().getText(R.string.call_home);
+        assertEquals(expected, result);
+
+        result = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_MOBILE, "",
+                ContactDisplayUtils.INTERACTION_CALL, getContext());
+        expected = getContext().getResources().getText(R.string.call_mobile);
+        assertEquals(expected, result);
+    }
+
+    public void testGetLabelForCallOrSmsReturnsSmsLabels() {
+        CharSequence result = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_HOME, "",
+                ContactDisplayUtils.INTERACTION_SMS, getContext());
+        CharSequence expected = getContext().getResources().getText(R.string.sms_home);
+        assertEquals(expected, result);
+
+        result = ContactDisplayUtils.getLabelForCallOrSms(Phone.TYPE_MOBILE, "",
+                ContactDisplayUtils.INTERACTION_SMS, getContext());
+        expected = getContext().getResources().getText(R.string.sms_mobile);
+        assertEquals(expected, result);
+    }
+
+    public void testGetPhoneLabelResourceIdReturnsOther() {
+        assertEquals(R.string.call_other, ContactDisplayUtils.getPhoneLabelResourceId(null));
+    }
+
+    public void testGetPhoneLabelResourceIdReturnsMatchHome() {
+        assertEquals(R.string.call_home, ContactDisplayUtils.getPhoneLabelResourceId(
+                Phone.TYPE_HOME));
+    }
+
+    public void testGetSmsLabelResourceIdReturnsOther() {
+        assertEquals(R.string.sms_other, ContactDisplayUtils.getSmsLabelResourceId(null));
+    }
+
+    public void testGetSmsLabelResourceIdReturnsMatchHome() {
+        assertEquals(R.string.sms_home, ContactDisplayUtils.getSmsLabelResourceId(Phone.TYPE_HOME));
+    }
+
+    public void testGetPreferredDisplayName_NullContactsPreferences() {
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY,
+                NAME_ALTERNATIVE, null));
+    }
+
+    public void testGetPreferredDisplayName_NullContactsPreferences_NullAlternative() {
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, null,
+                null));
+    }
+
+    public void testGetPreferredDisplayName_NullContactsPreferences_NullPrimary() {
+        assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredDisplayName(null,
+                NAME_ALTERNATIVE, null));
+    }
+
+    public void testGetPreferredDisplayName_NullContactsPreferences_BothNull() {
+        assertNull(ContactDisplayUtils.getPreferredDisplayName(null, null, null));
+    }
+
+    public void testGetPreferredDisplayName_EmptyAlternative() {
+        Mockito.when(mContactsPreferences.getDisplayOrder())
+                .thenReturn(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY, "",
+                mContactsPreferences));
+    }
+
+    public void testGetPreferredDisplayName_InvalidPreference() {
+        Mockito.when(mContactsPreferences.getDisplayOrder()).thenReturn(-1);
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY,
+                NAME_ALTERNATIVE, mContactsPreferences));
+    }
+
+    public void testGetPreferredDisplayName_Primary() {
+        Mockito.when(mContactsPreferences.getDisplayOrder())
+                .thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY,
+                NAME_ALTERNATIVE, mContactsPreferences));
+    }
+
+    public void testGetPreferredDisplayName_Alternative() {
+        Mockito.when(mContactsPreferences.getDisplayOrder())
+                .thenReturn(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
+        assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredDisplayName(NAME_PRIMARY,
+                NAME_ALTERNATIVE, mContactsPreferences));
+    }
+
+    public void testGetPreferredSortName_NullContactsPreferences() {
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY,
+                NAME_ALTERNATIVE, null));
+    }
+
+    public void testGetPreferredSortName_NullContactsPreferences_NullAlternative() {
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, null,
+                null));
+    }
+
+    public void testGetPreferredSortName_NullContactsPreferences_NullPrimary() {
+        assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredSortName(null,
+                NAME_ALTERNATIVE, null));
+    }
+
+    public void testGetPreferredSortName_NullContactsPreferences_BothNull() {
+        assertNull(ContactDisplayUtils.getPreferredSortName(null, null, null));
+    }
+
+    public void testGetPreferredSortName_EmptyAlternative() {
+        Mockito.when(mContactsPreferences.getSortOrder())
+                .thenReturn(ContactsPreferences.SORT_ORDER_ALTERNATIVE);
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY, "",
+                mContactsPreferences));
+    }
+
+    public void testGetPreferredSortName_InvalidPreference() {
+        Mockito.when(mContactsPreferences.getSortOrder()).thenReturn(-1);
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY,
+                NAME_ALTERNATIVE, mContactsPreferences));
+    }
+
+    public void testGetPreferredSortName_Primary() {
+        Mockito.when(mContactsPreferences.getSortOrder())
+                .thenReturn(ContactsPreferences.SORT_ORDER_PRIMARY);
+        assertEquals(NAME_PRIMARY, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY,
+                NAME_ALTERNATIVE, mContactsPreferences));
+    }
+
+    public void testGetPreferredSortName_Alternative() {
+        Mockito.when(mContactsPreferences.getSortOrder())
+                .thenReturn(ContactsPreferences.SORT_ORDER_ALTERNATIVE);
+        assertEquals(NAME_ALTERNATIVE, ContactDisplayUtils.getPreferredSortName(NAME_PRIMARY,
+                NAME_ALTERNATIVE, mContactsPreferences));
+    }
+}
diff --git a/tests/src/com/android/contacts/util/SearchUtilTest.java b/tests/src/com/android/contacts/util/SearchUtilTest.java
new file mode 100644
index 0000000..e2156ca
--- /dev/null
+++ b/tests/src/com/android/contacts/util/SearchUtilTest.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2012 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.util;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import junit.framework.TestCase;
+
+/**
+ * Unit tests for {@link SearchUtil}.
+ */
+@SmallTest
+public class SearchUtilTest extends TestCase {
+
+    public void testFindMatchingLine() {
+        final String actual = "this is a long test string.\nWith potentially many lines.\n" +
+                "test@google.com\nhello\nblah\n'leading punc";
+
+        SearchUtil.MatchedLine matched = SearchUtil.findMatchingLine(actual, "poten");
+        assertEquals("With potentially many lines.", matched.line);
+        assertEquals(5, matched.startIndex);
+
+        // Full line match.
+        matched = SearchUtil.findMatchingLine(actual, "hello");
+        assertEquals("hello", matched.line);
+        assertEquals(0, matched.startIndex);
+
+        // First line match
+        matched = SearchUtil.findMatchingLine(actual, "this");
+        assertEquals("this is a long test string.", matched.line);
+        assertEquals(0, matched.startIndex);
+
+        // Last line match
+        matched = SearchUtil.findMatchingLine(actual, "punc");
+        assertEquals("'leading punc", matched.line);
+        assertEquals(9, matched.startIndex);
+    }
+
+    public void testContains() {
+        final String actual = "this is a long test string.\nWith potentially many lines.\n" +
+                "test@google.com\nhello\nblah\n'leading punc";
+        assertEquals(0, SearchUtil.contains(actual, "this"));
+        assertEquals(10, SearchUtil.contains(actual, "lon"));
+
+        assertEquals(1, SearchUtil.contains("'leading punc", "lead"));
+        assertEquals(9, SearchUtil.contains("'leading punc", "punc"));
+
+    }
+
+    public void testContainsNotFound() {
+        final String actual = "this is a long test string.\nWith potentially many lines.\n" +
+                "test@google.com\nhello\nblah\n'leading punc";
+
+        // Non-prefix
+        assertEquals(-1, SearchUtil.contains(actual, "ith"));
+        assertEquals(-1, SearchUtil.contains(actual, "ing"));
+
+        // Complete misses
+        assertEquals(-1, SearchUtil.contains(actual, "thisx"));
+        assertEquals(-1, SearchUtil.contains(actual, "manyx"));
+        assertEquals(-1, SearchUtil.contains(actual, "hellox"));
+
+        // Test for partial match of start of query to end of line
+        assertEquals(-1, SearchUtil.contains(actual, "punctual"));
+    }
+
+    public void testFindNextTokenStart() {
+        final String actual = "....hello.kitty";
+        //                     012345678901234
+
+        // Find first token.
+        assertEquals(4, SearchUtil.findNextTokenStart(actual, 0));
+        assertEquals(4, SearchUtil.findNextTokenStart(actual, 1));
+        assertEquals(4, SearchUtil.findNextTokenStart(actual, 2));
+        assertEquals(4, SearchUtil.findNextTokenStart(actual, 3));
+
+        // Find second token.
+        assertEquals(10, SearchUtil.findNextTokenStart(actual, 4));
+        assertEquals(10, SearchUtil.findNextTokenStart(actual, 5));
+        assertEquals(10, SearchUtil.findNextTokenStart(actual, 6));
+        assertEquals(10, SearchUtil.findNextTokenStart(actual, 7));
+        assertEquals(10, SearchUtil.findNextTokenStart(actual, 8));
+        assertEquals(10, SearchUtil.findNextTokenStart(actual, 9));
+
+        // No token.
+        assertEquals(actual.length(), SearchUtil.findNextTokenStart(actual, 10));
+        assertEquals(actual.length(), SearchUtil.findNextTokenStart(actual, 11));
+        assertEquals(actual.length(), SearchUtil.findNextTokenStart(actual, 12));
+        assertEquals(actual.length(), SearchUtil.findNextTokenStart(actual, 13));
+        assertEquals(actual.length(), SearchUtil.findNextTokenStart(actual, 14));
+    }
+
+    public void testCleanStartAndEndOfSearchQuery() {
+        assertEquals("test", SearchUtil.cleanStartAndEndOfSearchQuery("...test..."));
+        assertEquals("test", SearchUtil.cleanStartAndEndOfSearchQuery(" test "));
+        assertEquals("test", SearchUtil.cleanStartAndEndOfSearchQuery(" ||test"));
+        assertEquals("test", SearchUtil.cleanStartAndEndOfSearchQuery("test.."));
+    }
+
+}
diff --git a/tests/src/com/android/contacts/util/SyncUtilTests.java b/tests/src/com/android/contacts/util/SyncUtilTests.java
new file mode 100644
index 0000000..508ff04
--- /dev/null
+++ b/tests/src/com/android/contacts/util/SyncUtilTests.java
@@ -0,0 +1,48 @@
+/*
+ * 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.util;
+
+import android.accounts.Account;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+/**
+ * Tests for SyncUtil.
+ */
+@SmallTest
+public class SyncUtilTests extends AndroidTestCase {
+    private static final String TAG = "SyncUtilTests";
+
+    private static final String GOOGLE_TYPE = "com.google";
+    private static final String NOT_GOOGLE_TYPE = "com.abc";
+    private static final String ACCOUNT_NAME = "ACCOUNT_NAME";
+
+    private final Account mGoogleAccount;
+    private final Account mOtherAccount;
+
+    public SyncUtilTests() {
+        mGoogleAccount = new Account(ACCOUNT_NAME, GOOGLE_TYPE);
+        mOtherAccount = new Account(ACCOUNT_NAME, NOT_GOOGLE_TYPE);
+    }
+
+    public void testIsUnsyncableGoogleAccount() throws Exception {
+        // The account names of mGoogleAccount and mOtherAccount are not valid, so both accounts
+        // are not syncable.
+        assertTrue(SyncUtil.isUnsyncableGoogleAccount(mGoogleAccount));
+        assertFalse(SyncUtil.isUnsyncableGoogleAccount(mOtherAccount));
+        assertFalse(SyncUtil.isUnsyncableGoogleAccount(null));
+    }
+}
diff --git a/tests/src/com/android/contacts/widget/CompositeListAdapterTest.java b/tests/src/com/android/contacts/widget/CompositeListAdapterTest.java
index f7dc08e..a46a17c 100644
--- a/tests/src/com/android/contacts/widget/CompositeListAdapterTest.java
+++ b/tests/src/com/android/contacts/widget/CompositeListAdapterTest.java
@@ -18,6 +18,7 @@
 import android.content.Context;
 import android.database.DataSetObserver;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
@@ -32,6 +33,7 @@
 /**
  * Tests for {@link CompositeListAdapter}.
  */
+@SmallTest
 public class CompositeListAdapterTest extends AndroidTestCase {
 
     private final class MockAdapter extends ArrayAdapter<String> {
